From nobody Mon Feb 23 06:40: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 4fKB7c3wMfz6SvMB for ; Mon, 23 Feb 2026 06:40:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKB7c3HBcz3TSk for ; Mon, 23 Feb 2026 06:40:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771828844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qIeck9Kuqwr800nh5YMljogQiqozB/RbUHMWWE/IDBw=; b=WkgyGL0kac+JGZRPX2A4R65IpQEh9C7VLbX/jW5mmK7qlyYkRb/Ggp63u9uDqr/xfCbfNw r8Pr6AYfIp+5x17v8T9eXNFkCVH2h+sj9qRzE4G6yQy3eWQeTTotmqaxSB/13DJ4NKvepE U0LwkxIpq9AWxJfUURnOvQGcgX+ntEW7IbUVELVPvJwIvmBs4/Zw/9VJ7IxjC/hf2auxAn m97DtwmPCldFwWJOw/zjfy7w2KTZBWDYhSuLlL3NsWlohrFmJeE5GYeNuTdpF8eoxMPal/ ax6zMo+IMkYnbAYAvmfnfy/zBek4+nx/qhY7gCBxxdRNtuy0X3iYbCuqDQmlGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771828844; a=rsa-sha256; cv=none; b=MbGbuBszCLsd8j5q6hVODSC/AMw3Sv7+IAWHYUw5Zy8ffEYiRmQ+T2CNEgOUHHv/Gtk3Fa dUWsv/O8NQsS0EhgvUYIEUVsBWg2qe51Gws1NOdFhcVn4M70uvwCUQwmytc+DouM6HcN/q i0Lz5Oe0WrlRiahF3dUVNl5Ig6ftKByz2RpHxTrjajwlVVkFZpVxMYAd0SViPr64nHLxWQ 4yM7/I6o1pU5B6q0WOwC01mbbKdcOIsRlx37TvIclVQbpcBqFxES/xtFQ1X978xZXV4cbM 9FKeX4/9aHYeJcB6jPQRJ6RpJsl8z9/nNi9km52JYgyFsL3nANl7jL+8b4S21g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771828844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qIeck9Kuqwr800nh5YMljogQiqozB/RbUHMWWE/IDBw=; b=X7kSk8nBdWBeRkXaQcaLxFAtIv/tYo5exi13ePvG9h+tqdUr2Aq/djL3QBc+gvIRCiTim0 9OIN3WIDXmF+IDaVXaGgL9ihqu50lGfUPmTm3gnOw2zvIVtHPqSKVhogMekZVvIEKoWyuQ pKCnjj0KLVdOpxIePBCZOld90cnfpKa1nVdctQRiLysQnLMwG3pV55ZEkd5WjA33MRrnvS EGr0AyWBpvxien1faG0Bk5zoY8Uc2nDajmI8i5+EAzgGOSReHZVHFWBv+bR0tbmeG4EelF FOjMSaUnYdjSn9MxzZBuREgF0eOvdOn/6SuLvml5GR9P38y9DuXDUK6ekRml+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 4fKB7c2gn1z2wD for ; Mon, 23 Feb 2026 06:40:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42775 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 06:40:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: db80ff6133ab - stable/15 - traceroute: MFC: graceful recover after networking errors with as_server List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: db80ff6133ab50f0aae9f392e3d64a88f6921deb Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 06:40:44 +0000 Message-Id: <699bf66c.42775.4a29cbbd@gitrepo.freebsd.org> The branch stable/15 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=db80ff6133ab50f0aae9f392e3d64a88f6921deb commit db80ff6133ab50f0aae9f392e3d64a88f6921deb Author: Eugene Grosbein AuthorDate: 2026-02-09 09:47:01 +0000 Commit: Eugene Grosbein CommitDate: 2026-02-23 06:35:46 +0000 traceroute: MFC: graceful recover after networking errors with as_server Currently, the traceroute[6] utility does not check for possible networking errors while talking to as_server in case of "traceroute -a". Meantime, there is a common case when trace is long and it has many non-responding hops (shown as '* * *'), so as_server aborts our connection, hence no AS numbers shown for the rest of trace. Somewhat artifical way to reproduce the problem: traceroute to 57.144.244.1 (57.144.244.1), 80 hops max, 48 byte packets 5 [AS174] be2950.ccr42.fra05.atlas.cogentco.com (154.54.72.42) 74.277 ms 9.605 ms 9.599 ms 6 [AS174] 149.11.228.19 (149.11.228.19) 9.506 ms 9.466 ms 9.420 ms 7 [AS33182] po172.asw02.fra5.tfbnw.net (129.134.108.146) 9.725 ms 9.874 ms 9.696 ms 8 [AS32934] psw04.fra5.tfbnw.net (157.240.59.85) 8.718 ms 8.691 ms 8.618 ms 9 * * * 10 [AS0] edge-star-mini-shv-01-fra5.facebook.com (57.144.244.1) 9.747 ms 9.815 ms 9.699 ms Note what due to increased timeout (-w10) we get [AS0] for 10th hop because as_server closed our connection. Same problem occurs with default -w3 when there are lots of '* * *' hops in a trace. Fix it with some additional error checking and a reconnection. This patch was in my use for many years and after traceroute(8) moved from contrib/ to usr.sbin/ it's nice to have it in the tree. (cherry picked from commit 60a6ebaf73719ef7aa15768c3906626fb106b2b3) --- usr.sbin/traceroute/as.c | 24 ++++++++++++++++++++---- usr.sbin/traceroute/as.h | 2 +- usr.sbin/traceroute/traceroute.c | 21 +++++++++++++++++++-- usr.sbin/traceroute6/traceroute6.c | 23 +++++++++++++++++++++-- 4 files changed, 61 insertions(+), 9 deletions(-) diff --git a/usr.sbin/traceroute/as.c b/usr.sbin/traceroute/as.c index 7fb952ed3da1..512f1dd6f14c 100644 --- a/usr.sbin/traceroute/as.c +++ b/usr.sbin/traceroute/as.c @@ -118,7 +118,7 @@ as_setup(const char *server) } unsigned int -as_lookup(void *_asn, char *addr, sa_family_t family) +as_lookup(void *_asn, char *addr, sa_family_t family, int *status) { struct aslookup *asn = _asn; char buf[1024]; @@ -128,8 +128,17 @@ as_lookup(void *_asn, char *addr, sa_family_t family) as = 0; rc = dlen = 0; plen = (family == AF_INET6) ? 128 : 32; - (void)fprintf(asn->as_f, "!r%s/%d,l\n", addr, plen); - (void)fflush(asn->as_f); + *status = fprintf(asn->as_f, "!r%s/%d,l\n", addr, plen); + if (*status < 0) { + *status = errno; + return 0; + } + *status = fflush(asn->as_f); + if (*status == EOF) { + *status = errno; + return 0; + } + *status = 0; #ifdef AS_DEBUG_FILE if (asn->as_debug) { @@ -138,7 +147,14 @@ as_lookup(void *_asn, char *addr, sa_family_t family) } #endif /* AS_DEBUG_FILE */ - while (fgets(buf, sizeof(buf), asn->as_f) != NULL) { + while (1) { + if (fgets(buf, sizeof(buf), asn->as_f) == NULL) { + if(feof(asn->as_f) || ferror(asn->as_f)) { + *status = EIO; + return 0; + } + break; + } buf[sizeof(buf) - 1] = '\0'; #ifdef AS_DEBUG_FILE diff --git a/usr.sbin/traceroute/as.h b/usr.sbin/traceroute/as.h index f5a5dae2acec..ac61bbab4786 100644 --- a/usr.sbin/traceroute/as.h +++ b/usr.sbin/traceroute/as.h @@ -30,5 +30,5 @@ */ void *as_setup(const char *); -unsigned int as_lookup(void *, char *, sa_family_t); +unsigned int as_lookup(void *, char *, sa_family_t, int *); void as_shutdown(void *); diff --git a/usr.sbin/traceroute/traceroute.c b/usr.sbin/traceroute/traceroute.c index 1297d3402ebd..be14c40b8d7b 100644 --- a/usr.sbin/traceroute/traceroute.c +++ b/usr.sbin/traceroute/traceroute.c @@ -1653,6 +1653,7 @@ print(register u_char *buf, register int cc, register struct sockaddr_in *from) { register struct ip *ip; register int hlen; + int as, status; char addr[INET_ADDRSTRLEN]; ip = (struct ip *) buf; @@ -1661,8 +1662,24 @@ print(register u_char *buf, register int cc, register struct sockaddr_in *from) strlcpy(addr, inet_ntoa(from->sin_addr), sizeof(addr)); - if (as_path) - Printf(" [AS%u]", as_lookup(asn, addr, AF_INET)); + while(as_path) { + as = as_lookup(asn, addr, AF_INET, &status); + if (status) { + as_shutdown(asn); + asn = as_setup(as_server); + if (asn == NULL) { + Fprintf(stderr, "%s: as_setup failed, AS# lookups" + " disabled\n", prog); + (void)fflush(stderr); + as_path = 0; + break; + } + else + continue; + } + Printf(" [AS%u]", as); + break; + } if (nflag) Printf(" %s", addr); diff --git a/usr.sbin/traceroute6/traceroute6.c b/usr.sbin/traceroute6/traceroute6.c index 173e97c13bb3..eb6086706f9f 100644 --- a/usr.sbin/traceroute6/traceroute6.c +++ b/usr.sbin/traceroute6/traceroute6.c @@ -894,6 +894,8 @@ main(int argc, char *argv[]) as_path = 0; } } + if (as_path) + signal(SIGPIPE, SIG_IGN); /* * Message to users @@ -1577,13 +1579,30 @@ void print(struct msghdr *mhdr, int cc) { struct sockaddr_in6 *from = (struct sockaddr_in6 *)mhdr->msg_name; + int as, status; char hbuf[NI_MAXHOST]; if (cap_getnameinfo(capdns, (struct sockaddr *)from, from->sin6_len, hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0) strlcpy(hbuf, "invalid", sizeof(hbuf)); - if (as_path) - printf(" [AS%u]", as_lookup(asn, hbuf, AF_INET6)); + while (as_path) { + as = as_lookup(asn, hbuf, AF_INET6, &status); + if (status) { + as_shutdown(asn); + asn = as_setup(as_server); + if (asn == NULL) { + fprintf(stderr, "traceroute6: as_setup failed, AS# lookups" + " disabled\n"); + (void)fflush(stderr); + as_path = 0; + break; + } + else + continue; + } + printf(" [AS%u]", as); + break; + } if (nflag) printf(" %s", hbuf); else From nobody Mon Feb 23 06: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 4fKB9g3yP3z6SvRd for ; Mon, 23 Feb 2026 06: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKB9g2bXrz3VBp for ; Mon, 23 Feb 2026 06: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=1771828951; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0Q66/EPllj8KzD4FkoIiMY85f+nAiPTnzF8Gq/txtk0=; b=wBtANu7PdHWoWH7/+Mw3LDb6eyo/+/XzKFK+JcmP6IvRcod0il1COebp5qQPBKYmj9qWzZ VIceECxjmEXYtkz0qZMlbRxL5stkMJC2itGCzOXfeRve5FhDKNNiarwo9ZNP4HfQ/cLS+k 0p+8e22vA+znCt3q9z/PiufRBuYeCxc3ppM3o6/bSCeqY7WF5hoLufABctuuO74L3n+c+B Dmyhqr0oSuQLhaVKvItSRL1iqHyLbllhMet9H+PVX5j6yH662/yVgresO4iQvEomAs+RNL QoRJZSvKOpXIyN7aoRHwsOeKX8X0vxnoJ3OuuzLDgyCms8uD+oiZyg3ECcIpAw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771828951; a=rsa-sha256; cv=none; b=emAwk6m5vIp9nt0IKENyNr480POsQRPqY7Uca/OXzYu/fvKkw8TRvwWFh9bYWzFE+wxUJF 1zRBy4NHs89EVfSTwbMBZnBgZLoyqNoLmUu+swSfcagizyEg6hjrB4XEFQzpmcyWQHg7+p gTue2nxAa5dD667ksXEEK3drtn3m6pMj5MSfe8ee1sGteCmDPuO3JUHIZtEWkrYBriHpu8 CPpsOaULaG5sSPqaImsRb5qGGNadmietbtDndBw6e/WZo+CMRzgstwgTUrNdax6ZjR8YKr dPoQeHjn+jsk1JnpieqU8IozZynVXdhTK3PVZU0bTyhUHQWYT5KGBDorf2hizg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771828951; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0Q66/EPllj8KzD4FkoIiMY85f+nAiPTnzF8Gq/txtk0=; b=QmFHJLiNCQxWpkhracQ4TTGMOc1GJR6XQq9vrj+mr/Soi6gXULpPMEOPQtVckuOlwtgU76 wmk0/QVQdC1EaDSNjUfpaFl2FQTs0P5X9ZTLCwNjXPqaP+Iqj3aegk0VOMnYc+TxTdxv0D M8iKaWOzXxyIKIvWsOxcb+tiempBdyVoMRWdQL4MLXUE7x4Hvog8W7gQaAxdYZcWz2D0fY 2QnM2Ar2/n1VAl8X/yD/dnPDpQhYY7xvUrePjSxfYTnkAp42lQ4gHeNLrteVI4RcIr53aj l4th2S0MbVVYra2LfbS3+KiBcpvu/taacgD9hw8SeF3EIBoDIpFy18IcaNZY0A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKB9g2BSFz3sh for ; Mon, 23 Feb 2026 06:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44686 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 06:42:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: 8df05ce54e12 - stable/14 - traceroute: MFC: graceful recover after networking errors with as_server List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8df05ce54e12860111445e4ad98a791d4235be9e Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 06:42:31 +0000 Message-Id: <699bf6d7.44686.28121ae3@gitrepo.freebsd.org> The branch stable/14 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=8df05ce54e12860111445e4ad98a791d4235be9e commit 8df05ce54e12860111445e4ad98a791d4235be9e Author: Eugene Grosbein AuthorDate: 2026-02-09 09:47:01 +0000 Commit: Eugene Grosbein CommitDate: 2026-02-23 06:42:20 +0000 traceroute: MFC: graceful recover after networking errors with as_server Currently, the traceroute[6] utility does not check for possible networking errors while talking to as_server in case of "traceroute -a". Meantime, there is a common case when trace is long and it has many non-responding hops (shown as '* * *'), so as_server aborts our connection, hence no AS numbers shown for the rest of trace. Somewhat artifical way to reproduce the problem: traceroute to 57.144.244.1 (57.144.244.1), 80 hops max, 48 byte packets 5 [AS174] be2950.ccr42.fra05.atlas.cogentco.com (154.54.72.42) 74.277 ms 9.605 ms 9.599 ms 6 [AS174] 149.11.228.19 (149.11.228.19) 9.506 ms 9.466 ms 9.420 ms 7 [AS33182] po172.asw02.fra5.tfbnw.net (129.134.108.146) 9.725 ms 9.874 ms 9.696 ms 8 [AS32934] psw04.fra5.tfbnw.net (157.240.59.85) 8.718 ms 8.691 ms 8.618 ms 9 * * * 10 [AS0] edge-star-mini-shv-01-fra5.facebook.com (57.144.244.1) 9.747 ms 9.815 ms 9.699 ms Note what due to increased timeout (-w10) we get [AS0] for 10th hop because as_server closed our connection. Same problem occurs with default -w3 when there are lots of '* * *' hops in a trace. Fix it with some additional error checking and a reconnection. This patch was in my use for many years and after traceroute(8) moved from contrib/ to usr.sbin/ it's nice to have it in the tree. (cherry picked from commit 60a6ebaf73719ef7aa15768c3906626fb106b2b3) --- usr.sbin/traceroute/as.c | 24 ++++++++++++++++++++---- usr.sbin/traceroute/as.h | 2 +- usr.sbin/traceroute/traceroute.c | 21 +++++++++++++++++++-- usr.sbin/traceroute6/traceroute6.c | 23 +++++++++++++++++++++-- 4 files changed, 61 insertions(+), 9 deletions(-) diff --git a/usr.sbin/traceroute/as.c b/usr.sbin/traceroute/as.c index fd2f96100101..ab86b5205565 100644 --- a/usr.sbin/traceroute/as.c +++ b/usr.sbin/traceroute/as.c @@ -119,7 +119,7 @@ as_setup(const char *server) } unsigned int -as_lookup(void *_asn, char *addr, sa_family_t family) +as_lookup(void *_asn, char *addr, sa_family_t family, int *status) { struct aslookup *asn = _asn; char buf[1024]; @@ -129,8 +129,17 @@ as_lookup(void *_asn, char *addr, sa_family_t family) as = 0; rc = dlen = 0; plen = (family == AF_INET6) ? 128 : 32; - (void)fprintf(asn->as_f, "!r%s/%d,l\n", addr, plen); - (void)fflush(asn->as_f); + *status = fprintf(asn->as_f, "!r%s/%d,l\n", addr, plen); + if (*status < 0) { + *status = errno; + return 0; + } + *status = fflush(asn->as_f); + if (*status == EOF) { + *status = errno; + return 0; + } + *status = 0; #ifdef AS_DEBUG_FILE if (asn->as_debug) { @@ -139,7 +148,14 @@ as_lookup(void *_asn, char *addr, sa_family_t family) } #endif /* AS_DEBUG_FILE */ - while (fgets(buf, sizeof(buf), asn->as_f) != NULL) { + while (1) { + if (fgets(buf, sizeof(buf), asn->as_f) == NULL) { + if(feof(asn->as_f) || ferror(asn->as_f)) { + *status = EIO; + return 0; + } + break; + } buf[sizeof(buf) - 1] = '\0'; #ifdef AS_DEBUG_FILE diff --git a/usr.sbin/traceroute/as.h b/usr.sbin/traceroute/as.h index ce10b4b50098..d5d3f928c0da 100644 --- a/usr.sbin/traceroute/as.h +++ b/usr.sbin/traceroute/as.h @@ -31,5 +31,5 @@ */ void *as_setup(const char *); -unsigned int as_lookup(void *, char *, sa_family_t); +unsigned int as_lookup(void *, char *, sa_family_t, int *); void as_shutdown(void *); diff --git a/usr.sbin/traceroute/traceroute.c b/usr.sbin/traceroute/traceroute.c index 2f9358689c90..93116fe7fc3c 100644 --- a/usr.sbin/traceroute/traceroute.c +++ b/usr.sbin/traceroute/traceroute.c @@ -1653,6 +1653,7 @@ print(register u_char *buf, register int cc, register struct sockaddr_in *from) { register struct ip *ip; register int hlen; + int as, status; char addr[INET_ADDRSTRLEN]; ip = (struct ip *) buf; @@ -1661,8 +1662,24 @@ print(register u_char *buf, register int cc, register struct sockaddr_in *from) strlcpy(addr, inet_ntoa(from->sin_addr), sizeof(addr)); - if (as_path) - Printf(" [AS%u]", as_lookup(asn, addr, AF_INET)); + while(as_path) { + as = as_lookup(asn, addr, AF_INET, &status); + if (status) { + as_shutdown(asn); + asn = as_setup(as_server); + if (asn == NULL) { + Fprintf(stderr, "%s: as_setup failed, AS# lookups" + " disabled\n", prog); + (void)fflush(stderr); + as_path = 0; + break; + } + else + continue; + } + Printf(" [AS%u]", as); + break; + } if (nflag) Printf(" %s", addr); diff --git a/usr.sbin/traceroute6/traceroute6.c b/usr.sbin/traceroute6/traceroute6.c index 1f5fc0a6b3a3..f2c1999b6ac5 100644 --- a/usr.sbin/traceroute6/traceroute6.c +++ b/usr.sbin/traceroute6/traceroute6.c @@ -908,6 +908,8 @@ main(int argc, char *argv[]) as_path = 0; } } + if (as_path) + signal(SIGPIPE, SIG_IGN); /* * Message to users @@ -1587,13 +1589,30 @@ void print(struct msghdr *mhdr, int cc) { struct sockaddr_in6 *from = (struct sockaddr_in6 *)mhdr->msg_name; + int as, status; char hbuf[NI_MAXHOST]; if (cap_getnameinfo(capdns, (struct sockaddr *)from, from->sin6_len, hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0) strlcpy(hbuf, "invalid", sizeof(hbuf)); - if (as_path) - printf(" [AS%u]", as_lookup(asn, hbuf, AF_INET6)); + while (as_path) { + as = as_lookup(asn, hbuf, AF_INET6, &status); + if (status) { + as_shutdown(asn); + asn = as_setup(as_server); + if (asn == NULL) { + fprintf(stderr, "traceroute6: as_setup failed, AS# lookups" + " disabled\n"); + (void)fflush(stderr); + as_path = 0; + break; + } + else + continue; + } + printf(" [AS%u]", as); + break; + } if (nflag) printf(" %s", hbuf); else if (lflag) From nobody Mon Feb 23 07:10: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 4fKBnb4rFXz6Sxkd for ; Mon, 23 Feb 2026 07:10: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKBnb4Hqdz3ZJM for ; Mon, 23 Feb 2026 07:10:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771830611; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yqect+l6S7280U8vD1D3xAnHzfozoB6TrEOnHHWGlqY=; b=rlfrjWjw/aG9fPdv1LEjlnV7DipDCo671+mVIZFfmIFZJOpnZvlLVDDrD/eLlr+hwe8jzG 3cANaUbTGadAXiYn/YGCph/g8mWioI1I5Ryn7nX+zCUNH6JHqTM0X3dQU6zdO0+ko92aSh r3R7cHxF62RrYDVTdLbIA5pyUKGpIE6GQOFGqYr0Ig2w2FcBbgecrRJKF5uCmJTSBHcwqz s6QA7/ibVES/vMlQq9XZ6b025CjA2MuFsi3FkdG+1MubmEUaEfEKJOxDbwfK1MLrvab/sX T3PzqC1m8fnkkwKzP0+A9gLdrlwoqtDTLXgS12vWiR1UIBUPYSGG7wtsrdRSiA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771830611; a=rsa-sha256; cv=none; b=bAUq1+2qlI9OfJs91g4yz/oAs2NWDfpdj95o9uswTIgmqti1AXABaWA5qmZ346BquIOVBx Yw33roeMlDo2RGk/P7Mv61orwjYu46G1YS/I2Tb8+wRISGFHraEEwozXBNuN8JXal1CJj9 Hic6lEoyt2PNxQMyhrZvZa5z59MbtIpLM8mOfh7yG3HJ8GBkecJezkt5jgEMSv0QWZsISJ 6omL8I0OCAd64h5+BkpbhEtT0Og8M66qU59xGPoMXCz52AZWirsWLv1JEDTe7zT0Ux4uyq vMJat0pKwGteMPO2Za1I3jO44mc6L+52TdBhE4xtuEvYPwUZhVUqzwIhCCyaoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771830611; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yqect+l6S7280U8vD1D3xAnHzfozoB6TrEOnHHWGlqY=; b=ysYCOwmwpKxW2CsZtiStIoT54/JPDquZ1c628dnCimKoymaUTaX4zJto55y6FUXCgiEZYA nKoACk84IjElOtJW9BbOANG0l+TaoXQnotpID45rJh7BvYIAMB4E4pT8ptO61fVP3kO95T Zlwupp8R+6iqO0qiMFxQemwt0Qz7ciQSzltJA3PqxYQ0AYCAm6+sAxwTWsiurS8KopkCzg L2OPJi2wz+bUT19qigy1dd4/HvuUn4jowOTRuB6TmXXiLs8ShEoqYm7wMvARbS3dt82Hrp H4hdIkMCJb63TAF4O7aKfhIgK/gUwoliqLoFge2MFUNg3vfJ9N9c91bebt9uxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKBnb3XzBz4Wy for ; Mon, 23 Feb 2026 07:10:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4722c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 07:10:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: f0a6e0a8dcf5 - stable/14 - trim(8): minor output correction List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f0a6e0a8dcf5a49b9df1f5c9314cb2755c97f5e5 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 07:10:11 +0000 Message-Id: <699bfd53.4722c.6933746c@gitrepo.freebsd.org> The branch stable/14 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=f0a6e0a8dcf5a49b9df1f5c9314cb2755c97f5e5 commit f0a6e0a8dcf5a49b9df1f5c9314cb2755c97f5e5 Author: Eugene Grosbein AuthorDate: 2025-07-20 10:36:33 +0000 Commit: Eugene Grosbein CommitDate: 2026-02-23 07:09:24 +0000 trim(8): minor output correction "trim /dev/da*" would print the following line multiple times when given multiple agruments: dry run: add -f to actually perform the operation Print it once before looping over arguments. Also, note possible suffixes P and E after offset/length as per expand_number(3). (cherry picked from commit 5d5848648013a189fc766e4ee3a121362905b836) (cherry picked from commit f1b934c8138cfd98a70e305d54b2b431c842ec21) --- usr.sbin/trim/trim.8 | 18 ++++++++++-------- usr.sbin/trim/trim.c | 11 ++++++----- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/usr.sbin/trim/trim.8 b/usr.sbin/trim/trim.8 index b4799399e110..e7fc9da1a740 100644 --- a/usr.sbin/trim/trim.8 +++ b/usr.sbin/trim/trim.8 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 9, 2025 +.Dd July 20, 2025 .Dt TRIM 8 .Os .Sh NAME @@ -36,7 +36,7 @@ .Bk -words .Sm off .Ar offset -.Op Cm K | k | M | m | G | g | T | t ] +.Op Cm K | k | M | m | G | g | T | t | P | p | E | e ] .Sm on .Xc .Ek @@ -85,13 +85,13 @@ Overrides .It Fl l Xo .Sm off .Ar offset -.Op Cm K | k | M | m | G | g | T | t +.Op Cm K | k | M | m | G | g | T | t | P | p | E | e .Sm on .Xc .It Fl o Xo .Sm off .Ar offset -.Op Cm K | k | M | m | G | g | T | t +.Op Cm K | k | M | m | G | g | T | t | P | p | E | e .Sm on .Xc Specify the length @@ -105,12 +105,14 @@ unless one or both of these options are presented. The argument may be suffixed with one of .Cm K , .Cm M , -.Cm G +.Cm G , +.Cm T , +.Cm P or -.Cm T +.Cm E (either upper or lower case) to indicate a multiple of -Kilobytes, Megabytes, Gigabytes or Terabytes -respectively. +Kilobytes, Megabytes, Gigabytes, Terabytes, Petabytes or +Exabytes, respectively. .It Fl q Do not output anything except of possible error messages (quiet mode). Overrides diff --git a/usr.sbin/trim/trim.c b/usr.sbin/trim/trim.c index 3e187faa0fb3..27f57ac2fb72 100644 --- a/usr.sbin/trim/trim.c +++ b/usr.sbin/trim/trim.c @@ -114,7 +114,7 @@ main(int argc, char **argv) * * trim -f -- /dev/da0 -r rfile */ - + if (strcmp(argv[optind-1], "--") != 0) { for (ch = optind; ch < argc; ch++) if (argv[ch][0] == '-') @@ -127,6 +127,9 @@ main(int argc, char **argv) if (argc < 1) usage(name); + if (dryrun) + printf("dry run: add -f to actually perform the operation\n"); + while ((fname = *argv++) != NULL) if (trim(fname, offset, length, dryrun, verbose) < 0) error++; @@ -213,10 +216,8 @@ trim(const char *path, off_t offset, off_t length, bool dryrun, bool verbose) printf("trim %s offset %ju length %ju\n", path, (uintmax_t)offset, (uintmax_t)length); - if (dryrun) { - printf("dry run: add -f to actually perform the operation\n"); + if (dryrun) return (0); - } fd = opendev(path, O_RDWR | O_DIRECT); arg[0] = offset; @@ -237,7 +238,7 @@ static void usage(const char *name) { (void)fprintf(stderr, - "usage: %s [-[lo] offset[K|k|M|m|G|g|T|t]] [-r rfile] [-Nfqv] device ...\n", + "usage: %s [-[lo] offset[K|k|M|m|G|g|T|t|P|p|E|e]] [-r rfile] [-Nfqv] device ...\n", name); exit(EX_USAGE); } From nobody Mon Feb 23 07:14: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 4fKBtm0rlkz6Syb0 for ; Mon, 23 Feb 2026 07:14: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKBtj30b0z3Zjy for ; Mon, 23 Feb 2026 07:14:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771830877; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ya7a4jqABNJs2tz4ooMXbCBgpPoR3qsPK0X815kHCGw=; b=aie6UGA4jhqGPRJ1K/wBwXeHxn88q3+2GXG3kM/JxxSQk1/BSWDlYEn4zM1c7dHcJbtIFA Tr5Cji9T2wagyeFzkMSfHp5DY6ro3Mx4JUNuJV+2o2lEGxtdIlrTWE2gxf2HXbd/w/9QLg fPWUtrHKTege2fhzdVSlNAcI+PxDEHGEmKp6mpswoHIW28+5cFvHalPSNANi1NgsBAIulW QktlgYdtVh95tgWZ1IHQLjkf+nBZ2edpxlZkoBVQ9hbSuYTjivCAFI3bLkPvLCFZSydi7T ssP8/IEFzxAUqL+czfN4TKJgNWN8/WriTj+JE97aAe42YDfnQ1hW1gmZwEDPBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771830877; a=rsa-sha256; cv=none; b=eMrRvYQgADSQ7VPGr5BEqj2EsEuF05iKlMhncD5oNXzQFDYudskJAhtwxB1Ad+RaVYRQ/G LnjPbBxvqiWTuZQGn1A68WS5RH8DlguElDfd2B5ggPJDVtJIUy2GxbcpGgSDR5wNXFYPKR 46UEwKco1shyx6C27YEsgPJFdD/PWeEZzqu3XcFhFe6pYjs15TYJqxeQnCAxixliHF8sV2 a2HeFi5YcOy5aRf0hZsBDtT9SUd2I2FZ/fp5UirRy69eXecmXwcd5b7w1gYkdfEqfO76mL 4Q61Dmz/uG04pqxvxk0hPJXz7Rp0p8Yn/7RtiSiV++Rum4QFvbcMftlJVjetuQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771830877; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ya7a4jqABNJs2tz4ooMXbCBgpPoR3qsPK0X815kHCGw=; b=AhGQc9KLJOA7Ys8hMteB9D2y2ZJ8xwqfppTIJNDePGVoDXqEEjgYYZAgx9A5q5aByQRgqW S/yTU0Q56+pC+sBEcTWQaUaxDNUnYh0zvauyHq79VVDgDGnqlWP9H7g6P/M26YWGRpsX2I FpHRQ8Hv2onLqcnfyUTH/owInkCc98vKAtoCfB7ff2WE5x1VKrDB4mYvtH20a67wlYX08t jz4jHjUU2KQUJ74Y62HTb0jlbuWpfhWw0THAcUgHKwgPo6saxUxgd6oaYQEBsSpRqTgTQv mF/nGIm0bhyIn+af8gYbYnMGshh168eYgCUa+JJOtdERDF2mwQ6fQSKfpif6eQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKBtj2GFvz4Rh for ; Mon, 23 Feb 2026 07:14:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18183 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 07:14:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Eugene Grosbein Subject: git: 3c1f69661eda - stable/13 - trim(8): minor output correction List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: eugen X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3c1f69661eda69709f00a40826c6efd045dbf01b Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 07:14:37 +0000 Message-Id: <699bfe5d.18183.614658ec@gitrepo.freebsd.org> The branch stable/13 has been updated by eugen: URL: https://cgit.FreeBSD.org/src/commit/?id=3c1f69661eda69709f00a40826c6efd045dbf01b commit 3c1f69661eda69709f00a40826c6efd045dbf01b Author: Eugene Grosbein AuthorDate: 2025-07-20 10:36:33 +0000 Commit: Eugene Grosbein CommitDate: 2026-02-23 07:14:05 +0000 trim(8): minor output correction "trim /dev/da*" would print the following line multiple times when given multiple agruments: dry run: add -f to actually perform the operation Print it once before looping over arguments. Also, note possible suffixes P and E after offset/length as per expand_number(3). (cherry picked from commit 5d5848648013a189fc766e4ee3a121362905b836) (cherry picked from commit f1b934c8138cfd98a70e305d54b2b431c842ec21) --- usr.sbin/trim/trim.8 | 18 ++++++++++-------- usr.sbin/trim/trim.c | 11 ++++++----- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/usr.sbin/trim/trim.8 b/usr.sbin/trim/trim.8 index b4799399e110..e7fc9da1a740 100644 --- a/usr.sbin/trim/trim.8 +++ b/usr.sbin/trim/trim.8 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 9, 2025 +.Dd July 20, 2025 .Dt TRIM 8 .Os .Sh NAME @@ -36,7 +36,7 @@ .Bk -words .Sm off .Ar offset -.Op Cm K | k | M | m | G | g | T | t ] +.Op Cm K | k | M | m | G | g | T | t | P | p | E | e ] .Sm on .Xc .Ek @@ -85,13 +85,13 @@ Overrides .It Fl l Xo .Sm off .Ar offset -.Op Cm K | k | M | m | G | g | T | t +.Op Cm K | k | M | m | G | g | T | t | P | p | E | e .Sm on .Xc .It Fl o Xo .Sm off .Ar offset -.Op Cm K | k | M | m | G | g | T | t +.Op Cm K | k | M | m | G | g | T | t | P | p | E | e .Sm on .Xc Specify the length @@ -105,12 +105,14 @@ unless one or both of these options are presented. The argument may be suffixed with one of .Cm K , .Cm M , -.Cm G +.Cm G , +.Cm T , +.Cm P or -.Cm T +.Cm E (either upper or lower case) to indicate a multiple of -Kilobytes, Megabytes, Gigabytes or Terabytes -respectively. +Kilobytes, Megabytes, Gigabytes, Terabytes, Petabytes or +Exabytes, respectively. .It Fl q Do not output anything except of possible error messages (quiet mode). Overrides diff --git a/usr.sbin/trim/trim.c b/usr.sbin/trim/trim.c index 3e187faa0fb3..27f57ac2fb72 100644 --- a/usr.sbin/trim/trim.c +++ b/usr.sbin/trim/trim.c @@ -114,7 +114,7 @@ main(int argc, char **argv) * * trim -f -- /dev/da0 -r rfile */ - + if (strcmp(argv[optind-1], "--") != 0) { for (ch = optind; ch < argc; ch++) if (argv[ch][0] == '-') @@ -127,6 +127,9 @@ main(int argc, char **argv) if (argc < 1) usage(name); + if (dryrun) + printf("dry run: add -f to actually perform the operation\n"); + while ((fname = *argv++) != NULL) if (trim(fname, offset, length, dryrun, verbose) < 0) error++; @@ -213,10 +216,8 @@ trim(const char *path, off_t offset, off_t length, bool dryrun, bool verbose) printf("trim %s offset %ju length %ju\n", path, (uintmax_t)offset, (uintmax_t)length); - if (dryrun) { - printf("dry run: add -f to actually perform the operation\n"); + if (dryrun) return (0); - } fd = opendev(path, O_RDWR | O_DIRECT); arg[0] = offset; @@ -237,7 +238,7 @@ static void usage(const char *name) { (void)fprintf(stderr, - "usage: %s [-[lo] offset[K|k|M|m|G|g|T|t]] [-r rfile] [-Nfqv] device ...\n", + "usage: %s [-[lo] offset[K|k|M|m|G|g|T|t|P|p|E|e]] [-r rfile] [-Nfqv] device ...\n", name); exit(EX_USAGE); } From nobody Mon Feb 23 13:32: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 4fKMGL5470z6TNLL for ; Mon, 23 Feb 2026 13:32: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMGL4N2xz3Hy3 for ; Mon, 23 Feb 2026 13:32:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853530; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RYGOdVtIjChtor+tqbpxBiAodzF7vjl2J8Va8lE4SP8=; b=VGqdw8Y4trqtBBNfwFetNSibR1XwTrcPmO/QKyf8rKiitp7JZMWGsS1vcU4lJ/Biy70Vzs 9WCNvIX7sOLoGhNYmkhxMjPTGzXPWvtSxnLpW0z0vR389x6wyqH82yDWaE4u4KSDbm37RG FpEpRT2pxihdDTLpg+3pd/RMizeuVAbSvuu6iBQDjWWgv+z/39otFpfb1FPAQdW3qJ+UnM ivO+uUE0QMuSW1Up3YV1P13JZEgOgQDRpjBfQTWacKb+vfCSrHnCQbLZiuncXidY8lpKLJ k0W21W/5IH72/LHlCkEh2AwPzjIhzoJjyTlddN12MP5TewuG4OYqOOnimBJCXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853530; a=rsa-sha256; cv=none; b=ALet0EOegbx1y6T6dr/Ziugx/hc4flSbHL1vDncSLwhgEjd1pyUdrmUIvriL4T3IHYw9pk WExwIkg4phCppjxT+SKUXmfUb7glxCFEY2NwIz2/j7tnvCTWv51/pjHYQr7FWFZlFEcO8c 4eeIeGyLt7pATvPcH+lqes99pF07F57URYQjBGG8snzK01pGU9hUFiFibgUQLGCSIDGT6T 8ZBeHyuFWe6DzBOwCFAFskxbSJbpZfZStwDxTJWtpJksaQN/PFEzWe007gVe6555VnqDM8 bNKOLP0WqAI94+xZgGajZXTaHrqcD+kbjT7XkxIA1dLhU+FhxhQuxF6bk873TQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853530; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RYGOdVtIjChtor+tqbpxBiAodzF7vjl2J8Va8lE4SP8=; b=SNEQ7nZnLED9ouN0icu2qIJ1i34mSuHjgax7m0Oh97/rPvwlZri3/MFXjXxR6mGUjMuK1e TagbEs4pNEKFJIpcKCyDzog1PF5o2+diOJ4RISWeSDyLTbmJwGw7Ha4rY1AC/urscYYpdP 3/5D6WvQAvn4Bd3JzEZSQzzD4oXsKtEoBsW0ShjTI2T7XUuoH51pNnVj+bqfgkFjgutovG ZXqPmJPw38HKP+b7ZPkNwa5MzLXjHx746eJUihICAPE5qs27b1ZcO6CGGC/ewx4mF+e6Ti +kEl9caOlGQFFurLTMQ9RVdSunfZxA7IMKyxfTj8oBkjuevCMgK/uXlxQqX+WA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMGL3cxszXPX for ; Mon, 23 Feb 2026 13:32:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46ae9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:32:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: d967f923caaa - stable/15 - Convert fully to Python 3. Remove licence text, only keep 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: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d967f923caaaaf9a4efd74d1c442788377e2bc89 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:32:10 +0000 Message-Id: <699c56da.46ae9.50327ab4@gitrepo.freebsd.org> The branch stable/15 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=d967f923caaaaf9a4efd74d1c442788377e2bc89 commit d967f923caaaaf9a4efd74d1c442788377e2bc89 Author: George V. Neville-Neil AuthorDate: 2026-01-05 11:40:12 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:31:43 +0000 Convert fully to Python 3. Remove licence text, only keep SPDX. Update to use argparse rather than OptionParser (now deprecated). (cherry picked from commit eb1c0d74cbb99f329767b3d565ae57a3ec032bee) --- tools/test/hwpmc/pmctest.py | 73 ++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 54 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 4bd4910b00a9..bda2f3500d7d 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -2,37 +2,9 @@ # SPDX-License-Identifier: BSD-3-Clause # # Copyright (c) 2012, Neville-Neil Consulting +# Copyright (c) 2026, George V. Neville-Neil # All rights reserved. # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# Neither the name of Neville-Neil Consulting nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Author: George V. Neville-Neil -# # Description: A program to run a simple program against every available # pmc counter present in a system. @@ -44,17 +16,19 @@ # This should result in ls being run with every available counter # and the system should neither lock up nor panic. # -# The default is to wait after each counter is tested. Since the +# The default is not to wait after each counter is tested. Since the # prompt would go to stdout you won't see it, just press return # to continue or Ctrl-D to stop. -import sys import subprocess from subprocess import PIPE +import argparse -# Use input() for Python version 3 -if sys.version_info[0] == 3: - raw_input = input +def gather_counters(): + """Run program and return output as array of lines.""" + result = subprocess.run("pmccontrol -L", shell=True, capture_output=True, text=True) + tabbed = result.stdout.strip().split('\n') + return [line.replace('\t', '') for line in tabbed] # A list of strings that are not really counters, just # name tags that are output by pmccontrol -L @@ -62,37 +36,28 @@ notcounter = ["IAF", "IAP", "TSC", "UNC", "UCF", "UCP", "SOFT" ] def main(): - from optparse import OptionParser - - parser = OptionParser() - parser.add_option("-p", "--program", dest="program", - help="program to execute") - parser.add_option("-w", "--wait", action="store_true", dest="wait", - default=True, help="wait after each execution") + parser = argparse.ArgumentParser(description='Exercise a program under hwpmc') + parser.add_argument('--program', type=str, required=True, help='target program') + parser.add_argument('--wait', action='store_true', help='Wait after each counter.') - (options, args) = parser.parse_args() + args = parser.parse_args() - if (options.program == None): - print("specify program, such as ls, with -p/--program") - sys.exit() - - p = subprocess.Popen(["pmccontrol", "-L"], stdout=PIPE) - counters = p.communicate()[0] + counters = gather_counters() if len(counters) <= 0: print("no counters found") sys.exit() - for counter in counters.split(): + for counter in counters: if counter in notcounter: continue - p = subprocess.Popen(["pmcstat", "-p", counter, options.program], - stdout=PIPE) - result = p.communicate()[0] + p = subprocess.Popen(["pmcstat", "-p", counter, args.program], + text=True, stderr=PIPE) + result = p.communicate()[1] print(result) - if (options.wait == True): + if (args.wait == True): try: - value = raw_input("next?") + value = input("Waitin for you to press ENTER") except EOFError: sys.exit() From nobody Mon Feb 23 13:32: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 4fKMGM6N5Fz6TNTn for ; Mon, 23 Feb 2026 13:32: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMGM4x00z3J8N for ; Mon, 23 Feb 2026 13:32:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853531; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3wAdWOcXjhXafe4VMERqbCcWJcSLBmKPLotA0yQX9f0=; b=bP2ZdjX8Pwh8L+iLu36/8VM24zutpAsegVovtbTQ02SOCqUwrXBUb+SMnJ0dgqQ0ONntjB EOvA48ujvDssKuyCz9i1tPLYXnf7pHsSesIrWqxJf4VCVI1Egyq31GJBFjAAF9I+56IU8c YeSFtFa87C9U9Rgd6AkVQ7QB9Yh6vnJnLVfkAluvqFD8UifYbGJZ8MPH3z0tQq/vgg3u96 t0wMbGWqRXt4nwQdXmK6yFi/kQ05rRr8Ye/vs2AZcPCEj5oPbn600UsbohHI9gTZCQ5fIH wJcS7Fd5Fz4A6sgeQNCdhYF526sif8rIL+U7oeQUmLOVPk+rnbkIIPsBXAJo6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853531; a=rsa-sha256; cv=none; b=T0QlRbVxQ1JTb1fcFDM1GzHcXHZy0h/8cD/MXyPC+P/z6r4wkkcX8b6u5av5s9OD0T/Ie5 WFqnzQBuA/yh5mRiRUBd7hsEEUnLwxHdMRev3l1O/kHSgIH87XgsH/9TJwAevY+PfmgBc+ DBJNN3p8VVse92HuM9qOLrsV2ozZH0F+DZdmSe6MHOBU0ZWMm15o75RtzEeIyBIuhMNb4u SAvakwTLndZ5jw2LukKV4Boy/KxJWgpNG5BTZdIVYXY5DCnnH0Kprq6uQaHAqWiPrAGJDq 4iZU5s/1a8H3JwrEUwkLXIJwh/nQs7lUmuMG/0mpdadoC2vHCdBGXNjhfSLwEg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853531; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3wAdWOcXjhXafe4VMERqbCcWJcSLBmKPLotA0yQX9f0=; b=SR6fvZEzp/kw9ynwQhqzJASgYLFPyFHS4H6moUimdlo0B3TQVbjHT3hk8WLyKRX+eHWQCA F1xyEH6lP6Q4z459kl4bg/X/CsEfn3ScEYtq7nIbtGu25v8tUvcS1yT/7yoypOMi0xaZ1Y dETSv8KBWWgiur78KRbUBWoft241b8fAaMnvZNvM7//VJ8FR7QgjLxeOiA1C8BVwTc/6Kl 71gJGjPhKnT/E4oDWqx3N22TsFe4I0OCr9kdz0/53jLpak6ozjDz8dZSrRj2cGuUpqKVdC TzK3toYvv8koikbrxT+dofotameDWatLMfFTiu2VDSt33Vv+MWB5gyGdWiO7qQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMGM4QHHzXPZ for ; Mon, 23 Feb 2026 13:32:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 462e3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:32:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 076e75332575 - stable/15 - Start adding an exercise mode for programs under 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: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 076e753325758b211e9987d76c3452bc550c0488 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:32:11 +0000 Message-Id: <699c56db.462e3.405cbbec@gitrepo.freebsd.org> The branch stable/15 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=076e753325758b211e9987d76c3452bc550c0488 commit 076e753325758b211e9987d76c3452bc550c0488 Author: George V. Neville-Neil AuthorDate: 2026-01-05 12:30:22 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:31:49 +0000 Start adding an exercise mode for programs under test. In exercise mode we collect data for every available counter on a program and keep all of that in a directory in /tmp. (cherry picked from commit 4a1b69ade6b5e8665dfb4d0cb683854705192a68) --- tools/test/hwpmc/pmctest.py | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index bda2f3500d7d..f54541aeea1e 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -23,6 +23,7 @@ import subprocess from subprocess import PIPE import argparse +import tempfile def gather_counters(): """Run program and return output as array of lines.""" @@ -39,6 +40,7 @@ def main(): parser = argparse.ArgumentParser(description='Exercise a program under hwpmc') parser.add_argument('--program', type=str, required=True, help='target program') parser.add_argument('--wait', action='store_true', help='Wait after each counter.') + parser.add_argument('--exercise', action='store_true', help='Exercise the program being studied using sampling counters.') args = parser.parse_args() @@ -48,19 +50,32 @@ def main(): print("no counters found") sys.exit() + if args.exercise == True: + tmpdir = tempfile.mkdtemp() + print("Exercising program ", args.program, " storing results data in ", tmpdir) + for counter in counters: if counter in notcounter: continue - p = subprocess.Popen(["pmcstat", "-p", counter, args.program], + if args.exercise == True: + p = subprocess.Popen(["pmcstat", + "-O", tmpdir + "/" + args.program + "-" + counter + ".pmc", + "-g", + "-P", counter, args.program], + text=True, stderr=PIPE) + result = p.communicate()[1] + print(result) + else: + p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] - print(result) - if (args.wait == True): - try: - value = input("Waitin for you to press ENTER") - except EOFError: - sys.exit() - + result = p.communicate()[1] + print(result) + if (args.wait == True): + try: + value = input("Waitin for you to press ENTER") + except EOFError: + sys.exit() + # The canonical way to make a python module into a script. # Remove if unnecessary. From nobody Mon Feb 23 13:32: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 4fKMGP4M8Pz6TP0H for ; Mon, 23 Feb 2026 13:32: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMGN6bFqz3HyB for ; Mon, 23 Feb 2026 13:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CeJm/qwgzo7p5/5+DXWALZ8B4Sj9y0F8VzuAoQCb9q4=; b=qWh1bQ927ijMy1/oSlFsmcDbrqszuTmbbGtQa4krWRQbw4jn3gX4xyJMxouPzcMo+8kO0U 8OWtj2c0YBsWUE8MwsmrxWfoVPi5lkBlQMia9GlLTkgGvmc/P5CrxLBPdtN7VWLhln6XGa H10r5RCl3Usy4ujYdF+YQfCm7Xl0YmJLA+clWbTVJfXNvMHP/ewcOBWec1OSAl27my0Ymm DzbVo5Kpi1LP8cTf5nFyf+uTp3XCJr7GgJz0b2z1MYGzUko4YkjeMhVTY++T35eIGpMkEK 3Ckor1ZSaaoGNidlm6yfYadbffRS1Q90Wx2XCFMX/7JamwpV7lZp6siZRMvZNA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853532; a=rsa-sha256; cv=none; b=F7vG0knkbuwm4rXDyiJ9MEuPZ7lCZgtWDtWvDFWNCb60G3YwTa5XY9t+Gmt94UhlU0uODR hnK+Hy1lXQkjkboiKr8zR8Yt6q5jcJmL5lJikyQvHnC/alz3kCIqnjN88gsAUOsCjI9Wic zV2/nAkAKgsemoVMKcQCUSC1RNkpdXrPy0wJCIt5S6DoZLUegQHUcBmh6y99yxRZgh1Cnk agN0dU+IQhWDPOc1dly1LwFnu0hOW7CFqJfL8j65UMKWR9zgYzPbq8rQE5q1O0L3bRpkRn NSljwPUBupGJkSv+vwwh4JWIJF7QOWe55XkNtjNmZB1N6h4burPFdZsFFUwCFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CeJm/qwgzo7p5/5+DXWALZ8B4Sj9y0F8VzuAoQCb9q4=; b=e+M8xNLbw3SKxReDfEjwrotA6r41WFTpigXk1rh8WxPqgNRBxC1eotRdHWRef7MDicx9Pu rZeZrs2hImmLkKtUB3dq0BADSyd+zA0h/0N3fl7gPw91g5ITS1EMFhDFamNq0jaGp8zhio XyhRu1IswGPl5NO5MkPtq7U4yQ+YMQ0kbDQs9IoV3Fjz8QvVtUEEK0VnOijFdl7fz2h7qm 8aSqXCLlg19ui3Q6RXaIQBilPZRv2WH0wdHyWd05nIdM9oohxP1zK/Jdx+WlIN/OXRDb22 7DkweSkzJ+PAbIwfEZEfczNvrwlnd31QoOZ9yvypthJizyhy9j8v4oS5PeK7hA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMGN5F36zXPb for ; Mon, 23 Feb 2026 13:32:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47835 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:32:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 4db1b93235c4 - stable/15 - Correct the data collection arguments. Add proper tempdirs. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4db1b93235c4f657bdf6cdb81891fe46d5f8bb18 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:32:12 +0000 Message-Id: <699c56dc.47835.4d61270a@gitrepo.freebsd.org> The branch stable/15 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=4db1b93235c4f657bdf6cdb81891fe46d5f8bb18 commit 4db1b93235c4f657bdf6cdb81891fe46d5f8bb18 Author: George V. Neville-Neil AuthorDate: 2026-01-06 08:17:38 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:31:49 +0000 Correct the data collection arguments. Add proper tempdirs. (cherry picked from commit e018fedef0a6389240322da9fa4b9fa9971f6e59) --- tools/test/hwpmc/pmctest.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index f54541aeea1e..8accdf09e69a 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -20,10 +20,12 @@ # prompt would go to stdout you won't see it, just press return # to continue or Ctrl-D to stop. +import sys import subprocess from subprocess import PIPE import argparse import tempfile +from pathlib import Path def gather_counters(): """Run program and return output as array of lines.""" @@ -50,8 +52,10 @@ def main(): print("no counters found") sys.exit() + program = Path(args.program).name + if args.exercise == True: - tmpdir = tempfile.mkdtemp() + tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-pmc") print("Exercising program ", args.program, " storing results data in ", tmpdir) for counter in counters: @@ -59,8 +63,7 @@ def main(): continue if args.exercise == True: p = subprocess.Popen(["pmcstat", - "-O", tmpdir + "/" + args.program + "-" + counter + ".pmc", - "-g", + "-O", tmpdir + "/" + program + "-" + counter + ".pmc", "-P", counter, args.program], text=True, stderr=PIPE) result = p.communicate()[1] From nobody Mon Feb 23 13:32: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 4fKMGQ1y2Dz6TNpG for ; Mon, 23 Feb 2026 13:32:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMGP6sGjz3Hw0 for ; Mon, 23 Feb 2026 13:32:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853534; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YjbkcYZPDK9/Mq77BCFopJAIFyH9FQ6JhY83LekRH3E=; b=x5vYyON/kEjBYgSMSZF6ohPFIX2cV9NEciZ+cCm25gMPwK5pC0AqkWlpl+RlowWILqJoLO fam8316ZEbXrdr2Gn3qoeWPDSHrL3pEoOgjmYQ8/dOjRWatSShTPaSTiSR6NRFguHKpxvu Uha0RGlvb+wkFrMQF+z2VW6PIOZEPuAkwr1a0OM6dDxf3jXqof0E5UfNEEWJjvL69x7LVN ouFvnePc/yOlfwWzv30GqA8NvDUrjGbOCGsz7jLyu+j0+WZBe0gdfKdgASKIPJeKlF79Gq n93ilWg5Ml0yhuTp62Wye1afBmVnuCT5r5j7sXGgos/hwIl1HrQ4KLJDu+rt6w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853534; a=rsa-sha256; cv=none; b=xD1XFxSUhBlCKoVZzQEumrb+jFcPr4hjpguO8aKHFt7frHduQPlGKPjgpEJ5Jv4Cw9PjQX 7A/bk7qUafUawwsOiUE2N6PArAbYsZI2YHZKYsFP26NzWYzWiBvL2moaAzmDjB8SywsJBt gWy1NzR+jgldHz61ErxTgcL4pMPRQa4TVrH+bBel7+LIo0rL73FUA+oadMsAZrO/PStzae Exa3F1ou9uaYrX4cqVFwPS+CNT+sBnKUN+ai2EUWpHA/XBEulaJpBedqk636WQG2XcCg+v u8zKe8dAwz+KIqaM7a/LYqMRoU30k5UBPgYAFakWeJd6GcpxHk+3AKMFLH0Y3g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853534; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YjbkcYZPDK9/Mq77BCFopJAIFyH9FQ6JhY83LekRH3E=; b=WoQ52IVQF0E2C4hrwXq4eFEmQ0Xw+tHHAsVqvgsh7ViNgDrJt3s48TzhQW0v09BoeIRmhX h0SW4Y8XFijHRipprZdRdq+y0vpRcDtcYK+hqsfH+jas1KM2SxICmikPO8ZitVgrnETfuf 4Vyf9ZIB5C1xiEzJY+LwZAG62pNx65Nfylr+XRmguBYUuy+x0zEckY5tEzMWDYML3gBCNJ e2+mB/4wrNE4ScnY5kzIvkwMXG6xHd3mh0BDXGuzhJDsV8ouDHru3F9unM+qe1JqrBdGiw s82v4JyNVZkCdag0bj9M+UbyER0ald3nmhDkYDV5DhKcuw4tDs4YazTlg7xWaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMGP61lkzXPw for ; Mon, 23 Feb 2026 13:32:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 471a2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:32:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 4a9a27036186 - stable/15 - Split counting from sampling. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4a9a2703618663ccc59a114d1463ab5ef710ff2e Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:32:13 +0000 Message-Id: <699c56dd.471a2.d285ce0@gitrepo.freebsd.org> The branch stable/15 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=4a9a2703618663ccc59a114d1463ab5ef710ff2e commit 4a9a2703618663ccc59a114d1463ab5ef710ff2e Author: George V. Neville-Neil AuthorDate: 2026-01-06 08:55:14 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:31:50 +0000 Split counting from sampling. (cherry picked from commit 77153a491e3b31475f5faddb21271a0a8e0d4a9b) --- tools/test/hwpmc/pmctest.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 8accdf09e69a..588fe6d79e83 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -42,7 +42,8 @@ def main(): parser = argparse.ArgumentParser(description='Exercise a program under hwpmc') parser.add_argument('--program', type=str, required=True, help='target program') parser.add_argument('--wait', action='store_true', help='Wait after each counter.') - parser.add_argument('--exercise', action='store_true', help='Exercise the program being studied using sampling counters.') + parser.add_argument('--count', action='store_true', help='Exercise the program being studied using counting mode pmcs.') + parser.add_argument('--sample', action='store_true', help='Exercise the program being studied using sampling mode pmcs.') args = parser.parse_args() @@ -52,22 +53,38 @@ def main(): print("no counters found") sys.exit() + if args.count == True and args.sample == True: + print("Choose one of --count OR --sample.") + sys.exit() + program = Path(args.program).name - if args.exercise == True: - tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-pmc") + if args.count == True: + tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-counting-pmc") + print("Exercising program ", args.program, " storing results data in ", tmpdir) + + if args.sample == True: + tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-sampling-pmc") print("Exercising program ", args.program, " storing results data in ", tmpdir) for counter in counters: if counter in notcounter: continue - if args.exercise == True: + if args.count == True: + with open(tmpdir + "/" + program + "-" + counter + ".txt", 'w') as file: + p = subprocess.Popen(["pmcstat", + "-p", counter, args.program], + text=True, stderr=file, stdout=file) + result = p.communicate()[1] + print(result) + elif args.sample == True: p = subprocess.Popen(["pmcstat", "-O", tmpdir + "/" + program + "-" + counter + ".pmc", "-P", counter, args.program], text=True, stderr=PIPE) result = p.communicate()[1] print(result) + else: p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) From nobody Mon Feb 23 13:32: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 4fKMGR4v8tz6TP0x for ; Mon, 23 Feb 2026 13:32:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMGR0Xr0z3JC0 for ; Mon, 23 Feb 2026 13:32:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853535; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HTTQmg9YE4V+oO73aDfrHsRVHmMkccJIeTgHEKUzB5U=; b=DqQgJ1XbYvjFV1JB3HMob+pmLCCDLRsYBFLb5XlqkDFe1z6IOkDk5mIVDmxR2/HHu7c+sF e0gcwUTQEsuujIKdHYBvklxRzuZJzXXjs3YKf9CYcRXPA+Qg3lc1oTQtAYNqYggNSrZZZ8 L5Ho7N79hoE8+Kj0usLEsj+bW0dgZmjOAGW6+WaHwOacRNY0+NZ8xNA/Gy6tQg3exPOTAn XNS1Hwa9iJdby3auHpRWhxXNa9DjqsaOjur0XaciGqPlvy3fQGg3jSLQ9d4AVHYMAeEYIs 6ROZfkNPWkap06VNbosFSwQzZ/gb2EGEqALr18BExGwbuG41vCokE/C38Iy0Lw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853535; a=rsa-sha256; cv=none; b=YEE6dtuVzIf3kzJPdhsQXfNxKq+/xfpVBcHVlBAfoORpvBGr18oI52xVzC0kJf+60iwfJV nFS3Fve3mFMgzVxRW5LDdopEwhOOTFANIfBYmhmabjVUIEPdc8cqx8MM3gZ68HFaXcZJqd hcC/RIWbsbtzpZxUe64E1/3WSNforiwTzu6eglUZ4s+vGVYU0xqd/GN+DXrFR4l1hYWiQi SrycVSjmHe5HzjhYh5Tl0g18rPNEn6rq0fWpzoXu25fZO7IcYTLlGw5+4v9SP6cKQOfdUC Kco3n0IsnafRg4gmG9U5CwxJwZHHw41xvaxNHbpDwp57pjSHFwgJXSuvsBrYGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853535; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HTTQmg9YE4V+oO73aDfrHsRVHmMkccJIeTgHEKUzB5U=; b=lCyKMgMnrSqttPq3P9TEn9bYY3z27OpuXXivmqvdXorQqI0vfLULMPSDvOM4JuwQbBNX24 E8XLwf+BaqDqkOR04AHNyLdkDm2c19wBlSnP9O5D4PNYz5VWnyshwX8kfwM3NCW18HoYxo akkwkYcAZmcWqeXA8XEjFbLuSc6kRyd4UDqZV7hsGYP6rsneepmelD/dpQmQlrdle/Tf0c C+U5EaTw+kxxwkL63tVKuo3pgnIzZ24UFyefDavDP0dAnRhBNoHbaRuZ4RazAflsEhN6ho wBGjUPB5bDj7UAIHeDSTzbJFXs+0QRzqfYnT6f0mo4GGmJOGuZzRbW1uWL1KPQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMGQ6ZyVzXjt for ; Mon, 23 Feb 2026 13:32:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47839 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:32:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 2b00065616a2 - stable/15 - Extend the script to collect gprof data List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 2b00065616a2857e58a68ba97d3f0136a53108a4 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:32:14 +0000 Message-Id: <699c56de.47839.2624a319@gitrepo.freebsd.org> The branch stable/15 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=2b00065616a2857e58a68ba97d3f0136a53108a4 commit 2b00065616a2857e58a68ba97d3f0136a53108a4 Author: George V. Neville-Neil AuthorDate: 2026-01-08 04:13:04 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:31:50 +0000 Extend the script to collect gprof data While we're at it, switch to simple waiting from communicate() calls. (cherry picked from commit e2bedc7d69926426a710d035df51e0a0812d38b1) --- tools/test/hwpmc/pmctest.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 588fe6d79e83..ba20306f1d68 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -26,6 +26,7 @@ from subprocess import PIPE import argparse import tempfile from pathlib import Path +import os def gather_counters(): """Run program and return output as array of lines.""" @@ -75,20 +76,42 @@ def main(): p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=file, stdout=file) - result = p.communicate()[1] + result = p.wait() print(result) elif args.sample == True: + pmcout = tmpdir + "/" + program + "-" + counter + ".pmc" p = subprocess.Popen(["pmcstat", - "-O", tmpdir + "/" + program + "-" + counter + ".pmc", + "-O", pmcout, "-P", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] + result = p.wait() + resdir = tmpdir + "/" + program + "-" + counter + ".results" + os.makedirs(resdir) + p = subprocess.Popen(["pmcstat", + "-R", pmcout, + "-g"], + cwd=resdir, + text=True, stderr=PIPE) + result = p.wait() + gmondir = resdir + "/" + counter + if Path(gmondir).is_dir(): + with open(gmondir + "/" + "gprof.out", "w") as file: + p = subprocess.Popen(["gprof", + args.program, + program + ".gmon"], + cwd=gmondir, + text=True, + stdout=file, + stderr=subprocess.STDOUT) + result = p.wait() + else: + print ("Failed to get gmon data for ", counter) print(result) else: p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] + result = p.wait() print(result) if (args.wait == True): try: From nobody Mon Feb 23 13:33: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 4fKMJ85L2Kz6TP8q for ; Mon, 23 Feb 2026 13:33:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMJ835NVz3Kq1 for ; Mon, 23 Feb 2026 13:33:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yRQ6dXXUTiEsyMcBiCB/o9S8fh+lTFrOYOvDHKGCAQc=; b=KdHcb35myY9X53LzQKugZWx3hies5j5Ke4t5MDbJ4gqtmnCC4m8FJmOvt09BrYa10YpyYB 1VUcvy9l44zse34jiKGsiImZLTP/eLWG6aE4En5qtSVdJ19CbOb7oDiIUVeiMkYPzsmCvO QX8OaNig5eJWZL5Ng6bsuRuEn44dUTaONwQVJJjXoytaZACjLrMwUpsU3MSmcvJBBOWK1y jmfDxi+bRKJ6l/e/efw84scmpqvbhpaqGnjpQ/Oo3cMraQibw5c5zdnGyAfFI3TE6uGEfG 949KIQlTNXP+kjW2bTapGll4LY4bmrWKUiioYu4FStiYG9FT8T2KSxwkVfjTYw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853624; a=rsa-sha256; cv=none; b=Vqn/QZLWOtBGjMPhucitGHXzh2Pyn2q4d+tIZBgs5fwJt6aqtptw8giIw9katsCucKsYY+ SwFJ8ZcGl78GaaRKUHiryGTU2pb1zoMpGBFhPA2A81lr2WRko1dDeqYq+Vc6x0paVkY535 3JFhT8nvMv1xQ3vLrCUtBDDMb9pQL8p+YDHXOgfR/clg1l4LetwDeisoDfa86bUgxHJlKD u7oNNnXrSMi0ngWGKUsga9CT0XGPIURQxVOA4rUJu9OeOZI4ExJ2MvaFEkReAV1NCFuZEX EFdD3CkS6YLHGYJCenpeZI/H7pki3ULNC6WUEZcYsPpHtYJXx8MCeiHmPBJYCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853624; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yRQ6dXXUTiEsyMcBiCB/o9S8fh+lTFrOYOvDHKGCAQc=; b=xUzhD0KEM/7b39EcXuF9pxpeeBVAySuQjylxEDOKswy2foqypmIssSiIGC5jAnqFsCivms KCcU1HCVSbsYKaDWl19kQG6oZ/NISYMQlARgfM8PhHOtNVO24wRmTM+VKc7oGWswTwMRtN u/yWag98dtc+xlJToiQ2P//bSKcv1HgdRNDCFkFit03HIUVsQ9BTLavGdKDDwHZOxoyfxr 7i0mq4KESlEeu44y2d2mRs4UfwmBI5qOK6TFAOzYE2S4YvfeJ3BpA7L5qH1Cjo5GQuNpo+ DXIUsFr1rr/pmQu/ehekaB58vU6MkaUrhalzuWO7c8XhT5IJ0+jkyNu0TtPNnQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMJ82gWMzXRm for ; Mon, 23 Feb 2026 13:33:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46167 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:33:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 9f80b89c5a4e - stable/14 - Convert fully to Python 3. Remove licence text, only keep 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: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9f80b89c5a4ee66c9428f0d240899d77f442079f Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:33:44 +0000 Message-Id: <699c5738.46167.75b11eaa@gitrepo.freebsd.org> The branch stable/14 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=9f80b89c5a4ee66c9428f0d240899d77f442079f commit 9f80b89c5a4ee66c9428f0d240899d77f442079f Author: George V. Neville-Neil AuthorDate: 2026-01-05 11:40:12 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:33:27 +0000 Convert fully to Python 3. Remove licence text, only keep SPDX. Update to use argparse rather than OptionParser (now deprecated). (cherry picked from commit eb1c0d74cbb99f329767b3d565ae57a3ec032bee) --- tools/test/hwpmc/pmctest.py | 73 ++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 54 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 4bd4910b00a9..bda2f3500d7d 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -2,37 +2,9 @@ # SPDX-License-Identifier: BSD-3-Clause # # Copyright (c) 2012, Neville-Neil Consulting +# Copyright (c) 2026, George V. Neville-Neil # All rights reserved. # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# Neither the name of Neville-Neil Consulting nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Author: George V. Neville-Neil -# # Description: A program to run a simple program against every available # pmc counter present in a system. @@ -44,17 +16,19 @@ # This should result in ls being run with every available counter # and the system should neither lock up nor panic. # -# The default is to wait after each counter is tested. Since the +# The default is not to wait after each counter is tested. Since the # prompt would go to stdout you won't see it, just press return # to continue or Ctrl-D to stop. -import sys import subprocess from subprocess import PIPE +import argparse -# Use input() for Python version 3 -if sys.version_info[0] == 3: - raw_input = input +def gather_counters(): + """Run program and return output as array of lines.""" + result = subprocess.run("pmccontrol -L", shell=True, capture_output=True, text=True) + tabbed = result.stdout.strip().split('\n') + return [line.replace('\t', '') for line in tabbed] # A list of strings that are not really counters, just # name tags that are output by pmccontrol -L @@ -62,37 +36,28 @@ notcounter = ["IAF", "IAP", "TSC", "UNC", "UCF", "UCP", "SOFT" ] def main(): - from optparse import OptionParser - - parser = OptionParser() - parser.add_option("-p", "--program", dest="program", - help="program to execute") - parser.add_option("-w", "--wait", action="store_true", dest="wait", - default=True, help="wait after each execution") + parser = argparse.ArgumentParser(description='Exercise a program under hwpmc') + parser.add_argument('--program', type=str, required=True, help='target program') + parser.add_argument('--wait', action='store_true', help='Wait after each counter.') - (options, args) = parser.parse_args() + args = parser.parse_args() - if (options.program == None): - print("specify program, such as ls, with -p/--program") - sys.exit() - - p = subprocess.Popen(["pmccontrol", "-L"], stdout=PIPE) - counters = p.communicate()[0] + counters = gather_counters() if len(counters) <= 0: print("no counters found") sys.exit() - for counter in counters.split(): + for counter in counters: if counter in notcounter: continue - p = subprocess.Popen(["pmcstat", "-p", counter, options.program], - stdout=PIPE) - result = p.communicate()[0] + p = subprocess.Popen(["pmcstat", "-p", counter, args.program], + text=True, stderr=PIPE) + result = p.communicate()[1] print(result) - if (options.wait == True): + if (args.wait == True): try: - value = raw_input("next?") + value = input("Waitin for you to press ENTER") except EOFError: sys.exit() From nobody Mon Feb 23 13:33: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 4fKMJ95LFQz6TP4D for ; Mon, 23 Feb 2026 13:33:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMJ93Zzvz3L0g for ; Mon, 23 Feb 2026 13:33:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ryQLJWOy0MBUFHonYX9XIpsbuVb0XCyEBscQnj6phw0=; b=f2LJ9m8FCv9szhFw9hc+GFHPdCgALv/3tLijjtc1hSBZ2U7HYXuOWfTpW6e4jHenfRWB1T N7OL3QjOA212qTABuMgRCAoIGVPrhEES17z403Ts7jfE2WUbrKi1bFqTju9jSoxzFa8G/G h6sT9p4oVJNCoDr5RiVqNJ87fp2P0c/CsxzVbjbUpHeOWF7BFoXIuY4ywFciMwXhcYEDOq WEcxAVRm9UTjNRYM+EbsUTJ29AVF8+9xK8zQdFFh6E5qkPHBUN64wYkxDAUnK2+Gl+na5O SZeA3hjcFaoB9G9X0PAD5TwjfBbeSj+nQaXu0if8Eh4LHcdU+as6IuIvIYhYyg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853625; a=rsa-sha256; cv=none; b=GsfY0l7B27C7Q6AAmjIAr9+Q+4xrsufmtikSiS2kEDgJL9WN6IYSnZENeowxAwL6EHrK9A AZKTOamvecx+tXNjtv7kxUdW7EK0xO6EiOkKzT35y/Wvgqx5lRjxNjEyY/x+klaSsVX/95 hVZYS+jCQdX2Y9ifn/E6g5yMSURFdlwpHqJByPYNkPIHDMApLoqfkIi+aWIV3ZZ8ezL7gX EGHaB2Uqs4NZcP0dbTct7nq9FggPDcQ9j1BPm5d+jTLBWQw1vy2U21HdYUgZzCwegGJTiq 4ZTuM4bsCrG0LeF2Ogz+JEow43rDEqfSuPEyKflPRUU3Sa92DdOZkohyvxD5Gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ryQLJWOy0MBUFHonYX9XIpsbuVb0XCyEBscQnj6phw0=; b=SK3ZEcsFB8ukN4v4vncMyPTJO2uTN9TD9UmWfPp8tbOdZ6i7SQM4z2Uz96vgkz5Ya1HDry ILRevrJgU8OXlNYgmIuUt/DcLCaCKzY7pGTxqstY0vErkJnq61Im8Gt4lVGXxEivO5F2Tx aOSkkPzf0B/QTJ2XnOWtOMGUMOeqm69vbQUFiyrZNNW4+0XPoFmgAZnjKj73DcoR9t9Zf5 94zFUyM26VKLg1RsNXhGUgEMJkxGPlPywlBc9SIfPnsP+PhoYQhVPXvvIELm2omX4LjTs+ 7i/XI54XUwG7DO5/a9vv8buiPPFg85CuMhHrL4cKQBp6JHsg0OdHjaXCAhxs8A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMJ939mnzXgY for ; Mon, 23 Feb 2026 13:33:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47f83 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:33:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 711ab199b51a - stable/14 - Start adding an exercise mode for programs under 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: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 711ab199b51aae8fa4eaddfd6a3ff1e63205375b Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:33:45 +0000 Message-Id: <699c5739.47f83.5c531706@gitrepo.freebsd.org> The branch stable/14 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=711ab199b51aae8fa4eaddfd6a3ff1e63205375b commit 711ab199b51aae8fa4eaddfd6a3ff1e63205375b Author: George V. Neville-Neil AuthorDate: 2026-01-05 12:30:22 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:33:31 +0000 Start adding an exercise mode for programs under test. In exercise mode we collect data for every available counter on a program and keep all of that in a directory in /tmp. (cherry picked from commit 4a1b69ade6b5e8665dfb4d0cb683854705192a68) --- tools/test/hwpmc/pmctest.py | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index bda2f3500d7d..f54541aeea1e 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -23,6 +23,7 @@ import subprocess from subprocess import PIPE import argparse +import tempfile def gather_counters(): """Run program and return output as array of lines.""" @@ -39,6 +40,7 @@ def main(): parser = argparse.ArgumentParser(description='Exercise a program under hwpmc') parser.add_argument('--program', type=str, required=True, help='target program') parser.add_argument('--wait', action='store_true', help='Wait after each counter.') + parser.add_argument('--exercise', action='store_true', help='Exercise the program being studied using sampling counters.') args = parser.parse_args() @@ -48,19 +50,32 @@ def main(): print("no counters found") sys.exit() + if args.exercise == True: + tmpdir = tempfile.mkdtemp() + print("Exercising program ", args.program, " storing results data in ", tmpdir) + for counter in counters: if counter in notcounter: continue - p = subprocess.Popen(["pmcstat", "-p", counter, args.program], + if args.exercise == True: + p = subprocess.Popen(["pmcstat", + "-O", tmpdir + "/" + args.program + "-" + counter + ".pmc", + "-g", + "-P", counter, args.program], + text=True, stderr=PIPE) + result = p.communicate()[1] + print(result) + else: + p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] - print(result) - if (args.wait == True): - try: - value = input("Waitin for you to press ENTER") - except EOFError: - sys.exit() - + result = p.communicate()[1] + print(result) + if (args.wait == True): + try: + value = input("Waitin for you to press ENTER") + except EOFError: + sys.exit() + # The canonical way to make a python module into a script. # Remove if unnecessary. From nobody Mon Feb 23 13:33: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 4fKMJB6VmCz6TNyZ for ; Mon, 23 Feb 2026 13:33:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMJB4WJPz3Kq7 for ; Mon, 23 Feb 2026 13:33:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853626; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FyMOARZS5yEwU5D3R0X8si9j8VpPhhxyEXWgKESTrtc=; b=q6DUUnN07EEPs4JMOs6/RPn2tMhD+Yz0qPaiLiJklA6HEHXcxMHq32CBgMNEJ6t8+XhO8Z jXl27UpCGZbnKDofe2KZSY/6uddwyi9nfVh7+8DxmYmowkCWT3wRhqNHHw48TNtuOhyd9I TzvwG12HTrrXhe34YAZU/bgLC8Fh996/nIyOp3hhJRNLD1BMAbsLdFu/S6T10VblxP5dlj bWTWzgoHRah/9RjAOySjFWwpzRMAF/5XxI8C5kpAUDRzkMMccNOl2vnpQRaQVeBWoMorYg /2a7leELVKABAm8dcLZ/pKGQCxone0wWmIu3OI5zQ3KcIWaOD4cBCdwxdg0YKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853626; a=rsa-sha256; cv=none; b=oSjGi67TexAKZh6qU58c8wKw2G1W8WG/KhvsHBA91DN2vHfe2s5bnh2vs2uVm7VNVzLMHl GkCMhd4ekGBamalG6QnCbOtE2oeJj5WJs0Sxfbt4zZhnXsiOF2L/cSwpU2qOpDlqLld8LP +gep7AT0EwE8uxA1rDLapODugwC/sIDs1un35J17zsUVhmMU1f4smGJbdKpDKPIuwWzVME oDiBcIjeFIz9aWPUujb0YKopq/AdjOS3yGY2lCg9ztGOVspYarv9EyANdZXJ9zovPGsdVF Xej1Qiormo7cavl99OqWT3WRprB+PH0AwXpodOJo7GpyM3oIt0jc07VwbyqrGg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853626; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FyMOARZS5yEwU5D3R0X8si9j8VpPhhxyEXWgKESTrtc=; b=PufiNDVxOYfYV7/i7L8XTyJb1WZ3QwxBQE7U3eKrTNJ3MubYt7Pnr13s/xw2qrRlc1lXRb je8p5qEPwv7ppTpjNmhN3B59UEuKw7KR2kN+S0NDbX7hjGVY7TtEolPUNWzOvAb6JbcOR7 oCO9VyeSsbAxZDx+UJxNyCu4Sd34qlzkcqS1jflVzt93lOldGXoxpfJoyhcMhSLVb/32iu Q1JRNzfq05uMbqvlzoWlvyCYxJ0QIxenSFX9Mxsats5IK3grSCox+TmTF5vr3y+5i3kQhM MQ2S+xzbwe1zWofldmb3kxwMjuORfW/nCxp/g8wndbVJllg1yH3Fif7Pmzy7lA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMJB41DkzXgZ for ; Mon, 23 Feb 2026 13:33:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46bae by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:33:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 329655d89d9f - stable/14 - Correct the data collection arguments. Add proper tempdirs. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 329655d89d9fdb03eac1dc0fda0aae3de61c0b93 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:33:46 +0000 Message-Id: <699c573a.46bae.1c570d3a@gitrepo.freebsd.org> The branch stable/14 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=329655d89d9fdb03eac1dc0fda0aae3de61c0b93 commit 329655d89d9fdb03eac1dc0fda0aae3de61c0b93 Author: George V. Neville-Neil AuthorDate: 2026-01-06 08:17:38 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:33:31 +0000 Correct the data collection arguments. Add proper tempdirs. (cherry picked from commit e018fedef0a6389240322da9fa4b9fa9971f6e59) --- tools/test/hwpmc/pmctest.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index f54541aeea1e..8accdf09e69a 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -20,10 +20,12 @@ # prompt would go to stdout you won't see it, just press return # to continue or Ctrl-D to stop. +import sys import subprocess from subprocess import PIPE import argparse import tempfile +from pathlib import Path def gather_counters(): """Run program and return output as array of lines.""" @@ -50,8 +52,10 @@ def main(): print("no counters found") sys.exit() + program = Path(args.program).name + if args.exercise == True: - tmpdir = tempfile.mkdtemp() + tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-pmc") print("Exercising program ", args.program, " storing results data in ", tmpdir) for counter in counters: @@ -59,8 +63,7 @@ def main(): continue if args.exercise == True: p = subprocess.Popen(["pmcstat", - "-O", tmpdir + "/" + args.program + "-" + counter + ".pmc", - "-g", + "-O", tmpdir + "/" + program + "-" + counter + ".pmc", "-P", counter, args.program], text=True, stderr=PIPE) result = p.communicate()[1] From nobody Mon Feb 23 13:33: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 4fKMJD1wgyz6TNqS for ; Mon, 23 Feb 2026 13:33: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMJC5nWqz3Kxl for ; Mon, 23 Feb 2026 13:33:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fvnu3wcDDB/5C/6VZ60ZR1z2PQg2K4P3i50sAOkMsNs=; b=a45tKSNXhoC0j3WlEPdp0M0tRPy1CTWI3VA446JNug7EaMW8ZBIiinEdEwNM69raV605Lw Ae8J3PkII/fLupXqN6mIkNW3gR3pElQgZGuWDjjC6pB5e7gtTVdzxm3CxscFJl+E+/L+ZR zCSGUYgTlauQTBMue+IA0UFBpWvdNt7xSLDggtVoHSPNz4TlFsuXxzxK6Re2eFX7Chwh+n mGRP3tXhPCr4q/6FK+TbhKohiJvKMImqkoekLoGWsI+4b1BAuIcaaI35M50KDi4zlYxQAR 1T37k8YlME5UFZeZM4PPknB40aRxpbdwpkIeUUzcpzgQfKSs+hnRuyhK7Z1NBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853627; a=rsa-sha256; cv=none; b=JIbIH3qUvAjjwAqNLJGYPxw+MWVeNd3wh1kQh0mU/H8aekF/V5n6+uM0kyEO7kf4vwFRv0 J1HxzirE3Q4kHtj+fWxQtUjS+6dz8W+wLaRunFEsgNgT9F5ecTWWa3pcVEc0BS/WlApXOe BFYaNnxK6AAE4pvVDMD0ZGS+TTy/RCjj1snzVlTWk9EsQ/CAsNiYxaWEJlcmIpMnYttJdi zCgRi1c2WdbgJMZX4btqhC40XNonIDQuOIG9D+awq1EoJBgtA7oze8D3bXMJkHV1f6bbFz o6yRJHSe5TwOqdX/FDK2KzfbjdrCLrKVEx0W+CZnHLiOLwbxUnkCCnrpfiruQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fvnu3wcDDB/5C/6VZ60ZR1z2PQg2K4P3i50sAOkMsNs=; b=tS/GpsRANFz7/W2ilAE2Bx7lX6Et99Yk9hcKd6HLz3Ov7XLyKCZHF8d3yAHtBrLFLg0C/k 5GahMM5MLjAIJHQ3kt46twPA65EkRVfDmBLz6gugPWnX4KDWuoTvI1tDOyfNHTDVl2u4us yh4AUNW6S8TQnyz4vyqzRqFAFFdSZRKt7XUlSImKENbgJyb1NRDjMWyN6ya5UfdrHNjNxN E8wfSSKRYJLejEjwn39+XyAmLYlNCdzvcI1IzLTN8Wjdbdqd5UoY/6CDqTwkSTQXQAsVmO J3hh/us4+rtE4kk3xSm1Aaicw/Ojzmm32FKKq+wUk7Mhc4WStpq64B6thWJveA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMJC4pFYzXRp for ; Mon, 23 Feb 2026 13:33:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45179 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:33:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 21b4ec51c215 - stable/14 - Split counting from sampling. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 21b4ec51c215fb6aff5e29c33639b5095fcb022c Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:33:47 +0000 Message-Id: <699c573b.45179.5eb96e19@gitrepo.freebsd.org> The branch stable/14 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=21b4ec51c215fb6aff5e29c33639b5095fcb022c commit 21b4ec51c215fb6aff5e29c33639b5095fcb022c Author: George V. Neville-Neil AuthorDate: 2026-01-06 08:55:14 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:33:31 +0000 Split counting from sampling. (cherry picked from commit 77153a491e3b31475f5faddb21271a0a8e0d4a9b) --- tools/test/hwpmc/pmctest.py | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 8accdf09e69a..588fe6d79e83 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -42,7 +42,8 @@ def main(): parser = argparse.ArgumentParser(description='Exercise a program under hwpmc') parser.add_argument('--program', type=str, required=True, help='target program') parser.add_argument('--wait', action='store_true', help='Wait after each counter.') - parser.add_argument('--exercise', action='store_true', help='Exercise the program being studied using sampling counters.') + parser.add_argument('--count', action='store_true', help='Exercise the program being studied using counting mode pmcs.') + parser.add_argument('--sample', action='store_true', help='Exercise the program being studied using sampling mode pmcs.') args = parser.parse_args() @@ -52,22 +53,38 @@ def main(): print("no counters found") sys.exit() + if args.count == True and args.sample == True: + print("Choose one of --count OR --sample.") + sys.exit() + program = Path(args.program).name - if args.exercise == True: - tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-pmc") + if args.count == True: + tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-counting-pmc") + print("Exercising program ", args.program, " storing results data in ", tmpdir) + + if args.sample == True: + tmpdir = tempfile.mkdtemp(prefix=program + "-", suffix="-sampling-pmc") print("Exercising program ", args.program, " storing results data in ", tmpdir) for counter in counters: if counter in notcounter: continue - if args.exercise == True: + if args.count == True: + with open(tmpdir + "/" + program + "-" + counter + ".txt", 'w') as file: + p = subprocess.Popen(["pmcstat", + "-p", counter, args.program], + text=True, stderr=file, stdout=file) + result = p.communicate()[1] + print(result) + elif args.sample == True: p = subprocess.Popen(["pmcstat", "-O", tmpdir + "/" + program + "-" + counter + ".pmc", "-P", counter, args.program], text=True, stderr=PIPE) result = p.communicate()[1] print(result) + else: p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) From nobody Mon Feb 23 13:33: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 4fKMJF1WZCz6TNyb for ; Mon, 23 Feb 2026 13:33: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKMJD63tHz3Kxq for ; Mon, 23 Feb 2026 13:33:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O90xFaBMiYNji0OoNExQnRb1t16b3MtvD4e3IkLFkBE=; b=LQ9nScVveswBYaA0r9e7Fm3KPkBQm7TL48dth3tIII+G5xvsXXh/Z9zCUh6VUQBfWn/iTR ceCXmUMmEwvKLvnUrSKObjGw3l7gHtKa5WAA01FsNUVxsRVgHm73+G9zWnUV4TWBO4MuuP 848wXs4QBwSFepxRMDH9B1M4xIA4Dwx5GnS+YLnzBfInDS92slFVAgy27eskXLyk90DIYm LVm7g81lBAik2DakBu8FrkkCym1vCM1mEihznBw3Y9kplTxdo0gOsaYCfSmzjdQM0Tgy5G UyUwlxvZD2qg4JhfbctJFmucsXbpnf+1C5HT2rBbSgtnatznvo2FjE0yg80LYg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771853628; a=rsa-sha256; cv=none; b=DeI1XCBuT5zqFPAmC1XvdABrhduYoP9k/UAaH8ttr1xZAAjq8wV0kZUE8c8ywq7CcqqGr2 H14jnA1fWC1yQoqHNdSo9vF5ti0URB2r+eHOP60sRIswQi19bxjt7B4biUcO9DFL11Z8k9 FxWIYZmYTKReUvMAsIBPSjMveHzHXwCMNHRrIGJdUN/4wH0js5VpNIJCkUz5Tuwf3YJCDU 6Oe3wfudQa9XEheuSbV2GSOnDntHLgTiRwAis5wljR0b3Glnmqjv3SkZEwO6ZDBhfWRk29 Gnw3gdTTY+jF+/G7DKaffjc8/YIiU5ugD+acbHUZH6BMq27Wxht/6SrRB37Kyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771853628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O90xFaBMiYNji0OoNExQnRb1t16b3MtvD4e3IkLFkBE=; b=a+RjJaoWhVDQJ7KjyGc5gbpPnCrCLmwtIwFfKEf6d0QFskjEAJj83sbA4rzqZ3IJEaFNFv gwiqRObx82xlv1XxBtdG5E0TPiCjcufNSw0r12F15Y14aAHdcUpRtqfa/PsX7/Ih6ZsVCT hvne4RMQRbl38F4UXzKo0wnJXdJ9DzT+u+fxVCv828nmKt6U/66Qu3pDbyj53DIyTv0DDU uP5OACCixGBQr/XADRuq5/y7klXC/ZEgwu2e/M7+VDA4MDqpgSx6Rkom7OWFKkOgHfCWui DGZNdQng4a6Khr5obyHBDYegmjBMrcfPcR5l1KOKiHA6RFbQad37E7lXOtM2OA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKMJD5bTqzXPk for ; Mon, 23 Feb 2026 13:33:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 473cd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 13:33:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: George V. Neville-Neil Subject: git: 259506ff3886 - stable/14 - Extend the script to collect gprof data List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gnn X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 259506ff38863e084398766af198c5de813f9ce7 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 13:33:48 +0000 Message-Id: <699c573c.473cd.46a2c91f@gitrepo.freebsd.org> The branch stable/14 has been updated by gnn: URL: https://cgit.FreeBSD.org/src/commit/?id=259506ff38863e084398766af198c5de813f9ce7 commit 259506ff38863e084398766af198c5de813f9ce7 Author: George V. Neville-Neil AuthorDate: 2026-01-08 04:13:04 +0000 Commit: George V. Neville-Neil CommitDate: 2026-02-23 13:33:31 +0000 Extend the script to collect gprof data While we're at it, switch to simple waiting from communicate() calls. (cherry picked from commit e2bedc7d69926426a710d035df51e0a0812d38b1) --- tools/test/hwpmc/pmctest.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/tools/test/hwpmc/pmctest.py b/tools/test/hwpmc/pmctest.py index 588fe6d79e83..ba20306f1d68 100755 --- a/tools/test/hwpmc/pmctest.py +++ b/tools/test/hwpmc/pmctest.py @@ -26,6 +26,7 @@ from subprocess import PIPE import argparse import tempfile from pathlib import Path +import os def gather_counters(): """Run program and return output as array of lines.""" @@ -75,20 +76,42 @@ def main(): p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=file, stdout=file) - result = p.communicate()[1] + result = p.wait() print(result) elif args.sample == True: + pmcout = tmpdir + "/" + program + "-" + counter + ".pmc" p = subprocess.Popen(["pmcstat", - "-O", tmpdir + "/" + program + "-" + counter + ".pmc", + "-O", pmcout, "-P", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] + result = p.wait() + resdir = tmpdir + "/" + program + "-" + counter + ".results" + os.makedirs(resdir) + p = subprocess.Popen(["pmcstat", + "-R", pmcout, + "-g"], + cwd=resdir, + text=True, stderr=PIPE) + result = p.wait() + gmondir = resdir + "/" + counter + if Path(gmondir).is_dir(): + with open(gmondir + "/" + "gprof.out", "w") as file: + p = subprocess.Popen(["gprof", + args.program, + program + ".gmon"], + cwd=gmondir, + text=True, + stdout=file, + stderr=subprocess.STDOUT) + result = p.wait() + else: + print ("Failed to get gmon data for ", counter) print(result) else: p = subprocess.Popen(["pmcstat", "-p", counter, args.program], text=True, stderr=PIPE) - result = p.communicate()[1] + result = p.wait() print(result) if (args.wait == True): try: From nobody Mon Feb 23 14:36: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 4fKNhL4ZrFz6TVGW for ; Mon, 23 Feb 2026 14:36:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKNhL305hz3SSw for ; Mon, 23 Feb 2026 14:36:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771857378; 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=6wZb1FwRiMDWxe2U24fDuJRHsmdnnR3nLRQwjYYMCIc=; b=iD7q2Ixffuz6lTc1nq8Rf2f701WGnZfx+NzOnImIlHGAaLMNc65koB4mbyfuIqLjI4qGnm jq/aywF4fHp+llpIGVzPQjeEVUY/SB5griWRzSoDuACBJfS7ahQTSF4DXzNr+vVqg/49dq q370CVWZQ6KVpiZYeX4lo8VeXGhck/t//HXMwcuXrLE4aXOqAwLQokS/3g1AxBn+5CJDMQ 9FgC89LVeiS/Zn7WeZbifldB0uqHI1U69pYGMps/i7UsDv5hXOSW9Erz42xtoHDmj6YmxB VzNkFN618ZuKx1oY7MSVtpmwsD7V/ntTrSGIsVZ5SvKp2kI10x3hcW4jxBtcvg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771857378; a=rsa-sha256; cv=none; b=O1Ldq7If4T4En8SmjbsiqNpJ28tS9PYqRTHntgo3CJuVbTxyCZ5kdrGSA9O2YmR/r3V1Bw oRWxYzVHF3HxfN/L0/TUaFZPYTkI/zfiR/vtcfbjC3FZyfcw1JyA0eZsvWPzqV3LJ6duUQ 5DC5a0i0Rgur8UYXUlkl4ZqYZzvo7+y92TYBNJ/EnwoVfPJfo/YL/Z+bwGSD8u/AUypnCu JLWgKdSvUY4/VvOpddFGlw8139utEYIla1377rWcttYcslEsOpCyngwbu/ta4jaIwt6Ti4 EKoaC7TKeWHWl4Z0tiY3jt1VM7gWHDpY7t47ieNJYG4AAt9W0BTfbX8nZudEMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771857378; 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=6wZb1FwRiMDWxe2U24fDuJRHsmdnnR3nLRQwjYYMCIc=; b=Bzw+aUDPKFio5xmG17NC4vQRDU0/Cu5F0hHSHsyONIEdDKTrquh5xlLrKHMz8YcdYtcv4V 05xm5ds8rWjNkan+1NGfcZQk8ycM3S51FfcJZzbPUDNLTLhFy5kuDta9vdF6oRqvbB2qst ttGyqJ5eYP+ZWinGuI7W5vQFF2KyQ4BEyDqsR/y3KRiY5ITvJFHbF0zDF/qrjgZmY1I/V+ 9vP3XUx8t9Fuh9K1uoyDuy3MfGf69kWsuJJbxWv8swd+ROvHcp8ZwXZAS/qLPRGjk2U0AK kv7UbJCoI8cFvOI0gNEZTqt6x3suG0knv1xHr21us5Szqek05gf1VgNRVlCaEA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKNhL1xxwzZWv for ; Mon, 23 Feb 2026 14:36:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e5f2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 14:36:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Nathaniel Braun From: Ed Maste Subject: git: 3ca02a70f7f9 - stable/15 - vt: Fix handling of backtab List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3ca02a70f7f94f7479ffcd3ed7ca6d83ec58af10 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 14:36:13 +0000 Message-Id: <699c65dd.1e5f2.5f659a2d@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=3ca02a70f7f94f7479ffcd3ed7ca6d83ec58af10 commit 3ca02a70f7f94f7479ffcd3ed7ca6d83ec58af10 Author: Nathaniel Braun AuthorDate: 2026-01-17 17:14:42 +0000 Commit: Ed Maste CommitDate: 2026-02-23 14:22:55 +0000 vt: Fix handling of backtab PR: 292463 Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/2002 (cherry picked from commit 5fec99caff3ac4f476bb88078ebf85fbecf6afb3) --- sys/dev/vt/vt_core.c | 6 ++++++ sys/teken/teken.c | 4 ++++ sys/teken/teken.h | 2 ++ 3 files changed, 12 insertions(+) diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c index 6d1012110678..bd6596eceacb 100644 --- a/sys/dev/vt/vt_core.c +++ b/sys/dev/vt/vt_core.c @@ -950,6 +950,9 @@ vt_processkey(keyboard_t *kbd, struct vt_device *vd, int c) VT_UNLOCK(vd); break; } + case BKEY | BTAB: /* Back tab (usually, shift+tab). */ + terminal_input_special(vw->vw_terminal, TKEY_BTAB); + break; case FKEY | F(1): case FKEY | F(2): case FKEY | F(3): case FKEY | F(4): case FKEY | F(5): case FKEY | F(6): case FKEY | F(7): case FKEY | F(8): case FKEY | F(9): @@ -1962,6 +1965,9 @@ vtterm_cngetc(struct terminal *tm) VTBUF_SLCK_DISABLE(&vw->vw_buf); } break; + case SPCLKEY | BTAB: /* Back tab (usually, shift+tab). */ + vw->vw_kbdsq = "\x1b[Z"; + break; /* XXX: KDB can handle history. */ case SPCLKEY | FKEY | F(50): /* Arrow up. */ vw->vw_kbdsq = "\x1b[A"; diff --git a/sys/teken/teken.c b/sys/teken/teken.c index b0161a2e3b20..a1522e00ecf7 100644 --- a/sys/teken/teken.c +++ b/sys/teken/teken.c @@ -703,6 +703,8 @@ static const char * const special_strings_cons25[] = { [TKEY_F7] = "\x1B[S", [TKEY_F8] = "\x1B[T", [TKEY_F9] = "\x1B[U", [TKEY_F10] = "\x1B[V", [TKEY_F11] = "\x1B[W", [TKEY_F12] = "\x1B[X", + + [TKEY_BTAB] = "\x1B[Z", }; static const char * const special_strings_ckeys[] = { @@ -726,6 +728,8 @@ static const char * const special_strings_normal[] = { [TKEY_F7] = "\x1B[18~", [TKEY_F8] = "\x1B[19~", [TKEY_F9] = "\x1B[20~", [TKEY_F10] = "\x1B[21~", [TKEY_F11] = "\x1B[23~", [TKEY_F12] = "\x1B[24~", + + [TKEY_BTAB] = "\x1B[Z", }; const char * diff --git a/sys/teken/teken.h b/sys/teken/teken.h index 38a85e80110e..c8c73db55f06 100644 --- a/sys/teken/teken.h +++ b/sys/teken/teken.h @@ -206,6 +206,8 @@ void teken_set_winsize_noreset(teken_t *, const teken_pos_t *); #define TKEY_F10 0x13 #define TKEY_F11 0x14 #define TKEY_F12 0x15 + +#define TKEY_BTAB 0x16 const char *teken_get_sequence(const teken_t *, unsigned int); /* Legacy features. */ From nobody Mon Feb 23 19:47: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 4fKWb461dhz6S9qK for ; Mon, 23 Feb 2026 19:47: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKWb44jjcz3J9h for ; Mon, 23 Feb 2026 19:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771876032; 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=tF06KMCfUDzn2Kovac+5YQPwhUnQFC1r/UbSb/Sqf0w=; b=uvmuEV09Dnw23bP/FT5H7l9fqi2Xm2VQ71qCAA1iJ63hpkjy2esH+Xc7IwbgCSwnJATDS/ QH+xZdT51eg2tmEw8jtKHZmzXCni+2uJTZTgF5RI2cA0sZjGQfKok5KUr6cdRdsbSLC0dh +EPfrCZd4GNUHn83uC2NfLfjNZwZ71Nc5PXMwT5xrNlYXY6uzsTHEazJfJUpYYC0xdT/fx Xm91jOxyyE3uNr+9R9L0MBN18JbK3/0lbnscb4LPOuDAfUeu4l5nTXRv4z8d9NwlXpLkFT L61PVT97JgJf6FUcU7kCwlWSnZIadkro4esw7mmfoKhoJKB/Ocu16aEq0AhvRA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771876032; a=rsa-sha256; cv=none; b=hZM1rk7+Juw3qtCJ4glA2yZsUKMjrgj9cJUvAVrZH5xbCGS86Iwn/Q/vDQ6AVO5RfgMu5t 24qUFNDURW1lUkb5Q0wjPqvvL/KDnZiDsGHdusTBAiEuP4NsMFQK7XOz6fz/jWj/i8X0pZ EhBu+bK/ctFNGXy2CcSV9UVMAPYse1YLtHI3/JCyFiTj/84cpiWuXpaOu/54urQvojOqk8 8ZaZxlXH+amCjLOLTQyzMJbIM7brQPsi7XOjinDXtylubUvIdqxWo+SnlPRT8KVT9gYjDf 1RsoCuI6FzlJ4x8DE7bcsye15VmLwI3gRdkNPmoAeFPstitIZn7WC4VtmWXUmw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771876032; 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=tF06KMCfUDzn2Kovac+5YQPwhUnQFC1r/UbSb/Sqf0w=; b=yJodgl+XlT9GH6HET30JmSRxh3E/1B9o9oqWRyiDfRBD0zCXCVlrdJcoxC8qvS/9HWaODQ SdprAWNGg4TAQMn8jNRrIc7b7M4PuF9oLRKdW2ytfX0wtY99InP/ugA0rCKzxLA3gdAj4I i/o8hoGl95xk4yCC/OoYMT5IRDtQh/mle+yo7D79KlucwggtjseO9223YiVKCk+a3vs5w4 GucuMsggRiXjTT/SN+w9yPQ5sJAoNWv3w7knZvTAhO7oHlx+6R5SeZ+6EUviwT3Y4OoKtZ eqvV50lr6r/qWiunv49LbRF/Jt2FHURxOZinJTP59XirSm1+sWQfFXR3kcPHBA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKWb43W6PzkRr for ; Mon, 23 Feb 2026 19:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4562c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 19:47:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Brooks Davis From: Ed Maste Subject: git: b0476eea5ef4 - stable/15 - OpenSSL: install EVP_CIPHER_CTX_get_app_data.3 once List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b0476eea5ef4ab2ccf2479652f486af3d4ab9cc0 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 19:47:07 +0000 Message-Id: <699caebb.4562c.6600355b@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b0476eea5ef4ab2ccf2479652f486af3d4ab9cc0 commit b0476eea5ef4ab2ccf2479652f486af3d4ab9cc0 Author: Brooks Davis AuthorDate: 2026-02-17 18:24:29 +0000 Commit: Ed Maste CommitDate: 2026-02-23 19:46:42 +0000 OpenSSL: install EVP_CIPHER_CTX_get_app_data.3 once A separate EVP_CIPHER_CTX_get_app_data.3 was added in the OpenSSL 3.5.5 import, but the link to EVP_EncryptInit.3 was still being installed which stomped on the file and created inconsistent entries in the METALOG. Reviewed by: emaste Found by: package_check script in Cirrus-CI Fixes: 1731fc70f734 ("OpenSSL: update vendor sources to match 3.5.5 content") Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D55332 (cherry picked from commit c4130a8a84e1ce0fc9c05d2b48f83e66ade302aa) --- secure/lib/libcrypto/man/man3/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/secure/lib/libcrypto/man/man3/Makefile b/secure/lib/libcrypto/man/man3/Makefile index 01c40aed495e..172444fcb68c 100644 --- a/secure/lib/libcrypto/man/man3/Makefile +++ b/secure/lib/libcrypto/man/man3/Makefile @@ -1973,7 +1973,6 @@ MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_free.3 MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get0_cipher.3 MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get0_name.3 MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get1_cipher.3 -MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get_app_data.3 MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get_block_size.3 MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get_iv_length.3 MLINKS+= EVP_EncryptInit.3 EVP_CIPHER_CTX_get_key_length.3 From nobody Mon Feb 23 20:32: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 4fKXb65zPqz6SGc6 for ; Mon, 23 Feb 2026 20:32:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKXb6264wz3Pdl for ; Mon, 23 Feb 2026 20:32:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771878738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CIqD9UONFT2eE0Ylk1G6zlEwN5yX6SdoxZuFM0XpCB0=; b=Zj13kk2OGnL5XFvdH+MNxew07wm5pA/BUnG3arvyyL1wLGq0ZHCuzU7wR6k/Nxow1CFpbN ewW1V9F5f1LAD4nX/bNw7MnnLwcenFFbNZb5hzHObHiDCcIgHhI0DtW1JVdYkcB7U8yonU tu0+OHh5m28/gMBZrbPJwG9XC5IDWYv5Qogy2G9Hr9XJCrhdFsP2vJHpxIrOIpl2OtNoC2 bhfovjG0xsdt9+zJ+w4gomlyFlcE/omCt70xbNoH4f3cx0gAmeWUDV/KnRJHPBk7y5+bf5 Yai5R0IkjIwf84vApdC+VcRE26q+kutj2rLadsaSAUkhO02WuSqhVhw2rZd8bQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771878738; a=rsa-sha256; cv=none; b=MRVbnhtnnK4cIvZ2vMxSTaLUgxEKNLsEn156u1opCKd5CxG0ni9faPtG1TI8/v0xR7yymQ AZWa4DUBkGa+y1iELiz4sO8Pdk/O4NgRHrltM3u4yaLshdhA52+CVJt/5FEJnHBrVhGr0b WklAd3dlfJ8K/xjRUtqVEUUhcRyS03R5Xb5wMKajQErltl2CwZQJ/RRlIEsZHQhCyk8HAG xJn7eAjxbZ8Ebk1a+jfXcPCMwErvDwenONcvjspuW1k0LkL3Qcv5es4J1gQMLqci8AMtRH YpLteasP23ZFEbiRbSQn7nGTeqMSYwjPcONICAVS+9pHcRqIEzDD0RyIk5NXFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771878738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CIqD9UONFT2eE0Ylk1G6zlEwN5yX6SdoxZuFM0XpCB0=; b=bvliOR70JCBlYw9P9DsC+i84LCh8ouIG1GjVmQcabNot4Ta7nEoeM+LVXDzGOE345Amk+7 HqQ6cktrYFeH1g9g7GTN33SIVPpiav+3X+eTlViCIBoH6enxdxmAkeyrQ7Oy8LM7PNrC8+ hA+2z0129z2q5jgHFM5Y9Cf2nQ/qb89tkO3m50mEeKQJPEhbJSY1CzRi0AGlgXTN8iqzPa MadDMyDy6sHpzXmWlDJQxVjJY8PFkg2lmBetYGRlaufs7AWaW154+QsI1ku7zgHlvLlcOf 3SIpa35C0DKIXXHKq+GBGY8adF8OvggmIexvVXZPfkEdlLkvDCnwr23dnrXFLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKXb618GXzlbw for ; Mon, 23 Feb 2026 20:32:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19f34 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 23 Feb 2026 20:32:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: 49ab036fc48a - stable/15 - multicast.4: Fix disabling multicast forwarding List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pouria X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 49ab036fc48a4dd5f3f3d47b3d7d604df1235724 Auto-Submitted: auto-generated Date: Mon, 23 Feb 2026 20:32:18 +0000 Message-Id: <699cb952.19f34.312211d4@gitrepo.freebsd.org> The branch stable/15 has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=49ab036fc48a4dd5f3f3d47b3d7d604df1235724 commit 49ab036fc48a4dd5f3f3d47b3d7d604df1235724 Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-02-12 23:06:15 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-02-23 20:30:10 +0000 multicast.4: Fix disabling multicast forwarding Reviewed by: markj, glebius MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D55266 (cherry picked from commit f2c2e5b0bf9def01b10651b9802fa38d07d9d265) --- share/man/man4/multicast.4 | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/share/man/man4/multicast.4 b/share/man/man4/multicast.4 index aa3293e107eb..84c6c5c4199b 100644 --- a/share/man/man4/multicast.4 +++ b/share/man/man4/multicast.4 @@ -23,7 +23,7 @@ .\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER .\" DEALINGS IN THE SOFTWARE. .\" -.Dd May 27, 2009 +.Dd February 13, 2026 .Dt MULTICAST 4 .Os .\" @@ -124,15 +124,15 @@ Therefore, for portability reason the multicast routing socket should be reused for IGMP and MLD messages as well. .Pp After the multicast routing socket is open, it can be used to enable -or disable multicast forwarding in the kernel: +multicast forwarding in the kernel: .Bd -literal /* IPv4 */ -int v = 1; /* 1 to enable, or 0 to disable */ +int v = 1; setsockopt(mrouter_s4, IPPROTO_IP, MRT_INIT, (void *)&v, sizeof(v)); .Ed .Bd -literal /* IPv6 */ -int v = 1; /* 1 to enable, or 0 to disable */ +int v = 1; setsockopt(mrouter_s6, IPPROTO_IPV6, MRT6_INIT, (void *)&v, sizeof(v)); \&... /* If necessary, filter all ICMPv6 messages */ @@ -142,6 +142,24 @@ setsockopt(mrouter_s6, IPPROTO_ICMPV6, ICMP6_FILTER, (void *)&filter, sizeof(filter)); .Ed .Pp +When applied to the multicast routing socket, the +.Dv MRT_DONE +and +.Dv MRT6_DONE +socket options disable multicast forwarding in the kernel: +.Bd -literal +/* IPv4 */ +int v = 1; +setsockopt(mrouter_s4, IPPROTO_IP, MRT_DONE, (void *)&v, sizeof(v)); +.Ed +.Bd -literal +/* IPv6 */ +int v = 1; +setsockopt(mrouter_s6, IPPROTO_IPV6, MRT6_DONE, (void *)&v, sizeof(v)); +.Ed +.Pp +Closing the socket has the same effect. +.Pp After multicast forwarding is enabled, the multicast routing socket can be used to enable PIM processing in the kernel if we are running PIM-SM or PIM-DM From nobody Tue Feb 24 01:05: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 4fKfff102jz6Sqmd for ; Tue, 24 Feb 2026 01:05:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKffd2GsDz3pRK for ; Tue, 24 Feb 2026 01:05:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771895145; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=faQw1gtLpqRJT61XrwOYJ4N6EqvBGG+hu0Sl2+tzcpU=; b=pAILwff4FIp4lRuZ7BCQmr/j4nljL1svHpHHDRifhFGdvZVEnygHhwEpPayOZjzgfXXFT2 7jJ3qzjK2a0Ujv1zjOGPzN3Bgv5BCq0YSmx2EPQ0VBjqmcJZnTNsbTQd4Bf5lzdt0PwPwM SkfT/ZITT8OYBEdN2AMtA/INcjwIgOiXUTTsd4kqeEH3jxCiF8dTaCb2CNBp5sSqA5DUOS t4J45fhi6NhWvVMQxPQUq+Bkb8kL+7r3T4RNvdJ1bfVyHmU0UTeTdURe7tEuwoh+zAsWn/ sE9ytKEox9A2nY0/58+gegQsm2ujttpZvI9QNOWNRiLni70KIqShf02XFszIkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771895145; a=rsa-sha256; cv=none; b=gNVrAJxW5yCw2f1sZ+8r/riYZ3c0jjAZMGesrAs3k6QrkF97rTNjWpH18NuEEvGhFQR+cO XbpMmWkbMWbZVCFfUqpMmD5iczQjhqkobpmWrVoFrTxSbblS0kFmU69z4tR3AMsTbG9Xu3 ukxOAFedwwxVxV1VJyIgxJnijZXxvPjAhDX15+1MyfOPxBS9Bdbint9hHTyqyg3uM8n2eF R9Lyj8ojtI82L9cBdqSD3sJi3oZAMZHCl8AwZFzbQpNx2OFoU3p4uEEC+rrgLwkHh5qVGA VPhwGddM/W1FqzQ8YVdk3/MrTzeZQ3BWu3P3qcSZp/RIc0JEufMitbW7BoTuxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771895145; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=faQw1gtLpqRJT61XrwOYJ4N6EqvBGG+hu0Sl2+tzcpU=; b=B381meSZq1KP+3V+CjE3XkmqKwfhJEWpcjJTpI3UZmSz2jgU4suDL8K4X1xCPaO/xma3QW CypDuFjf8qa5jjuA0eZRJaXiWxyanJzsHE8ZawV0cO4I+fbUIi13d7sq9YooXIZDi3Uesx 8GBv8KhKfB9pavk3DQFVU09KFto5F7OnmPmwtz8SRrdGR6IsKt5HF2tbXPdi4AK0lD5HQO ZG7ofPXTQgVJoGe4cuyili4Rv6U2K6nNNoJk1gNp5uKPR5TcfhuM/ft+DBeRCqqiK8aa2q oPSrIFAGtrU/0PJL25x2MZEC8c+h192Ls2QhtcxBNjU9DWJ2toxBOifrhhlSmA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKffd1jJqztTj for ; Tue, 24 Feb 2026 01:05:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 185b8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 01:05:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Siva Mahadevan Subject: git: 86a8a6726b59 - stable/15 - riscv: GENERIC: enable KERN_TLS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: siva X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 86a8a6726b5942f45d7e3b658940d8c69f71a8be Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 01:05:45 +0000 Message-Id: <699cf969.185b8.20422d89@gitrepo.freebsd.org> The branch stable/15 has been updated by siva: URL: https://cgit.FreeBSD.org/src/commit/?id=86a8a6726b5942f45d7e3b658940d8c69f71a8be commit 86a8a6726b5942f45d7e3b658940d8c69f71a8be Author: Siva Mahadevan AuthorDate: 2026-02-19 17:37:44 +0000 Commit: Siva Mahadevan CommitDate: 2026-02-24 01:05:16 +0000 riscv: GENERIC: enable KERN_TLS This unskips 585 sys/kern/ktls_test testcases[0] in CI. All 585 tests currently pass. [0] https://ci.freebsd.org/view/Test/job/FreeBSD-main-riscv64-test/16514/testReport/sys.kern/ Approved by: emaste (mentor) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55376 (cherry picked from commit 1e649491b8567151270095fda3bce8faea394952) --- sys/riscv/conf/GENERIC | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/riscv/conf/GENERIC b/sys/riscv/conf/GENERIC index ffd958bb33bf..0b3defb3c285 100644 --- a/sys/riscv/conf/GENERIC +++ b/sys/riscv/conf/GENERIC @@ -35,6 +35,7 @@ options TCP_OFFLOAD # TCP offload options TCP_BLACKBOX # Enhanced TCP event logging options TCP_RFC7413 # TCP Fast Open options SCTP_SUPPORT # Allow kldload of SCTP +options KERN_TLS # TLS transmit & receive offload options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists From nobody Tue Feb 24 01:05: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 4fKfff67DSz6Sqmj for ; Tue, 24 Feb 2026 01:05:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKfff2XPDz3pl6 for ; Tue, 24 Feb 2026 01:05:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771895146; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RPTz2UEMPhXFbDC3UF0D4Dx8L5vRqR5TJpXCTYUVt/Y=; b=ukekNWSNZSu8wWyC2XwummopmZFqd68d2a/Bt15P7ASgphNNys+5f3e6R9/HyNyvKtM9u/ 1EnCc7WXvEfrJnF1LCaAwZ1lJ7HZ9aTXzfRSA2H4vq3/HKhXWPhkLDTZeO86nLphlYscOH zk4modLLyRLOLHi7Pg22qgSrjrL1OFiTVmYvgPSF7a64lOzbWQcSVdqRTRapqoyLEroAAr p9bDyCN7Qe1zq1OpM+F+j9HBGdBI7sY2wXWnw1nYadEsHl7gOEBPPGOQINlflGD0HalxdN uXNPU1LyfDgEuBGAezlFYHG8+o5Bz4QkPSEsiLhW+Ws0I49UwPerS7kAH7R1Gg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771895146; a=rsa-sha256; cv=none; b=DRbaq4TJmJZLAykkzFwXmlPKB4VvnuqW3d5XTIgv4DOf/aJ6EIAqLH9iMYDOfTb0m87UBE 9pXSthcaGafS/9bEN61zeNzcl2PKj6lpCqgjdCxZ1BNBMlsyelF/dyM30Ynqdi8lnFZ2bM AQwJxrpKuQEE38Pv7RKzXfK0cQou8cA2rclz6VEpFfRQ2Dh/2POo0QJ39zEjcNx1dV5mPm Kh32bI0SLS7cJRUpW2c1reeLyDWYYrk5MCAIdwLCIZIwNAoMvwAu+wNQJ/EM03uh1rt2Hp Cew+F6yoUs0+OBmDTN99o5gilCEa7JOU+be3IWGV/IGm3mtzH/N1GmpXx6do3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771895146; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RPTz2UEMPhXFbDC3UF0D4Dx8L5vRqR5TJpXCTYUVt/Y=; b=w0RHoS6RhI+s0DPTu0BOt7pv6hx3kFvO1aVgGsL8rIufgxHq9TNkeFgscLT9VnpF7Jbcpj 9LIqdyXjXTsgXOYo+PF1t36MrXWWx8pUgBbNqPzeOvz5LNABf+Dvl/jrLP+dFS1m401/iD ZJujlB6gW29idyeTCQ22dX0wmYuaO4YFhMefYtcIdU2N1lj5ba6fgw6AtAtVN+nR8r0PU3 dlt8q9SPpCO5xHwNXSUJWVeITfmsYGTZwfJwk1D5LYrlrRcXEPRQ+ewJIbPxxC1jMnEaRP focrB3szUv8Nxo9ktveD2hGuQbnaZeSvtLLI5uCAv70zPoLFneAxO9GTV9YZWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKfff23xmztTk for ; Tue, 24 Feb 2026 01:05:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f53e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 01:05:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Siva Mahadevan Subject: git: 47911892a029 - stable/15 - syslogd/tests: use kern.features to detect INET 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: siva X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 47911892a029a4e016765b3a087e9ea65f18919d Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 01:05:46 +0000 Message-Id: <699cf96a.3f53e.4e6c9474@gitrepo.freebsd.org> The branch stable/15 has been updated by siva: URL: https://cgit.FreeBSD.org/src/commit/?id=47911892a029a4e016765b3a087e9ea65f18919d commit 47911892a029a4e016765b3a087e9ea65f18919d Author: Siva Mahadevan AuthorDate: 2026-02-19 20:53:26 +0000 Commit: Siva Mahadevan CommitDate: 2026-02-24 01:05:17 +0000 syslogd/tests: use kern.features to detect INET support This fixes INET feature detection with kernel configs that do not include the kern.conftxt sysctl, such as riscv64 currently[0]. [0] https://ci.freebsd.org/view/Test/job/FreeBSD-main-riscv64-test/16514/testReport/usr.sbin.syslogd/syslogd_forwarded_format_test/O_flag_bsd_forwarded_legacy/ Reviewed by: markj Approved by: emaste (mentor) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55383 (cherry picked from commit c721ceeb3ef0b29d06e6c3c634579f3bc85cc28b) --- usr.sbin/syslogd/tests/syslogd_format_test_common.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/usr.sbin/syslogd/tests/syslogd_format_test_common.sh b/usr.sbin/syslogd/tests/syslogd_format_test_common.sh index 99623015c15d..ea32561ccbb3 100644 --- a/usr.sbin/syslogd/tests/syslogd_format_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_format_test_common.sh @@ -48,9 +48,8 @@ local_privsocket_filename() confirm_INET_support_or_skip() { - if ! sysctl kern.conftxt | grep -qw INET; then + test "$(sysctl -inq kern.features.inet)" = 1 || \ atf_skip "Running kernel does not support INET" - fi } set_common_atf_metadata() From nobody Tue Feb 24 01:44: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 4fKgWm34tSz6SvrW for ; Tue, 24 Feb 2026 01:44:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKgWm0x7Mz3xvY for ; Tue, 24 Feb 2026 01:44:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771897492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4spjuUXCNlii6lM4pGt1fPUUe+t7EMtVmAU8TPlg69I=; b=Jj/QxnsqDzztVtTq30Eef9p8bYIlzGXZC+v+GoC8Hv1Q5Iihgh3l2gXYsB6P7vua5EctQG tSH7z9eW7kizHTb9QXHgMiEcNfE5v1Qg91YIeGCDPGnAuSLqJztJbOEez8ygBAXbJewtCZ cwWb4x2O8ErDBBG40JMk6BA7gefjlJMDBWmZ7ppet51N07iVyEoZtQmXRby7yzM8J9VrSA 5F740iE3Nr1xBUQL2hloORvyavGG+GEsxC/VdFBWz7zXJPTpCsgMABEnkKEa6lQLPfcDGT eI9gkD7SZh31s5qqDPyDE8eeMaRjKWwP7N2YexUhO2SQn0/JzV2ZZjsYL0WVpQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771897492; a=rsa-sha256; cv=none; b=K3E3KnOZpWSw/Lt5lPlMYs9OE8yjUC3zUVkHhfcNXdXC2nGVOBg3uqTJYW1tAQZ283ItL9 J7zZj/A4JJoQ/OmoWwmSAzEZPnMVz2Jva1/S87hJygPTKWaIA9aYEOZA/X6h9E88tADI+R amCLecZUPX71e4QixBUdB6C6GYi5WTeVilt7ss3isYyDvhyUiQarpzvjbLx6xI/u2OX/Lv Gqqsv2b2gwLhoaXNzryK47CL2pWHheWyX55t7FxZLHpkIiO5OYp/6NwvY7MWdJB/3S4RiP B4ntijoOBnUrVrhARZXUofc54HXtv0itr2kbMWbpECoNs6dzRFlK4ZMbrec95g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771897492; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4spjuUXCNlii6lM4pGt1fPUUe+t7EMtVmAU8TPlg69I=; b=uFZWerxLwa4k2hQPeO1/B4dwqIYQhhIqGLVU8sfP4tyDZE1bJaISmAIoxio1mAzP3ol55Z 1XwpfVbxiA+w4LwzS3cvUO6AcxSuCiO7DUul/A1w9rlKNmEAoQwX0q7cDjq46JGOEdzR+O fHatIa3dLH3u/x7ccQmJPh2ksMdYAx9RlAW/8/BwhTxVDABQPvATOb3m/tTXrfEqQC7LZq 1kCNoeNznHgYIogcOQvUL4Lh9hI70o8YZCBz84gj8GIIlcloGHRcqw+nGUbownjNlqIgHU DvC+7DOeKwx2ozzli9/xXNI2ttMUp5lUCNJ5sliRGgK9cuy8lghl0kAG0EZp6w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKgWl6qBRzvRw for ; Tue, 24 Feb 2026 01:44:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d910 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 01:44:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 7ae432e6fbb2 - stable/15 - vfs_mount.c: Don't call VFS_MOUNT() if only exports are being updated List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7ae432e6fbb2350fbb6a805dd0e14b73f8e0c9ef Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 01:44:51 +0000 Message-Id: <699d0293.1d910.5ae75a70@gitrepo.freebsd.org> The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=7ae432e6fbb2350fbb6a805dd0e14b73f8e0c9ef commit 7ae432e6fbb2350fbb6a805dd0e14b73f8e0c9ef Author: Rick Macklem AuthorDate: 2026-02-17 22:57:42 +0000 Commit: Rick Macklem CommitDate: 2026-02-24 01:41:58 +0000 vfs_mount.c: Don't call VFS_MOUNT() if only exports are being updated PR#293198 reports a hang within ZFS when exports are being updated concurrently with a VOP_SETEXTATTR(). The hang appears to be caused by mishandling of the z_teardown_lock, but fixing handling of this lock appears to be a major effort. Since the hang occurs when VFS_MOUNT() acquires a write/exclusive z_teardown_lock, which rarely occurs, except when exports are being updated, this patch avoids the VFS_MOUNT() call for this case. Avoiding a VFS_MOUNT() call fixes the hang for the case reported by PR#293198 and is also an optimization. As such, this patch avoids the VFS_MOUNT() call when only exports are being updated similar to what was already being done within vnet prisons. PR: 293198 (cherry picked from commit 935cf3284f520c90a63baaadb762caaa30084f5c) --- sys/kern/vfs_mount.c | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 2237fcc6b423..383ccf98c10e 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -74,7 +74,7 @@ #define VFS_MOUNTARG_SIZE_MAX (1024 * 64) static int vfs_domount(struct thread *td, const char *fstype, char *fspath, - uint64_t fsflags, bool jail_export, + uint64_t fsflags, bool only_export, bool jail_export, struct vfsoptlist **optlist); static void free_mntarg(struct mntarg *ma); @@ -806,7 +806,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) struct vfsopt *opt, *tmp_opt; char *fstype, *fspath, *errmsg; int error, fstypelen, fspathlen, errmsg_len, errmsg_pos; - bool autoro, has_nonexport, jail_export; + bool autoro, has_nonexport, only_export, jail_export; errmsg = fspath = NULL; errmsg_len = fspathlen = 0; @@ -861,12 +861,11 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) * when we want to update the root filesystem. */ has_nonexport = false; - jail_export = false; + only_export = false; TAILQ_FOREACH_SAFE(opt, optlist, link, tmp_opt) { int do_freeopt = 0; - if (jailed(td->td_ucred) && - strcmp(opt->name, "export") != 0 && + if (strcmp(opt->name, "export") != 0 && strcmp(opt->name, "update") != 0 && strcmp(opt->name, "fstype") != 0 && strcmp(opt->name, "fspath") != 0 && @@ -957,7 +956,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) fsflags |= MNT_UNION; else if (strcmp(opt->name, "export") == 0) { fsflags |= MNT_EXPORTED; - jail_export = true; + only_export = true; } else if (strcmp(opt->name, "automounted") == 0) { fsflags |= MNT_AUTOMOUNTED; do_freeopt = 1; @@ -989,14 +988,22 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) } /* - * If has_nonexport is true or the caller is not running within a - * vnet prison that can run mountd(8), set jail_export false. + * only_export is set to true only if exports are being + * updated and nothing else is being updated. + */ + if (has_nonexport) + only_export = false; + /* + * If only_export is true and the caller is running within a + * vnet prison that can run mountd(8), set jail_export true. */ - if (has_nonexport || !jailed(td->td_ucred) || - !prison_check_nfsd(td->td_ucred)) - jail_export = false; + jail_export = false; + if (only_export && jailed(td->td_ucred) && + prison_check_nfsd(td->td_ucred)) + jail_export = true; - error = vfs_domount(td, fstype, fspath, fsflags, jail_export, &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, only_export, + jail_export, &optlist); if (error == ENODEV) { error = EINVAL; if (errmsg != NULL) @@ -1014,8 +1021,8 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) printf("%s: R/W mount failed, possibly R/O media," " trying R/O mount\n", __func__); fsflags |= MNT_RDONLY; - error = vfs_domount(td, fstype, fspath, fsflags, jail_export, - &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, only_export, + jail_export, &optlist); } bail: /* copyout the errmsg */ @@ -1307,6 +1314,7 @@ vfs_domount_update( struct thread *td, /* Calling thread. */ struct vnode *vp, /* Mount point vnode. */ uint64_t fsflags, /* Flags common to all filesystems. */ + bool only_export, /* Got export option. */ bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) @@ -1442,15 +1450,16 @@ vfs_domount_update( * get. No freeing of cn_pnbuf. */ /* + * When only updating mount exports, VFS_MOUNT() does not need to + * be called, as indicated by only_export being set true. * For the case of mountd(8) doing exports from within a vnet jail, * "from" is typically not set correctly such that VFS_MOUNT() will - * return ENOENT. It is not obvious that VFS_MOUNT() ever needs to be - * called when mountd is doing exports, but this check only applies to - * the specific case where it is running inside a vnet jail, to - * avoid any POLA violation. + * return ENOENT. For ZFS, there is a locking bug which can result in + * deadlock if VFS_MOUNT() is called when extended attributes are + * being updated. */ error = 0; - if (!jail_export) + if (!only_export) error = VFS_MOUNT(mp); export_error = 0; @@ -1590,6 +1599,7 @@ vfs_domount( const char *fstype, /* Filesystem type. */ char *fspath, /* Mount path. */ uint64_t fsflags, /* Flags common to all filesystems. */ + bool only_export, /* Got export option. */ bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) @@ -1693,8 +1703,8 @@ vfs_domount( } free(pathbuf, M_TEMP); } else - error = vfs_domount_update(td, vp, fsflags, jail_export, - optlist); + error = vfs_domount_update(td, vp, fsflags, only_export, + jail_export, optlist); out: NDFREE_PNBUF(&nd); From nobody Tue Feb 24 02:42: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 4fKhpV2bpwz6Sn3Y for ; Tue, 24 Feb 2026 02:42: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKhpV1zx9z444c for ; Tue, 24 Feb 2026 02:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771900962; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HqsbmZQPyzxH3TfGzmaAWChiZO+g0xmqAHBEhE5WKsQ=; b=DGO6cLfq/hsvPYA1rfQ0kOr0AiWpjAnoxQWwkQX0VTHJiEn9McttI/bC1eUkfvBNlLm6Wx Dcv5ONV5evVnw4Ot2yTMeVS7EjeUBEc9Cc6CIu55DwVWvTC5+hGzYgmmAzvFTUvsLWT99u jtFOq4ls78Uzus1ssNWHk8ypUkSjH1aD5w2Uv/HINcgU03G51KnDn258Tc3/FYnoRRMPfJ OB2v/0Qfn018GcCNxfE1K4NYKpF7evAEjENHRSnUNZdlKZZTNXsy+BxSCufqhuR8IWbDiV bFWgzqYOO4Qiz4OVu2xteKVNRwnGKFrVt+nAI0sdP55V/JSDZnyA6bH8VcJeIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771900962; a=rsa-sha256; cv=none; b=kKtEWmbbgZ/dnFMSTseAP3/U025uFl3rhpmcG1UatebqY/ZczzOHRQWUJizxwE26bXsANR R4f+pbnQwQDMOd/sNsknmNdz3Zcze8RRmNwzDuvxmsvzYOQWAQGWs8+cjwQWKLmOi+rsJZ FMYuXRjR9kZM6+ooPdApwlyBF5T/b3Z4n9Z/AdZQ0EDCgSpV0GsMT0VOBde+Qez7JReLx4 ylCIviF0PYhUzJ/lPT/xQDwQcSVaBCV1c+6xVCv8ZqCoc/TwVn7AhmHpvdGEgKijYV2MpQ efZH0RsteHt19HEB0oHTlUBqXycHLUFeZHJwAnbrYMQ4XRyO1RC5WQmj66Y99w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771900962; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HqsbmZQPyzxH3TfGzmaAWChiZO+g0xmqAHBEhE5WKsQ=; b=nTLVk7NypThdVzCjdvH8TeGSHMXWB8fmHK+tN+l8EWIAQlnIPSmGhVhogDVcOzfZA1zC/T xfKlMZAfqixLdN80tz7I6FNbgPekP93b++esHJxerdT2q7RD7oNEwWMkCQ+rpQtp3cJa6I EoQMKfqiFF3ga6aTpOVJZpl5OwPV/HAserQgBVt1OG9cYaXJhaA+keJG+0WTFdsH17U1ze 7dXEaqh4qw2HAzv9gnY4AEOWYNaA+kxG4Q5fq7Qlr2/G15NmbxVrvXgd3SAIQq1iTQJJ4Q 0rT54u65H4ZU0JknlDBFfVSLLnJAGN2hbMGT6ZJebDwXRBka3VmdatDX6rty+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 4fKhpV1WQvzx1c for ; Tue, 24 Feb 2026 02:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 219eb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 02:42:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Siva Mahadevan Subject: git: 97b7f7325d8d - stable/14 - riscv: GENERIC: enable KERN_TLS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: siva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 97b7f7325d8defd88a00ad82d1895b63bc84d0e6 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 02:42:42 +0000 Message-Id: <699d1022.219eb.175d0757@gitrepo.freebsd.org> The branch stable/14 has been updated by siva: URL: https://cgit.FreeBSD.org/src/commit/?id=97b7f7325d8defd88a00ad82d1895b63bc84d0e6 commit 97b7f7325d8defd88a00ad82d1895b63bc84d0e6 Author: Siva Mahadevan AuthorDate: 2026-02-19 17:37:44 +0000 Commit: Siva Mahadevan CommitDate: 2026-02-23 20:22:54 +0000 riscv: GENERIC: enable KERN_TLS This unskips 585 sys/kern/ktls_test testcases[0] in CI. All 585 tests currently pass. [0] https://ci.freebsd.org/view/Test/job/FreeBSD-main-riscv64-test/16514/testReport/sys.kern/ Approved by: emaste (mentor) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55376 (cherry picked from commit 1e649491b8567151270095fda3bce8faea394952) --- sys/riscv/conf/GENERIC | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/riscv/conf/GENERIC b/sys/riscv/conf/GENERIC index 7ecd496d6aab..411e25a3b9d6 100644 --- a/sys/riscv/conf/GENERIC +++ b/sys/riscv/conf/GENERIC @@ -35,6 +35,7 @@ options TCP_OFFLOAD # TCP offload options TCP_BLACKBOX # Enhanced TCP event logging options TCP_RFC7413 # TCP Fast Open options SCTP_SUPPORT # Allow kldload of SCTP +options KERN_TLS # TLS transmit & receive offload options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support options UFS_ACL # Support for access control lists From nobody Tue Feb 24 02:45: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 4fKhsW2rFHz6Sn8g for ; Tue, 24 Feb 2026 02:45:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKhsW2PT8z45Z4 for ; Tue, 24 Feb 2026 02:45:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771901119; 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=Zlr4381vbzRUKlZ5FyH0PGsyRAKjyp/NZknEmaJQYKI=; b=U2OnYoaHSyx7KHXDh7WWXSna3+xPKweXKRAvl3oR4RIMsfwI2KjJ3Qvl23YgINBQmtAiQc HIuf6wSD/2MbC0aTkxqQ60gd4mlzryhecQE8yyMWff5fB08yhpAxiUR5pNqFxSFDPZld1S J1rlA12XQspX5WRfQDxyUMHtB05TsZkltqIg71kFdjRu76whzMFYptiSMAbElKPyaVB7yq pP/5k9VGLO9EEG8zSL9FDXMdCE7TNWGycp9aXv7FE+5aD4eZ+eCOc5y4nak7NBQoIGAqMa nxCznYC+G1gmlbb/k9cDbI9DXSBB+kFvFTOb2+BWc0VYH3Jh6wCIexb3Nsutmg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771901119; a=rsa-sha256; cv=none; b=gz4DFqgzJh9f7r9w5/ziNeLZvsvfO4MlKHIlPlw0khY4vmH9PxoThTg73c9vFqngFz4MFK davuXzqqVRBsei7B7I12nQt8Cn8a3IsxWWOD4O/cViPlwTl5EYcMzUMrlchKKxUsZZeI7N e2yXgLgv5fOodRZS+sMkMbJEdGNa4Wp/BRUbEsyS34L1FaIQVi5sBaLJtHSLKjit1YQR9c Jbzn/qUt93MxkRkywyxliyUAEMhkObZgCNCFnM5JW4G1QFja4N6YrS7PzeHWkQuctihzaj eLQCzftupl0ifMuVzjEzJm0iMEBXKUOimp3Xhvnx3P/R4lioi63B2+CpBUqjUA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771901119; 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=Zlr4381vbzRUKlZ5FyH0PGsyRAKjyp/NZknEmaJQYKI=; b=G2sxp2D8BkaAgMeYF3UyOJOCIfwd372oAHhda5UKJjkXPwPPXMEyr9HiyG8XuXWXAS4fsA 5LbBVHW/98SnEqNWl+JQtfc+pHxrc8EjTaUIjX7NXrOOYpzPvZkt/2VAnyj5qmTa4LxQAt B/K3Tu4Q19wihnkWkQLwlYiKSbsHvnny6MeIaahIzqlSKCoExz25kuLCFNsOKz+eamDAwf 81GlFNZ8nPWKDPl08ukYfgDx6ljEDVgvLAwQErgAJPPz7Qj4ZkinPxW6KVoQXNLzZ5d09t krp3SR9NbyagDhpGKXQ2CRKnlNV22SG/EJw1WR2eZ5SacBY1R9vs2N+mbQjvbw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKhsW1Y7tzxPk for ; Tue, 24 Feb 2026 02:45:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 23d99 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 02:45:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Brooks Davis From: Ed Maste Subject: git: 5d6dfa511048 - stable/15 - src.conf.5: regen documenting WITH_IPFILTER_IPFS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5d6dfa5110488605c25d97f3513fc1ace30a32e5 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 02:45:19 +0000 Message-Id: <699d10bf.23d99.4f28c941@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5d6dfa5110488605c25d97f3513fc1ace30a32e5 commit 5d6dfa5110488605c25d97f3513fc1ace30a32e5 Author: Brooks Davis AuthorDate: 2025-12-15 13:52:34 +0000 Commit: Ed Maste CommitDate: 2026-02-24 02:44:36 +0000 src.conf.5: regen documenting WITH_IPFILTER_IPFS (cherry picked from commit b9b1262a8ef95857101e538145703894e3b880b7) --- share/man/man5/src.conf.5 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index ecb990d6fcdc..74c45a6e2138 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,5 +1,5 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. -.Dd February 6, 2026 +.Dd February 23, 2026 .Dt SRC.CONF 5 .Os .Sh NAME @@ -848,6 +848,10 @@ The user still must set the variable to point to a directory where the user has write permissions. .It Va WITHOUT_IPFILTER Do not build IP Filter package. +.It Va WITH_IPFILTER_IPFS +Enable building the +.Xr ipfs 8 +tool to save and restore IPFilter state tables. .It Va WITHOUT_IPFW Do not build IPFW tools. .It Va WITHOUT_IPSEC_SUPPORT From nobody Tue Feb 24 02:45: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 4fKhsb22Nhz6Sn8q for ; Tue, 24 Feb 2026 02:45: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKhsb1PzRz45tC for ; Tue, 24 Feb 2026 02:45:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771901123; 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=xLq3Tdceot0gAoQ47WIyZPavj7iz73luuWVtrWrS2gM=; b=dlYYcFqjIxMi+ammD28iOLKJHm0F7bXTJG2fQRsnX8yKSBrAP7BBeU7MqpI8lrBctDmmHY SCJLyXdrsx026lkP6ze+92tAaHeox7u+wnLkI4828PjrP4wPd9H6e64/gvWcDdO0AlY3Bc kSUDjvBzQPA7krOMmz8nLjTWVINbDPH4xUTIVVquTdltde93M2N7uQRPTgp7pcXIdWpW+q eYE2HCilqYpyYJG+fUm0EEKIIVtvvGOuCrI4R0QNA+GVQtLH4AeohxsvwX2g2uTMI2toUA okzJvg7f/Dkf/121obM01gVKgVuM6QPH8A0neFv3L3hHtWw83GOnmGeskkeJsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771901123; a=rsa-sha256; cv=none; b=cRVl+5clSWC2V+pFe5QfV+sgA60QG9WI0Yx+2ri2ms9/6fzEyWutdb/2BJKFXYqUmiy20I jSBR6DQJlNuIdVEp16/SAdTCfKXJhzJ8o7ZOu1/VsNtoHNxziKbfb3GP8GhX3Mq20o5GlK kWjhpppOw65OYyvbLFhaO1oCsfnHHbPHionCwwjR6r45TuhJ38Kn4orxRlaiX2kku59ThN hCyrK6LOuldDOO/oYWtLvwpWabfVYzfYOZdxvwKF6xB2AyZewCYKZt29eKudNdBno7vlw4 ZnhEUaypSssKYv0dVZMoad4FsfuijbMQ+R8r3xeJ5mNZDY/cKaSG6Po7WLfHiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771901123; 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=xLq3Tdceot0gAoQ47WIyZPavj7iz73luuWVtrWrS2gM=; b=Un2EZ/CH5qHri4qRb2ONIC4xDJ7gly2IPGJXYK8VilQqNGWyVC4DpQJ02BdVzXDUCXh2K1 W1enNBLzdcMkTtMwWiz5eK8eI7pBs+9AZHH6+IXOz1iTNvZ8A7OcSlKYhtmavpSFBqNqkn FcvLY9fPcdkMKZ5+W3mijzFKJ7/jJNWNiMirzNxVXoVnnFGOV7O3zRRCWU/ErRr86J6qH9 RRqqfhJ3tQPNs/tC+Ew+VlEBPfElKx+9YVDSBtUtswZNL+a6rdczb1TA9B1tr1juhR/moz JmowwCrPMVtuO1X2pI/Pshbgc/s0DPyFVWSt1AQ24g2ID3gu8JASZw3hCbVudQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKhsb0vsCzwnM for ; Tue, 24 Feb 2026 02:45:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 23139 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 02:45:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Brooks Davis From: Ed Maste Subject: git: f981908926a8 - stable/15 - options: describe WITH_IPFILTER_IPFS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f981908926a88357ca6b53aed5566fca4c05a850 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 02:45:18 +0000 Message-Id: <699d10be.23139.3b461844@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=f981908926a88357ca6b53aed5566fca4c05a850 commit f981908926a88357ca6b53aed5566fca4c05a850 Author: Brooks Davis AuthorDate: 2025-12-15 13:50:56 +0000 Commit: Ed Maste CommitDate: 2026-02-24 02:42:05 +0000 options: describe WITH_IPFILTER_IPFS Add a description for WITH_IPFILTER_IPFS. Fixes: 0ff0c19e7f70 ("ipfilter: Disable ipfs(8) by default") (cherry picked from commit c112ad75605ccdfcb8bbce2f57b0e7a077f057f8) --- tools/build/options/WITH_IPFILTER_IPFS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/build/options/WITH_IPFILTER_IPFS b/tools/build/options/WITH_IPFILTER_IPFS new file mode 100644 index 000000000000..6822b70f443e --- /dev/null +++ b/tools/build/options/WITH_IPFILTER_IPFS @@ -0,0 +1,3 @@ +Enable building the +.Xr ipfs 8 +tool to save and restore IPFilter state tables. From nobody Tue Feb 24 03:17: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 4fKjZy47PGz6Srnt for ; Tue, 24 Feb 2026 03:17:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKjZy3d2Qz3DM6 for ; Tue, 24 Feb 2026 03:17:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771903066; 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=JnXl9Tq7G8ssLjwLdijDjrh6nTLc4yZKIhZ9xZUH0+Y=; b=LbPKq1QtqTB7MRvcE8u2BiXUKDaw6xDHmIsWfFVkmfW6KW8MM7UDrkF4BFdwMB73nrvcIy n55jqky0KhORmNkAxJR52PMLAiZFiBSwDCNjDZNoi21lam7EIY2ubdiPmptPrLu1JXto9y morabzM3KOJPoEzjtpZ/Lor6M4I55GzVNbOTAnmE0o+8g1xXBHjPXu4zHnGFiR7oHP8M/V rDHpBlaEynHRsKa5ByjLhySKcxNXPXtpf7nonyQT/ydjJUTX+RSNFQUfiCShRSOUA13GTg icC9+RKAi6DwG+3p2bddKMeCyky2V0Hp+lxxOyTaHh58mY4fGkXqPJwJSG+9cQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771903066; a=rsa-sha256; cv=none; b=eAEgi4vwCCGAZ4GUJPdFhqe7bTeV+VCDJyGJCCwua9zorqZApxT6uvBG/23lzYkZ6beogv tCHXbsduAquyYGFPY/gkWLYhyhtFdrP21tFvC/kToXyCLDvTxpnt8O4+eX9k2sQzwakiGN asYfMTuIMqsq32p2rsAZmCoKe5O71ZLJ/tMM0D7O9eMZWcKMz7OKx46P8d/FEhlPGAlPb7 QZeOAt2VXY29HE2OMzn9c9I58p3YbjENwYJ/1odJNvQm24C5Ns+LYMRbXIsgbMDQbRcSj5 +CjufxHCdtBaAibbyLwfK7bGgaoXvXBPFkqDUEvPbvG4Q4lXMq+lN/l1Pg31Mw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771903066; 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=JnXl9Tq7G8ssLjwLdijDjrh6nTLc4yZKIhZ9xZUH0+Y=; b=sKI2RA4mXJL5Ecz6oGvF6JfPpnUEsAOgepKLz/xgnHw4AE2ASaEFJKqIeJ3rqk8/Kz1RfH 4OMbDrfXv4/8wzuVKA6TXh2Ckl4cCI+Cp+2L8eIdslJ9bV54RCo6RpptMPuoeTlX51CqFc cUfEuM/qsr6gEZL+T1YUcc2KF7BEjUeO8eHw9PAZIdRWdPIgeJQPuw901yzsLa3iP0aozM uk+M6gGeb6/yLaBiU0GE2+wF8gpA3TxtrhuRf5cIwJ5Am/CDt382Ya0h3aHU6B1QohCik+ t5HOPf2DeUMNxv40P8+tsShsVO/Dbx2b0ug322q4ehNcUD/qSFibRkAlVlA7RA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKjZy3DVTzxsj for ; Tue, 24 Feb 2026 03:17:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 263f9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 03:17:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: John Baldwin From: Cy Schubert Subject: git: 1ce195ddf8a6 - stable/14 - heimdal: Pass the correct pointer to realloc when growing a string buffer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 1ce195ddf8a6f92da597b400905a233deffa2cf4 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 03:17:46 +0000 Message-Id: <699d185a.263f9.1bc749cd@gitrepo.freebsd.org> The branch stable/14 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=1ce195ddf8a6f92da597b400905a233deffa2cf4 commit 1ce195ddf8a6f92da597b400905a233deffa2cf4 Author: John Baldwin AuthorDate: 2026-02-02 17:18:11 +0000 Commit: Cy Schubert CommitDate: 2026-02-24 03:17:35 +0000 heimdal: Pass the correct pointer to realloc when growing a string buffer The realloc in my_fgetln was trying to grow the pointer to the string buffer, not the string buffer itself. In function 'my_fgetln', inlined from 'mit_prop_dump' at crypto/heimdal/kdc/mit_dump.c:156:19: crypto/heimdal/kdc/mit_dump.c:119:13: error: 'realloc' called on unallocated object 'line' [-Werror=free-nonheap-object] 119 | n = realloc(buf, *sz + (*sz >> 1)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ crypto/heimdal/kdc/mit_dump.c: In function 'mit_prop_dump': crypto/heimdal/kdc/mit_dump.c:139:11: note: declared here 139 | char *line = NULL; | ^~~~ Reviewed by: rmacklem, cy Fixes: a93e1b731ae4 ("heimdal-kadmin: Add support for the -f dump option") Differential Revision: https://reviews.freebsd.org/D54933 (cherry picked from commit 03d8ac948b1ad9c419b294c3129b7da58d818363) --- crypto/heimdal/kdc/mit_dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/heimdal/kdc/mit_dump.c b/crypto/heimdal/kdc/mit_dump.c index 4397d1ad897d..d790b145af11 100644 --- a/crypto/heimdal/kdc/mit_dump.c +++ b/crypto/heimdal/kdc/mit_dump.c @@ -116,7 +116,7 @@ my_fgetln(FILE *f, char **buf, size_t *sz, size_t *len) return 0; } *len += strlen(&(*buf)[*len]); /* *len should be == *sz */ - n = realloc(buf, *sz + (*sz >> 1)); + n = realloc(*buf, *sz + (*sz >> 1)); if (!n) { free(*buf); *buf = NULL; From nobody Tue Feb 24 03:17: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 4fKjb266pbz6SrrX for ; Tue, 24 Feb 2026 03:17: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKjb25QJVz3DSf for ; Tue, 24 Feb 2026 03:17:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771903070; 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=oRQ8m+kJHseunfjQ8n8qeNOynpo+kPXOa3W1g0+fd8k=; b=QnHBpUeYOOWnFntVw8aIBhzb0XMm5UAzeQiBhg9T8/u8IdjwzXO+ZpMvQLBx4A3iC0ePFd B8QCWYqY3ANvALORchJT+COOb31mvUCvxebKHEtmons0OaIkrAlXuQYl0HmrRg4U4LQDPv NtT6rSj+MYEl9dkCct/V5wBe/2KUInPoHpsfYltSIwmd5zRcx7oku8iv5yaY9TiXT4KVyF sRCp/7bv0tpCtg4raP4O1W3MmRsXq6a7fIuFS0x6ZBRAHDFxOmxQpWVcznDMyBSjL1xI5s RkEdJ7pnzQSrsrgNgAhBD39t8FbZZQRw6cx5+v4OEIAwlxCnUMOfDat80yetkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771903070; a=rsa-sha256; cv=none; b=Rf6qAJpJ+fsHhBM/CFVqsPwC44OAJYFsZ9K2cRqK9g/L8ZqLdBLEqlemBk/FMFKQfnZpJR gDuV2stjryfLD9aXDmONuXBoeW1f5yDF6+kPhw4Ep2jwm/VctH/zWp/tgJeBi3/JiPijjH FozfxW7TbiHnfPtbBi81xEdsx08tdu11FVjImqKx3ff8EzlsfTxJy+deqSgJ2e+OM38cUZ +4S8UKgQL3G9WuG4tRu671Dve+XPPGRwf14Ky1POZgrBO5Wf+3Dro1nTFXWU7zaxFLTOFv TI8ZR8swT+XqC6KZKtx225VYTfgS1FjcC8ln6FtuhKOvOkFzHny7CECViEkx3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771903070; 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=oRQ8m+kJHseunfjQ8n8qeNOynpo+kPXOa3W1g0+fd8k=; b=X6tXJGHY+Bx3DttjJUZK8lvcTw8ipUmokOu4nYkWed9+p70QFHGgB+Z9VPNkMVoMBAkurj R6heX7DZjcSF4JPXuWyVemqhigI5A0hlj9OiPh6zoOgJPWoZCr7Y+JEh9qJ7Nr0eJ+9ptS VPfrqYvqUXMmU57Bx348B0IJjNkXERjbuQ9AvGSiEeb9DEmYHMoAUpHA+9NO5bawS8mEfW 3IDmHL7wYo3nGeTIY+7jKJTk91lMjNLj3cVdXeE71bFt2YDfagugEPmwDF6yxAVOPkakHF 0YgcdsnLlUDKg++T3KeeelfmJihWUMOCbxtFKsZvTlJWxNVQaWpZ+nwHXo2mBA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKjb24kbDzxq4 for ; Tue, 24 Feb 2026 03:17:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 271bd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 03:17:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: John Baldwin From: Cy Schubert Subject: git: 51bb8e49cf7e - stable/14 - heimdal: Pass the correct pointer to free in an error case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 51bb8e49cf7e0d6e42cbae980c3b57d8a71af07b Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 03:17:45 +0000 Message-Id: <699d1859.271bd.2e28eee7@gitrepo.freebsd.org> The branch stable/14 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=51bb8e49cf7e0d6e42cbae980c3b57d8a71af07b commit 51bb8e49cf7e0d6e42cbae980c3b57d8a71af07b Author: John Baldwin AuthorDate: 2026-01-31 17:00:44 +0000 Commit: Cy Schubert CommitDate: 2026-02-24 03:17:34 +0000 heimdal: Pass the correct pointer to free in an error case This fixes a warning reported by GCC 14 on stable/14: crypto/heimdal/lib/hdb/keys.c:241:13: warning: 'free' called on pointer 'ext' with nonzero offset 16 [-Wfree-nonheap-object] 241 | free(hist_keys); | ^~~~~~~~~~~~~~~ crypto/heimdal/lib/hdb/keys.c:234:15: note: returned from 'calloc' 234 | ext = calloc(1, sizeof (*ext)); | ^~~~~~~~~~~~~~~~~~~~~~~~ Reviewed by: rmacklem, cy Fixes: 5000d023a446 ("heimdal-kadmin: Add support for the -f dump option") Differential Revision: https://reviews.freebsd.org/D54932 (cherry picked from commit b26a7af438f36dcde86f39a681123cc2140affb2) --- crypto/heimdal/lib/hdb/keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/heimdal/lib/hdb/keys.c b/crypto/heimdal/lib/hdb/keys.c index 9c0af5c47f23..ef6113610009 100644 --- a/crypto/heimdal/lib/hdb/keys.c +++ b/crypto/heimdal/lib/hdb/keys.c @@ -238,7 +238,7 @@ hdb_add_current_keys_to_history(krb5_context context, hdb_entry *entry) hist_keys = &ext->data.u.hist_keys; hist_keys->val = calloc(1, sizeof (*hist_keys->val)); if (hist_keys->val == NULL) { - free(hist_keys); + free(ext); return ENOMEM; } hist_keys->len = 1; From nobody Tue Feb 24 10:45: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 4fKvW74Fc4z6ThN3 for ; Tue, 24 Feb 2026 10:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvW71cYNz42mS for ; Tue, 24 Feb 2026 10:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4fUl2TyRqBoGSKkfSWGUriI8mbXYONsl1WrVWoPtNUY=; b=G1xuzgO/smcl/Zrrpd5S1qVRbnUaInHjqY0Lmd8kn/IlgNPQ6Y8Y/9uQvPF4IQWrx2f7eW MQm5dyT3cax96G/uXiwxMgfmRoVlP3N8lvJpSHhHm5ugYTnMPphy541Fh/mUP3ocz5oCj8 pHKkZZcjcne0GCFa/g6ktaolKhB2duoDbCmdh6ItNu088YuJphwOtsD4Gjglv6CsrPl5wN osBf6krFMoER5lEYiBQcaL7KdEGcrSBtSQDpfA662PJgfJHOHhItudZJx16Crl7LjkbHYk gTawLykzpT95UGv9zl0RNVSzrLIwpbrElYTNxVhg3BtPOG19gNZbodeoeOIuzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929907; a=rsa-sha256; cv=none; b=iMAzrS2Gy5AS/opVhkESLtZNs9TZld7CLy9dSvcoE4Y3yb2Ahjld/b8N9rTVSxVVd5NY0I q5Ip+zediLWKcTKYuuE4O3VBUqPWKWo3u2jP8fXzf4i1k9mYWXQne9vCcguYpVK5YqWiFk MKe3jT6gROIQ5s+EFwa+Zqow7f8dN/XZV14ERSGD6RtXvF221dnymDpQpUDL6Z+KrxdwTU Mh3zW7zCwdFij5tazw9DhD6uChwDWiPhCeN2xLbVMHNofnB1mVB4OIj98TXNvJ5/oC219B S1iHnf5flTL2BaG+O75lRnVDbhVyDHIIM0doZsUY/dptYqY6UJp9fNWFAysBcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4fUl2TyRqBoGSKkfSWGUriI8mbXYONsl1WrVWoPtNUY=; b=A0B58MiV94HCho0EbWN4oq7ihokEeodNhNo/Rix8kcHE5g4IGpIPyY/V7fUd0IqynZXfAI +/tzQ8ayWGLTglsd2fkoqdFH8o1KS7SmE+QeJJlxtFhfqYs7+ZWe0mYgvuViDAs45qp6vp boOE/jY0UysOIuL09VAAsOMVTsaQDjCQJ+Psv3om/PeEtO1qqtPbXLdcSB4E4tCSHZsf21 075uy1o6ibtBxX39ziaoe10Rwmqi/+gpR/4oc/wt9TtpaEaZv5ExOEJ3JyTMszTAGOa5oY lqWGb0WkfVdrRyswCL7bMU59LFZmcupcBIxTv7gXH/pZd+Mxp0rU4RKwBLl0kg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvW71DCmz1BWK for ; Tue, 24 Feb 2026 10:45:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36cf4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 18e4cb41e945 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: 18e4cb41e945a79afabb8fa82fe39f28865aa3cf Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:07 +0000 Message-Id: <699d8133.36cf4.46d1f27b@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=18e4cb41e945a79afabb8fa82fe39f28865aa3cf commit 18e4cb41e945a79afabb8fa82fe39f28865aa3cf Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:35 +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) (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 898d85fdba89..3e63bd2d1882 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 64909d39ff59..a9acfffee629 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -94,6 +94,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(struct ifnet *ifp, struct mbuf *mp); @@ -2369,7 +2370,7 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ha->max_frame_size = ifp->if_mtu + 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] && @@ -3835,7 +3836,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; @@ -3844,8 +3845,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) == @@ -3855,8 +3858,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 Tue Feb 24 10:45: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 4fKvW85JWcz6ThN5 for ; Tue, 24 Feb 2026 10:45:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvW82n73z42dj for ; Tue, 24 Feb 2026 10:45:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bNwOTQOtPw9SB6Z+WRxs8LcpNEW9qeMy/z3FaAzvFRw=; b=QWIg5Sz3oHO7H8GZgaSr4JuKsdItWIYE3dBzdB8jZQAigwZwu5vac0/kjVOdgvT4SsM4jZ u+Q/DJ/YZhq65iGUFWIWqKIvx57m/zRAQ/BFmYXxl4KhrO+7ABlgPM5dEP3pGS2+6xiL3N 9043t1iXRIw2PHAEC6Gc5SKQ4yLu96vj5UyXnYgRx/57TfWXT9u/mCKfbAT7EtWamGnUjo DN5Qd/d3QxhoXXIW92J64jknybyI5IDtwR/8f77RFwzjj6rDu3LOS5hZULB/GcwZBnFbZ4 aKtNKumwKCtvlaMz8AIdylmAuJZYyBRrOMUjZJsUShVVQKPZxnzKcQjWNYb+Yw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929908; a=rsa-sha256; cv=none; b=llNvVtzPycNmcRICFjoTA6bk+21AslLMLgBLr1d02nfy4gv2C+mFip5fJ5uuxP+FmniYR2 il4qytVxeLsf7dJ6qEMCjgnBZTsVlQygDt80RjxPTDLZWVn4gJ0YDGyt2rqzFe414C/Zqk JLNO3cN1ZDLxW4ycQ6VBZiUafIl7n4IU8CSa38i/l+G75UvzJcndP1huSu3JyS4n3nMh/V Je3zeEtFzLc/vhID9zCpDUp/TrgzhIAfhVlttuZdb+uTmKZ/hkn6hfCwq3Ol+xhd9Z/DnC RSUjZ7GWe9X+80CrqCii8M+nyZp6ouCaBL9NpVab6zvoQm/YstWGhOgkLmfKbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bNwOTQOtPw9SB6Z+WRxs8LcpNEW9qeMy/z3FaAzvFRw=; b=oaL/nYctJYrsm5g74P3Up0Z03ex/PZEfqJCu3vfhjdlQBoeq36D9kgS1jC/lWY684T+DAm fPGFEdZfboHW3+3e7KSYiEhZDoVOZjTZ8ej4zE2W8+nhEfSWCE3TYmyQl7enKttLQ7yAzn elHBpxENrBVoxNhQDri88AsJudN+ZtnOWQk6AoSVIjOiaEAKySEkB8pUltnpb98ZCgSL9W eMkZFZwKLT+h7ot/ibZrlhPG0CRlItjR7z12ZlpI3C6wD3TiKg0gQxySPGW/q1VwQmm+r+ m860UkUILAy1+/6VlwUMr8i+Y5Tx/Aut/wncSWdRo1ir1tsJz3YUsp3uVJUbxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvW822Ssz1Bmw for ; Tue, 24 Feb 2026 10:45:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36618 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: fb463bcd621b - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: fb463bcd621b78351d0ff91e60071ea9cbda05bc Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:08 +0000 Message-Id: <699d8134.36618.3aeec826@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=fb463bcd621b78351d0ff91e60071ea9cbda05bc commit fb463bcd621b78351d0ff91e60071ea9cbda05bc Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:36 +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) (cherry picked from commit 93719f8c8348a5d13c9037352072ce67f530288b) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index a9acfffee629..28aeaa784e14 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -7185,18 +7185,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) int rc = 0; uint8_t filter; const struct ifnet *ifp = ha->ifp; - struct sockaddr_dl *sdl; - if (ifp->if_type == IFT_ETHER && ifp->if_addr != NULL && - ifp->if_addr->ifa_addr != NULL) { - sdl = (struct sockaddr_dl *) ifp->if_addr->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_LLADDR(ifp)); + if (rc) + return rc; rc = qlnx_remove_all_mcast_mac(ha); if (rc) From nobody Tue Feb 24 10:45: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 4fKvW94k4bz6ThXm for ; Tue, 24 Feb 2026 10:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvW93ZtXz42mV for ; Tue, 24 Feb 2026 10:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=quew4mUMabqx9yBwDul93P3fiSfAhibdLz/8z6VNSDg=; b=LBFoj2xMLw5XzDY44sogLbMtCn6EPvdOuatn2CInfx0wtTX2IuA61WDyYBK5Sjml2+k9fv Pees2BetdYyKgarx65ksHNhJe6XyyaoNCuB3bLvK/jLaihoSaSKH+1tg5OVuE069/A+M8K CB4a0ca3pRz6vommcm0MOqIJXKOTj2gmHn76gJ1xhEiTOFcH01iT3G1saWJuWkWYMX1FN6 x9dK77Kx7Ems7Kvkp8zJ8wpM4Hl1wwRxlsxiGFzuXNVyOYI3hlpDkpK5+B7749452DajYY wJlKJ+QYPujL+5zkrN/bzx71pN2mxP45BtipLsMJfc7JaZAiBMsKsw1meVl8HA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929909; a=rsa-sha256; cv=none; b=k8m+hRFqScUHeQwzKE9Dw6dd16WIoTaKSy9IXOM8OonKt3pkg+sDg73XrSmXiNRddARhWM 1IR9Uqn1lunjzlHAqzMF1Fohf5vDNKWqSt8uBabNW3ghnW5ArX5QvGNsD3tNMzsyZbwcaU MHdPrXOpa3G89RhkoZ3hykmfmglkxLbP7/5HBzJ0nfPnQIDqFRXxwGUcco6hMxh5h9vR4x RIO17AtAr1K/amDS9d0jNnG20YYnJxkbIMiCbl/hoRmyldqQFjJnXq2T8gY3nO4FB8KGOu 01uAsU1DgkOMRyMSqe6CIiOH2w4tMRsDAk1TMfjaVWcwp73t2m4Pyn2CKufGqg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=quew4mUMabqx9yBwDul93P3fiSfAhibdLz/8z6VNSDg=; b=b9QboaLiYjX9wCt3xEUE/n4THcnczHiGLflNxgUfUccixCnAVAqoM6YmaT9WZlXTcrLBj+ entw8thnrNIxLjlCekfqE/NVBEJmRd3BRgyRtfJRJTy2zIZBc0cAH7GlZi0bWenlYHB+2d xYPChUjbn7ts81pJVgE9+ku2xCcwyfvVigYkflfze0n6OnHY4VRqLKWoxASMGhfQVSGhtK +CgeuVkiwxPQXs7g1DhVJigqoK6mz1V9KGK4DprTQMP33JIZNO8aWXXkKpAztBD8lU3WA9 vpd9/IJ8T/QzrBaqQrSaRBPAUFhj6O3eXv2juri/dLTswvRMm/kYRKRJxpdrKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvW92swKz1BP0 for ; Tue, 24 Feb 2026 10:45:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3661c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: e16c965add1d - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: e16c965add1d28422f92388daf623dbf967794fe Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:09 +0000 Message-Id: <699d8135.3661c.37dbd163@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=e16c965add1d28422f92388daf623dbf967794fe commit e16c965add1d28422f92388daf623dbf967794fe Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:36 +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) (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 28aeaa784e14..f0d83c3356ff 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2617,9 +2617,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); } @@ -2682,11 +2680,10 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ifa->ifa_addr->sa_family == AF_INET) { ifp->if_flags |= IFF_UP; - if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { - QLNX_LOCK(ha); + QLNX_LOCK(ha); + if ((ifp->if_drv_flags & 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)); @@ -2746,19 +2743,23 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) case SIOCADDMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((ifp->if_drv_flags & 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 (ifp->if_drv_flags & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 0)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCSIFMEDIA: From nobody Tue Feb 24 10:45: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 4fKvWB6QnGz6ThN9 for ; Tue, 24 Feb 2026 10:45: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWB4BdDz42dn for ; Tue, 24 Feb 2026 10:45:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eNzKURkMuM/7h5W+t9172Tv0OqsnxfDUyzBigUFMeV0=; b=jAwW/eWz4g3ZT1X+VazmQR9IfAucpd6bmgOPv0T8+Y/O6MQBZlsLJhqplOETn429cnYae+ myRw2IHc1s3ZQ0UV7SeLYmsWCvij1L+drvkAkDA2rhGUiIfZb2+N1hWYNLOt/VIPHNYpap 1ojibqKwF3p97xN317r45rz+sYg/kgxuFjqciGuUEVwd9yHIvHjZ3j4gimT/prAvs1bOfP Yhns+dRPTjKRtQPSUCGHTbcAkWsdeQcTGhqYKUJ/uCSGO1nM/0GdYY8KcPjzP0N4bcVm29 kZy5M9fVeenJyxzNraMVgXJjpxKs/atrmXIuazxJDHU/3f652KKN9TlDB4SI8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929910; a=rsa-sha256; cv=none; b=ZAJ+7Q2lRbKedMZ58OHzw3FKk6Dlq/voaUSMOPeSzM0dvRlFrNiqAsMAzZj+TMxn215V+K 7R0EVAWNXrl5ENgAZEdD5RmldSOoYnoE/hh8mqB5iA7gkm49qp4PQB3aVxYQ3wdn+CQlb4 5UalPnFWiwGLwQtio2p3PbZ72pxA95dq2cswwNn9/Yf7QFLmFR2o5ia7xsdbl3GlRH1som PXRUC2d50q8NFu9ES0fvRlqtWI1J3I+aMso6XcDuqO3B6eHWIzPHISh9B3k8RZ3RPNjjTM bpv8u4fsGVXgOzfcSseSW/Iz8vJ152kE+z9C7kU3TtFKS2bbMrXdsIpPG4P4ww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eNzKURkMuM/7h5W+t9172Tv0OqsnxfDUyzBigUFMeV0=; b=NjrhRK+lWXKMxNHn8Xb5osB5QVVIy0XiY2UtpZTRXKqN9az9DVLKsWMyCVxrh8lIZEzaUB s/zemX4EpqunWvW8huTP/tJVzOOcPhgk4lt/ScmOMpmisn58nt/mopHoj6RxwYfLtxicxF b4asRzkHvbSncvnjCjj/mwDSJKfDMW4NBDlJ5cnJnSZa8i3XjJB4YwNvE9sj8k+FE5zK9n Egmkd4/PFTEtBKkVvO5RenvYEysPsGVS2eLmaJkdQULPHl58PmSp2X7wL8uAG/4zvCnR4C oObxITPKSD9CuINvDj3NiE+nbAFW9BSN6MP6HV2p+aelEHkIHJQ47bW267yg5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWB3lXfz19hs for ; Tue, 24 Feb 2026 10:45:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36620 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: aef23e8e2736 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: aef23e8e2736e839051bd7664b19ec0b9dc2dbf3 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:10 +0000 Message-Id: <699d8136.36620.2a37f8ec@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=aef23e8e2736e839051bd7664b19ec0b9dc2dbf3 commit aef23e8e2736e839051bd7664b19ec0b9dc2dbf3 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:37 +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) (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 f0d83c3356ff..8bb599065f0c 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2480,7 +2480,8 @@ qlnx_init(void *arg) QL_DPRINT2(ha, "enter\n"); QLNX_LOCK(ha); - qlnx_init_locked(ha); + if ((ha->ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + qlnx_init_locked(ha); QLNX_UNLOCK(ha); QL_DPRINT2(ha, "exit\n"); From nobody Tue Feb 24 10:45: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 4fKvWC52kXz6ThKX for ; Tue, 24 Feb 2026 10:45: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWC2rNSz42ds for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929911; 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=6xuemcRASKgv0kXq7GjRd70tvllOp8uHoVE82kvPyZE=; b=fwxlkYPea1fmsAdZExI1lyQcnhFUszIQGmmL/DbcneOVLRqu7YpcdX7R8XJ0At3r2HDhAV 1Z2PR4kBd0sdfBn5so3wAlqxwcRMy7vqw/G03iRGgN6fN3Z5drjtk6O3fQxG4fB/fif/d1 WACv2CGWliyJd57QE0Qnix03jOsqLd+F1U3AfY3RgDWWy/4OzktHtS/ch8lFEeTkkgna3V 4ok1Xt1hLyYyB7kr69KrzjfRbxrrL4EHlN56qtddkmpZOtEplVtZ7Ol8Cy6RMBdnKCHy6B KF396GKT09QSH9hXwGw9t0GFfgJyjOktWOMuTLd40zOW1Lh8Bj5CBCA0cis8Xg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929911; a=rsa-sha256; cv=none; b=FxkA7OBvVvGFpiKhVbIjy1U2U0TG5NAnf/UQ4N1TDqaFPrf/tsDjJJ8m228NFd4Q9Z0BCP Pn3/L4xGsGleF7kSnR3nzM524GtOBRjQOkO58vNwMs6FD8Zlxcn8UBihUxTuEiHza6kgra OjZyecOgaX/PfhIlVG1MPWv4ASYvtdVaMC8RE5CPgYpwVakQsQICWjJnXudkOFmpL5y9DS q44uXzP0RoKpdDwCVdpEi+yguBYuDDLCYnLA1a8ui8Zzvn8Q+h0ZCN81tGljPrj6zp3F5y FT620uwmGN5WUQbotB4eH1ONOeQ/HxtFv9/HodF/rGNagBdRGk2L8/9D+RnkOw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929911; 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=6xuemcRASKgv0kXq7GjRd70tvllOp8uHoVE82kvPyZE=; b=adTcbGAemi4b9juxAQ7F7H4c9o86tKUfsD2GnsRBSxEl+5u0NhKVyDiSyhjmdJuP5NiLuo H82sV4It7pw7A0iAV0bpgdvaTsKkwdcknczfPycn23/tQrKmpeOeJhzDLVaSU5e/P0BOYM 471zsj6OplzM90jFlI4fNnhnbYink7xO787Uj5jvPmgc3RpOLZDTNL8L63T4U4Z9bKZA8y TUcFrbMUgNNP7k3Am0VmPJWa+9sb/cJQrFwykCNKhLRxOJrxCMqvggXpOqCNky0C7IY5OI zS+PyiG3rVVM+UGdF1vfGxa6dI3Okj2vZzISbIjPxOnQwDoOI5tr7901TCe3fw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWC2LJYz1Bcs for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3652b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Keith Reynolds From: Zhenlei Huang Subject: git: 610b81333f48 - stable/13 - qlnxe: Fix promiscuous and allmulti settings List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/13 X-Git-Reftype: branch X-Git-Commit: 610b81333f4816b5906df780cb064526cd8ba1f0 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:06 +0000 Message-Id: <699d8132.3652b.4381cdf5@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=610b81333f4816b5906df780cb064526cd8ba1f0 commit 610b81333f4816b5906df780cb064526cd8ba1f0 Author: Keith Reynolds AuthorDate: 2024-05-28 05:57:44 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:35 +0000 qlnxe: Fix promiscuous and allmulti settings PR: 278087 (cherry picked from commit e3ec564ecb9c2daa96a8db36052e50ea554fe598) (cherry picked from commit e4f48fc20b56df8a03ab63fb867f49bfcc0e7eae) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index ba9731600b50..64909d39ff59 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -85,8 +85,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); -static int qlnx_set_allmulti(qlnx_host_t *ha); +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_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data); static int qlnx_media_change(struct ifnet *ifp); static void qlnx_media_status(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -2624,7 +2624,7 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) } static int -qlnx_set_promisc(qlnx_host_t *ha) +qlnx_set_promisc(qlnx_host_t *ha, int enabled) { int rc = 0; uint8_t filter; @@ -2633,15 +2633,20 @@ qlnx_set_promisc(qlnx_host_t *ha) return (0); filter = ha->filter; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + 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); return (rc); } static int -qlnx_set_allmulti(qlnx_host_t *ha) +qlnx_set_allmulti(qlnx_host_t *ha, int enabled) { int rc = 0; uint8_t filter; @@ -2650,7 +2655,11 @@ qlnx_set_allmulti(qlnx_host_t *ha) return (0); filter = ha->filter; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + if (enabled) { + filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + } else { + filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; + } rc = qlnx_set_rx_accept_filter(ha, filter); return (rc); @@ -2714,10 +2723,10 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ifp->if_drv_flags & IFF_DRV_RUNNING) { if ((ifp->if_flags ^ ha->if_flags) & IFF_PROMISC) { - ret = qlnx_set_promisc(ha); + ret = qlnx_set_promisc(ha, ifp->if_flags & IFF_PROMISC); } else if ((ifp->if_flags ^ ha->if_flags) & IFF_ALLMULTI) { - ret = qlnx_set_allmulti(ha); + ret = qlnx_set_allmulti(ha, ifp->if_flags & IFF_ALLMULTI); } } else { ha->max_frame_size = ifp->if_mtu + @@ -2727,9 +2736,9 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) } else { if (ifp->if_drv_flags & IFF_DRV_RUNNING) qlnx_stop(ha); - ha->if_flags = ifp->if_flags; } + ha->if_flags = ifp->if_flags; QLNX_UNLOCK(ha); break; @@ -7196,9 +7205,11 @@ qlnx_set_rx_mode(qlnx_host_t *ha) ECORE_ACCEPT_MCAST_MATCHED | ECORE_ACCEPT_BCAST; - if (qlnx_vf_device(ha) == 0) { + if (qlnx_vf_device(ha) == 0 || (ha->ifp->if_flags & IFF_PROMISC)) { filter |= ECORE_ACCEPT_UCAST_UNMATCHED; filter |= ECORE_ACCEPT_MCAST_UNMATCHED; + } else if (ha->ifp->if_flags & IFF_ALLMULTI) { + filter |= ECORE_ACCEPT_MCAST_UNMATCHED; } ha->filter = filter; From nobody Tue Feb 24 10:45: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 4fKvWF3Pqtz6ThKj for ; Tue, 24 Feb 2026 10:45: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWD6Rk8z42pq for ; Tue, 24 Feb 2026 10:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EWX4mnDApX1BNK9UZmbe7kPsFWrXAklW0nyb4xl+C7o=; b=qecsc2g3SCqNYSuuY5r4F+xN6ymv+2tQ9ouK8frtJvtcsiLbNiTqCZQJzcOMozbWpxDSrB C1gNdgdpRPT/A7XYhZbqbIUPHO/NwrFmWx08UgfYGkiKKcjOOkZD9d5mrQhAdue6QR89Qq +6HTCuS+qIjbRh/ox3Aa9ofM2v0SkrTXvo3HEpe4oZdXESjTh0Wvfb+rHY/ymYBMMQl6We EwOtml7ot7xGm6mxeS/MixnfTEOMj9oBnXiu7udH3IxUPRQnzzr7UtzMGUQotUhPq0LTEN Fo+7V5cZSGsGckDQUK+TulBhzGsqgyUWBgatX9k7ETBGCLVn77LzrG3iou3Dog== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929912; a=rsa-sha256; cv=none; b=SRtfyX7DC+QXvNVBlswV4lj2/wUWeGa87kw4iLCAHBB1IUVAeT2x2xf9GTuCWCUB2lcrGx aXm5x4xdAJLlcfD2EEpZ4/OhA7F8iwrTaqZxEPZ5ph1f90rYMlgkhlJgv4t02A/wnUpRxW ZcwhFR+ErA/TnLwop0oIvtS0+PWlO1SEPqhLvjPszx5jGzCm8/MgPvNpX8QqSGi2ocNu95 b/CeGYZGRSNXcy9NVXSrg2VKZv9enrkOuS7Kv5/0zMSy0MMnLO3SuRI66vqXV9suRsm7ib LlAPWQfe2MG/n70s8nfxf03XKiS6pZegdcc1LWw1yYZjnd8fQRgcvqkfPLlQZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EWX4mnDApX1BNK9UZmbe7kPsFWrXAklW0nyb4xl+C7o=; b=pjOQZLC+ObSF0bMC5PXTmf9ynXXXeX0XuoS2ToEjkLsaHoctZxOvO8bk4WPY25zSc0V/ar rBL4c66+yR4Fgseq+OSS+7NPwHt6e/hgI1E9srZlCrVhDvauEL/yxfByp7qYADQMieyGab /AxXckXyGEKALaBWWC4IuhVrUh68xSzEJcTNeR0ZxuNtNukTMiODfZJEXZRuaMsFN3lL0y u9/aaJNdD43d9uvIwCdguNuoswv+/RnAcAwofgPlKjFgBQEMCZVcjKwNpmctg1YDkI+o97 8SqyVkOwMoZp/4Rcuu6mAPpnMV8V6IxsxC8GAVk5mHQ/S8nq65M7UkFPd0J4Nw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWD5RvHz1BK8 for ; Tue, 24 Feb 2026 10:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37282 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: eeb4c04dd12b - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: eeb4c04dd12becd430e9367a679f72d6ee9100f0 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:12 +0000 Message-Id: <699d8138.37282.48a9226f@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=eeb4c04dd12becd430e9367a679f72d6ee9100f0 commit eeb4c04dd12becd430e9367a679f72d6ee9100f0 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:37 +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) (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 3e63bd2d1882..d647f928f6d4 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; struct ifnet *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 cce23f0f7ea1..311ab73eb868 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -85,8 +85,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(struct ifnet *ifp, u_long cmd, caddr_t data); static int qlnx_media_change(struct ifnet *ifp); static void qlnx_media_status(struct ifnet *ifp, struct ifmediareq *ifmr); @@ -2624,44 +2624,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); } @@ -2701,13 +2706,8 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ifp->if_flags & IFF_UP) { if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - if ((ifp->if_flags ^ ha->if_flags) & - IFF_PROMISC) { - ret = qlnx_set_promisc(ha, ifp->if_flags & IFF_PROMISC); - } else if ((ifp->if_flags ^ ha->if_flags) & - IFF_ALLMULTI) { - ret = qlnx_set_allmulti(ha, ifp->if_flags & IFF_ALLMULTI); - } + if (qlnx_set_promisc_allmulti(ha, ifp->if_flags) != 0) + ret = EINVAL; } else { ha->max_frame_size = ifp->if_mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; @@ -2718,7 +2718,6 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) qlnx_stop(ha); } - ha->if_flags = ifp->if_flags; QLNX_UNLOCK(ha); break; @@ -7123,6 +7122,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) @@ -7166,7 +7168,6 @@ static int qlnx_set_rx_mode(qlnx_host_t *ha) { int rc = 0; - uint8_t filter; const struct ifnet *ifp = ha->ifp; rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, IF_LLADDR(ifp)); @@ -7177,19 +7178,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 || (ha->ifp->if_flags & IFF_PROMISC)) { - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else if (ha->ifp->if_flags & 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, ifp->if_flags); return (rc); } From nobody Tue Feb 24 10:45: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 4fKvWD5RJdz6ThQL for ; Tue, 24 Feb 2026 10:45: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWC5LSwz42WX for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eSJBB1E2QrSTH7Qvdb0RcdZvzUtTbIxrPwm+39SPStg=; b=yk4Rs06lh0L7ubfH2Wibr3V+GqW/Br1qjTlNNN/Xjuhf8+mCo8Q/dIKkyL+zL6L66VZ93U f14i8aCdBA5ljbdTyEH0QHKKaHKbc5Bm9Kgfv7xe9Iz8baX+DFvRUJpk13wxrdLpJuq/ny /Ud8Nnd+xk1F8PRqRowQ/iXp13rhwWIjKBW8yu6SAsVk1/ENhuHAvDJlow83mNR9YxPwad OR4QeIrt4gJGXhAaTVc7NkagCUl5exE7Wyep8ZX1KTU7eevJCGLWvBxC3wlfxBWmFg63dK RdARzmDfypa13syiTNRNfRYwDVvXe+pCWluEphT3ugj5ypYeZ3icts2SzF5X7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929911; a=rsa-sha256; cv=none; b=yTZCJ0HHxaO0dBQ2H7RlZPelZ4GFxv6t2faLEQfwO6F16zGLug8BCyn0I+RdbNixT+RPKN ZzMkgQm2BgCmT95sYEKCNWWS7K8zxCJcJyFccYfk9gCx29AHrkh7MGPKK8LBFcuc2JRq6f 6TxQYg21uveSNOgIL49IgFJNgWPvBnjdvs3pEpbeMo2xgCgdCBWeXLmjAiMfaYt+OK73CG b+6ptfNJ1bR8u7BBkErYYftiCCAyf6AHAYfWnn88qLZnIWb9/qkCvlv4ZRe/q4nwEx1lyo L0burHJDFsmTrvKyBsc4F++RrwzrACpAxlfWpuOuBAD8OW5OijN5L+Jh15kQiw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eSJBB1E2QrSTH7Qvdb0RcdZvzUtTbIxrPwm+39SPStg=; b=LgU0EWIpGWYlByYNwPXeHt9asmJFa6eGGSrdhzvVu1IfxdwUFzfYyonxHIm8DeDPLTQLZ2 EnpPP52Ek2eevZue36mdtcwR/dUOQGHq2ziDgFcRCKMcCDUhZ8jlZzm8WdcYScuoSMJgb+ 70v0iR47KqzFfzrNBsX7iYCU4jtr7P/r+EFP+XJ1LbnhFw4weBWePczETID2dkqo5ZSCnn AS+KU9ws1kG9XMTFUejiRhf0y+nM+UQsu2ND94DW6la5BhCid+qkmQLbx7lTiGGqYI1Sga 8Io0P0Wt7TtZKrG926UapLD+xxlgQuvMWF1TZCRqYykMdp/upSqyAFkCnui0NQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWC4b6Cz1BP1 for ; Tue, 24 Feb 2026 10:45:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 337f7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 52609ccbf703 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: 52609ccbf7030f89133181ed5337f642b325f7af Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:11 +0000 Message-Id: <699d8137.337f7.4c6167b4@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=52609ccbf7030f89133181ed5337f642b325f7af commit 52609ccbf7030f89133181ed5337f642b325f7af Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:37 +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) (cherry picked from commit 20ffe22fcfe13b48a8e993cbf565f9cd9229a4b3) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 8bb599065f0c..cce23f0f7ea1 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2670,30 +2670,11 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) { int ret = 0, mask; struct ifreq *ifr = (struct ifreq *)data; - struct ifaddr *ifa = (struct ifaddr *)data; qlnx_host_t *ha; ha = (qlnx_host_t *)ifp->if_softc; switch (cmd) { - case SIOCSIFADDR: - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx)\n", cmd); - - if (ifa->ifa_addr->sa_family == AF_INET) { - ifp->if_flags |= IFF_UP; - QLNX_LOCK(ha); - if ((ifp->if_drv_flags & 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); - } else { - ether_ioctl(ifp, cmd, data); - } - break; - case SIOCSIFMTU: QL_DPRINT4(ha, "SIOCSIFMTU (0x%lx)\n", cmd); From nobody Tue Feb 24 10:45: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 4fKvWH40mGz6ThbD for ; Tue, 24 Feb 2026 10:45:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWH08lgz42n5 for ; Tue, 24 Feb 2026 10:45:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DOAQOzLsBHacauDaAAJ1NCMukMbAC2hXiNbEAhfX1po=; b=qeZWDtkbCsv9MoMlpu7P0fllTmUdnB/GfSrB5hH6aWTXpZbyRFwDyxcsVsl/HwXUJ/EN8F G1tGFEQgrMsXtIsXee670QjqJSNxyPlZ5MHmdyeyXMYtM+EH+aHYdfwCz2riP+61EIJo/Z A05338MOhww/JFDjoEyMxxZK3mVg428pvPVcyPccsEj3xQkq08QGRiLQ/Ohej7oIyjFmxl pUNq2H8IAXYM6aKvbMpwrEsTDezJtNOl2wfyIq+8BPeuV8L6YiDCl3KhGSkGOiX3EvnGPv wvsAJ7MWnvTwpi+sd7iPJT0PX+cWU0hRRG+UOuLjHGFjolYrWGL3xcRALSEJaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929915; a=rsa-sha256; cv=none; b=LdmE2PSJ6XyhzDG+Hu6SzVs7wtK5l4rRboBIEPvEIO7it1lxbZY4FL2LicTU3KHO82XJ0v NnEt+mqX60Z29RGa2nX4SX9p/eguXQIL4iAOuzMFM/1G+ZCT0qAaOSmvKa04WnG+cMGiVN TR0R00jxjVr0XPkHPNm38XsvzvEOSOiVWi9c3r1oo2p79/afUK/d3e7a3rmDxAuLrJtuTo BrQl4hkLlY8UagvKceFeeLt1Mu8jnnzDQP/QFezJ6pYcsNMDQD4iaO5/kVkek9z3r22be2 2Stxa8RJPbxbjARajwreX4jMBfFYxo2wUeRkShojpAxJ9/8clMSxHE4XJgDMRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DOAQOzLsBHacauDaAAJ1NCMukMbAC2hXiNbEAhfX1po=; b=NMnVrsWOrolg12FccsUsxf4ErrkjfodS67scmfdYbICC3PiEP/JbFEb+R0CPIEO5kBJqiW aZYrkeYy3+jS/o0jDtVCh43s6Ns4ugzCPX8ShYuWyVoy7+j5pDHNYajMSHGkqd0jF1TlLY mI3ac2nw09LdnrTLbQzkVOwXRjdwQsbiMgc67UzOa6tGd85dHtl6Y/4iQa2mvkZyHBcZt9 FAtRk3RHNXnN0qBJgMnjl5XVmoQoTvnAupM75wN8FtcQibNGAK9mlTxPj7M2vzfe9y1B75 cko574xiwYyRXLEUas3Rb8twcIVrWmqsPImzsZPtYkGKdU1rJNHWvkNaClnrjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWG6rNCz1BWN for ; Tue, 24 Feb 2026 10:45:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3481c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 091a1e7d21c9 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: 091a1e7d21c9b2cbd7dbe89335b08d4d50fab96e Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:14 +0000 Message-Id: <699d813a.3481c.c6b5cbf@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=091a1e7d21c9b2cbd7dbe89335b08d4d50fab96e commit 091a1e7d21c9b2cbd7dbe89335b08d4d50fab96e Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:55 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:38 +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) (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 d647f928f6d4..70a29eab9a05 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 1e4f43b46200..96a5e9e7e269 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" @@ -84,7 +85,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(struct ifnet *ifp, u_long cmd, caddr_t data); @@ -122,14 +123,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); @@ -2489,138 +2489,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]; - struct ifnet *ifp = ha->ifp; - u_int mcnt; + struct ecore_filter_mcast mcast; + struct ecore_dev *cdev; + struct ifnet *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 @@ -2722,22 +2629,12 @@ qlnx_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) break; case SIOCADDMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - - QLNX_LOCK(ha); - if ((ifp->if_drv_flags & 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 ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 0)) + if (qlnx_set_multi(ha) != 0) ret = EINVAL; } QLNX_UNLOCK(ha); @@ -7089,31 +6986,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); } @@ -7175,7 +7059,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 Tue Feb 24 10:45: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 4fKvWG2BlGz6ThNF for ; Tue, 24 Feb 2026 10:45:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKvWF6f9Sz42Yp for ; Tue, 24 Feb 2026 10:45:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O1vcYdKDsO11QDFq9S80cyV3zRpTCo8YS+WOTVD42T0=; b=yyVXryTWaoi55yjeBUCs3iBIXDsFgWHLHrNqlevFwoC31paPD6JpdmDSjTtpEiNO9yPLQu T0Ewr9QWxPPmlquWKi2HRtaWCzTY3S+MhG8ZekF/jGlhzKL6+9zh6Yl1NUzAa1OKwGSn56 +GJl9nWNyD4WSe9MhV4kg5boMYR1nDQ9eHeQXgbuF+gTN1RAi9F2Hd7KtHp3TrMU5B/Rai 3hz4Qj48ogGqOu6qgm2xdgsG4w1L89bz88fCuUrkisIzMsX06BLQavIiiILJTPPrSgZNEj i3sZ9kqURJ1/mBSOEZVzJ0iJNdVwWR7bIF11ZVo+MY61f63o3UTS9nSRZwPbqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771929913; a=rsa-sha256; cv=none; b=xLz3W2Vb9vwhqTwHcX4STv39eWdyCOf+d9A9pEd0HRf1pO4vrIhy/fSJMtNTAKuxaF+Cjs KZFLeTY5kAjq++00T17s7ACpdXEr7XIrklsgwiJHXqcxYdAjbXvz2p8g3WpwAKVJ7MyWne OmT/wMQD0YsBEyVdTGvOp9MmZonJg/bRytK2bTJMmU1w72/mcRQ0KHIan21Le6U69xBTE0 lES5uVaXouDBzVCLBEqltxwggT0Y8XYEGGzaYXQV7TXCYrDOE/oaoMLVikh6xJQ3t2LLNc mOt90rEAC3TBURmmMNNeaYtcB8oV8p1MFd1Rj3KplSErnGOxZi9ecMYiOYG53w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771929913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O1vcYdKDsO11QDFq9S80cyV3zRpTCo8YS+WOTVD42T0=; b=y0Zu8WkfAL+i4jTfbm/aIWoSg16E/3CK2XQutcsbSck+UwC4JObadZohFVCl8uWGoRTvU7 w1hNPw18fB42goGM7NjGlJrdqMXWzUkGJLX1fmdOOSH2uDnbeqITl4mCfXnxRomZr1Vocu T1HLRJ73UnWEhmCd+1C1nYFQGBWKpuyGaF96WsO8JZqMelXPNRHJotLPjsR3NgIVQfEyLT mkLiRPEaHZQtTIqODzSvfWmNaA5ngOkLqg9tDVeTXEe+KI4TvCsX6g+V1uoGA1T5SoZyEQ Hnd1rH83/T6Xo/ylO090vtJGKcpLkxjxqp5M+COQxM6HvrWxmt9ct/az4qlwiQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKvWF65m3z1Bcv for ; Tue, 24 Feb 2026 10:45:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36624 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 10:45:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 281d578e9ff5 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: 281d578e9ff56412bedbf7884fa097e5e59438da Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 10:45:13 +0000 Message-Id: <699d8139.36624.671f7bfd@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=281d578e9ff56412bedbf7884fa097e5e59438da commit 281d578e9ff56412bedbf7884fa097e5e59438da Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-24 10:15:37 +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) (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 311ab73eb868..1e4f43b46200 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -3049,6 +3049,7 @@ qlnx_transmit_locked(struct ifnet *ifp,struct qlnx_fastpath *fp, struct mbuf * 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 Tue Feb 24 11:54: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 4fKx340XN6z6TqHF for ; Tue, 24 Feb 2026 11:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fKx336rBmz4HRp for ; Tue, 24 Feb 2026 11:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771934064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VtFimM7AXO927M79xRmRQX+7sNZ7ND88tnFNYuXxn8E=; b=dgpzTGQwUlUocD2SVsejdLCQs8e6txss3H7hzHm2OpIrCCvKqRJHwObuQWRmqyFSi3ORT+ /RbwL/kLdCx7kwsXOK1cHGqlPNFwaUcD3OkZnid/NG0BN9xiAC+79ZrinPBfJYMVBGDoeb fwB6nxo65mn1mibR3FESEOagroFoWCnLLEjnEr1pErmQf2N+q50pl7hxgzr57dSvOwlz4k LgVrkDNjHBbmE/aTEiaA5MGmrNFbHgDdvGzCNSmJQIPxXJ7M/kSlL+XHSzzqcNmAEmiIvU mFT6Q3VUiGP5kYyZCXbMDJ0GB+IMu0Gyf686l3GSazrNsNPWxqpU8ZkgcuHwhA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771934064; a=rsa-sha256; cv=none; b=IkjAG76G+lstoH2x1sfdYUMtN1aDIcCMQccKTe23o8YZt7eYPeOPGyk/J0HYgdwbTAZ0LK 267HLmNum8mCxaNLshDtpavPor87wvI+CRAGKTawepjvlF9/BWTVbIonumfe4ke+i+R3Z1 hB2iQoarwmh8doNZd7wUi6F51KeY0knXUfT16TB/UQtbHuMLbpzQYxllegaIMGI3cD0Eeq V8bbJdUHTBwhIeEIXF9okZwCwxm4C0rKiA0U2m2F5cehYW+zWBaBblL53UxmSXWQokqAMd z4ssRYiBxRNiTk5hJJimv6SlbVrlPjyvtfdXc8qBk1QgM8wdWsWoQR6uTAMzDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771934064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VtFimM7AXO927M79xRmRQX+7sNZ7ND88tnFNYuXxn8E=; b=awdXuIbMUxponHx55iJJkdpjxbcBwAb8Ue7YakOJ/EfMg9SgaMzjRmF0vpq2Q+rL8CX1dC toB4ucL0ErhRpCBcx3gUjiyTJusCjqP8Dz9rl7f8WbI8xv25Z+YYTqtUeOkJ7yQ4/Ynlq4 SImFOD62KoIUqTnteX0B80xKQztNuprJeGn6ZIi2NRIO9JjpNGz3Bdt1ZpssxkzLS6q/kZ av26Wau1v1uGa7DG51FqS+ULVl0AJVzO00ZPGpBUzh8+O1DC0Hrv/ROVeRALqQFvOTSUKD /omqdO2csuwWY1zDLfOQGIA1a7NFKqNk86l+adY3oVfG2TsvOmgTyN0FhDFYog== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fKx336P2Gzcr for ; Tue, 24 Feb 2026 11:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c440 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 11:54:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Johan=?utf-8?Q? S=C3=B6llv?=ander Subject: git: d3fec169baf9 - stable/15 - sbin/geom: Convert err/warn() to xo_err/warn() and style(9) fixes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: js X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d3fec169baf9ea0a94d868b04adeab16f918e29f Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 11:54:23 +0000 Message-Id: <699d916f.3c440.32f3c141@gitrepo.freebsd.org> The branch stable/15 has been updated by js: URL: https://cgit.FreeBSD.org/src/commit/?id=d3fec169baf9ea0a94d868b04adeab16f918e29f commit d3fec169baf9ea0a94d868b04adeab16f918e29f Author: Johan Söllvander AuthorDate: 2026-02-10 12:19:50 +0000 Commit: Johan Söllvander CommitDate: 2026-02-24 11:53:02 +0000 sbin/geom: Convert err/warn() to xo_err/warn() and style(9) fixes Finishing up the libxo conversion of geom by switching err(3) to their libxo equivalents. While here, fix some style(9) issues. There are still a few left, but at least they're fewer now. Reviewed by: asomers Approved by: asomers (mentor) Sponsored by: ConnectWise Differential Revision: https://reviews.freebsd.org/D54938 (cherry picked from commit 821243b3877d90290ba519f2aeccf6f48430db32) --- sbin/geom/core/geom.c | 79 ++++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/sbin/geom/core/geom.c b/sbin/geom/core/geom.c index a1b1b351ebb3..757eadc218ef 100644 --- a/sbin/geom/core/geom.c +++ b/sbin/geom/core/geom.c @@ -201,7 +201,7 @@ load_module(void) /* Not present in kernel, try loading it. */ if (kldload(name2) < 0 || modfind(name1) < 0) { if (errno != EEXIST) { - err(EXIT_FAILURE, "cannot load %s", name2); + xo_err(EXIT_FAILURE, "cannot load %s", name2); } } } @@ -259,7 +259,8 @@ set_option(struct gctl_req *req, struct g_option *opt, const char *val) size_t optnamesize; if (G_OPT_NUM(opt) == UCHAR_MAX) - errx(EXIT_FAILURE, "Too many -%c options.", opt->go_char); + xo_errx(EXIT_FAILURE, "Too many -%c options.", + opt->go_char); /* * Base option name length plus 3 bytes for option number @@ -268,7 +269,7 @@ set_option(struct gctl_req *req, struct g_option *opt, const char *val) optnamesize = strlen(opt->go_name) + 3 + 1; ptr = malloc(optnamesize); if (ptr == NULL) - errx(EXIT_FAILURE, "No memory."); + xo_errx(EXIT_FAILURE, "No memory."); snprintf(ptr, optnamesize, "%s%u", opt->go_name, G_OPT_NUM(opt)); G_OPT_NUMINC(opt); optname = ptr; @@ -278,12 +279,12 @@ set_option(struct gctl_req *req, struct g_option *opt, const char *val) if (G_OPT_TYPE(opt) == G_TYPE_NUMBER) { if (expand_number(val, &number) == -1) { - err(EXIT_FAILURE, "Invalid value for '%c' argument", + xo_err(EXIT_FAILURE, "Invalid value for '%c' argument", opt->go_char); } ptr = malloc(sizeof(intmax_t)); if (ptr == NULL) - errx(EXIT_FAILURE, "No memory."); + xo_errx(EXIT_FAILURE, "No memory."); *(intmax_t *)ptr = number; opt->go_val = ptr; gctl_ro_param(req, optname, sizeof(intmax_t), opt->go_val); @@ -292,7 +293,7 @@ set_option(struct gctl_req *req, struct g_option *opt, const char *val) } else if (G_OPT_TYPE(opt) == G_TYPE_BOOL) { ptr = malloc(sizeof(int)); if (ptr == NULL) - errx(EXIT_FAILURE, "No memory."); + xo_errx(EXIT_FAILURE, "No memory."); *(int *)ptr = *val - '0'; opt->go_val = ptr; gctl_ro_param(req, optname, sizeof(int), opt->go_val); @@ -346,16 +347,16 @@ parse_arguments(struct g_command *cmd, struct gctl_req *req, int *argc, /* Options passed to kernel. */ opt = find_option(cmd, ch); if (opt == NULL) { - if (ch == 'v' && (cmd->gc_flags & G_FLAG_VERBOSE) != 0){ + if (ch == 'v' && (cmd->gc_flags & G_FLAG_VERBOSE) != 0) { if (++vcount < 2) continue; else - warnx("Option 'v' specified twice."); + xo_warnx("Option 'v' specified twice."); } usage(); } if (!G_OPT_ISMULTI(opt) && G_OPT_ISDONE(opt)) { - warnx("Option '%c' specified twice.", opt->go_char); + xo_warnx("Option '%c' specified twice.", opt->go_char); usage(); } G_OPT_DONE(opt); @@ -383,7 +384,7 @@ parse_arguments(struct g_command *cmd, struct gctl_req *req, int *argc, set_option(req, opt, "0"); } else { if (opt->go_val == NULL) { - warnx("Option '%c' not specified.", + xo_warnx("Option '%c' not specified.", opt->go_char); usage(); } else if (opt->go_val == G_VAL_OPTIONAL) { @@ -470,14 +471,12 @@ run_command(int argc, char *argv[]) /* Now, try to find a standard command. */ cmd = find_command(argv[0], GEOM_STD_CMDS); if (cmd == NULL) { - warnx("Unknown command: %s.", argv[0]); + xo_warnx("Unknown command: %s.", argv[0]); usage(); } - if (!std_available(cmd->gc_name)) { - warnx("Command '%s' not available; " + if (!std_available(cmd->gc_name)) + xo_errx(EXIT_FAILURE, "Command '%s' not available; " "try 'load' first.", argv[0]); - exit(EXIT_FAILURE); - } } if ((cmd->gc_flags & G_FLAG_LOADKLD) != 0) load_module(); @@ -502,7 +501,7 @@ run_command(int argc, char *argv[]) errstr = gctl_issue(req); } if (errstr != NULL && errstr[0] != '\0') { - warnx("%s", errstr); + xo_warnx("%s", errstr); /* Suppress EXIT_FAILURE for warnings */ if (strncmp(errstr, "warning: ", strlen("warning: ")) == 0) req->nerror = 0; @@ -543,7 +542,7 @@ load_library(void) ret = 0; tofree = totalpath = strdup(library_path()); if (totalpath == NULL) - err(EXIT_FAILURE, "Not enough memory for library path"); + xo_err(EXIT_FAILURE, "Not enough memory for library path"); if (strchr(totalpath, ':') != NULL) curpath = strsep(&totalpath, ":"); @@ -563,7 +562,7 @@ load_library(void) curpath = strsep(&totalpath, ":"); continue; } - err(EXIT_FAILURE, "Cannot access library"); + xo_err(EXIT_FAILURE, "Cannot access library"); } break; } @@ -573,27 +572,28 @@ load_library(void) return; dlh = dlopen(path, RTLD_NOW); if (dlh == NULL) - errx(EXIT_FAILURE, "Cannot open library: %s.", dlerror()); + xo_errx(EXIT_FAILURE, "Cannot open library: %s.", dlerror()); lib_version = dlsym(dlh, "lib_version"); if (lib_version == NULL) { - warnx("Cannot find symbol %s: %s.", "lib_version", dlerror()); + xo_warnx("Cannot find symbol %s: %s.", "lib_version", + dlerror()); dlclose(dlh); exit(EXIT_FAILURE); } if (*lib_version != G_LIB_VERSION) { dlclose(dlh); - errx(EXIT_FAILURE, "%s and %s are not synchronized.", + xo_errx(EXIT_FAILURE, "%s and %s are not synchronized.", getprogname(), path); } version = dlsym(dlh, "version"); if (version == NULL) { - warnx("Cannot find symbol %s: %s.", "version", dlerror()); + xo_warnx("Cannot find symbol %s: %s.", "version", dlerror()); dlclose(dlh); exit(EXIT_FAILURE); } class_commands = dlsym(dlh, "class_commands"); if (class_commands == NULL) { - warnx("Cannot find symbol %s: %s.", "class_commands", + xo_warnx("Cannot find symbol %s: %s.", "class_commands", dlerror()); dlclose(dlh); exit(EXIT_FAILURE); @@ -614,7 +614,7 @@ set_class_name(void) *s1 = tolower(*s1); gclass_name = malloc(strlen(class_name) + 1); if (gclass_name == NULL) - errx(EXIT_FAILURE, "No memory"); + xo_errx(EXIT_FAILURE, "No memory"); s1 = gclass_name; s2 = class_name; for (; *s2 != '\0'; s2++) @@ -645,7 +645,7 @@ get_class(int *argc, char ***argv) *argc -= 1; *argv += 1; } else { - errx(EXIT_FAILURE, "Invalid utility name."); + xo_errx(EXIT_FAILURE, "Invalid utility name."); } #ifndef STATIC_GEOM_CLASSES @@ -664,7 +664,7 @@ get_class(int *argc, char ***argv) /* If we can't load or list, it's not a class. */ if (!std_load_available() && !std_list_available()) - errx(EXIT_FAILURE, "Invalid class name '%s'.", class_name); + xo_errx(EXIT_FAILURE, "Invalid class name '%s'.", class_name); if (*argc < 1) usage(); @@ -786,7 +786,7 @@ show_tree(void) error = geom_gettree(&mesh); if (error != 0) - errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + xo_errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); width = compute_tree_width(&mesh); @@ -824,7 +824,7 @@ main(int argc, char *argv[]) case 'p': provider_name = strdup(optarg); if (provider_name == NULL) - err(1, "strdup"); + xo_err(1, "strdup"); break; case 't': tflag = true; @@ -842,7 +842,7 @@ main(int argc, char *argv[]) xo_set_version(GEOM_XO_VERSION); if (tflag && provider_name != NULL) { - errx(EXIT_FAILURE, + xo_errx(EXIT_FAILURE, "At most one of -P and -t may be specified."); } @@ -1003,11 +1003,11 @@ list_one_geom_by_provider(const char *provider_name) error = geom_gettree(&mesh); if (error != 0) - errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + xo_errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); gp = find_geom_by_provider(&mesh, provider_name); if (gp == NULL) - errx(EXIT_FAILURE, "Cannot find provider '%s'.", provider_name); + xo_errx(EXIT_FAILURE, "Cannot find provider '%s'.", provider_name); xo_open_container(provider_name); xo_emit("{Lwc:Geom class}{:class}\n", gp->lg_class->lg_name); @@ -1031,7 +1031,7 @@ std_list_available(void) error = geom_gettree_geom(&mesh, gclass_name, "", 0); if (error != 0) - errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + xo_errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); classp = find_class(&mesh, gclass_name); geom_deletetree(&mesh); if (classp != NULL) @@ -1055,11 +1055,11 @@ std_list(struct gctl_req *req, unsigned flags __unused) } else error = geom_gettree(&mesh); if (error != 0) - errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + xo_errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); classp = find_class(&mesh, gclass_name); if (classp == NULL) { geom_deletetree(&mesh); - errx(EXIT_FAILURE, "Class '%s' not found.", gclass_name); + xo_errx(EXIT_FAILURE, "Class '%s' not found.", gclass_name); } all = gctl_get_int(req, "all"); if (nargs > 0) { @@ -1067,7 +1067,7 @@ std_list(struct gctl_req *req, unsigned flags __unused) name = gctl_get_ascii(req, "arg%d", i); gp = find_geom(classp, name); if (gp == NULL) { - errx(EXIT_FAILURE, "Class '%s' does not have " + xo_errx(EXIT_FAILURE, "Class '%s' does not have " "an instance named '%s'.", gclass_name, name); } @@ -1340,10 +1340,10 @@ std_status(struct gctl_req *req, unsigned flags __unused) error = geom_gettree(&mesh); if (error != 0) - errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); + xo_errc(EXIT_FAILURE, error, "Cannot get GEOM tree"); classp = find_class(&mesh, gclass_name); if (classp == NULL) - errx(EXIT_FAILURE, "Class %s not found.", gclass_name); + xo_errx(EXIT_FAILURE, "Class %s not found.", gclass_name); nargs = gctl_get_int(req, "nargs"); all = gctl_get_int(req, "all"); geoms = gctl_get_int(req, "geoms"); @@ -1356,7 +1356,8 @@ std_status(struct gctl_req *req, unsigned flags __unused) name = gctl_get_ascii(req, "arg%d", i); gp = find_geom(classp, name); if (gp == NULL) - errx(EXIT_FAILURE, "No such geom: %s.", name); + xo_errx(EXIT_FAILURE, "No such geom: %s.", + name); if (geoms) { status_update_len(gp, &name_len, &status_len); @@ -1438,7 +1439,7 @@ std_load_available(void) bzero(paths, sizeof(paths)); len = sizeof(paths); if (sysctlbyname("kern.module_path", paths, &len, NULL, 0) < 0) - err(EXIT_FAILURE, "sysctl(kern.module_path)"); + xo_err(EXIT_FAILURE, "sysctl(kern.module_path)"); for (p = strtok(paths, ";"); p != NULL; p = strtok(NULL, ";")) { snprintf(name, sizeof(name), "%s/geom_%s.ko", p, class_name); /* From nobody Tue Feb 24 15:30:07 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fL1r01g2Zz6SK9l; Tue, 24 Feb 2026 15:30:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL1r017CWz3d5F; Tue, 24 Feb 2026 15:30:08 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771947008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=seljLdEbIHfM1rOHKrxpW1niy+C6XdPKnaLZnhnBGv8=; b=DPhxpze0elquFGtRQG9Kmsb0NjlISNCdI4D9KtDXUrE12IaDkGPs9Sn+jxrb8AJ8QqeXzb iFy+9zaiTeT5oKm+uXfrosZbdie5+CeXZGSEkbfUa4A3tuaYDWsAG30OfH7D94UikEFjFs 6rrU7SXlIxW+z6LDj9CHW/mMG5NruMFMorBD513b32uuGS2kfYRzLoETeAvWjFzM/+UEUw /QpZd/kdluhsayQXGEPVUULe+lsqBsWUf5gxDF25kK99QEFzARUvNNF++fE8/3uOgiowM5 WlONtok8aNxx3Lkk+RyRM2/atuwI4FG3a81xsiCVlEWDGHNFpUysfSygW4XyRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771947008; a=rsa-sha256; cv=none; b=o2EP3630SfLdtYbzdyo6+Es9c+Gfx8P+Dz3bgcASHUhfdWgJx9AL+Aem/sZ4ty3hQxA7w7 TqJiRzdbLPfVWMTxUMQQlaY/OhYZKJPx31Xe7MNcx12D0DkrKRbpAWKndF6V9hnxOeK4LC iUyyB36rcSoqO0THsIRvaOE1b8JtxS0TbCTEmVLVpKLqrnHabH9Pvby1mwxyWTbuvXAaYb p29cNa943beiUX0Qq9pUA9SjCsc/axExlvu+b/P5qtShf0fb3DP+GPFsn0KRanTvQ8JYW7 7t+ljC8En+8/5V9HBeCp3kxf3H7jwrPHnF8m3j3pPbwItXwHPJ2L/JUjUcujjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771947008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=seljLdEbIHfM1rOHKrxpW1niy+C6XdPKnaLZnhnBGv8=; b=L6AZ58p48ljwtybi48UTk9huXcSaM0eaVYnY3aOZ3+kcaTOQgWAm18Yt15oeSWa6yTFYPM wzXT4tNLmMQSFBlHsowYopkcsfU76QLd+jB+AbNM5Se8NBfjXl/JhslFAuDAHnQokseZQO lxdwgDw+IKt3iyeDHpRNjZonVpTBZyjqWHNOXzMNxclV03C/Qsyqccks9eWPaUEcbr3M5Z LpAzJ2aZFE+OXv97wt2GW07YD78cfSzZShCU02cfjTvgdaF5Rp6o8a3PbquC4ENqRjCF/9 O6cXnn9wy7W93DGwRu6hT8XYrQzGbooeemp3RI9p8yEJVGV2St8zRsJfwu94bA== Received: from [IPV6:2601:5c0:4202:5670:b946:cabf:47b1:71cf] (unknown [IPv6:2601:5c0:4202:5670:b946:cabf:47b1:71cf]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4fL1qz61ngzqsj; Tue, 24 Feb 2026 15:30:07 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: Date: Tue, 24 Feb 2026 10:30:07 -0500 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: git: 887f0f125fd1 - stable/14 - Revert "GoogleTest: import 1.17.0" Content-Language: en-US To: Enji Cooper , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org References: <699a9186.32e99.543fe4bb@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: <699a9186.32e99.543fe4bb@gitrepo.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/22/26 00:17, Enji Cooper wrote: > The branch stable/14 has been updated by ngie: > > URL: https://cgit.FreeBSD.org/src/commit/?id=887f0f125fd1282c8054b402ad72af371a9f5dec > > commit 887f0f125fd1282c8054b402ad72af371a9f5dec > Author: Enji Cooper > AuthorDate: 2026-02-22 05:17:40 +0000 > Commit: Enji Cooper > CommitDate: 2026-02-22 05:17:40 +0000 > > Revert "GoogleTest: import 1.17.0" > > This reverts commit 227baf32d26360137492b108aba06c6a54c0949b. Please include the "why" in commit logs when reverting. I (nor any other readers) have any idea why you reverted these commits. -- John Baldwin From nobody Tue Feb 24 16:00: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 4fL2Vy2Srvz6SNwy for ; Tue, 24 Feb 2026 16:00:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2Vy1v2Jz3k11 for ; Tue, 24 Feb 2026 16:00:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QO9SW4iFVDhyTVj2F3RREooNiVUGsprln0x3RPjsA+g=; b=qy8qjnxhIqVCDJd5h2lxWjuFZM040LwZbdQF/DSvOmzXDaxFThMZKTsKZeMovciXlhSwOl X/T/pyf2A/CLvgCWqx1pqkbFJJuzx+n0gd4NUswDVo4A4emWetgvwLTBo0edZfkFvb3IJK 3/sIesdXYLfb3XEfgf/SRclj+G38qd+V3ahGijTK8EaH5XvHwEsJTKEYV89JWogGs4yc/U NMsRyf2mPzYZYdp95S+9ubsn6V5HKZmF7n+qJEfZ0fvaF2cMVjeiaBRzq4DlA7+ihlEH7v b47d4CHLPC1KvzN5+WnMPpiFQ8xUV8F+MESdpR00CUNVUI1cR25U2w+Thsa15A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948826; a=rsa-sha256; cv=none; b=F0ouC1LhZBmzDOC5197gCbeRGOt/0J3e30GqYfuqX35zGji1yAJel58jDdy+Iq82mFbht9 o+VCA2bQFb5xkDux6UH6AAlHT8KgpFb5J4HBOPSSa7ZQz7dWF0KyRFo6zYf8fgXqOgvH2I 7s1R5hYuWP2GJyxA3nxvFJSsxxVB4sCst3TYut9SUpLQkabBuEhrGORntwgBqyAGDTz9m5 s0wIWfflR9wtZblOeZZmjc+dDS+2UIkFf1+/poTe8yxpjHxn2pk2admcXCvFmt21L/CnON Wj5HqqfjpcR2MhImJ1cFSEgCFAl1qVSXFp647IKBvSMlHFAiPjm3ZLnKGzNf3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QO9SW4iFVDhyTVj2F3RREooNiVUGsprln0x3RPjsA+g=; b=jjT5zDbz5KOH4i4qYtfoQDPOpiF06Kejo0BB8OxXO1BGC9h9aQjvUiF0urI6CEhw+qfMxi EFRM/GpuX96XBZmWTfJFWXIH7+B4klzfj8vF5yRpSFDL9KR5eqR9JvekBvCjT8WwhaSKzd JRVGv06fu/8tElpiTC9f1UVCMzX841I87W33bRFsknABrWwoZ10ZV7ATuCXuxhh6Z4f52J 1of/+KBiiTlQP6txY68Q/ZiGx9soRQPIh+hVimUYgXZFoVaiw/xTytVVGZcWDuRUguH7np 4fOGKwTTvR9Xt0OSDzoFD0PtPo6LJjQ68i0O7Fv9+O+/X+JFSroWuZUx9ZU9Bw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2Vy1RxBz6Vy for ; Tue, 24 Feb 2026 16:00:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26f35 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:00:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: df932377e7dd - stable/15 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: df932377e7dd7dc536fa14612d9e80aa3554772e Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:00:26 +0000 Message-Id: <699dcb1a.26f35.8ebd06@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=df932377e7dd7dc536fa14612d9e80aa3554772e commit df932377e7dd7dc536fa14612d9e80aa3554772e Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:00:21 +0000 rtsock: Fix stack overflow Approved by: so Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") (cherry picked from commit f3be7df50f01d9a6ead9f27b55bb4dfd7dc4f9d2) --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index be858428bb3e..de4c3f8c6374 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1866,8 +1866,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:00: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 4fL2WC6Bgfz6SP0H for ; Tue, 24 Feb 2026 16:00: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2WC4yJbz3kYk for ; Tue, 24 Feb 2026 16:00:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gIQiIazey/RldZFWKyrpOK2XeJTxud+KgpR5aPGOUmc=; b=wSILS7Lw0n3zQYPw9RGXxAciel8Wa1mNl2UE9jwsXZ6kvtSl2EkUsO8iFL7cG/S/ig+Yev v6hDysHLXdq8K4AXMuT81X4SzfzIvxMy3zeDvbn9JmOVdMlpRXJV6E/OUm+02u6/LhnGpn CJP8vYZZlDsdqJW0htM+cLPAswHKPWy/oGwxYUjAosfblftEk7J1MSHkbABUr3+XS9XnGw XEGcsiXAVyKNZMlLTXpvVQC5pucd0NZDzYBUarpaOhAFb80QK/16pDWhJer0NhZhUTp31j MHQMLSYrZYkBYEBd8kKZoZ3Y2ji+Y+AdvqKlbkCZBSj1xbpUeoIZ6kCS72BltA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948839; a=rsa-sha256; cv=none; b=Nb7hCFhIQ1w89DwEifaQEMecc4M4qU3XHOUbVNl6RostE2lgEUfrUNzJqQ5aIif+S6MSgq SvFlGDlao9wFGVwxMfQs1GE3Vak+DbV1CzUhohRb6OxGwFR+EnHfP94lgDoJYmE2+aHlZB Okt521fFozC0T7WRNI2xEHGbZoRRWWN0PRorychwl+a+zPuovTjRN+7sbBx2SV7Cyf9hXC 1qAT5dqz4+Zva6ZJHVlhM7DiPajUFgwvcSzJIhtm9SoFUdeJTno5/bCSZIgXS/3wTtHvCD M6Q8VYOtP/mNkdbi7Dqwx+59O/lqd/A4qk07k1F8PZiXuolhmUBE+Zbnv7mlTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gIQiIazey/RldZFWKyrpOK2XeJTxud+KgpR5aPGOUmc=; b=SDV+yoN0oYNL+W59WsNI34Awh4znDFZU2az1iakTHh9vfZSWQgijJWH4KsdbmsI+EFvOJW vwTBJLKmLCKo0d2eEGQvY73w0uSkYqxCd2qOKBLzXF+GQ3gTVaJfUMuR7FBIX7X3fpwLhk 3MRNoHFso0KCPL876vdLduZbdzIKWOBMH7LrTw3qSLJeHJGv4SYCHhPAmVjlpXCFLBew0t /pWuQkQMCJbSWFyRKN8IJpgaKIrhEMv0HgA4fSrC8RxySjdd/xIQnJ355dap1JGm8i4iWg K72a3XFfiWdk9Mc/I3lwJZVMOB+KAOzUePR5/M6siJ41lp5uIxjmzXoqLcvUdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2WC4XcLz74n for ; Tue, 24 Feb 2026 16:00:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27d52 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:00:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 5de6a55c70ba - releng/15.0 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 5de6a55c70ba97c9bded822df449228065519ac0 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:00:39 +0000 Message-Id: <699dcb27.27d52.51528588@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5de6a55c70ba97c9bded822df449228065519ac0 commit 5de6a55c70ba97c9bded822df449228065519ac0 Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:39:42 +0000 rtsock: Fix stack overflow Approved by: so Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index f0dcc973ca7c..42be9b174972 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1866,8 +1866,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:00: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 4fL2WD6rBjz6SP7m for ; Tue, 24 Feb 2026 16:00: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2WD5bhvz3kR1 for ; Tue, 24 Feb 2026 16:00:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qEofP36tXCf2kwQT5KnznccW6vDBliUb8BdB42jOoVU=; b=r0n3kCouBRGwVvFPEhy3/9YZTfZIfHfzkPVkN6JkQb5b3PjoUE7kyJWgnY9kgRGNj6u9Io pTU6TFlkR1hJA+4ba21p++zp68KKuGVa/BkbspfhOnI5EzhynBdtBpCCZEr0lO0+GqU7f7 nkAZwtMae8pZ9+EyAD8lesqe2tV4YVBP47Mu8E/XgxTfrEU+rL/lBG82axaFhoN2jLdpoI FlWglQkw+fj8gwaufiSAxh/CLV5QdoOShWcAO0znf59FuCc2h7xFFfNUB+8tSMOS2ET0Ab 1DOuZAHUtEY7LjGmZs2HnqQft8W+4mJGIbAiLcfz1M2l5dWvAT1FmaZvMYqugA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948840; a=rsa-sha256; cv=none; b=btENvxpws6Ss2CZwU3WK/aJG2Wv/QP6wDMAL+psu+icB286V+MoE2YqdcElrJdjqMbGYlM vaSqDLIY6Ern9ey/F3ak6oN3RZhlf7fN1ABax2EIK9uQazTpRH7O/MxIXmK32jAerIodtP oXjSAQe0qHpIiul6ips/0CwNs0RQKvslL2nww3PwzV7Yd3JETI/dE9p6ftZMi+fg/UTCOd 8UfTNW5AUkD2lbbTV1nHcJVzcywErk4/5U8udUfauu9MwxoPg2lMcM0krcYDL67QQ+OH2J 7Ltc44HqMdVbspzkLfekuZd0nAyhKFs5Aktzm+IZYQaIRptcLW0kgaSqeXTQWA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qEofP36tXCf2kwQT5KnznccW6vDBliUb8BdB42jOoVU=; b=JpdBNt8UY8aSH9XbzOYCVONFRIQMAZRRW8LNp4Ois1URkO3riouEhHviMaYyEi46mfIRwo OgF4Mj/O2Sd5FVVwd6Fbzr3FJ7HroBUY1H0uGxmSA3CjmD6eC+6t6LZox11xk5eCxmcfD5 cDuvr/e9NcaNmYk6hY4y+BFeOzdrKtJE/BXNy1EtYkQB8COFn2jbhQr3gkg6h+To7dfy5L DZ9f/IWzC5u1rfwDw2+Bz3qEGMTARMcHB6tQdwwmAwmeKiiatOPk0PGUaeG+YBAhA8bGPd eeoT8gf7K5QaSk8kSmoiFctIjV1Sx9pMNzGz733xwJbp0sji+Ym+QGtx0T+jug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2WD51PRz6W2 for ; Tue, 24 Feb 2026 16:00:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 275a8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:00:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8ef0ed690df2 - 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: 8ef0ed690df2dca0cc22b827819d112f868470bb Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:00:40 +0000 Message-Id: <699dcb28.275a8.30f6d984@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8ef0ed690df2dca0cc22b827819d112f868470bb commit 8ef0ed690df2dca0cc22b827819d112f868470bb Author: Mark Johnston AuthorDate: 2026-02-23 16:40:58 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:40:58 +0000 Add UPDATING entries and bump version Approved by: so --- UPDATING | 5 +++++ sys/conf/newvers.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 086c4b8e2892..6fdc5195e4d6 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,11 @@ 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. +20260224: + 15.0-RELEASE-p4 SA-26:05.route + + Local DoS and possible privilege escalation via routing sockets. [SA-26:05.route] + 20260210: 15.0-RELEASE-p3 SA-26:03.blocklistd EN-26:04.arm64 diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 3132de9d99cb..3f0163ecefe2 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -51,7 +51,7 @@ TYPE="FreeBSD" REVISION="15.0" -BRANCH="RELEASE-p3" +BRANCH="RELEASE-p4" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Tue Feb 24 16:00:56 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fL2WX380Bz6SP0V for ; Tue, 24 Feb 2026 16:00:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2WX2Jwhz3kyc for ; Tue, 24 Feb 2026 16:00:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948856; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lj+XbCafwQpq+j1oZfBnEdShbZL2aedW8AjXagZcURM=; b=T88gAoWVj22FWKSDOzqjgmOASKmsz/X2kGUEtXjbaeo174njwIOql6jmMjheGQQ8B1LCUv x974o0pfsphYGis6CWyI/KCMKQ5Jdx9rECuUNYkYXmdiT6toepGYPHH/Ctvx4eyJf1icus m/UEjsuq7fDCZkZmCcmidjLkU7hCcc12UhC+kxvivoCS8pO3oubgVSG3NQTFFs2a1aXaZc nd7Tdhq4i0xeYiSh3/izZfS6ZzMWnuimMBRy8SZl0Q4Wn0OdVE6Cp5bUxJrkkVe0zLIGVW TfV5YPgoMeHp/2QtPFFFiI3XKM5JVOpYy0QVIUwOx4l+4fOv60UPjXO79EjtKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948856; a=rsa-sha256; cv=none; b=oE+SJwcZKjAyMdvOSpZbxflSIYWcXgXsmMmukFy3oCRDm9teFYF57rLeZzhit7h9MNFpAv BZV5Ok+x0XyC11Q0nQrME+NCmznzicd+z3UO6lK7g0BM+o6QSJjKc2qclRx0C8FlQcqSTx X6rtEVe2vu/EAA6rsjSnBBtzUk0ml4A+NvlTNeZ7jqrdvkyZTCFA4PpXcPM3UXcIveyRqM IxOuuzfMCGBRjY674XtwbZ9zqi6PSMObYQVrRd+KwGUMTkX0KAd9jn/SyA8CjkUYo+rtQ2 /U0b2z/VXprQbN9Dm3LFfpiIkt+J6xZvhh2ou1LKgmbvBJGOYeryLOqyAdkn7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948856; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lj+XbCafwQpq+j1oZfBnEdShbZL2aedW8AjXagZcURM=; b=oJ1cmbn48e+ghe3AAnkW4dVieuP81Ws9Fwx+Fm36n1OOsqTk/nBnHgzbXJZu7AcUq1ErOV vw9phUYbM/p9HVcQbnWkbFJcojqOL5hbUhNxrvC07UVSbVIfs+/OOioKgC7f5cMqRm6vBu G1l0kVl+CK3wowdAWkcnPhMdJ99Y/NQehTjHbUTbOvgC5uLl6W10/4TjhhotrItq2eXxlw FTjkCyQIGWDHJ994/lCaCDrJoPXt08sg244IoaLv4RiMfa978/7FMx4vzbsveUC+RPDcNz NzzQuhBrw6twFVhTVJ5GDqpd6un8c0EO7NTzcn0GU8kdjLvlZuKO/zii20jifQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2WX1ltLz6yp for ; Tue, 24 Feb 2026 16:00:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2744d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:00:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 1eb2beb3686c - stable/14 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 1eb2beb3686c50a870ed7688f753f89dd0f0ab3e Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:00:56 +0000 Message-Id: <699dcb38.2744d.78c96b37@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1eb2beb3686c50a870ed7688f753f89dd0f0ab3e commit 1eb2beb3686c50a870ed7688f753f89dd0f0ab3e Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:00:52 +0000 rtsock: Fix stack overflow Approved by: so Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") (cherry picked from commit f3be7df50f01d9a6ead9f27b55bb4dfd7dc4f9d2) --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index bc70c600e3ab..e3116b8ee4b5 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1851,8 +1851,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:01: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 4fL2XB2DLKz6SPGc for ; Tue, 24 Feb 2026 16:01: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2X96wClz3lKY for ; Tue, 24 Feb 2026 16:01:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V+eFa19f4OyGc5+UgvarGnrVJKimg9bsUdE930dJGik=; b=cQ3cA9zGsIMmzNKX3MGmKl1qTs6Cr6k9LKdMw6LqdpA2VpBVsPTEB8EZiZAsqbRy1WbcQX ITdMKtc9NOrO6CcNQOVp3oxV648/eJzNrV37wlNTlqwphokuNOKgyb5PqGkvgUGLW7OLrH o1yZI/VRhrSTx67vQFQz8zITwEerikkduhJ2bZmT/eQMCpAO5SPqx160D6GkG2Tl+NPcnG ZQWdktzLaznVq1+czcDtbftqMRsJw+gyV2EqnMCTFKpzDIQlNMfXSy0Wywr0V6pydlX7si r4ZcgcxATNZ5f4htuOpzUgryzCHsRuPIAGqdDO8XzhAkv2meyeDa6vS46AoKmA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948889; a=rsa-sha256; cv=none; b=NtwbSHmNPLxGYbjLE7P8ImP5abwMG9vBUHhK7B8AoqM+/WT+bcH42vTSf0Hx6PnrrMaVxb dn+FZMCUXwI6BdX+/YiJWUtyzeJt1eiF2O+rE8uKyHIjtJO4rrD/1DUTh/41ynhVnJpMcw VyAQ9pFNWXAFSkbVVPPPGmKV12hZec2Da8jHuUyGiSWepkSWOoJhWKCOcdkJx4VpBjLwzt sgtuYLukP2vB3z2UaWqC7s5FCyPnktklz61tKoFhm1wSAQKQKwYoXNJAk0uZ1eLCT5MJsQ uNWp/E4EUCwNaq++BRtJ+gC8o3czFVjkuEh+EBuBgaASSnBMAUigSEd+yabAsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948889; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V+eFa19f4OyGc5+UgvarGnrVJKimg9bsUdE930dJGik=; b=XWtu2xr+0baiq9aNw1moJTFJmLljYZ1fUjKhXIQ/EOkvAeG01WTJJzYT4gPQQoOBxKEDbF pscTVBetpXfiuzIIHm6By8jwD2exZaI580XkPQVCzwhPUM1o+7Fz8vHAZSwJUwGmkVt4hR YIHqF3XZ4KSDpfrxCZUHKgURq/cTn/15eRmL8D+9Vlaf3dITDq71NlJzJQaSZFRD6cLPG/ nhzoLwdSF5AuaPPShMf1CdVvC+iH/j2MaX8gCavNQhD4RuRf3RqyeIzUPulJvwfNK+EzSs H/w2S0tgbLuSrslIzjNoXZ7d9KXQEhGuTxE0Umb3/wBtHg4blo5SHOW0fOzAMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2X95tsmz72Q for ; Tue, 24 Feb 2026 16:01:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27aba by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: aaa0c2247f4c - releng/14.3 - 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/releng/14.3 X-Git-Reftype: branch X-Git-Commit: aaa0c2247f4c1466ca90b58650381e318f8be8fc Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:29 +0000 Message-Id: <699dcb59.27aba.27a83b44@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=aaa0c2247f4c1466ca90b58650381e318f8be8fc commit aaa0c2247f4c1466ca90b58650381e318f8be8fc Author: Mark Johnston AuthorDate: 2025-06-24 20:17:07 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:00:13 +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. Approved by: so PR: 262180 Reviewed by: kib MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D50371 (cherry picked from commit f35525ff2053e026a423e852136d73ed93c95803) (cherry picked from commit 10b3f2138573da952b4db29f88f6d67cfc3300cd) --- sys/fs/fdescfs/fdesc_vnops.c | 4 +- sys/kern/kern_descrip.c | 97 ++++++++++++++++++++++++++++++++------------ 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 | 21 +++++++--- sys/sys/file.h | 2 +- sys/sys/filedesc.h | 8 +++- sys/sys/namei.h | 1 + 10 files changed, 113 insertions(+), 48 deletions(-) diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c index 9c451aa9247a..47fb387a007e 100644 --- a/sys/fs/fdescfs/fdesc_vnops.c +++ b/sys/fs/fdescfs/fdesc_vnops.c @@ -504,7 +504,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) { /* @@ -641,7 +641,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 8b391da95840..1932336ded28 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -111,8 +111,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 thread *td, 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, @@ -480,6 +480,8 @@ kern_fcntl_freebsd(struct thread *td, int fd, int cmd, long arg) return (error); } +#define FD_RESOLVE_BENEATH 2 + int kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) { @@ -529,7 +531,9 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) fde = fdeget_noref(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); @@ -540,8 +544,13 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) FILEDESC_XLOCK(fdp); fde = fdeget_noref(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); @@ -2166,7 +2175,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 @@ -2914,7 +2924,7 @@ out: #ifdef CAPABILITIES 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; @@ -2923,7 +2933,8 @@ fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, *fpp = NULL; for (;;) { - error = fget_unlocked_seq(td, fd, needrightsp, &fp, &seq); + error = fget_unlocked_seq(td, fd, needrightsp, flagsp, &fp, + &seq); if (error != 0) return (error); @@ -2954,10 +2965,10 @@ get_locked: #else 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) { int error; - error = fget_unlocked(td, fd, needrightsp, fpp); + error = fget_unlocked(td, fd, needrightsp, flagsp, fpp); if (havecapsp != NULL && error == 0) filecaps_fill(havecapsp); @@ -3040,7 +3051,7 @@ out: #ifdef CAPABILITIES int -fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) +fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, int *flagsp) { const struct filedescent *fde; const struct fdescenttbl *fdt; @@ -3050,7 +3061,7 @@ fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) const cap_rights_t *haverights; cap_rights_t rights; seqc_t seq; - int fd; + int fd, flags; VFS_SMR_ASSERT_ENTERED(); @@ -3070,7 +3081,9 @@ fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) 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); @@ -3104,17 +3117,19 @@ fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) #endif } *vpp = vp; + *flagsp = flags; return (0); } #else int -fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) +fgetvp_lookup_smr(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 fd; + int fd, flags; VFS_SMR_ASSERT_ENTERED(); @@ -3123,9 +3138,13 @@ fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) 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); + flags = fp->f_flag & FSEARCH; + flags |= (fde->fde_flags & UF_RESOLVE_BENEATH) != 0 ? + O_RESOLVE_BENEATH : 0; *fsearch = ((fp->f_flag & FSEARCH) != 0); vp = fp->f_vnode; if (__predict_false(vp == NULL || vp->v_type != VDIR)) { @@ -3141,6 +3160,7 @@ fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch) return (EAGAIN); filecaps_fill(&ndp->ni_filecaps); *vpp = vp; + *flagsp = flags; return (0); } #endif @@ -3154,13 +3174,15 @@ fgetvp_lookup(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)) { @@ -3178,6 +3200,10 @@ fgetvp_lookup(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 @@ -3225,7 +3251,7 @@ out_free: #ifdef CAPABILITIES static int fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, - struct file **fpp, seqc_t *seqp) + uint8_t *flagsp, struct file **fpp, seqc_t *seqp) { struct filedesc *fdp; const struct filedescent *fde; @@ -3234,6 +3260,7 @@ fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, seqc_t seq; cap_rights_t haverights; int error; + uint8_t flags; fdp = td->td_proc->p_fd; fdt = fdp->fd_files; @@ -3245,6 +3272,7 @@ fget_unlocked_seq(struct thread *td, 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 (__predict_false(fp == NULL)) { if (seqc_consistent(fd_seqc(fdt, fd), seq)) return (EBADF); @@ -3273,19 +3301,21 @@ fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, fdrop(fp, td); } *fpp = fp; - if (seqp != NULL) { + if (flagsp != NULL) + *flagsp = flags; + if (seqp != NULL) *seqp = seq; - } return (0); } #else static int fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, - struct file **fpp, seqc_t *seqp __unused) + uint8_t *flagsp, struct file **fpp, seqc_t *seqp __unused) { struct filedesc *fdp; const struct fdescenttbl *fdt; struct file *fp; + uint8_t flags; fdp = td->td_proc->p_fd; fdt = fdp->fd_files; @@ -3294,6 +3324,7 @@ fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, for (;;) { fp = fdt->fdt_ofiles[fd].fde_file; + flags = fdt->fdt_ofiles[fd].fde_flags; if (__predict_false(fp == NULL)) return (EBADF); if (__predict_false(!refcount_acquire_if_not_zero(&fp->f_count))) { @@ -3310,6 +3341,8 @@ fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, break; fdrop(fp, td); } + if (flagsp != NULL) + *flagsp = flags; *fpp = fp; return (0); } @@ -3323,8 +3356,8 @@ fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, * racing with itself. */ int -fget_unlocked(struct thread *td, int fd, const cap_rights_t *needrightsp, - struct file **fpp) +fget_unlocked_flags(struct thread *td, int fd, const cap_rights_t *needrightsp, + uint8_t *flagsp, struct file **fpp) { struct filedesc *fdp; #ifdef CAPABILITIES @@ -3336,6 +3369,7 @@ fget_unlocked(struct thread *td, int fd, const cap_rights_t *needrightsp, seqc_t seq; const cap_rights_t *haverights; #endif + uint8_t flags; fdp = td->td_proc->p_fd; fdt = fdp->fd_files; @@ -3348,8 +3382,10 @@ fget_unlocked(struct thread *td, 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; @@ -3373,12 +3409,21 @@ fget_unlocked(struct thread *td, int fd, const cap_rights_t *needrightsp, #endif goto out_fdrop; *fpp = fp; + if (flagsp != NULL) + *flagsp = flags; return (0); out_fdrop: fdrop(fp, td); out_fallback: *fpp = NULL; - return (fget_unlocked_seq(td, fd, needrightsp, fpp, NULL)); + return (fget_unlocked_seq(td, fd, needrightsp, flagsp, fpp, NULL)); +} + +int +fget_unlocked(struct thread *td, int fd, const cap_rights_t *needrightsp, + struct file **fpp) +{ + return (fget_unlocked_flags(td, fd, needrightsp, NULL, fpp)); } /* @@ -3530,7 +3575,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(td, fd, rightsp, &fp, &seq); + error = fget_unlocked_seq(td, fd, rightsp, NULL, &fp, &seq); if (__predict_false(error != 0)) return (error); if (__predict_false(fp->f_ops == &badfileops)) { @@ -3585,7 +3630,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(td, fd, rightsp, &fp, &seq); + error = fget_unlocked_seq(td, fd, rightsp, NULL, &fp, &seq); if (error != 0) return (error); error = cap_fcntl_check(fdp, fd, needfcntl); @@ -3647,7 +3692,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 4dca0522f707..86b3731468fa 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -93,7 +93,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 (__predict_false(error != 0)) return (error); if (__predict_false(fp->f_type != DTYPE_SOCKET)) { diff --git a/sys/kern/vfs_acl.c b/sys/kern/vfs_acl.c index 58b950a04cd1..b4b1285400d3 100644 --- a/sys/kern/vfs_acl.c +++ b/sys/kern/vfs_acl.c @@ -435,7 +435,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); @@ -570,7 +570,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 55f3ef8da8c3..afe090795e37 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -4445,17 +4445,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, vpp, &fsearch); + error = fgetvp_lookup_smr(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 dc1bbb58644b..831090f02f90 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -254,7 +254,7 @@ kern_extattr_set_fd(struct thread *td, int fd, int attrnamespace, AUDIT_ARG_TEXT(attrname); 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) return (error); @@ -442,7 +442,7 @@ kern_extattr_get_fd(struct thread *td, int fd, int attrnamespace, AUDIT_ARG_TEXT(attrname); error = getvnode_path(td, fd, - cap_rights_init_one(&rights, CAP_EXTATTR_GET), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_GET), NULL, &fp); if (error) return (error); @@ -598,7 +598,7 @@ kern_extattr_delete_fd(struct thread *td, int fd, int attrnamespace, AUDIT_ARG_TEXT(attrname); error = getvnode_path(td, fd, - cap_rights_init_one(&rights, CAP_EXTATTR_DELETE), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_DELETE), NULL, &fp); if (error) return (error); @@ -765,7 +765,7 @@ kern_extattr_list_fd(struct thread *td, int fd, int attrnamespace, AUDIT_ARG_FD(fd); AUDIT_ARG_VALUE(attrnamespace); error = getvnode_path(td, 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 670ceb151468..ded3a87e7f8b 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -375,7 +375,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; @@ -898,12 +898,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); @@ -1252,6 +1257,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) { @@ -1939,7 +1948,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); } @@ -4326,12 +4335,12 @@ 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, fd, rightsp, &fp); + error = fget_unlocked_flags(td, fd, rightsp, flagsp, &fp); if (error != 0) return (error); @@ -4368,7 +4377,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); if (__predict_false(error != 0)) return (error); diff --git a/sys/sys/file.h b/sys/sys/file.h index bad161d5d46b..7d1a191b4374 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -300,7 +300,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(struct nameidata *ndp, struct vnode **vpp, bool *fsearch); +int fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, int *flagsp); int fgetvp_lookup(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 ecb8c58e5d29..440c5d3d15f9 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -150,6 +150,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 @@ -280,17 +281,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_noref(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 thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp); +int fget_unlocked_flags(struct thread *td, 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 7033e5469240..dae714f97aef 100644 --- a/sys/sys/namei.h +++ b/sys/sys/namei.h @@ -195,6 +195,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 24 16:01: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 4fL2X91hY2z6SPMB for ; Tue, 24 Feb 2026 16:01: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2X86bHxz3lHB for ; Tue, 24 Feb 2026 16:01:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948888; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s8iXV18FSdyknd86+z7uFkD08Cz5hK1Vv2E0ekKXxmw=; b=nTrpA63qsGJreTOxJGIeDnDzHht2t2j5t7zE/I4ysp6g0lHJYfQD5jlEnHf8wBw1cimKY3 HJOv++e2P0faZwU2vSrED+bFvT3nqipQ6bhIInrkUsO54QPJKMYlC1O85vXzIHrs2mL/ts B7StDGkZmKn+t6zPdXb4pE9fhBfA17ouN49Nns0sEYp68lD7tqHMZ0xqdmQNM4aUW9T14D siFG7naXss1U0S9eW3naQTAZmBhC8JScFevDm2KygFajjG56W4Kz2EQPI9Gic0L4FuXntS tNaSyfXqF3IiKls1DBz9c5cvn+F6reZdgbHHXDMQH83aLjXgxIq9LT1uiLz/jw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948888; a=rsa-sha256; cv=none; b=PywxqXrWUqPZ6Zwk8jXJ/NWlF+AAHeLKvSEN/woxdvxnKyqy/1hKndI9bx2D7ZvBKPIolE VPNLiZTmPdupAq8EnR1aImXv2TLmDUiLsbq6Wi4JUpa0DggE+PNU1pThVH82Mf8IFIehR4 gaICGtX9KP3FbBsvvKISVaUS0gATGqn4KOIK4QwSCPpLVUnHL1aHoRaMJ9n1Js4nlZSnS9 EVcCxvMZli1CIjPzNiZmBFeKTAts4Ys53Dby0T4VLKbhek3I7eimQerGH+NsNAubfAs6Uy LAbvfE01ZqZUfEsr4NwseiBxVRGUvWda8OLSpK1Ps2vvlzPz2Ahl8pjc2SC01g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948888; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s8iXV18FSdyknd86+z7uFkD08Cz5hK1Vv2E0ekKXxmw=; b=i1cBEWaM39DUI8EubthPIug4zCqWPVX7ch0dd8xK7zoCzVoYYV1X7NscNGIp8c+QQd3Irv lsHi47kWlZwEEpNYRxHIoTaxYG/9UVfAjOLvWYYV/2J4TcaeylZpB+HENiuGdvdTMHh3kE CAW7LEG8KJTO23raMLFKeq15eTYsK4b5Uw1D2jBmB8/UsSUR7tzqfqYSLKRyEP9zMmr3zR 1XRPEe82gsVAkv0gehik9XGCs0FKNdm+4xZqJdJOxs4Er1xb+if5+ViCW8lg/RkXggHyE9 f7ynXHxYK+tjoHYOyUIWtFJcWlCGcJK2fcB7uMTB5JFdx8abd8gg1glDsdolKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2X85KH8z6WK for ; Tue, 24 Feb 2026 16:01:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2663f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: fa552645887a - releng/14.3 - file: Qualify pointers to capsicum rights as const List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14.3 X-Git-Reftype: branch X-Git-Commit: fa552645887a36f608692ee9eb860c2f1ed45957 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:28 +0000 Message-Id: <699dcb58.2663f.221880b8@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=fa552645887a36f608692ee9eb860c2f1ed45957 commit fa552645887a36f608692ee9eb860c2f1ed45957 Author: Mark Johnston AuthorDate: 2025-05-20 20:19:30 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 22:01:24 +0000 file: Qualify pointers to capsicum rights as const File descriptor lookup routines typically take a set of capsicum rights as input to the lookup, so that the fd's rights can be atomically checked. This set should be qualified with const. No functional change intended. Approved by: so Reviewed by: olce, oshogbo, brooks, kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D50419 (cherry picked from commit 5319cb21610ad947c56fd0cd4f18ef5b58bc8db7) (cherry picked from commit 2060337c0937f08d9960d629eb59ce737339640c) --- sys/kern/kern_descrip.c | 52 +++++++++++++++++++++++++++--------------------- sys/kern/sys_procdesc.c | 5 +++-- sys/kern/uipc_mqueue.c | 5 +++-- sys/kern/uipc_sem.c | 6 +++--- sys/kern/uipc_syscalls.c | 7 ++++--- sys/kern/vfs_syscalls.c | 5 +++-- sys/sys/file.h | 21 +++++++++---------- sys/sys/filedesc.h | 19 +++++++++--------- sys/sys/namei.h | 4 ++-- sys/sys/procdesc.h | 6 ++++-- sys/sys/socketvar.h | 4 ++-- 11 files changed, 74 insertions(+), 60 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 2d1c0d4aea5f..8b391da95840 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -111,7 +111,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 thread *td, int fd, - cap_rights_t *needrightsp, struct file **fpp, seqc_t *seqp); + const cap_rights_t *needrightsp, 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, @@ -2879,7 +2880,7 @@ finit_vnode(struct file *fp, u_int flag, void *data, const struct fileops *ops) } int -fget_cap_noref(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_cap_noref(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp, struct filecaps *havecapsp) { struct filedescent *fde; @@ -2912,7 +2913,7 @@ out: #ifdef CAPABILITIES int -fget_cap(struct thread *td, int fd, cap_rights_t *needrightsp, +fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp, struct filecaps *havecapsp) { struct filedesc *fdp = td->td_proc->p_fd; @@ -2952,7 +2953,7 @@ get_locked: } #else int -fget_cap(struct thread *td, int fd, cap_rights_t *needrightsp, +fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp, struct filecaps *havecapsp) { int error; @@ -3223,7 +3224,7 @@ out_free: */ #ifdef CAPABILITIES static int -fget_unlocked_seq(struct thread *td, int fd, cap_rights_t *needrightsp, +fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp, seqc_t *seqp) { struct filedesc *fdp; @@ -3279,7 +3280,7 @@ fget_unlocked_seq(struct thread *td, int fd, cap_rights_t *needrightsp, } #else static int -fget_unlocked_seq(struct thread *td, int fd, cap_rights_t *needrightsp, +fget_unlocked_seq(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp, seqc_t *seqp __unused) { struct filedesc *fdp; @@ -3322,7 +3323,7 @@ fget_unlocked_seq(struct thread *td, int fd, cap_rights_t *needrightsp, * racing with itself. */ int -fget_unlocked(struct thread *td, int fd, cap_rights_t *needrightsp, +fget_unlocked(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp) { struct filedesc *fdp; @@ -3391,7 +3392,7 @@ out_fallback: */ #ifdef CAPABILITIES int -fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_only_user(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp) { const struct filedescent *fde; @@ -3421,7 +3422,7 @@ fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, } #else int -fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_only_user(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp) { struct file *fp; @@ -3457,7 +3458,7 @@ fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, */ static __inline int _fget(struct thread *td, int fd, struct file **fpp, int flags, - cap_rights_t *needrightsp) + const cap_rights_t *needrightsp) { struct file *fp; int error; @@ -3503,15 +3504,15 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, } int -fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +fget(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp) { return (_fget(td, fd, fpp, 0, rightsp)); } int -fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, vm_prot_t *maxprotp, - struct file **fpp) +fget_mmap(struct thread *td, int fd, const cap_rights_t *rightsp, + vm_prot_t *maxprotp, struct file **fpp) { int error; #ifndef CAPABILITIES @@ -3554,22 +3555,24 @@ fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, vm_prot_t *maxprotp, } int -fget_read(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +fget_read(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { return (_fget(td, fd, fpp, FREAD, rightsp)); } int -fget_write(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +fget_write(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { return (_fget(td, fd, fpp, FWRITE, rightsp)); } int -fget_fcntl(struct thread *td, int fd, cap_rights_t *rightsp, int needfcntl, - struct file **fpp) +fget_fcntl(struct thread *td, int fd, const cap_rights_t *rightsp, + int needfcntl, struct file **fpp) { #ifndef CAPABILITIES return (fget_unlocked(td, fd, rightsp, fpp)); @@ -3607,7 +3610,7 @@ fget_fcntl(struct thread *td, int fd, cap_rights_t *rightsp, int needfcntl, * XXX: what about the unused flags ? */ static __inline int -_fgetvp(struct thread *td, int fd, int flags, cap_rights_t *needrightsp, +_fgetvp(struct thread *td, int fd, int flags, const cap_rights_t *needrightsp, struct vnode **vpp) { struct file *fp; @@ -3629,14 +3632,15 @@ _fgetvp(struct thread *td, int fd, int flags, cap_rights_t *needrightsp, } int -fgetvp(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp) +fgetvp(struct thread *td, int fd, const cap_rights_t *rightsp, + struct vnode **vpp) { return (_fgetvp(td, fd, 0, rightsp, vpp)); } int -fgetvp_rights(struct thread *td, int fd, cap_rights_t *needrightsp, +fgetvp_rights(struct thread *td, int fd, const cap_rights_t *needrightsp, struct filecaps *havecaps, struct vnode **vpp) { struct filecaps caps; @@ -3668,14 +3672,16 @@ out: } int -fgetvp_read(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp) +fgetvp_read(struct thread *td, int fd, const cap_rights_t *rightsp, + struct vnode **vpp) { return (_fgetvp(td, fd, FREAD, rightsp, vpp)); } int -fgetvp_exec(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp) +fgetvp_exec(struct thread *td, int fd, const cap_rights_t *rightsp, + struct vnode **vpp) { return (_fgetvp(td, fd, FEXEC, rightsp, vpp)); @@ -3683,7 +3689,7 @@ fgetvp_exec(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp #ifdef notyet int -fgetvp_write(struct thread *td, int fd, cap_rights_t *rightsp, +fgetvp_write(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp) { diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index dbf8e579530f..3221885c9277 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -121,7 +121,7 @@ static const struct fileops procdesc_ops = { * died. */ int -procdesc_find(struct thread *td, int fd, cap_rights_t *rightsp, +procdesc_find(struct thread *td, int fd, const cap_rights_t *rightsp, struct proc **p) { struct procdesc *pd; @@ -168,7 +168,8 @@ procdesc_pid(struct file *fp_procdesc) * Retrieve the PID associated with a process descriptor. */ int -kern_pdgetpid(struct thread *td, int fd, cap_rights_t *rightsp, pid_t *pidp) +kern_pdgetpid(struct thread *td, int fd, const cap_rights_t *rightsp, + pid_t *pidp) { struct file *fp; int error; diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c index 7dd0f9796682..75daf94b9849 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -2155,13 +2155,14 @@ sys_kmq_unlink(struct thread *td, struct kmq_unlink_args *uap) return (error); } -typedef int (*_fgetf)(struct thread *, int, cap_rights_t *, struct file **); +typedef int (*_fgetf)(struct thread *, int, const cap_rights_t *, + struct file **); /* * Get message queue by giving file slot */ static int -_getmq(struct thread *td, int fd, cap_rights_t *rightsp, _fgetf func, +_getmq(struct thread *td, int fd, const cap_rights_t *rightsp, _fgetf func, struct file **fpp, struct mqfs_node **ppn, struct mqueue **pmq) { struct mqfs_node *pn; diff --git a/sys/kern/uipc_sem.c b/sys/kern/uipc_sem.c index 35ca9a9fb06e..2fc4d3e9cfb3 100644 --- a/sys/kern/uipc_sem.c +++ b/sys/kern/uipc_sem.c @@ -123,8 +123,8 @@ static int ksem_create(struct thread *td, const char *path, semid_t *semidp, mode_t mode, unsigned int value, int flags, int compat32); static void ksem_drop(struct ksem *ks); -static int ksem_get(struct thread *td, semid_t id, cap_rights_t *rightsp, - struct file **fpp); +static int ksem_get(struct thread *td, semid_t id, + const cap_rights_t *rightsp, struct file **fpp); static struct ksem *ksem_hold(struct ksem *ks); static void ksem_insert(char *path, Fnv32_t fnv, struct ksem *ks); static struct ksem *ksem_lookup(char *path, Fnv32_t fnv); @@ -587,7 +587,7 @@ ksem_create(struct thread *td, const char *name, semid_t *semidp, mode_t mode, } static int -ksem_get(struct thread *td, semid_t id, cap_rights_t *rightsp, +ksem_get(struct thread *td, semid_t id, const cap_rights_t *rightsp, struct file **fpp) { struct ksem *ks; diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 6121bde4c574..4dca0522f707 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -87,7 +87,7 @@ static int sockargs(struct mbuf **, char *, socklen_t, int); * A reference on the file entry is held upon returning. */ int -getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, +getsock_cap(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp, struct filecaps *havecapsp) { struct file *fp; @@ -107,7 +107,8 @@ getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, } int -getsock(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +getsock(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { struct file *fp; int error; @@ -737,7 +738,7 @@ kern_sendit(struct thread *td, int s, struct msghdr *mp, int flags, struct uio auio; struct iovec *iov; struct socket *so; - cap_rights_t *rights; + const cap_rights_t *rights; #ifdef KTRACE struct uio *ktruio = NULL; #endif diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 6756925416a3..670ceb151468 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4325,7 +4325,7 @@ out: * semantics. */ int -getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, +getvnode_path(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp) { struct file *fp; @@ -4363,7 +4363,8 @@ getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, * A reference on the file entry is held upon returning. */ int -getvnode(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +getvnode(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { int error; diff --git a/sys/sys/file.h b/sys/sys/file.h index 07f6bbd5bcae..bad161d5d46b 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -257,14 +257,15 @@ extern const struct fileops socketops; extern int maxfiles; /* kernel limit on number of open files */ extern int maxfilesperproc; /* per process limit on number of open files */ -int fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); -int fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, +int fget(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp); +int fget_mmap(struct thread *td, int fd, const cap_rights_t *rightsp, vm_prot_t *maxprotp, struct file **fpp); -int fget_read(struct thread *td, int fd, cap_rights_t *rightsp, +int fget_read(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); -int fget_write(struct thread *td, int fd, cap_rights_t *rightsp, +int fget_write(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); -int fget_fcntl(struct thread *td, int fd, cap_rights_t *rightsp, +int fget_fcntl(struct thread *td, int fd, const cap_rights_t *rightsp, int needfcntl, struct file **fpp); int _fdrop(struct file *fp, struct thread *td); int fget_remote(struct thread *td, struct proc *p, int fd, struct file **fpp); @@ -289,15 +290,15 @@ int file_kcmp_generic(struct file *fp1, struct file *fp2, struct thread *td); void finit(struct file *, u_int, short, void *, const struct fileops *); void finit_vnode(struct file *, u_int, void *, const struct fileops *); -int fgetvp(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_exec(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp_exec(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_rights(struct thread *td, int fd, cap_rights_t *needrightsp, +int fgetvp_rights(struct thread *td, int fd, const cap_rights_t *needrightsp, struct filecaps *havecaps, struct vnode **vpp); -int fgetvp_read(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp_read(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_write(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp_write(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); int fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, bool *fsearch); int fgetvp_lookup(struct nameidata *ndp, struct vnode **vpp); diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index c0fb4e3834e1..ecb8c58e5d29 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -277,22 +277,23 @@ struct filedesc_to_leader * struct filedesc_to_leader * filedesc_to_leader_share(struct filedesc_to_leader *fdtol, struct filedesc *fdp); -int getvnode(struct thread *td, int fd, cap_rights_t *rightsp, +int getvnode(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); -int getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, +int getvnode_path(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); void mountcheckdirs(struct vnode *olddp, struct vnode *newdp); -int fget_cap_noref(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, - struct file **fpp, struct filecaps *havecapsp); -int fget_cap(struct thread *td, int fd, cap_rights_t *needrightsp, +int fget_cap_noref(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); /* Return a referenced file from an unlocked descriptor. */ -int fget_unlocked(struct thread *td, int fd, cap_rights_t *needrightsp, - struct file **fpp); +int fget_unlocked(struct thread *td, int fd, + const cap_rights_t *needrightsp, 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, cap_rights_t *needrightsp, - struct file **fpp); +int fget_only_user(struct filedesc *fdp, int fd, + const cap_rights_t *needrightsp, struct file **fpp); #define fput_only_user(fdp, fp) ({ \ MPASS(FILEDESC_IS_ONLY_USER(fdp)); \ MPASS(refcount_load(&fp->f_count) > 0); \ diff --git a/sys/sys/namei.h b/sys/sys/namei.h index 5dbf31f6c606..7033e5469240 100644 --- a/sys/sys/namei.h +++ b/sys/sys/namei.h @@ -70,7 +70,7 @@ struct nameidata { */ const char *ni_dirp; /* pathname pointer */ enum uio_seg ni_segflg; /* location of pathname */ - cap_rights_t *ni_rightsneeded; /* rights required to look up vnode */ + const cap_rights_t *ni_rightsneeded; /* rights needed to look up vnode */ /* * Arguments to lookup. */ @@ -244,7 +244,7 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, #define NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, startdir, rightsp) \ do { \ struct nameidata *_ndp = (ndp); \ - cap_rights_t *_rightsp = (rightsp); \ + const cap_rights_t *_rightsp = (rightsp); \ MPASS(_rightsp != NULL); \ NDINIT_PREFILL(_ndp); \ NDINIT_DBG(_ndp); \ diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index ca26d65d5417..4e8b06fb7377 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -94,8 +94,10 @@ struct procdesc { * In-kernel interfaces to process descriptors. */ int procdesc_exit(struct proc *); -int procdesc_find(struct thread *, int fd, cap_rights_t *, struct proc **); -int kern_pdgetpid(struct thread *, int fd, cap_rights_t *, pid_t *pidp); +int procdesc_find(struct thread *, int fd, const cap_rights_t *, + struct proc **); +int kern_pdgetpid(struct thread *, int fd, const cap_rights_t *, + pid_t *pidp); void procdesc_new(struct proc *, int); void procdesc_finit(struct procdesc *, struct file *); pid_t procdesc_pid(struct file *); diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index 40fdd142525f..1efff4a18bee 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -490,9 +490,9 @@ struct uio; */ int getsockaddr(struct sockaddr **namp, const struct sockaddr *uaddr, size_t len); -int getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, +int getsock_cap(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp, struct filecaps *havecaps); -int getsock(struct thread *td, int fd, cap_rights_t *rightsp, +int getsock(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); void soabort(struct socket *so); int soaccept(struct socket *so, struct sockaddr **nam); From nobody Tue Feb 24 16:01: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 4fL2XC1gF9z6SNx3 for ; Tue, 24 Feb 2026 16:01: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2XB73QTz3lFm for ; Tue, 24 Feb 2026 16:01:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948891; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Aq3FmYWcJDAHeL3IoPA1I5p+3MlbLT8pw9rXuET3IXE=; b=qy2ucQqcY0uNYnmf5bKMTU4RFD4M4bNtI4yI2kS0rLiye4jV24NaQCCJeit30LPD3TAKGz mR0KeuUu9qm3gw7RpcKWfny8+DEG/0iL+I6EAsdB7RsdPRQO3dLCkTQ5+KjKO3D2tiofUT HAx9JN24GAQqaOj9ZHzLymh2ADRUmu1vhHRvMgjIO9u8d7qRIJhov6Ha6reROlIdE+Oi2p +t3BBX/P/sRgHgnU+it0024Kurv/a6WMXajerByXKhqwOQ2jKURi6P3k/xzZvUf7Zs1hmk l6pPmKjWe3D6SeAfhdipf6ulCKN3tAZZtGqaDfb54wu7gYG692hhwHv09G2tZA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948891; a=rsa-sha256; cv=none; b=ZOeaYilZDl9+oA2uwmYBt8miB4SCIVxXZaXkPynciT/ACs765f1BNNJO3zfKjyqPWY2r0t sBFz15roEqNQS5Ncy1d20/LKt8DHy5lUqlyD67/5g/zxF9wjQxLmdY+yA3YjuTUzVVDQDK vlMN1oJOchd3Y5FM+KwvRY9K+sB0rTZgQx33bQak4OrpmZhQCivTIf0bi7+Ll9QGI6RXsu ++I+YrN9KG35bWBBY5ZE1bWbxT1MO9rxDbOcoQ3XTHt+hy/88FfRCJrVJSAMFyc82zRUas wQh08369WgT5p+mjCqFXiVo7MDv73XZWHmdR6wwH93dF3/N8tKz7bKhJnrCSGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948891; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Aq3FmYWcJDAHeL3IoPA1I5p+3MlbLT8pw9rXuET3IXE=; b=AQ+gfCUJOKL56/XwvPkUQSBKjnLE+rXKBlt8NLgAu5n4ZhRxkaSi0jufDZejk4jdf7QnFx uQa7pYE/7OclBwkLEqBDULwotPo0mh5svFYvDxXFJIFW3xdiso92776wPHY/cuHHzA81R/ QPdg5YyTMr5XJvU+w+upWW4Hjcr/SbTuRodCMTf90+T/U6/PphNa3HWkZXXcorrD2pDV7z VdqizwuHRg4oUh+NZpzJFqyXrdL2HU/DWfvG8HWcHdMAgLjgccIvXFQOkDr1R2ah04qBYI 0updkWJaVzC6sZgP06pzDm01tBXVhTgsIImQMTVvByiboJL+4+la+hjUCN/aHA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2XB6fw3z6Yq for ; Tue, 24 Feb 2026 16:01:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27e98 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c52fe2c45e4a - releng/14.3 - file: Fix the !CAPABILITIES build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: c52fe2c45e4ae6573eea806fb5ca8d6af69dc0ee Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:30 +0000 Message-Id: <699dcb5a.27e98.5b8d9e91@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c52fe2c45e4ae6573eea806fb5ca8d6af69dc0ee commit c52fe2c45e4ae6573eea806fb5ca8d6af69dc0ee Author: Mark Johnston AuthorDate: 2025-06-29 16:56:59 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:00:13 +0000 file: Fix the !CAPABILITIES build Approved by: so Reported by: Ian FREISLICH Fixes: f35525ff2053 ("file: Add a fd flag with O_RESOLVE_BENEATH semantics") (cherry picked from commit 6783dfb10637100067520bd6d9804e154cfee7ee) (cherry picked from commit 8f6769b82a2a071cf07080b6d77639e919efbbcf) --- sys/kern/kern_descrip.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index 1932336ded28..32b07192fcbc 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -2968,7 +2968,7 @@ fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, uint8_t *flagsp, struct file **fpp, struct filecaps *havecapsp) { int error; - error = fget_unlocked(td, fd, needrightsp, flagsp, fpp); + error = fget_unlocked_flags(td, fd, needrightsp, flagsp, fpp); if (havecapsp != NULL && error == 0) filecaps_fill(havecapsp); @@ -3145,7 +3145,6 @@ fgetvp_lookup_smr(struct nameidata *ndp, struct vnode **vpp, int *flagsp) flags = fp->f_flag & FSEARCH; flags |= (fde->fde_flags & UF_RESOLVE_BENEATH) != 0 ? O_RESOLVE_BENEATH : 0; - *fsearch = ((fp->f_flag & FSEARCH) != 0); vp = fp->f_vnode; if (__predict_false(vp == NULL || vp->v_type != VDIR)) { return (EAGAIN); From nobody Tue Feb 24 16:01: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 4fL2XD2DJBz6SNx5 for ; Tue, 24 Feb 2026 16:01: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2XD0Zwsz3lHH for ; Tue, 24 Feb 2026 16:01:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wq0u8I/S1c7ncP+60D6Cjrp00BqhfyJRZRetab0aSxQ=; b=AzBigM7QHzpwBDemFgvQ4mZgJdkvUGkXpZ3ICDGPw4pWpjGO2hcM0/l1R2qYEpIcw7W4yj MC3aPeusJ0YXdUzs8FzikmQDWG0lpy1neslZw440UqlwzijKgapukGb1eAwMkiQVtdKdup h6/KF7Ea6W+58KTuoE5eLsPkNHj8TJH4ihsbcj4TYR7fKGpng0sWfydg1nftreKSnH1ktB JWhiXKyq4bCTHiS4qylWEUdLsflgPEPqsdNQ6H/FHgwuSphN9DLvyhQmX6qwIkBn27uu/B Do5ayW5SqhrbogCKU8ezF8chgiicrH2mw6Lri6o1dCPCpA1FulbalLm/h3EOkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948892; a=rsa-sha256; cv=none; b=I6bRSUeh2Ll6rLxqWmKoW/Swe5JlWB5FHrI8yhlAzirwW4LqjirambXBaDhOOUiTELx92l BO7njzhRWuy2y7AF0f0U/HmJmhwJ8EnYsrs1Tymi2XTBCIA92gnjCiUz4sk0mEArHZTN2o 89Jl6ytWKKq7DS3YjiPHwxT7ZGg8DB0MckSCbBfOMBz/G738aWgi7ECbmlJjId26eL/6KF mL/jbzWazvHYjmgrLuyHLedgvMVOQ0imJBNm9V4YqaIg63+bcwGCrE0MKrjXQmwAhDjFr6 Vdi8GJfP91ENafpaZ4dekOwu060g/7PcoEADrEcEpcSgzEfNDtjxXVN9oeXfTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948892; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wq0u8I/S1c7ncP+60D6Cjrp00BqhfyJRZRetab0aSxQ=; b=VtHs/IeSbnMdSl01S95RQzX7PzxaarHXjb7agmwmKxcG+SiuIfALSDXLx+/7Uf3HQnk2cx KZh8BbQ9T0LAiZeziqonRGdyyaucISCQQhhNqj106sGprkkCm4G0/USVe2mSdBJtWt/bKP akIsRj+UMAfcpDVGTRZXPrvI0YYE/Xy5Ozh5EBoE5Q6Nu6lWbrzRWjWd4bzoY1X9D5SZtj yEWig8oHPcPjWYvGMvdYBUuhHQ0cuS9H8hluU9/KgId3a0v6J4R4IlJYcqbEd0+Gop1BzE zNxeEDN5NbjHOCPlu6sDO8G4gHjwvg5YFXHVpmsmgxji9dEPTZJd3V2IkxFLzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2XD06M7z7FV for ; Tue, 24 Feb 2026 16:01:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27e9c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: fbc35b3e6615 - releng/14.3 - 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/releng/14.3 X-Git-Reftype: branch X-Git-Commit: fbc35b3e6615e6ff2866a9aeba67ed236f9bdb98 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:32 +0000 Message-Id: <699dcb5c.27e9c.7c8c9279@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=fbc35b3e6615e6ff2866a9aeba67ed236f9bdb98 commit fbc35b3e6615e6ff2866a9aeba67ed236f9bdb98 Author: Mark Johnston AuthorDate: 2025-06-24 20:05:37 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:00:13 +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. Approved by: so Security: FreeBSD-SA-26:04.jail Security: CVE-2025-15576 PR: 262179 Reviewed by: kib MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D50371 (cherry picked from commit 350ba9672a7f4f16e30534a603df577dfd083b3f) (cherry picked from commit 3ad3ab5f9b6e91efc923bae9799697a823eb7227) --- 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 80ac5cc0b775..4df36221bc6a 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -58,7 +58,6 @@ * need a proper out-of-band */ -#include #include "opt_ddb.h" #include @@ -68,6 +67,7 @@ #include #include #include +#include #include #include #include @@ -2433,22 +2433,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; @@ -2490,11 +2502,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 Tue Feb 24 16:01: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 4fL2XF6wvwz6SPKQ for ; Tue, 24 Feb 2026 16:01:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2XF26Ctz3lKg for ; Tue, 24 Feb 2026 16:01:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ot/7CE9zAb/1YpiDKJzOXII+qBuburgX2bBuW3PSC1A=; b=QoKwLDA8YnQ01/DUQs+4q6IiECTx6HXpEibYhxMjIu38Gv83yt9KVY9w05tyQ7tpaW4nhe sIT9g/jRYFgX8LdksqXSthitgNWlw+a+ACd2HzNlp2HAa/RMxFn7XMOtPqPf+RPmt7pLt/ ToeSqghDWyjQzCn1ApSLujAalCdi+3HKNP9lQhQC+qZ99YGzANHOIq2TxxMhTG/bj334nP 54KBl05oGO+B21tBUag3GaaWcYnq0l09NiQVqOT+pOMSH4lB99eEtyMrDgByIrM7GWPwKc ZRJtmmdtd1eHbJPI8TBD+h0IYoO4p4InbC4K39BPHgCGP6/xT9lpnQZBFTdRAw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948893; a=rsa-sha256; cv=none; b=T0m2MCcLJdiMcZIBR8/muOwvy9cumx+sEED24XKi4S8AzvD1wI/cy3Y83HrbQIlb5ZVEWA HZqrjVVZxyScepENVAUYGhO1Ffw2ip8043NVwtisEtN2sdJe4HWWNpBsRPZkLZUUpy0nVl N3kvvD2j/d+gwuKgh4fxPXl5X1x7nxtB2AF581eWFTEUCM9EuFlkVwL+fCmBdMVEbaTcEa YQcTWYMrTl7aFgx95DVT9voZUAHvwxfrQg3tnNMYtmQPNp+wdtO6yhVenJeTWrppxcAzBR RWEiadPrWFLhQBFFq50IqbbT/hGJlK+dfzWExbRJgFDIHdja/1Nxf0D8fEJNRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948893; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ot/7CE9zAb/1YpiDKJzOXII+qBuburgX2bBuW3PSC1A=; b=Gbg1i0kotv438UNuuEoDzr+fL5YOxUIANc83A7jheUji+aQ5Y4ijerTwDo6W1hNXeKRfPZ wLWeu1U775TtLeo3omV1QCnis6s220GoqToBGtJLBM7V+Ah6L4FLaWzjsndJ/ogzWE+r7Q GFRPPafLoPF7z6Pktr7Nv+2dnWhzsgMilRprSFaWzqwofeqJ0wcux5Byxq0GUcAktvatYp P1yqXQa/qU8c+C92asMgVvHPJrGDCHT7qH7UcaME943Ejnhhra89NiIZ2EHHiEoCcPSl3C loBQrrx5MFWf0Ya8ewEUM3ss0/5pUkSi/cCjyQ3A+oluvsEP6nPx1GvqnOzxIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2XF0wZZz7FW for ; Tue, 24 Feb 2026 16:01:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 277b7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 32ff24bd702c - releng/14.3 - 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/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 32ff24bd702c89ed387a38bc76f3df31dbadd8cb Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:33 +0000 Message-Id: <699dcb5d.277b7.38259535@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=32ff24bd702c89ed387a38bc76f3df31dbadd8cb commit 32ff24bd702c89ed387a38bc76f3df31dbadd8cb Author: Mark Johnston AuthorDate: 2025-06-24 20:08:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:00:13 +0000 unix/tests: Add a regression test for fd transfer across jails Approved by: so MFC after: 3 weeks (cherry picked from commit 5843b8ee02e99527c28f579acfc1f48e10033529) (cherry picked from commit ac2279ea57b72d688cf0af5a6fa7f5dbd1d4521b) --- tests/sys/kern/Makefile | 2 + tests/sys/kern/unix_passfd_test.c | 131 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index 846ac3e4adc9..eb5ea8c3c549 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -86,6 +86,8 @@ LIBADD.sendfile_helper+= pthread LIBADD.fdgrowtable_test+= util pthread kvm procstat LIBADD.sigwait+= rt LIBADD.ktrace_test+= sysdecode +LIBADD.unix_passfd_dgram+= jail +LIBADD.unix_passfd_stream+= 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 d8c0efe5b9ea..69898d19e797 100644 --- a/tests/sys/kern/unix_passfd_test.c +++ b/tests/sys/kern/unix_passfd_test.c @@ -28,15 +28,19 @@ #include #include +#include #include #include #include #include #include #include +#include +#include #include #include +#include #include #include #include @@ -946,6 +950,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) & 2) == 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) & 2) == 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) { @@ -964,6 +1094,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 Tue Feb 24 16:01: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 4fL2XG6Yv0z6SPV9 for ; Tue, 24 Feb 2026 16:01:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2XG2Wxqz3lSS for ; Tue, 24 Feb 2026 16:01:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V383PtCH62SyxlT+hRXA+YNFO4DzHBLTuHPOMrfoaUQ=; b=HsaZK8OUClBWjBnB1NWXdEStCoY6O5R5FYYnLKHdtYcDOq8vtJ170ty/k2udOAm4nJY49z NXfKqBI+7MQoZd5sJKraU/APHq852QXG4H975Y6T9eUVNKBVYhD7bwZ/qgwkJoKUu/+bNj kTVp0CqWdxSmzSactlbnyyOqBoLmX6tXIOTI/nFpWYwA1pW9DhWgZYzuyAUKZbXoRtY2hZ dkwypg7B9FYxMcErTsTTLsfazk5zyG5NfQIyzz+oxnjnjVo0pGuNoJqYlP/GQEN9xxadlO LVVn93co+47ppvufvdfMGRjE4MjBLw22+c/f6x6WfcvPCd5z/aHpmYe7RVUVGg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948894; a=rsa-sha256; cv=none; b=Z91JIWh/QJ/IU7/Y70raVZfcy8oq2NToH5g/sQqj5EPCc3VK25P4qasKRoCAyhl7bxCxfD 9wjYU3Ee+50br143j6t3m8JS5/RFKDlXXZiEUp9i8opBId/JRiGtMZB3mxLn2azl/XeK2/ ITFqQBvq4SgCS+NNlTYpMKpxvfFIrEtRSvOvaMzep9pwQCTIBlJNYi8KrlDgwpQq4SccgY Mb1WTPKi0FFStIaYmSpDaHTOsl2ocJaDRC7J/QFuy8QNyFRYKLPOT2lqJBjdAiaZlrFTEa 8pwnBZ3xEs1e7kRItoyLJFZV6MvUv/GtDMO44aOWJBGvA1f62lTZ64uaLesw0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V383PtCH62SyxlT+hRXA+YNFO4DzHBLTuHPOMrfoaUQ=; b=ENxbTJUSIxacm8ZxSYIE3yMKPtJ8ZH7N27JD0NnkddVtLzS5pWyn5lN8b2vy+Gs4ZfgdWF VLwPdWr7btGHH4hTJr1AEGq+1z+hUmRdZVSvbwdtYKCKcv8lOBcCQR0w1ztw569IUyiBHy urFzJnl14wWhCRDO95Spq0OAehFGm9VmPnZWTJlUMqB6Q5fl6kDoNubpZ4SAAb+L/NneYL nzdxMD5SfIKxfj4MJxWu2AtUQzAuIJLs/7Y6luTsoxX2VBmcOGUMH6XvlmdMU3vZnyfJQO UVDvIVuz/sKjhHrbdEzu6bhBWU9QLXTDLZjGyDZm/dd+RGAp6ZiU0K2IcXUrfg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2XG1lmKz7GS for ; Tue, 24 Feb 2026 16:01:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27ccf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3a495a08e9a2 - releng/14.3 - 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/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 3a495a08e9a2ce875f1ed0fd96609155ba2c454c Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:34 +0000 Message-Id: <699dcb5e.27ccf.62b0acf6@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3a495a08e9a2ce875f1ed0fd96609155ba2c454c commit 3a495a08e9a2ce875f1ed0fd96609155ba2c454c Author: Mark Johnston AuthorDate: 2025-06-25 12:50:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:00:13 +0000 amd64/conf: Remove a config committed by accident Approved by: so 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 24 16:01: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 4fL2XJ076jz6SPQg for ; Tue, 24 Feb 2026 16:01: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2XH2tCZz3lKp for ; Tue, 24 Feb 2026 16:01:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u6iKBQ9qMIAaTrtn79TPhPz4NqIVv31xrC2gVfaMym0=; b=JhNIME2PBHC+puMcPbsTGrG9miv7S32ykPbj0R/LT8wa94Ml6Q2uTt7Iuy/PPS2YZ/EvP9 WAsjTd9jD0zNAFxddXy0pPpk6PSKQvPSEHgCyoW7d/oZYeZrsQ8wMhKX/R6ZKS7JkO23jy VZ7DStZiX2M2Ofkk8hD3ylcJBU7g5qNiLFQI1Vh5DM7N161hRRuyheLJoWd4qE9WFPDzWO vUR+UQtVzDhkBpciEF+e9OFlARuIDYas8qcEu69F/juapRjYRn34QKBUMOj5PrGl+3WBVj E8NjXRobN6jXxgx/Z8Sg27DrJrVeNi8EwcdxtyTrEvQci9ekF3rf9Rpdwt6gDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948895; a=rsa-sha256; cv=none; b=BFBkQRwdBhvZMyZp0TQ0BKw4Kx4toW7iJvXGXP1m4o4Zzo90ptBaXJWBQ5FklQVqsh+hoV yb+MvvLGjMvlHFgsnpVLnjWsnY09baA4OpGvOlcF8u+VaCNl3r4HNWTGOYtDxvnuLI2dRo pmdq0Zbh+PRHCUVotELOyWUq+/Jutou8IGVZvP1tdIyEEf6sgGzYlL6LLODg7Y6rlxf0A6 oMFILr+JvPAapF4vqtuPjw/ps4aHjSoTn9FwjsRc7K6dXygadwP7iwU2wXpTnO+AEdiG1r jF0FYuMeoKO9BHoFC9il7U3gC8c0Ne8B9qpbpstvYXOaw2rlaQQi0FObB4Lk4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u6iKBQ9qMIAaTrtn79TPhPz4NqIVv31xrC2gVfaMym0=; b=ZSqf7WfjyXFPHUKIPuhaZdAqsQm4Wic707/1TLoUKist4luoxy37tQqIbqO1VtT7s8KIKu bDNGe5IP/eCLhYHAPhO+GamshsdtIMU+slUWFrKQOuxlFnoiuYH+KYXx8OAxIaHBznhrtV yedA7sVDgNJAA7IEwhLKEsILA/jqPAkORl3QHkN56SfK9rMO/9sawfevj2mWHaeFNGKM/E DTUUpEAwLWV7ZuGT9fqSgkF92z+1swFzXTcXHXUllHstuSOti5E5EB4xLishwg7vaqeS1d s0fwl4xQ/rtkrwdHdJ/Czp1h5vVS0gSpApJNxa+Nm3pUlF7MXL87NqKstHWTOA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2XH2RhFz6x7 for ; Tue, 24 Feb 2026 16:01:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27b67 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d521badafdaa - releng/14.3 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14.3 X-Git-Reftype: branch X-Git-Commit: d521badafdaa846d46157185e3c87d5165aeaa59 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:35 +0000 Message-Id: <699dcb5f.27b67.55dc77f8@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d521badafdaa846d46157185e3c87d5165aeaa59 commit d521badafdaa846d46157185e3c87d5165aeaa59 Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:39:30 +0000 rtsock: Fix stack overflow Approved by: so Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") (cherry picked from commit cd00cd9f6ed4b6f6e6bb8ae168f2537968991b53) (cherry picked from commit f44d771c2c6c80f3fabd11d335964e1efdf50a21) --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 8b4e716a0508..cd4363f1c0ce 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1851,8 +1851,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:01: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 4fL2XJ5tD8z6SPVS for ; Tue, 24 Feb 2026 16:01: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2XJ3LBRz3lZ6 for ; Tue, 24 Feb 2026 16:01:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MLETRFRc++JwSjosmW3nP/Vi9W+cxaMB/eBsLxBGP4w=; b=bRENNvRj0Iw5DXCxmK0vZR+bWy8r9QPawUoSxAEeLPXVfHl0evBJdf/somiR5tsffYlUSq 5aNO/1/1PMxtX6iSvN/TVBBo67ttKNNTmDVlC1Dl7SEbf56nHZRtOUm8jqBk5F0OJBrrEE cDQy4NDdxZ290zZP1+V3dI8K2nLK/QcUxpNXtPq7vlcAHypGcl5WMnGL9XuGKoRZqOrT1K n/z4KOFJoleOVVNU2WSz6ZeOXf9kEOlF34S7hdmKPcGEyhxiNoh1lTyeLjhsLLaD27mPUS wfX4YqOr7jkMfBl9X4kfC70NUs8tHgTeOvadqUXaYAcJGGp26mjIZaLZfiu7rg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948896; a=rsa-sha256; cv=none; b=BDpjxT0kDVyjI+EISuXIyQ97ZmHcySKpGjPee6y4Lc+js8R551NUC+3gVonecR9aSpg/T6 z9fh5axlyPB+X4+no7/jdqb5hYQfJm39fh9v5PbXzcCjq2AeufxmG93JQlokVT7oPpa89k JXK3FtljwRR4XOp9b8UPg5+DdMaAf6yqDrkkIxzjR+yq2F7ofnUlDptdcI8rSzF2JMnlcl AcwzfHGHFZhOpaTs4N1idg2oP7MQ+tJ5jfPXg4Ks/bdMDyogxRkiokS3spIxv6QjWSuTKl 20ExbbdZ4ea8Y079rwcwmQabN4J21D+gkSXLLspi8gtxB5BVjABTLh10ZhY8bA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MLETRFRc++JwSjosmW3nP/Vi9W+cxaMB/eBsLxBGP4w=; b=Wl+h0nODexXVUN2zr/IO2+YdZwPgJ5lq4XrwyNp6mnAngktDeY6EenWrMlPVSahaMO57PQ HBsTvzLW3hlY1wyiXhk6fOymIzuPAqV6MLSb/FtsmVlHVaNzid/27IRmH1G1PVX7n+4/sZ wae6W93x0jQxlViBVXhT0q66wzsq/DMe5UqCaqxbZxyN814XHK968diVYejBsvepMnf/J3 lkt84DdePhMn2uzd9TdkhHgfa6CmLQD8SeY8A7xEjn3iScGNYCTzl2Q2IXL2CH9XCIKict rzkBB7RHOTB48CTg/S5gofQvngbP6StNTtzQ9bafRYb1mYOr0XkX9qhryWDjeg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2XJ2tLpz7GW for ; Tue, 24 Feb 2026 16:01:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27887 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:01:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 24c55170cef4 - releng/14.3 - 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/14.3 X-Git-Reftype: branch X-Git-Commit: 24c55170cef490616ad4b9262a39e1c5c47b8d0f Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:01:36 +0000 Message-Id: <699dcb60.27887.7eaaa745@gitrepo.freebsd.org> The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=24c55170cef490616ad4b9262a39e1c5c47b8d0f commit 24c55170cef490616ad4b9262a39e1c5c47b8d0f Author: Mark Johnston AuthorDate: 2026-02-24 15:56:57 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 15:56:57 +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 300b4519af5b..328fd425b883 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. +20250224: + 14.3-RELEASE-p9 SA-26:04.jail + SA-26:05.route + + Jail chroot escape via fd exchange with a different jail. [SA-26:04.jail] + + Local DoS and possible privilege escalation via routing sockets. [SA-26:05.route] + 20250127: 14.3-RELEASE-p8 SA-26:01.openssl SA-26:02.jail diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 094db9aa02bd..6f6d7ac69d2c 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.3" -BRANCH="RELEASE-p8" +BRANCH="RELEASE-p9" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Tue Feb 24 16:02: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 4fL2YN0lhjz6SPT0 for ; Tue, 24 Feb 2026 16:02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2YM4ylMz3nGS for ; Tue, 24 Feb 2026 16:02:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948951; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=07VYIbPxmxXGsuYIqvCJvV+q3Ez2360DTdBlieyC6XM=; b=ikAx1fojzkIXnha9fuXBH5YGWsXF6zQNnKRx5TaJCZZ8gk7te3OVDuuxp+26KzAILM05tg 3KdcQrZFR1+jTh1cWtt/sjr9C9fwtMaZKEs6HdkqxlsRZKS06rxm+Z/9ovQx9x/BeF6+hd Y7oWo8XwZ0gsCjE+IVWcn42Am46O3zSdXXiOArXdgpSv541COykkbGAzUrgSvBp0oYyV+c ppMSW38CmlOEQuOWt0WMnWRwEbJOImk14gdCVNh76AOnjIt8RenaOR8iHFw/oQLJBA0bc9 ciglMKb5QN7iybbQynluLPUfl+ZB+W10w79p5Ain5eGInoLDrv45Rrp6aE7KFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948951; a=rsa-sha256; cv=none; b=MWH0pLxhX3xA7mOTKFm3Xk6jw2SCTn9yumNSjri8ZJGZFHbGYB+wDWeOBDoE2grDq2Yex7 SggyV+pipHAHleFluA7MRg9MuXs3w2hOF29Yk0VrX+a4Xth3Fno20p/55pBrnDAJZuVD9c H3CAUkd80lMG13Pf6ZGaRMihcnF9A6j0JYNCy8znfnU7tYdakeJfIbtx/eQDRSOmmJNusN LE7924+j06/tp80Y3sOsgZjFlFosUxUYvVSO1qxbBOYXUQuNrKbfL56FizLarUQeyynUlD 8SyWn5kIP99PgRJcQfXewBllPTV0UXBb+d74IjYBK4ySo6kGghC9ogWebLdOew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948951; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=07VYIbPxmxXGsuYIqvCJvV+q3Ez2360DTdBlieyC6XM=; b=F9Lu/LdA2lEDwLQH1/NSBKt+ly2WRa9QMtLnf6DFwqCAqixpmRrpCkAI25Gn5H9po5jB5y ahxrkSYviU+oE0/z13wZqBkObMFBFDzcqFuGA09Ii7GdtQqxG61KxlvsIJpLRBT7Mom/c+ TbTD7Kd2BMoLkJ4iXvNHSkgjv66Eh04cvs8h2LrL3u6tgsNzguDdL2tLrb828hR/uBhpSJ pwrtmHPcDRKhNi2Xlchmq/ILHQMTQNfOGedai0VBFGsFn6aqzXVUOKR8H69wKV/x8APyzV 5LWtKul11aP/pHt7GGgbCaxxRIQPPZsGUzjmO3lJBMMCvASna2AwVVDU2uMQrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2YM4Kf8z7Gn for ; Tue, 24 Feb 2026 16:02:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27b9c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:02:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7465d0b094b7 - releng/14.4 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14.4 X-Git-Reftype: branch X-Git-Commit: 7465d0b094b7ad8a41ba1df8305c4a8aaa83eb4b Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:02:31 +0000 Message-Id: <699dcb97.27b9c.1e83b993@gitrepo.freebsd.org> The branch releng/14.4 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7465d0b094b7ad8a41ba1df8305c4a8aaa83eb4b commit 7465d0b094b7ad8a41ba1df8305c4a8aaa83eb4b Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:02:21 +0000 rtsock: Fix stack overflow Approved by: so Approved by: re (cperciva) Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") (cherry picked from commit f3be7df50f01d9a6ead9f27b55bb4dfd7dc4f9d2) (cherry picked from commit 1eb2beb3686c50a870ed7688f753f89dd0f0ab3e) --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index bc70c600e3ab..e3116b8ee4b5 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1851,8 +1851,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:03: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 4fL2ZG0snXz6SPqR for ; Tue, 24 Feb 2026 16:03:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2ZF6tdHz3pKW for ; Tue, 24 Feb 2026 16:03:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dt7oNro1In8aryYPz6eLxPZi5cPnuoo1pDx45b/kqfI=; b=crPvkQ9WHhuxdPoYxBPPC2hxMzEDHufVFrNnN4otRaX5dJGjmB2qf3ihRzbjosaR1Z9ufB qhZ7MZWgDSgH+lUZ6xnJu6NVhkFeYN4rJ2ca1HRjaP9oyrNSVcLX/QJIfVYGVmEd6Qz7Rs Ol98qKGgvm+SVVgjweEIk2Sw113YW56dwl+oe1Fzf1vz7uSyvZhXC/gRjxExlA9WshmEI5 tbUzexnD6bXGB9G5ltvEwsrdEr45NADxGhGqIms/b3FwFzfdoZ9mFBhmebIMKr4R5t8FvY fm4hle/del4v1ikRO21+6eEJiZ8uyYBZRkt/t5/gQf+4IfCe/BJQOco7vJlS1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771948998; a=rsa-sha256; cv=none; b=K1ZKOY6S3SDMbnRzDezbvEAra1z9r7SdPjlr8dkC9xNHuF0J0bXfhe24xtKIPfayZJQWs8 kH/GL+Lx1l9GyIIQXHt0p3i4vGwLiNPDBHhOWqFwEvm4HUma42zVdWbyk1L1SK8X+K5YxF MChHNaxLiqW+PzolWc1Xr13dFaVbJJ/60nJRFBKIewt+p0r9rBEBBHgj6Kkf4Qlk09K4C3 lOl+o5fGuSnwujGGulb7HXOPG9DiE//ygpqyCUier81bLxcsqwJf5qqKpEB76hSe0Uz6wh CETAYQQdSUghN3azVX2OISd2jipvoz11SrkBIu5ZSFLYSXrBrR535IeGbtTuBA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771948998; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dt7oNro1In8aryYPz6eLxPZi5cPnuoo1pDx45b/kqfI=; b=fXM6JB/xUwtkPMSsHKzRwSxJnebUBqpHE5VOQotOHsqZTRB7ZygUw56i8F3bvJsEZhQXu9 e9GCRQsX+g2Ncs0QTgiWg4ycgdp210LXuRzA8uErkgEgkp4xGN1YUdFPpB+19vUKpso46D vdG88QLnzhAtdP5a8OvnCiqzyIYr8TcFxkhMeSBmXh4JHdppfZ3GrMSZ/TnJStruaCbSpK qGdVXD6OX1nw86qVNWh4LPN1hvs4Y8yB2gDkGPdTmGt2bpBWAwTRbxba+HH75RhxBg7dmA 67u1JEBCKmoB3TNeXaU9XqH67wdC3N5RuIkmMoHoTKSF3m7MgkQ0mt9RlDs0hA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2ZF6GScz6Z8 for ; Tue, 24 Feb 2026 16:03:17 +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); Tue, 24 Feb 2026 16:03:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8b476ffc4ea3 - stable/13 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 8b476ffc4ea3f82f758714fee0289209bc980782 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:03:17 +0000 Message-Id: <699dcbc5.26640.7b0d3479@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8b476ffc4ea3f82f758714fee0289209bc980782 commit 8b476ffc4ea3f82f758714fee0289209bc980782 Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:03:14 +0000 rtsock: Fix stack overflow Approved by: so Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") (cherry picked from commit f3be7df50f01d9a6ead9f27b55bb4dfd7dc4f9d2) --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index d78a60070615..24b9007a987f 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1885,8 +1885,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:04: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 4fL2br1BDWz6SPYW for ; Tue, 24 Feb 2026 16:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2br0c8pz3pnt for ; Tue, 24 Feb 2026 16:04:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qKJaz+3jO7EalaspAUuPuCpBrSSkvaQ/Gan2Gecq4uI=; b=TDUM+1/pMfYeV1BRGZnmpDPLALzxztcnwGGlDOogE9kh8az6pC1JZQBL3eM/9t1CSGOYDe nU/jrMxcu5AoG4umRESvXxmTd0uPikhOxJ67jLiMl5Wnj+XYRbT6Gn8GKe0mFZo1YSs42A /5xDraMO9cFOAm9i589B+gTmTyRPyUrfbbL6QoyfQ/zIRNiLb2TvLFZy7p+jxZBhmA+dxS bOQDIFAPWj/J71W3xw80V5qdKZZOiGbIjJiMZTarVDkewgFEKhh23XHBJvWUvYdgDmybc7 RniKLuMa3pJceKxEs0W8Je1XpsbTm26l5WQ72yU3oJ5hjToKFerZ1+tuC99SHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949080; a=rsa-sha256; cv=none; b=Ec5JZBUiBxwgzdN7/TEEBs1eAxK7GIy7Rt0EIDtGIiwhYc1z/KCP6+hniyRmwoemnehF98 TxRy/RXmGcEB4RKJS31o6KL0Vh94m1GhyVZiD04bYFquD28DsU+5YOCYNTU0kMe3vtupkh k8ZDxMDdKmdJgdsvzGFmlrDlyhYnu8vIBcY7UBLPiV/4EnDII0ItSHc3j/71asFTIGOLFe LXgPUwy4Fk/HNBX0UDWeOatRt1wt78j2xletZn7Rx9/9aTmno9OoUqYI24pRh7TCivaH5d EaBEHnumOQmy4VtHeYpbp+Y7q+AUOMZ0fOZhETihF2MmbWxwj/v2Hv0r2J6lTw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qKJaz+3jO7EalaspAUuPuCpBrSSkvaQ/Gan2Gecq4uI=; b=vOoMTylsoFkq2AwIL0qDQhbe1mxhcv9UprXnbXJMLMXjwYEVU+RT5MPS0uTJWpcc6qual8 NOTEPPjNoMFPBNHLbfeuDv5I0dxPpeaU13xPXP2X9428MU8H9Gv7M+KfjLNU8uNIp4hb3x i8SIZBn3qfqONsWvJWynh+FJB/LzSRfi2soxe9glbrJ18Jy2jUDzYw0T3WYqFuUqzRsAVU BHDxe0ud5RLKHYkhzpAaHZQ7Les8O8f2s5cVCoCT3hCASUeJlc3tSzi9dNhpcu7taJ22q3 qgFVocb/ILsQxAjuAHNm0WCx6xAGCEiRtQuBqYCAWD4/RPAIDTTKdAVS34pswg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2br075Yz6Wf for ; Tue, 24 Feb 2026 16:04:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27ea0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0b18e4842c9d - releng/13.5 - file: Qualify pointers to capsicum rights as const List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/13.5 X-Git-Reftype: branch X-Git-Commit: 0b18e4842c9df9caefac5f5d8fd8f4fbd5b29901 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:40 +0000 Message-Id: <699dcc18.27ea0.735a0a09@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0b18e4842c9df9caefac5f5d8fd8f4fbd5b29901 commit 0b18e4842c9df9caefac5f5d8fd8f4fbd5b29901 Author: Mark Johnston AuthorDate: 2025-05-20 20:19:30 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 23:11:00 +0000 file: Qualify pointers to capsicum rights as const File descriptor lookup routines typically take a set of capsicum rights as input to the lookup, so that the fd's rights can be atomically checked. This set should be qualified with const. No functional change intended. Approved by: so Reviewed by: olce, oshogbo, brooks, kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D50419 (cherry picked from commit 5319cb21610ad947c56fd0cd4f18ef5b58bc8db7) (cherry picked from commit ecc1e61d31407680c9acee9c7adcf2ca2aa21432) --- sys/kern/kern_descrip.c | 48 +++++++++++++++++++++++++++--------------------- sys/kern/sys_procdesc.c | 5 +++-- sys/kern/uipc_mqueue.c | 5 +++-- sys/kern/uipc_sem.c | 6 +++--- sys/kern/uipc_syscalls.c | 4 ++-- sys/kern/vfs_syscalls.c | 5 +++-- sys/sys/file.h | 21 +++++++++++---------- sys/sys/filedesc.h | 19 ++++++++++--------- sys/sys/namei.h | 4 ++-- sys/sys/procdesc.h | 6 ++++-- sys/sys/socketvar.h | 2 +- 11 files changed, 69 insertions(+), 56 deletions(-) diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index f51a1092114d..f37eab12da70 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -114,7 +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, - cap_rights_t *needrightsp, struct file **fpp, seqc_t *seqp); + const cap_rights_t *needrightsp, 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, @@ -2978,7 +2979,7 @@ finit_vnode(struct file *fp, u_int flag, void *data, struct fileops *ops) } int -fget_cap_locked(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_cap_locked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp, struct filecaps *havecapsp) { struct filedescent *fde; @@ -3010,7 +3011,7 @@ out: } int -fget_cap(struct thread *td, int fd, cap_rights_t *needrightsp, +fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file **fpp, struct filecaps *havecapsp) { struct filedesc *fdp = td->td_proc->p_fd; @@ -3256,7 +3257,7 @@ out_free: } static int -fget_unlocked_seq(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_unlocked_seq(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp, seqc_t *seqp) { #ifdef CAPABILITIES @@ -3339,7 +3340,7 @@ fget_unlocked_seq(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, * racing with itself. */ int -fget_unlocked(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp) { #ifdef CAPABILITIES @@ -3406,7 +3407,7 @@ out_fallback: */ #ifdef CAPABILITIES int -fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_only_user(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp) { const struct filedescent *fde; @@ -3436,7 +3437,7 @@ fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, } #else int -fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, +fget_only_user(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp) { struct file *fp; @@ -3472,7 +3473,7 @@ fget_only_user(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, */ static __inline int _fget(struct thread *td, int fd, struct file **fpp, int flags, - cap_rights_t *needrightsp) + const cap_rights_t *needrightsp) { struct filedesc *fdp; struct file *fp; @@ -3520,15 +3521,15 @@ _fget(struct thread *td, int fd, struct file **fpp, int flags, } int -fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +fget(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp) { return (_fget(td, fd, fpp, 0, rightsp)); } int -fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, vm_prot_t *maxprotp, - struct file **fpp) +fget_mmap(struct thread *td, int fd, const cap_rights_t *rightsp, + vm_prot_t *maxprotp, struct file **fpp) { int error; #ifndef CAPABILITIES @@ -3571,22 +3572,24 @@ fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, vm_prot_t *maxprotp, } int -fget_read(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +fget_read(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { return (_fget(td, fd, fpp, FREAD, rightsp)); } int -fget_write(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +fget_write(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { return (_fget(td, fd, fpp, FWRITE, rightsp)); } int -fget_fcntl(struct thread *td, int fd, cap_rights_t *rightsp, int needfcntl, - struct file **fpp) +fget_fcntl(struct thread *td, int fd, const cap_rights_t *rightsp, + int needfcntl, struct file **fpp) { struct filedesc *fdp = td->td_proc->p_fd; #ifndef CAPABILITIES @@ -3624,7 +3627,7 @@ fget_fcntl(struct thread *td, int fd, cap_rights_t *rightsp, int needfcntl, * XXX: what about the unused flags ? */ static __inline int -_fgetvp(struct thread *td, int fd, int flags, cap_rights_t *needrightsp, +_fgetvp(struct thread *td, int fd, int flags, const cap_rights_t *needrightsp, struct vnode **vpp) { struct file *fp; @@ -3646,14 +3649,15 @@ _fgetvp(struct thread *td, int fd, int flags, cap_rights_t *needrightsp, } int -fgetvp(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp) +fgetvp(struct thread *td, int fd, const cap_rights_t *rightsp, + struct vnode **vpp) { return (_fgetvp(td, fd, 0, rightsp, vpp)); } int -fgetvp_rights(struct thread *td, int fd, cap_rights_t *needrightsp, +fgetvp_rights(struct thread *td, int fd, const cap_rights_t *needrightsp, struct filecaps *havecaps, struct vnode **vpp) { struct filecaps caps; @@ -3685,14 +3689,16 @@ out: } int -fgetvp_read(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp) +fgetvp_read(struct thread *td, int fd, const cap_rights_t *rightsp, + struct vnode **vpp) { return (_fgetvp(td, fd, FREAD, rightsp, vpp)); } int -fgetvp_exec(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp) +fgetvp_exec(struct thread *td, int fd, const cap_rights_t *rightsp, + struct vnode **vpp) { return (_fgetvp(td, fd, FEXEC, rightsp, vpp)); @@ -3700,7 +3706,7 @@ fgetvp_exec(struct thread *td, int fd, cap_rights_t *rightsp, struct vnode **vpp #ifdef notyet int -fgetvp_write(struct thread *td, int fd, cap_rights_t *rightsp, +fgetvp_write(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp) { diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c index aab7b1616594..4665dc2c0421 100644 --- a/sys/kern/sys_procdesc.c +++ b/sys/kern/sys_procdesc.c @@ -121,7 +121,7 @@ static struct fileops procdesc_ops = { * died. */ int -procdesc_find(struct thread *td, int fd, cap_rights_t *rightsp, +procdesc_find(struct thread *td, int fd, const cap_rights_t *rightsp, struct proc **p) { struct procdesc *pd; @@ -168,7 +168,8 @@ procdesc_pid(struct file *fp_procdesc) * Retrieve the PID associated with a process descriptor. */ int -kern_pdgetpid(struct thread *td, int fd, cap_rights_t *rightsp, pid_t *pidp) +kern_pdgetpid(struct thread *td, int fd, const cap_rights_t *rightsp, + pid_t *pidp) { struct file *fp; int error; diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c index 6f14f071588d..926a9d311b67 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -2160,13 +2160,14 @@ sys_kmq_unlink(struct thread *td, struct kmq_unlink_args *uap) return (error); } -typedef int (*_fgetf)(struct thread *, int, cap_rights_t *, struct file **); +typedef int (*_fgetf)(struct thread *, int, const cap_rights_t *, + struct file **); /* * Get message queue by giving file slot */ static int -_getmq(struct thread *td, int fd, cap_rights_t *rightsp, _fgetf func, +_getmq(struct thread *td, int fd, const cap_rights_t *rightsp, _fgetf func, struct file **fpp, struct mqfs_node **ppn, struct mqueue **pmq) { struct mqfs_node *pn; diff --git a/sys/kern/uipc_sem.c b/sys/kern/uipc_sem.c index 7cb25749ad9c..9871c0528338 100644 --- a/sys/kern/uipc_sem.c +++ b/sys/kern/uipc_sem.c @@ -123,8 +123,8 @@ static int ksem_create(struct thread *td, const char *path, semid_t *semidp, mode_t mode, unsigned int value, int flags, int compat32); static void ksem_drop(struct ksem *ks); -static int ksem_get(struct thread *td, semid_t id, cap_rights_t *rightsp, - struct file **fpp); +static int ksem_get(struct thread *td, semid_t id, + const cap_rights_t *rightsp, struct file **fpp); static struct ksem *ksem_hold(struct ksem *ks); static void ksem_insert(char *path, Fnv32_t fnv, struct ksem *ks); static struct ksem *ksem_lookup(char *path, Fnv32_t fnv); @@ -588,7 +588,7 @@ ksem_create(struct thread *td, const char *name, semid_t *semidp, mode_t mode, } static int -ksem_get(struct thread *td, semid_t id, cap_rights_t *rightsp, +ksem_get(struct thread *td, semid_t id, const cap_rights_t *rightsp, struct file **fpp) { struct ksem *ks; diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index ef3ebeb58176..336a0dd77d5c 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -91,7 +91,7 @@ static int sockargs(struct mbuf **, char *, socklen_t, int); * A reference on the file entry is held upon returning. */ int -getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, +getsock_cap(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp, u_int *fflagp, struct filecaps *havecapsp) { struct file *fp; @@ -727,7 +727,7 @@ kern_sendit(struct thread *td, int s, struct msghdr *mp, int flags, struct uio auio; struct iovec *iov; struct socket *so; - cap_rights_t *rights; + const cap_rights_t *rights; #ifdef KTRACE struct uio *ktruio = NULL; #endif diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 7dcdaa66adb8..51f26b843c45 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4315,7 +4315,7 @@ out: * semantics. */ int -getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, +getvnode_path(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp) { struct file *fp; @@ -4353,7 +4353,8 @@ getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, * A reference on the file entry is held upon returning. */ int -getvnode(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp) +getvnode(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp) { int error; diff --git a/sys/sys/file.h b/sys/sys/file.h index 9ae31974745a..4c0ec276c700 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -251,14 +251,15 @@ extern struct fileops socketops; extern int maxfiles; /* kernel limit on number of open files */ extern int maxfilesperproc; /* per process limit on number of open files */ -int fget(struct thread *td, int fd, cap_rights_t *rightsp, struct file **fpp); -int fget_mmap(struct thread *td, int fd, cap_rights_t *rightsp, +int fget(struct thread *td, int fd, const cap_rights_t *rightsp, + struct file **fpp); +int fget_mmap(struct thread *td, int fd, const cap_rights_t *rightsp, vm_prot_t *maxprotp, struct file **fpp); -int fget_read(struct thread *td, int fd, cap_rights_t *rightsp, +int fget_read(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); -int fget_write(struct thread *td, int fd, cap_rights_t *rightsp, +int fget_write(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); -int fget_fcntl(struct thread *td, int fd, cap_rights_t *rightsp, +int fget_fcntl(struct thread *td, int fd, const cap_rights_t *rightsp, int needfcntl, struct file **fpp); int _fdrop(struct file *fp, struct thread *td); int fget_remote(struct thread *td, struct proc *p, int fd, struct file **fpp); @@ -281,15 +282,15 @@ int file_kcmp_generic(struct file *fp1, struct file *fp2, struct thread *td); void finit(struct file *, u_int, short, void *, struct fileops *); void finit_vnode(struct file *, u_int, void *, struct fileops *); -int fgetvp(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_exec(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp_exec(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_rights(struct thread *td, int fd, cap_rights_t *needrightsp, +int fgetvp_rights(struct thread *td, int fd, const cap_rights_t *needrightsp, struct filecaps *havecaps, struct vnode **vpp); -int fgetvp_read(struct thread *td, int fd, cap_rights_t *rightsp, +int fgetvp_read(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_write(struct thread *td, int fd, cap_rights_t *rightsp, +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(int fd, struct nameidata *ndp, struct vnode **vpp); diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 9055f0a785e7..bf7a27e37161 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -267,22 +267,23 @@ struct filedesc_to_leader * struct filedesc_to_leader * filedesc_to_leader_share(struct filedesc_to_leader *fdtol, struct filedesc *fdp); -int getvnode(struct thread *td, int fd, cap_rights_t *rightsp, +int getvnode(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); -int getvnode_path(struct thread *td, int fd, cap_rights_t *rightsp, +int getvnode_path(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); void mountcheckdirs(struct vnode *olddp, struct vnode *newdp); -int fget_cap_locked(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, - struct file **fpp, struct filecaps *havecapsp); -int fget_cap(struct thread *td, int fd, cap_rights_t *needrightsp, +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); /* Return a referenced file from an unlocked descriptor. */ -int fget_unlocked(struct filedesc *fdp, int fd, cap_rights_t *needrightsp, - struct file **fpp); +int fget_unlocked(struct filedesc *fdp, int fd, + const cap_rights_t *needrightsp, 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, cap_rights_t *needrightsp, - struct file **fpp); +int fget_only_user(struct filedesc *fdp, int fd, + const cap_rights_t *needrightsp, struct file **fpp); #define fput_only_user(fdp, fp) ({ \ MPASS(FILEDESC_IS_ONLY_USER(fdp)); \ MPASS(refcount_load(&fp->f_count) > 0); \ diff --git a/sys/sys/namei.h b/sys/sys/namei.h index 2eb5d49afa62..8ae9f0d786d6 100644 --- a/sys/sys/namei.h +++ b/sys/sys/namei.h @@ -72,7 +72,7 @@ struct nameidata { */ const char *ni_dirp; /* pathname pointer */ enum uio_seg ni_segflg; /* location of pathname */ - cap_rights_t *ni_rightsneeded; /* rights required to look up vnode */ + const cap_rights_t *ni_rightsneeded; /* rights needed to look up vnode */ /* * Arguments to lookup. */ @@ -250,7 +250,7 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, #define NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, startdir, rightsp, td) \ do { \ struct nameidata *_ndp = (ndp); \ - cap_rights_t *_rightsp = (rightsp); \ + const cap_rights_t *_rightsp = (rightsp); \ MPASS(_rightsp != NULL); \ NDINIT_PREFILL(_ndp); \ NDINIT_DBG(_ndp); \ diff --git a/sys/sys/procdesc.h b/sys/sys/procdesc.h index ca26d65d5417..4e8b06fb7377 100644 --- a/sys/sys/procdesc.h +++ b/sys/sys/procdesc.h @@ -94,8 +94,10 @@ struct procdesc { * In-kernel interfaces to process descriptors. */ int procdesc_exit(struct proc *); -int procdesc_find(struct thread *, int fd, cap_rights_t *, struct proc **); -int kern_pdgetpid(struct thread *, int fd, cap_rights_t *, pid_t *pidp); +int procdesc_find(struct thread *, int fd, const cap_rights_t *, + struct proc **); +int kern_pdgetpid(struct thread *, int fd, const cap_rights_t *, + pid_t *pidp); void procdesc_new(struct proc *, int); void procdesc_finit(struct procdesc *, struct file *); pid_t procdesc_pid(struct file *); diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index e7ad086818f4..d2b5ac867a46 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -418,7 +418,7 @@ struct uio; */ int getsockaddr(struct sockaddr **namp, const struct sockaddr *uaddr, size_t len); -int getsock_cap(struct thread *td, int fd, cap_rights_t *rightsp, +int getsock_cap(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp, u_int *fflagp, struct filecaps *havecaps); void soabort(struct socket *so); int soaccept(struct socket *so, struct sockaddr **nam); From nobody Tue Feb 24 16:04: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 4fL2bs448Rz6SPTc for ; Tue, 24 Feb 2026 16:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2bs1WDpz3pcY for ; Tue, 24 Feb 2026 16:04:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=45SaOOZPgBl9yy6q0NBei8U/DMAIVTi87hD3+URpI3E=; b=I7Dz4jLZdTHSoE0mrKuLG/wdLPXpXdyLwaJakHKLjO8HBNzYa+YlqU0A5m1P/YianS1ak0 5wNvKFzswWA1RVcF/u7Aw8vFNd88kz264A60FG8BkRXEv1QYHAQvhYinoeCyqLlDdzs0CX 3rVlhRw2xoID41WDi8PxFPYMcOds9/KfqVvwUJDY8/zdmc0wyBwjUejjmYjKGH6a218DIW LGcbSoiFx8tQ7vxSS+B1XMp9a9yi+WmlzICPp55EtsnJ9Oml7hkzut0sJWYDX2WVbkubj7 hUv/DAEhjY1ZDCZ4oVAJcsjI/ewSsxYWt5SVOg/qveYVVwy6MKdRSju2ES0xZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949081; a=rsa-sha256; cv=none; b=ovaPfurwb8vBo7uFeZ7njLXBAcVnknn/HSaRtSslcuMeUpUiJJzTjDdAArEp+iMEQNvxbn nwRRjm6D9mMq1ob+PoVz/bQv/hrTS1ZUyoCHHtUHUk8arqNV9RYYFUU9PG8wJM3JVc03yd asumjl0jk44wPHwScdOQjDuRy8MCFOHDtCfzRhUel30YcpnuqXSF4YCsdNeKXoDrXdtXoS /ipRu8WBelU0yduSocQY33+dwMfRfhq8Tj8NwTDMNoqrLP5nGDuJ6tYPaVly7SirTc/+FA tPiFwu3nhsCVW9Tfgr79/dFIjvLAwjCQiegsNKV1eHorOcED3nMg3SpST3Dytw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=45SaOOZPgBl9yy6q0NBei8U/DMAIVTi87hD3+URpI3E=; b=lwSrGHGaIzxQ+QXwuS2nLuKM2yc+WLqLd0iVhPghQrYAlWcLJHy5EiKVQnrBucdy9fma5K JdeB31QkwuPx/7r/iQ80gliMZfWCceHCv/63p3Pz9DReLZR8wHN8d841kYGBjklAqfuV3q 8MaNMWzjxIsJVGi33jOrDf7s/NsXCs/YgFod4zlS+QzFDWOTXSzCJulirNvWTyG1mT2FNs PK1L1fNMgiuTIdFwVry3mmUB379c8crkDrWL3E6i5jQ1m17lD24mNOIzWp/8Q3HfSDvYEg DlAZo0glCp0xQTzxK7QB6RXB87sGn3CANPVLbe/HnZA13nVHfyDy8Q5vQvRBCQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2bs14ndz6Wg for ; Tue, 24 Feb 2026 16:04:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2788b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 82cee749b523 - releng/13.5 - 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/releng/13.5 X-Git-Reftype: branch X-Git-Commit: 82cee749b5230ac906a30ad6bf5a0bababbe00e9 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:41 +0000 Message-Id: <699dcc19.2788b.1ce1070f@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=82cee749b5230ac906a30ad6bf5a0bababbe00e9 commit 82cee749b5230ac906a30ad6bf5a0bababbe00e9 Author: Mark Johnston AuthorDate: 2026-02-09 16:47:16 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 01:48:38 +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. Approved by: so PR: 262180 Reviewed by: kib MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D50371 (cherry picked from commit f35525ff2053e026a423e852136d73ed93c95803) (cherry picked from commit f7cbcb19a9ecf606172d6d6c472b5ba7130a398b) --- sys/compat/cloudabi/cloudabi_fd.c | 2 +- sys/fs/fdescfs/fdesc_vnops.c | 4 +- sys/kern/kern_descrip.c | 89 +++++++++++++++++++++++++++++---------- 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/file.h | 2 +- sys/sys/filedesc.h | 8 +++- sys/sys/namei.h | 1 + 11 files changed, 110 insertions(+), 46 deletions(-) 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 f37eab12da70..e2e1ecae9a20 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, @@ -471,6 +471,8 @@ kern_fcntl_freebsd(struct thread *td, int fd, int cmd, long arg) return (error); } +#define FD_RESOLVE_BENEATH 2 + int kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) { @@ -520,7 +522,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 +535,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 +2168,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 +3022,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 +3036,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 +3101,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 +3111,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 +3130,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 +3166,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 +3186,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 +3207,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 +3221,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 +3247,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 +3285,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 +3295,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 +3314,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 +3353,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 +3371,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 +3383,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 +3395,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 +3422,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 +3590,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 +3645,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 +3707,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 e6cf39c09f19..ebab765994a4 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -4364,17 +4364,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 51f26b843c45..ea7361b0839a 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -373,7 +373,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; @@ -887,12 +887,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); @@ -1243,6 +1248,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) { @@ -1933,7 +1942,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); } @@ -4316,12 +4325,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); @@ -4358,7 +4368,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/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 24 16:04: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 4fL2bt3jg8z6SPrH for ; Tue, 24 Feb 2026 16:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2bt2ZR7z3pg7 for ; Tue, 24 Feb 2026 16:04:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949082; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/6VW+lW7SKkoWcb2QM1AWBBYQzn9wMUnR434Zk4AALE=; b=BBM35zt6/Xr/QbtPr/gSzaTzNUx48ssiXI3cJRNWWl3R2LbTAqHspIK2fgq7+tQd+pmGqQ xzZPRqv7QmuFbkz7Ckzh9CrmK+q9HxP2UtJ0GqhqGRrHav9wiKQdBTdtjb023+A4GY/hg4 HcGabCFGWu44oYBogrKnt3YRlFVN5ajKHJiF+AO0j1hIb0AQj7g1GazWb94M5O+18p2u+n T65fxhf7pBuTV5Ozi4wtilW+uHnfadJsuEP0jm75bt6B5sEE1OyzNPV12j6bWnVTg9k+f3 RduTpR2ECEgjnoWBFU3avITMSWSLtIi0aMxEv0yqophPsV+T7xY6AKg7+V2u4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949082; a=rsa-sha256; cv=none; b=gybPRw3Y+Z3KScST0xBc7mJygxf7gn2LStDmXNzWAW6N9uGRJfXf5xIDTYKmLxsGnlZzfb OkOLCj/AJcSL1rhhnScKT56Mulr9OHe9EWCc7zj+Roc7sICgOg1PNf3PUVxTM2Po78YYFa w8F31kL+f7ne3i7qf/I7izmE9CxSiCpA4wrgQF7ZtdpHWBJ4W5W+nn+KSYVddMfVOMiia3 vdJAe2XZshrOsalSu+28zM1olX8SiU6H6LJqncTwm0tnoHFH+UkFLcmxlSt2ckFouOYVra oRYU6c1SQE31In5NHtVFx26oO0t5NRXMU2f7rcJ+ke6qAzvqRG+fY/1jpULBTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949082; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/6VW+lW7SKkoWcb2QM1AWBBYQzn9wMUnR434Zk4AALE=; b=ctp0C4y8BUWnh/7YWZkWJyBTc8qkbbwsn4F1pGNIzJajM03HoyoWdHGE+uNFp+lk84oAvv uVngV52eevglJ8Vl4hL49BUiOCUozuxP3JcJimkN0WvKCJ1DUoSz0q9KuZw1dK4stYIA1E 1J4azYHT3Os1WHEN2zE7/92cf+oWb+K0tTXEXKynYFEZWAFw1VQrw9CeelpK1b61vDJjbA Rf4Hf5MSXyHutwIe1TG2CmeO0d/QYyz5Mnl2Ndq1Jx49RoOZzTx7d1JOrVISucppHkGDcs m6Ea0JWkfu5NL41Pq0IG4WMFLkFWFJigap328FYxeVi3aW4MGrpQg4wlQg4JuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2bt1xjfz6ZD for ; Tue, 24 Feb 2026 16:04:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 275b0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: e6b96891ef7c - releng/13.5 - 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/releng/13.5 X-Git-Reftype: branch X-Git-Commit: e6b96891ef7c44b5413164a05a8c0a07eaaf59e3 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:42 +0000 Message-Id: <699dcc1a.275b0.30339030@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e6b96891ef7c44b5413164a05a8c0a07eaaf59e3 commit e6b96891ef7c44b5413164a05a8c0a07eaaf59e3 Author: Mark Johnston AuthorDate: 2025-06-24 20:05:37 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 01:48:38 +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. Approved by: so PR: 262179 Reviewed by: kib MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D50371 (cherry picked from commit 350ba9672a7f4f16e30534a603df577dfd083b3f) (cherry picked from commit 73530e4c2ea92564e393e0497f13dfac251a41b7) --- 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 Tue Feb 24 16:04: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 4fL2bw1sMXz6SQ0K for ; Tue, 24 Feb 2026 16:04:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2bv3sR0z3pZg for ; Tue, 24 Feb 2026 16:04:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949083; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OyUYX9ny0ZnsgxQH9iZT9WyqKvv4YQIoL9MAuXPWsUo=; b=pnu/KgvZGXRvTZrpuFqMVtidud209qHynY/RdUytzzZyAzZTCV/7Ky67XO3EF2Ct79xnDS IPDGebPdGGNCJIcxCHqjAQovnBy7uJSGixjRbgEEPK0HQEfkURQh7giENiYKJHpcpvkew1 163lV5zEsKsnKkgY0rAvvgpNCjTgHxqe8KRIaQGgFM1OIpQNi9BZ39PViKYqxVmHD2K2RY LNGBpAdUD4SW+HnC4LjZsBcRm6d4qoln5pmyJnBqHDrvZtUb/Sjp9lp2+QWisN2TuQ4Wf5 GzjHqwCcKXes05Nroe4S2Ww2zlEzRER781dg3VSHMuKOucbm/S8GoiA6ZR0uoA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949083; a=rsa-sha256; cv=none; b=w0CJts4bXvWVrnkghF7rThKiuR1e9m+g0c8TY+5r2kdl/8XCIvh8hWf0AmnUzfXGgjbzqZ 1DGNZKLZHKVi13bPY6nZJO3F4ewwPweNxhWLQN+Fcg8h5zs15iOCNjNVjjlnZl85hh+Y36 LMcWPH9QbYRLYHIIyLVOdwF1Tp/7P1TOrs2NdaY/IHjKppoteRyDavmdw085Ki7geQNznz MNHegiSBkPmEcew72EOKJB0AbNjik7jQPieRjmK/c+6OSOEBWCQqp0ER8LfvF9R8p7NQ9d Tly5x7oVp1zt5Ew2cYLUu4BldOCeholLFDgfkP1ziuRlzgyt9XFEx/a+i8Stxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949083; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OyUYX9ny0ZnsgxQH9iZT9WyqKvv4YQIoL9MAuXPWsUo=; b=k/x+VpLFrmAATMJHDSTQHVX/Z/+zQYe8YT505XZ7gbUuK+aqAe/154yHjdjWfVUNUG6DNB vdy0PBOGMReHMz66lN0EjoxV9GISG7goMKMQjKP5b9kUMEVrxq5PE5Ltuglm9QR+LIHSot aQB5cjAhhZmQCnQ0KyfGA8eOml7zi7birIEFf3LNKwCoXKs8WiQXZvTxWsn4UWieHm+6SN jtN4RNfBON0tcedwTOGCaDEbt9snKPTK3afqS4JlLkVpubU7hK4KX0jIoacEy6ARPHN65r fcoLdLfpzMx/Fqdwot8vQhYbKn4YoVQDmwaBhMklZVEJkDye0sCdyqClke6kUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2bv2mc3z6xk for ; Tue, 24 Feb 2026 16:04:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 275b4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: ecec5410875f - releng/13.5 - 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/releng/13.5 X-Git-Reftype: branch X-Git-Commit: ecec5410875f7ffcfdd3d6d5a2cac445203274b2 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:43 +0000 Message-Id: <699dcc1b.275b4.7098e4ce@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ecec5410875f7ffcfdd3d6d5a2cac445203274b2 commit ecec5410875f7ffcfdd3d6d5a2cac445203274b2 Author: Mark Johnston AuthorDate: 2025-06-24 20:08:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 01:48:38 +0000 unix/tests: Add a regression test for fd transfer across jails Approved by: so MFC after: 3 weeks (cherry picked from commit 5843b8ee02e99527c28f579acfc1f48e10033529) (cherry picked from commit c9977132865ec06d2d3e1f404e946836019ff7a2) --- 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..d8f6973cd3b0 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) & 2) == 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) & 2) == 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 Tue Feb 24 16:04: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 4fL2bx0ZkJz6SPTf for ; Tue, 24 Feb 2026 16:04:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2bw64YGz3pgd for ; Tue, 24 Feb 2026 16:04:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k0yoUTLFzDPjg28hSWM6JuYdaMNcIBZAbYrgieIrHdE=; b=pdX1ugdS9c8ota7RTR90Vot/8fpQnm02bO4oR8+XKMY1hrwxqCheEDFNbpFkvZuiLgU5mO Ni/0CdaKgvI4cJGHALg+Nr/E8qUy7pAHtYfzQhvnW3D1WwQaq5SHWnqu8ducHr8dy49Hb3 EK/JmKK1w9AbbJr4HBYVzkJXCdcajJdv7tFhreiXxzKG/J2k0liN8aawdaslHbG1u9BjUf 4cCP8DSAg0/H5KPU/TEEKiMtjmz1QrUSvEnmBSiNDzpInVIUWyVTG06n0gu5xaXGtVT2MC mNyp9m6Nlyxmn3hGYL0ltXJmqmXZcOdO+hDJT0XfkItZTTRq+DmZEDxPPl/EVA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949084; a=rsa-sha256; cv=none; b=gGwhctg9YqkiYGxLVSe+5V5guxOOCZIUlL786lbOfaYESPg6lu/M2L8cuKh+E5AS3EL4gB 1W9UMpFGjYsPXHTNIzBL0zvlM16LUOUl/epC8hHfopcz9mTd6wzCATytDo88GhVQRsvqvd rv+lDb2Wpejm5yQT0SyAcNkBxYvpb7EZ6kfcM0/XFREDRMPB0i8pgPoqwanlsty1rB8D3l f15tgjHRSWIMtZKSbCqBIIOD4UmmxpOVllDNrrj6Xb0kcB7KoWQP9JmnnSVRxC11Rq0XTp GrM2X9BzljYDKRR2wAUdC1zbO5PmSapzOKiSRgGpSLf8lxZgeKLqs/ItqxTlnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k0yoUTLFzDPjg28hSWM6JuYdaMNcIBZAbYrgieIrHdE=; b=nKiKrjMeGIVI92tiQU/8dCM6j4GVYx+pZAmC00ePbC7dkxOXok1qUBlYIJol1tqUe2kj1B eb/+hjyjU2mC0vtgkwQOxyjWz8Flmjx51CIdMRyvD+aycP+mM+x8p0PVkQg3jPzdpxsS/P Ms/AKXcCKshUyudWGjmcLHUZH0+ZigE3l2yLcnzHHxjfbIWNnapLM8Wp5OcdU4HN4AWuXH 948bW6FA7fKjoYkrojfD8svf8qQzeK1FOrlwy+eeWXtW04SQML/3EqzV/4VLoNPHMUdS01 tm+5ehgGM4g1NKugPHK+CwMoEkeOWm672Hj+pS4+6zm8FVQspQbspYkWnEh7fA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2bw3bWsz7G6 for ; Tue, 24 Feb 2026 16:04:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2788f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 933abe4a1940 - releng/13.5 - 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/releng/13.5 X-Git-Reftype: branch X-Git-Commit: 933abe4a194056f659c175a19da9afc3b46e9ff1 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:44 +0000 Message-Id: <699dcc1c.2788f.7536fe8b@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=933abe4a194056f659c175a19da9afc3b46e9ff1 commit 933abe4a194056f659c175a19da9afc3b46e9ff1 Author: Mark Johnston AuthorDate: 2025-06-25 12:50:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 01:48:38 +0000 amd64/conf: Remove a config committed by accident Approved by: so 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 3b0f13ca60981186b1455d1e506ef4365054acc3) --- 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 24 16:04: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 4fL2bx70Ygz6SQ0L for ; Tue, 24 Feb 2026 16:04:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2bx5LfXz3pb9 for ; Tue, 24 Feb 2026 16:04:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3OUoJus7hoi7wkrUUAQA0IKzQs4daehHuijhvXTQHdQ=; b=B9LzLJx/fccjRFlIzxruIG4pCUE+KSkhjlqWA/X6LZ2l3Z9AIdkuJ8Hg3JeKG9DGn1w+8S /Bs3jRSlrx/1+0xN9x/EmLBhUKKvKuiDDsw+r7HjIFXWZpkMWqmLKupVloXTnPkUK8wiJE 9J/ZRJHedPE631+uNwhYmU+YkSRs5XR2kZ1IgX3HVlEKPXeTpFrDS2I2QinGWnrl9/gCXr 9YX20LYD6gsKV29Ua35oVtxebkSOKjwvPFx1Ln2ojPeJJQ4cXFwOP9LEPBKIXVKn734Tax UK6aLo7nHVmAGmlofTyFmfSytv0V0SUUdYESGRmeRV+XrGSeyg+x/fzVzemuNg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949085; a=rsa-sha256; cv=none; b=I31V8pXZ2mKkp5CeC/CUyJzH3ibBF05tmVyLdTqxafY0ey2S01raahgmWDwFUvsn0x6Avk 06ej3S9O2zPgQu4NXv1sf9tcvnu8ADQE6sNBug6Ufa6kSrR2bFuleT9jPtOPD1G1/JkUVh fS2W9qZFFhHcmLhexysPdHZZXCcQvDCE/1VxEbDsEC6JstlJ0LfU6B7FSAR4onCIFUV0Xh 90VI1isb6QVyVNqnAK9rSmiN0ipNkRx/+c4Bungcue1jMs1CMdeoGiAmg2ia+7U/lwaTKF 1D6CxI+Fr1KJMIxtiSPs8ePFvtI8xjRNvtn/DGh4WNx9zSILqJ1zpPYNShq3Lw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3OUoJus7hoi7wkrUUAQA0IKzQs4daehHuijhvXTQHdQ=; b=L/+fZMCCMch6uQjUTTNExxcWsN2zZgrTEAWr2jfj9Xjo3aHocR2F4M4slSluEB08DOJGRN wcZWkIho6Cs4gviYRuekBLiry4CiZqY36tr+1K3ViLuoDrzE/mJXlrGWbip8wAWojRL5Zn O4pTBRbrZ8GRvqAsH5eMVI3/JSX3w0wbXwLrPCKz4GMLwJBOh3+mhfimPizedAqXz+K+H0 wJwtxSP246UV1stGZHp5T38Zr67uUWYYp4+IA8k5vHhWtFS4zdGZgt37KfIR1lYm6oJzjd MKdBPSDoX9Re6zjvLbg1CtmBb7HuB9ms4wJcEq5vRBaPjuBQ3oft9PmUhu3fqg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2bx4QJvz70N for ; Tue, 24 Feb 2026 16:04:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2771b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c2e2bfbd9e09 - releng/13.5 - rtsock: Fix stack overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/13.5 X-Git-Reftype: branch X-Git-Commit: c2e2bfbd9e09026790deb5c930b6d48c042cdffe Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:45 +0000 Message-Id: <699dcc1d.2771b.4218b73@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c2e2bfbd9e09026790deb5c930b6d48c042cdffe commit c2e2bfbd9e09026790deb5c930b6d48c042cdffe Author: Mark Johnston AuthorDate: 2026-02-23 15:52:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:03:49 +0000 rtsock: Fix stack overflow Approved by: so Security: FreeBSD-SA-26:05.route Security: CVE-2026-3038 Fixes: 92be2847e845 ("rtsock: Avoid copying uninitialized padding bytes") (cherry picked from commit f3be7df50f01d9a6ead9f27b55bb4dfd7dc4f9d2) (cherry picked from commit 8b476ffc4ea3f82f758714fee0289209bc980782) --- sys/net/rtsock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index d78a60070615..24b9007a987f 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1885,8 +1885,8 @@ rtsock_msg_buffer(int type, struct rt_addrinfo *rtinfo, struct walkarg *w, int * #endif dlen = SA_SIZE(sa); if (cp != NULL && buflen >= dlen) { - KASSERT(dlen <= sizeof(ss), - ("%s: sockaddr size overflow", __func__)); + if (sa->sa_len > sizeof(ss)) + return (EINVAL); bzero(&ss, sizeof(ss)); bcopy(sa, &ss, sa->sa_len); sa = (struct sockaddr *)&ss; From nobody Tue Feb 24 16:04: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 4fL2bz0STlz6SPtq for ; Tue, 24 Feb 2026 16:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fL2by6CKWz3ptn for ; Tue, 24 Feb 2026 16:04:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949086; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h3TnH5t1yufyrTvFMM1vDZYr14DzrqSHQDmXonZkNSg=; b=WxCmtShnkmuy4ATFvnOpR9OtUQ4y5uUHmv/Gd/cbswwPwmqTqUDYy+kvvl3vV81WyW6k6k g90LUcHFlOaVh44GPfRr9Prca7zqZ88/QX0ZrClly6l4MZvp3HaXs6JQOGfthcq9SQlKka hdL88mnpTjC7ROGkFG1U72cnFA8iGoeMM/X9/tI3foLKR+R3kW8JO1aMkJZD565Ekl7ZU/ pr8S4fFW/6+JBWOww8I2bAgAD+M5i1BsyW4UJtDzOudy5RlBNSXZ8R3FQPu04/jbHD7lBX hEq/lXz2upGkCBo1x6T1PCTmAwbWiWPHppbKGPm5AVZ0vjs51LanO2sXpfZaow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771949086; a=rsa-sha256; cv=none; b=f8igOkw+MhEdG8qR+UtRBw59cImS12vTC741BUiA3pE+uSRh2DTNqSoRvIbzDnO+FJDzRh qErsRrvkN8QzyavbGaiivKlMcE1EvbcwpCUvM5cMO7anR5oGLLNyXIOu4YFQwEh8BJiKmf RUJgRyzl3TLfFlwdnwFmbIIcYJBn9yIL3ZJU8196Utneed+sojbBxog62zxrvRLoUZhMvT GgOWOzvn0wO57L4dngmRmlN94LDyj4371M7Lc2MCuSKS8AAMkbz0uiRLhawAQ18QQoaifU r0LD42Tt7A9Za1VCtcXxd386uScf9xVYSZMSHeeFcWg1aD/7m4Tu87wVugellQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771949086; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h3TnH5t1yufyrTvFMM1vDZYr14DzrqSHQDmXonZkNSg=; b=vmIU7vS+ktMpAq1j2pufcptS5elQlDVoYh2w9sdTuWtt6ZsWnYO+DNAmet0oykN4AM7agG NrLGibXn0MDDLyUTHy0Y90qWHhD5qpTpiE8YKUKCIKTMYh/2BoUg2xT0zhj2VdIHatbKPB CuVyQUclf/iQ4uXD570MILAtSjRy8iBIlEBnoA8dEb7MB6uKWSxk33n5t1SxTVo4s6EYvO BgScP0nXfP23XiZP6Wa52g08Ncyt6nj9GzH7ApXBtdQ0OUr2ltB+8XdjcLnD2UD+PsvV8U z8eWp5rOX/bFlq+oiWcPJb+fF7TeWDc+haNvRyLii8c6TlvpEXt9mccVAsWTzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fL2by588Tz6Wk for ; Tue, 24 Feb 2026 16:04:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27893 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 16:04:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9d3e842358b4 - releng/13.5 - 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/13.5 X-Git-Reftype: branch X-Git-Commit: 9d3e842358b4b776a0e4bbab921695ac35f3baa3 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 16:04:46 +0000 Message-Id: <699dcc1e.27893.2b6e5eb7@gitrepo.freebsd.org> The branch releng/13.5 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9d3e842358b4b776a0e4bbab921695ac35f3baa3 commit 9d3e842358b4b776a0e4bbab921695ac35f3baa3 Author: Mark Johnston AuthorDate: 2026-02-24 15:58:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:04:27 +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 13a3cbcb3bc8..629e14fdcecc 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. +20260224: + 13.5-RELEASE-p10 SA-26:04.jail + SA-26:05.route + + Jail chroot escape via fd exchange with a different jail. [SA-26:04.jail] + + Local DoS and possible privilege escalation via routing sockets. [SA-26:05.route] + 20260127: 13.5-RELEASE-p9 SA-26:01.openssl SA-26:02.jail diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 52678a1e95aa..4506455b52a2 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="13.5" -BRANCH="RELEASE-p9" +BRANCH="RELEASE-p10" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Tue Feb 24 21:41: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 4fLB441zr0z6T1pl for ; Tue, 24 Feb 2026 21:41:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLB441Pt6z42M7 for ; Tue, 24 Feb 2026 21:41:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771969268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/9qv4vm8ER+gu06Q8VOe+0CbW1SYBI2ZLXp3Uzxj4Wk=; b=pB8Anx8oeu3jPX0+hZRGVUFXPzlLzdI81Ig5VwOXh53nUiIYLvYp2++Buq2k3OBzzEMLJK eElQAoJ89HEk2Duz764hwU+ci6T/qUNZL5obSVSnb9OTKvVN/2e2ZtIuhdz5AAvsgjABMK kGmZbwxyASV0mkvPheBCkxHOn8J0ixbjGDPWm24zhRCHSVW3IsRqgBMInS78pE42Tw+xnw 8tbFsRMKQZiQzrzIIxfkq/zuSUk8zRD2l5JYNTFY+pw7mfusBr01Xzr+5xsNFi7G3WsmC7 YFYFj2KunU/EE+pVan7rMkfvybosrNJeNTxi1BW4q5b2ky4lDPstPmHcCk700w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771969268; a=rsa-sha256; cv=none; b=G2qG6XE99y7xMlniCiSrgaq1DSa1okRfdWyt0cTHY+yLGZe/ZcyHhjV7ALlIuF/wjOyEvX ujhSZBkfhL9AmeXgEp22EWIRsrLg4zkwpa8gAVCrAlcFStp0U+duJvtHoggD5MmPrBJnar pLNSx3SBZzTLsRj490iAYtkZhUtE/oPS0TouLgpnBUixi6A0R7UYB4zCe+Vd8YPkNHa48u xChojdlHgO5esDu2/02jIkv/mj2gUnqDSFnFEBG0RxsuvKbtppEPgWrhFIoCN1kvv2JZuG YuVn/BWStT0O/Sqzcf5619mSsbNzB1DHxcXoV+x4MlPnq2r7h/7g5+I9g1MdLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771969268; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/9qv4vm8ER+gu06Q8VOe+0CbW1SYBI2ZLXp3Uzxj4Wk=; b=fJIdxSrf2wAdQlkl6HsftKdJdAqnh7wvBc+n/rlePZvFFdriwdS4/pWcRQF5Qx0vnX7fMT UECSESnLAx5CTc8QEU+/Vr40W8MKnL5X9HV6lsutTMwzYTG1645pkbIaHrwOQQl7CT0756 8xBxwbcybhf4lHQaLm0Ztb+lRyQy+1AgVw4nCgjDbRqoOZCB0M+4p09sXhVQGAsPhmKRBq jd0dMX8OgXtVg/cbXypZNqQdjLVBQ44kkY8GP0sR12f4zSPz4JFSP6gXdU0sdBPfXdnRhC rBt05z6BJJ70+VA2sKOu/2qqeUiRuBbnNVQkRJ0Mwivi/gPHd6glrit6jKSu1w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLB440pyyzZcW for ; Tue, 24 Feb 2026 21:41:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3227a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 21:41:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: 56a6305557db - stable/15 - ahci: Restrict NVMe redirection by BAR 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: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 56a6305557db0d545c4f358ea8e154a657d95dfc Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 21:41:08 +0000 Message-Id: <699e1af4.3227a.29d13108@gitrepo.freebsd.org> The branch stable/15 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=56a6305557db0d545c4f358ea8e154a657d95dfc commit 56a6305557db0d545c4f358ea8e154a657d95dfc Author: Alexander Motin AuthorDate: 2026-02-09 19:23:26 +0000 Commit: Alexander Motin CommitDate: 2026-02-24 21:40:41 +0000 ahci: Restrict NVMe redirection by BAR size Attempts to access vendor-specific registers on emulator of older Intel hardware was reported to confuse one. Since the redirection obviously require BAR size bigger than normal 2KB of AHCI, add the condition, similar to what Linux is doing. Requested by: kib MFC after: 2 weeks (cherry picked from commit b9d3945831fc7a60f2065c7a0afc747dc5653c9f) --- sys/dev/ahci/ahci_pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/ahci/ahci_pci.c b/sys/dev/ahci/ahci_pci.c index 2b4cb37275a6..ed1b734f70be 100644 --- a/sys/dev/ahci/ahci_pci.c +++ b/sys/dev/ahci/ahci_pci.c @@ -523,7 +523,8 @@ ahci_pci_attach(device_t dev) * here, or the user has to change the mode in the BIOS * from RST to AHCI. */ - if (pci_get_vendor(dev) == 0x8086) { + if (pci_get_vendor(dev) == 0x8086 && + rman_get_size(ctlr->r_mem) >= 512 * 1024) { uint32_t vscap; vscap = ATA_INL(ctlr->r_mem, AHCI_VSCAP); From nobody Tue Feb 24 21:45: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 4fLB8Z64Hlz6T24Y for ; Tue, 24 Feb 2026 21:45:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLB8Z5GpTz42rt for ; Tue, 24 Feb 2026 21:45:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771969502; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p9H8ukiA9tLvlj5KsAbBCAlgnk3Z28/t4KJOet9r+7A=; b=tImJLIu4ozX0MTf6vV7uMLYVLgp6f61D8w+X8Va3Bjn+4t7ARuVBZM8JRsabf/k/RzN4dO 9xNT+n9ATdjSwXhZfhVkFIYjdPvBSRf7fNVaFcrKM2ufb2OZJPn8eGAw/7F3NV4HMLh47S k3C5zeWpg1EAkRv71txOnsOzHES7v8HeS2aEP5TZska7wDdhzHQPzUFKOqE6XbLVPgpTxv BA3DpIyz1/CmSMivtvTXc7+m9+hA+iyNND94A043Tsqhpq6ns26QFH92EkYc7NcSIKYzSY aaD35cdP97NUltpIrs5L2LeX9orFW2ehGk6FtnJiCZVN+V6JN0fvp0U43ptZEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771969502; a=rsa-sha256; cv=none; b=mOGb06PU+aGKOIRgCIi7h9Ercdd0WuShJ0l4oIUDQfzjxixYCBICQuDUdME/oWPWb/TzLI UppgGWpc51I4gadpVQvg6ZSRjHp9tQPBBJyW9w2b1MSr8K2qnYbgu/YyycSbKJuclRzR3Z rxrGa4Kf+1h1Rrho4X7mauSXLKKgZz6Hip9Ua0Q21yxZJe3UaO8ufStdh7rLx040hamEDH 3W7RE7NbYIQigvoafueFz92mBNeUqVFu40yBdNNIQYrDKPmoWWK0j26GUjUmJmKR90+M4u j8nFwmZPs6qlBlOEwnUd4CjG/FlrdUOJ6vWo5ZAOk5GkEOh658K2JizzhSVj5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771969502; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p9H8ukiA9tLvlj5KsAbBCAlgnk3Z28/t4KJOet9r+7A=; b=M0Lf5WXqx7fNxU/ufDQtJ/Bmfx9VnPzXT/gaawxLOg1w7tC/zf4WylDCKZ0sNKp9wwKu5t l1a+5egyep991DJqzbropGm4kJDr7+mRkuNvuX/vI5lNq5sVhO8U9aL2gLHSPG4lJRI+Az pEwJY6BOMnhJ/gY6D0u4TbvnrzWQb+DhRziOATW+EIPPRJulXjpLaCDlrGrgFHJF27WZG3 YxvATqAfdmFLYa41HrDkNw7/9zQ1Vzz7VWmR+tpp012HDAvL4GFlLxlegJxo1iAAMXhmCX zfld0wIRUTAs1Y5FZELNdRgT2xIJgO8vEVWiOvVT+kHeKYNa1zqUBOUimCel6g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLB8Z4c5kzZHQ for ; Tue, 24 Feb 2026 21:45:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32bb9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 21:45:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: aabd5243fb97 - stable/14 - ahci: Restrict NVMe redirection by BAR 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: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: aabd5243fb97979d33a7eece4f7cca18ffd82a95 Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 21:45:02 +0000 Message-Id: <699e1bde.32bb9.731a65b1@gitrepo.freebsd.org> The branch stable/14 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=aabd5243fb97979d33a7eece4f7cca18ffd82a95 commit aabd5243fb97979d33a7eece4f7cca18ffd82a95 Author: Alexander Motin AuthorDate: 2026-02-09 19:23:26 +0000 Commit: Alexander Motin CommitDate: 2026-02-24 21:43:36 +0000 ahci: Restrict NVMe redirection by BAR size Attempts to access vendor-specific registers on emulator of older Intel hardware was reported to confuse one. Since the redirection obviously require BAR size bigger than normal 2KB of AHCI, add the condition, similar to what Linux is doing. Requested by: kib MFC after: 2 weeks (cherry picked from commit b9d3945831fc7a60f2065c7a0afc747dc5653c9f) --- sys/dev/ahci/ahci_pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/ahci/ahci_pci.c b/sys/dev/ahci/ahci_pci.c index 3de1f6a79ef5..d708951efb05 100644 --- a/sys/dev/ahci/ahci_pci.c +++ b/sys/dev/ahci/ahci_pci.c @@ -520,7 +520,8 @@ ahci_pci_attach(device_t dev) * here, or the user has to change the mode in the BIOS * from RST to AHCI. */ - if (pci_get_vendor(dev) == 0x8086) { + if (pci_get_vendor(dev) == 0x8086 && + rman_get_size(ctlr->r_mem) >= 512 * 1024) { uint32_t vscap; vscap = ATA_INL(ctlr->r_mem, AHCI_VSCAP); From nobody Tue Feb 24 22:08: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 4fLBgS4jzqz6T4wV for ; Tue, 24 Feb 2026 22:08:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLBgS3xV6z451l for ; Tue, 24 Feb 2026 22:08:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771970900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1ie7aitw7nPfm/soK14sUqv6moeLBVrCoHP1GEWUIHA=; b=ogEk/3BQwNF8SmtrjUui+ebK6pz4tgvp8aTsEAjtt5RBD9f/+4R48UIVnOIReM3H/axI8m pSY8x3RZ/6nEAgrovwqPjdGF5UWgazQcO+N/thC3Hcj86mv2XxAZ9P7ZSmvF+soXHEDq7K 8gB40M/eL08c0lDIMDEf+5hylE3Q1a0cnCcNqko61ltWOvDDgl88czP6AHyV32ogAk2sSc JNaVoMWzf9LX+GYHbsUuMj+JqkDXp0Q0t2VP0H1Zux2YfnaB7/1KFl8HIayZ49VnURYF9/ XE+Ita8MI/Nb6HLdViibIhkr5cyG2x8fiu2AN+2V0zem4RoolMwKUqFkAmAWTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771970900; a=rsa-sha256; cv=none; b=K1TAEbUjU6fGNMHOX5NtD6XC832PP9T3JRnLJth++ORYBSMQ8/iPwpTNMk7WbarKNdr8by Dv6MtL70wT0U3CQiVqMFkpx/fpqnBer/PfWYuXrLCcHO8mzpalc46UUWU1w4FQTPxgqb+t dJt0Cd8nHrdFDQS+2xK+2hZCxxYBsthGCpqujLjtcI+0s/BhxGZgban4K+cpzG50KB9/3Y Bt92HuK0SiWOEIehRpYGJGCGPxuLhjcwO2mxvLmntZOTAEbsaYKHazjfEdcrdY2OV9cPUk r3PN8uy9GvO3Y9a6ZyzeeJkqgygRKsr8+B8GPpIAAqyN7MzVaezPU8NVLJesPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771970900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1ie7aitw7nPfm/soK14sUqv6moeLBVrCoHP1GEWUIHA=; b=TZsVnGaK3W7+qNHQpitL0/Hce4PDzkt60uk4+WC3TvVyHLsa4pLWEg3J2XAbSAdp+9aO5c SGfYgVTYvYDmzE2kzuZh/T7Co+OWsIcKbvVWS3ueSqsnweh//0z9sB+eBnjy8vcoZT1FVW xpAbXngaWYi91pvP+XIq3aBQl2w/0hF1fpYy5AiePjAtHVvbZPR268DmlQsQISV383DfT7 PRZupmdfXfsFTCIx5/9Q6yQsUW3jhNZUrO9zZYLMnlz4ujGHHUOPvkXn4M9WjWh3NJ2ERl GZbl0A08N1I5zpLhULTX3V7XBA/FYKTYClnfjfkmd6m16s3iHC7+YKsWLXxrQQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLBgS3WCfzZmm for ; Tue, 24 Feb 2026 22:08:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36a8c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 24 Feb 2026 22:08:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 5153ca331b44 - stable/14 - vfs_mount.c: Don't call VFS_MOUNT() if only exports are being updated List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5153ca331b4448e062cebad987773756c0aff2dc Auto-Submitted: auto-generated Date: Tue, 24 Feb 2026 22:08:20 +0000 Message-Id: <699e2154.36a8c.18415958@gitrepo.freebsd.org> The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=5153ca331b4448e062cebad987773756c0aff2dc commit 5153ca331b4448e062cebad987773756c0aff2dc Author: Rick Macklem AuthorDate: 2026-02-17 22:57:42 +0000 Commit: Rick Macklem CommitDate: 2026-02-24 22:05:42 +0000 vfs_mount.c: Don't call VFS_MOUNT() if only exports are being updated PR#293198 reports a hang within ZFS when exports are being updated concurrently with a VOP_SETEXTATTR(). The hang appears to be caused by mishandling of the z_teardown_lock, but fixing handling of this lock appears to be a major effort. Since the hang occurs when VFS_MOUNT() acquires a write/exclusive z_teardown_lock, which rarely occurs, except when exports are being updated, this patch avoids the VFS_MOUNT() call for this case. Avoiding a VFS_MOUNT() call fixes the hang for the case reported by PR#293198 and is also an optimization. As such, this patch avoids the VFS_MOUNT() call when only exports are being updated similar to what was already being done within vnet prisons. PR: 293198 (cherry picked from commit 935cf3284f520c90a63baaadb762caaa30084f5c) --- sys/kern/vfs_mount.c | 52 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index b380a7fdaf6b..dabf52f07017 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -76,7 +76,7 @@ #define VFS_MOUNTARG_SIZE_MAX (1024 * 64) static int vfs_domount(struct thread *td, const char *fstype, char *fspath, - uint64_t fsflags, bool jail_export, + uint64_t fsflags, bool only_export, bool jail_export, struct vfsoptlist **optlist); static void free_mntarg(struct mntarg *ma); @@ -806,7 +806,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) struct vfsopt *opt, *tmp_opt; char *fstype, *fspath, *errmsg; int error, fstypelen, fspathlen, errmsg_len, errmsg_pos; - bool autoro, has_nonexport, jail_export; + bool autoro, has_nonexport, only_export, jail_export; errmsg = fspath = NULL; errmsg_len = fspathlen = 0; @@ -861,12 +861,11 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) * when we want to update the root filesystem. */ has_nonexport = false; - jail_export = false; + only_export = false; TAILQ_FOREACH_SAFE(opt, optlist, link, tmp_opt) { int do_freeopt = 0; - if (jailed(td->td_ucred) && - strcmp(opt->name, "export") != 0 && + if (strcmp(opt->name, "export") != 0 && strcmp(opt->name, "update") != 0 && strcmp(opt->name, "fstype") != 0 && strcmp(opt->name, "fspath") != 0 && @@ -957,7 +956,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) fsflags |= MNT_UNION; else if (strcmp(opt->name, "export") == 0) { fsflags |= MNT_EXPORTED; - jail_export = true; + only_export = true; } else if (strcmp(opt->name, "automounted") == 0) { fsflags |= MNT_AUTOMOUNTED; do_freeopt = 1; @@ -989,14 +988,22 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) } /* - * If has_nonexport is true or the caller is not running within a - * vnet prison that can run mountd(8), set jail_export false. + * only_export is set to true only if exports are being + * updated and nothing else is being updated. + */ + if (has_nonexport) + only_export = false; + /* + * If only_export is true and the caller is running within a + * vnet prison that can run mountd(8), set jail_export true. */ - if (has_nonexport || !jailed(td->td_ucred) || - !prison_check_nfsd(td->td_ucred)) - jail_export = false; + jail_export = false; + if (only_export && jailed(td->td_ucred) && + prison_check_nfsd(td->td_ucred)) + jail_export = true; - error = vfs_domount(td, fstype, fspath, fsflags, jail_export, &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, only_export, + jail_export, &optlist); if (error == ENODEV) { error = EINVAL; if (errmsg != NULL) @@ -1014,8 +1021,8 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) printf("%s: R/W mount failed, possibly R/O media," " trying R/O mount\n", __func__); fsflags |= MNT_RDONLY; - error = vfs_domount(td, fstype, fspath, fsflags, jail_export, - &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, only_export, + jail_export, &optlist); } bail: /* copyout the errmsg */ @@ -1307,6 +1314,7 @@ vfs_domount_update( struct thread *td, /* Calling thread. */ struct vnode *vp, /* Mount point vnode. */ uint64_t fsflags, /* Flags common to all filesystems. */ + bool only_export, /* Got export option. */ bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) @@ -1442,15 +1450,16 @@ vfs_domount_update( * get. No freeing of cn_pnbuf. */ /* + * When only updating mount exports, VFS_MOUNT() does not need to + * be called, as indicated by only_export being set true. * For the case of mountd(8) doing exports from within a vnet jail, * "from" is typically not set correctly such that VFS_MOUNT() will - * return ENOENT. It is not obvious that VFS_MOUNT() ever needs to be - * called when mountd is doing exports, but this check only applies to - * the specific case where it is running inside a vnet jail, to - * avoid any POLA violation. + * return ENOENT. For ZFS, there is a locking bug which can result in + * deadlock if VFS_MOUNT() is called when extended attributes are + * being updated. */ error = 0; - if (!jail_export) + if (!only_export) error = VFS_MOUNT(mp); export_error = 0; @@ -1590,6 +1599,7 @@ vfs_domount( const char *fstype, /* Filesystem type. */ char *fspath, /* Mount path. */ uint64_t fsflags, /* Flags common to all filesystems. */ + bool only_export, /* Got export option. */ bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) @@ -1693,8 +1703,8 @@ vfs_domount( } free(pathbuf, M_TEMP); } else - error = vfs_domount_update(td, vp, fsflags, jail_export, - optlist); + error = vfs_domount_update(td, vp, fsflags, only_export, + jail_export, optlist); out: NDFREE_PNBUF(&nd); From nobody Wed Feb 25 01:16: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 4fLGrW6xWdz6TTJ3 for ; Wed, 25 Feb 2026 01:16: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLGrW4kvdz3T59 for ; Wed, 25 Feb 2026 01:16:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771982187; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mnDLu8bUKGjyy8X851dXbBlI/uH8mvFLdaE8WDyjFSg=; b=PXjbgOjCgi0UfsO7L6VLccIgN/foDInr6ZxWDQqSipjvi/0kC7b5kNSFhp5m5kdOVyKFgq fMKhMC7gFqUIdRy22aah0sV94CVoOfkNJpgG+tWMmRoM0UwByKDY95WFM4Jj1gmPTs3pjX lRjbOD2Q3pDqarcS7jJKs3cqtRiZkzw+O0FJ4j/MUnloYcr6fTTn1vYAMVBqkVKs15cfk2 vIhCFNvoTwhvSL1pI90L9urK9dU9iZN/sKbKRofP00wXQfp59yZTiDx83VAepXIlIi29bh mm0c2DSXnZmZ6Vq+E/XfkEZSVS150CuN7Wx3yr1S1Y2khQzqVaCVpUy9DwEYIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771982187; a=rsa-sha256; cv=none; b=peazCm+8myrsdMQKAerD0tr8K7BbtdRBAP+btFUt/R2Pru9ppHedjeF2ekgn3nlLkbktmo olUe6DDODJZW5m5adp67AzSpSPsL6+bSoi4qVC2ZxHZNG7IrnTR9BXEXgeOyV0e5534qlV G6VL2kIWvdgltFfp1TwJCNpGeQRjbOWpTX3uVWyObAgTLPyBBbJEYC5P2QJ4Bc/A3zoLYZ +im9k4ukm/5uGs0fLVg5WX1MmbLbv5F52JLSaliSr3dQ0Z0k4ZQN6x8+lF8LWRjhS8hBXt F4aD8osL/Lg6mBQ/jcD5REtlLbonv3MxGnwE33qzo+AyXfXZKNu38NUaOZDR0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771982187; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mnDLu8bUKGjyy8X851dXbBlI/uH8mvFLdaE8WDyjFSg=; b=GennTEfJFfolBDoLxhKjTw4uTh/DHgUX0rPoFSrumQhR5m9RNj6JaKbpAXv3WswKkqKn1v hsZgk9dokcaK5A8BpD7rK3KgcfPavvQCDKmjZNdDVfYkvK0wjsxDLVhFjwD35Nrsj+wvNk gRKU1fPAqFEBZ7P9oHjJ6BRVUSDwySskcsKxpzEkEwczwQ/6o5zcN/pv2ROXm9Mus1/7qK C0ysOgOyOZwhCkC6FHaruzMtnWISGEg4cCdI0uEPuXIwv4pnppXKCIYAVO7ZlE7HfbbMWq PbsP806XFBUNRMkJRtMOHFWEsN8iAPXPfwd12kGTirb1bJ95tgcJ/no0mlLghg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLGrW3HgRzh93 for ; Wed, 25 Feb 2026 01:16:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19835 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 25 Feb 2026 01:16:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: ff09319d3060 - Create tag release/15.0.0-p4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/tags/release/15.0.0-p4 X-Git-Reftype: annotated tag X-Git-Commit: ff09319d3060f30648e17e0da721c1f42d4163e0 Auto-Submitted: auto-generated Date: Wed, 25 Feb 2026 01:16:27 +0000 Message-Id: <699e4d6b.19835.426946c9@gitrepo.freebsd.org> The annotated tag release/15.0.0-p4 has been created by philip: URL: https://cgit.FreeBSD.org/src/tag/?h=release/15.0.0-p4 tag release/15.0.0-p4 Tagger: Philip Paeps TaggerDate: 2026-02-25 01:13:22 +0000 Tag FreeBSD 15.0-RELEASE-p4 commit 8ef0ed690df2dca0cc22b827819d112f868470bb Author: Mark Johnston AuthorDate: 2026-02-23 16:40:58 +0000 Commit: Mark Johnston CommitDate: 2026-02-23 16:40:58 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed Feb 25 01:18: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 4fLGtj3hl1z6TTRW for ; Wed, 25 Feb 2026 01:18:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLGtj30D1z3TNv for ; Wed, 25 Feb 2026 01:18:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771982301; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jK4Is8IxXJQW1/+ZIC/kFf9iavkjo/Birtz6OuuolL0=; b=E+rHlD5nG5ONxRWSbO9DZ1+MEoGYpT5y503a8sytjt8J5LB2J0LeHtz9WmFpYz1ls0T6O+ yBmUSBwjMZTLJ2cWFWRDVaavQG/Mx3oeBPv75seFtpMMgFjWeFNptHlqIyFEv4cpWrvY0z A2oky7dXaY1G7hxmBJA3Uuvu4rb6xAQHim/uNm2VzRrylCKPgUMTqZiQt9sYchGNWfK5OF MNcAhyWpT7I/mJtNK1uSvM6i9B8DCSkW6o9NSVxFi7dGCCM7WMNyMFKyCBqLswP3wLA58H D3kEAqoeKXFMHRhpD/yVwoUGQcgEppTymQji+HlyJUpTApAVz+JxqGLIth6HQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771982301; a=rsa-sha256; cv=none; b=lgF4c4tURCq4l8sa111OkAw3jz8GE0ldu3uZQspS254h6mqGhMFoxI2MH+zUEPj+MG6fh4 sXjLXzEQObGZiMDPtW2zeTtdVoP88QO/pi9iZVpuwsWdSvAVvPr1RVmnkbtmjZJMPIp2Nw 1brNiQtmYX6AkVwRywtoeCGU7Dmkk6Z39sjNXuCmiBY4ppHYn6FhaWpwxD5aiG9jVKiIxo zoXwzxaGukxw/IB9wlasmVvgZZBFwQsVatb7gMGr3YvQx01mOr1NKm2Kq19NmdthUgmOuJ m8F9I0AKcditU58EA7YBprRTWIAEKddC/KWpoPPZcUxeJe3pMQO9lBLIbjGx3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771982301; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jK4Is8IxXJQW1/+ZIC/kFf9iavkjo/Birtz6OuuolL0=; b=HpW5pIBpcozb0qH154I1r/CDNWT/7xvw6kRLvMS5IAe3HIm+T5c0J/unDeeklCB/Lm807L KgJDh/Ay7pq/h9RCe4DK+nMfkqS2eRCWLyj//W8iQteQxDr69lluZXCUKTlVMD7Ivv67kn +K1R391Hsk3iK29l+DxK1DH4SxrEg9lxvVsJumfN8MhTaweCs0l1uJR5ZGmLetszBhUqt+ N2G0aJyeoceX2/sbSbhPRObEs6QltH/shr8+W0liB50jnL/GcxRGPrmFtkWdx2ApZeGIEJ muZUSPWTqK1Z53wJh1D9n+FnA5sq0ADoktlxVng5TfC7wJHMLayyjJnEbzCj2A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLGtj1wm5zh94 for ; Wed, 25 Feb 2026 01:18:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 188f3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 25 Feb 2026 01:18:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: 2bf2ce3acd0b - Create tag release/14.3.0-p9 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/tags/release/14.3.0-p9 X-Git-Reftype: annotated tag X-Git-Commit: 2bf2ce3acd0b67d4299734e3b350becc372717df Auto-Submitted: auto-generated Date: Wed, 25 Feb 2026 01:18:21 +0000 Message-Id: <699e4ddd.188f3.60d72bbb@gitrepo.freebsd.org> The annotated tag release/14.3.0-p9 has been created by philip: URL: https://cgit.FreeBSD.org/src/tag/?h=release/14.3.0-p9 tag release/14.3.0-p9 Tagger: Philip Paeps TaggerDate: 2026-02-25 01:15:24 +0000 Tag FreeBSD 14.3-RELEASE-p9 commit 24c55170cef490616ad4b9262a39e1c5c47b8d0f Author: Mark Johnston AuthorDate: 2026-02-24 15:56:57 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 15:56:57 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed Feb 25 01:19: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 4fLGvd6XdRz6TTfm for ; Wed, 25 Feb 2026 01:19:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLGvd5yYkz3V22 for ; Wed, 25 Feb 2026 01:19:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771982349; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8i1x6jUwgO4EWUfuqKBPRnVOmWILpyaf+YCKoDJa9dU=; b=eamtwFfGAnyqZTLGAD94w1COc0gk8AfDQP9kZPVECWGMDufzeyGRUJlP4HUJ+86ECaKTp+ 4b08tJAweBqj3q9YckD2AnHpSrqVqBshobEIxLDkGJTbSrqsTL9mVNEi9/zKSIjVM0tTJu KKTcSAvui0TAx/kcxBMHQWkkZN/oTrRlaJDbacAaLyqiiGr4iddp+GC8d7EVtU2j2eGeBR Rgu8gy9ieyRLEHhW9YrfqJOJjN3IJdhVZgDqLxL3m/77FizxUFbCpJ6UyARh5urAtMtTZQ uWER6LV3acjmegiyDvrRvBSoaXPDc5dp+blb8HJaoKZkON7d/Vg6dYPlW0gIHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771982349; a=rsa-sha256; cv=none; b=ptgkO+DLrB/foNkDnXyrd1QKZ+DJXt3p9jF7w74FVHbMapJkRXbByDtKREvQTf3Cg7YXPX 5zxlIKhCQFrG2sgCgGGasH3iG8q/NSDlivSpdFqJt4J/7b+ucWN3WdNyCxcndAq0f3fcPA r64SMSsK92uIKK0/UBlko4KVXwg9CkIWC21Wb0FUSOGUE0pcFS+x3TzP2C3jYbxFUihC+k HiiznwIcR4axhyJvCXCqyB1pJVPmPVRza1AB92acS74CmwgVZjMlfTw280Ey78MsKSwDpu Mwa5s8qI04UyWm8MNssqoWMauQKmc7EyDNcsOLTJpyieJaTNtgqa/DDotTfcEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771982349; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8i1x6jUwgO4EWUfuqKBPRnVOmWILpyaf+YCKoDJa9dU=; b=blL5jqn/wEl8TLxY0gHW/S/GSGcpGYhgGTKq5MrazALsoWDwo53UQySD9Xbcengy8CWEOi ZHWX8p1OqU8GCGajWChIQV48QzXSIrDKFAqCApBbgds2WGrWKKxe3sD6FuOcdzD8QqZXCd kG+8v+SuH45nBA3MpReIn/GWNaUdU8cTSUgdfXL+Y6MecKCDBsvzBZxBe50zZpw/S0F3kt TwDdmzzk7j295c0eCdwMGq6bWIAfEhEQ8He/V3rKI/KKorN1m9zL2xgArTXxSBsWCVgxtj mrB4u6tVdpUnPVaRRzRfm697KQWcphN+C8qUNkOoQ3qIGNPO8f0IetgmXPSbYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLGvd4z2KzhFt for ; Wed, 25 Feb 2026 01:19:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46f71 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 25 Feb 2026 01:19:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: 91772c3ccbd6 - Create tag release/13.5.0-p10 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/tags/release/13.5.0-p10 X-Git-Reftype: annotated tag X-Git-Commit: 91772c3ccbd68f3f821bfafb587c42cff27bb19c Auto-Submitted: auto-generated Date: Wed, 25 Feb 2026 01:19:09 +0000 Message-Id: <699e4e0d.46f71.65357014@gitrepo.freebsd.org> The annotated tag release/13.5.0-p10 has been created by philip: URL: https://cgit.FreeBSD.org/src/tag/?h=release/13.5.0-p10 tag release/13.5.0-p10 Tagger: Philip Paeps TaggerDate: 2026-02-25 01:16:23 +0000 Tag FreeBSD 13.5-RELEASE-p10 commit 9d3e842358b4b776a0e4bbab921695ac35f3baa3 Author: Mark Johnston AuthorDate: 2026-02-24 15:58:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-24 16:04:27 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed Feb 25 02:47:39 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fLJsl3fJcz6Tfc9 for ; Wed, 25 Feb 2026 02:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLJsl31Q1z3hlr for ; Wed, 25 Feb 2026 02:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771987659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q9O4J+nLfW4nvKgAhm/QDRaYINoN2cYFeUXA/VhZKHU=; b=Y6i4P7YNKFDGquYY93XpIetsCWpchm0y+/VYjQvDdQrS3YvV740s7M+5NrvQIrUcTr6rkN eDzYksFFQD0luZE13H/hpxogUHyiY/i4umwt31FsAKsM7ve/Qvn8e4PnBMKrUaq3b6MSYc xYfC4nTsDFUnVnuIMDtxpF/bF4gzDx3xVVKeArl9TMr8Z69/z3LHK0zQ8hn+gKIRLozq0h NZyAicrlwW/vN/vdLgoYtjD1x9lu2Vve0h7/A8fmchI2Yti8gq0nLS44giyRuOULj8DTOW lMwlVna1ojmQylKUFpa5jNH7Mda9Ji1XhjsuyGWIBILH3z1Qy4nRXzQy4sqPqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771987659; a=rsa-sha256; cv=none; b=dC4qHfirTTpTQ1hlakBEnYyk+rc2GeSQmUkG895dVQ0ChGUtbqBncGT2huZ2h5xKiSMdoW M/Pdyp7S+NnNupTZBRnIKIHMMnnYX8kRmmdkrYNK9EhkCfT4zzZGKkKEzIEoLe7b7eK2Md 6YLA7detjG14OSDAmZl4GFcAGolQYUkw41TJ281uRmdywWapGrKsc1z9s4m0CcgNDKselD +jzjsj6oNbnQHm4v0i4B/DaG4Nr1FdTTxVXKKgJasZupOlbcIGFEZ3U2blWRqET6wzE4sG dfAmNLB9nu7dnayDQqa9WZxKGssESeRRBIB71WWE5EyInJw7UJSM9j0BC1M5zQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771987659; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q9O4J+nLfW4nvKgAhm/QDRaYINoN2cYFeUXA/VhZKHU=; b=WXBSERkz5zBosx6ZzJ+NLyLTGXb5aOKmMEZzGE58xuHqvUu66boOdoTtoDddpFoxA3jH4B nC4jRbjJtkECvMyECsJQTBWk121mEq4dwUUmF84Mg2YY+vRQWNz+XnbtIjmiU1rf3gxahy H3KXmbIqaY4S6j2aeaV7icFYaspPevdyjgdi5HR2DP3zzr3b3zYIT8EXtEKitQmv9FSi9A Mm5XovY2W3XTjOhnZdrQRD07IGsaL4b1ESBmQTj/CIiJkJRCOS1AO6Jx2D/MuEcUqwNWUi wSYS9ev3mYFDXM6/2bDqQH18a2c1Wrw5kscRFBQV94+EXqMEl4NNVnU5QKzYoA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLJsl2RCBzkKW for ; Wed, 25 Feb 2026 02:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 239a2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 25 Feb 2026 02:47:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: a2c2de82c053 - stable/14 - pkg-stage.sh: Add ext2 and ntfs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: a2c2de82c053ba7596f90ebf7d7ea6cb41938587 Auto-Submitted: auto-generated Date: Wed, 25 Feb 2026 02:47:39 +0000 Message-Id: <699e62cb.239a2.5f1eb4f0@gitrepo.freebsd.org> The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=a2c2de82c053ba7596f90ebf7d7ea6cb41938587 commit a2c2de82c053ba7596f90ebf7d7ea6cb41938587 Author: Colin Percival AuthorDate: 2026-02-22 00:38:01 +0000 Commit: Colin Percival CommitDate: 2026-02-25 02:47:29 +0000 pkg-stage.sh: Add ext2 and ntfs Having these packages available on release media may help users who need to sneakernet other packages (e.g. firmware) from systems running Linux or Windows. Suggested by: vladlen, ziaee MFC after: 3 days (cherry picked from commit 6881fd278d80ac63b4d511fc130a79ff16d1bb48) --- release/scripts/pkg-stage.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh index 8f7ae35ce9d1..cb613950c916 100755 --- a/release/scripts/pkg-stage.sh +++ b/release/scripts/pkg-stage.sh @@ -17,6 +17,8 @@ comms/usbmuxd devel/git@lite editors/emacs@nox editors/vim +filesystems/ext2 +filesystems/ntfs misc/freebsd-doc-all net/mpd5 net/rsync From nobody Wed Feb 25 06:22:56 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fLPfR327sz6Scw8 for ; Wed, 25 Feb 2026 06:23:11 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLPfR1RcRz3CVX for ; Wed, 25 Feb 2026 06:23:11 +0000 (UTC) (envelope-from yaneurabeya@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-824ba8f0acaso3621511b3a.1 for ; Tue, 24 Feb 2026 22:23:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772000589; x=1772605389; darn=freebsd.org; h=to:references:message-id:cc:date:in-reply-to:from:subject :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=IcdZiYI2qFTtonIAFGMm6YjYnrEMwg5pce4IEpGv+5I=; b=GoZz2Q0dHuwxCMkF4LhLNOC+xhvNbWW6BW/rtyMlneiJxwOv84TjK57c/J9GSMe++r 37f7ZxzEem4F7U0WNyDPWZ3YDLak6V7NlMJvzd3k4Tej+dWQulOp4aCXo4trMONBl2Zh 7xEFSkTEtjA+WZ4GzUMDMwAwfoFMvnO0yRo7ZQSIcSTNQZ0PHLpI0ArZj1aTkcjHPtUk a41jam8Zkc7RmoV7KEJN9Aom3T/UtHrF+Y4WlB/kBYL/eNVH22GQHiZYnvJi6zxJcfMp v7b1GdykB1vJ3LkGnZGH06A/iRdC7vvHiCSqd0Bg7SEWRXVlgmBW4bS51eSR4kO3IQqU KFcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772000589; x=1772605389; h=to:references:message-id:cc:date:in-reply-to:from:subject :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IcdZiYI2qFTtonIAFGMm6YjYnrEMwg5pce4IEpGv+5I=; b=f7Be2/Y0jfFz8jJ3BQfkLVpiKQqtKExLIuYgkaraiEfIAdQErjkd+hzcNTY2VJIABI vXQXhmRBrRVaISUOOAJ9ypmJGmgqJg7QWtxHLeU0fzGt9HfCOWM02VDsHmNFEVl9Yjrw Baf+STfPwrE4PNfPKBQcq8sI0iu2412u8wWluqJ5HAPNHoiSUvd1le+WdL7pwr0dxazD +TGJzfu7LU8INVES9tEdkUibUP0i+BdLmEeqV/jr2rNGdMXXe0rvTiRJSWalmmYE7irZ RS7e/QJWbxE77Tig0/SGIfIcFDEy4dhbsnEaLEccAMwgBteAPirjzT8jfeEm8ORgBiRY YG4Q== X-Forwarded-Encrypted: i=1; AJvYcCUKL0FfjkvA5UCJ6nGtgnfIUHvOgC/wx92dMuWlk13K4ya/i0hRhLA97aZ2rUXoJbPDCnG8Rye8W1Dnbaa/dBZPK7Nb48Jswd8=@freebsd.org X-Gm-Message-State: AOJu0YxrLUB6Bq5mRzSPB0tPRswEbBnZhZ4bBpy/UELBUHQ+pmeGT/Aa PSG/5Riem4onO/FfMT9P3xNsdyFp0LCWxHdMpjasu+qH3yb6rUJLfJzk X-Gm-Gg: ATEYQzxO0Vxt37fqXU2IbPWZYY2/56ahtkjIEPP8WoSQAFwcp3rPLdFoI5w+Tc8266T x++MUGLQ0royquOXTSoKCAKhboh/vfvb/9HZyErlTJoD+2SRwKMrrN0waVlywkgHn+85PAJ0DzF AL/BPqXE6SV+/EqYGFPC81VO8nFJYlW+0xPaK7KJjeVEeigv+lF+6yKC0p07Yryr1PH+/8nOwkv J9fFuS2TWt0iBZCd5Wc2pdurbbvJevN9I4qmYrA9Vph9C3labBrKjJnrm9hMJtFZhkYUsqcXXla 0tbpjzclVVLR1Ggb7gXAtVSgC9idCCDh8uf4JrUJpGW0FNvc0WLGhS4KLk4uQHEDY4Uzdiuy49m NyMusToeL9xZH8CZt6M/7hf/2AfmNH9vYWPMNv0zZJKEvoOGxaydinTcyyeStBUYGyzWd20bO00 xl0qsreUIG8dqVRZtDdVv6ysKTDhzyxUMZtq9jE6ruidlueH3JZ533 X-Received: by 2002:a05:6a00:3a1d:b0:81e:7496:f826 with SMTP id d2e1a72fcca58-826da9f08c1mr13054461b3a.31.1772000588857; Tue, 24 Feb 2026 22:23:08 -0800 (PST) Received: from smtpclient.apple ([176.100.43.172]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-826dd8ba11bsm12578956b3a.50.2026.02.24.22.23.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Feb 2026 22:23:08 -0800 (PST) Content-Type: multipart/signed; boundary="Apple-Mail=_4BA3F2B1-4A4D-4B78-84AB-B941736561C8"; protocol="application/pgp-signature"; micalg=pgp-sha256 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81.1.3\)) Subject: Re: git: 887f0f125fd1 - stable/14 - Revert "GoogleTest: import 1.17.0" From: "Enji Cooper (yaneurabeya)" In-Reply-To: Date: Tue, 24 Feb 2026 22:22:56 -0800 Cc: Enji Cooper , "src-committers@freebsd.org" , "dev-commits-src-all@freebsd.org" , "dev-commits-src-branches@freebsd.org" Message-Id: <30C3C506-3327-4605-8D6C-237393D6D676@gmail.com> References: <699a9186.32e99.543fe4bb@gitrepo.freebsd.org> To: John Baldwin X-Mailer: Apple Mail (2.3826.700.81.1.3) X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Queue-Id: 4fLPfR1RcRz3CVX X-Spamd-Bar: ---- --Apple-Mail=_4BA3F2B1-4A4D-4B78-84AB-B941736561C8 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Feb 24, 2026, at 7:30=E2=80=AFAM, John Baldwin = wrote: >=20 > On 2/22/26 00:17, Enji Cooper wrote: >> The branch stable/14 has been updated by ngie: >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3D887f0f125fd1282c8054b402ad72af37= 1a9f5dec >> commit 887f0f125fd1282c8054b402ad72af371a9f5dec >> Author: Enji Cooper >> AuthorDate: 2026-02-22 05:17:40 +0000 >> Commit: Enji Cooper >> CommitDate: 2026-02-22 05:17:40 +0000 >> Revert "GoogleTest: import 1.17.0" >> This reverts commit = 227baf32d26360137492b108aba06c6a54c0949b. >=20 > Please include the "why" in commit logs when reverting. I (nor any > other readers) have any idea why you reverted these commits. Will do next time :/. I reverted these changes because some of the compiler changes made on = main couldn=E2=80=99t be backported without potentially breaking how C++ = binaries are built, resulting in potentially unexpected breakage on = stable/14. I might retry it in a future cherry-pick after additional = testing, but for now I pulled the changes out to ensure behavior isn=E2=80= =99t dramatically changed on the branch. Thank you so very much for bringing this up. -Enji= --Apple-Mail=_4BA3F2B1-4A4D-4B78-84AB-B941736561C8 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEkHfexGRJ3gYRdA2gGpE5DjPsNJgFAmmelUAACgkQGpE5DjPs NJiZSQ//e1L8BZUMEbpjJHQLeZ1DNBrPNxghEjtHFs0gJlkWdSN4h1kdP79nBI0t 0B2IJ96nNk4+kW4JoWuGkgaGIlS2toshmtYj3ZC1/ZFaNqJoN4b0pvBDPjEuAvI6 RMQCtzne41riS2pCFth/X8cVua/mTIlyU34h5nwlykAHlaY0S3w9fYSe+YBx21DY HBG5zLBQKpKOo96+3OyguOCsv7jH72NMxdqPSjJTHtqPGThHw1IbaeQ2d3vQh6WB Vc28AkSBmhBFUpQu8T+SRFoM7IU3hxTIgLCTEQY7H+SRx3aF5jkQ2D/LfxYEK1ZS Uq6b6JQddWaPGp/DtcGUW/PWZ2cFUY7YI9zTnCGRNWqK4uPSX67SWooQFVRpuwZS Jm6J+IfdRn/rLTjG4UhKFV5YUR+6TlNALKSJdwxYEIQF+WQvqWYVq1vLwCirdI5Q 4NXq6nnI1v40zMbquBy3r0Mj1tNRnaY/5aRzISacscilfmauksobwNKk7v5IlacV Q7otjbGPoREOCxcgvnsnBLoPqfD/+l9kRrOVhhDiMRg3ATtw5QhvS2yqdYd5ql0e xjCy1azlHMW2iNIw/bECdjLYMLeYeQ7wbRtXlKXzms8n/W1Ests4sqkxAlPKn+/I dJGk7hvFZPThgDWzz2SiNEE+STumrrtGKQoNEtG/QpmtJnBw8jk= =h2lo -----END PGP SIGNATURE----- --Apple-Mail=_4BA3F2B1-4A4D-4B78-84AB-B941736561C8-- From nobody Wed Feb 25 13: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 4fLbNt4GZnz6Sq1l for ; Wed, 25 Feb 2026 13: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLbNt3ZBRz4CsY for ; Wed, 25 Feb 2026 13: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=1772026926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6hgQdH5a5OLK6I9hm1nWixlWzI95zrWL00HZfBKZ53k=; b=grPiM0ttykkmWyLkHwzJtJtRBgPjGEZGPaQm116AEOrfqnuU2ekngwa0wEgVTh13TJpItF ewtokCbqFV9XuFaIn51LK2STw5LG1A4OeRDl80j9N/d+ijgpiQHFuWry9EyuwOsiulcLjT PID43BmAzsFTWzyHgspQyyrdb97ErxtDp0io+dOQJFIZQEdv70H252oEc7wNaoPfTkJc4H Y8VntPUlu+pFYBTCrMtS4cFxRKFJHNPwVa961B57sFHTJRn4hJlUKO1IxACg5ZwrH8sPm4 l5zIa7KjBL1258FzRQQzOQZDkAiF/rRbdblCfGXmCMQG3P37h+71QuzYdDy5UA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772026926; a=rsa-sha256; cv=none; b=R5EGr55Jj+JUbi2C7qALd0ZrNS17RT2JNfWTOOkiFR4K3xTWiyOFfUm4qFi8gJNuUjtK9Y VfPIFX/y8xr7smiBoq/Hgy0OK+FmuYlAcoQSYK3frf89t8o12M1tm7dXH3vjPZPfcsB3wu uta0yNgkolzkJ4IyI7yvgsa35PWmVAl1miVoDg4rUSOBQu+UHbBnjaYP8bcWEy4Qqa+NTV L/Zpab5qJG9+VwnGH4qxEV0JxFb4WUIzkrPCwewspQowqpKNMTNkDf7/QJYIj7yHJYlHUb rtVPRB6xGx75iHMEeTIBHp6m66xA6iP/QGEG3HL1Ska69khRJG8TWoxGOtEw1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772026926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6hgQdH5a5OLK6I9hm1nWixlWzI95zrWL00HZfBKZ53k=; b=bPq1U3IDwDtKOnFhvPukFDv1OxIdkY9vUaU9UreCPd3hzm8U7SpGV5ZPLX4d+vcAQGZrou BYQhmMnLkFu9txXtVC1VQvcXFj95Y16NJzmsl6NPl+iimqfYBkbx8i6W+S8ekOdAaSpN2m XcFyMEJpgjmk5qYiX+uyJEQluleiGtVJjF9FypANo5FL78nv1CmI82dVtxIlwLEUp5naNf gcXWxOXuA3UR70vGouQmoMEUGdXtNZ3qsMTJEM3ZhjOCAHTPmURcv/RjW/G1wF2pUXB6sl 5gXEOVVut5h4x8zsCD78pq+p4+NtTwD2FZmmi1R4EW7SBxv6b8rf/XZ5e/rheA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLbNt36Phz136C for ; Wed, 25 Feb 2026 13:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 470b8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 25 Feb 2026 13:42:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: b642867c2cc7 - stable/15 - pf: avoid NULL deref on purged states List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: b642867c2cc7e06057ba766c9847ecd200c53bd2 Auto-Submitted: auto-generated Date: Wed, 25 Feb 2026 13:42:06 +0000 Message-Id: <699efc2e.470b8.732e3c13@gitrepo.freebsd.org> The branch stable/15 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=b642867c2cc7e06057ba766c9847ecd200c53bd2 commit b642867c2cc7e06057ba766c9847ecd200c53bd2 Author: Kristof Provost AuthorDate: 2026-02-18 18:23:42 +0000 Commit: Kristof Provost CommitDate: 2026-02-25 09:13:13 +0000 pf: avoid NULL deref on purged states States can be invalidated and still be present in the state table for a while (until the pf_purge thread cleans them up). These states might not have keys set, so we must make sure a state is not purged before we try to access those keys. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit d60082f16e4c91d4b97d8b3b56b39fa348ecfbda) --- sys/netpfil/pf/pf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 882c7f4cc0dc..8b0fca69827e 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -1943,8 +1943,10 @@ pf_find_state(struct pf_pdesc *pd, const struct pf_state_key_cmp *key, /* Look through the other list, in case of AF-TO */ idx = idx == PF_SK_WIRE ? PF_SK_STACK : PF_SK_WIRE; TAILQ_FOREACH(s, &sk->states[idx], key_list[idx]) { - if (s->key[PF_SK_WIRE]->af == s->key[PF_SK_STACK]->af) + if (s->timeout < PFTM_MAX && + s->key[PF_SK_WIRE]->af == s->key[PF_SK_STACK]->af) continue; + if (s->kif == V_pfi_all || s->kif == pd->kif || s->orig_kif == pd->kif) { PF_STATE_LOCK(s); From nobody Thu Feb 26 00:23:57 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fLsdT1gHMz6SjGZ for ; Thu, 26 Feb 2026 00:23:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLsdT18DJz3gNj for ; Thu, 26 Feb 2026 00:23:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772065437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ryeT3+46U+WD3GuFuzvGW0egT0olxKfXubqv4uXfO/Y=; b=JbzMir9XDoTaM0IspatsAYqQHakawNfLhppaJ05z7vIESIBNxZxq52v+uVO9lAFPy7KtMg FjL7vL4vsehAu+TW1yhEf7Vo0LHCHsudw0MW5SdmYE7IhBekGmIk8dR9FMlz1EcCv9l+Ke +bOzbsQV/+FQUEsCrcnW5gerNVP/LdjV4ZAZqc9ENAuS7kNIXaJpVjFKDdLdSJjrXMcTkQ Htt0SX0/qHBGTBJJ0oBtOgKS8gdAwHSjcII13LPup3QEPvPNd9iXgqPvloEoQ/JLAYkvg5 jzFxWjqc8sUz+fmfwQnJkWZvxcMXXXYwW/f24dmdeFyuos4v9Z/btACSTtwC7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772065437; a=rsa-sha256; cv=none; b=YArx/2uPw5Sb0iLTrtCP2p3yduanqSTCi2XnGUGYnbHv3Y2KBz1ZRG9x2v8zbxJwxPxvdB Os4V0BexSSJolU3teBPunQvegodyOvWaktk15X6Pv3wuEHE8p7kd2mXjpOoUq7mQ2X5hEv xePVoDaPy7yL4sfdS7sjK8YIW+NIdSv7TXaMqWyaBp2T2CJkbUS70ygt/O9jQ8+Ka92uiX Fy5dM7bj6+rBm8yoSDQwu06OvSYeHUNdnn0pblqNzWKNw7kjeFUWRpPT0TJm5PpAmny62e 2bf/b4VeUrvDMSm7o5XkRo9QeEE++6HIUSfkDRrTx53qihDIivF1/bh5rtt4+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772065437; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ryeT3+46U+WD3GuFuzvGW0egT0olxKfXubqv4uXfO/Y=; b=ToX7/j5VjiNyxBlBA/Y6NjAf75Cn0i8mczWbFh/l1LNclBSGwco725+peDC9PNZgHsfnsa qlCOPM4osHGxZTy1mzeR7+lJDGmCSSwwN+4YMXgzUucEj+V4r4mj3/IE7CZjJMZMWPQ2Uz 2lr7FG+GYZuRg6QJJ7u5JCBbl+32c9K6oUzeO6jxiFKFFM0MyAiEsObegNEwOMLoEg5LYr fJ+WN0G8Bc/rr2+YV57XULxshIzyvn7lB36u1Sm1YV5dIL/UryRcOZ6gQV0Ej40L0MoiS9 FyRxqZ59luzEreJ7QxhLuZej40mpR/hZDIU7vDJl2hvy887lTNKCIPralOEFJQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLsdT0m0fz1NT7 for ; Thu, 26 Feb 2026 00:23:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42d0d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 00:23:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 6ecd231b9e68 - releng/14.4 - pkg-stage.sh: Add emacs@nox and vim List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 6ecd231b9e68f2d143927b54606a444141dd5094 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 00:23:57 +0000 Message-Id: <699f929d.42d0d.68450c39@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=6ecd231b9e68f2d143927b54606a444141dd5094 commit 6ecd231b9e68f2d143927b54606a444141dd5094 Author: Colin Percival AuthorDate: 2026-02-22 00:33:27 +0000 Commit: Colin Percival CommitDate: 2026-02-26 00:23:31 +0000 pkg-stage.sh: Add emacs@nox and vim We have a bit of space left on the 14.4 DVDs; add packages for two editors, one of which is useful. Direct commit to stable/14: These packages were added to 15.0 but at the same time as removing kde, because shipping distribution sets *and* a pkgbase repository on 15 significantly cuts into the space available. On 14 we can keep kde and still add these packages. With hat: re MFC after: 3 days (cherry picked from commit d982b7bd4ebfa483a8fa03411fa798add225e6f5) --- release/scripts/pkg-stage.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh index fe4b5051fc14..86bf32940975 100755 --- a/release/scripts/pkg-stage.sh +++ b/release/scripts/pkg-stage.sh @@ -15,6 +15,8 @@ export PORTSDIR="${PORTSDIR:-/usr/ports}" _DVD_PACKAGES=" comms/usbmuxd devel/git@lite +editors/emacs@nox +editors/vim misc/freebsd-doc-all net/mpd5 net/rsync From nobody Thu Feb 26 00:23: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 4fLsdV37fjz6Sjgv for ; Thu, 26 Feb 2026 00:23:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLsdV1jbMz3g5w for ; Thu, 26 Feb 2026 00:23:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772065438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xFg+Dw/vjFwtTx+c2zvcejdVrsJLyaBmW2hnPvhFDvs=; b=h9AzIPI0saxPv33vASVeWIsqyEmlYQbfIcamwjAQac6XPhUl4XT1kaRknUB69CNHXbdJs1 fD+193keD3hEnq5L7i9dt8HNdenrbZhIPhsSl13EpO+KO65aJ+lkcyvDpu0GdOx4C7Kd8h Amb9Ho0oyDcIJfdhuA6wnKcUV/Jalz0xYN4jgcqH6g+PEntxm+8PdDguS25z4wHq6z3jBK OSN0RCrxDniPavPjVwk9sVsIsteclygR49pQvsu0gRlKtuLDNQpJZnU6n8Hgb4aOYYqHV3 InhJi2Lb9oAQL79mrwE11aVs2uDyD3F2lISoQjYUsCcnUklyOknE1mmOINH5rw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772065438; a=rsa-sha256; cv=none; b=xEWcHnJxhq1QodChyV+MBxtl2gR3CwJ7PR7p0KD5qR0bkqIQTRdAQa0czl3Q2qZMA0XOlP 01LtLlG76OWj2J9WkSh2gp2Wn3Nfzk+Dm+cu/qBZxlScZtvDNVk9FqeSYd7j38rc+AEata UXOm41O5PiPYTK4uv5KtMnscphDNy0yWlriDygJKd9jHjHZAXQa/CvWA6ZoRgyZa4sgbhC RevSyPJGsF6J62u89mTjQhBheOKwvpkq/R+rgzy+hXUA261qw51wvpwmGUPwNTuEzldlWE KUkwGVLb9KuIYKZVUDCdzdI97CYjkvgriFZ2U/3/ZOmqmCAbcq8ne77sH9vimg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772065438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xFg+Dw/vjFwtTx+c2zvcejdVrsJLyaBmW2hnPvhFDvs=; b=CMC6ltgQ8JeBfyxK/FGn9RJNMyMxx84SGL6cn7veBwBeuuNZzFb6x6xJtKqWN7pH9PChVN tYiv5geNOOLpAWIVotTucXQ7Y7b+Zc35aZqyRoVGEXf9tcdQztKLBOycRG4gqoIM/x+r7o zKe6wlisxZ3OmRlh9BtSWOnqB/s44XJjIjOc+dYyKF9v3nbFTw57A2DYWTBmF0cznql9JH 0c8li2vepMhmVFtK01hF7woDYkf3+WZwedymE/N8l4SNQRx2nxj+qet0ZRPjuqaPy0u0Ax 214hQwabjxSvYTvyLWYxc6RsZTsv0RPcgAcGQuP4EPBOlgPqIUrb8JKhFyvcPg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLsdV15nCz1NJ2 for ; Thu, 26 Feb 2026 00:23:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42e51 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 00:23:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 20cff160e140 - releng/14.4 - pkg-stage.sh: Add ext2 and ntfs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 20cff160e140cbc595fd2da12bba628a5413439d Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 00:23:58 +0000 Message-Id: <699f929e.42e51.1a8af9a@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=20cff160e140cbc595fd2da12bba628a5413439d commit 20cff160e140cbc595fd2da12bba628a5413439d Author: Colin Percival AuthorDate: 2026-02-22 00:38:01 +0000 Commit: Colin Percival CommitDate: 2026-02-26 00:23:37 +0000 pkg-stage.sh: Add ext2 and ntfs Having these packages available on release media may help users who need to sneakernet other packages (e.g. firmware) from systems running Linux or Windows. Suggested by: vladlen, ziaee MFC after: 3 days (cherry picked from commit 6881fd278d80ac63b4d511fc130a79ff16d1bb48) (cherry picked from commit a2c2de82c053ba7596f90ebf7d7ea6cb41938587) --- release/scripts/pkg-stage.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh index 86bf32940975..3425534bed7e 100755 --- a/release/scripts/pkg-stage.sh +++ b/release/scripts/pkg-stage.sh @@ -17,6 +17,8 @@ comms/usbmuxd devel/git@lite editors/emacs@nox editors/vim +filesystems/ext2 +filesystems/ntfs misc/freebsd-doc-all net/mpd5 net/rsync From nobody Thu Feb 26 02:58: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 4fLx3y1WXxz6T3sN for ; Thu, 26 Feb 2026 02:58: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLx3y0RzNz42nS for ; Thu, 26 Feb 2026 02:58:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772074718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4g09Ucc5d+vxt2QZU0ug7FdCQogMLVUf0o8k5i/hx7I=; b=SH3ZMkOEBUdjVPL2Tn1jbe0Pxpw/2HOsVN+dOeIw1GRrGq2YHYveGgUVQdv0qofdEAVTtu qqRDz2wKcS5PwhHJlTx3qS7E+OYFDQZXS0sS4shUkMezeSFXIymIpnDtwc8UtXu5K3hD7A kTjXd1G/bq+2fQh//eMJEUntF1670dZbs9aD5nXaR6WLWdIi0vvhaQHIhlK2zEmQ3dCcIW KJkFjJfBuAFIg46sddkwMLJqPEkQwUz/2brEbyKMETtmAGWXl37i1Klz8iLqNyfX7GFd21 7ar90TJdOdeDHgdtRdlOc9ZQiQ9pvu6pVlO3pG45Te2YgKWUNZFhdc2hbD0z6w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772074718; a=rsa-sha256; cv=none; b=tHF0umibQMgEq6pwAcMD0BOLcg/XbeqlNHYLQorNHrg3YHvfEdHcyLqRq447M1MJ6IVvmG JttcY7hC/BtC185niTUujXnfVt83iH2XQ6GRxSUHLGKIrk6J4qN0nw/l18DUHq3K2r6Xx7 w+HjNPJes+Fe+VB6ZlXhHw81I4NFy22+rd3QX4O4Di6ZG0LUagDrmXnEff9a5u6mqen+rS b3rYcYyap7ng8zBfrOr/i9PnOSq970e2kff3dg8vHYGfzx8wABa6SSpaCpE4oe/Z5uTv8h KYs8fiAt0BJ4nTuy7vUJh7LuIQ7TNlSKsBCBzBPQ0OE7LJbDmxWv2/gulEIFHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772074718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4g09Ucc5d+vxt2QZU0ug7FdCQogMLVUf0o8k5i/hx7I=; b=TscEm42LMrkvNKNlmh5jO3+aFR9RaimJ9/J0MdKCZCT6fgeWfMASEOHa4D7RRELn7wJDHt SYJkOM0tlNvRlR0QQl3/gdpvRLGVv/fOHNSYFapF2N1CMAH0tw1yxDENG6d+XaFCcDyr7Y ziwSgxLG85TwePIhOLSGeH4ZjDhU3Pk/NebiZyDyS9loDsd2ClAbtA3UB+2nVgNfQRqu/z 4HbEkngoXuVKp/O+hMJLsjOK3N8KAfPmBdPQt9JoqlGA1nJqh2IIo3FMDf779KxrPPQii6 Gto45IseaSADgJJdidhecLAkGHjyjP4Kz1JLAuul7SDNldDbiJnvJw5/Rs74SQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLx3x6gcxz1S1L for ; Thu, 26 Feb 2026 02:58:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2501c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 02:58:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 6ed373227680 - stable/14 - nullfs: Fix handling of doomed vnodes in nullfs_unlink_lowervp() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 6ed373227680b016b4cfa5af1b802ef23a121513 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 02:58:37 +0000 Message-Id: <699fb6dd.2501c.3702e591@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6ed373227680b016b4cfa5af1b802ef23a121513 commit 6ed373227680b016b4cfa5af1b802ef23a121513 Author: Mark Johnston AuthorDate: 2026-02-25 15:31:30 +0000 Commit: Mark Johnston CommitDate: 2026-02-26 02:54:34 +0000 nullfs: Fix handling of doomed vnodes in nullfs_unlink_lowervp() nullfs_unlink_lowervp() is called with the lower vnode locked, so the nullfs vnode is locked too. The following can occur: 1. the vunref() call decrements the usecount 2->1, 2. a different thread calls vrele() on the vnode, decrements the usecount 0->1, then blocks on the vnode lock, 3. the first thread tests vp->v_usecount == 0 and observes that it is true, 4. the first thread incorrectly unlocks the lower vnode. Fix this by testing VN_IS_DOOMED directly. Since nullfs_unlink_lowervp() holds the vnode lock, the value of the VIRF_DOOMED flag is stable. Thanks to leres@ for patiently helping to track this down. PR: 288345 MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D55446 (cherry picked from commit 8b64d46fab87af3ae062901312187f3a04ad2d67) --- sys/fs/nullfs/null_vfsops.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c index 8b9e04775449..cb637c98673e 100644 --- a/sys/fs/nullfs/null_vfsops.c +++ b/sys/fs/nullfs/null_vfsops.c @@ -465,16 +465,12 @@ nullfs_unlink_lowervp(struct mount *mp, struct vnode *lowervp) vhold(vp); vunref(vp); - if (vp->v_usecount == 0) { + if (VN_IS_DOOMED(vp)) { /* - * If vunref() dropped the last use reference on the - * nullfs vnode, it must be reclaimed, and its lock - * was split from the lower vnode lock. Need to do - * extra unlock before allowing the final vdrop() to - * free the vnode. + * If the vnode is doomed, its lock was split from the lower + * vnode lock. Therefore we need to do an extra unlock before + * allowing the final vdrop() to free the vnode. */ - KASSERT(VN_IS_DOOMED(vp), - ("not reclaimed nullfs vnode %p", vp)); VOP_UNLOCK(vp); } else { /* @@ -484,8 +480,6 @@ nullfs_unlink_lowervp(struct mount *mp, struct vnode *lowervp) * relevant for future reclamations. */ ASSERT_VOP_ELOCKED(vp, "unlink_lowervp"); - KASSERT(!VN_IS_DOOMED(vp), - ("reclaimed nullfs vnode %p", vp)); xp->null_flags &= ~NULLV_NOUNLOCK; } vdrop(vp); From nobody Thu Feb 26 03:20: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 4fLxYQ6P8Xz6T6Nk for ; Thu, 26 Feb 2026 03:20: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxYQ5dmmz45Gs for ; Thu, 26 Feb 2026 03:20:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076042; 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=FgXJvG791MAO2b3jzxQwtT5F6SoXocfSxJs7BnLQOHY=; b=M9iY+Vc1hv9GOA/+kGEfjNSiYBVpU0tGwhG0yTXyJbH8YbbbSac/wGOhco0thXvkvjZeuX 19kGhb9+jbrYGngmVtsKxsHFhNT0SOPiBNHYXk8uibUI/sPbY1+Xb2TlKEDBsz3iHePvyH 0zo/UZIjlXebal5Myl/hTySU1BL6elSMpMHvAL7XP22jWF2HiwQ/yGDXoIf0EPH4cIWZ3J lJMWZCHRunzbY6qkvPmmcP1zoFMQtkw8+ppz3oD0/K4iM49fHsPBsKOiH5zsgM0L8hG/o1 fudUhTGC4cEbaHEkhHRZvknciTM1/6Ek9NkMk9Gqfsh/BQBTUmESoWKLoRbGtw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076042; a=rsa-sha256; cv=none; b=UDSmD2DpU7VyJXTU4cT/fNiBYqS9Cqs+h0usXJC2shhmD0wlG5TmIZPEfC3HEhNEn7wRmo xzl+Ik0N2WzriN+ESXi1zJL1AY2b7+/6anuzEsT3O5HDZETiIIKivRYdSJo12wi36R+MT1 0PXOEyp2HDRNV8mzDg+WaXHoKlR6Y0PPNNb0NC1E6o1sKF/NkYzTNXiNmXrFP2z/3ucCMI F/OjF1f/KsBQ7Y2twkj9sO/M5Zp5n48eejqdbcmHuvzQlYElv+YyQYcgw3cTSKk4fhE9uV Pbf9wKw5sVsOW7qz4qHk+Lx34i7A6SeuKdj7ik8fwxiCkoVrV1FEfB4j+FMqOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076042; 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=FgXJvG791MAO2b3jzxQwtT5F6SoXocfSxJs7BnLQOHY=; b=FlZvsB9HsKU3y99HlukuuftL8PJMr5LsFq35hdKzQ8LFKR8bXp9GyCfmJKIgqwF9wF8yRs rIZMHHtpXNUeFemvV3OjzE+Jqq0yRnXN035hRXQoCD1vuRzKcFXzWaashLvPuGF0YdUc3E uy4yfFCtChWEQbgHAbzDQBQCpe3IG3syoCOMJyeJb/k3ow/gqukTLlNpRIgjFcK3iWLwKE o+Eaod+pJ4DJZ58WqUC6UwBRjnP5VI7Gu6tVqyUuo3uUG0JQmvC4qAT5+YU1lOc5taTWkM fbV+lS0m77Or+5UI4/X72feuPiQ4Oy19a9IG7blucFg1DDS60A+RrL0NOMPEPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxYQ4PHgz3J for ; Thu, 26 Feb 2026 03:20:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27d40 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:20:37 +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: 49684d7d93d3 - releng/14.4 - nullfs: Fix handling of doomed vnodes in nullfs_unlink_lowervp() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 49684d7d93d318391c4a2b33b74f5cc3fba61143 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:20:37 +0000 Message-Id: <699fbc05.27d40.1fe8b41e@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=49684d7d93d318391c4a2b33b74f5cc3fba61143 commit 49684d7d93d318391c4a2b33b74f5cc3fba61143 Author: Mark Johnston AuthorDate: 2026-02-25 15:31:30 +0000 Commit: Colin Percival CommitDate: 2026-02-26 03:12:43 +0000 nullfs: Fix handling of doomed vnodes in nullfs_unlink_lowervp() nullfs_unlink_lowervp() is called with the lower vnode locked, so the nullfs vnode is locked too. The following can occur: 1. the vunref() call decrements the usecount 2->1, 2. a different thread calls vrele() on the vnode, decrements the usecount 0->1, then blocks on the vnode lock, 3. the first thread tests vp->v_usecount == 0 and observes that it is true, 4. the first thread incorrectly unlocks the lower vnode. Fix this by testing VN_IS_DOOMED directly. Since nullfs_unlink_lowervp() holds the vnode lock, the value of the VIRF_DOOMED flag is stable. Thanks to leres@ for patiently helping to track this down. PR: 288345 MFC after: 1 week Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D55446 (cherry picked from commit 8b64d46fab87af3ae062901312187f3a04ad2d67) (cherry picked from commit 6ed373227680b016b4cfa5af1b802ef23a121513) --- sys/fs/nullfs/null_vfsops.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c index 8b9e04775449..cb637c98673e 100644 --- a/sys/fs/nullfs/null_vfsops.c +++ b/sys/fs/nullfs/null_vfsops.c @@ -465,16 +465,12 @@ nullfs_unlink_lowervp(struct mount *mp, struct vnode *lowervp) vhold(vp); vunref(vp); - if (vp->v_usecount == 0) { + if (VN_IS_DOOMED(vp)) { /* - * If vunref() dropped the last use reference on the - * nullfs vnode, it must be reclaimed, and its lock - * was split from the lower vnode lock. Need to do - * extra unlock before allowing the final vdrop() to - * free the vnode. + * If the vnode is doomed, its lock was split from the lower + * vnode lock. Therefore we need to do an extra unlock before + * allowing the final vdrop() to free the vnode. */ - KASSERT(VN_IS_DOOMED(vp), - ("not reclaimed nullfs vnode %p", vp)); VOP_UNLOCK(vp); } else { /* @@ -484,8 +480,6 @@ nullfs_unlink_lowervp(struct mount *mp, struct vnode *lowervp) * relevant for future reclamations. */ ASSERT_VOP_ELOCKED(vp, "unlink_lowervp"); - KASSERT(!VN_IS_DOOMED(vp), - ("reclaimed nullfs vnode %p", vp)); xp->null_flags &= ~NULLV_NOUNLOCK; } vdrop(vp); From nobody Thu Feb 26 03:26: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 4fLxgl0fTZz6T6wV for ; Thu, 26 Feb 2026 03:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxgl01Plz46LC for ; Thu, 26 Feb 2026 03:26:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xY2OJUAFc4Ow2/YIIDK3E+E7X6V1A1xBgrdKvMA8suc=; b=jt4nN90YLG3xxgKYtQ8CUp4OcIcZFxIlmL9aRXzx15q3GWJ2gHGTc4VwWgeXnZBEnpvFVk MO3Orvo99vA6wdbJsWHtttO0JW0Pe2faxwmi3I2TrXijzpQtEuDKBU2hTMRBXZgDW70/GK LuU3EAu4CxxVCJMkIdgFlBXo8wZWbwGCgFCip05AcNHQ0iE1f2f0ZQ/Tuf/2jbUlBTQEyc AzjGc13N5fnmI0dZ/FpnIz31CoR0Si4apT5uUv9nOqki3XIo3kUebw5a4VQrHGyUUR74MN JjDvN+/Ow9nHrF4mU5JYSiPWFxh9/rPpte7IIBNU7ugOSRNjNYLjTpEhDpD4nw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076371; a=rsa-sha256; cv=none; b=n785uw6hmX1XAmesXvycYhcYY0t6JIA4JhbhCCemyhDZC3VFl40a7M+q1QvQXQ8/1ETcHA JS3xl5/gJI3jagwN2l0X5+AwJMBW70jUxW4OcJAQxP4WceYMDpnwzsJrAsauKIgt2ohV1A OEjj+lzuOCyq1TssfIJruUFJJdmM6Vi80CcPQybHs9/Ta5V/SUX+TG8Y1hMZNn0CwHSGZ1 XofhOLpsIKYd6CYx3oLnSaNDRYsb0/WQwwsPP6x4TizUioGmItwwaw/7r+5ljvleWgTACT FIa6DMKtdPvsC279AOt26LfWO6jYVvk9iyUf4ynmUQH95L5B4T+P6Ej5O842zQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xY2OJUAFc4Ow2/YIIDK3E+E7X6V1A1xBgrdKvMA8suc=; b=nVsybxgbaYEmBmOct1meCCP24uDkeNb2w2cRVRlAqeuQAh09Lw9kDXT1XH2xLYlsDEADtl kYBpwvfYfFW1GA8YtQZVlvhLykGs1/0hkj+Ms+SIQ/ykurqn2n96akznRiHmMOjnFCxuW/ CeFayvDftuOESyyaRQMW8bisilMiP3dX84UadItYMnqU3pqE+zXuWH6EfxMbbgEYZMTf5S S7Qh1fQz6fJ8FgcBRDPEhrNKRPAr97mXNEcqOd0uoDTUGWMGcLPdmk+zRDGpXme9eXneRJ 1OWXfKoVQPxzZdXtB/YVltgPmQo7EJ405sHJqcuniCmG7Qu+dk8eSOBQD1E+eA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxgk6S9gz7B for ; Thu, 26 Feb 2026 03:26:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2778f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:26:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ahmad Khalifa Subject: git: f03fdff591aa - stable/13 - efibootmgr.8: capitalize examples section header List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f03fdff591aac090279b3a58030740172c80621e Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:26:10 +0000 Message-Id: <699fbd52.2778f.5b12b66e@gitrepo.freebsd.org> The branch stable/13 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=f03fdff591aac090279b3a58030740172c80621e commit f03fdff591aac090279b3a58030740172c80621e Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:26 +0000 Commit: Ahmad Khalifa CommitDate: 2026-02-26 03:10:09 +0000 efibootmgr.8: capitalize examples section header MFC after: 3 days (cherry picked from commit fac9ae3db4e6a28dfd467369e262f636e10a3b01) --- usr.sbin/efibootmgr/efibootmgr.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/efibootmgr/efibootmgr.8 b/usr.sbin/efibootmgr/efibootmgr.8 index fc8da06719c5..68eef1c9cbb5 100644 --- a/usr.sbin/efibootmgr/efibootmgr.8 +++ b/usr.sbin/efibootmgr/efibootmgr.8 @@ -179,7 +179,7 @@ Displays the UEFI device path of .It Fl v -verbose Display the device path of boot entries in the output. .El -.Sh Examples +.Sh EXAMPLES To display the current .Cm Boot related variables in the system: From nobody Thu Feb 26 03:26: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 4fLxgm2gYfz6T6bt for ; Thu, 26 Feb 2026 03:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxgl70wPz46cg for ; Thu, 26 Feb 2026 03:26:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YnhUs7SrVcITKRVdtJx+hJjNsLtDZyPXPtaRjX/8LSg=; b=ZbAf8YSKQmdAWInxLL2TXbaUN9DK9OHnw3ybEKMWLquh4g41gr9ACZNNWqY+c+DaTQ8z7X klzLybPGDY+xYZEqb9qldtqRechtZCHvtGHwOChFf51NTk383V7Jgel6k4CZakC5XkmIZv V9x3EcJidZAY0H1W0ml+lyl82fp68S5j1wCqicMXvfP0DNGpYTI7x/KCHRYKpcvmFqSqoK Jway7+hPpsgPezZ3b0PUGo0cpyy0D9scG45pAvSPWdK3bCawbkaLuIFzMclyrTK+03OC5C TmjBeXKSTLwVSxZAfOPSpzABToaSKMHfLzAfd7ByOKfRvbgf8QRXzEtf7G24oQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076372; a=rsa-sha256; cv=none; b=CyQxMP841Sw74oNAGl/7uv7GTnL/pdaQwYkoVY95xf6CnCFVhJuyS+jsryvqib0o4+ID4i 7Jm+C9iMaRnd/JU9KkA1D8hcbVyH51sIp2bL+bdhjxY59Gvv1fdx3acHi+Hcsu5nXZh9Jb k7yFxveVXgyfjxMl+evultLQcxg3/jIZu8TnO0T8++9mKlWgMVK9ys2OX9mLCSplYTBN5S gOKFZYfRcC2sIZfVzlXH1Ubeyd/Iq5watrU6xVETlx5XOk9oZdutFQP6lEKk6Wmu0LCvZJ AipIJsOAtRWTxixwQXPwL4emi2UYhUeMVszTFp8YNRF3qS4evwwfy1ZunQFSOw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YnhUs7SrVcITKRVdtJx+hJjNsLtDZyPXPtaRjX/8LSg=; b=C+2fyENPSPRaig2YJ5p70LqZ71DDduEkRca9sDCmd51oLsuZMqL8GDzHvRw5BZkwdtyu2m WmYAJkfELXWBLf+7mL+y2zk7eZsPCfdTYkkw7TjPy196Mb/ADjGOmjXkvTkGW/Fl4FGx6L tlaxYiPMXpnCPDPUs+AhyQ0b+nj39gimuMYqhoqds5gDnXpIepTD+2VCU9RXET5vkBsRTt D9sedQ5jLyO8Kv1tzB0b45qA0SOkMbOnn5wyfFKH5OecHAojF3Z9NBHn52OhY/hiZgivyL 9SyHVyRM1nMQW+QsSnTS1+dkML/kDTHEl2dQM/z5faLUUnsxQ2ryW7euVwFwUg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxgl6RgszSM for ; Thu, 26 Feb 2026 03:26:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2684f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:26:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ahmad Khalifa Subject: git: 0f5900bf663b - stable/14 - efibootmgr.8: capitalize examples section header List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0f5900bf663b980c88546711077110aef88972a7 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:26:11 +0000 Message-Id: <699fbd53.2684f.21f7fad2@gitrepo.freebsd.org> The branch stable/14 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=0f5900bf663b980c88546711077110aef88972a7 commit 0f5900bf663b980c88546711077110aef88972a7 Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:26 +0000 Commit: Ahmad Khalifa CommitDate: 2026-02-26 03:13:15 +0000 efibootmgr.8: capitalize examples section header MFC after: 3 days (cherry picked from commit fac9ae3db4e6a28dfd467369e262f636e10a3b01) --- usr.sbin/efibootmgr/efibootmgr.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/efibootmgr/efibootmgr.8 b/usr.sbin/efibootmgr/efibootmgr.8 index fc8da06719c5..68eef1c9cbb5 100644 --- a/usr.sbin/efibootmgr/efibootmgr.8 +++ b/usr.sbin/efibootmgr/efibootmgr.8 @@ -179,7 +179,7 @@ Displays the UEFI device path of .It Fl v -verbose Display the device path of boot entries in the output. .El -.Sh Examples +.Sh EXAMPLES To display the current .Cm Boot related variables in the system: From nobody Thu Feb 26 03:26: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 4fLxgn38Bnz6T6tb for ; Thu, 26 Feb 2026 03:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxgn0Xr9z46Jb for ; Thu, 26 Feb 2026 03:26:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HYbDGj5ENJv6iDhrvu5vuQQ7xMwttkMuB6pHWnBNU9w=; b=bNf5p5iu8jzDqOag54UVHRErH49BP3fAkjsEgtVPGOPx53F0e2/i2QmLDJ1Ss5vg3bGpB2 pb1u8XgoNZ1yV1XR0mO3TQ2UMbZH6mp0E2vIWUAsrQXMCC273eMZoB6HHzO+nc1uFSASuF BXly0IWtSNAnKFdDlqdVjqJfMWu0RklD44yGxJnv3kKrYHHLXFIDCVr+XsUU5P3FyB6gzl KxGU4P/dAZpa1w7Zgxb2y/ygTkJ17ifbst/UUEsY0zdYYFTy3vCOtulugL1eNhKmywFihz BepMhu7YZtxfZoTfioHW2f+Kf32dFucJtv79hyBH7GSmRhA3NxqkmruurAVCSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076373; a=rsa-sha256; cv=none; b=l+juIHDfzRo8q9gol2OoNhNUQGCSA2vrWcc/ZTbP0ArFoEtEknGrLAiSY5MkSNw3bXLNfJ YM4h1UVzLzACM6G0kJ1Uon3I7rk9PJEYebkUxnGIObP2MENuSz/LNbJtdILAF3mUUITL3Y zQKUUiYmdm1zoet2rAzUYyymEP0pkAPMfRkmdtjSkubVmzOyzLMlG10EolMRtIOzMqsgv/ IGptJQ2ahrwBLl5RdDTMxKHJZiwrKVJrs/2wdG2FP3xImTxLIuG7UmlDvolHFv/XTjlf2c KFdtCXpwpU32vSg+xBlMTu236SkzIYbk9424OshBanuzvlkoyhZGQCxORPXkwg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HYbDGj5ENJv6iDhrvu5vuQQ7xMwttkMuB6pHWnBNU9w=; b=lFUGsppStHCRxElMlfXDd6gwCsB9YS2nk5gxSLTpWRYVSelyzkY7EsqHCVk3Wl0eobwDj3 zRdHe8MNibJQbRpkfrq7vosQkR4p4j5pdScvMlN8NPQgPxoyyMDuuGpvQGi1LNGwWaaNzU vSUnLs/wtJklYqbXJ3/qfe/KBpg9ZvsOPsk8DHgYZ7geqlYEFQvYo92fzWoUvCyJYNmpp6 suFhCApIa8kWvNvqGU4unUMZe45oZ8Kaoob74reojzGUNM0w5yacIuR22PPI4pVzZ+LaKq 1in2m1pc2Sbqzzv+Up/nEB3r7hmMhJJZcZkWA2pu7nRWPwMlc3RDUCm6AosnZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxgn07XtzSN for ; Thu, 26 Feb 2026 03:26:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27806 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:26:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ahmad Khalifa Subject: git: cfdd90abab51 - stable/14 - bsdinstall: fix EFI boot entry creation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cfdd90abab51581120da75b45018a79237228b33 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:26:13 +0000 Message-Id: <699fbd55.27806.26c7464e@gitrepo.freebsd.org> The branch stable/14 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=cfdd90abab51581120da75b45018a79237228b33 commit cfdd90abab51581120da75b45018a79237228b33 Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:32 +0000 Commit: Ahmad Khalifa CommitDate: 2026-02-26 03:13:15 +0000 bsdinstall: fix EFI boot entry creation update_uefi_bootentry assumes that the caller sets FREEBSD_BOOTNAME and mntpt, which isn't the case anymore. The result is that there is no "FreeBSD" boot entry created/updated after install. Most machines manage to boot from the removable media path (if the loader is installed there too), but some don't. Take the loader's path as an argument and rename the variable used in the ZFS mirror loop so mntpt can be reused below. Also mark nentries as a local variable so it doesn't leak out of the function. PR: 293385 Fixes: 494de51bc0074472d1b01604f085daea0844f240 MFC after: 2 days Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55469 (cherry picked from commit 0fd91c489134643ac9e38c0f55ba7464fe892c5e) --- usr.sbin/bsdinstall/scripts/bootconfig | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/bootconfig b/usr.sbin/bsdinstall/scripts/bootconfig index ba9a4369429c..5bcc49084617 100755 --- a/usr.sbin/bsdinstall/scripts/bootconfig +++ b/usr.sbin/bsdinstall/scripts/bootconfig @@ -80,11 +80,13 @@ uefi_copy_loader() update_uefi_bootentry() { - nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local loader_path=$1 + # No entries so directly create one and return if [ ${nentries} -eq 0 ]; then f_dprintf "Creating UEFI boot entry" - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi @@ -94,13 +96,13 @@ update_uefi_bootentry() for entry in $(efibootmgr | awk "\$NF == \"$EFI_LABEL_NAME\" { sub(/.*Boot/,\"\", \$1); sub(/\*/,\"\", \$1); print \$1 }"); do efibootmgr -B -b ${entry} done - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi FREEBSD_BOOTLABEL=$(dialog_uefi_entryname "${EFI_LABEL_NAME}") [ $? -eq $DIALOG_CANCEL ] && exit 1 - efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${loader_path}" > /dev/null } f_dialog_title "Boot Configuration" @@ -148,21 +150,22 @@ if [ -n "$(awk '{if ($2=="/boot/efi") printf("%s\n",$1);}' $PATH_FSTAB)" ]; then # over gmirror, so we only do this for ZFS. esps=${TMPDIR:-"/tmp"}/bsdinstall-esps if [ -f "$esps" ]; then - mntpt=$(mktemp -d -t bsdinstall-esp) + tmpmnt=$(mktemp -d -t bsdinstall-esp) for dev in $(cat $esps); do f_dprintf "Installing ${file} onto redundant ESP ${dev}" - mount -t msdos "$dev" "$mntpt" + mount -t msdos "$dev" "$tmpmnt" uefi_copy_loader "$BSDINSTALL_CHROOT/boot/${file}" \ - "${mntpt}/efi/freebsd" "${mntpt}/efi/boot" \ + "${tmpmnt}/efi/freebsd" "${tmpmnt}/efi/boot" \ boot${ARCHBOOTNAME}.efi - umount "$mntpt" + umount "$tmpmnt" done - rmdir "${mntpt}" + rmdir "${tmpmnt}" fi - # Try to set the UEFI NV BootXXXX variables to record the boot location + # Try to set the UEFI NV BootXXXX variables to record the boot location. + # Note that the ESP is mounted at ${mntpt}/efi. if [ "$BSDINSTALL_CONFIGCURRENT" ] && [ "$ARCHBOOTNAME" != ia32 ]; then - update_uefi_bootentry + update_uefi_bootentry "${mntpt}/efi/freebsd/${file}" fi f_dprintf "Finished configuring ESP" From nobody Thu Feb 26 03:26: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 4fLxgp6xSFz6T6th for ; Thu, 26 Feb 2026 03:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxgp3zdVz46fr for ; Thu, 26 Feb 2026 03:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076374; 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=t2uT3ptlw5AlFxXanlB+65eyKF7pbBFBZZCTpliVYXw=; b=Og2CqbXd/k/cD+T4lGCdwLqb6ZlE5+FnNqtMDaEagLOIqdrqADBxUDFaqs/UwP/G41xoGA reYS1ih4+kqLQbwgs87g2l4sgYjUe/JHo1WoLoEwPTnHUpS5LJj2BaUYP6Ic21NSbq5pvl nLQXkloOGKzUpzYM1LCUJ7TpjntIU6VZ3M5vzFpaPg93+Ql3ToRe78qMWwlCmSrgSI60uA KzrsVvgAP9jCIjwM8qNZFlDJNd02WEjyisklboWORnb6LY5CGxef9Vz1IScyIQAQ/pXSmI ik5HXxO9mBjj30sOUK9b7APcrM50qNksvSzW2AjV2dZ+1zJFmNdxChvXVoF4Mw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076374; a=rsa-sha256; cv=none; b=Yy/cggM3Eao1gm77KCvPiH+vHDNi8SlPLRJV/z0su6h8QlfJ5g8TvCEfmKWQ7A+qu0LLGA aeCVwjISbNxqRXxSZ6rd8hF4IMrjGYT+AFlhFnrDRPiMHmb/R8IO7063tIZGkHl2k3BW9H 13UfC7sbYSZQLSgk7K6EgJYlo8nDD2lfdIvFnAyo+Avx/Es4Y8yfeP0Ptui7q48/eeokj4 YbBFHu/eqkouKXMJU4uzRKA4W67/+d4aED7SrbWu1jiTiOxhVsFokybavkN3f8PreviWg3 IWbTuct4oZhhaG6RUeAFuPOFHPTGHTOrWOARUc3WjEE4P33B3C5RYCBODhzbCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076374; 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=t2uT3ptlw5AlFxXanlB+65eyKF7pbBFBZZCTpliVYXw=; b=XI1WBBL8EXq7uSF3dyyEHDAAsL6qitzcsQ1+1F3ZedJgJ3lQbdl4Fk+1NuxCaGUUJsU5Yo FEYU44K9uUTFpnHj4sZ0RrthTDkjpu4gMKruS+YYBNROckHadCBQJlZtEHn9PyopXceaiZ mKjpAY5wJMlMcJc2PV33MuxGzdFmzlPMIQQ0LP8AzgK4TJl2Beb/VwSpo83LmTTzr0NXCm O29gDgPAq0DlhXBI1VqyMl915xDke/2U6GrZSLxiMzMIqTXtGXBE5ZN/GgFtLtbUDAo6l9 D29rbRLQbNlVxZvH3J0GmHN8XRJ0syZ847Q71XkvfvYw5OogLrRuQqLwr8vqZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxgp18wDzGj for ; Thu, 26 Feb 2026 03:26:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2780a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:26:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Quent=?utf-8?Q?in Th=C3=A9?=bault From: Ahmad Khalifa Subject: git: 923b3fc963d9 - stable/15 - sys/subr_module: remove useless macro gates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 923b3fc963d9d1a1cd03d628daac68af0b57f366 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:26:14 +0000 Message-Id: <699fbd56.2780a.ff1974b@gitrepo.freebsd.org> The branch stable/15 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=923b3fc963d9d1a1cd03d628daac68af0b57f366 commit 923b3fc963d9d1a1cd03d628daac68af0b57f366 Author: Quentin Thébault AuthorDate: 2026-02-05 14:57:11 +0000 Commit: Ahmad Khalifa CommitDate: 2026-02-26 02:03:43 +0000 sys/subr_module: remove useless macro gates These constants are always defined by sys/sys/linker.h. Reviewed by: vexeduxr Signed-off-by: Quentin Thébault Sponsored by: Defenso MFC after: 2 weeks Closes: https://github.com/freebsd/freebsd-src/pull/2004 (cherry picked from commit 912418193ed1f9a0f58b083037751b1fbc4c30ef) --- sys/kern/subr_module.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/sys/kern/subr_module.c b/sys/kern/subr_module.c index d07990cebdc3..f8b6770e3189 100644 --- a/sys/kern/subr_module.c +++ b/sys/kern/subr_module.c @@ -433,16 +433,12 @@ preload_modinfo_type(struct sbuf *sbp, int type) sbuf_cat(sbp, "MODINFOMD_VBE_FB"); break; #endif -#ifdef MODINFOMD_FONT case MODINFOMD_FONT: sbuf_cat(sbp, "MODINFOMD_FONT"); break; -#endif -#ifdef MODINFOMD_SPLASH case MODINFOMD_SPLASH: sbuf_cat(sbp, "MODINFOMD_SPLASH"); break; -#endif #ifdef MODINFOMD_BOOT_HARTID case MODINFOMD_BOOT_HARTID: sbuf_cat(sbp, "MODINFOMD_BOOT_HARTID"); @@ -497,12 +493,8 @@ preload_modinfo_value(struct sbuf *sbp, uint32_t *bptr, int type, int len) #ifdef MODINFOMD_VBE_FB case MODINFO_METADATA | MODINFOMD_VBE_FB: #endif -#ifdef MODINFOMD_FONT case MODINFO_METADATA | MODINFOMD_FONT: -#endif -#ifdef MODINFOMD_SPLASH case MODINFO_METADATA | MODINFOMD_SPLASH: -#endif sbuf_print_vmoffset(sbp, *(vm_offset_t *)bptr); break; case MODINFO_METADATA | MODINFOMD_HOWTO: From nobody Thu Feb 26 03:26: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 4fLxgr2Ph6z6T74T for ; Thu, 26 Feb 2026 03:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxgq5l7Dz46p3 for ; Thu, 26 Feb 2026 03:26:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4959B4Q+U4kHkUQ/U4Haf0GxDp2OXCGVmp9BoQ72Ic0=; b=uuBLLl21LjSKrgn5H6lT7/O5A2GdCB4J8/ez3fABLeuj6+lMS3WaoPrmA2YsCpxt67Asg5 +n4fB1844nGP3sDS7FDlHwJHtdEj9nIvu1ieILaOJbkcrN+tpxSPBL4RkqO3c7iP0/QR+7 q7elxmX4QApMP+mXyNFHnZv7wspyWCJ7b34WMa2gTfJ1DNwHF1dkKe0aMXJ7/js9jMGMPq FgIGKqfDQFGWvf/7riDcyt8W4fUOqOKQFO+dpHVnSapT0+3B96on5vUWdkXUtim7Q0GyLF wz+QBgb+I4XPP+IFYvoimyPr/qebWjRLMvZS6DaMl96A4HbspJlSlDY0RittPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076375; a=rsa-sha256; cv=none; b=qpgbogwf/H7BLYM+GPZrnV5nQEdsa6LUuhIhZXwZKa7p5WZ2QHVU4pQyD2DRew0L32Iumy Bm4NJrg3mef3XD3OeKD1tOpT4zpVzWgu6aeqgQXDND3cCIRLrXmtshKPekCtI17rzSlyKq argfQAEpzbYHmBhDz1rmEmZg+EhQlEsVPntBJfLJm+GbrG2aGU6Zb1oCtLsxH5Kqs9oY5+ lqtJBJ1h3/H2r1N+YMkYL5VMdnOWCt1M9qtpPilQu6VRCHcW2u1FfeGO8WtoKzXv/FRFiN Fx04WURvS6iK8WP7YLWFsWjDobRQ4mmFpCtd45ae5i/SFBB36m+ELTgMgzdlcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4959B4Q+U4kHkUQ/U4Haf0GxDp2OXCGVmp9BoQ72Ic0=; b=sLiwh15R7vZC6eyP7i0a+NHOjaiN8YkUe4ZwTRVpY8ZZ2nJPrDvvab7pOcH946SiLAmtmk f97SjPiYHA+q2LY83kWzjfAKtZi3TyhpGmm5NtTbOUjRPEfcDqSSi5JBCZSlxkfmmOfnmb Rr9f0K0WQjU/gFFfAjBwitMv/LhqGctAg7MRqFBfQ5M8WQ689S9XAWEmVShWwYluzE8lip tFNWJumcWzDUE/drfJfYuDmeMeVwxTeLP6W7VqD4gusR35zjE35LluqeEn5vLSqyU1YFN7 tgCYDoWaW5DJv+jjtciuaQsEwzcVVIXaAuXywAgD+C6NmumtTPTIO+kRgw4bOg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxgq204MzGl for ; Thu, 26 Feb 2026 03:26:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26c45 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:26:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ahmad Khalifa Subject: git: a36976045138 - stable/15 - efibootmgr.8: capitalize examples section header List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a36976045138ef067be9026e6118c6b308356c37 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:26:15 +0000 Message-Id: <699fbd57.26c45.5ef46ece@gitrepo.freebsd.org> The branch stable/15 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=a36976045138ef067be9026e6118c6b308356c37 commit a36976045138ef067be9026e6118c6b308356c37 Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:26 +0000 Commit: Ahmad Khalifa CommitDate: 2026-02-26 02:03:53 +0000 efibootmgr.8: capitalize examples section header MFC after: 3 days (cherry picked from commit fac9ae3db4e6a28dfd467369e262f636e10a3b01) --- usr.sbin/efibootmgr/efibootmgr.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/efibootmgr/efibootmgr.8 b/usr.sbin/efibootmgr/efibootmgr.8 index ca4e87a30ef8..e5054023e40c 100644 --- a/usr.sbin/efibootmgr/efibootmgr.8 +++ b/usr.sbin/efibootmgr/efibootmgr.8 @@ -202,7 +202,7 @@ Displays the UEFI device path of .It Fl v -verbose Display the device path of boot entries in the output. .El -.Sh Examples +.Sh EXAMPLES To display the current .Cm Boot related variables in the system: From nobody Thu Feb 26 03:26: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 4fLxgr529nz6T76d for ; Thu, 26 Feb 2026 03:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLxgr3Ybjz46cw for ; Thu, 26 Feb 2026 03:26:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QiFR2FaTxFuELEN5DrikY3WPgA0cJWNLJlqQu7rFFrQ=; b=uujoHodEkox8GRy+rjxTM0zsQaBs1CDVFxLBRugX8q05amcnW/Vrk/8Z1xshB8CN54SDmp 70dLZGIOa/hgMTQzmRWnXBrXtNRKHUJydknIg4ydQFu+MVSssH/EKwUtGFhJse4ncdGoWs FDqa/N9MNMA0EuAUn5W0qu0tyDKY7yB1tEvrD4G5SpZK5TYo4tKTjZMB2XtWS+gINPMLR9 Y/HLJ7qvc1i4dKAnBm20L3LY+NH3i6baMO0Z5TvlD9ixzgkpeu2YhkqXAm08H9w6RLYcgg OveEaArT/jyhM+pd2DzxltaGDBMzxtcUVsPuMCHpb4YVOxuaMjItbOh4UDT1eA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772076376; a=rsa-sha256; cv=none; b=ExFAy7P+OZtpnnXubxAP4WyrUjxBOL8xg6nin85YKDrFAombgLtsRgVwmu8wxnTUMInKvm nLAEtR3FLWR2bg4b0X6/4zOhiBX+XErtpEZknnMwMwfXqTe6zrHNvFdyRBuqfpl9Y6PgMJ 6RKs1W46ur3uQCxvs5/DvVR2fHpJqAzx3WuvLhSeuZDRVPl4EreAOS1njY423unVSMbwJr LNXnF6kaeU84rVmCC6K5wxvA3x30enyzaf4wnpJRJX81EmS6cQLAuDRAZv21pQrDvJhDbT zvrO/QaSWTLrhpQfZUpN3HmMGrBhk04/u+fU5SdH2fh4/kB2Tezos6RSGAPJ5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772076376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QiFR2FaTxFuELEN5DrikY3WPgA0cJWNLJlqQu7rFFrQ=; b=U2+l10IytpbESgPRkeSCZ2TAiOoNHhc4IpG+jYv6Ye8uFtiakuzgsGAwoKfku9LsHbVDbH aRN1abg/9dNdMso+XvZONS0lROiXfGwwK8ttRyKSGwFtZ+is3flPkAGzPnLygKZMXd45ie bRdzlvXK0OeE3jR5PjBnamVtA+fQ/5fv5NlzyQzvOMbOyhkp2CQNemCnNK2lGUavxdSCkG dxahPasqu8Mp8zpklqz/4mpSO5VH6gCt2vb9oKsWd1Z6+BhFgklKLWkuEyHH7/hSQTNCBp bC/6RXXvtbhdkfrwpMMlWZXhPGqNz9w046ZQ7huY/LNl7FGf/j/0HyaOaz1FMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLxgr37vPzSS for ; Thu, 26 Feb 2026 03:26:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27881 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 03:26:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ahmad Khalifa Subject: git: 5425bdae0970 - stable/15 - bsdinstall: fix EFI boot entry creation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: vexeduxr X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5425bdae09703d028a1e48180e0709ad4e86af12 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 03:26:16 +0000 Message-Id: <699fbd58.27881.6d4ed6ba@gitrepo.freebsd.org> The branch stable/15 has been updated by vexeduxr: URL: https://cgit.FreeBSD.org/src/commit/?id=5425bdae09703d028a1e48180e0709ad4e86af12 commit 5425bdae09703d028a1e48180e0709ad4e86af12 Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:32 +0000 Commit: Ahmad Khalifa CommitDate: 2026-02-26 02:03:53 +0000 bsdinstall: fix EFI boot entry creation update_uefi_bootentry assumes that the caller sets FREEBSD_BOOTNAME and mntpt, which isn't the case anymore. The result is that there is no "FreeBSD" boot entry created/updated after install. Most machines manage to boot from the removable media path (if the loader is installed there too), but some don't. Take the loader's path as an argument and rename the variable used in the ZFS mirror loop so mntpt can be reused below. Also mark nentries as a local variable so it doesn't leak out of the function. PR: 293385 Fixes: 494de51bc0074472d1b01604f085daea0844f240 MFC after: 2 days Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55469 (cherry picked from commit 0fd91c489134643ac9e38c0f55ba7464fe892c5e) --- usr.sbin/bsdinstall/scripts/bootconfig | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/bootconfig b/usr.sbin/bsdinstall/scripts/bootconfig index 9c188c1d8a91..d551d2448611 100755 --- a/usr.sbin/bsdinstall/scripts/bootconfig +++ b/usr.sbin/bsdinstall/scripts/bootconfig @@ -83,11 +83,13 @@ uefi_copy_loader() update_uefi_bootentry() { - nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local loader_path=$1 + # No entries so directly create one and return if [ ${nentries} -eq 0 ]; then f_dprintf "Creating UEFI boot entry" - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi @@ -97,13 +99,13 @@ update_uefi_bootentry() for entry in $(efibootmgr | awk "\$NF == \"$EFI_LABEL_NAME\" { sub(/.*Boot/,\"\", \$1); sub(/\*/,\"\", \$1); print \$1 }"); do efibootmgr -B -b ${entry} done - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi FREEBSD_BOOTLABEL=$(dialog_uefi_entryname "${EFI_LABEL_NAME}") [ $? -eq $DIALOG_CANCEL ] && exit 1 - efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${loader_path}" > /dev/null } f_dialog_title "Boot Configuration" @@ -151,21 +153,22 @@ if [ -n "$(awk '{if ($2=="/boot/efi") printf("%s\n",$1);}' $PATH_FSTAB)" ]; then # over gmirror, so we only do this for ZFS. esps=${TMPDIR:-"/tmp"}/bsdinstall-esps if [ -f "$esps" ]; then - mntpt=$(mktemp -d -t bsdinstall-esp) + tmpmnt=$(mktemp -d -t bsdinstall-esp) for dev in $(cat $esps); do f_dprintf "Installing ${file} onto redundant ESP ${dev}" - mount -t msdos "$dev" "$mntpt" + mount -t msdos "$dev" "$tmpmnt" uefi_copy_loader "$BSDINSTALL_CHROOT/boot/${file}" \ - "${mntpt}/efi/freebsd" "${mntpt}/efi/boot" \ + "${tmpmnt}/efi/freebsd" "${tmpmnt}/efi/boot" \ boot${ARCHBOOTNAME}.efi - umount "$mntpt" + umount "$tmpmnt" done - rmdir "${mntpt}" + rmdir "${tmpmnt}" fi - # Try to set the UEFI NV BootXXXX variables to record the boot location + # Try to set the UEFI NV BootXXXX variables to record the boot location. + # Note that the ESP is mounted at ${mntpt}/efi. if [ "$BSDINSTALL_CONFIGCURRENT" ] && [ "$ARCHBOOTNAME" != ia32 ]; then - update_uefi_bootentry + update_uefi_bootentry "${mntpt}/efi/freebsd/${file}" fi f_dprintf "Finished configuring ESP" From nobody Thu Feb 26 04: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 4fLyqC1p54z6TDXW; Thu, 26 Feb 2026 04:17:43 +0000 (UTC) (envelope-from des@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyqC1CtJz3Hlt; Thu, 26 Feb 2026 04:17:43 +0000 (UTC) (envelope-from des@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079463; 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: in-reply-to:in-reply-to:references:references; bh=sqIn3MWVWhpDvYZOSNyIR58an1Yg6XypzsUttI4HRZI=; b=C5oGxQ/CgTjGnxWMT2630fK/zlm+TCq8FdIIsX1W6J7esHSt1rmkfNOqu24rMCUdF+0e4i zvOD9zoGsxCdHWMnG/Bg2QO6gWQSQzpDiiDepg2NOs6UgAg4whzN7VUsGUxr7qqrSRzlEO nifDnJ6wsfiPb+Ua/5fURYWfee/UaoCAdx8PRMpfJJ2R8vyl++bipuzpJfZzz5KtG1OT7T jFcFr7zWLBFbwJ0vMXy9AVxfSfgojBKXt5t+bxRFisYcbBuUG0Pi0xpURHZOJQ9G7hCS5d l2Ewnt5LGj93tMa/XEjBgRUdT0Sgb8v0wwrxDiBbNfA0/11SF4ZWtyS2FgKB3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079463; a=rsa-sha256; cv=none; b=cRVBgH6UCcTxICPz69Y28UUJa82w4MbwZAysJNTlcUOxq3AXTX1KzXRudYXWsCnKkx3zpI fV3lB+51Kf0ngbS25EgHFDmpuCjO6HNqC/eQgV3D19YAC+b9ADeWLO6bA5bmGVb74rrcWJ 30GZ0QKVvgLUdNmaEB28xorOsg0MRgTT0pS4ExVaWj1YyGian3EbNCdA2OAffAGzHSd56R fTuSQSpo5aMSDYsnfq9P/7qrl5RQgGVmm4BSSODdPWP6Zo9d87CVDuw8to48/sfMQeCwaX b31JWEkNkIe/yZCAgkkzdl4xUEG46DLR/qq5Sf4BBXGz28ZtmUkyz5slrL4eaA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079463; 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: in-reply-to:in-reply-to:references:references; bh=sqIn3MWVWhpDvYZOSNyIR58an1Yg6XypzsUttI4HRZI=; b=QS2IsB/mudEXnJ5LDOJWeaB6ZP89H40HqILF3n8blFBiU9jN87ou1t/stRirNrsOASrGS3 isOrG5boswq+k+RJi2n5tXdHE6isGTCeXDdjBtWqVcIz2eJrWYKWx07AZfsqztD8yrPm+V 3uUhZaRulCddc3+PH9MQm/+dL5GRk191Jblo3+RGuoj+4pryyKRs3BFiXJxZy+VuY0s0kn jtPyrhJtl/E7F8zk5OXWZAB0xXC0Iheg9aRvA5lIZAmtQeud3/T+pd0deDOsiVfqC1+HIE SfGJQAg/E9x2XggihAhj8lrDcWMt2f/MVC5C1xrbXFdVywoWsKIRtok6+DDQtw== Received: from ltc.des.dev (lfbn-nan-1-698-103.w86-236.abo.wanadoo.fr [86.236.35.103]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: des) by smtp.freebsd.org (Postfix) with ESMTPSA id 4fLyqB6qtgzPmL; Thu, 26 Feb 2026 04:17:42 +0000 (UTC) (envelope-from des@freebsd.org) Received: by ltc.des.dev (Postfix, from userid 1001) id E8BE2F67EA; Thu, 26 Feb 2026 05:17:40 +0100 (CET) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Baptiste Daroussin Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: Re: git: 297d5bf89067 - stable/15 - ncurses: merge update to ncurses 6.6 In-Reply-To: <6996cfd3.1c403.1e98d5da@gitrepo.freebsd.org> (Baptiste Daroussin's message of "Thu, 19 Feb 2026 08:54:43 +0000") References: <6996cfd3.1c403.1e98d5da@gitrepo.freebsd.org> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Thu, 26 Feb 2026 05:17:40 +0100 Message-ID: <86ecm8qgt7.fsf@ltc.des.dev> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Baptiste Daroussin writes: > +# 20251215: Remove intrinsic utilities > +OLD_FILES+=3Dusr/bin/alias > +OLD_FILES+=3Dusr/bin/bg > +OLD_FILES+=3Dusr/bin/cd > +OLD_FILES+=3Dusr/bin/fc > +OLD_FILES+=3Dusr/bin/fg > +OLD_FILES+=3Dusr/bin/getopts > +OLD_FILES+=3Dusr/bin/hash > +OLD_FILES+=3Dusr/bin/jobs > +OLD_FILES+=3Dusr/bin/read > +OLD_FILES+=3Dusr/bin/type > +OLD_FILES+=3Dusr/bin/ulimit > +OLD_FILES+=3Dusr/bin/umask > +OLD_FILES+=3Dusr/bin/unalias > +OLD_FILES+=3Dusr/bin/wait > + Please revert this. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@FreeBSD.org From nobody Thu Feb 26 04:22: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 4fLyx23vQWz6TF9S for ; Thu, 26 Feb 2026 04:22:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx21fgXz3JXF for ; Thu, 26 Feb 2026 04:22:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079766; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UkBhHpYgwyh6fGuQcTl8RZz/2Ka8G/q9SykMm8JMt3c=; b=HOCU4YOovKqpi3P1IjUAn2tep0DiENv+VokzkhK0K1pttjVqQ2DY5uIduDS+426eRKD8Dd Bp1YY9+gFCt4NvtiuQLWNg21+24kL1WqqnJFmuNWZNfptu3MAltvnRI7togA/VWznDZTZb 0A4m8eK0sNH4y4rfruU2HNeRCI4LVqdNhfvn2r7CV/DfePm8MTVwzc3WGR8iDk1T6YSY6L 3cyH/OZ6c4bFnptXmwcL0BezXB4nnAsa8fwPyAtRJkAS6OWZxM2qdiQZwf8vukA5BSQ5ME ftfOuxfQ7PfjxiCIa42WfCs4duwV/QWlBASRuWTYqm7nc4J+hHnvDnq+BidYIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079766; a=rsa-sha256; cv=none; b=iIGPoAlZPweYQSSQW2VgXw4tHL6JaZol19e4fOaZocfGNrF3nd+RCvQw+5boy3SW8KmuB4 fZG/4h5PAeqNX9nKo4i+Xgm5aSTmOe5twYwJvTWxaoswj3A/wrHI9bED2xbw59en1MNotb iAldzkLmMAjeWbCd8RDpsEyc2Qx+JWcXkNl3NIR78tfG5Voyk8ueDLBLeJozjy8tyYPZ5R XtL66uYWq5dVCJ1giJxrhVXrdavy/P6+88uf0slcCjIHu5k5m2UCbhhV/xoKCyaxdSjHIB 0rG6677L0GuIoh8bGh8gDNrm1tNHHKBvBDa/RJygIFIRQ5pbx3F099ZN9g2/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=1772079766; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UkBhHpYgwyh6fGuQcTl8RZz/2Ka8G/q9SykMm8JMt3c=; b=R8KU1A+nfUbfcxXIgZ/Oz47PQYFSp5M6cvD6GGqvUrLYn6dqesNLgcTNvzWUhjiRTRySpK lrZe5HuEAPpQZd1tDnk3pwILXS0/vwsIPMdTVlvZ5NT2mzq9/tdpxy1YMJ1G7fyNCbVhrd 1iYbjeFrpZkHYEA74ROj7rU1XFpGdowsKuXtqO9eSfY254DGgsXWQmYruw9uUStaiYcPyw 2H4/D4RsDRiWvVL2B+b1MpBrDh0T5ff+zduq+3BNacsR8BWKg+hKpBXv5WsiQBx+jCohLe d/HZbFYKUTEV1uo0X0P+ArWtU62h322fP/BR9LZFalH4SJ0NGvbrCNoWr0/4CQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx21BMwz1LD for ; Thu, 26 Feb 2026 04:22:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 373e7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22:46 +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: 8124bd4524a2 - stable/15 - m4: Fix eval output width List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 8124bd4524a299a647fb25f8d4ebe2cfe6846a59 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:46 +0000 Message-Id: <699fca96.373e7.6221e272@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=8124bd4524a299a647fb25f8d4ebe2cfe6846a59 commit 8124bd4524a299a647fb25f8d4ebe2cfe6846a59 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-17 14:01:34 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:02:28 +0000 m4: Fix eval output width According to POSIX, the optional third argument is the minimum number of digits to print regardless of sign. We interpreted it as the minimum width of the output including the sign. Additionally, the variable used to hold this value was confusingly named “maxdigits”. PR: 293214 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55311 (cherry picked from commit 507c611aeac7ca9aed12353b1044bb21ab00afae) --- usr.bin/m4/eval.c | 8 ++++---- usr.bin/m4/misc.c | 2 -- usr.bin/m4/tests/eval.m4 | 2 ++ usr.bin/m4/tests/regress.eval.out | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/usr.bin/m4/eval.c b/usr.bin/m4/eval.c index 4e45a71874e1..0963a61a2914 100644 --- a/usr.bin/m4/eval.c +++ b/usr.bin/m4/eval.c @@ -178,7 +178,7 @@ expand_builtin(const char *argv[], int argc, int td) */ { int base = 10; - int maxdigits = 0; + int mindigits = 0; const char *errstr; if (argc > 3 && *argv[3] != '\0') { @@ -189,14 +189,14 @@ expand_builtin(const char *argv[], int argc, int td) } } if (argc > 4) { - maxdigits = strtonum(argv[4], 0, INT_MAX, &errstr); + mindigits = strtonum(argv[4], 0, INT_MAX, &errstr); if (errstr) { - m4errx(1, "expr: maxdigits is %s: %s.", + m4errx(1, "expr: mindigits is %s: %s.", errstr, argv[4]); } } if (argc > 2) - pbnumbase(expr(argv[2]), base, maxdigits); + pbnumbase(expr(argv[2]), base, mindigits); break; } diff --git a/usr.bin/m4/misc.c b/usr.bin/m4/misc.c index 3091f2ad1f9e..fd72292aeac0 100644 --- a/usr.bin/m4/misc.c +++ b/usr.bin/m4/misc.c @@ -138,8 +138,6 @@ pbnumbase(int n, int base, int d) } while ((num /= base) > 0); - if (n < 0) - printed++; while (printed++ < d) pushback('0'); diff --git a/usr.bin/m4/tests/eval.m4 b/usr.bin/m4/tests/eval.m4 index 1d3f886d0d89..dc0fada781f1 100644 --- a/usr.bin/m4/tests/eval.m4 +++ b/usr.bin/m4/tests/eval.m4 @@ -3,3 +3,5 @@ dnl expr parser eval(224&127) eval(224|127) eval(224&&127) +eval(3-2, 10, 5) +eval(2-3, 10, 4) diff --git a/usr.bin/m4/tests/regress.eval.out b/usr.bin/m4/tests/regress.eval.out index 7298b3f43840..b1bb211dcb64 100644 --- a/usr.bin/m4/tests/regress.eval.out +++ b/usr.bin/m4/tests/regress.eval.out @@ -1,3 +1,5 @@ 96 255 1 +00001 +-0001 From nobody Thu Feb 26 04:22: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 4fLyx34lNRz6TFG8 for ; Thu, 26 Feb 2026 04:22: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx32RqYz3Jg7 for ; Thu, 26 Feb 2026 04:22:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079767; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T2Qu62eIBSD/HXrmvxaSoWy0ZnZfwwiYOlQfVl7i0JI=; b=SApymLe5P1VeIN6sJepUcgc6Sg0IVmJiEXUaIV0L+ZrCtpa3MAhZNBuLsWhvwoNVHzFtL8 6D9RdQwfh1vqXQNKV1sldS9tRtmE/1eoKw2cq1P/KCMQ3LIMkl67GgocT2/lbX9NLA1wMm IymXaU82Pp58nA51G7FwOGaeeH5WWaIWAGGMU5awBQW87v7aWCjhr+Yt8fsHM5B40tQ+AF 0zo2QMFTKWRRdRl2AkwzpUfJlHBbzh+2I0Wbr06T/RiNLzu/k5yKtF2tHBuAGS6i/Z67e/ qwA+bxx+Bc6fCFqDNt7CVn3ESjy4fhXmX2POdysXf1DV0KEGveaBY/sb1fbjKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079767; a=rsa-sha256; cv=none; b=ZKnPA4Q+umZzEl7QR4o25kExBaZws7AiPpRD3FBsqkbf9+QY9nqBbNQ63cp0eD7E73Motc afdVGZo0YAqph7N7PNoxvowUf8EgG3GC+s+6o/58DGd9qTPEg6uZOay8RI4JiTizFxwXlP E0OlUYHkbDxrZRuiLwDVToq1B2/66SNIfb/scbPgmA5QeyuWH4T3aWmZFDSm/qvDabd/Dy ZiHrjAHRT1XMhgSIzLAbI9RPOqfZkpWH4pUxA8UU0T+/EDz8Cq9nl6W5HMoZxvtdY/UT9y PKYOhd8onofPcXt/c0hHtpwUCZq4OvzmXRmqcrMPnLSuY/nx2WdzDaQcS4BggA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079767; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T2Qu62eIBSD/HXrmvxaSoWy0ZnZfwwiYOlQfVl7i0JI=; b=sC+mgLt4r+DULMhGJrx4aFPWpQ/ro332edq8wd3mdlDEjNiY8pc2vR7GpdriFJiE5dSiXs 0NE7BWSlWrB9sOVycKlTaQ1eedTMZSDGF8qFn9CAeGIEio+9lnTxmViBobK5fwJUnOKYY6 s+XY5KCWWTx99zHwVhiQMde28PRtB0bcdL1ny2sLWmiO5hW8EGObl0spP9zmRC+zG72bRP tjGSPUxY8YycmXl7yEH1nZR6UJJP5tIM/jGC20e47U+l7txim/e6uaBdAVqNb7QRe7dSHQ eF5Ym+6kkyYoLR18B+PTHFXlIuyUpmTaQVNg8jBRU6BytPENoC6pDxbO2OCHbA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx322mbz1LF for ; Thu, 26 Feb 2026 04:22:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 334f6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: d58ab2ad9499 - stable/15 - diff: Drop unnecessary casts, fix none algo List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: d58ab2ad94994f9d13e1f323caea0a646ff025a7 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:47 +0000 Message-Id: <699fca97.334f6.16c578f8@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d58ab2ad94994f9d13e1f323caea0a646ff025a7 commit d58ab2ad94994f9d13e1f323caea0a646ff025a7 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-18 18:28:21 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:02:28 +0000 diff: Drop unnecessary casts, fix none algo MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55349 (cherry picked from commit d5404462f691230423dc8cc543c6fdc44f34ec31) --- usr.bin/diff/diffreg_new.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/usr.bin/diff/diffreg_new.c b/usr.bin/diff/diffreg_new.c index 29882923cd0e..69deae497962 100644 --- a/usr.bin/diff/diffreg_new.c +++ b/usr.bin/diff/diffreg_new.c @@ -56,7 +56,7 @@ static const struct diff_algo_config myers_then_myers_divide; static const struct diff_algo_config patience; static const struct diff_algo_config myers_divide; -static const struct diff_algo_config myers_then_patience = (struct diff_algo_config){ +static const struct diff_algo_config myers_then_patience = { .impl = diff_algo_myers, .permitted_state_size = 1024 * 1024 * sizeof(int), .fallback_algo = &patience, @@ -69,7 +69,7 @@ static const struct diff_algo_config myers_then_myers_divide = .fallback_algo = &myers_divide, }; -static const struct diff_algo_config patience = (struct diff_algo_config){ +static const struct diff_algo_config patience = { .impl = diff_algo_patience, /* After subdivision, do Patience again: */ .inner_algo = &patience, @@ -77,14 +77,14 @@ static const struct diff_algo_config patience = (struct diff_algo_config){ .fallback_algo = &myers_then_myers_divide, }; -static const struct diff_algo_config myers_divide = (struct diff_algo_config){ +static const struct diff_algo_config myers_divide = { .impl = diff_algo_myers_divide, /* When division succeeded, start from the top: */ .inner_algo = &myers_then_myers_divide, /* (fallback_algo = NULL implies diff_algo_none). */ }; -static const struct diff_algo_config no_algo = (struct diff_algo_config){ +static const struct diff_algo_config none = { .impl = diff_algo_none, }; @@ -109,8 +109,9 @@ static const struct diff_config diff_config_patience = { }; /* Directly force Patience as a first divider of the source file. */ -static const struct diff_config diff_config_no_algo = { +static const struct diff_config diff_config_none = { .atomize_func = diff_atomize_text_by_line, + .algo = &none, }; const char * @@ -174,7 +175,7 @@ diffreg_new(char *file1, char *file2, int flags, int capsicum) cfg = &diff_config_patience; break; case DIFFREG_ALGO_NONE: - cfg = &diff_config_no_algo; + cfg = &diff_config_none; break; } From nobody Thu Feb 26 04:22: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 4fLyx457GTz6TDtZ for ; Thu, 26 Feb 2026 04:22: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx43JTVz3Jg9 for ; Thu, 26 Feb 2026 04:22:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079768; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HaMkMy1KFuYXS9/fUfJdWYoH6LMUdUeYZXlNeP+Peos=; b=nwR4b2StMtXKHkphDNhDYwPwJxc/kehutZl/6Q0bMTZc6D8/ml7Qii6q0hdntfaASucvpO ek2/yNYlTyqouHu8EjzjTXSYNj2GMRbTjKeFvyWC924vVLdg+BaOEcMztWw6gF8D6y9oom fwzpRIAAsitYiUEYvEh7H8OgJi9r5yiaoGPzOp5xxSVIyAbWprBqR6M6B3UvrQ1LJuu+UA Wlle5g+TzubUzfDRJdO0bGp6q6aDiD9d+zUnVnE45bXh3ImXXJR3ls+ZlN7LOC4ewe91Lo r2rxPn5CtMPhj+fEUcX6K6PtPRT89FxGXctnfQ9DEv6H8VXH3+RFoIhH1GqWdw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079768; a=rsa-sha256; cv=none; b=CmmRQbyuVOG3l7vQKZrYkdMLcEhth5NNtfySV05ArLRfvanLY337uh5t4KE5fE9kwqtyEg cZuhRxMwPT67QDYWfVdohGc3+DA842UW8rRyjVHWg7+V1qD80J0zYH/nM+YnYnHaou+I7G 0EvIhzjj2VSHPEvRdb4TNlW2HAeXu33CsjhhZLLpzolsKt7avX5PEkd4Qzx0eVCAoDmZxS cpZgJHXwQtC7J6kmhyKKWxDEBn4Y+weTuqnZAEfOcGGmmsxwRbtnC8jWzVsye6az4J+2d5 cwqyB+xYOoJUgza3sZ04YB4Mvv2tuz7Eb9FfFhvVWkgvfg0aw6MZysulQ4Dc2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079768; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HaMkMy1KFuYXS9/fUfJdWYoH6LMUdUeYZXlNeP+Peos=; b=t4A42PwGP51mL8vfNRH+ZZs18lIbwyNyhc576KSi+IrxAo/U2Du4d2kDAPh2yVpFRWzG2G bMkYGRJdNkV0DZyOV41Yq+SiTEmq6D1fqR5e7LUOrGttQrVSUPwb4Ys/sxZcbJSIuzCZ+Z BZbi7WnWUKg5C10a+0x1BpdPXh8MLc8TG1Bb3iOe20zhx9rPUHOOQ/6Es6eJP4z76AMgyF nWvO6RsEA03fsA4jG+Zl9aYvXWw9NKUowmDC9fCU5C8/FPHHHmf1xMlDRdIMe7ONhLeSAe SAn0fnQmLz9J4w5+WF33K2FPQAkMrqxQ+4idafm59oGhZx5FEAtITng/+qw2sg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx42sWcz1LG for ; Thu, 26 Feb 2026 04:22:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3698c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: 458776896fc4 - stable/15 - libfetch: Clean up fetch_info usage List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 458776896fc4f1eae391e866d2f606c33cd996f7 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:48 +0000 Message-Id: <699fca98.3698c.4fe0b0bb@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=458776896fc4f1eae391e866d2f606c33cd996f7 commit 458776896fc4f1eae391e866d2f606c33cd996f7 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:11 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:02:28 +0000 libfetch: Clean up fetch_info usage * Provide a wrapper for the common if (verbose) fetch_info(...) idiom. * Replace remaining instances of fprintf(stderr, ...) with fetch_info(). * Fix a few style nits. MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55405 (cherry picked from commit 1b7c4d29fdfc975facdc43f6da50947cf3bb8e4a) --- lib/libfetch/common.c | 88 ++++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index f679b2afc95c..0bb65b0b8268 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -229,12 +229,16 @@ void fetch_info(const char *fmt, ...) { va_list ap; + int serrno = errno; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fputc('\n', stderr); + errno = serrno; } +#define fetch_verbose(...) \ + do { if (verbose) fetch_info(__VA_ARGS__); } while (0) /*** Network-related utility functions ***************************************/ @@ -302,7 +306,6 @@ fetch_reopen(int sd) conn_t * fetch_ref(conn_t *conn) { - ++conn->ref; return (conn); } @@ -417,8 +420,7 @@ fetch_socks5_init(conn_t *conn, const char *host, int port, int verbose) unsigned char *ptr; int ret = 1; - if (verbose) - fetch_info("Initializing SOCKS5 connection: %s:%d", host, port); + fetch_verbose("Initializing SOCKS5 connection: %s:%d", host, port); /* Connection initialization */ ptr = buf; @@ -486,7 +488,7 @@ fetch_socks5_init(conn_t *conn, const char *host, int port, int verbose) goto fail; } - switch(*ptr++) { + switch (*ptr++) { case SOCKS_SUCCESS: break; case SOCKS_GENERAL_FAILURE: @@ -564,10 +566,8 @@ fetch_socks5_getenv(char **host, int *port) *host = strndup(socks5env, ext - socks5env); } - if (*host == NULL) { - fprintf(stderr, "Failure to allocate memory, exiting.\n"); + if (*host == NULL) return (-1); - } if (ext == NULL) { *port = 1080; /* Default port as defined in RFC1928 */ } else { @@ -613,26 +613,21 @@ fetch_connect(const char *host, int port, int af, int verbose) /* Not using SOCKS5 proxy */ if (sockshost == NULL) { /* resolve server address */ - if (verbose) - fetch_info("resolving server address: %s:%d", host, - port); + fetch_verbose("resolving server address: %s:%d", host, port); if ((sais = fetch_resolve(host, port, af)) == NULL) goto fail; /* resolve client address */ bindaddr = getenv("FETCH_BIND_ADDRESS"); if (bindaddr != NULL && *bindaddr != '\0') { - if (verbose) - fetch_info("resolving client address: %s", - bindaddr); + fetch_verbose("resolving client address: %s", bindaddr); if ((cais = fetch_resolve(bindaddr, 0, af)) == NULL) goto fail; } } else { /* resolve socks5 proxy address */ - if (verbose) - fetch_info("resolving SOCKS5 server address: %s:%d", - sockshost, socksport); + fetch_verbose("resolving SOCKS5 server address: %s:%d", + sockshost, socksport); if ((sais = fetch_resolve(sockshost, socksport, af)) == NULL) { socks5_seterr(SOCKS5_ERR_BAD_HOST); goto fail; @@ -652,8 +647,7 @@ fetch_connect(const char *host, int port, int af, int verbose) break; } if (err != 0) { - if (verbose) - fetch_info("failed to bind to %s", bindaddr); + fetch_verbose("failed to bind to %s", bindaddr); goto syserr; } /* attempt to connect to server address */ @@ -668,10 +662,8 @@ fetch_connect(const char *host, int port, int af, int verbose) fetch_info("failed to connect to %s:%d", host, port); goto syserr; } else if (sockshost != NULL) { - if (verbose) - fetch_info( - "failed to connect to SOCKS5 server %s:%d", - sockshost, socksport); + fetch_verbose("failed to connect to SOCKS5 server %s:%d", + sockshost, socksport); socks5_seterr(SOCKS5_ERR_CONN_REFUSED); goto fail; } @@ -1053,8 +1045,7 @@ fetch_ssl_setup_transport_layer(SSL_CTX *ctx, int verbose) ssl_ctx_options |= SSL_OP_NO_TLSv1_2; if (getenv("SSL_NO_TLS1_3") != NULL) ssl_ctx_options |= SSL_OP_NO_TLSv1_3; - if (verbose) - fetch_info("SSL options: %lx", ssl_ctx_options); + fetch_verbose("SSL options: %lx", ssl_ctx_options); SSL_CTX_set_options(ctx, ssl_ctx_options); } @@ -1092,16 +1083,14 @@ fetch_ssl_setup_peer_verification(SSL_CTX *ctx, int verbose) else SSL_CTX_set_default_verify_paths(ctx); if ((crl_file = getenv("SSL_CRL_FILE")) != NULL) { - if (verbose) - fetch_info("Using CRL file: %s", crl_file); + fetch_verbose("Using CRL file: %s", crl_file); crl_store = SSL_CTX_get_cert_store(ctx); crl_lookup = X509_STORE_add_lookup(crl_store, X509_LOOKUP_file()); if (crl_lookup == NULL || !X509_load_crl_file(crl_lookup, crl_file, X509_FILETYPE_PEM)) { - fprintf(stderr, - "Could not load CRL file %s\n", + fetch_info("Could not load CRL file %s", crl_file); return (0); } @@ -1124,23 +1113,17 @@ fetch_ssl_setup_client_certificate(SSL_CTX *ctx, int verbose) if ((client_cert_file = getenv("SSL_CLIENT_CERT_FILE")) != NULL) { client_key_file = getenv("SSL_CLIENT_KEY_FILE") != NULL ? getenv("SSL_CLIENT_KEY_FILE") : client_cert_file; - if (verbose) { - fetch_info("Using client cert file: %s", - client_cert_file); - fetch_info("Using client key file: %s", - client_key_file); - } + fetch_verbose("Using client cert file: %s", client_cert_file); + fetch_verbose("Using client key file: %s", client_key_file); if (SSL_CTX_use_certificate_chain_file(ctx, client_cert_file) != 1) { - fprintf(stderr, - "Could not load client certificate %s\n", + fetch_info("Could not load client certificate %s", client_cert_file); return (0); } if (SSL_CTX_use_PrivateKey_file(ctx, client_key_file, SSL_FILETYPE_PEM) != 1) { - fprintf(stderr, - "Could not load client key %s\n", + fetch_info("Could not load client key %s", client_key_file); return (0); } @@ -1165,7 +1148,7 @@ fetch_ssl_cb_verify_crt(int verified, X509_STORE_CTX *ctx) if ((crt = X509_STORE_CTX_get_current_cert(ctx)) != NULL && (name = X509_get_subject_name(crt)) != NULL) str = X509_NAME_oneline(name, 0, 0); - fprintf(stderr, "Certificate verification failed for %s\n", + fetch_info("Certificate verification failed for %s", str != NULL ? str : "no relevant certificate"); OPENSSL_free(str); } @@ -1186,7 +1169,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) char *str; if ((conn->ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL) { - fprintf(stderr, "SSL context creation failed\n"); + fetch_info("SSL context creation failed"); ERR_print_errors_fp(stderr); return (-1); } @@ -1200,17 +1183,15 @@ 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 connection creation failed\n"); + fetch_info("SSL connection creation failed"); ERR_print_errors_fp(stderr); return (-1); } SSL_set_fd(conn->ssl, conn->sd); #if !defined(OPENSSL_NO_TLSEXT) - if (!SSL_set_tlsext_host_name(conn->ssl, - __DECONST(struct url *, URL)->host)) { - fprintf(stderr, - "TLS server name indication extension failed for host %s\n", + if (!SSL_set_tlsext_host_name(conn->ssl, __DECONST(char *, URL->host))) { + fetch_info("Failed to set TLS server name indication for host %s", URL->host); return (-1); } @@ -1226,16 +1207,14 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) conn->ssl_cert = SSL_get_peer_certificate(conn->ssl); if (conn->ssl_cert == NULL) { - fprintf(stderr, "No server SSL certificate\n"); + fetch_info("No server SSL certificate"); return (-1); } if (getenv("SSL_NO_VERIFY_HOSTNAME") == NULL) { - if (verbose) - fetch_info("Verify hostname"); + fetch_verbose("Verify hostname"); if (!fetch_ssl_verify_hname(conn->ssl_cert, URL->host)) { - fprintf(stderr, - "SSL certificate subject doesn't match host %s\n", + fetch_info("SSL certificate subject does not match host %s", URL->host); return (-1); } @@ -1259,7 +1238,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) (void)conn; (void)verbose; (void)URL; - fprintf(stderr, "SSL support disabled\n"); + fetch_info("SSL support disabled"); return (-1); #endif } @@ -1297,10 +1276,11 @@ fetch_socket_read(int sd, char *buf, size_t len) rlen = read(sd, buf, len); if (rlen < 0) { - if (errno == EAGAIN || (errno == EINTR && fetchRestartCalls)) + if (errno == EAGAIN || (errno == EINTR && fetchRestartCalls)) { return (FETCH_READ_WAIT); - else + } else { return (FETCH_READ_ERROR); + } } return (rlen); } @@ -1442,7 +1422,7 @@ fetch_write(conn_t *conn, const char *buf, size_t len) iov.iov_base = __DECONST(char *, buf); iov.iov_len = len; - return fetch_writev(conn, &iov, 1); + return (fetch_writev(conn, &iov, 1)); } /* From nobody Thu Feb 26 04:22: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 4fLyx56pVMz6TDx6 for ; Thu, 26 Feb 2026 04:22: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx54SwVz3JgJ for ; Thu, 26 Feb 2026 04:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H8jJ8idyKJmg7usb7pahZxa/35zuHtcvJ6nNIANLmFI=; b=HBUh99qFt0oCNY1/H2aUF857K97rw7kr7fgA2v97IBIVMF01/11PpzYZ1ySEmNpqtJ80DJ nIICLT/vE941f4uR9whsCXK8Bv24/KbnjvnbastIzGLWf6ByU0IzQ7lc0M0nMTO/+qIrjX DDStugypTQQm0jMfcZPlH7iGB48Jl8URcQ2T7o2qM3DQZl2a1wZ+4hfRycRGg6F3kABRtq ZKYQNK5CzQkeAhndWqQ21axp9H/3AO+/NZ6UXaqMg8E+0DEO/AHWfGkjjXKRwbaOZUBq/o 6c2FoGOEI4z5WGnXHR9eL9exd4S1EyyIiVYqJfzPTCuRy/w4WKXf/gtR/9Afpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079769; a=rsa-sha256; cv=none; b=RzXkYJ5V9J6lCZ3Yyu21wlbRhCvPWrYnKaPjBAoe1bjhX8fM339INPyTsQEAOFfqQ2eUbv a+ZjkhvKbtuEd+mi5pXxyguZ06ebiJVpbzMZkuPExq0W2h2rXalwZnbo3pRN9bLpWMV84s 75p04P9C/Kx0kuuk0zL8YVdSh+6iAPnaHHdI8oHxRqBTN+ISsSRpVCtY9NQPzLSDREO2Bk 3dQWmy+Ph1XSgW17+BuO9nDsAMZ9Zyi/w6GmDdKgS/ujKXixpbTNt3Fneka6GJzfWWdaET eZwHK8WmQ2YDXMd7dkJ7mRReZR6SJahLNI2HgVqgfDq4E6Kl6k/2ZZILGQBu1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H8jJ8idyKJmg7usb7pahZxa/35zuHtcvJ6nNIANLmFI=; b=vDRkyeseJvAuziatx2guCUabOzWyrgHeR+jWcGdaL88dZErOg7d/gl9EATV0iK0dbawlpb ElGWzHi4vgudAl3b0Yk3A1JP0LHAF6lBCh1Py4vAjXoiiqdV/spWk6gCHEk56VepOml/ia sam3KGqYlUXnnPrLsf6Xd02p0vR9QFStKiW+ey8shJaxjPecwVnNhjT8jisdJOUV7fd/XM y4qDn2i0ohZBE7mZ3tftBhoeEFUQ5qmaYIvdkVOMgVcE67icHwWLct0iFlNrjIcPKK3ngE du8YEY4Yi1/JwB6w9VM0uPPMMYLih7s6bisPRdZ34nK68bf2ho8hG+fKVjAZ5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx53kmdz1b4 for ; Thu, 26 Feb 2026 04:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3680b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22:49 +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: 3b879f771bd4 - stable/15 - libfetch: Fail hard if interrupted while connecting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 3b879f771bd462948320373dee7b0e5f281e8e08 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:49 +0000 Message-Id: <699fca99.3680b.479bbc5f@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=3b879f771bd462948320373dee7b0e5f281e8e08 commit 3b879f771bd462948320373dee7b0e5f281e8e08 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:15 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:02:28 +0000 libfetch: Fail hard if interrupted while connecting This fixes an issue where the first address that DNS returns is blocked by a packet filter, so we hang for a while, then the user hits Ctrl-C, interrupting connect(2), whereupon we move on to the next address, get a connection, request the file, and return to fetch(1), which sees that SIGINT was caught and bails. Note that we make no attempt to enforce fetchTimeout in the connection phase, and never have. It's feasible, but non-trivial, so we'll leave it as an exercise for future us. PR: 293312 MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55406 (cherry picked from commit afbdcd402bb439bd3d487baaad63b68e95929265) --- lib/libfetch/common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 0bb65b0b8268..9d31b175c0fc 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -651,7 +651,13 @@ fetch_connect(const char *host, int port, int af, int verbose) goto syserr; } /* attempt to connect to server address */ - if ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) == 0) + while ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + break; + } + /* success? */ + if (err == 0) break; /* clean up before next attempt */ close(sd); From nobody Thu Feb 26 04:22: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 4fLyx52yNSz6TF0T for ; Thu, 26 Feb 2026 04:22: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx51DCDz3JgB for ; Thu, 26 Feb 2026 04:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a6VjiASIpSs1Cxc++Svpl0M2wKr1AVpc56S8RTownwI=; b=l0OnrSe5NwcCEixMRJFZwgpKW5HyzkNb4gxGKLX2WvDDKYgJAkw5G3UdrkNlg+6Pz8HNH3 Me9/e0YHA3ZikcMdYvyoRXX7KQMH7Ygll8VSGR0E1zOTHQV/8ACWTsr6OAL5uaYIFJX/BJ mLR0+Z2ghfI48lTtLlIGVKIbgUkMXHhwH2HXvxRj8R2x2H3DrNjWr2783kjEFtupnVKpdc qSIr7VIchxlj2XnDVBLXHNyehoLfFFEI/h7+TqMjK2wdm8lBnhU1DRRLuHY8LroJmo9Aj7 47aXcWhGjIL9WN0BCFJTriW8iL4kyrynzeOdt0PEyS7w88irVBXmtZxX21mNvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079769; a=rsa-sha256; cv=none; b=fACY7UwnFTJL+6G3JO0sKVgUe7/ocqroDmfERONaTrOQzSIy5Q0Al61/+0rRa32rLj0Jws fsacFxl5K0ZvR8RQ5vbkjIlok//2wgofkTcHgx0v/QZnjASv7yFzRL1WJ2XJKdPsxnqBa9 vHdYP+yKc1SRxVEXadWIJ6eVnOoe5vDCIvH5OHaD1BQZtITwFiqs1AChJtxWBYBsovzy4E w7XG9567cJpr7x9ALqXc45InUny6ViKE5/WDeZXu3jAmL+nfj5/f9ja7H8WL4d0eh63M7n PilDEEQ7t6qkYT3n5qfGirRYzZOI11oNOLx+wTpGj4hYXzi42V+ux7bNiNw0Yw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079769; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a6VjiASIpSs1Cxc++Svpl0M2wKr1AVpc56S8RTownwI=; b=UweUaMVTdWnKuCPwrAhCj28VMdychdP9ZFBE71fMx0NazUBLzs/pgbLOOT4Qezlqz3yXrE W13IeLcQ4U+wYmiAVLQfmlE+wdaVjMojCQkrnHouVprijRXzYZhN5VNhTRHaIrVvlXHgM/ qLRlcyy3Qg/CbE0XgN/3qdFxPdhP+PPiHLCO6qniupUzmeqDJalVmESjTMIWFV8CaUlEpN cbLvpn72gDYUQacVtFyr+ijvVaXPj33i5m/PxD6lgQXM1IRn/ge886Utv6RfSHo/Dvm7jt Y3y2tv4Pnc/D4hPfDM5x/CjTfD6feXHd4uLA2DCSUnyr4q24kpDrEl/f+pGgng== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx50Wfhz1LH for ; Thu, 26 Feb 2026 04:22:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36229 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22:49 +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: 15717dd5c628 - stable/14 - m4: Fix eval output width List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 15717dd5c628ce57d8b73b6b8a8ea7e9d8f5e52a Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:49 +0000 Message-Id: <699fca99.36229.4c9e748a@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=15717dd5c628ce57d8b73b6b8a8ea7e9d8f5e52a commit 15717dd5c628ce57d8b73b6b8a8ea7e9d8f5e52a Author: Dag-Erling Smørgrav AuthorDate: 2026-02-17 14:01:34 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:42 +0000 m4: Fix eval output width According to POSIX, the optional third argument is the minimum number of digits to print regardless of sign. We interpreted it as the minimum width of the output including the sign. Additionally, the variable used to hold this value was confusingly named “maxdigits”. PR: 293214 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55311 (cherry picked from commit 507c611aeac7ca9aed12353b1044bb21ab00afae) --- usr.bin/m4/eval.c | 8 ++++---- usr.bin/m4/misc.c | 2 -- usr.bin/m4/tests/eval.m4 | 2 ++ usr.bin/m4/tests/regress.eval.out | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/usr.bin/m4/eval.c b/usr.bin/m4/eval.c index 4e45a71874e1..0963a61a2914 100644 --- a/usr.bin/m4/eval.c +++ b/usr.bin/m4/eval.c @@ -178,7 +178,7 @@ expand_builtin(const char *argv[], int argc, int td) */ { int base = 10; - int maxdigits = 0; + int mindigits = 0; const char *errstr; if (argc > 3 && *argv[3] != '\0') { @@ -189,14 +189,14 @@ expand_builtin(const char *argv[], int argc, int td) } } if (argc > 4) { - maxdigits = strtonum(argv[4], 0, INT_MAX, &errstr); + mindigits = strtonum(argv[4], 0, INT_MAX, &errstr); if (errstr) { - m4errx(1, "expr: maxdigits is %s: %s.", + m4errx(1, "expr: mindigits is %s: %s.", errstr, argv[4]); } } if (argc > 2) - pbnumbase(expr(argv[2]), base, maxdigits); + pbnumbase(expr(argv[2]), base, mindigits); break; } diff --git a/usr.bin/m4/misc.c b/usr.bin/m4/misc.c index 7d2473f88168..a6abce4936b4 100644 --- a/usr.bin/m4/misc.c +++ b/usr.bin/m4/misc.c @@ -139,8 +139,6 @@ pbnumbase(int n, int base, int d) } while ((num /= base) > 0); - if (n < 0) - printed++; while (printed++ < d) pushback('0'); diff --git a/usr.bin/m4/tests/eval.m4 b/usr.bin/m4/tests/eval.m4 index 1d3f886d0d89..dc0fada781f1 100644 --- a/usr.bin/m4/tests/eval.m4 +++ b/usr.bin/m4/tests/eval.m4 @@ -3,3 +3,5 @@ dnl expr parser eval(224&127) eval(224|127) eval(224&&127) +eval(3-2, 10, 5) +eval(2-3, 10, 4) diff --git a/usr.bin/m4/tests/regress.eval.out b/usr.bin/m4/tests/regress.eval.out index 7298b3f43840..b1bb211dcb64 100644 --- a/usr.bin/m4/tests/regress.eval.out +++ b/usr.bin/m4/tests/regress.eval.out @@ -1,3 +1,5 @@ 96 255 1 +00001 +-0001 From nobody Thu Feb 26 04:22: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 4fLyx66n8Nz6TDxB for ; Thu, 26 Feb 2026 04:22: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx62JF0z3JXb for ; Thu, 26 Feb 2026 04:22:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2iDYFGOkvD5x+RPFHLJaLnSs6dCrpE1VCZvc8o5D50M=; b=mpFf74WTtquHzO01NrihhhYTPGz+F7qY6EWqRUZblbkSdQwczluNGgn3E6LzwPSDsAaxmu tBt19/I8v6ufF55jIS9m6LoPiLGVisMMfYh59mANmHoFGtsHqVN5GH5yTeLvPdshKGrMac zNNWqqoB6KfGTPyUs8xOV/Heg4z0pe5MzX/N4+kKaeGX5qyuK69FVcX8yug0/brt+3YMwc +bpZtZIoZvLKrtSEDC3S21rdw/Ls+09MZJD33K0DU8eB0+z8/xFxutLb49Q44YuOb+HBQ5 8oCq6aDKmMXeKsT8R4BI8A11GfVY+XUryLgPfQb8634rTv1wr5PoWb2e7nW+Sw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079770; a=rsa-sha256; cv=none; b=uoRcx6O9dTn+IbOo2s4snzS6A+SNL9kK6gx49PdW5iDf9IAwjJyUYqtwGrTljLR4FFE1Wh QTPOajuLVeG4eaBpUkJDe05343HVExmfd1lgQXKhKM+XbRQptiJDZH0Q9Uo8dR1YvENfzy fGg4mpVx6cpHyO8Ya6xkSA7FVQMAJoG1nHgzigwu9z36bFA797uMdEh9tq2DU842lvGDVg 1UZsVBseKaGQF4TiqMFtEC5oSirS6+ZZIOoYxMqO2Y9hQgkxFhYWqvgxjVwUJZX2kpD4Vg KiN4dXi4qlh4NFeaeQlDxnrXH19CZ+bIFLoUOs/auHE8Wyf25FxbqlB19c6Hxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2iDYFGOkvD5x+RPFHLJaLnSs6dCrpE1VCZvc8o5D50M=; b=iTYC8uMb7e44UHUK6b7+XAnqV6SWH1TI87K7zCtyiznMxhKYVvp9l03QfA+nxGJV3rrJp2 FxUgFwuJJZJSEAHnx309yPIs0ZfcBq+O/RSgMWqMQkLDvLyI1hA+8eH+/LQY6NSg58W27B 4j0Xhudlx/qwBFDQk0w8Vgk6fvgoNXsNcvbzvYAOys5XgMf8EfB+7V9roQ1sju1a6+WP7d TZy+7H0wESJdOxIfB7fBCtghmg3yYGvpu0pevRSA6RlZaFwT8peACP2MXvpG3DLwCtdJDE TCgux+8J9tTZpYyVbuJfh2pkcOWaBibTTE1o3JNpAV1nt/rsdn8hdbsEWO2haQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx61MfRz1LJ for ; Thu, 26 Feb 2026 04:22:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36706 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: 5c80cdb120b6 - stable/14 - libfetch: Clean up fetch_info usage List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 5c80cdb120b6189b2a1b4f846cd21a3a98570af1 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:50 +0000 Message-Id: <699fca9a.36706.b932497@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=5c80cdb120b6189b2a1b4f846cd21a3a98570af1 commit 5c80cdb120b6189b2a1b4f846cd21a3a98570af1 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:11 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:42 +0000 libfetch: Clean up fetch_info usage * Provide a wrapper for the common if (verbose) fetch_info(...) idiom. * Replace remaining instances of fprintf(stderr, ...) with fetch_info(). * Fix a few style nits. MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55405 (cherry picked from commit 1b7c4d29fdfc975facdc43f6da50947cf3bb8e4a) --- lib/libfetch/common.c | 88 ++++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index bdc72f67c9a0..bff83ed905f6 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -230,12 +230,16 @@ void fetch_info(const char *fmt, ...) { va_list ap; + int serrno = errno; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fputc('\n', stderr); + errno = serrno; } +#define fetch_verbose(...) \ + do { if (verbose) fetch_info(__VA_ARGS__); } while (0) /*** Network-related utility functions ***************************************/ @@ -303,7 +307,6 @@ fetch_reopen(int sd) conn_t * fetch_ref(conn_t *conn) { - ++conn->ref; return (conn); } @@ -418,8 +421,7 @@ fetch_socks5_init(conn_t *conn, const char *host, int port, int verbose) unsigned char *ptr; int ret = 1; - if (verbose) - fetch_info("Initializing SOCKS5 connection: %s:%d", host, port); + fetch_verbose("Initializing SOCKS5 connection: %s:%d", host, port); /* Connection initialization */ ptr = buf; @@ -487,7 +489,7 @@ fetch_socks5_init(conn_t *conn, const char *host, int port, int verbose) goto fail; } - switch(*ptr++) { + switch (*ptr++) { case SOCKS_SUCCESS: break; case SOCKS_GENERAL_FAILURE: @@ -565,10 +567,8 @@ fetch_socks5_getenv(char **host, int *port) *host = strndup(socks5env, ext - socks5env); } - if (*host == NULL) { - fprintf(stderr, "Failure to allocate memory, exiting.\n"); + if (*host == NULL) return (-1); - } if (ext == NULL) { *port = 1080; /* Default port as defined in RFC1928 */ } else { @@ -614,26 +614,21 @@ fetch_connect(const char *host, int port, int af, int verbose) /* Not using SOCKS5 proxy */ if (sockshost == NULL) { /* resolve server address */ - if (verbose) - fetch_info("resolving server address: %s:%d", host, - port); + fetch_verbose("resolving server address: %s:%d", host, port); if ((sais = fetch_resolve(host, port, af)) == NULL) goto fail; /* resolve client address */ bindaddr = getenv("FETCH_BIND_ADDRESS"); if (bindaddr != NULL && *bindaddr != '\0') { - if (verbose) - fetch_info("resolving client address: %s", - bindaddr); + fetch_verbose("resolving client address: %s", bindaddr); if ((cais = fetch_resolve(bindaddr, 0, af)) == NULL) goto fail; } } else { /* resolve socks5 proxy address */ - if (verbose) - fetch_info("resolving SOCKS5 server address: %s:%d", - sockshost, socksport); + fetch_verbose("resolving SOCKS5 server address: %s:%d", + sockshost, socksport); if ((sais = fetch_resolve(sockshost, socksport, af)) == NULL) { socks5_seterr(SOCKS5_ERR_BAD_HOST); goto fail; @@ -653,8 +648,7 @@ fetch_connect(const char *host, int port, int af, int verbose) break; } if (err != 0) { - if (verbose) - fetch_info("failed to bind to %s", bindaddr); + fetch_verbose("failed to bind to %s", bindaddr); goto syserr; } /* attempt to connect to server address */ @@ -669,10 +663,8 @@ fetch_connect(const char *host, int port, int af, int verbose) fetch_info("failed to connect to %s:%d", host, port); goto syserr; } else if (sockshost != NULL) { - if (verbose) - fetch_info( - "failed to connect to SOCKS5 server %s:%d", - sockshost, socksport); + fetch_verbose("failed to connect to SOCKS5 server %s:%d", + sockshost, socksport); socks5_seterr(SOCKS5_ERR_CONN_REFUSED); goto fail; } @@ -1054,8 +1046,7 @@ fetch_ssl_setup_transport_layer(SSL_CTX *ctx, int verbose) ssl_ctx_options |= SSL_OP_NO_TLSv1_2; if (getenv("SSL_NO_TLS1_3") != NULL) ssl_ctx_options |= SSL_OP_NO_TLSv1_3; - if (verbose) - fetch_info("SSL options: %lx", ssl_ctx_options); + fetch_verbose("SSL options: %lx", ssl_ctx_options); SSL_CTX_set_options(ctx, ssl_ctx_options); } @@ -1093,16 +1084,14 @@ fetch_ssl_setup_peer_verification(SSL_CTX *ctx, int verbose) else SSL_CTX_set_default_verify_paths(ctx); if ((crl_file = getenv("SSL_CRL_FILE")) != NULL) { - if (verbose) - fetch_info("Using CRL file: %s", crl_file); + fetch_verbose("Using CRL file: %s", crl_file); crl_store = SSL_CTX_get_cert_store(ctx); crl_lookup = X509_STORE_add_lookup(crl_store, X509_LOOKUP_file()); if (crl_lookup == NULL || !X509_load_crl_file(crl_lookup, crl_file, X509_FILETYPE_PEM)) { - fprintf(stderr, - "Could not load CRL file %s\n", + fetch_info("Could not load CRL file %s", crl_file); return (0); } @@ -1125,23 +1114,17 @@ fetch_ssl_setup_client_certificate(SSL_CTX *ctx, int verbose) if ((client_cert_file = getenv("SSL_CLIENT_CERT_FILE")) != NULL) { client_key_file = getenv("SSL_CLIENT_KEY_FILE") != NULL ? getenv("SSL_CLIENT_KEY_FILE") : client_cert_file; - if (verbose) { - fetch_info("Using client cert file: %s", - client_cert_file); - fetch_info("Using client key file: %s", - client_key_file); - } + fetch_verbose("Using client cert file: %s", client_cert_file); + fetch_verbose("Using client key file: %s", client_key_file); if (SSL_CTX_use_certificate_chain_file(ctx, client_cert_file) != 1) { - fprintf(stderr, - "Could not load client certificate %s\n", + fetch_info("Could not load client certificate %s", client_cert_file); return (0); } if (SSL_CTX_use_PrivateKey_file(ctx, client_key_file, SSL_FILETYPE_PEM) != 1) { - fprintf(stderr, - "Could not load client key %s\n", + fetch_info("Could not load client key %s", client_key_file); return (0); } @@ -1166,7 +1149,7 @@ fetch_ssl_cb_verify_crt(int verified, X509_STORE_CTX *ctx) if ((crt = X509_STORE_CTX_get_current_cert(ctx)) != NULL && (name = X509_get_subject_name(crt)) != NULL) str = X509_NAME_oneline(name, 0, 0); - fprintf(stderr, "Certificate verification failed for %s\n", + fetch_info("Certificate verification failed for %s", str != NULL ? str : "no relevant certificate"); OPENSSL_free(str); } @@ -1187,7 +1170,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) char *str; if ((conn->ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL) { - fprintf(stderr, "SSL context creation failed\n"); + fetch_info("SSL context creation failed"); ERR_print_errors_fp(stderr); return (-1); } @@ -1201,17 +1184,15 @@ 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 connection creation failed\n"); + fetch_info("SSL connection creation failed"); ERR_print_errors_fp(stderr); return (-1); } SSL_set_fd(conn->ssl, conn->sd); #if !defined(OPENSSL_NO_TLSEXT) - if (!SSL_set_tlsext_host_name(conn->ssl, - __DECONST(struct url *, URL)->host)) { - fprintf(stderr, - "TLS server name indication extension failed for host %s\n", + if (!SSL_set_tlsext_host_name(conn->ssl, __DECONST(char *, URL->host))) { + fetch_info("Failed to set TLS server name indication for host %s", URL->host); return (-1); } @@ -1227,16 +1208,14 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) conn->ssl_cert = SSL_get_peer_certificate(conn->ssl); if (conn->ssl_cert == NULL) { - fprintf(stderr, "No server SSL certificate\n"); + fetch_info("No server SSL certificate"); return (-1); } if (getenv("SSL_NO_VERIFY_HOSTNAME") == NULL) { - if (verbose) - fetch_info("Verify hostname"); + fetch_verbose("Verify hostname"); if (!fetch_ssl_verify_hname(conn->ssl_cert, URL->host)) { - fprintf(stderr, - "SSL certificate subject doesn't match host %s\n", + fetch_info("SSL certificate subject does not match host %s", URL->host); return (-1); } @@ -1260,7 +1239,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) (void)conn; (void)verbose; (void)URL; - fprintf(stderr, "SSL support disabled\n"); + fetch_info("SSL support disabled"); return (-1); #endif } @@ -1298,10 +1277,11 @@ fetch_socket_read(int sd, char *buf, size_t len) rlen = read(sd, buf, len); if (rlen < 0) { - if (errno == EAGAIN || (errno == EINTR && fetchRestartCalls)) + if (errno == EAGAIN || (errno == EINTR && fetchRestartCalls)) { return (FETCH_READ_WAIT); - else + } else { return (FETCH_READ_ERROR); + } } return (rlen); } @@ -1443,7 +1423,7 @@ fetch_write(conn_t *conn, const char *buf, size_t len) iov.iov_base = __DECONST(char *, buf); iov.iov_len = len; - return fetch_writev(conn, &iov, 1); + return (fetch_writev(conn, &iov, 1)); } /* From nobody Thu Feb 26 04:22: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 4fLyx74B5Cz6TFCr for ; Thu, 26 Feb 2026 04:22:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx65Dtxz3JG2 for ; Thu, 26 Feb 2026 04:22:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b+5nbtIHZFnb8PSfwjdhNad/WVJTqrjXR/iXnvqC39Q=; b=T5bC/nBOlxVbYy9fapshIoB0gIkbryTZYhIXMn2CJbvzYfHVouA/+/DUd/OwvR87+RFaHc 27qak3aZWd4SXm3l3JOkndC/h/0OIGHXuCxnP7gaoEMVgCWClBVNVdPC250lilxg+qpE3X yiNL9Ds9V+wn5L2B4tH333vwcsepZ7sC7Q9tf9XKnVk6PQ4uduEaWWPhUJRtNQ4ycz9C6g 0z8zNbX+UBesGGWrD6jriVN1kLsad8L/2TlhZ2ffmIQKzt6i9iGgCtm8ymo2fLgoQPeXxm IA4LF5HEDE/GgoAWjsuijZgA9EOOo+3w37kmzne6ZxBTwF8fyyME5EN86WoSaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079770; a=rsa-sha256; cv=none; b=yUT0E3QXSZFvCyOtTP9cc2/wRXzGFoBlDb8CNmceCbXRLjEZpxIEIFbP5RIZ4hPZvuHqvu 80wfjEP8J0541UGJatcCVyFdMEawKBBxa5ezzU52UkRGPvSk/K5xbShYdvITdRZYhjbAXU KvflTSJSh1LU1q5kdtPRqZfl/mx8jiuMIqA8W42eZN3NBKvfwS+TBla4Lgw0Pm5bibvktU WhRCsxq79yoZqHqkxxrDni5gcp678iZ5fvfksoH52f/gsCiLdCrsRasvAceIpBIIrSwxuK G5nhKTD565Vo/8BzgUVKqFW15SvUrRXJEPtR7tmxLv+6lpoQ3aXdITwgNiQfSA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079770; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b+5nbtIHZFnb8PSfwjdhNad/WVJTqrjXR/iXnvqC39Q=; b=dRjh4nmTjvXfvWRaFr5yfpFCYWLmlbVW702eXlqDqL3hEbalvMAVA+jchX3j9lhb8rTIXu lAnofj08hjuU8asxzFyVERMfNvwn97AlQT69YFt1A9CKVPBki3A6mbqkRYIVvZWrsmErJC Li9YsNUG5zmT/5j09zfGWUtqkE9Xp9XQEMWZNkPwm0bbxPAA0KRfF80kJ9dZPtXm4iXPgj 7UCl7PhIhXqeqGElgNS1aOpacQQbT61oxWOtR6+nwwyjVlklFdYtuiSjoqGXgJrPyV44th ehdpQh0ZqQ2ik1jzfoRwjlZWf9kOdwUu4i2AV8FaVM1SZZryhZvnCULhChZv8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx64b5sz1dN for ; Thu, 26 Feb 2026 04:22:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36299 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: d699bac8f6f9 - stable/15 - libfetch: Gracefully skip unsupported protocols List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: d699bac8f6f9164ae456ab561b04ac42a695540d Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:50 +0000 Message-Id: <699fca9a.36299.17a51f0f@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d699bac8f6f9164ae456ab561b04ac42a695540d commit d699bac8f6f9164ae456ab561b04ac42a695540d Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:18 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:02:28 +0000 libfetch: Gracefully skip unsupported protocols If socket() fails because the address family or protocol is unsupported, just continue with the next address. MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55407 (cherry picked from commit b5d570e711da1dad303312bebaf1bd2fb720f0dc) --- lib/libfetch/common.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 9d31b175c0fc..f8a0517b6a5b 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -637,8 +637,12 @@ fetch_connect(const char *host, int port, int af, int verbose) /* try each server address in turn */ for (err = 0, sai = sais; sai != NULL; sai = sai->ai_next) { /* open socket */ - if ((sd = socket(sai->ai_family, SOCK_STREAM, 0)) < 0) + if ((sd = socket(sai->ai_family, SOCK_STREAM, 0)) < 0) { + err = -1; + if (errno == EAFNOSUPPORT || errno == EPROTONOSUPPORT) + continue; goto syserr; + } /* attempt to bind to client address */ for (err = 0, cai = cais; cai != NULL; cai = cai->ai_next) { if (cai->ai_family != sai->ai_family) From nobody Thu Feb 26 04:22: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 4fLyx74Dhdz6TDtk for ; Thu, 26 Feb 2026 04:22:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx72nd4z3Jb7 for ; Thu, 26 Feb 2026 04:22:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079771; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=He/gy0Zmi2bGBDfLuedPPurf9b95aK0J43puopGH454=; b=mSg099ubg6T/crw2MrNpn9wtyyPMt0Hbq8A4K8mJ2QXlElOjnKy4Is/N0kbjVtiaiLD4Ts rZSSEH+t++c8RossqL3ehqMXce4wuEPebd8hxRM3sikkX4nv+z7QFGiKpL2sdFNNvRaJP6 8EsmQmdPX9ar4GWqwCoDPg3PAYuAcpdFR0jDLOsAexWxro2f8IzTaj9NZu3TLkOBNwvqCS sSgiaZqeSW6gNAOFphtnzjiHDM1rxGi+zTgdS7zUVk+MN9Xr8NUgXWBD7FFrd1uSvqfje8 LMhVnfGlpw3KSIyqjH/sxdxYU+YT806UtgmrhCnnWmOZ+5m2opKu60hmJR1GNw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079771; a=rsa-sha256; cv=none; b=ugVEAnHiUrGVsF4uaC/CQO5IcmNz20A8AcX5VE+pBWPYG5higxgEIqaiNw1EZXeYYi+pcy 1HS/jN5mzkZLn2J0Y4LXJJ//kF+RbNwMTUUmDUqekitqkqRz27mymDw43tg9751FEPOc85 oZfJzPZ1V1WDuIIohNPmxdk5YfkBxC0Pg5gJc6p0VZIqFOv6k/juqzCq4a62+I+e8GnIHw 0x7Kc40ObdrJjziK0r54VxU7h4nsGOVC93WCT+EVj1CirSHoBjK/Sm4Ikcw+mnmR6xrm/n 1JhHp7D1pzlHhk+eGdWUKcdDRhCu3RgSVyqYOKb9NYStncjqRcaC0Nth6uE+hQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079771; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=He/gy0Zmi2bGBDfLuedPPurf9b95aK0J43puopGH454=; b=lfJrOOZ4bYXUHXjby18SSUCQHJxLALiriQ6oY3jFGM20vx0neY+JdJ4UoZFu48ttFjUUeY avFR9m4H+6B0Mze/FnrfgLreo+gQzhCxqIRSG13FDSaSUsgv0aYrh9uCQjuvJhj+2XjepN w24tRUT7EoEAhryXRIGjBTBIsOVj3Oh9qHbCaJQCYKB0ddLWjdG0OegIvcBzYU1MM3Pxve eIzZJHxF3KX9TcH8gFEXArLxkdw9/r2oU/L5R1V3b1wLGUQ8Qt27F1Fg0L3l/F1dq992RR BWc2rgzH41OGFekn2ZOtfj7pysPhpe2RTwxdFO/j58Y15pshpfyCcqtDbq9/cQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx72DkTz1dP for ; Thu, 26 Feb 2026 04:22:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36990 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: cca6f5eadb79 - stable/14 - libfetch: Fail hard if interrupted while connecting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: cca6f5eadb796b03379eb21f38c74ca46a64e45b Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:51 +0000 Message-Id: <699fca9b.36990.1a140c64@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=cca6f5eadb796b03379eb21f38c74ca46a64e45b commit cca6f5eadb796b03379eb21f38c74ca46a64e45b Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:15 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:43 +0000 libfetch: Fail hard if interrupted while connecting This fixes an issue where the first address that DNS returns is blocked by a packet filter, so we hang for a while, then the user hits Ctrl-C, interrupting connect(2), whereupon we move on to the next address, get a connection, request the file, and return to fetch(1), which sees that SIGINT was caught and bails. Note that we make no attempt to enforce fetchTimeout in the connection phase, and never have. It's feasible, but non-trivial, so we'll leave it as an exercise for future us. PR: 293312 MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55406 (cherry picked from commit afbdcd402bb439bd3d487baaad63b68e95929265) --- lib/libfetch/common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index bff83ed905f6..784da2d9e6a2 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -652,7 +652,13 @@ fetch_connect(const char *host, int port, int af, int verbose) goto syserr; } /* attempt to connect to server address */ - if ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) == 0) + while ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + break; + } + /* success? */ + if (err == 0) break; /* clean up before next attempt */ close(sd); From nobody Thu Feb 26 04:22: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 4fLyx91KMhz6TDxM for ; Thu, 26 Feb 2026 04:22:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx85mfgz3JbV for ; Thu, 26 Feb 2026 04:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l4ZNUTqigXjMw0dTdrN5LLBwgsEwKoxn7eO3Hpa7OmQ=; b=JOHYM2Z+VFAlioLcdGKRHtsIXF99CzFrK5hd7TQ7Owl/8lj2wTodd9wkgkY/jaMuXmRl3W 60PqKb+Z3n1uNKpdQteV69Zk5WysxSy3M4OXUY7TN9oYtlduk4+ow2tfRzz/1Q4qMpCYmY ubTOtaSyRGYoqkykHr//HRMAJv6VB3R8WcVcgdXFTzzshBMdPIfcMNxzDb0jNV5zyZFEPT yvRPbSwuiVgYR8OcNiaA160EAFJf0CbJ4UtKU5U1V7jm7xwEv0Vnr1QZnYds0Ojgp03dMk pWb0sJ+O2ZvCZ5Clp9trHUGroCNFSV92U08R1clLTe4pOQUM6GjuV8KbiQ2arA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079772; a=rsa-sha256; cv=none; b=vQsLnUCChzTkDbazzKlyjX0K8dSpt4tY6TQ3U474Lvm9LIwIsi/T/6OHn9n3JyzGcyH90y a2CqUzbLHFJIlu0K5FYrFZzQ4wzdd5yYc1vcP5qEWjs7MGfr0u3NyKEPCwz/fP0v2OAnyo NBXHtFw6t16xGE8AipTFPGmXAChEcR5vVZ+B9rNY4QPPdd7/qC0TZVxyyFp93M8NUEWs9h L0c+aQ1Z3vr70XwfiGLr/YWtjm8dRxzHRGlFxaIDVct+yWnzMh6/36wIUGnaKOioELiDrl x+gwP5JrALIsoBXpV0MMWVH3fnfxnvZRcgKaGFnXPdu2xZa72ekPcZoAt1isSw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l4ZNUTqigXjMw0dTdrN5LLBwgsEwKoxn7eO3Hpa7OmQ=; b=Xbn1RWFWVj3uzDuxG5/RJPBXLzTP8bIqrGdx+/lXMSTV2p1vSTPlNkzZ5zs54HPlxSlcH6 aeRt3+RDZIi8T54ejjFs8X6el8x+MgBEYgOOMKN7fLg7rpw5bUrwSfek5/Tjo7cAhwRsvl A6mGw2T7oGM/myWEQYjQgycdtf0eTvVJm0Uivv8yTfUhTCFB3IjZkth+HC7pwbkZGdscv8 /PD31skF+6EQn+ERtb3Ikx6nSpitklUO4lwvCSMFINVb5M7UoShebDZg8KZyGgq9cFYELp tVh8xfzyT3EDezU9zezD6SHrswwKMZPd1n+aEqlG3SzGbA9wvP+4H7/qlvhwmA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx85158z1vH for ; Thu, 26 Feb 2026 04:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34260 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: c550d07d8d5f - stable/13 - m4: Fix eval output width List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: c550d07d8d5f152b4b89f6c737188c30af199e3a Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:52 +0000 Message-Id: <699fca9c.34260.75813f08@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c550d07d8d5f152b4b89f6c737188c30af199e3a commit c550d07d8d5f152b4b89f6c737188c30af199e3a Author: Dag-Erling Smørgrav AuthorDate: 2026-02-17 14:01:34 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:51 +0000 m4: Fix eval output width According to POSIX, the optional third argument is the minimum number of digits to print regardless of sign. We interpreted it as the minimum width of the output including the sign. Additionally, the variable used to hold this value was confusingly named “maxdigits”. PR: 293214 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55311 (cherry picked from commit 507c611aeac7ca9aed12353b1044bb21ab00afae) --- usr.bin/m4/eval.c | 8 ++++---- usr.bin/m4/misc.c | 2 -- usr.bin/m4/tests/eval.m4 | 2 ++ usr.bin/m4/tests/regress.eval.out | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/usr.bin/m4/eval.c b/usr.bin/m4/eval.c index 82218eb9ba1c..dba903c2ba24 100644 --- a/usr.bin/m4/eval.c +++ b/usr.bin/m4/eval.c @@ -178,7 +178,7 @@ expand_builtin(const char *argv[], int argc, int td) */ { int base = 10; - int maxdigits = 0; + int mindigits = 0; const char *errstr; if (argc > 3) { @@ -189,14 +189,14 @@ expand_builtin(const char *argv[], int argc, int td) } } if (argc > 4) { - maxdigits = strtonum(argv[4], 0, INT_MAX, &errstr); + mindigits = strtonum(argv[4], 0, INT_MAX, &errstr); if (errstr) { - m4errx(1, "expr: maxdigits is %s: %s.", + m4errx(1, "expr: mindigits is %s: %s.", errstr, argv[4]); } } if (argc > 2) - pbnumbase(expr(argv[2]), base, maxdigits); + pbnumbase(expr(argv[2]), base, mindigits); break; } diff --git a/usr.bin/m4/misc.c b/usr.bin/m4/misc.c index 7d2473f88168..a6abce4936b4 100644 --- a/usr.bin/m4/misc.c +++ b/usr.bin/m4/misc.c @@ -139,8 +139,6 @@ pbnumbase(int n, int base, int d) } while ((num /= base) > 0); - if (n < 0) - printed++; while (printed++ < d) pushback('0'); diff --git a/usr.bin/m4/tests/eval.m4 b/usr.bin/m4/tests/eval.m4 index 1d3f886d0d89..dc0fada781f1 100644 --- a/usr.bin/m4/tests/eval.m4 +++ b/usr.bin/m4/tests/eval.m4 @@ -3,3 +3,5 @@ dnl expr parser eval(224&127) eval(224|127) eval(224&&127) +eval(3-2, 10, 5) +eval(2-3, 10, 4) diff --git a/usr.bin/m4/tests/regress.eval.out b/usr.bin/m4/tests/regress.eval.out index 7298b3f43840..b1bb211dcb64 100644 --- a/usr.bin/m4/tests/regress.eval.out +++ b/usr.bin/m4/tests/regress.eval.out @@ -1,3 +1,5 @@ 96 255 1 +00001 +-0001 From nobody Thu Feb 26 04:22: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 4fLyx84xLrz6TFCx for ; Thu, 26 Feb 2026 04:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx834k4z3JXv for ; Thu, 26 Feb 2026 04:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KrZovsPN5H0MENELb884vUxmIOqOXY9Aha9bO3Y4k7I=; b=l1NF0RL8HohjPvAwumeDT4BhdI32s55oENq26uI2uMfB8kavldbff9KtXI7gPrd9+vZuzI JzNb8Fbc59ho3RuT/mDz8oWGwpZjvhBL8+pdMvTn2bAWqcl6kYUSC2/2g+pIrI2CbFLajY h6ICv8lUPtquLiWMtgW5kFyiWcS3kmY8JYtTYG5i0OmZmvgX3g6TBwcOjcrVz/vgmxsesa p51mf219eyHJ/oBLZbPJlv5J03PYuD0AN1lLztS2UQzWn7sJSkltua5ewVmBA0ZjbQDmhb 8CuoriAHNLqD1lb5Foa0egx/sXtkMS5P3CZlw2gEaSq22uImKRCI3sbM9fScWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079772; a=rsa-sha256; cv=none; b=CZbRW7I9iS48BsleHoBdm+Fw2zgqTfgLqzwOa4nG16BKA+CUAE/UCrq29hx8f3HBqdfeEJ eOSuh3dUzwLJfrmNsEDbAI8oVO/WlKit6rlHZ/5wGjMo28q0oqSTP3Ro1lM03N0TM+NN5A n6AsWCwV983KnWoKCy1OYuaMtPqzexpz+E9qtno6/8AmYId+p8Ts2VqLzqzD1ix8xwY43R SWTLXI6OegtcoklNoYYGm4KusGe+rhZ5rrCtm124XiZRAbjBdR5se006yVQfhi1Hg3bd2n NzPUDCofw0nN4Pr4h+B4P54yHIwlzj8CpVUtfl+NwTLIua0UCBriZHc9SUTxPw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079772; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KrZovsPN5H0MENELb884vUxmIOqOXY9Aha9bO3Y4k7I=; b=HRJtHp75/HTmygRHoKUD2Okb3GceXufErlH0w8GvJV7TNoiq69BxeRnIBlxyC7P43r7lZr bRv6S8tePSWBmFb2qz+x6kTg6v3C2hy1GY2zaANihqI2fJY34YZh21f3PPXJr7s/ydr6/9 nN9WDHN5wVx5zTieoB93Ry5ThJdwo719MFqWJ/+W21sjTku3csqk0eWePWagj3KTIJV3Ys XbG2jhsZUCMMQPLrXkpNLghBZbZK0AvPwB0zy/IBoExtWWyEO7C05E0xJAGXi5pnF666sJ uIlJuRI/GHK/aYK/ClRitUBrD5rLFtKPl8/rvFFszK5WhczEodcqh6lRgyngqw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx82hDsz1dQ for ; Thu, 26 Feb 2026 04:22:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37407 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: 31f3640c4aa8 - stable/14 - libfetch: Gracefully skip unsupported protocols List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 31f3640c4aa859f2e3a78a51f3c43e0e6e7239f9 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:52 +0000 Message-Id: <699fca9c.37407.58f0c5ea@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=31f3640c4aa859f2e3a78a51f3c43e0e6e7239f9 commit 31f3640c4aa859f2e3a78a51f3c43e0e6e7239f9 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:18 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:43 +0000 libfetch: Gracefully skip unsupported protocols If socket() fails because the address family or protocol is unsupported, just continue with the next address. MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55407 (cherry picked from commit b5d570e711da1dad303312bebaf1bd2fb720f0dc) --- lib/libfetch/common.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 784da2d9e6a2..5115933b8e41 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -638,8 +638,12 @@ fetch_connect(const char *host, int port, int af, int verbose) /* try each server address in turn */ for (err = 0, sai = sais; sai != NULL; sai = sai->ai_next) { /* open socket */ - if ((sd = socket(sai->ai_family, SOCK_STREAM, 0)) < 0) + if ((sd = socket(sai->ai_family, SOCK_STREAM, 0)) < 0) { + err = -1; + if (errno == EAFNOSUPPORT || errno == EPROTONOSUPPORT) + continue; goto syserr; + } /* attempt to bind to client address */ for (err = 0, cai = cais; cai != NULL; cai = cai->ai_next) { if (cai->ai_family != sai->ai_family) From nobody Thu Feb 26 04:22: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 4fLyxB2byPz6TDpF for ; Thu, 26 Feb 2026 04:22: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyx96snTz3JGc for ; Thu, 26 Feb 2026 04:22:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N95MhXhx5vQXzfoxs+aagyd3PuMpbzDFMT8oosKZgwM=; b=E7O0Jq5+j/uoMEa3j4eGZK2nXUHuTfZ8DgSjx7uUUhBMNprj98C7XeDdoQNHQNPb72fEQh NW6HGrWpj84PD1ZXq2ujw0newwTLrQM7MIXM+zODvj3Z5zkfkV0zuoyde1fRAhgtGWagku X/ZltjunBLVhWl5EqUSatVKGRX8zfAUPotqsLXPYZMN3me4l3aNQC4ouzkeAI/uANFCl3/ VglMkyXYOr4npDpWy06cNVInYCHBC1CGgOEvvCez66DYIl/uOdzNg1SBZHyZE8ESAQIwau hqxuPUBjrWZRHP0EyapMs1q/sRjoyX0vZZlvcu6b3rdLYDiFNFJDeoQAS9r+yA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079774; a=rsa-sha256; cv=none; b=Sov3hjrqOLkKtHRXPEoKjG126bvCv+b6UMK/axBXaAOX+Lw4jpR+mCenvrtIUMyi23zy2X V19RZX/SMG3uzuJzoOU3aLRdYvKXCRLg42H8cimd/RSCpm8h5xPD+b8NV5Ahg5m/PJb+HG rMb8tN6bXakOVXwfbDBYGzUT5BnXiAIeV75J4zEGJ3+tuqE+na0A51UwruflQV4TC2UYIU X9pZx1oqzVZh2UM1sPxPfcBPW6SbEWtWKYP+zlnMJNMiVTIFKcmU1Gaegs0oeg66DWfbwk 2m67VIqQpM9MlYW5Y3SJlW1kzmwKZhykbQHdGgSEGc/wtxRZHYTPr+Fg93mB3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N95MhXhx5vQXzfoxs+aagyd3PuMpbzDFMT8oosKZgwM=; b=F9I7S5vRWA0uvsZiAEAOL2crWv7ke+IK6mStoz6js2u8yPH14O8o8bJtTZwil51Ck9948S AxLiF6gvcw4lTJUNr45o2kMEZYxe52Li73tusZEzE3pDx6VDCelMZCM6f6+z+ay1joCzV9 SN6AV5LCi0duXcmNQZ7tgvVaBJN8VKmA6UGGZSEr85gVXlUzhcG1P1qyo2JY8oQ0tXdvpq OlBXaerMkDlBzPdQx5jpWmwb7TGPw54Fgq/AFRxm7focznZCxFds83plu8esYIHzoN2puz BIxkmPcWNHGT5GB5Ngm49pWtUmHMXQcNFQKHri8I5rOWrIe/BIX7y2Fmmxo2Lg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyx95lwPz1vJ for ; Thu, 26 Feb 2026 04:22:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 347b4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: cee22ac13c7d - stable/13 - libfetch: Clean up fetch_info usage List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: cee22ac13c7d1e64efa911fdd7649abd31b991cb Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:53 +0000 Message-Id: <699fca9d.347b4.1fdad1e4@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=cee22ac13c7d1e64efa911fdd7649abd31b991cb commit cee22ac13c7d1e64efa911fdd7649abd31b991cb Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:11 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:52 +0000 libfetch: Clean up fetch_info usage * Provide a wrapper for the common if (verbose) fetch_info(...) idiom. * Replace remaining instances of fprintf(stderr, ...) with fetch_info(). * Fix a few style nits. MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55405 (cherry picked from commit 1b7c4d29fdfc975facdc43f6da50947cf3bb8e4a) --- lib/libfetch/common.c | 88 ++++++++++++++++++++------------------------------- 1 file changed, 34 insertions(+), 54 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 008185720f16..53d9c57b9fb0 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -230,12 +230,16 @@ void fetch_info(const char *fmt, ...) { va_list ap; + int serrno = errno; va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); fputc('\n', stderr); + errno = serrno; } +#define fetch_verbose(...) \ + do { if (verbose) fetch_info(__VA_ARGS__); } while (0) /*** Network-related utility functions ***************************************/ @@ -302,7 +306,6 @@ fetch_reopen(int sd) conn_t * fetch_ref(conn_t *conn) { - ++conn->ref; return (conn); } @@ -417,8 +420,7 @@ fetch_socks5_init(conn_t *conn, const char *host, int port, int verbose) unsigned char *ptr; int ret = 1; - if (verbose) - fetch_info("Initializing SOCKS5 connection: %s:%d", host, port); + fetch_verbose("Initializing SOCKS5 connection: %s:%d", host, port); /* Connection initialization */ ptr = buf; @@ -486,7 +488,7 @@ fetch_socks5_init(conn_t *conn, const char *host, int port, int verbose) goto fail; } - switch(*ptr++) { + switch (*ptr++) { case SOCKS_SUCCESS: break; case SOCKS_GENERAL_FAILURE: @@ -564,10 +566,8 @@ fetch_socks5_getenv(char **host, int *port) *host = strndup(socks5env, ext - socks5env); } - if (*host == NULL) { - fprintf(stderr, "Failure to allocate memory, exiting.\n"); + if (*host == NULL) return (-1); - } if (ext == NULL) { *port = 1080; /* Default port as defined in RFC1928 */ } else { @@ -613,26 +613,21 @@ fetch_connect(const char *host, int port, int af, int verbose) /* Not using SOCKS5 proxy */ if (sockshost == NULL) { /* resolve server address */ - if (verbose) - fetch_info("resolving server address: %s:%d", host, - port); + fetch_verbose("resolving server address: %s:%d", host, port); if ((sais = fetch_resolve(host, port, af)) == NULL) goto fail; /* resolve client address */ bindaddr = getenv("FETCH_BIND_ADDRESS"); if (bindaddr != NULL && *bindaddr != '\0') { - if (verbose) - fetch_info("resolving client address: %s", - bindaddr); + fetch_verbose("resolving client address: %s", bindaddr); if ((cais = fetch_resolve(bindaddr, 0, af)) == NULL) goto fail; } } else { /* resolve socks5 proxy address */ - if (verbose) - fetch_info("resolving SOCKS5 server address: %s:%d", - sockshost, socksport); + fetch_verbose("resolving SOCKS5 server address: %s:%d", + sockshost, socksport); if ((sais = fetch_resolve(sockshost, socksport, af)) == NULL) { socks5_seterr(SOCKS5_ERR_BAD_HOST); goto fail; @@ -652,8 +647,7 @@ fetch_connect(const char *host, int port, int af, int verbose) break; } if (err != 0) { - if (verbose) - fetch_info("failed to bind to %s", bindaddr); + fetch_verbose("failed to bind to %s", bindaddr); goto syserr; } /* attempt to connect to server address */ @@ -668,10 +662,8 @@ fetch_connect(const char *host, int port, int af, int verbose) fetch_info("failed to connect to %s:%d", host, port); goto syserr; } else if (sockshost != NULL) { - if (verbose) - fetch_info( - "failed to connect to SOCKS5 server %s:%d", - sockshost, socksport); + fetch_verbose("failed to connect to SOCKS5 server %s:%d", + sockshost, socksport); socks5_seterr(SOCKS5_ERR_CONN_REFUSED); goto fail; } @@ -1053,8 +1045,7 @@ fetch_ssl_setup_transport_layer(SSL_CTX *ctx, int verbose) ssl_ctx_options |= SSL_OP_NO_TLSv1_2; if (getenv("SSL_NO_TLS1_3") != NULL) ssl_ctx_options |= SSL_OP_NO_TLSv1_3; - if (verbose) - fetch_info("SSL options: %lx", ssl_ctx_options); + fetch_verbose("SSL options: %lx", ssl_ctx_options); SSL_CTX_set_options(ctx, ssl_ctx_options); } @@ -1092,16 +1083,14 @@ fetch_ssl_setup_peer_verification(SSL_CTX *ctx, int verbose) else SSL_CTX_set_default_verify_paths(ctx); if ((crl_file = getenv("SSL_CRL_FILE")) != NULL) { - if (verbose) - fetch_info("Using CRL file: %s", crl_file); + fetch_verbose("Using CRL file: %s", crl_file); crl_store = SSL_CTX_get_cert_store(ctx); crl_lookup = X509_STORE_add_lookup(crl_store, X509_LOOKUP_file()); if (crl_lookup == NULL || !X509_load_crl_file(crl_lookup, crl_file, X509_FILETYPE_PEM)) { - fprintf(stderr, - "Could not load CRL file %s\n", + fetch_info("Could not load CRL file %s", crl_file); return (0); } @@ -1124,23 +1113,17 @@ fetch_ssl_setup_client_certificate(SSL_CTX *ctx, int verbose) if ((client_cert_file = getenv("SSL_CLIENT_CERT_FILE")) != NULL) { client_key_file = getenv("SSL_CLIENT_KEY_FILE") != NULL ? getenv("SSL_CLIENT_KEY_FILE") : client_cert_file; - if (verbose) { - fetch_info("Using client cert file: %s", - client_cert_file); - fetch_info("Using client key file: %s", - client_key_file); - } + fetch_verbose("Using client cert file: %s", client_cert_file); + fetch_verbose("Using client key file: %s", client_key_file); if (SSL_CTX_use_certificate_chain_file(ctx, client_cert_file) != 1) { - fprintf(stderr, - "Could not load client certificate %s\n", + fetch_info("Could not load client certificate %s", client_cert_file); return (0); } if (SSL_CTX_use_PrivateKey_file(ctx, client_key_file, SSL_FILETYPE_PEM) != 1) { - fprintf(stderr, - "Could not load client key %s\n", + fetch_info("Could not load client key %s", client_key_file); return (0); } @@ -1165,7 +1148,7 @@ fetch_ssl_cb_verify_crt(int verified, X509_STORE_CTX *ctx) if ((crt = X509_STORE_CTX_get_current_cert(ctx)) != NULL && (name = X509_get_subject_name(crt)) != NULL) str = X509_NAME_oneline(name, 0, 0); - fprintf(stderr, "Certificate verification failed for %s\n", + fetch_info("Certificate verification failed for %s", str != NULL ? str : "no relevant certificate"); OPENSSL_free(str); } @@ -1186,7 +1169,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) char *str; if ((conn->ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL) { - fprintf(stderr, "SSL context creation failed\n"); + fetch_info("SSL context creation failed"); ERR_print_errors_fp(stderr); return (-1); } @@ -1200,17 +1183,15 @@ 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 connection creation failed\n"); + fetch_info("SSL connection creation failed"); ERR_print_errors_fp(stderr); return (-1); } SSL_set_fd(conn->ssl, conn->sd); #if !defined(OPENSSL_NO_TLSEXT) - if (!SSL_set_tlsext_host_name(conn->ssl, - __DECONST(struct url *, URL)->host)) { - fprintf(stderr, - "TLS server name indication extension failed for host %s\n", + if (!SSL_set_tlsext_host_name(conn->ssl, __DECONST(char *, URL->host))) { + fetch_info("Failed to set TLS server name indication for host %s", URL->host); return (-1); } @@ -1226,16 +1207,14 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) conn->ssl_cert = SSL_get_peer_certificate(conn->ssl); if (conn->ssl_cert == NULL) { - fprintf(stderr, "No server SSL certificate\n"); + fetch_info("No server SSL certificate"); return (-1); } if (getenv("SSL_NO_VERIFY_HOSTNAME") == NULL) { - if (verbose) - fetch_info("Verify hostname"); + fetch_verbose("Verify hostname"); if (!fetch_ssl_verify_hname(conn->ssl_cert, URL->host)) { - fprintf(stderr, - "SSL certificate subject doesn't match host %s\n", + fetch_info("SSL certificate subject does not match host %s", URL->host); return (-1); } @@ -1259,7 +1238,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) (void)conn; (void)verbose; (void)URL; - fprintf(stderr, "SSL support disabled\n"); + fetch_info("SSL support disabled"); return (-1); #endif } @@ -1297,10 +1276,11 @@ fetch_socket_read(int sd, char *buf, size_t len) rlen = read(sd, buf, len); if (rlen < 0) { - if (errno == EAGAIN || (errno == EINTR && fetchRestartCalls)) + if (errno == EAGAIN || (errno == EINTR && fetchRestartCalls)) { return (FETCH_READ_WAIT); - else + } else { return (FETCH_READ_ERROR); + } } return (rlen); } @@ -1442,7 +1422,7 @@ fetch_write(conn_t *conn, const char *buf, size_t len) iov.iov_base = __DECONST(char *, buf); iov.iov_len = len; - return fetch_writev(conn, &iov, 1); + return (fetch_writev(conn, &iov, 1)); } /* From nobody Thu Feb 26 04:22: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 4fLyxC1x09z6TDty for ; Thu, 26 Feb 2026 04:22:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyxB74lfz3Jgw for ; Thu, 26 Feb 2026 04:22:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c3WS2lPLutTqtOtDdkTdl3nOkfyB9jo1W0wQjR//yfE=; b=cf20FBkBXkP0ctwS0+8rXZ08z0dujCa4ZpXetA/LzZ3Gx1gJ1cOvh6lrzfAfnyt2auvO/+ F3uxMU0Yoooy2mbNU2sgyyHeJeQqSI4Xg7/ZO/r6tHAx5aY6mupDRLLSjD7WFYiXOTkjDc Zx8aw3BzTsf+3fWYuncoYhFO5SZpzGI7Mm9SZefP921gFgRXgb3dHpccCrtR+ZzNqsZO7x +IPnEkCffv2LfELESjQA3h+Gk+CTcYEePPSaK8c0t/AD8vZ0QeVJeDZDDeztlZlRjnmUKp 2TdaJj2rQ9DDn8Ql6usQgZxPVHOoHSUwu5H15WXTZWgvZ+YSEHyU/Qc3kn2Cvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079775; a=rsa-sha256; cv=none; b=eXhwZcIvL5bUmsmYPhNQInUE/ORLkQfYCKD1QHCxcNyAbvgtOx2hO3FIWCT6qUsvGq5hbH mBVOnvEsu3I4I82vIAIyoi0OydwCHj8+G9T3fDA91zYeAfkCnbJWPfvrPWVM+qT+cTXuac SVHSYGRbdIo/sozPzNRFobRe+8vZembD7+YdROxFCFzbAdadOiT3u4aYagTQ3h3vuviEsH U5nZ69AomkPONITr0DHS9NOpX229xqVCbJS2Pw2kvmDIf+OENOI0pkQqQ12om3W4dHvshV AzwuxjEQQot1Ep3nWLDYKvUN1dNqKx8eumbd/9JifASuZ8ggdK6ypvFzKWESDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c3WS2lPLutTqtOtDdkTdl3nOkfyB9jo1W0wQjR//yfE=; b=YdZdbez6MKxt6XoPcOOElD/Behpd8PPCULBU5spC3AqHtIqnEDtc+O+7IxaJOil1ZNdrfa 8vZ0s4zCxk8muscgzYF6DaFwE3m+VyhEyfNmgYbUL9nDV6fABpqf2haukYqupasVLLyENT UDZA4rs878IZ9galA0YFUjx6g//27Idky61UFGMlui/UVxkDspo6Ql2LVWIPf44ySY19Rg Ik3aRpxdjOzx1RuGFpSA/AHnuvpr79xm2KOC2owZZXjqqE8RHlk/Y22cLhIbmemAJgG4FC QthyDylIbuVjGLcPDYouhyNTL1U4fLVuAmtrycZL5PUyIk57WxJ8ZIe2R55Uew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxB6dN5z1b9 for ; Thu, 26 Feb 2026 04:22:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3622f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22: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: c0ec07280e92 - stable/13 - libfetch: Fail hard if interrupted while connecting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: c0ec07280e920cf8c672cffa0730676e2dd40d72 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:54 +0000 Message-Id: <699fca9e.3622f.561b6b87@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c0ec07280e920cf8c672cffa0730676e2dd40d72 commit c0ec07280e920cf8c672cffa0730676e2dd40d72 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:15 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:52 +0000 libfetch: Fail hard if interrupted while connecting This fixes an issue where the first address that DNS returns is blocked by a packet filter, so we hang for a while, then the user hits Ctrl-C, interrupting connect(2), whereupon we move on to the next address, get a connection, request the file, and return to fetch(1), which sees that SIGINT was caught and bails. Note that we make no attempt to enforce fetchTimeout in the connection phase, and never have. It's feasible, but non-trivial, so we'll leave it as an exercise for future us. PR: 293312 MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55406 (cherry picked from commit afbdcd402bb439bd3d487baaad63b68e95929265) --- lib/libfetch/common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 53d9c57b9fb0..aadd354c220d 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -651,7 +651,13 @@ fetch_connect(const char *host, int port, int af, int verbose) goto syserr; } /* attempt to connect to server address */ - if ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) == 0) + while ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + break; + } + /* success? */ + if (err == 0) break; /* clean up before next attempt */ close(sd); From nobody Thu Feb 26 04:22:56 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxD3LhQz6TDv9 for ; Thu, 26 Feb 2026 04:22:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyxD1Ghtz3JW4 for ; Thu, 26 Feb 2026 04:22:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079776; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S0hkCev+5fDc6WsgVwL0v9t+6s7EXKRz9poPN8tOamc=; b=UJFzj3FSqYixliDKFDBWWyg817ox8bvgJIEi7A9TYPoBKq14XM6vf1r5xwgXaT46xfczCL Tme2a9uWDuIINlMuGI1dVbEUjyzaz063YJmX4MaUjNJjuM0mDNLQut5UXvUNExivjH2byR 5f08InuvfKK7ZNy8Kat7wEFk8Ec0K8YSVcCanepJ+0LQYObqzqSClluk5gkNSgd3RBJAg7 b1gKDClBvbcX6lx1xsTmabD8EOHLvE66DumVoV/Xohy3wC3GtAnh1K/EjD5yONUoNzPPpM m1hr7GZizJxA/ZWLg6WMvYhmSntGQnPTEsMJymLjwGRpnzgF4duz2UqcjFSl9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079776; a=rsa-sha256; cv=none; b=S+mjq347zssCWRfSBDl8BfjhWMqZweu69qjO+MOqo/rjcgI91qpzcTbuuZTwHtT6s9SczH oUjTpppvxqnXm2QydZftIJRu9/5iSwYMchh17GCg0B/zXa/285YtxxHJBqexIdJejMI7/a 3Vp82dM8V14V+AdOVBzPrquJEvXVLzLWDa5hYnwuwXspCTTSLKPVzLNVtIm0gdcrcI5ssL g2Ylj9icuP4raTxjqtleiSgsdxvikXdbwlk1OkvREQrWT9jctyqvDSwQf/dQCn65DVh+P2 SYZheiWCmhalTWoIURnrY7I5gq38HqI+zXExKzQbT7JneqXn/l1z+GIyVxq39g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079776; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S0hkCev+5fDc6WsgVwL0v9t+6s7EXKRz9poPN8tOamc=; b=fPe+L7/xnIQsprktCZrFyQIJLVRqT/W4WAgrd84H+p3Cn34fwClDE8YnY2Xu3xruYTohrj ElOAgtjXqfqbSOtP9ZjamkWFeBYk2MICZJCllhUNvhdt3YSEi+dncPhvUalqHWfoZI23jW n2+7AiE3CTZunXFkqUhIRDGFAEoamVrLNzHsu7ibRTgUJiNgXu3JQI9tT2fbAlM72dyre8 gqiWNM6BtoKrscprTJEvMk0s7DPP53Vs0pfsPi7y0I+mk+/WUf7m/IhUeKOyAgJlGLnSYH Jqsbrvu4bw+5L3l+cdysU6432dvr52++OsRzwU9NVNoq4inFvLntUs/dJ8rmYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxD0N89zy4 for ; Thu, 26 Feb 2026 04:22:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36233 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:22:56 +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: 783cec744b90 - stable/13 - libfetch: Gracefully skip unsupported protocols List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 783cec744b9025d4a0d933b39ee95b0085b677c3 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:22:56 +0000 Message-Id: <699fcaa0.36233.60adfdc4@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=783cec744b9025d4a0d933b39ee95b0085b677c3 commit 783cec744b9025d4a0d933b39ee95b0085b677c3 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:18 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:03:52 +0000 libfetch: Gracefully skip unsupported protocols If socket() fails because the address family or protocol is unsupported, just continue with the next address. MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55407 (cherry picked from commit b5d570e711da1dad303312bebaf1bd2fb720f0dc) --- lib/libfetch/common.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index aadd354c220d..acd8b19e16cd 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -637,8 +637,12 @@ fetch_connect(const char *host, int port, int af, int verbose) /* try each server address in turn */ for (err = 0, sai = sais; sai != NULL; sai = sai->ai_next) { /* open socket */ - if ((sd = socket(sai->ai_family, SOCK_STREAM, 0)) < 0) + if ((sd = socket(sai->ai_family, SOCK_STREAM, 0)) < 0) { + err = -1; + if (errno == EAFNOSUPPORT || errno == EPROTONOSUPPORT) + continue; goto syserr; + } /* attempt to bind to client address */ for (err = 0, cai = cais; cai != NULL; cai = cai->ai_next) { if (cai->ai_family != sai->ai_family) From nobody Thu Feb 26 04:23: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 4fLyxj0XDmz6TF0w for ; Thu, 26 Feb 2026 04:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyxh5XDzz3KmC for ; Thu, 26 Feb 2026 04:23:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=018kJ68TmLeBanIkbx5/5kaG+5HvsuA7q5smGKKqNeA=; b=FTJJeqs/2RVj/3ikEWmjhWsLAaL64M2f9vvL3c3/IbRhOs5OMe03ZRHm+sm0GrckYOoP29 g8WuOgHgvsF4ToRu74qfxnIZMORtPuRnde0EYrPrlD/MI3qoHX8MO6zr0p1lLqDjAEO14m z66ytLhNaUAvYHW88/TLNbXwoNRRutqOrTbvHcYPBuiA79/cAlwn3WoIfrFGr+N4Bc+LU7 lbLSuc2G5FSMEEwDYc9t0Rvb+Rt473NwdVfiocl3ZJoKJlDBPIbnyJhQ38DGvo/4gAlUcq iTYG96VBryjXSfvKCq9VL/ySU4tZgMd0XqqfAZkcOnZNqKACYUsp6Eoal+hcbA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079800; a=rsa-sha256; cv=none; b=UndgPvDhMKoKhPrC1Xnhx6hFvyKVeSTNMuYCdLcal6OiWYHl5QeVWjxl9zkfFoDxkKWQnc Xk9N1MFeQcP4QW1BZAfy7EU9WdrDrtgzpCdgw7pto9ixAomFQHpAjakme4vIFAJDuxNovf Vba81SHAYP4KWeafLx9sIbZ4o24N9MVowJNcoYY6QCvAwPmI+PDe2pywySE2dmeDn5OHdK Mg121W/bCakxz5zSYPw6hb9TJrrkQX1nzFw4/1GlcVe2c/5GKvr+jY0Rv4bztuS/OMmsS5 Va07hyQU5C2HWRqyrRwazRmtn40IEkoIEG0PTVFpcQjm+0Eg5zYz2ui0pp7Xxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=018kJ68TmLeBanIkbx5/5kaG+5HvsuA7q5smGKKqNeA=; b=tb5MazaLOfUO79j+c/fea4TTtflHGIrQowuKijtuL0+wgwgHS9nBdFFWeXSI/lZCSYGl6j clYWPM83O0+9/UuGjfS4UlS4k+rGXcPiTqZL+R9QCejcyWaoIgoBBuPG9OuKvowtRf5fZE vg89g8cngVlLLWn6vfBW4aT3G998hllUbarCRL3NzGJrB2krPeT3WM3AL/73iILC+gAuJg HwFaYroruqiAhlzgAclB3UWJWJQvCji1sRZp39NXG1YZ0hGZqGkdIqdAHVLvRSKyg26CV7 QNGGF1tUJNNs/yoYaZYRkAqxzYGWczNSx/iJS2s8DBFt7u30LeJGQyjcPKoFyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxh577Lz1vN for ; Thu, 26 Feb 2026 04:23:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36315 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:23:20 +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: 122de340a9bc - stable/15 - build: Move all of lp under LPR option List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 122de340a9bcd71eb32dfc1930b66188a1431c4e Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:23:20 +0000 Message-Id: <699fcab8.36315.2d3947cb@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=122de340a9bcd71eb32dfc1930b66188a1431c4e commit 122de340a9bcd71eb32dfc1930b66188a1431c4e Author: Dag-Erling Smørgrav AuthorDate: 2026-02-20 18:20:04 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:23:04 +0000 build: Move all of lp under LPR option * Tag related directories with package=lp * Make the examples/printing directory conditional on MK_LPR * Make the hosts.lpd(5) manual page conditional on MK_LPR MFC after: 3 days (cherry picked from commit d4f6cb75424950ee776833ebc6b57855c094a610) --- etc/mtree/BSD.debug.dist | 4 ++-- etc/mtree/BSD.usr.dist | 6 +++--- share/examples/Makefile | 4 +++- share/man/man5/Makefile | 2 +- tools/build/mk/OptionalObsoleteFiles.inc | 18 ++++++++++++++++++ 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/etc/mtree/BSD.debug.dist b/etc/mtree/BSD.debug.dist index 8959b281f578..0b4ee248702b 100644 --- a/etc/mtree/BSD.debug.dist +++ b/etc/mtree/BSD.debug.dist @@ -57,8 +57,8 @@ libexec bsdinstall .. - lpr - ru + lpr tags=package=lp + ru tags=package=lp .. .. sendmail diff --git a/etc/mtree/BSD.usr.dist b/etc/mtree/BSD.usr.dist index ad2d8c5b39a4..0a7cfc1b8018 100644 --- a/etc/mtree/BSD.usr.dist +++ b/etc/mtree/BSD.usr.dist @@ -181,8 +181,8 @@ .. hyperv .. - lpr - ru + lpr tags=package=lp + ru tags=package=lp .. .. sendmail @@ -354,7 +354,7 @@ .. ppp .. - printing + printing tags=package=lp .. scsi_target .. diff --git a/share/examples/Makefile b/share/examples/Makefile index 09bbf820e574..0174792d2ecb 100644 --- a/share/examples/Makefile +++ b/share/examples/Makefile @@ -25,7 +25,6 @@ LDIRS= BSD_daemon \ perfmon \ ppi \ ppp \ - printing \ ses \ scsi_target \ sound \ @@ -250,6 +249,8 @@ SE_PPP= \ ppp.secret.span-isp \ ppp.secret.span-isp.working +.if ${MK_LPR} != "no" +LDIRS+= printing SE_DIRS+= printing SE_PRINTINGPACKAGE=lp SE_PRINTING= \ @@ -269,6 +270,7 @@ SE_PRINTING= \ psif \ pstf \ pstfX +.endif SE_DIRS+= ses SE_SES= \ diff --git a/share/man/man5/Makefile b/share/man/man5/Makefile index abf4b59d184b..f950df8fdb47 100644 --- a/share/man/man5/Makefile +++ b/share/man/man5/Makefile @@ -75,7 +75,7 @@ MANGROUPS.${MK_TOOLCHAIN}+= TOOLCHAIN TOOLCHAINPACKAGE= toolchain TOOLCHAIN= ar.5 -MANGROUPS+= LP +MANGROUPS.${MK_LPR}+= LP LPPACKAGE= lp LP= hosts.lpd.5 diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc index 3617e2d4df40..b0d80ab26211 100644 --- a/tools/build/mk/OptionalObsoleteFiles.inc +++ b/tools/build/mk/OptionalObsoleteFiles.inc @@ -5292,11 +5292,29 @@ OLD_FILES+=usr/share/doc/smm/07.lpd/paper.ascii.gz OLD_DIRS+=usr/share/doc/smm/07.lpd OLD_FILES+=usr/share/examples/etc/hosts.lpd OLD_FILES+=usr/share/examples/etc/printcap +OLD_FILES+=usr/share/examples/printing/diablo-if-net +OLD_FILES+=usr/share/examples/printing/hpdf +OLD_FILES+=usr/share/examples/printing/hpif +OLD_FILES+=usr/share/examples/printing/hpof +OLD_FILES+=usr/share/examples/printing/hprf +OLD_FILES+=usr/share/examples/printing/hpvf +OLD_FILES+=usr/share/examples/printing/if-simple +OLD_FILES+=usr/share/examples/printing/if-simpleX +OLD_FILES+=usr/share/examples/printing/ifhp +OLD_FILES+=usr/share/examples/printing/make-ps-header +OLD_FILES+=usr/share/examples/printing/netprint +OLD_FILES+=usr/share/examples/printing/psdf +OLD_FILES+=usr/share/examples/printing/psdfX +OLD_FILES+=usr/share/examples/printing/psif +OLD_FILES+=usr/share/examples/printing/pstf +OLD_FILES+=usr/share/examples/printing/pstfX +OLD_DIRS+=usr/share/examples/printing OLD_FILES+=usr/share/man/man1/lp.1.gz OLD_FILES+=usr/share/man/man1/lpq.1.gz OLD_FILES+=usr/share/man/man1/lpr.1.gz OLD_FILES+=usr/share/man/man1/lprm.1.gz OLD_FILES+=usr/share/man/man1/lptest.1.gz +OLD_FILES+=usr/share/man/man5/hosts.lpd.5.gz OLD_FILES+=usr/share/man/man5/printcap.5.gz OLD_FILES+=usr/share/man/man8/chkprintcap.8.gz OLD_FILES+=usr/share/man/man8/lpc.8.gz From nobody Thu Feb 26 04:23: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 4fLyxk1P3mz6TFJk for ; Thu, 26 Feb 2026 04:23:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fLyxj62zRz3Kgd for ; Thu, 26 Feb 2026 04:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2+Fzd75taqcoo8vu6uLb2xGu1Ct5NTTADcupZ96eL4k=; b=GoftPIEC1rtTa5YVDijGEJAcguFFTrNBN2Qm6Ej/fmClzATeTgXqhei9QKTWXWJSBuEMjc vDqqgMWaZOKuewVc9xmMeMVntCTcz3IsmXp0KFeozR1KXlF8KIA28pzC+YJGF99Ste858b kzT8mdLxG+TrYscKQs/CQ617KflZBkrOTFlvsyY4L3CWrY2fKb+1t5AG1A0FS7GASd89qT 2Ucu2lAEoBTaW6hFzJEVKvLEA5/G9F/doKaQTh6cAAhAdqfTE0vGJ8clXtwVv1DDKqArtQ lxAlgMMNepQmNyphMDlZGx3cC9+KhqVdS5qf6AT2AoX1pb1zo5CVTIB4deevJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772079801; a=rsa-sha256; cv=none; b=A7KhkV0QmucjLGqgvglkv3o/97B7VkZTm78bgZRXMkQkda2ZDazOwAvhswjBum4g6EjwzK TGTaljnoBZmKCIbPIcWtaNL3WamR1/i9edrRRTyiL+qQYqu1UFgfG1jfH+D49kjb8HK5Cr mtRJSk2BRb2mbcbzrZ0mGwZ3RR5zi4OERxsKDqH7pnAI8dk7ZIM01saDyS2ni4et6/XK0z eC+dpxqndSY1qJxjsVAQecsGGkOtvFlMZRqZyAo19YylW7OIXMe3raMyzFAvP/m2B6G+ks GoOIPQETjymGr8bgQmTpvQmbsHeHVaNdbHcvTPerfthT1Tvxmv5FnTpqNVoScw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772079801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2+Fzd75taqcoo8vu6uLb2xGu1Ct5NTTADcupZ96eL4k=; b=f2MlV69qx3324gIqASK7uqCpykb28ZRruuVFQecpPhY9+z0xIYayrRxEomSWOtPx6MEJZB OD2xoPadwEdLun1n6/8nhq1gj+V/kJ13F3NUFu3oki+YqEf/ixvXHDGVNSnLuicqrwdfnD J0dmuAgIOoAKEmlCZ9IZgvNnaLNaap1SuCXYWonKOk+F8usubiYYZQmKN8GeS5wrP1Tatt 7DAUww97ajB/2XcqmUpvr9BboLis82Dniac93ezcxEWZ0lPkAxhE9rcbDqHu/eFKksjTl5 56hE1tic7uMniOegnZ7bz4axpSz4qmx0/HA1rOuSS38LKsBvxZAwBbkOE1ut1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fLyxj5bQ2z26F for ; Thu, 26 Feb 2026 04:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3639b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 04:23:21 +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: 9b75d6ec6929 - stable/15 - lpr: Add deprecation notice List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 9b75d6ec6929e7e6723fbfeb52f60acfa63e5dbc Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 04:23:21 +0000 Message-Id: <699fcab9.3639b.164a2fcd@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=9b75d6ec6929e7e6723fbfeb52f60acfa63e5dbc commit 9b75d6ec6929e7e6723fbfeb52f60acfa63e5dbc Author: Dag-Erling Smørgrav AuthorDate: 2026-02-19 17:55:06 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-26 04:23:04 +0000 lpr: Add deprecation notice These programs require elevated privileges to work and have not seen regular maintenance in decades. Unless someone steps up and overhauls them, we will have to remove them before 16.0. Better-maintained alternatives are available in ports (print/cups, sysutils/LPRng). MFC after: 3 days (cherry picked from commit d57dee7ab66f60537b557cb602be194e3eed253d) --- usr.sbin/lpr/chkprintcap/chkprintcap.8 | 3 +++ usr.sbin/lpr/lp/lp.1 | 3 +++ usr.sbin/lpr/lpc/lpc.8 | 3 +++ usr.sbin/lpr/lpd/lpd.8 | 3 +++ usr.sbin/lpr/lpq/lpq.1 | 3 +++ usr.sbin/lpr/lpr/lpr.1 | 3 +++ usr.sbin/lpr/lpr/printcap.5 | 3 +++ usr.sbin/lpr/lprm/lprm.1 | 3 +++ usr.sbin/lpr/lptest/lptest.1 | 3 +++ usr.sbin/lpr/pac/pac.8 | 3 +++ 10 files changed, 30 insertions(+) diff --git a/usr.sbin/lpr/chkprintcap/chkprintcap.8 b/usr.sbin/lpr/chkprintcap/chkprintcap.8 index 7aecf9fbb1b7..1e9638c2b5aa 100644 --- a/usr.sbin/lpr/chkprintcap/chkprintcap.8 +++ b/usr.sbin/lpr/chkprintcap/chkprintcap.8 @@ -34,6 +34,9 @@ .Nm .Op Fl d .Op Fl f Ar printcap +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lp/lp.1 b/usr.sbin/lpr/lp/lp.1 index 907ce867279e..fee272c456e5 100644 --- a/usr.sbin/lpr/lp/lp.1 +++ b/usr.sbin/lpr/lp/lp.1 @@ -44,6 +44,9 @@ .Op Fl d Ar printer .Op Fl n Ar num .Op Ar name ... +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lpc/lpc.8 b/usr.sbin/lpr/lpc/lpc.8 index 089be4ab3bfc..cc1ba05dd775 100644 --- a/usr.sbin/lpr/lpc/lpc.8 +++ b/usr.sbin/lpr/lpc/lpc.8 @@ -34,6 +34,9 @@ .Sh SYNOPSIS .Nm .Op Ar command Op Ar argument ... +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lpd/lpd.8 b/usr.sbin/lpr/lpd/lpd.8 index eed37ea1d6f4..9a4e46996811 100644 --- a/usr.sbin/lpr/lpd/lpd.8 +++ b/usr.sbin/lpr/lpd/lpd.8 @@ -35,6 +35,9 @@ .Nm .Op Fl cdlpsFW46 .Op Ar port# +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lpq/lpq.1 b/usr.sbin/lpr/lpq/lpq.1 index c87bcbbaa94d..a5e26446ba76 100644 --- a/usr.sbin/lpr/lpq/lpq.1 +++ b/usr.sbin/lpr/lpq/lpq.1 @@ -38,6 +38,9 @@ .Op Fl P Ns Ar printer .Op job # ...\& .Op user ...\& +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lpr/lpr.1 b/usr.sbin/lpr/lpr/lpr.1 index b73870a0f46e..c4f86756b959 100644 --- a/usr.sbin/lpr/lpr/lpr.1 +++ b/usr.sbin/lpr/lpr/lpr.1 @@ -46,6 +46,9 @@ .Op Fl w Ar num .Op Fl cdfghlnmprstv .Op Ar name ... +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lpr/printcap.5 b/usr.sbin/lpr/lpr/printcap.5 index e745fafc7b27..e1bc891c5c09 100644 --- a/usr.sbin/lpr/lpr/printcap.5 +++ b/usr.sbin/lpr/lpr/printcap.5 @@ -33,6 +33,9 @@ .Nd printer capability data base .Sh SYNOPSIS .Nm +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm Printcap diff --git a/usr.sbin/lpr/lprm/lprm.1 b/usr.sbin/lpr/lprm/lprm.1 index 8d35a3434969..e6ae6e22012b 100644 --- a/usr.sbin/lpr/lprm/lprm.1 +++ b/usr.sbin/lpr/lprm/lprm.1 @@ -37,6 +37,9 @@ .Op Fl .Op job # ...\& .Op Ar user ...\& +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/lptest/lptest.1 b/usr.sbin/lpr/lptest/lptest.1 index 76f9c2418ce8..ba897c1ddccb 100644 --- a/usr.sbin/lpr/lptest/lptest.1 +++ b/usr.sbin/lpr/lptest/lptest.1 @@ -35,6 +35,9 @@ .Nm .Op Ar length .Op Ar count +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/lpr/pac/pac.8 b/usr.sbin/lpr/pac/pac.8 index 145d54ad4562..9443c3fc1ec2 100644 --- a/usr.sbin/lpr/pac/pac.8 +++ b/usr.sbin/lpr/pac/pac.8 @@ -40,6 +40,9 @@ .Op Fl s .Op Fl r .Op Ar name ... +.Sh DEPRECATION NOTICE +This facility is scheduled for removal prior to the release of +.Fx 16.0 . .Sh DESCRIPTION The .Nm From nobody Thu Feb 26 14:33: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 4fMDVB1J0Nz6SYCj for ; Thu, 26 Feb 2026 14:33: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMDVB0cQNz3H1j for ; Thu, 26 Feb 2026 14:33:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772116434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GHtR696sAihaDa8TyUrUi2KOoZJWu4YuQLkw0hRarcM=; b=MaV+Kf8NPaXfKRBoF9h9uSyQ7VGAVy5TX2lHnEPh2hQL5OpO8XqZCOYgHM9K3fHr2qmh5M X3DlN70XoUhV5DbqbFWwwSnWKI4kU1THQPrSELmUa3hHdjarvkxqUmqZmGi3a/SILpX2iO ctJgDAyCBKFYHQ8KzHlx7jcNbou75jXBl1x9qjjZoqVe5+shEjj1SNTecsDKJjg3lIvQV8 I3P7nRTWhOWUkAvmpT1w/Z7BcwgTK92a2h/3Sipcf8yu3Q9ccz7W/c+7N4yYP3bSswhhQv CAP+JYPCjkMG+7rKXl8sbxbINiuNj3AizyIU8fo4/wQWe50JMn7mHNrJNUZHwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772116434; a=rsa-sha256; cv=none; b=sdDoRW9LZp3FlXEwhtrJlITLlueSh5cjHn9zoXG55IQ0DLPhYV8a0T9B1+QkyV/y4UeEj4 uPoVff9s8X0hyACCp5jGCJImo+piuckg9rfp76VrG3q1gVFubK/y+EaV5dKNFA5nlvhYxO qMNY8MRoi132YEpiZ0HGbFHXqoc27XEjs4ezzEnIGlYC/bUJ01oLaY4leGzpwMVBYDXklG HVHGC5DM3tBAqvCfcYeNiZiavTELOGItRkmIUFpZIq7zMM3MVfD+wj56I0bBuTCH9o94mM RwdIOKr59IzTUd1Z+dnDVr1+aTsJaU4uiAzofO0aKFOK282dfML8PltVEo4rYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772116434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GHtR696sAihaDa8TyUrUi2KOoZJWu4YuQLkw0hRarcM=; b=Vlp8dhrobxLXxsfYLuwVH8saBDEsTPSe4tBwBYdqZuXejgNRk5K/A84jmUvtxHpMuCJEkC 32JNeme/O7VGi6zbYEKKwnmd4xBBRiuYNG3oDZssGyWDiHSGFvT4ElptGI+IcgWMS0ogIb 0S4RXnk3K22yOHFjj5AnCkPyFadQjzYQCGRIwwGA8xjrcj5ZElCLUBPTk4mLrELqdn9/LZ sHDWqVpGXHt3qz8k46DK/nyWxUFWRtORwu8/JpmchT0CkMvx9xijcp4u43JhWlra6eEsur HzeZb7hv6bXDiDcGcgTYTr/7P8zuSi6o4TCZiUQTCtzoy7UlJvT2gVYfM2Ajyg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMDVB04TGzcL7 for ; Thu, 26 Feb 2026 14:33:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 268c3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 14:33:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 8f1de03b50d0 - stable/13 - qlnxe: Advertise the IFCAP_HWSTATS capability List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/13 X-Git-Reftype: branch X-Git-Commit: 8f1de03b50d00211597d7221055b44890fea7fd8 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 14:33:53 +0000 Message-Id: <69a059d1.268c3.614420ce@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=8f1de03b50d00211597d7221055b44890fea7fd8 commit 8f1de03b50d00211597d7221055b44890fea7fd8 Author: Zhenlei Huang AuthorDate: 2025-07-22 04:11:02 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-26 14:17:22 +0000 qlnxe: Advertise the IFCAP_HWSTATS capability The hardware can count statistics and the driver has already retrieved them via qlnx_get_counter(). Advertise the IFCAP_HWSTATS capability to avoid the net stack from double counting IFCOUNTER_IBYTES. Reviewed by: kbowling MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D51451 (cherry picked from commit 386960a8805edc6d5ac6bb6215ad102a83314549) (cherry picked from commit bfbb93b6de6afc8aba8df90e2a28db1c93cbd143) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 2586539617dd..ad7843dd5596 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2389,7 +2389,6 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ifp->if_capabilities = IFCAP_HWCSUM; ifp->if_capabilities |= IFCAP_JUMBO_MTU; - ifp->if_capabilities |= IFCAP_VLAN_MTU; ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING; ifp->if_capabilities |= IFCAP_VLAN_HWFILTER; @@ -2399,6 +2398,7 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ifp->if_capabilities |= IFCAP_TSO6; ifp->if_capabilities |= IFCAP_LRO; ifp->if_capabilities |= IFCAP_LINKSTATE; + ifp->if_capabilities |= IFCAP_HWSTATS; ifp->if_hw_tsomax = QLNX_MAX_TSO_FRAME_SIZE - (ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN); From nobody Thu Feb 26 14:33: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 4fMDVC4FHgz6SYLW for ; Thu, 26 Feb 2026 14:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMDVC1CdVz3HFj for ; Thu, 26 Feb 2026 14:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772116435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T3fZehh2H6pfo4QURNAVP2HoypvLAUASh2+xyvLQWLo=; b=DypCZFEmhCEfB7f26teMKk8QplfxYoTJUM56p5cuyrkkNR5fBm1EbAExKEZnIEhqhY9uzO +F/TvWaEWakZmi5vw7g3dVzEgGMhDMBqK2PyLzLKmHM4LCJE5O8Z0aUY5Ct9eu1y8Y4Hvu /IVo5MKhj4vcpHfVffxJ0OSZiApK005vpcQjUvjOkWr8svxQcD/92RSDW0VRhiRaPabCqq 1k5AmJpRlMOmmpMLZ0YK9+9qVtxWGnh8LfCAYZNg4w+JVgKYNAXQgrLLJsHc6regcNVEEC SDWTGG4fN41rYc4R7h/eLT/vqZRz5xA0XnBCm77WwznGbHcNE0D6OiGPKcDjng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772116435; a=rsa-sha256; cv=none; b=FWaU5q1TwdRnG5+WvI8mfiKdje5Mr0LzLAwFua2L5YUXDQGqAjtR44v8T7NiOfhdAaswXh w0N5DSFn92Nk8GwnwrJsX8kyiBcQvIataa3wQRJ+ZFq3T5sQIiJcWNNG4M4QQ+BgS7reK+ jsO/1aPJ7ZXs3egwPnYRXSKJ54q/U0uVpY7O1y82Uu+8DKIoycoJayyaniPjm7xjJ2uV4Q 1JGHviTicA5zNsiBZtG7ljAWsU857LLWY2Z8X2xc0hullpZmpYDxO2Wcbh/Kp+YHp0186Z PsdgMi5c9OAhNrE2vkM/F1+arl2nH81OyZ2rLFaNLWhk8h6A4/ckWbbLc5unfQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772116435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T3fZehh2H6pfo4QURNAVP2HoypvLAUASh2+xyvLQWLo=; b=a17lZ3KLV10/bMY46MV7pC+w0ntbm28oGJ2jbZtN5pvK5re+z7dl26PzSvpiZDx0o+Y5s3 aKoyxXV1KFL2ykul6Vx9Q2fAHSXSnM/JcHi1MUyRyUlVoY5EkTvwEC2DFR2bbXwheItdOn e5aZOnam2KW4IfzhnvpNYS+WCHwKDeDnBWf4WA059jc7mrcR5uB6JYWv+bDWm7dq0IEmiP U2ACCGcYq5HTVPXhUY4xiNG/TU7Q9BMUYx4ejMQNiqXHTyT3i7lWdQV7t32fyxcEiG662h 86rR3NSOnCRxcm4OrkUxI0ev81Qr15vNLQqq2fN8pRvRyPtoIpT0kpzA2ldZdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMDVC0lHPzc8L for ; Thu, 26 Feb 2026 14:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26b40 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 14:33:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 59c399d38dd8 - stable/13 - 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/13 X-Git-Reftype: branch X-Git-Commit: 59c399d38dd8c711a9b9ae2f6614eed80afdde63 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 14:33:55 +0000 Message-Id: <69a059d3.26b40.4eacf74f@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=59c399d38dd8c711a9b9ae2f6614eed80afdde63 commit 59c399d38dd8c711a9b9ae2f6614eed80afdde63 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-26 14:17:22 +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) (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 ad7843dd5596..c1179d83a679 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2440,8 +2440,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_LLADDR(ha->ifp), ha->primary_mac, ETHER_ADDR_LEN); - QL_DPRINT2(ha, "exit\n"); return; From nobody Thu Feb 26 14:33: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 4fMDVG4FrZz6SY9J for ; Thu, 26 Feb 2026 14:33:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMDVG1M3Yz3HTk for ; Thu, 26 Feb 2026 14:33:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772116438; 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=w0lark9dn2zS6C/LmhLiwjvjoi7XL33O8mknRjib6fc=; b=yC/Sk3+W6iPGOUShFwIXcqI3uI4xJ51Z0mG/IJ9+yZbIYK84DdDJg1I9biQpqN6s5msz8j q5MCzMBL2Yfmm4QcIQGw4oVX4ZLuwoOP41/kgRKz1QzItZnvo4iciIC6R9+IzJoxC3yh+9 gC4jWABC8a55ppBa09WKNmt+LiEJ4MTSfqdMRswzx5+YFFCfsBbZMHV+jyyRzcCm7tOZRu 8G/xcJWtDc501h8IeR9KudKUvliQdsqnXxbn0Gnj0+wBdBcGUT5c5OStlBE8LaAOSA/fEH 3G5ET9G1yiCdBy+FX22ZVorNmyZ7QqY0W1OGTy/FH0UkYwul9PlE435M7pFkaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772116438; a=rsa-sha256; cv=none; b=vQNbsyVgzQGy4lYsKI85/UZoedY5sCAe7A0kmvc9ypKQKhYf0kjEY9hVlgrxG2Lj7D/wCk Zd1DQrREzlAsS2a5VMp+MKGHX9U4tFkLMOks4IL7xjpnPQKaIFwOcvZwIsqZAPUtkLzrwR YjEuweD56ij/TUeINVgrXH/QxNilZwic28K2eP1EtW5oxKKZztduWKBVFIoYIBJYJrpbI8 O1OU7ZDF6uQnvzanY/+FaL7w3H0SnQbklSELQNnP4lcCbCG70ZQd6l9UvPickhDk2eZe6w MgIiJoe6wTVYDUFI1vHKbkwBS6y7lHEwmNeetB6aHw9vqeThZxEwQwQrRxBgLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772116438; 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=w0lark9dn2zS6C/LmhLiwjvjoi7XL33O8mknRjib6fc=; b=GIEijI6wewq+ZsXfEEYL1PfpPv2mMsFvoySxuwIk/RjjpZ+c0YZhvY078kWOdtnQ7XRfXJ Q3qaBW97IQaSK7HMfxaw043d+g0vW/t6Fpo8WSjENB8FWBOEL48Yt18lkGC3L943Y1zG4k vNJR8A0T9eF4qAb3W0S2LE66mRccV6H4olSif3gAq1e+Xiq24TEoIQu2ph3S4l3/QsI22q ztFOCnAeKhCTRa/wbsYbppRMMaroyGJ6eqQ7RPfa1oPgY6UcICuV5sWe0xfOyZ6U20Tj4/ /dEaC/zhAT22pc66D0f/jUL9FEk/klDxLLPmCoqEtoP/MIah4NjW/qkaLV358Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMDVG0vzvzcBj for ; Thu, 26 Feb 2026 14:33:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26920 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 14:33:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Kristof Provost From: Zhenlei Huang Subject: git: baed1f130ab1 - stable/13 - qlnx: fix panic at startup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/13 X-Git-Reftype: branch X-Git-Commit: baed1f130ab1ca0e553f2cb031f3cfd040ba3cfb Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 14:33:52 +0000 Message-Id: <69a059d0.26920.4c001e4@gitrepo.freebsd.org> The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=baed1f130ab1ca0e553f2cb031f3cfd040ba3cfb commit baed1f130ab1ca0e553f2cb031f3cfd040ba3cfb Author: Kristof Provost AuthorDate: 2025-06-12 16:53:33 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-26 14:17:22 +0000 qlnx: fix panic at startup While attaching the qlnx driver we can end up trying to call ifmedia functions before those are set up (through ether_ifattach() -> rtnl_handle_ifattach() -> dump_iface() -> get_operstate_ether() -> ifmedia_ioctl()). Postpone the ether_ifattach() until after the ifmedia setup. Reviewed by: markj,zlei Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D50819 MFC note: qlnxe(4) does not exhibit panic at startup on stable/13, but there's a small windows that the setup of ifmedia has not been done but other threads try to access the ifmedia, since the ifnet is public visible on ether_ifattach(). Postpone ether_ifattach() until after the ifmedia setup to prevent that. (cherry picked from commit 4f7473d18a62077a218ac00817bae09a95b8cbcb) (cherry picked from commit 8ef7ad95e9156bea689274c9d57fc961b203efe2) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 96a5e9e7e269..2586539617dd 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2387,9 +2387,6 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ha->primary_mac[5] = (rnd >> 16) & 0xFF; } - ether_ifattach(ifp, ha->primary_mac); - bcopy(IF_LLADDR(ha->ifp), ha->primary_mac, ETHER_ADDR_LEN); - ifp->if_capabilities = IFCAP_HWCSUM; ifp->if_capabilities |= IFCAP_JUMBO_MTU; @@ -2442,6 +2439,9 @@ 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_LLADDR(ha->ifp), ha->primary_mac, ETHER_ADDR_LEN); + QL_DPRINT2(ha, "exit\n"); return; From nobody Thu Feb 26 18:16: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 4fMKR85CwLz6T3P6 for ; Thu, 26 Feb 2026 18:16: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMKR80xVfz3hJM for ; Thu, 26 Feb 2026 18:16:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129796; 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=pwuY3LvKcUIQcOWQmyxZtGgvLSm2Vh8Qv8pinhf5Zg8=; b=jmD5+KgXOqfYPWpdeYkG8iHDeuR044WrbXZyDficjsrutiq8OEn5c96C+oYCGhh1nPm89V GfJCNLD1EkKvu+sklp568NaQ+a2Judp8uw/tydSkRJDudgVw3ODIPO4UkbV9uLeYBSY7Js GdfOcYjJnT0E+UIce1iHyJA6+LZJ4o+fH/2fP431zsHd0vGGHgJkBXgIbD/p9HaGhX4sIq o334DgncSsIWKcUguzsFioo1ZewxjBvT0VTSSqR/6OgsTEoccbXi4xWAn8urtA3lyOwoQU l4UpPj+hWK5s/9ZElTxfBRb9Mn5xrQDY5pJtwO/e5ZJdDROxdQpUGFLsda7CSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772129796; a=rsa-sha256; cv=none; b=j/dOe+WGqzlzrtgRKzsp7uSkwC5uB0JuuwJrIX6fjPGLsPYCIPOGEXsOWSm5F0x60cA07E bo17BWeuEGXky8B4pakdMgyUHf8QWVkfRNhY9LFsXGIPITRp5iBWxguS9dBZQd2uUqII4Z 22dM5fWLPv4UNllLzF/+Z/npAatNMwjvawRxOTwEIOrh217t5lKwdJv++ohaKfgm10pbIS bjcbSCHy1KwjDq2UAOmir/ICHzCgL9UO7Is0FvU7Qi0OqleP2zxttQoApPBanKPz6dCqss uIPSqo2uYMJz1r/F59NlIcLGMk6KbU2OiMRJ21DUhlxXErS4z9PjVgGOxqj6mw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129796; 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=pwuY3LvKcUIQcOWQmyxZtGgvLSm2Vh8Qv8pinhf5Zg8=; b=doJ3M8Hu+lmYEHdaeWOP613FRzAdMg+qOQYZgAyTRvUjy+NMpW85bSyysj5V+g+dDww+8Z yqNtYYwbVGFTNwkHcXSU7EP0dekRFY6TRBlP3GG2c69tkIhwlNsBnHWS1wWCGF4gJDtxcZ 9zmzI7Q1mO20M7Etxc9GD5dLOhDfho5g+YJRyqkRaBbnLT7gsxH+9qEIkc2s+H7oKp4wX4 3e+c3cqxP7KBlW6OkwAaoLnmm2q6oZTrzqZ09VcL0Z1iokpa/ZFQKPNAfYLZJH7EsL2eQ0 SgOIJSLYIjQBDNDD51csbMhtBV4bKx9opL+Y0tnd6vGBa8IP0T2SAaH4DQricQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMKR76mfLzjhD for ; Thu, 26 Feb 2026 18:16:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 430e8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 18:16: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: ca76ec7c4e56 - releng/14.4 - libfetch: Fail hard if interrupted while connecting List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: ca76ec7c4e563292a0c75781683b0421a4439a02 Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 18:16:35 +0000 Message-Id: <69a08e03.430e8.389b45c0@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=ca76ec7c4e563292a0c75781683b0421a4439a02 commit ca76ec7c4e563292a0c75781683b0421a4439a02 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-21 01:18:15 +0000 Commit: Colin Percival CommitDate: 2026-02-26 18:00:38 +0000 libfetch: Fail hard if interrupted while connecting This fixes an issue where the first address that DNS returns is blocked by a packet filter, so we hang for a while, then the user hits Ctrl-C, interrupting connect(2), whereupon we move on to the next address, get a connection, request the file, and return to fetch(1), which sees that SIGINT was caught and bails. Note that we make no attempt to enforce fetchTimeout in the connection phase, and never have. It's feasible, but non-trivial, so we'll leave it as an exercise for future us. PR: 293312 MFC after: 1 week Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55406 (cherry picked from commit afbdcd402bb439bd3d487baaad63b68e95929265) (cherry picked from commit cca6f5eadb796b03379eb21f38c74ca46a64e45b) --- lib/libfetch/common.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index bdc72f67c9a0..949addd8e6e2 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -658,7 +658,13 @@ fetch_connect(const char *host, int port, int af, int verbose) goto syserr; } /* attempt to connect to server address */ - if ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) == 0) + while ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + break; + } + /* success? */ + if (err == 0) break; /* clean up before next attempt */ close(sd); From nobody Thu Feb 26 18:16: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 4fMKRD4vV2z6T3PF for ; Thu, 26 Feb 2026 18:16: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMKRD1vGdz3hDS for ; Thu, 26 Feb 2026 18:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129800; 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=qYXnwbz5Pv485kcbL4nEMSRL6nMOMthFDh2FukSzhy8=; b=tt6foxJnp8o1UNu+sfakMQxrX29kJuONV2xyezJsvpSs9fAcCIdXd2Mb4Wsik1U3NxeVyg 9mcxha0mGKCHSb53CqDGZpGvPqOxyOQweXCab0Gh2TA773o3qsYwq5f2WhR6ZKGBNHVcL3 yQVgOb8lz2krIm9zf2Fi6FZjC82+T0fJtxQ/vw+tcaUQgB4H3T5HWtZC37vBDCrezxJPYr eTrnvwMDrL8Uqtup20i/2sb0sM/zaXUcXYtI69PusTCe6inSSxbGQ7EWZaLxNE0btw19XM OgLAVKDmQi386pI6j4h+w6xxGA9Cyab/OjaOBYz2oZok4kC5/kQ4ysX4Mdr6Jg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772129800; a=rsa-sha256; cv=none; b=o7ponKKpaiDllQZkeR19Qi5SfThlajQKwuTQOjiCoLPnea3rwHrOgxSoWzijI+PQRA1r2K CzLA8r9s5YKs380309CTLRuGvzSdKB3+8iWv/UEdOHaIEOaYL+i6LKPGzUsTDQPmgB064/ YEOvc8taLiEBzkOKX4y17Ij2S2XTF1NbqQwNKlqaCxn2t8XJ0GuuIQTHcpRJzgp61yLfxc RfLMglpqeaBGws2WQ9bkVvlA+PWhZe64ZaQrGq5sH2RB9Y2PSW76hKSxRwKobCs/hVMaNI f25iR//EMxdHiO7CJo4rg2XdpTqrfxOX5Kvha4xxCZ8ocZgBdERN/hRd1G06LQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129800; 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=qYXnwbz5Pv485kcbL4nEMSRL6nMOMthFDh2FukSzhy8=; b=Ozrk5dj1BWy08j9FKgqphm+zAYPxPuz2bDcwAF9Hy0EmI8awDtNw0TLJJws4Xiz/i53SHL Me2gyTKMLCqFlKox+oZanSzoxh5Gtd92r+nZ1yWNwb6Ta3h1AsLb1xpSuQ7G3rsFHiwPxX LonzoVrQMz3E3UCjCIQzP3OrAW7hJoIzIW+EtGq+Hu2rSm/AsR3zjr+TuvQhjMyDC7Z+Gx c/LfwqMbU7qy+hnXWSzeMXCI1DZglT1dEANsPaOiTRPOnA1mfBxeRicUGZ2wLe/6dNEPQo o76Ftg6ccMBrGRdDCxT8Rl2951cGDWWR1APNL0MXFqqqwnEnKtQUiUAFTdFClA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMKRD1JdwzjcS for ; Thu, 26 Feb 2026 18:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44e22 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 18:16:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Ahmad Khalifa From: Colin Percival Subject: git: 3cf73e195af3 - releng/14.4 - bsdinstall: fix EFI boot entry creation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 3cf73e195af3d4693d1e52de0a91b6d4b3fb8b5c Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 18:16:34 +0000 Message-Id: <69a08e02.44e22.7ecc78d6@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=3cf73e195af3d4693d1e52de0a91b6d4b3fb8b5c commit 3cf73e195af3d4693d1e52de0a91b6d4b3fb8b5c Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:32 +0000 Commit: Colin Percival CommitDate: 2026-02-26 16:50:15 +0000 bsdinstall: fix EFI boot entry creation update_uefi_bootentry assumes that the caller sets FREEBSD_BOOTNAME and mntpt, which isn't the case anymore. The result is that there is no "FreeBSD" boot entry created/updated after install. Most machines manage to boot from the removable media path (if the loader is installed there too), but some don't. Take the loader's path as an argument and rename the variable used in the ZFS mirror loop so mntpt can be reused below. Also mark nentries as a local variable so it doesn't leak out of the function. PR: 293385 Fixes: 494de51bc0074472d1b01604f085daea0844f240 MFC after: 2 days Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55469 (cherry picked from commit 0fd91c489134643ac9e38c0f55ba7464fe892c5e) (cherry picked from commit cfdd90abab51581120da75b45018a79237228b33) --- usr.sbin/bsdinstall/scripts/bootconfig | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/bootconfig b/usr.sbin/bsdinstall/scripts/bootconfig index ba9a4369429c..5bcc49084617 100755 --- a/usr.sbin/bsdinstall/scripts/bootconfig +++ b/usr.sbin/bsdinstall/scripts/bootconfig @@ -80,11 +80,13 @@ uefi_copy_loader() update_uefi_bootentry() { - nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local loader_path=$1 + # No entries so directly create one and return if [ ${nentries} -eq 0 ]; then f_dprintf "Creating UEFI boot entry" - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi @@ -94,13 +96,13 @@ update_uefi_bootentry() for entry in $(efibootmgr | awk "\$NF == \"$EFI_LABEL_NAME\" { sub(/.*Boot/,\"\", \$1); sub(/\*/,\"\", \$1); print \$1 }"); do efibootmgr -B -b ${entry} done - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi FREEBSD_BOOTLABEL=$(dialog_uefi_entryname "${EFI_LABEL_NAME}") [ $? -eq $DIALOG_CANCEL ] && exit 1 - efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${loader_path}" > /dev/null } f_dialog_title "Boot Configuration" @@ -148,21 +150,22 @@ if [ -n "$(awk '{if ($2=="/boot/efi") printf("%s\n",$1);}' $PATH_FSTAB)" ]; then # over gmirror, so we only do this for ZFS. esps=${TMPDIR:-"/tmp"}/bsdinstall-esps if [ -f "$esps" ]; then - mntpt=$(mktemp -d -t bsdinstall-esp) + tmpmnt=$(mktemp -d -t bsdinstall-esp) for dev in $(cat $esps); do f_dprintf "Installing ${file} onto redundant ESP ${dev}" - mount -t msdos "$dev" "$mntpt" + mount -t msdos "$dev" "$tmpmnt" uefi_copy_loader "$BSDINSTALL_CHROOT/boot/${file}" \ - "${mntpt}/efi/freebsd" "${mntpt}/efi/boot" \ + "${tmpmnt}/efi/freebsd" "${tmpmnt}/efi/boot" \ boot${ARCHBOOTNAME}.efi - umount "$mntpt" + umount "$tmpmnt" done - rmdir "${mntpt}" + rmdir "${tmpmnt}" fi - # Try to set the UEFI NV BootXXXX variables to record the boot location + # Try to set the UEFI NV BootXXXX variables to record the boot location. + # Note that the ESP is mounted at ${mntpt}/efi. if [ "$BSDINSTALL_CONFIGCURRENT" ] && [ "$ARCHBOOTNAME" != ia32 ]; then - update_uefi_bootentry + update_uefi_bootentry "${mntpt}/efi/freebsd/${file}" fi f_dprintf "Finished configuring ESP" From nobody Fri Feb 27 00:00: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 4fMT3S2xrNz6SnXN for ; Fri, 27 Feb 2026 00:00:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMT3S247vz3cn2 for ; Fri, 27 Feb 2026 00:00:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772150404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jBPYBWyv7OqeL/obPEvBAsuvl4vLrm8PvbviDloS+ok=; b=qGhrtx/2OTWS5lmaS6gEHbFfL1lTMfpa4KO9S95sM937LoImPTwXCKKhAF3Jjj7sutzbsD 065P3xVygA/DlrydOzFZsls+RjKFTUgokqVWcFKI97Ufb+bZkzJOQn4dhKESuBEBWouZlf AlKDF4lKJmZ5WpEfcBvrW+BVG8kBlJBskxEViLUmrOa/Sc7dy1DoAYsMnsvjfqmGddKlIp yPXu7k3XwCeV5wYer6Huxl15qxymTHcDT42Hf/xQsZbl+z6H1SegBPqFLNLo9tYvWm7ti7 fDU8d7/xI23DmN/WjBKh46vaELMY/afFzDZ4GryqilO95+ogyzP3bSW6YTi0gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772150404; a=rsa-sha256; cv=none; b=HsTkiCdDeXz8ad/F1kHxT40FL/qkKzDN7SLTj5wadtKEmYHw+Dgja0K3ccSd+09CAdy6Tg PDO2LUL1aFnjA5U5pzG5Qr37gTSOHt2SPZhI6G4zYzlIuIILoUUYbmElQY+gLFY1TmXLe2 iJ6X5R0+S+5jauQpwS2B3ZA2Jz+IMWVgW2cVGFQvIdUtM2VmrIGuKCPFxclnw1knQWb7kU ywGjOJwqeJ7sjMzz7Q6emBBCcMC10u49Qj2glUTHOK+zjimlAGXeI0eL/cFUeaTts4alib ikVdCCXiCFmtw7DdqdA0HZo3MSm6FUUg8IcSO/oUsil0Zc2z07+j2/NnO2WsBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772150404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jBPYBWyv7OqeL/obPEvBAsuvl4vLrm8PvbviDloS+ok=; b=JMf6hWjhZsu2MkT873etMLZgL548TwVnOSWBowB+nEHRftW+pWlClxVuHh45BsWYe27bTj Bk7n7fPm/WjAdXR04+EVW3+ZrtjSNtNIwshiVtReg0OqgYe/XxMCugH+0fhZD6RYY9BBxN g/oQi/aqpd81E8t00p91PsKRozp3fHrJGavt30xIw49K8fphaWGGppHBOURAK2eNJyz2mL SQGGbSqFEg0U1LWyqwinlcT7kqlauqP9Va/6GnBoKrZvqcroCL92WjW7rx9XDfLIz6dkSm KtTuA+HugJZdMoUWaVlWuPvwb4xFc7S4b/9w1o1UQ9FbVPnVdEmPB/BK6FE4Mw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMT3S1fT7ztjS for ; Fri, 27 Feb 2026 00:00:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41141 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 00:00:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 12143e3e3a5c - releng/14.4 - Switch from "quarterly" to "release" pkgs on DVD List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 12143e3e3a5c642449e05c4d048d1aa6eb3f0a80 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 00:00:04 +0000 Message-Id: <69a0de84.41141.a05d061@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=12143e3e3a5c642449e05c4d048d1aa6eb3f0a80 commit 12143e3e3a5c642449e05c4d048d1aa6eb3f0a80 Author: Colin Percival AuthorDate: 2026-02-26 22:41:52 +0000 Commit: Colin Percival CommitDate: 2026-02-26 22:41:52 +0000 Switch from "quarterly" to "release" pkgs on DVD Approved by: re (implicit) Sponsored by: OpenSats Initiative --- release/pkg_repos/release-dvd.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/pkg_repos/release-dvd.conf b/release/pkg_repos/release-dvd.conf index 600c309d5979..79f7c4c8dbca 100644 --- a/release/pkg_repos/release-dvd.conf +++ b/release/pkg_repos/release-dvd.conf @@ -1,5 +1,5 @@ release: { - url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly", + url: "pkg+http://pkg.FreeBSD.org/${ABI}/release_4", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", From nobody Fri Feb 27 00:00: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 4fMT3T3R7Vz6Sncr for ; Fri, 27 Feb 2026 00:00:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMT3T2bz8z3cvq for ; Fri, 27 Feb 2026 00:00:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772150405; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QSeSxRjMWGX3RI2v1ei0C9SsEPtYT/PvI+uXBE3tdEA=; b=RrPFrPpgAp72JAjnqm4RtNimET4Bo4QiWhBTLvuTZ/LK9rC7TJXzE4LikPxfU0qzjovW0W I8xctxdsdO6ytMETD0LUT6Za4V/mR7VYGPr3HgmgEto4niqfXlLpON5VMTXO/GEbRHZtn/ wbALQ52FyaHgcirMN70wEzk3HncA1OSclBMIxDh5uyvu/JhmNZlINLoTafUDWMmUugW9ql a2R6EgoGmAgQUx2vv1cKrvtf6tU+QbXFZgJsQXg0nhWl2R+RwWs8zRvg0rzYK2MUeKTGc4 prwTPWLItiYFvKstNxcWYk/gLb3IGtIhVK3LCwJj+jDXWB7VCXgZvtmQnPRs9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772150405; a=rsa-sha256; cv=none; b=s1YrBCc6+yuZv989WM+OFM3X9yxd74lop5OqURknEzNkwsogshaeb+mzc3FC+tqnipqoK/ vwScFRUm+rTonKf5zyuZnfNQEGtLkoc1+sE97m+XnBjDuLUQf2x+6NivUAoNQ1l5A/PdCk khUuWIndbasicfmrlY0o/dcNWlh40H9ILK8ziMnfvBlnPHpCadeOKBvX6f47NXb++ldImW enj3cH7ke2zEVWFgvRmIoDs+0rXJNmuzdRKMXLQMk6Yoc/nQh6YpUGiC64B6Q4SD90e7+l iZQ6/71QBgtkcupbfbuqlHlIczM81gBLtcO0aePTBxhk7CQ6dNaNrqjYmqDnmA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772150405; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QSeSxRjMWGX3RI2v1ei0C9SsEPtYT/PvI+uXBE3tdEA=; b=NW1ISBfBvTa994rBBp29WA4Um8ChOJyKPFxFgnlUsh3xmIONWpAAgeRFhASLwtvJcHFBmE t58BNGJ9zNuh4+NU2cedAuYbbXB4xuqxrlokk/yu06e15FJgdIzuDS19Bcn5wTGg1pRP4F coc1dclI1M979UK6sAmovrC2zpRKUwx8mzO4yrjOsq1LbsN30ZfCVH+kyaN7hIv0ADYIPk 6/DrQXsKbLSWwO4AfG+2gc4m23Bu10ihgUaryNxXRePvT8cMNXtUTZ3KEhVms/UA/Kh+76 NgaIpP3yAc3ef8Um378BLI+T0iyi2CUnRPs6nJv5qThRfyWHEl3PTiivVsgEow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMT3T1x8vzt5X for ; Fri, 27 Feb 2026 00:00:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 405e4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 00:00:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 041aa28386d3 - releng/14.4 - 14.4: Update to RC1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 041aa28386d3d78cb549c626702306bb179dc98e Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 00:00:05 +0000 Message-Id: <69a0de85.405e4.780f24de@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=041aa28386d3d78cb549c626702306bb179dc98e commit 041aa28386d3d78cb549c626702306bb179dc98e Author: Colin Percival AuthorDate: 2026-02-27 00:00:00 +0000 Commit: Colin Percival CommitDate: 2026-02-27 00:00:00 +0000 14.4: Update to RC1 Approved by: re (implicit) Sponsored by: OpenSats Initiative --- sys/conf/newvers.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 905c41c4d0d4..26f4c2a335f0 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.4" -BRANCH="BETA3" +BRANCH="RC1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Fri Feb 27 02:29: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 4fMXMX3NlFz6T7bZ for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMX2vkcz40Cy for ; Fri, 27 Feb 2026 02:29:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3LGfQLLHNbPt22mNpPK8FVFrMTU7tIprVSjvb54oqH8=; b=SeLVO83d9oAPR2piOdNnDhxTlY67X+tBqU0fXIxgBAsW/WAh7PU7lZdd1AFuK3EWhntoB/ jph5gGAFYDt2mN4AUBT0hSpeiJij6aUB/PAvawud5R4AQAIA/WMgcht1fTGB8cj8S6wX9r hnzcFph+nRLfI/9HoSw9iblT2SkkO00XQSDupScLi7+zFDJ9K0nBItfNZVaB0uhKQ+6DAv fDW9917FaTqrWxzxqjpQipbr8wozxgcs1hPxYoT/XWWfWigdN4EpUt95fqqmaP8uTKRddu y/MFIbPRc/TBVS83ll9k0MEUXUhgfnIYEsoNSA0ULGqyeYe0Pu/sQY11U2L0iQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159352; a=rsa-sha256; cv=none; b=wT2szKZ964yOwpoka7eMa3voiFcmvDZk9OSQ4PhBnGONAbNol1702x8BXaugNaPTy8sbn/ Pk/H4mt6nFLlxWOLSMyM3mkDjeUNy3wV/X0j8FugO700aqgwUK5O8mNq5EGYVXqEdjD/hs ZmQJfNWnP02OBfTVzHvWNOW6QpSofjJ32+/HU+SbjePG05Rx6Z3vNpwLbra+1TWbVNVA63 DBjb/lfNx2AXH19Uad2iVxlW+w9rTFvZqdUsPHbG7CTkHJ4qXd7Dr1YBxWANdkN200m40x 6B8dFHjm4RfRPZifvM2W6v+TQkD+kvSr3Jd0LPVUana+EEuF+yKZ0TSNOh8ecA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3LGfQLLHNbPt22mNpPK8FVFrMTU7tIprVSjvb54oqH8=; b=CTt7m33QvnF7/chdS2tGkcYU4v9sZfj+5XBop++/0VbiMeLfKrik/rGh6SfrkM5HWLkuHF XIGlZ6dKALWW1aA9HReNh9CUmwt2jzOUNBwKK9zN4gNvQwsZOV3g2EkM/iXspAJ1AF7YpA Nq8gVsguhQ+bX9brBobNrfBa4b9Sa0QdPFryAS4nnEGqiFBB10HFHcu9s8G0Q9+sPMxOGq HgEyLH08+eDA5E5JNecxyhLOPeQrQRHNq5TQbtY8kIUb7UUqRSURKMTxlcqODYtyXewMF7 WBaTVEYDV/c0cYPLHJhpe9d8Yw6EFSBKTyQWpWnyI+SvENh6hV+CyNQ/C2VyCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMX2WDszyZK for ; Fri, 27 Feb 2026 02:29:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21fab by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 07c0695d7420 - stable/15 - LinuxKPI: 802.11: factor out rate logic for mandatory channels List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 07c0695d7420fb6e6a3e394b8eaf0e5a96708a9c Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:12 +0000 Message-Id: <69a10178.21fab.1c95adc1@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=07c0695d7420fb6e6a3e394b8eaf0e5a96708a9c commit 07c0695d7420fb6e6a3e394b8eaf0e5a96708a9c Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 13:33:16 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:56:57 +0000 LinuxKPI: 802.11: factor out rate logic for mandatory channels I was looking at rate work for another problem and found more flags in ath9k (which we will likely never need). The documentation then revealed the "mandatory" flags as well and with discussions about cfg80211 going on I decided to use the momentum and split our "supp_rates" setup between lkpi_lsta_alloc() and wiphy_register(). There should be no functional change. While there also initialize max_rc_amsdu_len. Sponsored by: The FreeBSD Foundation (cherry picked from commit 768332d619484834a7866fde4bf2695d4262355a) (cherry picked from commit c592d54a24b984f2e23b337a6abeac09b9c357b5) --- .../linuxkpi/common/include/linux/ieee80211.h | 13 ++- sys/compat/linuxkpi/common/include/net/cfg80211.h | 4 +- sys/compat/linuxkpi/common/src/linux_80211.c | 112 ++++++++++++++++----- 3 files changed, 102 insertions(+), 27 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index 12160df43915..b5051a9f7d21 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -108,7 +108,18 @@ struct ieee80211_mmie_16 { #define IEEE80211_QOS_CTL_MESH_CONTROL_PRESENT 0x0100 enum ieee80211_rate_flags { - IEEE80211_RATE_SHORT_PREAMBLE = BIT(0), + IEEE80211_RATE_SHORT_PREAMBLE = BIT(0), /* 2.4Ghz, CCK */ + IEEE80211_RATE_SUPPORTS_5MHZ = BIT(1), + IEEE80211_RATE_SUPPORTS_10MHZ = BIT(2), + IEEE80211_RATE_ERP_G = BIT(3), + + /* + * According to documentation these are flags initialized internally. + * See lkpi_wiphy_band_annotate(). + */ + IEEE80211_RATE_MANDATORY_A = BIT(4), + IEEE80211_RATE_MANDATORY_G = BIT(5), + IEEE80211_RATE_MANDATORY_B = BIT(6), }; enum ieee80211_rate_control_changed_flags { diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index d7ed2bc97c98..4b21f82a0762 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1230,6 +1230,7 @@ struct cfg80211_ops { struct wiphy *linuxkpi_wiphy_new(const struct cfg80211_ops *, size_t); void linuxkpi_wiphy_free(struct wiphy *wiphy); +int linuxkpi_80211_wiphy_register(struct wiphy *); void linuxkpi_wiphy_work_queue(struct wiphy *, struct wiphy_work *); void linuxkpi_wiphy_work_cancel(struct wiphy *, struct wiphy_work *); @@ -1749,8 +1750,7 @@ wiphy_net(struct wiphy *wiphy) static __inline int wiphy_register(struct wiphy *wiphy) { - TODO(); - return (0); + return (linuxkpi_80211_wiphy_register(wiphy)); } static __inline void diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 1ac28dfef448..d25b32f1dae8 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -896,41 +896,34 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], /* Deflink information. */ for (band = 0; band < NUM_NL80211_BANDS; band++) { struct ieee80211_supported_band *supband; + uint32_t rate_mandatory;; supband = hw->wiphy->bands[band]; if (supband == NULL) continue; + switch (band) { + case NL80211_BAND_2GHZ: + /* We have to assume 11g support here. */ + rate_mandatory = IEEE80211_RATE_MANDATORY_G | + IEEE80211_RATE_MANDATORY_B; + break; + case NL80211_BAND_5GHZ: + rate_mandatory = IEEE80211_RATE_MANDATORY_A; + break; + default: + continue; + } + for (i = 0; i < supband->n_bitrates; i++) { - switch (band) { - case NL80211_BAND_2GHZ: - switch (supband->bitrates[i].bitrate) { - case 240: /* 11g only */ - case 120: /* 11g only */ - case 110: - case 60: /* 11g only */ - case 55: - case 20: - case 10: - sta->deflink.supp_rates[band] |= BIT(i); - break; - } - break; - case NL80211_BAND_5GHZ: - switch (supband->bitrates[i].bitrate) { - case 240: - case 120: - case 60: - sta->deflink.supp_rates[band] |= BIT(i); - break; - } - break; - } + if ((supband->bitrates[i].flags & rate_mandatory) != 0) + sta->deflink.supp_rates[band] |= BIT(i); } } sta->deflink.smps_mode = IEEE80211_SMPS_OFF; sta->deflink.bandwidth = IEEE80211_STA_RX_BW_20; + sta->deflink.agg.max_rc_amsdu_len = IEEE80211_MAX_MPDU_LEN_HT_BA; sta->deflink.rx_nss = 1; sta->deflink.sta = sta; @@ -8028,6 +8021,77 @@ linuxkpi_wiphy_free(struct wiphy *wiphy) kfree(lwiphy); } +static void +lkpi_wiphy_band_annotate(struct wiphy *wiphy) +{ + int band; + + for (band = 0; band < NUM_NL80211_BANDS; band++) { + struct ieee80211_supported_band *supband; + int i; + + supband = wiphy->bands[band]; + if (supband == NULL) + continue; + + switch (band) { + case NL80211_BAND_2GHZ: + case NL80211_BAND_5GHZ: + break; + default: +#ifdef LINUXKPI_DEBUG_80211 + IMPROVE("band %d(%s) not yet supported", + band, lkpi_nl80211_band_name(band)); + /* For bands added here, also check lkpi_lsta_alloc(). */ +#endif + continue; + } + + for (i = 0; i < supband->n_bitrates; i++) { + switch (band) { + case NL80211_BAND_2GHZ: + switch (supband->bitrates[i].bitrate) { + case 110: + case 55: + case 20: + case 10: + supband->bitrates[i].flags |= + IEEE80211_RATE_MANDATORY_B; + /* FALLTHROUGH */ + /* 11g only */ + case 240: + case 120: + case 60: + supband->bitrates[i].flags |= + IEEE80211_RATE_MANDATORY_G; + break; + } + break; + case NL80211_BAND_5GHZ: + switch (supband->bitrates[i].bitrate) { + case 240: + case 120: + case 60: + supband->bitrates[i].flags |= + IEEE80211_RATE_MANDATORY_A; + break; + } + break; + } + } + } +} + +int +linuxkpi_80211_wiphy_register(struct wiphy *wiphy) +{ + TODO("Lots of checks and initialization"); + + lkpi_wiphy_band_annotate(wiphy); + + return (0); +} + static uint32_t lkpi_cfg80211_calculate_bitrate_ht(struct rate_info *rate) { From nobody Fri Feb 27 02:29: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 4fMXMY4lssz6T7T2 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMY43m1z40Sd for ; Fri, 27 Feb 2026 02:29:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rcs+Ddw4NLf9e1P9zfFSpg/If6e/dzANY2+kvFKdQa8=; b=WHNoBHaJQn5qlM6f4faFiE9ZZc1oXhZYYD/iJyHmd2qYQ8KnrL7+Kl/bGc/SttBxc08SpZ h7/o9lPSqXKwYUli8qlqVNZVoHAVv46kLb3mwML2p+auMPbdXay53NkrMebdzMBZoswYL0 BYYgUwcBuggVV/Pxv6N3mP5jFPm/RnCs/xxoVPEFw0owaY+Kdxk9wRCxjmbQTh0yffj2+Y HLse1vNz47Wq0PADJWzn8969vhH/EbRtPZz8E0AycXsEGHn62PgZ8QWuRq1T3onutoQQ7g nlxpZ+eMMVibxipyozFFijdOuZ5bPpkQp9q0Hov3Q342Oujj2HQsW5qiK3UPyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159353; a=rsa-sha256; cv=none; b=NbrhLIRVWlb/jdguZsN85hA5VaSvTrfi9yHcUltAl+pbEZvqR5Q2s7jk9jd723XqGPBC9A x+zzopHTQj8lIGI2P8Gd09MqyBeQbIO6bcILQO6U53m3lDMhPpBKBjg/sRSHdatNELK4U0 hiAAqcCeIlP2QgDJkr/zSpy9PKMRtTXf2uDYgkHbNHVhP8WgATK+YdjL90GSjasFIOpupE Yjddd/O6HR6SxaHqoh9ohr06VYTjK3JMVrNmKy37Ds9tcZzGvFe32iWzVv+oea13IV4U4G kk9tuGLE8qBihqHjqOkGGP02ADfv/ZE3tBnok2T6uium7ZztQPPve4/mKPFxJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rcs+Ddw4NLf9e1P9zfFSpg/If6e/dzANY2+kvFKdQa8=; b=Yw2p0gb/eXwv732pEH+eZ7I5trArRUkher5pDuTuTGgF8evtV28Rr3pjRcnXdrgR69I3iT +B3AwoGfiu/3U/QCQCHy5pFFMF9f21f5s4prf41ppc4GWoEMmS9dFislPjZeuv26NTQUw/ nWdwrpWtH18aiGC3f4b166SCMvYPl72v4XeCuRVpSrpSp7uM8YfDzdmvMdHC6r7tsoz7+A xmZR5xlaS3v+jj1j52iRiWtqnLS91L+CbXIJ5t8VkXIIAGbHHwXigLtft2yp7OR+Iczzw1 GuYkfSQ2ZkmuDzgHGzcpFx05mLez0rCk3M6RflQp1h0i/uK/G1/3qiTilfIW0Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMY3FFjzyZL for ; Fri, 27 Feb 2026 02:29:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21fac by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: b24e74670c84 - stable/15 - net80211: correct return code for ieee80211_ampdu_request() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b24e74670c84da9c00a999a8ceb1c5906262dec0 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:13 +0000 Message-Id: <69a10179.21fac.eb1b5ae@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b24e74670c84da9c00a999a8ceb1c5906262dec0 commit b24e74670c84da9c00a999a8ceb1c5906262dec0 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 13:48:11 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:57:10 +0000 net80211: correct return code for ieee80211_ampdu_request() We used to return the result of (*ic_send_action) directly but ieee80211_ampdu_request() returns 1 on success and 0 on error, which is contrary to the result of (*ic_send_action). Deal with that accordingly and update the documentation of the function. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D54794 (cherry picked from commit c670af3725d0bb5494caf0846994ae6997175cb6) --- sys/net80211/ieee80211_ht.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c index b22e0cf52a6c..b3c9532764d9 100644 --- a/sys/net80211/ieee80211_ht.c +++ b/sys/net80211/ieee80211_ht.c @@ -2766,10 +2766,15 @@ ieee80211_ampdu_enable(struct ieee80211_node *ni, return 1; } -/* - * Request A-MPDU tx aggregation. Setup local state and - * issue an ADDBA request. BA use will only happen after +/** + * @brief Request A-MPDU tx aggregation. + * + * Setup local state and issue an ADDBA request. BA use will only happen after * the other end replies with ADDBA response. + * + * @param ni ieee80211_node update + * @param tap tx_ampdu state + * @returns 1 on success and 0 on error */ int ieee80211_ampdu_request(struct ieee80211_node *ni, @@ -2777,7 +2782,7 @@ ieee80211_ampdu_request(struct ieee80211_node *ni, { struct ieee80211com *ic = ni->ni_ic; uint16_t args[5]; - int tid, dialogtoken; + int tid, dialogtoken, error; static int tokens = 0; /* XXX */ /* XXX locking */ @@ -2828,8 +2833,11 @@ ieee80211_ampdu_request(struct ieee80211_node *ni, args[4] = _IEEE80211_SHIFTMASK(tap->txa_start, IEEE80211_BASEQ_START) | _IEEE80211_SHIFTMASK(0, IEEE80211_BASEQ_FRAG) ; - return ic->ic_send_action(ni, IEEE80211_ACTION_CAT_BA, + + error = ic->ic_send_action(ni, IEEE80211_ACTION_CAT_BA, IEEE80211_ACTION_BA_ADDBA_REQUEST, args); + /* Silly return of 1 for success here. */ + return (error == 0); } /* From nobody Fri Feb 27 02:29: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 4fMXMb1Rjxz6T7Qm for ; Fri, 27 Feb 2026 02:29:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMZ6Hwlz40KS for ; Fri, 27 Feb 2026 02:29:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iGP4Dw83AYYDHVsmrNI9lZ4Y0T2Eg4pT5YZKawJXzto=; b=NENnx3JMZeGGVPlpoN8th2VKmWbSresLVYk0GmYBrax6jNZBek6wsCCy7xAif9/I5MxAGL 2cGoOTRVfcP+obgJv7qA7/de0o+g5m52+J2xF4igPZH3M7+yNEpYacfG5mfya/ZMO0LGNa yXOf9McmC1JpeWUFZYf3WO3ka7FbGJvTRCDhypY7mARUBhMzG9KEgWemNF7txZCbKpFl6I px8HnfgK7lC6wMVSUPa2P19GzQOD1Ntt+Zvvfsx/PMuHfzn6kU2GIxjPHYf+V/daSUKrBE BWEOGjKqxWBUUyFAFbSMW3jL9FbHR+xVhBZ8/NrKJT6XWDKLxdhb72y8c0YRzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159354; a=rsa-sha256; cv=none; b=EbpP1aOJcORs/fW/NAqJir7U+FF25Q99G7vQS6ukA8aLf+MAa6p8EsbZfYE0opxjg8lemT xM/skobwvlRYVg2ei+5cmVZBKEP8MD3iWkM9SpRg9tePMq/e78XAFBLc7Bg6hSuVdx4sQ3 UgmYpaggV7vh9qiSpjpDGbv6U/h/roTkESKcD7fWio3RofhXZwkXw1CGVWtyAHhWBQ13lP XnDt1oOAYuDB7xK3rXjbxTsuIkjp0WDsbi7C2/3WD3pqbfH8R+qmUkep1pdPOsUFffCgbL 2G8DbCa9QLRo9U7R1VdXi3rReg8pVvvMviZ5/Nqu1KccSxhR6xolRx8Bh3c/eg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iGP4Dw83AYYDHVsmrNI9lZ4Y0T2Eg4pT5YZKawJXzto=; b=EK+ncXnZjv7kuv0zfo6P/ngnoW9Ki89lYD7BtkLXM02KMnhT9fy4CdJu92/nk6Xj05rAyt McteVw8Pr1hSOnl9a/wxJnEcK8m8C+x1N9Sew6hNOOBeKUG/QdN7ZfrxJPS3uJmwOMYmxK 5V9IhqA3Ur/BfJ7SaLT67GiyeFwWV+sy7k/ZxNT/3VxYEe5M+m0O8Bg19uP24duwml2PCf 8wD0HSCUgbKLwOfwlhpWVyz7KM2WG4Kcd1qd3X5YCMhB/fjTBS5DUnfMsqRLxyC+IM3tGY qbhE6uxLNdLL+/paCAvWNHRsEhJxgZg5nk1BQ7gIsDvpk1xVMMRICFJw+BTcjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMZ45P6zyZN for ; Fri, 27 Feb 2026 02:29:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21fb0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 6aae48bed4cb - stable/15 - LinuxKPI: 802.11: Management MIC element can have 8 or 16 octets MIC List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6aae48bed4cbb6267a8d456140504a78d0a90903 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:14 +0000 Message-Id: <69a1017a.21fb0.69839b97@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6aae48bed4cbb6267a8d456140504a78d0a90903 commit 6aae48bed4cbb6267a8d456140504a78d0a90903 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 18:55:00 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:57:14 +0000 LinuxKPI: 802.11: Management MIC element can have 8 or 16 octets MIC Management MIC element (MME) can have 8 or 16 octets MIC. Add a second structure used by at least iwlwifi and update reference to latest standard version. Sponsored by: The FreeBSD Foundation (cherry picked from commit e4a4841d7acbded7862175d46dfe325b44016495) --- sys/compat/linuxkpi/common/include/linux/ieee80211.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index b5051a9f7d21..c81ddf7d24b2 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2025 The FreeBSD Foundation + * Copyright (c) 2020-2026 The FreeBSD Foundation * * This software was developed by Björn Zeeb under sponsorship from * the FreeBSD Foundation. @@ -51,8 +51,16 @@ extern int linuxkpi_debug_80211; #define IMPROVE(fmt, ...) if (linuxkpi_debug_80211 & D80211_IMPROVE) \ printf("%s:%d: XXX LKPI80211 IMPROVE " fmt "\n", __func__, __LINE__, ##__VA_ARGS__) - -/* 9.4.2.55 Management MIC element (CMAC-256, GMAC-128, and GMAC-256). */ +/* 802.11-2024, 9.4.2.53 MME. */ +/* BIP-CMAC-128 */ +struct ieee80211_mmie { + uint8_t element_id; + uint8_t length; + uint16_t key_id; + uint8_t ipn[6]; + uint8_t mic[8]; +}; +/* BIP-CMAC-256, BIP-GMAC-128, BIP-GMAC-256 */ struct ieee80211_mmie_16 { uint8_t element_id; uint8_t length; From nobody Fri Feb 27 02:29: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 4fMXMc0SThz6T7T7 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMb5D8Tz40QJ for ; Fri, 27 Feb 2026 02:29:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hb8Dm+xQ/ejzhtC+LWWTxtNjVzMuW9qb9d5ULtsaKfs=; b=cYyPHNMA+Pf+rXlh+Ckb4fnT6BJzbNzFNRlB1AGpQ4dgG/GtHX/s3IwYXGqJF797/HB3tR zW4C08ZcK0PJI1uobrZvls1VNbU81Au3PMjDrCsG2KIW2AoTD6eND8YnraF0QxDh6I8fik /ZlJVig0ozwDHhwUpHo8z4IRHhgYLFBglyR90Y74JAeFB+raODngjc32+irwL5nqqZNv+V AGhVg4xx2ZX7Go/apylbVCZ83an+yPlGKp+Jm3UDfjgWvYB+wRiZjle04MeIUoflnaWyGn EM5si4P07W3DcxsuUz2RR/mU9Qqr1ap1LNPYgqyAOkCStBdzidG9NqfUpIpbjg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159355; a=rsa-sha256; cv=none; b=Zh5v6Acwh3PyaZnG5UL90kCgwjTcu27y/GgUz7EgRcCQa6PklxAQE0mXKSXnZiM9ry99dY ev5Wlu4tAMWJhdAcmMDsptg3JM2XAotz/hnWx/HyjqbIQi4+coRxklTpITOmFU31VyZshm Pt6jSq2VRrrwVWErLB7HUKkREx9eZge3w727BrTUgG4KIxIiEbqIauAl00Xzyly67olmKp z4aoxxdfFB/gS+iGbgqOysoEHWcqZnw627hMK9650KMYF9LAs1tARGCAYAY7BlCeI/+yVl S9j6R1xKPjiqoFut67tdh+Kro/Gr8nGNFvZSnOOjvLWREsHSVVF+JM1gwypDLw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hb8Dm+xQ/ejzhtC+LWWTxtNjVzMuW9qb9d5ULtsaKfs=; b=f/tRZ667QN2/64EVMLczxaGDEC1vISAsHq47L/4tRE6q8umtqggVQXazJXix+V4/WdYbc8 wJrnI4UjGjkEO6Dv50zTqjC0TflxOTw7iZ7vfKD0iqCvvRTiyCYKiquaArrg6h/HEbVUkj /bIFxP6viDqjChp/4J3LKCpZByiDRCTKPd9CzusJXYzs775kdzxhAA/Ug8tsg4sj7kQVcP hqk01h1t1WFrORqXKmlhHUK0gLHVEBEfjDkKmADYKW/YoRn4wpDgBYaAKSiPnEow53vy+U UzOOoMAThiqlnLU31ZPDymLAXdBDUj9kDT+juMqxW2wLVYyJEi+Qc4ZYwtfsUQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMb4qtMzyZP for ; Fri, 27 Feb 2026 02:29:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2118f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 4ffe72c6a398 - stable/15 - radiotap: add more EHT 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4ffe72c6a398e1ffc3d6091d80b1ec8d7e03ba3b Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:15 +0000 Message-Id: <69a1017b.2118f.1277fb54@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4ffe72c6a398e1ffc3d6091d80b1ec8d7e03ba3b commit 4ffe72c6a398e1ffc3d6091d80b1ec8d7e03ba3b Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 18:57:19 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:57:37 +0000 radiotap: add more EHT definitions Add more EHT definitions used by at least iwlwifi. Sponsored by: The FreeBSD Foundation (cherry picked from commit 5f7b5dde10518d4436e1ec07a76873bf31d28425) --- sys/net80211/ieee80211_radiotap.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/sys/net80211/ieee80211_radiotap.h b/sys/net80211/ieee80211_radiotap.h index d44f81b68b8c..d729323fce3a 100644 --- a/sys/net80211/ieee80211_radiotap.h +++ b/sys/net80211/ieee80211_radiotap.h @@ -512,8 +512,11 @@ struct ieee80211_radiotap_lsig { uint16_t data1; uint16_t data2; } __packed; + +#define IEEE80211_RADIOTAP_LSIG_DATA1_RATE_KNOWN 0x0001 #define IEEE80211_RADIOTAP_LSIG_DATA1_LENGTH_KNOWN 0x0002 +#define IEEE80211_RADIOTAP_LSIG_DATA2_RATE 0x000F #define IEEE80211_RADIOTAP_LSIG_DATA2_LENGTH 0xFFF0 /* https://www.radiotap.org/fields/MCS.html */ @@ -615,6 +618,24 @@ struct ieee80211_radiotap_eht { #define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2 0x000001ff #define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_2_KNOWN 0x00000200 +#define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3 0x0007fc00 +#define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_1_2_3_KNOWN 0x00080000 +#define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3 0x1ff00000 +#define IEEE80211_RADIOTAP_EHT_DATA4_RU_ALLOC_CC_2_2_3_KNOWN 0x20000000 + +#define IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4 0x000001ff +#define IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_4_KNOWN 0x00000200 +#define IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4 0x0007fc00 +#define IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_2_2_4_KNOWN 0x00080000 +#define IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5 0x1ff00000 +#define IEEE80211_RADIOTAP_EHT_DATA5_RU_ALLOC_CC_1_2_5_KNOWN 0x20000000 + +#define IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5 0x000001ff +#define IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_5_KNOWN 0x00000200 +#define IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6 0x0007fc00 +#define IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_1_2_6_KNOWN 0x00080000 +#define IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6 0x1ff00000 +#define IEEE80211_RADIOTAP_EHT_DATA6_RU_ALLOC_CC_2_2_6_KNOWN 0x20000000 #define IEEE80211_RADIOTAP_EHT_DATA7_NSS_S 0x0000f000 #define IEEE80211_RADIOTAP_EHT_DATA7_BEAMFORMED_S 0x00010000 From nobody Fri Feb 27 02:29: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 4fMXMd2Yjcz6T7bg for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMc65Twz40T8 for ; Fri, 27 Feb 2026 02:29:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I9tO7X7xAix4/P0Ty7Y78AZMBEiZohUIzWtCIqNVUUk=; b=HzPjRjuznLUFtQHjDvDPjQp/DKyCLuDMbkFVwUy7k0j89ZfM81kBDAHHsVvrbueMyIkLvi zAtEdJi62TW96FVBdB7JA34ulTP4d+ge1K9WBHRvGxp5YXbDExCDYLU2tRK39U4QPkyiZv NWIfmMBfO1zRlskFaMbvY23thQxgbAT3IHjiZg4WhuZ1BdLcs/38MPY8LDw/VsVqeC4oqe /A+UecIFYGdkM852unSF4PmstPIlQdZKT0ueH0hFGPWP7Tzj7iKptPsbmxnS53CeFknwNe sln9pjPtNUWTn5Cp1W6T9NYz80XUmqQPPA3qonTrN9HHRrrnM35ERdiqDyBMNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159356; a=rsa-sha256; cv=none; b=xOYy91wTqPOJgIHCj+zvlanosL9owm2aGffIdx4yyvWPtvSCGOn/LE/yaEajCMr1O3TqOh qPI2Hrz5HWDSWvHu/PT2Rz8rJupLvzxTIrrZg67eESrhYEdSjdX1ThoAHnDCKxg2aK3stE SFJEQky+yZJ8WV0CAHY5alMIYOXb/iJUv2fTi8tcB4VXnj1TLXHg9iXpxfbDGZbxYlUTOB 0flNZpHPgea7uvN/aa4UW+4EMrckYddRs7uhvtgVj1iuuDeEPQ/Fa+gJlqwyQdgVmemlw/ VszELTSaWl/Rmb1QVHRGI+O0i7vz8K6RTJHqDWNr0+4KMLVE2t7Qps8pj28DDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I9tO7X7xAix4/P0Ty7Y78AZMBEiZohUIzWtCIqNVUUk=; b=OE0LR2LEk8xCZOdGkVzxmvlH8xz/Nm4TwePCRQqDeRe1AUsIz0ftHLSAdIan2MMZlU0M6h hlz/UaraYxRHlg3hgtypnPGW4Y5hmA5owt6Sn3oOAoLJqNkX5KFCnaBm5n3JH4OPIw9c64 0RcL+mPbq3ck+lILfbFiWtGRhRyiAdCTCc+qWfRjIhWTNWCWDWxWeh8BOpYejInjabdpC3 Lvcz4YQ1OTnoSEFH+N9eB3NylHrsJ0OR/YTX7xwnhHulQCE0kGSKdZlnWNagD0oSVWCeAr TJH31irnbGmcg8koajUUrvQHO/jHTi1TygpzjHBK17FaQU3aF1o/YJ8kXiSviA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMc5ZQszy6p for ; Fri, 27 Feb 2026 02:29:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ecdc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 6ac1856bc9f0 - stable/15 - LinuxKPI: 802.11: add new field to struct cfg80211_bitrate_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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6ac1856bc9f0e0b55e74acf9613db3d0234f41fb Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:16 +0000 Message-Id: <69a1017c.1ecdc.7aadaca2@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6ac1856bc9f0e0b55e74acf9613db3d0234f41fb commit 6ac1856bc9f0e0b55e74acf9613db3d0234f41fb Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:44:43 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:57:45 +0000 LinuxKPI: 802.11: add new field to struct cfg80211_bitrate_mask rtw89(4) accesses eht_mcs[]. Add the field to struct cfg80211_bitrate_mask. Sponsored by: The FreeBSD Foundation (cherry picked from commit 18de28308c2916d18fca4e9d8988910176b14951) --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index 4b21f82a0762..a8ca560a1ec1 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -152,6 +152,8 @@ struct linuxkpi_ieee80211_channel { int orig_mpwr; }; +#define NL80211_EHT_NSS_MAX 16 + struct cfg80211_bitrate_mask { /* TODO FIXME */ struct { @@ -159,6 +161,7 @@ struct cfg80211_bitrate_mask { uint8_t ht_mcs[IEEE80211_HT_MCS_MASK_LEN]; uint16_t vht_mcs[8]; uint16_t he_mcs[8]; + uint16_t eht_mcs[NL80211_EHT_NSS_MAX]; enum nl80211_txrate_gi gi; enum nl80211_he_gi he_gi; uint8_t he_ltf; /* XXX enum? */ From nobody Fri Feb 27 02:29: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 4fMXMg33c1z6T7WW for ; Fri, 27 Feb 2026 02:29:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMg08cxz40TK for ; Fri, 27 Feb 2026 02:29:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Blhqr+UfIR+n7BaHxwnxIh5fL/4xGuQoKbtFhTmUKc8=; b=evXDtVRVL0pmSB5n5xfyDl16RwVIYUdpGdKbsKWkaLZp1hYwifxGFPMgbsVGOzrsHxeJRf W5kKRDOHQWAe5lvfBBBVNy9W1YK3HHf6podufjZ9OXaJ02WGqomyVmlZIx0xD6RMDtxVFK Ieh19EPtqJ2mcsH0cXIRf2pEp6TtgPETU5OYtr0CZoFFUChqv1OUHMgMbrbbeBMnYpjSxc lWsl+keZCckdFCWYetqQQLtD2V2O43ffmMCMd7qFZcoI0BB0kcvAtU+ZZY+MUYcrqGbVFE FCYFMyoobQGzddN2crIiffTznpZ95+XYGxrPrS8bLLJ0quIqKNsnn+BG7pMB3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159359; a=rsa-sha256; cv=none; b=XsIBDziZM4kgFoRg2Omx6i91KCvghP8eHgPDhqJDQT8lC8NAoSubUcsqgERRGDzB09asoi boenIpyV2OG21LZOEnYa9EFRrn02rjIvrhAH2pWzy6JpD2asJ5W2LxsoNmFrWBjok+jROc LZ0gnEnv+AFMj2GVsO/jYjH2gJXDfQLu3i9QHaEazJQtqz6baOTTBDvBftkBYC6MspwJ54 rMLTYr4iKkLUx7Tw7nFVZKTh9k7UhsfThU09//33Sr90NMgGQRTqeXDdcdM+prDG+hF/eW cDB1QyM18QrVAfbkT0Dg0zL6CR3W7aklACnWYnn2lveCIU12ls050rtqKnp/kA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Blhqr+UfIR+n7BaHxwnxIh5fL/4xGuQoKbtFhTmUKc8=; b=IeUAo9mMognTzvfn0hqIYjVz0T8TH8+puhHR71mbsCgNeTBsiURH0z7XWSehdL1X4oLAuq tZJPLPlBxhfWuz4aQesg3KXBXDI8bwl9yIv3OmgyLmiH6tdWCyJnXnTOtZ7ttcTdZ7FuxE hZN74H17fAwSFwcBS5iNYBwxBhGfK4TIfOzYWySvwEy4ZjjvaZIOXzOpFhy3uJd5MmNN7S 1DMQ7lt70YsmVPtxKcbypGqLw3O4Qvc6NogC0cBEeZRyEOPObbyMDD7LiUk5kGU57deg2S XiiQfb2lbDw1hvgtba8LpLilZbEYlVPklTNTP82go9PBN4TU4ApCnnjng913aQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMf6rzmzxw7 for ; Fri, 27 Feb 2026 02:29:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 219b5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 8689e14c2fbc - stable/15 - LinuxKPI: skbuff: implement skb_queue_splice() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8689e14c2fbc2708200ba317368a536984264fc0 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:18 +0000 Message-Id: <69a1017e.219b5.3e5b07a5@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=8689e14c2fbc2708200ba317368a536984264fc0 commit 8689e14c2fbc2708200ba317368a536984264fc0 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:49:05 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:58:14 +0000 LinuxKPI: skbuff: implement skb_queue_splice() Add skb_queue_splice() and use it in skb_queue_splice_init() which already had that functionality (plus the init bit). The new function is used by rtw89(4). Sponsored by: The FreeBSD Foundation (cherry picked from commit f1d7eea9dc1e78ecd247e060f4e8395ba4e77346) --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index 2e560a120e41..c43d6daff5ee 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -770,7 +770,7 @@ ___skb_queue_splice(const struct sk_buff_head *from, } static inline void -skb_queue_splice_init(struct sk_buff_head *from, struct sk_buff_head *to) +skb_queue_splice(const struct sk_buff_head *from, struct sk_buff_head *to) { SKB_TRACE2(from, to); @@ -780,6 +780,13 @@ skb_queue_splice_init(struct sk_buff_head *from, struct sk_buff_head *to) ___skb_queue_splice(from, (struct sk_buff *)to, to->next); to->qlen += from->qlen; +} + +static inline void +skb_queue_splice_init(struct sk_buff_head *from, struct sk_buff_head *to) +{ + + skb_queue_splice(from, to); __skb_queue_head_init(from); } From nobody Fri Feb 27 02:29: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 4fMXMf2xrLz6T7R9 for ; Fri, 27 Feb 2026 02:29:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMd6Xd4z40HB for ; Fri, 27 Feb 2026 02:29:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H3O2+1Wnahl8M8Gk3S80g3fqIohq5J4C+wxGQamm760=; b=Hioqxl7d7FkcJWqknInKOt7EY5frOlFkBp8UbRFLCcLE/FprQe2elynpzwSAhcBWdNG4nb 3aWFj2GMEtwVQvrjeptk6Wo2fmoIFp6zliSSkNn/WT22J2jxiBK68KMTkGlWV9KHzrcOA+ I4pQT487VC86jumaMC0Pe0ut6T44WLEBUZIcadsMxZahs5W/IHBRUaoaCyqzESs3+9sPYx mxkjeV+MTOVuhY8XSEZaApVqUX9zASKv4Bmu4ZU2TOOvqArFv8bBZKlgs/2BgEdv9C6Qff 36jC/dq183tRll0dsIN258smCJFdeeJnAL1TDoDLH3Oy0ejJGAhWDaSwSGti0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159357; a=rsa-sha256; cv=none; b=sMB8udmjkftJGxgpBlw6xzdRDwWky+2aKy3+ssVLqr4CwxwPG+jDz6wsGvbUaOOZl6Ksht sP6MeBvkC1/0q2U+P/THvHaJl/dw8fd/kdIif/8vHG/QmfT+HxxJDmKfJ0ZEfnB5jO3Vwb rzTOkN/ZtLp8boia0NBZKZPoDC9cZb35Y0C6iYIih6MVT+c5znY7EfYlT2FH2G48pgEZ0t Buhhqo5jV5xIBSgr5akP8Ta/XReZYLTAvIUJvizLBlajO6jSszV+V88lKaEdrxiE008/dH F5sH4fmSL7/cpR4lCkKQzoQT8yWTJqxMNuBPptqYfc7eZVoiiIuvWejr93rIbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H3O2+1Wnahl8M8Gk3S80g3fqIohq5J4C+wxGQamm760=; b=aLMxUmvR6XTcgM4VmUogoV4TL5kqgU3A/W/cq/CLyhHZVhGliQKZpWUm+qkOMROH0P25n3 kZYZCI1bjIT5WkNKUksav47CKkUd7AHX2otQeyT70bHXGcI6E1CIZ1r6+qmm8Jm7CNspg8 ZJ8i5iT5bDmaxgKbdJbSO6t6CG8feQ/YohDptR2JuGQ7KmvMQcegWvB4VRkegsO5i9LyNl Z/b3hb1i4ToobrwndMV6vs4nweKpzM0Da4E2ECQIVFEvkGDOXVr9k4qOGd9LUgkSLCLYdj SC9Eb+Fcqkxd6ifNEN7hLGJyYwEE+AGPuW7ukbUH6Cc915x2RS/RBIww7NOavw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMd65L9zy6r for ; Fri, 27 Feb 2026 02:29:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fd72 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 23241046e071 - stable/15 - LinuxKPI: 802.11: rename enum ieee80211_tx_rate_flags and move file List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 23241046e0715a324f06917078322900688f2e32 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:17 +0000 Message-Id: <69a1017d.1fd72.9f59f60@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=23241046e0715a324f06917078322900688f2e32 commit 23241046e0715a324f06917078322900688f2e32 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:47:13 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:57:55 +0000 LinuxKPI: 802.11: rename enum ieee80211_tx_rate_flags and move file What we used to call enum ieee80211_tx_rate_flags is now used as enum mac80211_rate_control_flags for the ieee80211_tx_rate.flags in rtw89(4). Rename the enum and move it to mac80211 as it seems to belong there. Sponsonred by: The FreeBSD Foundation (cherry picked from commit b2c90d106c66daf6dc7fb300c250b4ad0aa274f5) --- sys/compat/linuxkpi/common/include/linux/ieee80211.h | 12 ------------ sys/compat/linuxkpi/common/include/net/mac80211.h | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index c81ddf7d24b2..a9033581a315 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -480,18 +480,6 @@ enum ieee80211_tx_control_flags { IEEE80211_TX_CTRL_MLO_LINK = 0xF0000000, /* This is IEEE80211_LINK_UNSPECIFIED on the high bits. */ }; -enum ieee80211_tx_rate_flags { - /* XXX TODO .. right shift numbers */ - IEEE80211_TX_RC_40_MHZ_WIDTH = BIT(0), - IEEE80211_TX_RC_80_MHZ_WIDTH = BIT(1), - IEEE80211_TX_RC_160_MHZ_WIDTH = BIT(2), - IEEE80211_TX_RC_GREEN_FIELD = BIT(3), - IEEE80211_TX_RC_MCS = BIT(4), - IEEE80211_TX_RC_SHORT_GI = BIT(5), - IEEE80211_TX_RC_VHT_MCS = BIT(6), - IEEE80211_TX_RC_USE_SHORT_PREAMBLE = BIT(7), -}; - #define IEEE80211_RNR_TBTT_PARAMS_PSD_RESERVED -128 #define IEEE80211_HT_CTL_LEN 4 diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 6e2f3f2d8781..8d3d04c9afe5 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2025 The FreeBSD Foundation + * Copyright (c) 2020-2026 The FreeBSD Foundation * Copyright (c) 2020-2025 Bjoern A. Zeeb * * This software was developed by Björn Zeeb under sponsorship from @@ -789,10 +789,21 @@ struct ieee80211_tx_queue_params { struct ieee80211_he_mu_edca_param_ac_rec mu_edca_param_rec; }; +enum mac80211_rate_control_flags { + IEEE80211_TX_RC_40_MHZ_WIDTH = BIT(0), + IEEE80211_TX_RC_80_MHZ_WIDTH = BIT(1), + IEEE80211_TX_RC_160_MHZ_WIDTH = BIT(2), + IEEE80211_TX_RC_GREEN_FIELD = BIT(3), + IEEE80211_TX_RC_MCS = BIT(4), + IEEE80211_TX_RC_SHORT_GI = BIT(5), + IEEE80211_TX_RC_VHT_MCS = BIT(6), + IEEE80211_TX_RC_USE_SHORT_PREAMBLE = BIT(7), +}; + struct ieee80211_tx_rate { uint8_t idx; uint16_t count:5, - flags:11; + flags:11; /* enum mac80211_rate_control_flags */ }; enum ieee80211_vif_driver_flags { From nobody Fri Feb 27 02:29: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 4fMXMh4LQ2z6T7RG for ; Fri, 27 Feb 2026 02:29:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMh1DpSz40R8 for ; Fri, 27 Feb 2026 02:29:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wVqUOD7l6qFXhQrbLSXY/gs0oFFYSXZWc+6l3O9fitA=; b=i7t3VEitV6gZgOleANasHMKVZkj3y+bTIueulTPZ7jcdCtox8yzOTOZg8zzvibbX1Fu2wp U4zDXV1R0UGhU9+fKvFuLXZb68JzzNi9b2IVhtPtrhfFBBy9meIapz+mQnKVvSGoaBc9/w HqBGzGF0489AdDAIlKq9nYIVs3XOvd33ZjZUoeoWpUn5n9gcZCKRPBoz6Fmhy2gdAGCZHV uqxqIGcHeaI7S0qSWsUfSjO4CkkGGsp7IhtvoChawpfQXo3e8RXUqdcoGHxDsCRQJr0y4h X5z2yYiMLpHMRI6d5gifnuLvaGP5+baQemFxnTGA0kJOFcipaBXdPBLDKyOxvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159360; a=rsa-sha256; cv=none; b=hE/UFiJT41UiZxvFp5pge9RpzUqw1yA60zfVKHk5+sXViqOqnpuFIwXQXGDaeFYSmX1rrU ZpEhBFVYHptT9kqXL3bJCGJSj2UZincxzwRZJkRY0DCdO4xErbEWB0Hfhp1yGpBPrcsJEh GZVKdG8bN8fe3uUtA4hjq4oFqmF22Ao1+isIoh2KHoSLI5v1/XPfGRjFLgY0Gx+QSVzXHH rqZLVL3o4CwZcKE1rS3Kh/503RUzpWXeT/iM65Fj0HFAFw8hriYfh0e8ySY7mniDRGw6F2 qW9H/C51LyYuQvHH9RwtkYc6HRJJ4MUgrr4KaVp+y40FbUaqOcf8PKElhZsa5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wVqUOD7l6qFXhQrbLSXY/gs0oFFYSXZWc+6l3O9fitA=; b=WbrEb+0osVoaIOA9gUCxBobg86XlI2BrUHeIItLUJo7XgioKpmsg6GScsXZFimTf+ivW2d wQJOMZ1OeLzY5kJV5rtxckMyX2o62cmRUsZmyK4LPYkEoHhP1LqorDDFxYB0XZdzXtVTO0 shKWXYc5cHlgNVQpSRHInl/WR3MDmgAkqWCRbnKggaLIlTBAvo+8MI4PruVksAml0S19VL KkomJ+BFb/l+JLmWJDCU+6ZltqbRRu2a/wkEQop54py7Idt4TEcfqGW8IfOgs5A78BeVJU vYjZsIzfPmIONpaNAWbLqdxVLjo1dHZ3+7S+TLad7/publzpIO+auipT5FWXew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMh0X6yzxw8 for ; Fri, 27 Feb 2026 02:29:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2191b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 0aecbd1540ea - stable/15 - LinuxKPi: 802.11: add more defines List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0aecbd1540ea8c4c6fa0cc2b6a8ce357666ddbf2 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:20 +0000 Message-Id: <69a10180.2191b.2c995b84@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=0aecbd1540ea8c4c6fa0cc2b6a8ce357666ddbf2 commit 0aecbd1540ea8c4c6fa0cc2b6a8ce357666ddbf2 Author: Bjoern A. Zeeb AuthorDate: 2026-01-21 13:52:04 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:58:42 +0000 LinuxKPi: 802.11: add more defines Add more defines and a mac80211 op function pointer used by mt76(4) at Linux v6.19-rc6. Sponsored by: The FreeBSD Foundation (cherry picked from commit d4898c6e01d80850e4a93a1aa805c44b5f8ca63f) --- sys/compat/linuxkpi/common/include/linux/ieee80211.h | 1 + sys/compat/linuxkpi/common/include/net/cfg80211.h | 1 + sys/compat/linuxkpi/common/include/net/mac80211.h | 2 ++ 3 files changed, 4 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index a9033581a315..d1eba94a3ad8 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -219,6 +219,7 @@ enum ieee80211_min_mpdu_start_spacing { #define IEEE80211_FCTL_TODS (IEEE80211_FC1_DIR_TODS << 8) #define IEEE80211_FCTL_MOREFRAGS (IEEE80211_FC1_MORE_FRAG << 8) #define IEEE80211_FCTL_PM (IEEE80211_FC1_PWR_MGT << 8) +#define IEEE80211_FCTL_MOREDATA (IEEE80211_FC1_MORE_DATA << 8) #define IEEE80211_FTYPE_MGMT IEEE80211_FC0_TYPE_MGT #define IEEE80211_FTYPE_CTL IEEE80211_FC0_TYPE_CTL diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index a8ca560a1ec1..94d34fb9dc0c 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -124,6 +124,7 @@ enum ieee80211_channel_flags { IEEE80211_CHAN_PSD = BIT(12), IEEE80211_CHAN_ALLOW_6GHZ_VLP_AP = BIT(13), IEEE80211_CHAN_CAN_MONITOR = BIT(14), + IEEE80211_CHAN_NO_EHT = BIT(15), }; #define IEEE80211_CHAN_NO_HT40 (IEEE80211_CHAN_NO_HT40MINUS|IEEE80211_CHAN_NO_HT40PLUS) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 8d3d04c9afe5..18891d035094 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -1103,6 +1103,8 @@ struct ieee80211_ops { void (*rfkill_poll)(struct ieee80211_hw *); + int (*net_fill_forward_path)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct net_device_path_ctx *, struct net_device_path *); + /* #ifdef CONFIG_MAC80211_DEBUGFS */ /* Do not change depending on compile-time option. */ void (*sta_add_debugfs)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct dentry *); void (*vif_add_debugfs)(struct ieee80211_hw *, struct ieee80211_vif *); From nobody Fri Feb 27 02:29: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 4fMXMj6nvwz6T7Lm for ; Fri, 27 Feb 2026 02:29:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMj1jN0z40Lh for ; Fri, 27 Feb 2026 02:29:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XZcGd8lSMW6bPiYezRelGkPjxPoAke/Grv5RsRPGYhU=; b=aSWu3DZOte6NcZXCd47mNyEyeLDELiZVNH4qJBU4WdUGrxdD984RNhOl0k6dyE+b5bHcoY dOk0Ks6OmuE3sty2uHjb2YJm/1k9kxqn2SBVvvTSmc7h9IiMD5EZdPiswhLmsaFhz761Hj o92HexRz31RyW2pV97/9fL6G2tZbV3x7+Vbx3gtot/eMqsQtqUyefazZbW1yyqGWGYMNdj 7M+bvlEKhLapZ5J7AElACw1ZwutrDNplCAdvTfK4K2J5wFf5eK+6P44JyNLCwX6a8Yqyl4 vLxP+YeiKUSGKfcjusSOeofd7BoZyu8bwCj2HgpubaWY1PuXR2MZn1pXXEoM2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159361; a=rsa-sha256; cv=none; b=crkV8o3yYDmS9FCF/cKLalrgtjuzKh577opdswEsJiIUYuq+z0IluMDw5aDDXk97AcG7VM OHBSdKm9FZw2iwpkFfk+Y0G4gdjkHYPHgNJTIax33WyJTQcCZmNtk8l8x0bbd/VXVMMNOG PtiCOM0mI79O4yZnSs88NdMyOT8Z3U5uQApkD4BsxLC2a2fLzRLWE9NKfsA6eWm4cjWFGp DB5TUvhg7YXA6GMkp08AjCrABM8Irvbu9KdoYnqZ9YjaJDWeydWI4LP/3V4dkkX4HayIcl XatAaWhC4HKqz2RruaMm8jKC7SECrLtPuetUPnBKneJVEyICGzfOqS4N9O57EQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XZcGd8lSMW6bPiYezRelGkPjxPoAke/Grv5RsRPGYhU=; b=lC2n8Y2UXVd5I4re6MSoa2JpbTuTzzCe+RqEf+2T1oN7I/a3ltWn5S52BBljzlIFeYDyrh zSlxwKCLEYTX+Q651hxpHj6j9FTCB801WBwEFMljqAEiYf/GmE5EwRwjtocoGP6NiWtvCA 48ZftRxUrjlrQvqrfKAcacf3b+0P6xqtf7iDeSBOOAHd+hWUryewT0rBhor0LJxxAwz2OX C1ETnQSO4qdAgB1Fj7dJf4SY2x/TfHiTJMZuWNcIMhDZxv54nIlk86OfTDTj4HKxqf6U3N Oj7axk84sot49RSDIHxXqmaiP+fx4BfCdZbOv+PpxEGKH/Ccn+n3PtuJQJ7NdA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMj0zgJzyV4 for ; Fri, 27 Feb 2026 02:29:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2191f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 5520beb22d65 - stable/15 - LinuxKPI: netdevice: add structs net_device_path, net_device_path_ctx List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5520beb22d65a4afc8cb75db471b58dfbaba2c7a Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:21 +0000 Message-Id: <69a10181.2191f.77c2cb1c@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5520beb22d65a4afc8cb75db471b58dfbaba2c7a commit 5520beb22d65a4afc8cb75db471b58dfbaba2c7a Author: Bjoern A. Zeeb AuthorDate: 2026-01-21 13:55:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:58:49 +0000 LinuxKPI: netdevice: add structs net_device_path, net_device_path_ctx mt76(4) is using this along with a mac80211.h functiontion pointer to resolve a path in an offload case. Sponsored by: The FreeBSD Foundation (cherry picked from commit 275c7f513114a8808ba246a1304cbcf7bafbcc21) --- .../linuxkpi/common/include/linux/netdevice.h | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/netdevice.h b/sys/compat/linuxkpi/common/include/linux/netdevice.h index cf27753bcb80..dfed5fbd61b4 100644 --- a/sys/compat/linuxkpi/common/include/linux/netdevice.h +++ b/sys/compat/linuxkpi/common/include/linux/netdevice.h @@ -160,6 +160,30 @@ struct net_device { #define SET_NETDEV_DEV(_ndev, _dev) (_ndev)->dev.parent = _dev; +enum net_device_path_type { + DEV_PATH_MTK_WDMA, +}; + +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + /* We assume there's a struct per type. */ + union { + struct { + uint16_t wcid; + uint8_t wdma_idx; + uint8_t queue; + uint8_t bss; + uint8_t amsdu; + } mtk_wdma; + }; +}; + +struct net_device_path_ctx { + const struct net_device *dev; +}; + + /* -------------------------------------------------------------------------- */ /* According to linux::ipoib_main.c. */ struct netdev_notifier_info { From nobody Fri Feb 27 02:29: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 4fMXMk60fqz6T7NX for ; Fri, 27 Feb 2026 02:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMk2KCbz40J4 for ; Fri, 27 Feb 2026 02:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N45NbZMvcerMuu0ffzQTYC67CWd/jVZe7mGg81tjTLE=; b=gPRwCtvA+UfjLtRuAchKSaBgGn+gxF2K3S9C7ZDFzk8NF8aFSywMjQ3irGWp2CIz35dSSr 1AEsbYU/F5UtNpSyNAg4l9bUQnOlrW6ROC2BsaZZPhPsme04kLF/aubw9ht9wvZq6d8wOb rvwHqdhk/eGi9pxLJchLihBLbGChm2z1OX/Ob+SKo9SiyCZ5nU3CUStS1jlbV45d8PtFb1 gAB2Q/XjJjRxKLaHiY+UGAnQjoHdMZy+/f6uCNcmikFiQOCk1ZJAcZNUuI8Hv10bh/qR1h sDYZvyVt/r+HeCfs7OEoM65ovNr9GcPRZCTdbJaaBKhMLqyhb6+1ABdyJo3+LA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159362; a=rsa-sha256; cv=none; b=WrgmbMvf5U9aQdFqlmwu2+h0Y6BxMoJzt1KMa3aySHwserjNMJaD31UBe0Q7Y/P9lD+yQa o0QtPi5K+VdSyXj7Bm4pQAqRUe71kn/HDvPOuvdwPIhJUpj3gWu/MqkUJd8dF+wILU/4VQ 0XYVaEkZr8yD5asUWS4psF5ONVs+86hlv1pwUHfr6YJOzSadH+POE5Senkeq8m9c51YNNc 4LWIdP8sW2SYeAau2vGTjnc24XAFIz7RPknb5HfqDXUn55OahXcKVaQiqgCsaX5tiExyBq XvGnFliu9ShpOU7hS7V+sP5LGZdFzbjKJUwhsUEP0YYyZKUXVVfkj9bOoc7Gfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N45NbZMvcerMuu0ffzQTYC67CWd/jVZe7mGg81tjTLE=; b=x3B90zz4uYE6Csm8Qz20tgCDVp9e3tOqQwunDHSynaaWoRjwYPYZ66iI2uCOLlflgcPYT7 gM2TFSpIEeZc6wHEn3Ve2DmWyowSC+qWXLqI/Vhl7Qe4ReESRmYLZUMrWrxZ6LoC+y2Ezu 2DMljt8gkNesHRmltds/MytUv91/tszdbF89Rmnwei1WJeB0FE1odw6PUsOGJP9iRZ57Rv xAgHKqIFL+pk7h+QAy6Rj0IzAZ1Bdq7oU0Br8E9rTh+ztF+S8ZrsgfmRiD0ryVtRw+wMjY R0Ea0A8VV26Vzop5HM5kovjODhSY/1ostk5cr5AQY70EsThOQPY2NtN5zl/tEg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMk1cGfzyGf for ; Fri, 27 Feb 2026 02:29:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21fb4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: b3d4c75b918d - stable/15 - rtw88: update Realtek's rtw88 driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b3d4c75b918d7bcdebe72cb15d6a0e3cd18176a8 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:22 +0000 Message-Id: <69a10182.21fb4.1a1ccc9f@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b3d4c75b918d7bcdebe72cb15d6a0e3cd18176a8 commit b3d4c75b918d7bcdebe72cb15d6a0e3cd18176a8 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 10:56:33 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:58:54 +0000 rtw88: update Realtek's rtw88 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7 ( tag: v6.19-rc6 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit 80ba8933a991d245b3983f9e2ed1171b11ccaf8a) --- sys/contrib/dev/rtw88/bf.c | 8 +++++++- sys/contrib/dev/rtw88/bf.h | 7 +++++++ sys/contrib/dev/rtw88/rtw8822bu.c | 2 ++ sys/contrib/dev/rtw88/rtw8822cu.c | 2 ++ sys/contrib/dev/rtw88/sdio.c | 4 +++- sys/modules/rtw88/Makefile | 2 +- 6 files changed, 22 insertions(+), 3 deletions(-) diff --git a/sys/contrib/dev/rtw88/bf.c b/sys/contrib/dev/rtw88/bf.c index 16c6a1d972e5..8969a1e0cb47 100644 --- a/sys/contrib/dev/rtw88/bf.c +++ b/sys/contrib/dev/rtw88/bf.c @@ -129,8 +129,11 @@ void rtw_bf_init_bfer_entry_mu(struct rtw_dev *rtwdev, void rtw_bf_cfg_sounding(struct rtw_dev *rtwdev, struct rtw_vif *vif, enum rtw_trx_desc_rate rate) { + u8 csi_rsc = CSI_RSC_FOLLOW_RX_PACKET_BW; u32 psf_ctl = 0; - u8 csi_rsc = 0x1; + + if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C) + csi_rsc = CSI_RSC_PRIMARY_20M_BW; psf_ctl = rtw_read32(rtwdev, REG_BBPSF_CTRL) | BIT_WMAC_USE_NDPARATE | @@ -392,6 +395,9 @@ void rtw_bf_cfg_csi_rate(struct rtw_dev *rtwdev, u8 rssi, u8 cur_rate, csi_cfg = rtw_read32(rtwdev, REG_BBPSF_CTRL) & ~BIT_MASK_CSI_RATE; cur_rrsr = rtw_read16(rtwdev, REG_RRSR); + if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C) + csi_cfg |= BIT_CSI_FORCE_RATE; + if (rssi >= 40) { if (cur_rate != DESC_RATE54M) { cur_rrsr |= BIT(DESC_RATE54M); diff --git a/sys/contrib/dev/rtw88/bf.h b/sys/contrib/dev/rtw88/bf.h index 7b40c2c03856..a5d3010e6be6 100644 --- a/sys/contrib/dev/rtw88/bf.h +++ b/sys/contrib/dev/rtw88/bf.h @@ -33,6 +33,7 @@ #define BIT_SHIFT_R_MU_RL 12 #define BIT_SHIFT_WMAC_TXMU_ACKPOLICY 4 #define BIT_SHIFT_CSI_RATE 24 +#define BIT_CSI_FORCE_RATE BIT(15) #define BIT_MASK_R_MU_RL (R_MU_RL << BIT_SHIFT_R_MU_RL) #define BIT_MASK_R_MU_TABLE_VALID 0x3f @@ -48,6 +49,12 @@ #define RTW_SND_CTRL_REMOVE 0x98 #define RTW_SND_CTRL_SOUNDING 0x9B +enum csi_rsc { + CSI_RSC_PRIMARY_20M_BW = 0, + CSI_RSC_FOLLOW_RX_PACKET_BW = 1, + CSI_RSC_DUPLICATE_MODE = 2, +}; + enum csi_seg_len { HAL_CSI_SEG_4K = 0, HAL_CSI_SEG_8K = 1, diff --git a/sys/contrib/dev/rtw88/rtw8822bu.c b/sys/contrib/dev/rtw88/rtw8822bu.c index efda9887cc41..2886f470df71 100644 --- a/sys/contrib/dev/rtw88/rtw8822bu.c +++ b/sys/contrib/dev/rtw88/rtw8822bu.c @@ -79,6 +79,8 @@ static const struct usb_device_id rtw_8822bu_id_table[] = { .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* D-Link DWA-T185 rev. A1 */ { USB_DEVICE_AND_INTERFACE_INFO(0x0411, 0x03d1, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* BUFFALO WI-U2-866DM */ + { USB_DEVICE_AND_INTERFACE_INFO(0x0411, 0x03d0, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&(rtw8822b_hw_spec) }, /* BUFFALO WI-U3-866DHP */ {}, }; MODULE_DEVICE_TABLE(usb, rtw_8822bu_id_table); diff --git a/sys/contrib/dev/rtw88/rtw8822cu.c b/sys/contrib/dev/rtw88/rtw8822cu.c index 90fcbb8ec629..a5f8311c022b 100644 --- a/sys/contrib/dev/rtw88/rtw8822cu.c +++ b/sys/contrib/dev/rtw88/rtw8822cu.c @@ -21,6 +21,8 @@ static const struct usb_device_id rtw_8822cu_id_table[] = { .driver_info = (kernel_ulong_t)&(rtw8822c_hw_spec) }, { USB_DEVICE_AND_INTERFACE_INFO(0x13b1, 0x0043, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&(rtw8822c_hw_spec) }, /* Alpha - Alpha */ + { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x3329, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&(rtw8822c_hw_spec) }, /* D-Link AC13U rev. A1 */ {}, }; MODULE_DEVICE_TABLE(usb, rtw_8822cu_id_table); diff --git a/sys/contrib/dev/rtw88/sdio.c b/sys/contrib/dev/rtw88/sdio.c index 99d7c629eac6..e35de52d8eb4 100644 --- a/sys/contrib/dev/rtw88/sdio.c +++ b/sys/contrib/dev/rtw88/sdio.c @@ -144,8 +144,10 @@ static u32 rtw_sdio_to_io_address(struct rtw_dev *rtwdev, u32 addr, static bool rtw_sdio_use_direct_io(struct rtw_dev *rtwdev, u32 addr) { + bool might_indirect_under_power_off = rtwdev->chip->id == RTW_CHIP_TYPE_8822C; + if (!test_bit(RTW_FLAG_POWERON, rtwdev->flags) && - !rtw_sdio_is_bus_addr(addr)) + !rtw_sdio_is_bus_addr(addr) && might_indirect_under_power_off) return false; return !rtw_sdio_is_sdio30_supported(rtwdev) || diff --git a/sys/modules/rtw88/Makefile b/sys/modules/rtw88/Makefile index ee47df54bcf9..0ce6ad3f99bb 100644 --- a/sys/modules/rtw88/Makefile +++ b/sys/modules/rtw88/Makefile @@ -46,7 +46,7 @@ SRCS+= ${LINUXKPI_GENSRCS} SRCS+= opt_wlan.h opt_inet6.h opt_inet.h CFLAGS+= -DKBUILD_MODNAME='"rtw88"' -CFLAGS+= -DLINUXKPI_VERSION=61700 +CFLAGS+= -DLINUXKPI_VERSION=61900 CFLAGS+= -I${DEVRTW88DIR} CFLAGS+= ${LINUXKPI_INCLUDES} From nobody Fri Feb 27 02:29: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 4fMXMl7468z6T7YW for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMl2jvRz40bq for ; Fri, 27 Feb 2026 02:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+j3IL+JDRkPAvCw9lIVz+mk1gOtaEtyfnBXjyJQ4ATY=; b=vMJ0KxXdTbjh2YTaXCr4O7WWe73acJXUHFAWGjUfv27WBCn0t2O4Wo2mgZHM85etbPopBm 7Gw0MMR0yjcChgj9NyaCKW8D3ROT4zUvhC790su0gLElhS+DbMGTFUCeyAI3DSEoFYAG5O VVZT4HWhVj19wbYJP5eRD5+l87Lh7wUEBFuqO8u8A8w/him2o9DPbPcLJtSTHHfmZfhcrL uE9Z+rkDrczzgxgBvG+FEv2QuqfcvkOZeBP2jgZF18xP3Icd2gW5anV2MsxkKDKcB6RZkH KEEFgdXjWRr60+dec2Q0CpykcXglPYS89WhGFOeHpvlbs21wBICUzJ1+F0Mykg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159363; a=rsa-sha256; cv=none; b=DvUL+uo5U7A0s7tGusC9CbAWfottsdX97ZfLumev9B8FUIvll5r+X5P1W1Gbs1+rlis/VR Bdny/r4Az1RnGHq9Ej/EiH0jip24k3VODBT9oJduoA3pL33q6npRYi8ipoEssjkETJQ8Qf 0zfus6mJN7jJGtp0wavztq4+h0fCL5y4/y+APwyBWQRk0prvhNOyYwg3nYWjhB7uR9A5Qc lGiM8lWyMtgTMpVnG7BM/a38dCiBLnB9Da7Q6vuhVRUuGaqqf6uGqyChaRV+zSE6t+w6J0 mfV8liWjFGppa+ZUQ9WlZsgrUQpBQn3Q++kilf8IZOw9lAVRGj8K3jYocAqpVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+j3IL+JDRkPAvCw9lIVz+mk1gOtaEtyfnBXjyJQ4ATY=; b=kOYEDLtIIBecYV18YaIC5/3gHfDFnxaXtETr//3Ht4k7t1ihzCVv73m79vBU3nm2GhlkXM vun7DTfavu9k0grHSk26lnpKtCv1IAek2yu3paglYbdwOBPBso1+SJEAHxytg8iYf5NOa+ 3SlDmrLmbO+p6aHLdbNxh3hOeDjZsjphxNw9V/SXiICj6YLCc21rOanU4Or9Z3KxhpB2+W S5xe4rfjwdyUAPHrxUvfNWizCCkfidBvo/OzOHpuJU+MAeXLDF9LfGnBkN7bdkOpUltT+x utWj/S+mBgHT0jE0lEIl0d4T1qzuU57jXwSHRjNbMFn2mH+N9MDINzDZRa1DcA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMl2FFHzyGh for ; Fri, 27 Feb 2026 02:29:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21923 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 1744c1e71de6 - stable/15 - ath10k: update Atheros/QCA's ath10k driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1744c1e71de6f8cf81643b5e5903d283f245052f Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:23 +0000 Message-Id: <69a10183.21923.6b6c6d37@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=1744c1e71de6f8cf81643b5e5903d283f245052f commit 1744c1e71de6f8cf81643b5e5903d283f245052f Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 10:55:32 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:59:00 +0000 ath10k: update Atheros/QCA's ath10k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7 ( tag: v6.19-rc6 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit 6c61f58562b932eb46b2e05b2f5a82d34250435a) --- sys/contrib/dev/athk/ath10k/core.c | 28 ++-- sys/contrib/dev/athk/ath10k/core.h | 6 +- sys/contrib/dev/athk/ath10k/mac.c | 2 +- sys/contrib/dev/athk/ath10k/qmi.c | 2 +- sys/contrib/dev/athk/ath10k/testmode.c | 253 +++++++++++++++++++++++++++---- sys/contrib/dev/athk/ath10k/testmode_i.h | 15 ++ sys/contrib/dev/athk/ath10k/wmi.h | 19 ++- sys/modules/ath10k/Makefile | 1 + 8 files changed, 275 insertions(+), 51 deletions(-) diff --git a/sys/contrib/dev/athk/ath10k/core.c b/sys/contrib/dev/athk/ath10k/core.c index a0407f693659..9ec08b402fd2 100644 --- a/sys/contrib/dev/athk/ath10k/core.c +++ b/sys/contrib/dev/athk/ath10k/core.c @@ -3,7 +3,6 @@ * Copyright (c) 2005-2011 Atheros Communications Inc. * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ @@ -1212,7 +1211,7 @@ static int ath10k_download_fw(struct ath10k *ar) u32 address, data_len; const void *data; int ret; - struct pm_qos_request latency_qos; + struct pm_qos_request latency_qos = {}; address = ar->hw_params.patch_load_addr; @@ -1246,7 +1245,6 @@ static int ath10k_download_fw(struct ath10k *ar) ret); } - memset(&latency_qos, 0, sizeof(latency_qos)); cpu_latency_qos_add_request(&latency_qos, 0); ret = ath10k_bmi_fast_download(ar, address, data, data_len); @@ -2570,8 +2568,9 @@ static int ath10k_init_hw_params(struct ath10k *ar) return 0; } -static bool ath10k_core_needs_recovery(struct ath10k *ar) +static void ath10k_core_recovery_check_work(struct work_struct *work) { + struct ath10k *ar = container_of(work, struct ath10k, recovery_check_work); long time_left; /* Sometimes the recovery will fail and then the next all recovery fail, @@ -2581,7 +2580,7 @@ static bool ath10k_core_needs_recovery(struct ath10k *ar) ath10k_err(ar, "consecutive fail %d times, will shutdown driver!", atomic_read(&ar->fail_cont_count)); ar->state = ATH10K_STATE_WEDGED; - return false; + return; } ath10k_dbg(ar, ATH10K_DBG_BOOT, "total recovery count: %d", ++ar->recovery_count); @@ -2595,27 +2594,24 @@ static bool ath10k_core_needs_recovery(struct ath10k *ar) ATH10K_RECOVERY_TIMEOUT_HZ); if (time_left) { ath10k_warn(ar, "previous recovery succeeded, skip this!\n"); - return false; + return; } /* Record the continuous recovery fail count when recovery failed. */ atomic_inc(&ar->fail_cont_count); /* Avoid having multiple recoveries at the same time. */ - return false; + return; } atomic_inc(&ar->pending_recovery); - - return true; + queue_work(ar->workqueue, &ar->restart_work); } void ath10k_core_start_recovery(struct ath10k *ar) { - if (!ath10k_core_needs_recovery(ar)) - return; - - queue_work(ar->workqueue, &ar->restart_work); + /* Use workqueue_aux to avoid blocking recovery tracking */ + queue_work(ar->workqueue_aux, &ar->recovery_check_work); } EXPORT_SYMBOL(ath10k_core_start_recovery); @@ -3440,7 +3436,7 @@ EXPORT_SYMBOL(ath10k_core_stop); */ static int ath10k_core_probe_fw(struct ath10k *ar) { - struct bmi_target_info target_info; + struct bmi_target_info target_info = {}; int ret = 0; ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_NORMAL); @@ -3451,7 +3447,6 @@ static int ath10k_core_probe_fw(struct ath10k *ar) switch (ar->hif.bus) { case ATH10K_BUS_SDIO: - memset(&target_info, 0, sizeof(target_info)); ret = ath10k_bmi_get_target_info_sdio(ar, &target_info); if (ret) { ath10k_err(ar, "could not get target info (%d)\n", ret); @@ -3463,7 +3458,6 @@ static int ath10k_core_probe_fw(struct ath10k *ar) case ATH10K_BUS_PCI: case ATH10K_BUS_AHB: case ATH10K_BUS_USB: - memset(&target_info, 0, sizeof(target_info)); ret = ath10k_bmi_get_target_info(ar, &target_info); if (ret) { ath10k_err(ar, "could not get target info (%d)\n", ret); @@ -3473,7 +3467,6 @@ static int ath10k_core_probe_fw(struct ath10k *ar) ar->hw->wiphy->hw_version = target_info.version; break; case ATH10K_BUS_SNOC: - memset(&target_info, 0, sizeof(target_info)); ret = ath10k_hif_get_target_info(ar, &target_info); if (ret) { ath10k_err(ar, "could not get target info (%d)\n", ret); @@ -3824,6 +3817,7 @@ struct ath10k *ath10k_core_create(size_t priv_size, struct device *dev, INIT_WORK(&ar->register_work, ath10k_core_register_work); INIT_WORK(&ar->restart_work, ath10k_core_restart); + INIT_WORK(&ar->recovery_check_work, ath10k_core_recovery_check_work); INIT_WORK(&ar->set_coverage_class_work, ath10k_core_set_coverage_class_work); diff --git a/sys/contrib/dev/athk/ath10k/core.h b/sys/contrib/dev/athk/ath10k/core.h index cb250ca6991d..eaf122d4b112 100644 --- a/sys/contrib/dev/athk/ath10k/core.h +++ b/sys/contrib/dev/athk/ath10k/core.h @@ -3,7 +3,6 @@ * Copyright (c) 2005-2011 Atheros Communications Inc. * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. - * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ @@ -1216,6 +1215,7 @@ struct ath10k { struct work_struct register_work; struct work_struct restart_work; + struct work_struct recovery_check_work; struct work_struct bundle_tx_work; struct work_struct tx_complete_work; @@ -1267,9 +1267,13 @@ struct ath10k { struct { /* protected by conf_mutex */ struct ath10k_fw_components utf_mode_fw; + u8 ftm_msgref; /* protected by data_lock */ bool utf_monitor; + u32 data_pos; + u32 expected_seq; + u8 *eventdata; } testmode; struct { diff --git a/sys/contrib/dev/athk/ath10k/mac.c b/sys/contrib/dev/athk/ath10k/mac.c index 6725c2c742bd..e2bda3c0d925 100644 --- a/sys/contrib/dev/athk/ath10k/mac.c +++ b/sys/contrib/dev/athk/ath10k/mac.c @@ -3,7 +3,6 @@ * Copyright (c) 2005-2011 Atheros Communications Inc. * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ @@ -5442,6 +5441,7 @@ static void ath10k_stop(struct ieee80211_hw *hw, bool suspend) cancel_work_sync(&ar->set_coverage_class_work); cancel_delayed_work_sync(&ar->scan.timeout); cancel_work_sync(&ar->restart_work); + cancel_work_sync(&ar->recovery_check_work); } static int ath10k_config_ps(struct ath10k *ar) diff --git a/sys/contrib/dev/athk/ath10k/qmi.c b/sys/contrib/dev/athk/ath10k/qmi.c index f1f33af0170a..8275345631a0 100644 --- a/sys/contrib/dev/athk/ath10k/qmi.c +++ b/sys/contrib/dev/athk/ath10k/qmi.c @@ -986,7 +986,7 @@ static int ath10k_qmi_new_server(struct qmi_handle *qmi_hdl, ath10k_dbg(ar, ATH10K_DBG_QMI, "wifi fw qmi service found\n"); - ret = kernel_connect(qmi_hdl->sock, (struct sockaddr *)&qmi->sq, + ret = kernel_connect(qmi_hdl->sock, (struct sockaddr_unsized *)&qmi->sq, sizeof(qmi->sq), 0); if (ret) { ath10k_err(ar, "failed to connect to a remote QMI service port\n"); diff --git a/sys/contrib/dev/athk/ath10k/testmode.c b/sys/contrib/dev/athk/ath10k/testmode.c index 3fcefc55b74f..d3bd385694d6 100644 --- a/sys/contrib/dev/athk/ath10k/testmode.c +++ b/sys/contrib/dev/athk/ath10k/testmode.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: ISC /* * Copyright (c) 2014-2017 Qualcomm Atheros, Inc. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ #include "testmode.h" @@ -10,12 +11,17 @@ #include "debug.h" #include "wmi.h" +#include "wmi-tlv.h" #include "hif.h" #include "hw.h" #include "core.h" #include "testmode_i.h" +#define ATH10K_FTM_SEG_NONE ((u32)-1) +#define ATH10K_FTM_SEGHDR_CURRENT_SEQ GENMASK(3, 0) +#define ATH10K_FTM_SEGHDR_TOTAL_SEGMENTS GENMASK(7, 4) + static const struct nla_policy ath10k_tm_policy[ATH10K_TM_ATTR_MAX + 1] = { [ATH10K_TM_ATTR_CMD] = { .type = NLA_U32 }, [ATH10K_TM_ATTR_DATA] = { .type = NLA_BINARY, @@ -25,41 +31,19 @@ static const struct nla_policy ath10k_tm_policy[ATH10K_TM_ATTR_MAX + 1] = { [ATH10K_TM_ATTR_VERSION_MINOR] = { .type = NLA_U32 }, }; -/* Returns true if callee consumes the skb and the skb should be discarded. - * Returns false if skb is not used. Does not sleep. - */ -bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) +static void ath10k_tm_event_unsegmented(struct ath10k *ar, u32 cmd_id, + struct sk_buff *skb) { struct sk_buff *nl_skb; - bool consumed; int ret; - ath10k_dbg(ar, ATH10K_DBG_TESTMODE, - "testmode event wmi cmd_id %d skb %p skb->len %d\n", - cmd_id, skb, skb->len); - - ath10k_dbg_dump(ar, ATH10K_DBG_TESTMODE, NULL, "", skb->data, skb->len); - - spin_lock_bh(&ar->data_lock); - - if (!ar->testmode.utf_monitor) { - consumed = false; - goto out; - } - - /* Only testmode.c should be handling events from utf firmware, - * otherwise all sort of problems will arise as mac80211 operations - * are not initialised. - */ - consumed = true; - nl_skb = cfg80211_testmode_alloc_event_skb(ar->hw->wiphy, 2 * sizeof(u32) + skb->len, GFP_ATOMIC); if (!nl_skb) { ath10k_warn(ar, "failed to allocate skb for testmode wmi event\n"); - goto out; + return; } ret = nla_put_u32(nl_skb, ATH10K_TM_ATTR_CMD, ATH10K_TM_CMD_WMI); @@ -68,7 +52,7 @@ bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) "failed to put testmode wmi event cmd attribute: %d\n", ret); kfree_skb(nl_skb); - goto out; + return; } ret = nla_put_u32(nl_skb, ATH10K_TM_ATTR_WMI_CMDID, cmd_id); @@ -77,7 +61,7 @@ bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) "failed to put testmode wmi event cmd_id: %d\n", ret); kfree_skb(nl_skb); - goto out; + return; } ret = nla_put(nl_skb, ATH10K_TM_ATTR_DATA, skb->len, skb->data); @@ -86,10 +70,122 @@ bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) "failed to copy skb to testmode wmi event: %d\n", ret); kfree_skb(nl_skb); - goto out; + return; + } + + cfg80211_testmode_event(nl_skb, GFP_ATOMIC); +} + +static void ath10k_tm_event_segmented(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) +{ + struct wmi_ftm_cmd *ftm = (struct wmi_ftm_cmd *)skb->data; + u8 total_segments, current_seq; + struct sk_buff *nl_skb; + u8 const *buf_pos; + u16 datalen; + u32 data_pos; + int ret; + + if (skb->len < sizeof(*ftm)) { + ath10k_warn(ar, "Invalid ftm event length: %d\n", skb->len); + return; + } + + current_seq = FIELD_GET(ATH10K_FTM_SEGHDR_CURRENT_SEQ, + __le32_to_cpu(ftm->seg_hdr.segmentinfo)); + total_segments = FIELD_GET(ATH10K_FTM_SEGHDR_TOTAL_SEGMENTS, + __le32_to_cpu(ftm->seg_hdr.segmentinfo)); + datalen = skb->len - sizeof(*ftm); + buf_pos = ftm->data; + + if (current_seq == 0) { + ar->testmode.expected_seq = 0; + ar->testmode.data_pos = 0; + } + + data_pos = ar->testmode.data_pos; + + if ((data_pos + datalen) > ATH_FTM_EVENT_MAX_BUF_LENGTH) { + ath10k_warn(ar, "Invalid ftm event length at %u: %u\n", + data_pos, datalen); + ret = -EINVAL; + return; + } + + memcpy(&ar->testmode.eventdata[data_pos], buf_pos, datalen); + data_pos += datalen; + + if (++ar->testmode.expected_seq != total_segments) { + ar->testmode.data_pos = data_pos; + ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "partial data received %u/%u\n", + current_seq + 1, total_segments); + return; + } + + ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "total data length %u\n", data_pos); + + nl_skb = cfg80211_testmode_alloc_event_skb(ar->hw->wiphy, + 2 * sizeof(u32) + data_pos, + GFP_ATOMIC); + if (!nl_skb) { + ath10k_warn(ar, "failed to allocate skb for testmode wmi event\n"); + return; + } + + ret = nla_put_u32(nl_skb, ATH10K_TM_ATTR_CMD, ATH10K_TM_CMD_TLV); + if (ret) { + ath10k_warn(ar, "failed to put testmode wmi event attribute: %d\n", ret); + kfree_skb(nl_skb); + return; + } + + ret = nla_put_u32(nl_skb, ATH10K_TM_ATTR_WMI_CMDID, cmd_id); + if (ret) { + ath10k_warn(ar, "failed to put testmode wmi event cmd_id: %d\n", ret); + kfree_skb(nl_skb); + return; + } + + ret = nla_put(nl_skb, ATH10K_TM_ATTR_DATA, data_pos, &ar->testmode.eventdata[0]); + if (ret) { + ath10k_warn(ar, "failed to copy skb to testmode wmi event: %d\n", ret); + kfree_skb(nl_skb); + return; } cfg80211_testmode_event(nl_skb, GFP_ATOMIC); +} + +/* Returns true if callee consumes the skb and the skb should be discarded. + * Returns false if skb is not used. Does not sleep. + */ +bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) +{ + bool consumed; + + ath10k_dbg(ar, ATH10K_DBG_TESTMODE, + "testmode event wmi cmd_id %d skb %p skb->len %d\n", + cmd_id, skb, skb->len); + + ath10k_dbg_dump(ar, ATH10K_DBG_TESTMODE, NULL, "", skb->data, skb->len); + + spin_lock_bh(&ar->data_lock); + + if (!ar->testmode.utf_monitor) { + consumed = false; + goto out; + } + + /* Only testmode.c should be handling events from utf firmware, + * otherwise all sort of problems will arise as mac80211 operations + * are not initialised. + */ + consumed = true; + + if (ar->testmode.expected_seq != ATH10K_FTM_SEG_NONE) + ath10k_tm_event_segmented(ar, cmd_id, skb); + else + ath10k_tm_event_unsegmented(ar, cmd_id, skb); out: spin_unlock_bh(&ar->data_lock); @@ -281,12 +377,18 @@ static int ath10k_tm_cmd_utf_start(struct ath10k *ar, struct nlattr *tb[]) goto err_release_utf_mode_fw; } + ar->testmode.eventdata = kzalloc(ATH_FTM_EVENT_MAX_BUF_LENGTH, GFP_KERNEL); + if (!ar->testmode.eventdata) { + ret = -ENOMEM; + goto err_power_down; + } + ret = ath10k_core_start(ar, ATH10K_FIRMWARE_MODE_UTF, &ar->testmode.utf_mode_fw); if (ret) { ath10k_err(ar, "failed to start core (testmode): %d\n", ret); ar->state = ATH10K_STATE_OFF; - goto err_power_down; + goto err_release_eventdata; } ar->state = ATH10K_STATE_UTF; @@ -302,6 +404,10 @@ static int ath10k_tm_cmd_utf_start(struct ath10k *ar, struct nlattr *tb[]) return 0; +err_release_eventdata: + kfree(ar->testmode.eventdata); + ar->testmode.eventdata = NULL; + err_power_down: ath10k_hif_power_down(ar); @@ -341,6 +447,9 @@ static void __ath10k_tm_cmd_utf_stop(struct ath10k *ar) release_firmware(ar->testmode.utf_mode_fw.fw_file.firmware); ar->testmode.utf_mode_fw.fw_file.firmware = NULL; + kfree(ar->testmode.eventdata); + ar->testmode.eventdata = NULL; + ar->state = ATH10K_STATE_OFF; } @@ -424,6 +533,85 @@ out: return ret; } +static int ath10k_tm_cmd_tlv(struct ath10k *ar, struct nlattr *tb[]) +{ + u16 total_bytes, num_segments; + u32 cmd_id, buf_len; + u8 segnumber = 0; + u8 *bufpos; + void *buf; + int ret; + + mutex_lock(&ar->conf_mutex); + + if (ar->state != ATH10K_STATE_UTF) { + ret = -ENETDOWN; + goto out; + } + + buf = nla_data(tb[ATH10K_TM_ATTR_DATA]); + buf_len = nla_len(tb[ATH10K_TM_ATTR_DATA]); + cmd_id = WMI_PDEV_UTF_CMDID; + + ath10k_dbg(ar, ATH10K_DBG_TESTMODE, + "cmd wmi ftm cmd_id %d buffer length %d\n", + cmd_id, buf_len); + ath10k_dbg_dump(ar, ATH10K_DBG_TESTMODE, NULL, "", buf, buf_len); + + bufpos = buf; + total_bytes = buf_len; + num_segments = total_bytes / MAX_WMI_UTF_LEN; + ar->testmode.expected_seq = 0; + + if (buf_len - (num_segments * MAX_WMI_UTF_LEN)) + num_segments++; + + while (buf_len) { + u16 chunk_len = min_t(u16, buf_len, MAX_WMI_UTF_LEN); + struct wmi_ftm_cmd *ftm_cmd; + struct sk_buff *skb; + u32 hdr_info; + u8 seginfo; + + skb = ath10k_wmi_alloc_skb(ar, (chunk_len + + sizeof(struct wmi_ftm_cmd))); + if (!skb) { + ret = -ENOMEM; + goto out; + } + + ftm_cmd = (struct wmi_ftm_cmd *)skb->data; + hdr_info = FIELD_PREP(WMI_TLV_TAG, WMI_TLV_TAG_ARRAY_BYTE) | + FIELD_PREP(WMI_TLV_LEN, (chunk_len + + sizeof(struct wmi_ftm_seg_hdr))); + ftm_cmd->tlv_header = __cpu_to_le32(hdr_info); + ftm_cmd->seg_hdr.len = __cpu_to_le32(total_bytes); + ftm_cmd->seg_hdr.msgref = __cpu_to_le32(ar->testmode.ftm_msgref); + seginfo = FIELD_PREP(ATH10K_FTM_SEGHDR_TOTAL_SEGMENTS, num_segments) | + FIELD_PREP(ATH10K_FTM_SEGHDR_CURRENT_SEQ, segnumber); + ftm_cmd->seg_hdr.segmentinfo = __cpu_to_le32(seginfo); + segnumber++; + + memcpy(&ftm_cmd->data, bufpos, chunk_len); + + ret = ath10k_wmi_cmd_send(ar, skb, cmd_id); + if (ret) { + ath10k_warn(ar, "failed to send wmi ftm command: %d\n", ret); + goto out; + } + + buf_len -= chunk_len; + bufpos += chunk_len; + } + + ar->testmode.ftm_msgref++; + ret = 0; + +out: + mutex_unlock(&ar->conf_mutex); + return ret; +} + int ath10k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, void *data, int len) { @@ -439,9 +627,14 @@ int ath10k_tm_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, if (!tb[ATH10K_TM_ATTR_CMD]) return -EINVAL; + ar->testmode.expected_seq = ATH10K_FTM_SEG_NONE; + switch (nla_get_u32(tb[ATH10K_TM_ATTR_CMD])) { case ATH10K_TM_CMD_GET_VERSION: - return ath10k_tm_cmd_get_version(ar, tb); + if (!tb[ATH10K_TM_ATTR_DATA]) + return ath10k_tm_cmd_get_version(ar, tb); + else /* ATH10K_TM_CMD_TLV */ + return ath10k_tm_cmd_tlv(ar, tb); case ATH10K_TM_CMD_UTF_START: return ath10k_tm_cmd_utf_start(ar, tb); case ATH10K_TM_CMD_UTF_STOP: diff --git a/sys/contrib/dev/athk/ath10k/testmode_i.h b/sys/contrib/dev/athk/ath10k/testmode_i.h index ee1cb27c1d60..1603f5276682 100644 --- a/sys/contrib/dev/athk/ath10k/testmode_i.h +++ b/sys/contrib/dev/athk/ath10k/testmode_i.h @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: ISC */ /* * Copyright (c) 2014,2017 Qualcomm Atheros, Inc. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ /* "API" level of the ath10k testmode interface. Bump it after every @@ -14,6 +15,7 @@ #define ATH10K_TESTMODE_VERSION_MINOR 0 #define ATH10K_TM_DATA_MAX_LEN 5000 +#define ATH_FTM_EVENT_MAX_BUF_LENGTH 2048 enum ath10k_tm_attr { __ATH10K_TM_ATTR_INVALID = 0, @@ -57,4 +59,17 @@ enum ath10k_tm_cmd { * ATH10K_TM_ATTR_DATA. */ ATH10K_TM_CMD_WMI = 3, + + /* The command used to transmit a test command to the firmware + * and the event to receive test events from the firmware. The data + * received only contain the TLV payload, need to add the tlv header + * and send the cmd to firmware with command id WMI_PDEV_UTF_CMDID. + * The data payload size could be large and the driver needs to + * send segmented data to firmware. + * + * This legacy testmode command shares the same value as the get-version + * command. To distinguish between them, we check whether the data attribute + * is present. + */ + ATH10K_TM_CMD_TLV = ATH10K_TM_CMD_GET_VERSION, }; diff --git a/sys/contrib/dev/athk/ath10k/wmi.h b/sys/contrib/dev/athk/ath10k/wmi.h index 0faefc0a9a40..7f50a1de6b97 100644 --- a/sys/contrib/dev/athk/ath10k/wmi.h +++ b/sys/contrib/dev/athk/ath10k/wmi.h @@ -3,7 +3,7 @@ * Copyright (c) 2005-2011 Atheros Communications Inc. * Copyright (c) 2011-2017 Qualcomm Atheros, Inc. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved. - * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */ #ifndef _WMI_H_ @@ -7418,6 +7418,23 @@ struct wmi_pdev_bb_timing_cfg_cmd { __le32 bb_xpa_timing; } __packed; +struct wmi_ftm_seg_hdr { + __le32 len; + __le32 msgref; + __le32 segmentinfo; + __le32 pdev_id; +} __packed; + +struct wmi_ftm_cmd { + __le32 tlv_header; + struct wmi_ftm_seg_hdr seg_hdr; + u8 data[]; +} __packed; + +#define WMI_TLV_LEN GENMASK(15, 0) +#define WMI_TLV_TAG GENMASK(31, 16) +#define MAX_WMI_UTF_LEN 252 + struct ath10k; struct ath10k_vif; struct ath10k_fw_stats_pdev; diff --git a/sys/modules/ath10k/Makefile b/sys/modules/ath10k/Makefile index 98df270b6791..d8196854b681 100644 --- a/sys/modules/ath10k/Makefile +++ b/sys/modules/ath10k/Makefile @@ -29,6 +29,7 @@ SRCS+= leds.c .endif CFLAGS+= -DKBUILD_MODNAME='"ath10k"' +CFLAGS+= -DLINUXKPI_VERSION=61900 CFLAGS+= -I${DEVATH10KDIR} CFLAGS+= -I${DEVATH10KDIR}/.. From nobody Fri Feb 27 02:29: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 4fMXMn06Slz6T7hY for ; Fri, 27 Feb 2026 02:29:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMm48wwz40c9 for ; Fri, 27 Feb 2026 02:29:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LlYhCV8blHTqrfj54Ez21sndW5Xd5iUqK8eVBz+cCOQ=; b=F3rrA59eVHJ5q6WDz3I5eiXi4U5DKRdMNHUBYUx2rPk+D/ZpjRqzq1ukDu22T0Zl4Mfy/h 4hmJMMStf/B5O2nC31rYfeBD4KuO1z92InpYjACrURAKCp28G8TIoZMHbxIQE8zi1Cin8z SE1rOXlre2BuBT6fHP4JG0u0t586gdRjcy4XBxAkuQgLYtP4KFRXO2Cs7TtdyRwGHavCa0 YOmV43MkWryWO/ypef6j8mbw03Zzhf6kutu53QQ6z6/Jgm+yuoMNP7vvqt4GqdPnKpNkN6 qhw6LHLUkTnjCi4hFCmDAr1e2vgzAqQnePv6wQ77PqjmkDnU/RR7hEL6LzzcZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159364; a=rsa-sha256; cv=none; b=oma8U2RHbAIGY8BWnCYQpqivu3N93uO8OIu/fTAz7LkC+OTeZvXs12LoLlrKyPWWesBCDJ Ps8plOlQ3KzOILDhu9XV4PtDXTTiVcuEDoFqoedsvSfHpk7TPV7gVsTTJ/3HNGXe6AsDmw 80swmJG3cuQH9YERM3GRfb1Q21aeXQhLlbSsieLyev8E/kdWBFdXy1nzuOdQzJBw/sBZfY EyqH7HCfYZqHT8H4Vx6ZR0BpKDIM+PeSijqahnVxufvPypwMwTMj9o4zvISK+tmkZ6cIZS DEUc+DsWXbHMfk7ZWRiO3bwIMIl5NKBFYeqpqq+tx+VaC8ZOeQmvqrWyBa7yhw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LlYhCV8blHTqrfj54Ez21sndW5Xd5iUqK8eVBz+cCOQ=; b=DHN88tk9ZuYCaCq8YGtZtbuQy16hjqgkj0ksUiiXBQvkd+2Hu8bepYZPmEdFg/ufo4DpSY CbdOKHLSpyDwupZYuWkBPNAJQ+/kF4/wlnACDI5qMmzz79gx45Aa11JyrGSZpn5/2abo+W ElJUJe3bR2Fz/LKCeKf2Sz92wfgJB+HYR3BvuA1aoRpqJZLcJ1EzMWIhru+Yv/bh/O2gF6 xxUinq746bJsU8+xLm6TtGLdnhSGY5Yatt+XP6WY+cjl4SLo6Iuv9YOXFic5ZMWoUp6d/r GlpL8nry4unI9EtOu5qxgzZLD7d4LmYe/+mViIGA2TvijA/rC6sjkPQ7t4rtMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMm3cm6zyGk for ; Fri, 27 Feb 2026 02:29:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2129f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 3a2aabbab109 - stable/15 - mt76: update Mediatek's mt76 driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3a2aabbab109c5430e2513e6c91ac66eba457255 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:24 +0000 Message-Id: <69a10184.2129f.3669e50f@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3a2aabbab109c5430e2513e6c91ac66eba457255 commit 3a2aabbab109c5430e2513e6c91ac66eba457255 Author: Bjoern A. Zeeb AuthorDate: 2026-01-23 13:52:47 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:59:04 +0000 mt76: update Mediatek's mt76 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7 ( tag: v6.19-rc6 ). Notable change: license got switched from ISC to BSD-3-Clause-Clear. util.h is now imported from upstream given it is no longer GPL-only. See the upstream repository 909675fd4344f73aad5f75f123bd271ada2ab9fb and a96fed2825d8dfb068bf640419c619b5f2df4218. For us the new version should also help with page pools and DMA32. Sponsored by: The FreeBSD Foundation (cherry picked from commit b1bebaaba9b9c0ddfe503c43ca8e9e3917ee2c57) --- .../include/linux/soc/airoha/airoha_offload.h | 48 ++ .../common/include/linux/soc/mediatek/mtk_wed.h | 14 +- sys/contrib/dev/mediatek/mt76/Kconfig | 51 ++ sys/contrib/dev/mediatek/mt76/Makefile | 48 ++ sys/contrib/dev/mediatek/mt76/agg-rx.c | 4 +- sys/contrib/dev/mediatek/mt76/channel.c | 15 +- sys/contrib/dev/mediatek/mt76/debugfs.c | 6 +- sys/contrib/dev/mediatek/mt76/dma.c | 302 ++++++-- sys/contrib/dev/mediatek/mt76/dma.h | 98 ++- sys/contrib/dev/mediatek/mt76/eeprom.c | 87 ++- sys/contrib/dev/mediatek/mt76/mac80211.c | 65 +- sys/contrib/dev/mediatek/mt76/mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mmio.c | 20 +- sys/contrib/dev/mediatek/mt76/mt76.h | 232 +++++- sys/contrib/dev/mediatek/mt76/mt7603/Kconfig | 12 + sys/contrib/dev/mediatek/mt76/mt7603/Makefile | 7 + sys/contrib/dev/mediatek/mt76/mt7603/beacon.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/core.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/debugfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/dma.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/eeprom.c | 5 +- sys/contrib/dev/mediatek/mt76/mt7603/eeprom.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/init.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/main.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/mcu.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/mt7603.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7603/soc.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7615/Kconfig | 56 ++ sys/contrib/dev/mediatek/mt76/mt7615/Makefile | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/debugfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/dma.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/eeprom.c | 6 +- sys/contrib/dev/mediatek/mt76/mt7615/eeprom.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/init.c | 7 +- sys/contrib/dev/mediatek/mt76/mt7615/mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/main.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/mcu.c | 6 +- sys/contrib/dev/mediatek/mt76/mt7615/mcu.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/mmio.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/mt7615.h | 2 +- .../dev/mediatek/mt76/mt7615/mt7615_trace.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/pci_init.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/pci_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/sdio.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/soc.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/testmode.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/trace.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/usb.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7615/usb_sdio.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76_connac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76_connac2_mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76_connac3_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76_connac3_mac.h | 9 +- sys/contrib/dev/mediatek/mt76/mt76_connac_mac.c | 21 +- sys/contrib/dev/mediatek/mt76/mt76_connac_mcu.c | 39 +- sys/contrib/dev/mediatek/mt76/mt76_connac_mcu.h | 4 +- sys/contrib/dev/mediatek/mt76/mt76x0/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x0/pci_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x0/usb_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_beacon.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_debugfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_dfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_dfs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_dma.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_eeprom.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_eeprom.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_mcu.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_mmio.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_phy.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_phy.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_trace.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_trace.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_txrx.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_usb.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_usb_core.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_usb_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x02_util.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/Kconfig | 29 + sys/contrib/dev/mediatek/mt76/mt76x2/Makefile | 15 + sys/contrib/dev/mediatek/mt76/mt76x2/eeprom.c | 6 +- sys/contrib/dev/mediatek/mt76/mt76x2/eeprom.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/init.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/mcu.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/mt76x2.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/mt76x2u.h | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/pci_init.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/pci_main.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/pci_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/pci_phy.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/phy.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb_init.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb_main.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt76x2/usb_phy.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/Kconfig | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/Makefile | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/coredump.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/coredump.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/debugfs.c | 76 +- sys/contrib/dev/mediatek/mt76/mt7915/dma.c | 6 +- sys/contrib/dev/mediatek/mt76/mt7915/eeprom.c | 6 +- sys/contrib/dev/mediatek/mt76/mt7915/eeprom.h | 8 +- sys/contrib/dev/mediatek/mt76/mt7915/init.c | 13 +- sys/contrib/dev/mediatek/mt76/mt7915/mac.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7915/mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/main.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7915/mcu.c | 203 +++-- sys/contrib/dev/mediatek/mt76/mt7915/mcu.h | 8 +- sys/contrib/dev/mediatek/mt76/mt7915/mmio.c | 8 +- sys/contrib/dev/mediatek/mt76/mt7915/mt7915.h | 11 +- sys/contrib/dev/mediatek/mt76/mt7915/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/soc.c | 23 +- sys/contrib/dev/mediatek/mt76/mt7915/testmode.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7915/testmode.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/Kconfig | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/Makefile | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/debugfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/init.c | 8 +- sys/contrib/dev/mediatek/mt76/mt7921/mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/main.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7921/mcu.c | 4 +- sys/contrib/dev/mediatek/mt76/mt7921/mcu.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/mt7921.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/pci_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/pci_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/sdio.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/sdio_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/sdio_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/testmode.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/usb.c | 5 +- sys/contrib/dev/mediatek/mt76/mt7925/Kconfig | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/Makefile | 4 +- sys/contrib/dev/mediatek/mt76/mt7925/debugfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/init.c | 156 +--- sys/contrib/dev/mediatek/mt76/mt7925/mac.c | 6 +- sys/contrib/dev/mediatek/mt76/mt7925/mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/main.c | 107 +-- sys/contrib/dev/mediatek/mt76/mt7925/mcu.c | 127 +++- sys/contrib/dev/mediatek/mt76/mt7925/mcu.h | 10 +- sys/contrib/dev/mediatek/mt76/mt7925/mt7925.h | 11 +- sys/contrib/dev/mediatek/mt76/mt7925/pci.c | 41 +- sys/contrib/dev/mediatek/mt76/mt7925/pci_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/pci_mcu.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/regd.c | 265 +++++++ sys/contrib/dev/mediatek/mt76/mt7925/regd.h | 19 + sys/contrib/dev/mediatek/mt76/mt7925/regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/testmode.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/usb.c | 5 +- sys/contrib/dev/mediatek/mt76/mt792x.h | 5 +- sys/contrib/dev/mediatek/mt76/mt792x_acpi_sar.c | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_acpi_sar.h | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_core.c | 9 +- sys/contrib/dev/mediatek/mt76/mt792x_debugfs.c | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_dma.c | 8 +- sys/contrib/dev/mediatek/mt76/mt792x_mac.c | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_regs.h | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_trace.c | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_trace.h | 2 +- sys/contrib/dev/mediatek/mt76/mt792x_usb.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7996/Kconfig | 9 +- sys/contrib/dev/mediatek/mt76/mt7996/Makefile | 3 +- sys/contrib/dev/mediatek/mt76/mt7996/coredump.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7996/coredump.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7996/debugfs.c | 74 +- sys/contrib/dev/mediatek/mt76/mt7996/dma.c | 343 +++++++-- sys/contrib/dev/mediatek/mt76/mt7996/eeprom.c | 5 +- sys/contrib/dev/mediatek/mt76/mt7996/eeprom.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7996/init.c | 390 +++++++--- sys/contrib/dev/mediatek/mt76/mt7996/mac.c | 836 +++++++++++++++++---- sys/contrib/dev/mediatek/mt76/mt7996/mac.h | 2 +- sys/contrib/dev/mediatek/mt76/mt7996/main.c | 614 +++++++++------ sys/contrib/dev/mediatek/mt76/mt7996/mcu.c | 378 +++++----- sys/contrib/dev/mediatek/mt76/mt7996/mcu.h | 19 +- sys/contrib/dev/mediatek/mt76/mt7996/mmio.c | 113 ++- sys/contrib/dev/mediatek/mt76/mt7996/mt7996.h | 144 +++- sys/contrib/dev/mediatek/mt76/mt7996/pci.c | 10 +- sys/contrib/dev/mediatek/mt76/mt7996/regs.h | 34 +- sys/contrib/dev/mediatek/mt76/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/scan.c | 15 +- sys/contrib/dev/mediatek/mt76/sdio.c | 2 +- sys/contrib/dev/mediatek/mt76/sdio.h | 2 +- sys/contrib/dev/mediatek/mt76/sdio_txrx.c | 2 +- sys/contrib/dev/mediatek/mt76/testmode.c | 2 +- sys/contrib/dev/mediatek/mt76/testmode.h | 2 +- sys/contrib/dev/mediatek/mt76/trace.c | 2 +- sys/contrib/dev/mediatek/mt76/trace.h | 2 +- sys/contrib/dev/mediatek/mt76/tx.c | 11 +- sys/contrib/dev/mediatek/mt76/usb.c | 2 +- sys/contrib/dev/mediatek/mt76/usb_trace.c | 2 +- sys/contrib/dev/mediatek/mt76/usb_trace.h | 2 +- sys/contrib/dev/mediatek/mt76/util.c | 2 +- sys/contrib/dev/mediatek/mt76/util.h | 132 ++-- sys/contrib/dev/mediatek/mt76/wed.c | 20 +- sys/modules/mt76/Makefile.inc | 3 +- sys/modules/mt76/mt7925/Makefile | 2 +- 217 files changed, 4191 insertions(+), 1624 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/soc/airoha/airoha_offload.h b/sys/compat/linuxkpi/common/include/linux/soc/airoha/airoha_offload.h new file mode 100644 index 000000000000..ade0b06d839f --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/soc/airoha/airoha_offload.h @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2026 Bjoern A. Zeeb + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef _LINUXKPI_LINUX_SOC_AIROHA_AIROHA_OFFLOAD_H +#define _LINUXKPI_LINUX_SOC_AIROHA_AIROHA_OFFLOAD_H + +#include /* pr_debug */ + +enum airoha_npu_wlan_get_cmd { + __dummy_airoha_npu_wlan_get_cmd, +}; +enum airoha_npu_wlan_set_cmd { + __dummy_airoha_npu_wlan_set_cmd, +}; + +struct airoha_npu { +}; +struct airoha_npu_rx_dma_desc { +}; +struct airoha_npu_tx_dma_desc { +}; + +static __inline int +airoha_npu_wlan_send_msg(void *npu, int ifindex, + enum airoha_npu_wlan_set_cmd cmd, void *val, size_t len, gfp_t gfp) +{ + pr_debug("%s: TODO\n", __func__); + return (-EOPNOTSUPP); +} + +static __inline int +airoha_npu_wlan_get_msg(void *npu, int ifindex, + enum airoha_npu_wlan_get_cmd cmd, void *val, size_t len, gfp_t gfp) +{ + pr_debug("%s: TODO\n", __func__); + return (-EOPNOTSUPP); +} + +static __inline void +airoha_npu_wlan_enable_irq(struct airoha_npu *npu, int q) +{ + pr_debug("%s: TODO\n", __func__); +} + +#endif /* _LINUXKPI_LINUX_SOC_AIROHA_AIROHA_OFFLOAD_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h b/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h index 2b9c6ae4911e..64daa8c78c9d 100644 --- a/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h +++ b/sys/compat/linuxkpi/common/include/linux/soc/mediatek/mtk_wed.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2022-2025 Bjoern A. Zeeb + * Copyright (c) 2022-2026 Bjoern A. Zeeb * * SPDX-License-Identifier: BSD-2-Clause */ @@ -37,7 +37,13 @@ mtk_wed_device_active(struct mtk_wed_device *dev __unused) static inline bool mtk_wed_get_rx_capa(struct mtk_wed_device *dev __unused) { + pr_debug("%s: TODO\n", __func__); + return (false); +} +static inline bool +mtk_wed_is_amsdu_supported(struct mtk_wed_device *dev __unused) +{ pr_debug("%s: TODO\n", __func__); return (false); } @@ -66,6 +72,12 @@ mtk_wed_get_rx_capa(struct mtk_wed_device *dev __unused) { return (false); } + +static inline bool +mtk_wed_is_amsdu_supported(struct mtk_wed_device *dev __unused) +{ + return (false); +} #endif /* CONFIG_NET_MEDIATEK_SOC_WED */ #endif /* _LINUXKPI_LINUX_SOC_MEDIATEK_MTK_WED_H */ diff --git a/sys/contrib/dev/mediatek/mt76/Kconfig b/sys/contrib/dev/mediatek/mt76/Kconfig new file mode 100644 index 000000000000..502303622a53 --- /dev/null +++ b/sys/contrib/dev/mediatek/mt76/Kconfig @@ -0,0 +1,51 @@ +# SPDX-License-Identifier: BSD-3-Clause-Clear +config MT76_CORE + tristate + select PAGE_POOL + +config MT76_LEDS + bool + depends on MT76_CORE + depends on LEDS_CLASS=y || MT76_CORE=LEDS_CLASS + default y + +config MT76_USB + tristate + depends on MT76_CORE + +config MT76_SDIO + tristate + depends on MT76_CORE + +config MT76x02_LIB + tristate + select MT76_CORE + +config MT76x02_USB + tristate + select MT76_USB + +config MT76_CONNAC_LIB + tristate + select MT76_CORE + +config MT792x_LIB + tristate + select MT76_CONNAC_LIB + +config MT792x_USB + tristate + select MT76_USB + +config MT76_NPU + bool + depends on MT76_CORE + +source "drivers/net/wireless/mediatek/mt76/mt76x0/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt76x2/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt7603/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt7615/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt7915/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt7921/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt7996/Kconfig" +source "drivers/net/wireless/mediatek/mt76/mt7925/Kconfig" diff --git a/sys/contrib/dev/mediatek/mt76/Makefile b/sys/contrib/dev/mediatek/mt76/Makefile new file mode 100644 index 000000000000..1d42adfe8030 --- /dev/null +++ b/sys/contrib/dev/mediatek/mt76/Makefile @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: BSD-3-Clause-Clear +obj-$(CONFIG_MT76_CORE) += mt76.o +obj-$(CONFIG_MT76_USB) += mt76-usb.o +obj-$(CONFIG_MT76_SDIO) += mt76-sdio.o +obj-$(CONFIG_MT76x02_LIB) += mt76x02-lib.o +obj-$(CONFIG_MT76x02_USB) += mt76x02-usb.o +obj-$(CONFIG_MT76_CONNAC_LIB) += mt76-connac-lib.o +obj-$(CONFIG_MT792x_LIB) += mt792x-lib.o +obj-$(CONFIG_MT792x_USB) += mt792x-usb.o + +mt76-y := \ + mmio.o util.o trace.o dma.o mac80211.o debugfs.o eeprom.o \ + tx.o agg-rx.o mcu.o wed.o scan.o channel.o + +mt76-$(CONFIG_MT76_NPU) += npu.o +mt76-$(CONFIG_PCI) += pci.o +mt76-$(CONFIG_NL80211_TESTMODE) += testmode.o + +mt76-usb-y := usb.o usb_trace.o +mt76-sdio-y := sdio.o sdio_txrx.o + +CFLAGS_trace.o := -I$(src) +CFLAGS_usb_trace.o := -I$(src) +CFLAGS_mt76x02_trace.o := -I$(src) +CFLAGS_mt792x_trace.o := -I$(src) + +mt76x02-lib-y := mt76x02_util.o mt76x02_mac.o mt76x02_mcu.o \ + mt76x02_eeprom.o mt76x02_phy.o mt76x02_mmio.o \ + mt76x02_txrx.o mt76x02_trace.o mt76x02_debugfs.o \ + mt76x02_dfs.o mt76x02_beacon.o + +mt76x02-usb-y := mt76x02_usb_mcu.o mt76x02_usb_core.o + +mt76-connac-lib-y := mt76_connac_mcu.o mt76_connac_mac.o mt76_connac3_mac.o + +mt792x-lib-y := mt792x_core.o mt792x_mac.o mt792x_trace.o \ + mt792x_debugfs.o mt792x_dma.o +mt792x-lib-$(CONFIG_ACPI) += mt792x_acpi_sar.o +mt792x-usb-y := mt792x_usb.o + +obj-$(CONFIG_MT76x0_COMMON) += mt76x0/ +obj-$(CONFIG_MT76x2_COMMON) += mt76x2/ +obj-$(CONFIG_MT7603E) += mt7603/ +obj-$(CONFIG_MT7615_COMMON) += mt7615/ +obj-$(CONFIG_MT7915E) += mt7915/ +obj-$(CONFIG_MT7921_COMMON) += mt7921/ +obj-$(CONFIG_MT7996E) += mt7996/ +obj-$(CONFIG_MT7925_COMMON) += mt7925/ diff --git a/sys/contrib/dev/mediatek/mt76/agg-rx.c b/sys/contrib/dev/mediatek/mt76/agg-rx.c index 07c386c7b4d0..3d34caf7e4f7 100644 --- a/sys/contrib/dev/mediatek/mt76/agg-rx.c +++ b/sys/contrib/dev/mediatek/mt76/agg-rx.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: ISC +// SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (C) 2018 Felix Fietkau */ @@ -173,6 +173,8 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames) if (ackp == IEEE80211_QOS_CTL_ACK_POLICY_NOACK) return; + if (wcid->def_wcid) + wcid = wcid->def_wcid; tid = rcu_dereference(wcid->aggr[tidno]); if (!tid) return; diff --git a/sys/contrib/dev/mediatek/mt76/channel.c b/sys/contrib/dev/mediatek/mt76/channel.c index 77b75792eb48..2b705bdb7993 100644 --- a/sys/contrib/dev/mediatek/mt76/channel.c +++ b/sys/contrib/dev/mediatek/mt76/channel.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: ISC +// SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (C) 2024 Felix Fietkau */ @@ -314,21 +314,24 @@ void mt76_put_vif_phy_link(struct mt76_phy *phy, struct ieee80211_vif *vif, kfree(mlink); } -static void mt76_roc_complete(struct mt76_phy *phy) +void mt76_roc_complete(struct mt76_phy *phy) { struct mt76_vif_link *mlink = phy->roc_link; + struct mt76_dev *dev = phy->dev; if (!phy->roc_vif) return; if (mlink) mlink->mvif->roc_phy = NULL; - if (phy->main_chandef.chan) + if (phy->main_chandef.chan && + !test_bit(MT76_MCU_RESET, &dev->phy.state)) mt76_set_channel(phy, &phy->main_chandef, false); mt76_put_vif_phy_link(phy, phy->roc_vif, phy->roc_link); phy->roc_vif = NULL; phy->roc_link = NULL; - ieee80211_remain_on_channel_expired(phy->hw); + if (!test_bit(MT76_MCU_RESET, &dev->phy.state)) + ieee80211_remain_on_channel_expired(phy->hw); } void mt76_roc_complete_work(struct work_struct *work) @@ -351,6 +354,7 @@ void mt76_abort_roc(struct mt76_phy *phy) mt76_roc_complete(phy); mutex_unlock(&dev->mutex); } +EXPORT_SYMBOL_GPL(mt76_abort_roc); int mt76_remain_on_channel(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_channel *chan, int duration, @@ -368,7 +372,8 @@ int mt76_remain_on_channel(struct ieee80211_hw *hw, struct ieee80211_vif *vif, mutex_lock(&dev->mutex); - if (phy->roc_vif || dev->scan.phy == phy) { + if (phy->roc_vif || dev->scan.phy == phy || + test_bit(MT76_MCU_RESET, &dev->phy.state)) { ret = -EBUSY; goto out; } diff --git a/sys/contrib/dev/mediatek/mt76/debugfs.c b/sys/contrib/dev/mediatek/mt76/debugfs.c index b6a2746c187d..a5ac6ca86735 100644 --- a/sys/contrib/dev/mediatek/mt76/debugfs.c +++ b/sys/contrib/dev/mediatek/mt76/debugfs.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: ISC +// SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (C) 2016 Felix Fietkau */ @@ -93,9 +93,9 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str, { int i; - seq_printf(file, "%10s:", str); + seq_printf(file, "%16s:", str); for (i = 0; i < len; i++) - seq_printf(file, " %2d", val[i]); + seq_printf(file, " %4d", val[i]); seq_puts(file, "\n"); } EXPORT_SYMBOL_GPL(mt76_seq_puts_array); diff --git a/sys/contrib/dev/mediatek/mt76/dma.c b/sys/contrib/dev/mediatek/mt76/dma.c index af902a761e42..5c04a0dce1fa 100644 --- a/sys/contrib/dev/mediatek/mt76/dma.c +++ b/sys/contrib/dev/mediatek/mt76/dma.c @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: ISC +// SPDX-License-Identifier: BSD-3-Clause-Clear /* * Copyright (C) 2016 Felix Fietkau */ @@ -11,37 +11,6 @@ #include "mt76.h" #include "dma.h" -#if IS_ENABLED(CONFIG_NET_MEDIATEK_SOC_WED) - -#define Q_READ(_q, _field) ({ \ - u32 _offset = offsetof(struct mt76_queue_regs, _field); \ - u32 _val; \ - if ((_q)->flags & MT_QFLAG_WED) \ - _val = mtk_wed_device_reg_read((_q)->wed, \ - ((_q)->wed_regs + \ - _offset)); \ - else \ - _val = readl(&(_q)->regs->_field); \ - _val; \ -}) - -#define Q_WRITE(_q, _field, _val) do { \ - u32 _offset = offsetof(struct mt76_queue_regs, _field); \ - if ((_q)->flags & MT_QFLAG_WED) \ - mtk_wed_device_reg_write((_q)->wed, \ - ((_q)->wed_regs + _offset), \ - _val); \ - else \ - writel(_val, &(_q)->regs->_field); \ -} while (0) - -#else - -#define Q_READ(_q, _field) readl(&(_q)->regs->_field) -#define Q_WRITE(_q, _field, _val) writel(_val, &(_q)->regs->_field) - -#endif - static struct mt76_txwi_cache * mt76_alloc_txwi(struct mt76_dev *dev) { @@ -189,25 +158,62 @@ mt76_free_pending_rxwi(struct mt76_dev *dev) } EXPORT_SYMBOL_GPL(mt76_free_pending_rxwi); +static void +mt76_dma_queue_magic_cnt_init(struct mt76_dev *dev, struct mt76_queue *q) +{ + if (!mt76_queue_is_wed_rro(q)) + return; + + q->magic_cnt = 0; + if (mt76_queue_is_wed_rro_ind(q)) { + struct mt76_wed_rro_desc *rro_desc; + u32 data1 = FIELD_PREP(RRO_IND_DATA1_MAGIC_CNT_MASK, + MT_DMA_WED_IND_CMD_CNT - 1); + int i; + + rro_desc = (struct mt76_wed_rro_desc *)q->desc; + for (i = 0; i < q->ndesc; i++) { + struct mt76_wed_rro_ind *cmd; + + cmd = (struct mt76_wed_rro_ind *)&rro_desc[i]; + cmd->data1 = cpu_to_le32(data1); + } + } else if (mt76_queue_is_wed_rro_rxdmad_c(q)) { + struct mt76_rro_rxdmad_c *dmad = (void *)q->desc; + u32 data3 = FIELD_PREP(RRO_RXDMAD_DATA3_MAGIC_CNT_MASK, + MT_DMA_MAGIC_CNT - 1); + int i; + + for (i = 0; i < q->ndesc; i++) + dmad[i].data3 = cpu_to_le32(data3); + } +} + static void mt76_dma_sync_idx(struct mt76_dev *dev, struct mt76_queue *q) { Q_WRITE(q, desc_base, q->desc_dma); - if (q->flags & MT_QFLAG_WED_RRO_EN) + if ((q->flags & MT_QFLAG_WED_RRO_EN) && !mt76_npu_device_active(dev)) Q_WRITE(q, ring_size, MT_DMA_RRO_EN | q->ndesc); else Q_WRITE(q, ring_size, q->ndesc); + + if (mt76_queue_is_npu_tx(q)) { + writel(q->desc_dma, &q->regs->desc_base); + writel(q->ndesc, &q->regs->ring_size); + } q->head = Q_READ(q, dma_idx); q->tail = q->head; } -void __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, - bool reset_idx) +void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, + bool reset_idx) { if (!q || !q->ndesc) return; - if (!mt76_queue_is_wed_rro_ind(q)) { + if (!mt76_queue_is_wed_rro_ind(q) && + !mt76_queue_is_wed_rro_rxdmad_c(q) && !mt76_queue_is_npu(q)) { int i; /* clear descriptors */ @@ -215,27 +221,26 @@ void __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE); } + mt76_dma_queue_magic_cnt_init(dev, q); if (reset_idx) { - Q_WRITE(q, cpu_idx, 0); + if (mt76_queue_is_emi(q)) + *q->emi_cpu_idx = 0; + else + Q_WRITE(q, cpu_idx, 0); Q_WRITE(q, dma_idx, 0); } mt76_dma_sync_idx(dev, q); } -void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q) -{ - __mt76_dma_queue_reset(dev, q, true); -} - static int mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q, struct mt76_queue_buf *buf, void *data) { struct mt76_queue_entry *entry = &q->entry[q->head]; struct mt76_txwi_cache *txwi = NULL; + u32 buf1 = 0, ctrl, info = 0; struct mt76_desc *desc; int idx = q->head; - u32 buf1 = 0, ctrl; int rx_token; if (mt76_queue_is_wed_rro_ind(q)) { @@ -244,6 +249,9 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q, rro_desc = (struct mt76_wed_rro_desc *)q->desc; data = &rro_desc[q->head]; goto done; + } else if (mt76_queue_is_wed_rro_rxdmad_c(q)) { + data = &q->desc[q->head]; + goto done; } desc = &q->desc[q->head]; @@ -252,7 +260,7 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q, buf1 = FIELD_PREP(MT_DMA_CTL_SDP0_H, buf->addr >> 32); #endif - if (mt76_queue_is_wed_rx(q)) { + if (mt76_queue_is_wed_rx(q) || mt76_queue_is_wed_rro_data(q)) { txwi = mt76_get_rxwi(dev); if (!txwi) return -ENOMEM; @@ -265,12 +273,26 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q, buf1 |= FIELD_PREP(MT_DMA_CTL_TOKEN, rx_token); ctrl |= MT_DMA_CTL_TO_HOST; + + txwi->qid = q - dev->q_rx; + } + + if (mt76_queue_is_wed_rro_msdu_pg(q) && + dev->drv->rx_rro_add_msdu_page) { + if (dev->drv->rx_rro_add_msdu_page(dev, q, buf->addr, data)) + return -ENOMEM; + } + + if (q->flags & MT_QFLAG_WED_RRO_EN) { + info |= FIELD_PREP(MT_DMA_MAGIC_MASK, q->magic_cnt); + if ((q->head + 1) == q->ndesc) + q->magic_cnt = (q->magic_cnt + 1) % MT_DMA_MAGIC_CNT; } WRITE_ONCE(desc->buf0, cpu_to_le32(buf->addr)); WRITE_ONCE(desc->buf1, cpu_to_le32(buf1)); WRITE_ONCE(desc->ctrl, cpu_to_le32(ctrl)); - WRITE_ONCE(desc->info, 0); + WRITE_ONCE(desc->info, cpu_to_le32(info)); done: entry->dma_addr[0] = buf->addr; @@ -379,7 +401,10 @@ static void mt76_dma_kick_queue(struct mt76_dev *dev, struct mt76_queue *q) { wmb(); - Q_WRITE(q, cpu_idx, q->head); + if (mt76_queue_is_emi(q)) + *q->emi_cpu_idx = cpu_to_le16(q->head); + else + Q_WRITE(q, cpu_idx, q->head); } static void @@ -399,6 +424,7 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush) while (q->queued > 0 && q->tail != last) { mt76_dma_tx_cleanup_idx(dev, q, q->tail, &entry); + mt76_npu_txdesc_cleanup(q, q->tail); mt76_queue_tx_complete(dev, q, &entry); if (entry.txwi) { @@ -422,16 +448,62 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush) wake_up(&dev->tx_wait); } +static void * +mt76_dma_get_rxdmad_c_buf(struct mt76_dev *dev, struct mt76_queue *q, + int idx, int *len, bool *more) +{ + struct mt76_queue_entry *e = &q->entry[idx]; + struct mt76_rro_rxdmad_c *dmad = e->buf; + u32 data1 = le32_to_cpu(dmad->data1); + u32 data2 = le32_to_cpu(dmad->data2); + struct mt76_txwi_cache *t; + u16 rx_token_id; + u8 ind_reason; + void *buf; + + rx_token_id = FIELD_GET(RRO_RXDMAD_DATA2_RX_TOKEN_ID_MASK, data2); + t = mt76_rx_token_release(dev, rx_token_id); + if (!t) + return ERR_PTR(-EAGAIN); + + q = &dev->q_rx[t->qid]; + dma_sync_single_for_cpu(dev->dma_dev, t->dma_addr, + SKB_WITH_OVERHEAD(q->buf_size), + page_pool_get_dma_dir(q->page_pool)); + + if (len) + *len = FIELD_GET(RRO_RXDMAD_DATA1_SDL0_MASK, data1); + if (more) + *more = !FIELD_GET(RRO_RXDMAD_DATA1_LS_MASK, data1); + + buf = t->ptr; + ind_reason = FIELD_GET(RRO_RXDMAD_DATA2_IND_REASON_MASK, data2); + if (ind_reason == MT_DMA_WED_IND_REASON_REPEAT || + ind_reason == MT_DMA_WED_IND_REASON_OLDPKT) { + mt76_put_page_pool_buf(buf, false); + buf = ERR_PTR(-EAGAIN); + } + t->ptr = NULL; + t->dma_addr = 0; + + mt76_put_rxwi(dev, t); + + return buf; +} + static void * mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx, - int *len, u32 *info, bool *more, bool *drop) + int *len, u32 *info, bool *more, bool *drop, bool flush) { struct mt76_queue_entry *e = &q->entry[idx]; struct mt76_desc *desc = &q->desc[idx]; u32 ctrl, desc_info, buf1; void *buf = e->buf; - if (mt76_queue_is_wed_rro_ind(q)) + if (mt76_queue_is_wed_rro_rxdmad_c(q) && !flush) + buf = mt76_dma_get_rxdmad_c_buf(dev, q, idx, len, more); + + if (mt76_queue_is_wed_rro(q)) goto done; ctrl = le32_to_cpu(READ_ONCE(desc->ctrl)); @@ -486,20 +558,50 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush, if (!q->queued) return NULL; - if (mt76_queue_is_wed_rro_data(q)) - return NULL; + if (mt76_queue_is_wed_rro_data(q) || mt76_queue_is_wed_rro_msdu_pg(q)) + goto done; + + if (mt76_queue_is_wed_rro_ind(q)) { + struct mt76_wed_rro_ind *cmd; + u8 magic_cnt; - if (!mt76_queue_is_wed_rro_ind(q)) { + if (flush) + goto done; + + cmd = q->entry[idx].buf; + magic_cnt = FIELD_GET(RRO_IND_DATA1_MAGIC_CNT_MASK, + le32_to_cpu(cmd->data1)); + if (magic_cnt != q->magic_cnt) + return NULL; + + if (q->tail == q->ndesc - 1) + q->magic_cnt = (q->magic_cnt + 1) % MT_DMA_WED_IND_CMD_CNT; + } else if (mt76_queue_is_wed_rro_rxdmad_c(q)) { + struct mt76_rro_rxdmad_c *dmad; + u16 magic_cnt; + + if (flush) + goto done; + + dmad = q->entry[idx].buf; + magic_cnt = FIELD_GET(RRO_RXDMAD_DATA3_MAGIC_CNT_MASK, + le32_to_cpu(dmad->data3)); + if (magic_cnt != q->magic_cnt) + return NULL; + + if (q->tail == q->ndesc - 1) + q->magic_cnt = (q->magic_cnt + 1) % MT_DMA_MAGIC_CNT; + } else { if (flush) q->desc[idx].ctrl |= cpu_to_le32(MT_DMA_CTL_DMA_DONE); else if (!(q->desc[idx].ctrl & cpu_to_le32(MT_DMA_CTL_DMA_DONE))) return NULL; } - +done: q->tail = (q->tail + 1) % q->ndesc; q->queued--; - return mt76_dma_get_buf(dev, q, idx, len, info, more, drop); + return mt76_dma_get_buf(dev, q, idx, len, info, more, drop, flush); } static int @@ -557,6 +659,10 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q, if (test_bit(MT76_RESET, &phy->state)) goto free_skb; + /* TODO: Take into account unlinear skbs */ + if (mt76_npu_device_active(dev) && skb_linearize(skb)) + goto free_skb; + t = mt76_get_txwi(dev); if (!t) goto free_skb; @@ -604,6 +710,9 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q, if (ret < 0) goto unmap; + if (mt76_npu_device_active(dev)) + return mt76_npu_dma_add_buf(phy, q, skb, &tx_info.buf[1], txwi); + return mt76_dma_add_buf(dev, q, tx_info.buf, tx_info.nbuf, tx_info.info, tx_info.skb, t); @@ -650,7 +759,8 @@ mt76_dma_rx_fill_buf(struct mt76_dev *dev, struct mt76_queue *q, void *buf = NULL; int offset; - if (mt76_queue_is_wed_rro_ind(q)) + if (mt76_queue_is_wed_rro_ind(q) || + mt76_queue_is_wed_rro_rxdmad_c(q)) goto done; buf = mt76_get_page_pool_buf(q, &offset, q->buf_size); @@ -680,9 +790,6 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q, { int frames; - if (!q->ndesc) - return 0; - spin_lock_bh(&q->lock); frames = mt76_dma_rx_fill_buf(dev, q, allow_direct); spin_unlock_bh(&q->lock); @@ -708,27 +815,23 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q, q->ndesc = n_desc; q->buf_size = bufsize; q->hw_idx = idx; + q->dev = dev; + + if (mt76_queue_is_wed_rro_ind(q)) + size = sizeof(struct mt76_wed_rro_desc); + else if (mt76_queue_is_npu_tx(q)) + size = sizeof(struct airoha_npu_tx_dma_desc); + else if (mt76_queue_is_npu_rx(q)) + size = sizeof(struct airoha_npu_rx_dma_desc); + else + size = sizeof(struct mt76_desc); - size = mt76_queue_is_wed_rro_ind(q) ? sizeof(struct mt76_wed_rro_desc) - : sizeof(struct mt76_desc); q->desc = dmam_alloc_coherent(dev->dma_dev, q->ndesc * size, &q->desc_dma, GFP_KERNEL); if (!q->desc) return -ENOMEM; - if (mt76_queue_is_wed_rro_ind(q)) { - struct mt76_wed_rro_desc *rro_desc; - int i; - - rro_desc = (struct mt76_wed_rro_desc *)q->desc; - for (i = 0; i < q->ndesc; i++) { - struct mt76_wed_rro_ind *cmd; - - cmd = (struct mt76_wed_rro_ind *)&rro_desc[i]; - cmd->magic_cnt = MT_DMA_WED_IND_CMD_CNT - 1; - } - } - + mt76_dma_queue_magic_cnt_init(dev, q); size = q->ndesc * sizeof(*q->entry); q->entry = devm_kzalloc(dev->dev, size, GFP_KERNEL); if (!q->entry) @@ -738,6 +841,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q, if (ret) return ret; + mt76_npu_queue_setup(dev, q); ret = mt76_wed_dma_setup(dev, q, false); if (ret) return ret; @@ -748,7 +852,10 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q, return 0; } - mt76_dma_queue_reset(dev, q); + /* HW specific driver is supposed to reset brand-new EMI queues since + * it needs to set cpu index pointer. + */ + mt76_dma_queue_reset(dev, q, !mt76_queue_is_emi(q)); return 0; } @@ -762,6 +869,11 @@ mt76_dma_rx_cleanup(struct mt76_dev *dev, struct mt76_queue *q) if (!q->ndesc) return; *** 10208 LINES SKIPPED *** From nobody Fri Feb 27 02:29: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 4fMXMn69m2z6T7TM for ; Fri, 27 Feb 2026 02:29:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMn4xpjz40cN for ; Fri, 27 Feb 2026 02:29:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y7tG64tSYOJllGq67LFvXrGBbo/9UneP+JHoVdNkxbI=; b=jFgh8+N+hpCgxrkL4eMVK5WOw0P28O0ftw5IDXJYnkdtyWMuW7o938X8QazVIkszXucot/ Q7kyHMF2bL2fspDgbX/lgPozoB9fqP36AHGJ/X/utUE/FutMpu58NNPkPpl6gyvqCJdOun 5oI75n+flWATT58zdtgbvE39mhvaVcUA7zoYwvHyTMJYcpAV8n5s9C8XN+bqhenCoNug8f I+DUkROnq6fepQQ87Cg84HHNTj/rat/V950a6dfT6ITp1pu69HNbG9KFPPgZnNddWgVG6c RM6Kt/MkQqTF0cuoApebns5K0f7LCem0eJlNcWmiis2Ony0QBX1wfu1zeU96Bg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159365; a=rsa-sha256; cv=none; b=w01Bouifl5LIiMQ3IMTEz7ruR3M6OrKf7gXg9sFvIdJTIU1L7aQEIxH4CDGJPNfnWidod3 FkKSoFpSWjfqj1KbHqX2mnbfJ6hnZiXPimsSgZSYsFV5fAuyoxwdDxRjxjjDHxRyEDxbrV j00cHoVCsn7FSqnwxvDCWhAjcw708X8Yf5tQQWxYov3ShfiaGjJPLbRSQo7vp8DiDf/Z6p P9y2UOe6DeGr4apQkJBZsC3qitgJMic9tRWm7dKBNI+E9VHxkydV04JUvgw/4N+ZpZC5Ip NYHW8a4CSaYeBJOeirXw1J9FL3kVebITBf7U44uRLAZHSy8hNDEFG5DBIawQLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y7tG64tSYOJllGq67LFvXrGBbo/9UneP+JHoVdNkxbI=; b=AgjutkZJInkIP0yUgINuSZy4z6KUYlmGixdV0PBDNG0ggqwackq/gM/q0SKUmA9gWrgC7L NzHl5xBc12yrvlXBbH8H0Y96zLVEQ0MkPGFJOErBGop794Z0A0s1nf/eXZ9vJ7SwW1IwPG lnSTYYI2J41UzqIorFsL2VPvFwGlDlK9IzL/0zoWIYtiGDTXMNPVJsdODUclHHTynqsIXv mFezkdR4x166sWadVPVPjya/aJ4xtp2FCuUMG7lVftX7OrYgjT0p6MclsUlpLO6WIQtf5/ YccVjjQLiecRunX0WxQEpSYkLGF9j/U24CW8575E+w84Km8hzMCekUiXh4a93A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMn4NvdzxwB for ; Fri, 27 Feb 2026 02:29:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20476 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 18a67c10488a - stable/15 - LinuxKPI: PTP add (*settime64) to struct ptp_clock_info List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 18a67c10488a87297878c9cb6f56a08a55f56995 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:25 +0000 Message-Id: <69a10185.20476.4faf7875@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=18a67c10488a87297878c9cb6f56a08a55f56995 commit 18a67c10488a87297878c9cb6f56a08a55f56995 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 18:58:22 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:59:13 +0000 LinuxKPI: PTP add (*settime64) to struct ptp_clock_info While iwlwifi supportes PTP, LinuxKPI does not and we only add the definitons to avoid mangling upstream drivers. iwlwifi(4) does not even support the (*settime64) callback but only returns -EOPNOTSUPP. Sponosred by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D54802 (cherry picked from commit bf4aa758dd79dcb3f5d5abde79d679d17b18afa0) --- sys/compat/linuxkpi/common/include/linux/ptp_clock_kernel.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/compat/linuxkpi/common/include/linux/ptp_clock_kernel.h b/sys/compat/linuxkpi/common/include/linux/ptp_clock_kernel.h index aad46cc25b1b..6491cbeab7e2 100644 --- a/sys/compat/linuxkpi/common/include/linux/ptp_clock_kernel.h +++ b/sys/compat/linuxkpi/common/include/linux/ptp_clock_kernel.h @@ -49,6 +49,7 @@ struct ptp_clock_info { int (*adjtime)(struct ptp_clock_info *, s64); int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); int (*gettime64)(struct ptp_clock_info *, struct timespec *); + int (*settime64)(struct ptp_clock_info *, const struct timespec *); }; static inline struct ptp_clock * From nobody Fri Feb 27 02:29: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 4fMXMq2BWTz6T7fN for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMp6tLWz40S8 for ; Fri, 27 Feb 2026 02:29:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EIKHa518uwXbkKEtXnYFMV8wJnLPO7G4lKuhcAAnKcE=; b=FSUdXZipUI7jMSM+otbKz9QMSGl4JCVx7C0fCWgpr3k+nIwRkpPZwuUSIV7kThChluGJ0b c5KEYmdsucncEPrO7ogE/OFqJgn/S2QGbxYQBLyFvCSV0FXAKv8aLcpKVzRJfrpU5mrlVj Ze3Xs/x9ND8uDrs+ISun63tVDtRmljEpnpXr6kAKKe2ClFLvtKF6Ag2trs5I6anz/LgEcw WoCP0IAmxLPSz3WaGEA1Ps8DCXh4oeHzp89wnaXpplFtWPWmdYgUIzDlVSpWG17YdAfl/r PNh2EqONevn3M0D2UO+4EX8/8qcGzJF8ncEcrA4c4fE8Sv1yVnYkSUKUk8qamQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159367; a=rsa-sha256; cv=none; b=oKIwmFPkpGneGTKHBMkvehT9vCvGGFnATNTue1wgEcHvNaCPZsnhNRedafsHJqn7vAb0Jn ALlxUD88YxIhfnawo5jPeK5SKXSHxAzvLuSL51YOo/cntQfQCKOrXSwVKZNxyr9S9KkdOJ ymvZAchdUJ+1rZ28rH/H8H3YCGQfgwI4T+c4CEBzKnCI/WabJQIxW+laOPaF2bVPIhIgDy NXvc4OEv3CT2/IDFGdPkypD5QtqP/WFDJXtwNUg+PFyvn9ZwSk5jsMYfaInkA1lDhYrVDY fIozDoZwHr2Uxo75NUY/AA641k9Ruvh4DfYNPQiwSQOWTwf78NCjYxRVrFAVZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EIKHa518uwXbkKEtXnYFMV8wJnLPO7G4lKuhcAAnKcE=; b=RtKSLZQX6x5Nr1d0tIzHbstUlVhu3FE5VKZyionowdWKSrnqHMTzqfn2R1ReUoOKMJ5/Qc BdDu5gbmtrMMyM1KbGXGJstZqA/1k9V9yLwlZbFPOKITmqrhDsQpoIxVkv9TblXcv++XzE djKUTzNFO6v7tmVrfjyHqi+JgmR4wFFi/XycOOzdR9fVMrn5+qBl8NkwUWJ9tKKJ9JMegx og9/LhlNF4XIZrc7MipDYyiwWq+uuqtUi+SWP7FrTvuxTJHCE+Y3ejnSQZrJ4a2Yj+lRHk vQXZNMDi6Wi4IFUJVXL+Ib4OmJonHHRydKsdfRBXJwl5yAYYaO2q+lvltqMo+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 4fMXMp5ChfzyHm for ; Fri, 27 Feb 2026 02:29:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ece0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: bd5301f27899 - stable/15 - LinuxKPI: implement dmam_free_coherent() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bd5301f278993fc1c661f071b4148a7f7fc3e5f3 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:26 +0000 Message-Id: <69a10186.1ece0.63a1e0b7@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=bd5301f278993fc1c661f071b4148a7f7fc3e5f3 commit bd5301f278993fc1c661f071b4148a7f7fc3e5f3 Author: Bjoern A. Zeeb AuthorDate: 2026-01-21 13:57:55 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:59:32 +0000 LinuxKPI: implement dmam_free_coherent() dmam_free_coherent() is used by an updated mt76 driver at v6.19-rc6. We need to surgically find the devres information and destroy it before calling dma_free_coherent. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D54810 (cherry picked from commit 0a575891211eff545bab1e4de5e2b7adf4a4c1da) --- .../linuxkpi/common/include/linux/dma-mapping.h | 9 ++++++ sys/compat/linuxkpi/common/src/linux_pci.c | 36 ++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h index 2d8e1196d3d3..76efbfd51074 100644 --- a/sys/compat/linuxkpi/common/include/linux/dma-mapping.h +++ b/sys/compat/linuxkpi/common/include/linux/dma-mapping.h @@ -96,6 +96,8 @@ void *linux_dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag); void *linuxkpi_dmam_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag); +void linuxkpi_dmam_free_coherent(struct device *dev, size_t size, + void *addr, dma_addr_t dma_handle); dma_addr_t linux_dma_map_phys(struct device *dev, vm_paddr_t phys, size_t len); /* backward compat */ dma_addr_t lkpi_dma_map_phys(struct device *, vm_paddr_t, size_t, enum dma_data_direction, unsigned long); @@ -181,6 +183,13 @@ dma_free_coherent(struct device *dev, size_t size, void *cpu_addr, kmem_free(cpu_addr, size); } +static inline void +dmam_free_coherent(struct device *dev, size_t size, void *addr, + dma_addr_t dma_handle) +{ + linuxkpi_dmam_free_coherent(dev, size, addr, dma_handle); +} + static inline dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page, size_t offset, size_t size, enum dma_data_direction direction, unsigned long attrs) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index fb3f648df496..cf8a6ffeb46c 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -1796,6 +1796,42 @@ lkpi_dmam_free_coherent(struct device *dev, void *p) dma_free_coherent(dev, dr->size, dr->mem, *dr->handle); } +static int +lkpi_dmam_coherent_match(struct device *dev, void *dr, void *mp) +{ + struct lkpi_devres_dmam_coherent *a, *b; + + a = dr; + b = mp; + + if (a->mem != b->mem) + return (0); + if (a->size != b->size || a->handle != b->handle) + dev_WARN(dev, "for mem %p: size %zu != %zu || handle %#jx != %#jx\n", + a->mem, a->size, b->size, + (uintmax_t)a->handle, (uintmax_t)b->handle); + return (1); +} + +void +linuxkpi_dmam_free_coherent(struct device *dev, size_t size, + void *addr, dma_addr_t dma_handle) +{ + struct lkpi_devres_dmam_coherent match = { + .size = size, + .handle = &dma_handle, + .mem = addr + }; + int error; + + error = devres_destroy(dev, lkpi_dmam_free_coherent, + lkpi_dmam_coherent_match, &match); + if (error != 0) + dev_WARN(dev, "devres_destroy returned %d, size %zu addr %p " + "dma_handle %#jx\n", error, size, addr, (uintmax_t)dma_handle); + dma_free_coherent(dev, size, addr, dma_handle); +} + void * linuxkpi_dmam_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, gfp_t flag) From nobody Fri Feb 27 02:29: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 4fMXMr1nglz6T7cB for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMq6Df0z40g0 for ; Fri, 27 Feb 2026 02:29:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yv7svI8vhFjskmPMe+Kr1rtq2DAEyfsW0QqVB19xyt4=; b=buImMDE4DglPtGthr+LxrFB6iY6ncimlXcceITLE4O0+rsbVNKRqoF6QUdJaz8IIUrJyEh 0FDV2JQA2/88yznIu/PtHBXuhkawDfhCMAwTej7nI2VE40PzQLl7wHOHdTPzlzEaJiNQIt 4DKh5Fn05LsIyivUXrQVCS+rrv/V5zb86EZ/3nQ6hMKx1YRNRS9aTRVi048xm567+IcpbZ XmL6RTs4x0TWcgIOkh5vs33+vfaAPKKp94QSma+CKVJ/fITlX7j1U0h23fDrHX1FVAQeAh 5urPdvMWswWXDPe0aR9zuachqBJSgNyo5KDG0IeD4iAI585+V053eX9Uk5xKxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159367; a=rsa-sha256; cv=none; b=p+8R6CtlWSX1SAPn7m9gq1FrXpxQLqWdVvxqfAsALpmEK/p7oJTpySrrEkWrFfiNMuUBKj ZPyBFRAjOOQJYHWRvXrIHIWlVbNYv5Wcs+BFKVRtXNMBZg9Y+4SQv782qMfwYf83QtAVix MgUEhOgznCHplROEPTKD9LbcwThkNuWaoRsQGo0tRViWkw7eGl/Ll/Nu5jnpRfWbOm+phY +x+VVuOas3EM+W18RV/Yjlr4lmUNcUcsk7yLPQCNqGR/BvH8zQe9wPvfBbvKO1RmcF9yOL dqwNhH/xYx4q8bxIbtpolh/F9svPbNYTOXHs87YR8zmByQLZu6SJUKpkEcObDA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yv7svI8vhFjskmPMe+Kr1rtq2DAEyfsW0QqVB19xyt4=; b=g1bnJiwg1IJ1ZcJjoCWLt6dajSvkH/eMznKT8klNORscS2Uo8dfODl9/mpCHz14LyW4lXV V+3oXFsu1B6JI4TgEvxcdt/YfhJL2PvUXAn+o5kT//G7/3kaDBckDfNUeBCPc+w4ncpuYw 9sxDt2SaWGE4w/lwskTB5XhweQIoc3OsbqiXcg1JL0b5V8cAnXx5O01V0CWGE6gjaLf1Yy Y4Ew7oKfGUDlMbR3r5IxWxmUendpVOjDy6l6MrSkK2OXzUMdzUKbzqpqB+Eye4KEgFmrzD zRa0X/LjdCjbFRUnmrjcMpZ4hxTI3o/g3DjPXasWTutrb2inLbI3ugDA0CSLIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMq5lr3zxR0 for ; Fri, 27 Feb 2026 02:29:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21ac4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 7ea6a61fb3fa - stable/15 - LinuxKPI: add umin() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7ea6a61fb3fad2f729be106c2d6ad637b200c530 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:27 +0000 Message-Id: <69a10187.21ac4.188b859a@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7ea6a61fb3fad2f729be106c2d6ad637b200c530 commit 7ea6a61fb3fad2f729be106c2d6ad637b200c530 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:43:19 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:59:48 +0000 LinuxKPI: add umin() Add a version of umin() simply using MIN() assuming that the Linux upstream code properly check that the arguments are unsigned, etc. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D54807 (cherry picked from commit 44d1153ddaf8f961520a8f33222b65170196b90e) --- sys/compat/linuxkpi/common/include/linux/minmax.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/minmax.h b/sys/compat/linuxkpi/common/include/linux/minmax.h index d48958f0899f..fb8eb6f704b4 100644 --- a/sys/compat/linuxkpi/common/include/linux/minmax.h +++ b/sys/compat/linuxkpi/common/include/linux/minmax.h @@ -71,4 +71,7 @@ b = _swap_tmp; \ } while (0) +/* XXX would have to make sure both are unsigned. */ +#define umin(x, y) MIN(x, y) + #endif /* _LINUXKPI_LINUX_MINMAX_H_ */ From nobody Fri Feb 27 02:29: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 4fMXMs3wbwz6T7hk for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMs01nWz40tx for ; Fri, 27 Feb 2026 02:29:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=krzFWxKFJreDAwQziefca1tQp+ygJTkL6yY24y8YgwY=; b=HAqQ6T/j5b3smTJXwrZuUpy0OfsixaE1L08C1iGyknIbi54PDFECfuuZv1AQnmyinZxgDh IRmWGoUFhtOiW5jgJoQDJ2SrfaiItunXiKwLDCa21bg0m9VMYgBw+bZGuftdlHS6uHS5fw EAJ3Z/0FNLEJGo4bAA890NThaW4ZzRfNjFso8gULmYZKFVMLwT/T29GtgM+h9TIOBz9kZK 0WUHYw1D5DXfUv2OJgrnDOqxAcrU8LCGzqBSCVocTv5dE/wOY1qybpgEmu3yKUHXWnM2Ku N/KepLEhC+NEYe8zZdprQtdankGKxb1JdFP3N7DB9ukpvKN9OYZYmjliXJnPkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159369; a=rsa-sha256; cv=none; b=hM9uGaZOL6haaOFlfrTUbJSYRH1tz+OJZqkybZ4vssmVue3vU70Kd7QI+icDfCnlUyskAQ q255mXwlVx7e1Xm286OdEUkdra5o9dIEYD2hz0uOUYS7dE6mMfVVtKhZ97ukOr6+wq/72H j0Oyc5r/y8UjKNb9fBs1z6kxvdZCT0K4x7venavjYXtkNK29Ax6+RNF+bgiER0vDOVRzDI s1DAjRKSE9ntk8SxMFsmJmMGaORXa+VGlXTHnN9jdk3mqgRwJwkHQ5OBMa4gVq6jkNYBXy 0OX+nUckzsjiDR+6j0esq/iKyuQu+PaXsY1YPreQ5CSUh0kOH0n1l5QYxlyUaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=krzFWxKFJreDAwQziefca1tQp+ygJTkL6yY24y8YgwY=; b=uqWOh5mTLQPcT+4h7AjMnk+hGrOePPoUf7aDb/g9PVC6e6OCaL3i0ztTupgB++OnYrdkV/ w7u5wmq1ZhvWfQ7bcgGxp31tcTN8axggWsiLpUC74LMb6TilJ5PF+EVP3qCNLQUltTOfeX A34R89XC/t9ze5Gl6DeE9eac8BCwDfOJlJmvptVuCG99AQq20kL7znfDnSQqxNn8pQAPtZ 99yb6Y+T/N5p4H2gU/T68Pg3Fo4yPbwJW5TRN1Hum7mKiPgc0NKQaDCaKZ3McxR8Ym+4Qu c7GDojzDWPfLCaE9r8QnsBIlx/gXWqUshipbnUUicF/fU9W9zPOZz4IWQBTJGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMr6Z27zxwC for ; Fri, 27 Feb 2026 02:29:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21a1b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 5585c7c36518 - stable/15 - LinuxKPI: improve hweight if complie time constant List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5585c7c365180aecb9ffd82723604ee4cde6ffc9 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:28 +0000 Message-Id: <69a10188.21a1b.22132e06@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5585c7c365180aecb9ffd82723604ee4cde6ffc9 commit 5585c7c365180aecb9ffd82723604ee4cde6ffc9 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:41:12 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 22:59:59 +0000 LinuxKPI: improve hweight if complie time constant rtw89(4) uses a static_assert() with hweight calls. In order to avoid compile time errors, deal with the case when the arguments to hweight are complie time constant. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D54806 (cherry picked from commit 7e4a2b381dcb5b2bcaf528e010096fd2d14868b1) --- sys/compat/linuxkpi/common/include/linux/bitops.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/bitops.h b/sys/compat/linuxkpi/common/include/linux/bitops.h index 8fac80820f30..e34ba391421a 100644 --- a/sys/compat/linuxkpi/common/include/linux/bitops.h +++ b/sys/compat/linuxkpi/common/include/linux/bitops.h @@ -51,12 +51,6 @@ #define BITS_PER_TYPE(t) (sizeof(t) * BITS_PER_BYTE) #define BITS_TO_BYTES(n) howmany((n), BITS_PER_BYTE) -#define hweight8(x) bitcount((uint8_t)(x)) -#define hweight16(x) bitcount16(x) -#define hweight32(x) bitcount32(x) -#define hweight64(x) bitcount64(x) -#define hweight_long(x) bitcountl(x) - #if __has_builtin(__builtin_popcountg) #define HWEIGHT8(x) (__builtin_popcountg((uint8_t)(x))) #define HWEIGHT16(x) (__builtin_popcountg((uint16_t)(x))) @@ -70,6 +64,12 @@ #define HWEIGHT64(x) (__const_bitcount64((uint64_t)(x))) #endif +#define hweight8(x) (__builtin_constant_p(x) ? HWEIGHT8(x) : bitcount((uint8_t)(x))) +#define hweight16(x) (__builtin_constant_p(x) ? HWEIGHT16(x) : bitcount16(x)) +#define hweight32(x) (__builtin_constant_p(x) ? HWEIGHT32(x) : bitcount32(x)) +#define hweight64(x) (__builtin_constant_p(x) ? HWEIGHT64(x) : bitcount64(x)) +#define hweight_long(x) bitcountl(x) + static inline int __ffs(int mask) { From nobody Fri Feb 27 02:29: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 4fMXMt4Pnzz6T7Yl for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMt0Ttbz40gQ for ; Fri, 27 Feb 2026 02:29:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=US1HVZE03AOM1Msn5w5u7jg+0uL9x+qnoKj6CYdaOL0=; b=VGjEZ0soxH+MuAqcvguQBNToqni5p099/4rmj0Xtjts8BMb9G7760XSn1Mn/55AoUG6Tip sZvljZYhNoqeo5QxtM6QabTB4v2VZzCUTCNkd1zfK7uQnwaLlwN5dLjFwRl8YMvQZ/S4Tz Uct8ihgmBgTGAOd2QhXFyfEIcc8oQYar/tgAaDaURQlvm8Z3GL0Y4m8RhpsyZtOiBt6y48 zIFAjcbgw/Rq/fbti3dghB8URuhobAiTQf9KOZCN6Oq8LGKUVRUlGI4eWyCZnetwFPRj5J 2rRVTjbZRVuDGNRm0qhwf/9Wmd2pom5dWdf6J+mij2d3vYX3WeK6JwwCQwwmIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159370; a=rsa-sha256; cv=none; b=coaMzqimyf/qUC69CGe4Ncr1rjFEjGwLbAo+2xpNgpCk1723uX4nWKUWVZCL5Zbw7bQVkX BUgOhWO3U68bl9Hlw8rWUhA6qq2wupdwUXIv44qSgu1bXfKGyVgEVMEA5bCv63VLQFR4Sa XvFTvmNauoEW4h6HKvArDjswEJl8kawIy5BffErPwVvERQy92o3Q+cf0bjlsWOE2USnwuz ZQqYoW6hKIxdRCXgr1oqIelKvrMfBZ26t2csWaOC7UJVRhFJse3kqgaIBJ0RLfPrTgZAy/ H6UGamVpsgEV8vwI3w8jDXBoUJwqYEEMZ/7VxoRBuWzqeeRknGltl6IW/m/cGg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=US1HVZE03AOM1Msn5w5u7jg+0uL9x+qnoKj6CYdaOL0=; b=bjeOaI2BvJbLJ3UWG7Bb+kQB2BO5voHisWculQCPRFtUt84zblmYNA2YlDbjLl+eycPHV7 ueh/vJvNTQ2PjgHltUkHezRlqcCBgTiNsJ/CPVKcIaSEM0yS1xL/inuewztBmdL1EvJ+qN 0DRg3d1fPpdzFybIGgV2q54enwgv6z06Gh45QSaDdyi1sAluSVpJoeLkck0l3hW6fevjFd d+eXV6fCUeydYvXqVu/1fTgdagBUNGFPfsUIvzS7R1YBdYtTfuxY7mYyfySYptNpGBb3Ho N2/ty4c2mH1u93UT+bxuI/1ui3hzIccpmV+Txz76DIrrMwGA97NRwUiNdYIeNQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMt00S3zyGq for ; Fri, 27 Feb 2026 02:29:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 204c7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 2da96ce51cd3 - stable/15 - usb: indentation (whitespace change only) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 2da96ce51cd374e619cb53fdf132eb91ccbfb1ef Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:29 +0000 Message-Id: <69a10189.204c7.307fe57e@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=2da96ce51cd374e619cb53fdf132eb91ccbfb1ef commit 2da96ce51cd374e619cb53fdf132eb91ccbfb1ef Author: Bjoern A. Zeeb AuthorDate: 2026-01-29 11:17:52 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:00:12 +0000 usb: indentation (whitespace change only) No functional change. Sponsored by: The FreeBSD Foundation (cherry picked from commit 0762cf10fc5e426700e00f9060518241212e941f) --- sys/dev/usb/usb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/usb/usb.h b/sys/dev/usb/usb.h index a6c3c8030c73..3e972f876c6a 100644 --- a/sys/dev/usb/usb.h +++ b/sys/dev/usb/usb.h @@ -541,7 +541,7 @@ struct usb_endpoint_descriptor { #define UE_XFERTYPE 0x03 #define UE_CONTROL 0x00 #define UE_ISOCHRONOUS 0x01 -#define UE_BULK 0x02 +#define UE_BULK 0x02 #define UE_INTERRUPT 0x03 #define UE_BULK_INTR 0xfe /* for internal use only! */ #define UE_TYPE_ANY 0xff /* for internal use only! */ From nobody Fri Feb 27 02:29: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 4fMXMv3rpnz6T7Yw for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMv1vkmz40m8 for ; Fri, 27 Feb 2026 02:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WqBdYK3LFez8PdCKDMK11RNeExfwoGgxOn4+7Q9UOl8=; b=Cb0S9bYLEFDFM6fACwLZXx30fpxDlMs+hIxxaUAv3nGhUuo8n0dHf96cBsn2CRLHtkAiZ2 SC77mlj0XFkvxCTHdfh38JTMbWZZ3NOyxzZSq96tx+pa5F48BNkjKoj7RnAW/ItaZujkk8 BpzYMDpBTCBq8gh4fLEdTnOJ7Uu8NS3Bx1EJ+l2WCYUivYvexgUlUk/aEcuROel0RAi6TB uIvvQ1uLPh6Xwn8XuIzDTEBtre+c0EXEAZBRybEbJjUXVGRu9rRGHljc9splr1T35EYSWF eFelNpzou+z29uv0z7bxaUl+2ZlMw/llNQ8goZokKfjr+wObPj/HnHJSIlcaXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159371; a=rsa-sha256; cv=none; b=s6EOfhnoEdQfTypyn1YPUrs2q+I8OPeH8c+jdARRHvDoESlJMed935qBinIc6mph2q5QPh S1zOWeIUa2rMtH9G4kP/v241EvxFBpJYWF2d9qguEpFhsR1LfHy5anPrY9HcnRLJWIE7dd 8+G29wCYo3i4UOTlVtUAQinf7KAvoRCv2pZylq02a3hSEqhLx91SeirIh1W5Jb4d7JsRfB cttdWsoK8QSlfiaLZzqR6KGpvSRzbczSILl/ORUaYrFjU5HafVUInGUyRPX1TKK/8oxk3F B71G3FfwtGvOxps9MJ+VwzG0YDEW00d6H4UI//s1zf63oyUYZWp6xD+IZb5NfA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WqBdYK3LFez8PdCKDMK11RNeExfwoGgxOn4+7Q9UOl8=; b=yAqKxUaGf5a1nKnARyFH2YHrdqf+Yl8qu5mAZJCYoro25SAIPNRr/eK9Kb/8W2I1ZAx0FT kmrHj1mARJDKsHnehZfXn+Fy+evoJabizq9z3aFdcSk/+NBbSD8Jf+RwdiSFpexSjRDcCQ yPC0sr5p1T6lNSCmyOupnlh8yJUHsACQsgk2g46YkhxpMHD6PZN1lVVHx/NeIJhE1hAyU1 aGGTnWJJwArpA/usoFU8RCOUFdPAKTAGrCDvSyOCZSqgk7ynzd/tdmGjI8rAd+A85M4ak7 7xO50BE9Ugv6hz61mEwN5LdgAyxKKyHMaJDYuLYUCTGwq3rL1VdsfLGRteuIag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMv0gjlzyX1 for ; Fri, 27 Feb 2026 02:29:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fd76 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 1ad47b5068ec - stable/15 - LinuxKPI: 802.11: only announce netdev_features if any are set List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1ad47b5068eccbb86c4459eb095b038abd424058 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:31 +0000 Message-Id: <69a1018b.1fd76.7abf22c5@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=1ad47b5068eccbb86c4459eb095b038abd424058 commit 1ad47b5068eccbb86c4459eb095b038abd424058 Author: Bjoern A. Zeeb AuthorDate: 2026-01-29 11:17:25 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:00:17 +0000 LinuxKPI: 802.11: only announce netdev_features if any are set Printing an empty netdev_features= line makes little sense even under bootverbose. Sponsored by: The FreeBSD Foundation (cherry picked from commit 5cfe09e3a442347fe408fa95126dfbc051d064c3) --- sys/compat/linuxkpi/common/src/linux_80211.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index d25b32f1dae8..4ce0a2094adb 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6972,7 +6972,9 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) } if (bootverbose) { - ic_printf(ic, "netdev_features %b\n", hw->netdev_features, NETIF_F_BITS); + if (hw->netdev_features != 0) + ic_printf(ic, "netdev_features %b\n", + hw->netdev_features, NETIF_F_BITS); ieee80211_announce(ic); } From nobody Fri Feb 27 02:29: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 4fMXMw4cb1z6T7Z0 for ; Fri, 27 Feb 2026 02:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMw1rptz40vQ for ; Fri, 27 Feb 2026 02:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yXfuTgKByNSj0OQCnBS/pF7CBpymgU0dfdEPi0fAi9w=; b=DjE/n6o2o+dKWyJ7CbLjtObFgp2ULuU9ALgDt4qIT6tUXEqlWz22SezAYUVxTNwfGHVGmz /bO2/iSdNxJZ7uhDE/wVgNjHae79iSkoC36vMEG19FebnwEm4/jB2ys5pTKcTeJ8bR8f0/ FICqFDm06QK5e7zk39/miY8s0YwIKqwvROFauDEnQKjX2qTW4NBwCePOCggf5cd02pz6Is O+Bg+4jezsc+HVrYZPE4uv3Cu1pVVaWhP6uFSMAgiT3busqpnNGxMtrkHIwKhHKUKnUdpl 1ZoxoaTnyupZqsyEa3qgVFxYD2+eywo2bsr9MvBZbw3wEpQTSpKMV0YqNAKsOQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159372; a=rsa-sha256; cv=none; b=xORxQN7ShJsmo0M/76LYLpPNFQ3PPj+MmbRKQ97kLDYko3jOiLoxs5wJ1iQxdXdU4xpQgB q1I9n2P4ZKV5ubCO7LVPAB2oB722TCeNl46mN+GRkJQ0vERqb0A4DEL7Dm9SyTPMKumAq4 MIggq5Ggbm/9IpmFFTRCHhcGUmSWfcu3I/fVX4mlZuBSXh+WM76bAdY7Qw6qkf9qHf0ndG zOpLZMimu6BdjTr57jGWtHyPYapDuG8GqtUGd63eZDPjD/R1FXx7E6K00rMP8Nilus/q+j Kn6d1HM/+IjvMykpIeZSyUIZD24S9JZBFAn6T0jVtA+ACCzz9uR/KnS0Min2zg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yXfuTgKByNSj0OQCnBS/pF7CBpymgU0dfdEPi0fAi9w=; b=SwbdlZXjEkwVZkpmo8fGtdwWcJoGYppTIDuvekk2OycvG8dXWrdrpOMNImV3l+KqP1/vxH 1Ku36IzOxBGeErL+06Zeto08gcpXoa1/X/F4crcdylLTtlPDQ65o3nUG6hKavu/VlsYwYf GR+vhwRKyfyxph4hrdCSh5fznknutryLQl74RaYqfVSC4XxW8Wx6OW0dmGMthO4PLJ7IB/ xo/43w+DBwxtJGynN8ijjGkL16mYLZUDbHXaNKEMiEHKekxKZsI37jBZu7csT7fFV2vGOu qNKUfR9gK52bOjQd5elBJpczrtX+C+TnPmR5mVvW4itnEdPwILShGvE0wShwbQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMw1FtyzyGr for ; Fri, 27 Feb 2026 02:29:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20f22 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d4ed839d576e - stable/15 - lindebugfs: check that name is set as otherwise pfs_alloc_node_flags() panics List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d4ed839d576e23168c8522eeb93bd2bf1d02a638 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:32 +0000 Message-Id: <69a1018c.20f22.54448992@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d4ed839d576e23168c8522eeb93bd2bf1d02a638 commit d4ed839d576e23168c8522eeb93bd2bf1d02a638 Author: Bjoern A. Zeeb AuthorDate: 2026-01-29 11:16:50 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:00:23 +0000 lindebugfs: check that name is set as otherwise pfs_alloc_node_flags() panics I have hit the case multiple times that some LinuxKPI field may not be set during driver bringup and lindebugfs would cause a panic. The backtrace goes like: strlen() at strlen+0x54 pfs_create_dir() at pfs_create_dir+0x41 debugfs_create_dir() at debugfs_create_dir+0xa1 ... While the problem is clearly in LinuxKPI or the driver, we likely should at least add an assert to pfs_create_dir() if name is NULL like we have for pfs_add_node() but for lindebugfs at least make this a graceful error and continue without creating the dir instead of panicing. Sponsored by: The FreeBSD Foundation Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D54944 (cherry picked from commit 4b32fdb4a614de602d288ac5a414cb43e9f2163e) --- sys/compat/lindebugfs/lindebugfs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/compat/lindebugfs/lindebugfs.c b/sys/compat/lindebugfs/lindebugfs.c index 8cddc6f390bc..857546f61e55 100644 --- a/sys/compat/lindebugfs/lindebugfs.c +++ b/sys/compat/lindebugfs/lindebugfs.c @@ -272,6 +272,9 @@ debugfs_create_dir(const char *name, struct dentry *parent) struct dentry *dnode; struct pfs_node *pnode; + if (name == NULL) + return (NULL); + dm = malloc(sizeof(*dm), M_DFSINT, M_NOWAIT | M_ZERO); if (dm == NULL) return (NULL); From nobody Fri Feb 27 02:29: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 4fMXMx4x2zz6T7Nr for ; Fri, 27 Feb 2026 02:29:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMx2RQtz40vd for ; Fri, 27 Feb 2026 02:29:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5xEHi7gD/ojcJY27HJT7N6ax7fxjp1YOs+n6/zMtOcE=; b=YYgaxcYZpvnVob/EPHPhDXaOx8qwjOUQ2LMSOS54tcbYycdYMASY7Pt/8VuIqaN6L1wN3o JoPp0e9GnlJsrMJ6AvYli5m1Zwb75OXWc5vcBINsEG7C7WJw8u1ZmDB7I2EKOU4X9iD3R9 73hlaJ4yJasPJY1inxB9mCDAo8xcyli0naP3ccQhwBYKuS6Kt4SfkDJOAR+kUyNNuZecyS W3N1U7UlX8r6cnU+oZfAwcmkybzSxzKqo9rkSLggr/XoRhTOAn4iDdtg8HEHL/qPtoRge7 OsLIbHsdPYtij8w/ShbYnT4uamW3q+6j/q+8a3mJH2S+KbUHmwBLmnIY/EjSaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159373; a=rsa-sha256; cv=none; b=sYFB5aW40PVTkcf45y5S+kC7MAWEvMQAjZ4mgr28jROdYX6RVOlulo36X5BYO4wLt0UDjy iA3gLnYw+QXcooMYnJFodA8a7D0Hs7zVA3PnnS9fNxfd2LITIodOIuXI1Ck59CRS7rN0ns eis1nWKVWrGgOvWPm9hkegoN8GTVw0kNnfPJUCIMxBHHYywd4JpctCcIRuoPEPtpxKniwk EiiwxR+h0kH9hwO9fyhliStawnVRlHOzYC+NKBI4qRK/B8gv62GXR7MhCUEcqhru0yFyCt Q+wPt4QesFAPHMRXwcvC9JseUB6noNUpmTDdKpjdz2d93DUfXt8MGcmjV1Em2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159373; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5xEHi7gD/ojcJY27HJT7N6ax7fxjp1YOs+n6/zMtOcE=; b=Ke2/uE1o20Ys3RfwpYp3QuBiyJNYLoHBpnW9+y6lKIKzKogXE+iKtxdPW90mCETRcUfWZV u5LBW1/KowxHqfHgrMTGOtPHRl+nQ5ZwHtrLAlMRZeatUtHyEvt55FpUR/7XWrfIyuL89y eHPuzVNp/WmapPKgjqpuFxQO4pUk0e2LHPuRWQFOP/OTzkOegxbLOHlVPQooWTFZVESD32 09r4IUPMIgxrCp2/hfBVLtYVe5jJN/XOLsoRZkI26yZgidASFDwYcw7jan8T+2/eCmjbuL RqWU6YihY+0PZwAx69/Te+dAgoWaLZ0UW0MW63r/nYroDxd/FzUJD8MM6Gn8HA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMx22fHzyV5 for ; Fri, 27 Feb 2026 02:29:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21ac8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 5891d50d0ae9 - stable/15 - LinuxKPI: add str_read_write() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5891d50d0ae9daba78741316345d7f9dac229199 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:33 +0000 Message-Id: <69a1018d.21ac8.7cd06164@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5891d50d0ae9daba78741316345d7f9dac229199 commit 5891d50d0ae9daba78741316345d7f9dac229199 Author: Bjoern A. Zeeb AuthorDate: 2026-01-31 23:16:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:00:30 +0000 LinuxKPI: add str_read_write() Needed by a wireless driver. Sponsored by: The FreeBSD Foundation Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D55029 (cherry picked from commit 6ea242cc305b7ec5b44488c9f04d413ebbf0b731) --- sys/compat/linuxkpi/common/include/linux/string_choices.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/string_choices.h b/sys/compat/linuxkpi/common/include/linux/string_choices.h index 74aa3fd019b2..18842dbd86a2 100644 --- a/sys/compat/linuxkpi/common/include/linux/string_choices.h +++ b/sys/compat/linuxkpi/common/include/linux/string_choices.h @@ -68,4 +68,13 @@ str_enable_disable(bool value) #define str_disable_enable(_v) str_enable_disable(!(_v)) +static inline const char * +str_read_write(bool value) +{ + if (value) + return "read"; + else + return "write"; +} + #endif From nobody Fri Feb 27 02:29: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 4fMXMz15Wmz6T7fg for ; Fri, 27 Feb 2026 02:29:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMy3d9Mz40vw for ; Fri, 27 Feb 2026 02:29:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uP50sLB+h1Z4YrU0xkOe5ofl1hMnzpQJUmjc+yrWb9k=; b=wY/eAz9asN40/WF6eGZ0eO4OocL8Cpby3WH9rzxNfMzt0tcpr076GCsf847hI7rUpqwV12 6wPuuw3sG54Sw/N3KqJXNSnbfW++zNunb+UjGToiWVidajrdzJq19URA2zOgoTAQkEWnxa a3FsSk9OquTFFmT7fG6WQBFCojLxDk/4fMx5rRu5uxyAneavKXqgF9zqLanqXKPpF/Bao2 58q4D1ac0gmvcwQoFpfUGplPBENwJAHBL2g3nFfsqAjP3keTX370t3v6wm5M1QYvCxxm9z 4ZuyO2+hu3Ab4ihITKrG9wDWLoCGzBcwTvLrFKALbtJMwD7mivU8wMmfxFuHdA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159374; a=rsa-sha256; cv=none; b=sF6mbzEChEI2nfDsCAYZZHyXc9jB2Ml8PayWJODCj2qyP/dxq+V11HXoje91jEHXL3qfSg 4u76ADHY9bI6cim8vX2JlAEhMBFO4tGO4GLwk1UCUkoVCqAuDcBo8G7Z4tf2nRpuswpKAE xcKcyyhhCgJLOo89czWeCU0bTgUWB0HbXLZi1FC4Tx1CJlGuQiy/oV+GUZibRvUbh/8dDj 14eiTk2iNjkPd2hGhFY06iMDXOCAKz7lT95wDcAVXpswaz9JyhrIqff5/2zb6+NDV+zChx iF/yaGa/CRrDL8dWPmgQqB/4z1fIsg2A+4CrmYktYWqgZJPUypMkolrcT0+ZcA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159374; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uP50sLB+h1Z4YrU0xkOe5ofl1hMnzpQJUmjc+yrWb9k=; b=TLZvePNkKh/1kUKP/4PgKSMCSR/viee2VMGSVoeqRF01G1wKRp3lIiXLdx5BCXK7E2lABg DCt/1fh80Ofu8jj+Lv+lWgoy6w5YnM86RVwFSEASCg+XJQ0pcgaPxrlSZ6FOsdghTXkrMm hLu7STSJAVajfNNCU6cvXzKmgxe3lGjZ2oAVCGGpUUnTtTZRnGo1u01E2B9qbfaXKhXznN asaCUPw4YksgqefIn8A6/KxMc2lI8ls0qXQgKzu9TJsO+xM4asub2I17i9gH5NhAwg9Nbw L1l2vsq/pXHtZ2sqxMhz/OUB2pQN1mkdfE7jEWdXwrSJSKxmj0HSGGeZIpdNfA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMy2xXTzyGt for ; Fri, 27 Feb 2026 02:29:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f653 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 9d2e8764e488 - stable/15 - LinuxKPI: string_choices.h: use ternary operator List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9d2e8764e488ec0a2f7e2fe0a1aa8a21a4e31941 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:34 +0000 Message-Id: <69a1018e.1f653.2c2823ae@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9d2e8764e488ec0a2f7e2fe0a1aa8a21a4e31941 commit 9d2e8764e488ec0a2f7e2fe0a1aa8a21a4e31941 Author: Bjoern A. Zeeb AuthorDate: 2026-02-03 18:50:00 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:00:37 +0000 LinuxKPI: string_choices.h: use ternary operator Switch from using if () else to a direct return (?:) code. No functional changes. Suggested by: kib (D55029) Sponsored by: The FreeBSD Foundation Reviewed by: emaste (before removing more () as suggested by him) Differential Revision: https://reviews.freebsd.org/D55088 (cherry picked from commit 8df7af9c9ecf7fc0b1c664f3d95893a9fcc16fcd) --- .../linuxkpi/common/include/linux/string_choices.h | 25 +++++----------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/string_choices.h b/sys/compat/linuxkpi/common/include/linux/string_choices.h index 18842dbd86a2..db540d3e7d40 100644 --- a/sys/compat/linuxkpi/common/include/linux/string_choices.h +++ b/sys/compat/linuxkpi/common/include/linux/string_choices.h @@ -33,37 +33,25 @@ static inline const char * str_yes_no(bool value) { - if (value) - return "yes"; - else - return "no"; + return (value ? "yes" : "no"); } static inline const char * str_on_off(bool value) { - if (value) - return "on"; - else - return "off"; + return (value ? "on" : "off"); } static inline const char * str_enabled_disabled(bool value) { - if (value) - return "enabled"; - else - return "disabled"; + return (value ? "enabled" : "disabled"); } static inline const char * str_enable_disable(bool value) { - if (value) - return "enable"; - else - return "disable"; + return (value ? "enable" : "disable"); } #define str_disable_enable(_v) str_enable_disable(!(_v)) @@ -71,10 +59,7 @@ str_enable_disable(bool value) static inline const char * str_read_write(bool value) { - if (value) - return "read"; - else - return "write"; + return (value ? "read" : "write"); } #endif From nobody Fri Feb 27 02:29: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 4fMXN00brxz6T7fm for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXMz4T57z40dq for ; Fri, 27 Feb 2026 02:29:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wpebL4GkTgfM9QoAPdHCVViiPFPUyYsPJyXGT68bXso=; b=XR6ZdgPDWQu6dRRGPFmmalfGkv+/vWIigJSzvkWAUQvBDJHIgVYqt03qK+t7UVlsibRuoP iwuPp5T+0SBLFfToagYTfPIJFpo5Ebi/JKjZ6wXEPE+Z8tSVErd28b9Js6Iqvn3uayN9Qc 4LoX4tfkMFpFMLtDXOkHAfsm66dXK+YiaWbjbaf/VzcglhO4Pgy9GeMyBtD1Fla2Vn9RaR ydxfrGUJpZDb1VBB9R+EGvKzsGXmICmBibvp4VoeBpLuvFlo/Gw0SsKeUlFyFhJhngWdpt b5HZDms9DX0EiuXFmAd8YO67O92qmUzba9VOE/GuUaRfPL10hSMBn170B4AOqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159375; a=rsa-sha256; cv=none; b=WzZQxdqc1g0r+BonMrp5t3+WAKWWaGTbF4yhhgGj0Gzb+lc0Nzy+OaJArdWMXMqvla6rcJ kO95IoHo6gnD9HYaAekzTuYd53m9eZJcsBCUVeKvOzzn/3iS5uq50mR3Rzan+pPqn9LIRN F/ISYO23a0I4wxoXqP2geO4ivOAaKCyCYrdaKuQFkPPHwUU7zvw3uW5Lj7rwFw5N8n+V7i ewNAuR4rY5BTFo60yUBeUGrO40oDtxgYs6W/y+hw1pNEGK6N49iLCZz7wqRwjjGwRFm2R5 xsFwuW1cR08/po09kFgzcTiR8PJ6xG0LqbUQbnN3mxcRrXzxgei2PjrWbfdwLQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wpebL4GkTgfM9QoAPdHCVViiPFPUyYsPJyXGT68bXso=; b=Ky5cVpSR3xqZSPsPc2dKvd6ViiFgz8n5pUzZTlt57ZlLs6mj8Ou+qBs2TY8ZFppMPSmP+o vbGZzHKYVzwv+IKEQrx3tJn6m9BGe+vu0eKQEj0qxv2edMm0R2Is3axqgj1POwT9jLPYp5 TnavxvRMdzgIvEfi+yymrOHVMhsIyAxA6ik4DfhfVocdu3PpP2oI8KW1IMwnATLE+YBdOn Qc3gQO/BIEGO8MuvqeAuDv0nT1oCbk94dvS0BftyTbrJFxri2jDnhiGkwDd5ZKoFk5UcuV N2eF/AOeuaWkfe182xOu97Y8OBJUc1lPQj9gnvYbBBrQRcUZVknX1KwcJmSzyg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXMz3pvCzyV6 for ; Fri, 27 Feb 2026 02:29:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21017 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 7ff04e620c64 - stable/15 - mt76: sort bus attachments in module Makefiles for pci and usb List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7ff04e620c64e93ee31f30caed037b0a0b822295 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:35 +0000 Message-Id: <69a1018f.21017.1d62ffec@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7ff04e620c64e93ee31f30caed037b0a0b822295 commit 7ff04e620c64e93ee31f30caed037b0a0b822295 Author: Bjoern A. Zeeb AuthorDate: 2026-02-02 01:23:10 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:00:54 +0000 mt76: sort bus attachments in module Makefiles for pci and usb With PCI enabled and USB still disabled add knobs to (i) enabled them manually in the common Makefile.inc and (ii) add bus attachment depend knobs where needed to enable them in individual drivers. For now the focus is in 7921 and 7925. Sponsored by: The FreeBSD Foundation (cherry picked from commit 201fc8a55a4832174b5943e17ac90800aebe5772) --- sys/modules/mt76/Makefile.inc | 6 ++++++ sys/modules/mt76/core/Makefile | 7 +++++++ sys/modules/mt76/mt7921/Makefile | 18 +++++++++++++----- sys/modules/mt76/mt7925/Makefile | 12 +++++++++--- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/sys/modules/mt76/Makefile.inc b/sys/modules/mt76/Makefile.inc index e4369564237e..739c85c60dac 100644 --- a/sys/modules/mt76/Makefile.inc +++ b/sys/modules/mt76/Makefile.inc @@ -4,6 +4,12 @@ COMMONDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76 .PATH: ${COMMONDIR} +# Bus attachments. +WITH_PCI= 1 +WITH_USB= 0 +WITH_SDIO= 0 + +# Options. WITH_CONFIG_PM= 0 WITH_DEBUGFS= 0 WITH_SOC_WED= 0 diff --git a/sys/modules/mt76/core/Makefile b/sys/modules/mt76/core/Makefile index c782bf218d93..589063a23229 100644 --- a/sys/modules/mt76/core/Makefile +++ b/sys/modules/mt76/core/Makefile @@ -1,3 +1,5 @@ +.include + KMOD= mt76_core # Basic stuff. @@ -6,10 +8,15 @@ SRCS+= channel.c scan.c wed.c #SRCS+= trace.c # Bus stuff. +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} SRCS+= pci.c +.endif + .if defined(WITH_USB) && ${WITH_USB} > 0 SRCS+= usb.c # usb_trace.c .endif + #SRCS+= sdio.c sdio_txrx.c # Connac-Lib stuff. diff --git a/sys/modules/mt76/mt7921/Makefile b/sys/modules/mt76/mt7921/Makefile index d3f201997a2d..1b53df04357c 100644 --- a/sys/modules/mt76/mt7921/Makefile +++ b/sys/modules/mt76/mt7921/Makefile @@ -1,3 +1,5 @@ +.include + DEVDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76/mt7921 .PATH: ${DEVDIR} @@ -7,14 +9,20 @@ KMOD= if_mt7921 # Common stuff. SRCS= init.c main.c mac.c mcu.c -# PCI stuff. +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} SRCS+= pci.c pci_mac.c pci_mcu.c +.endif -# USB stuff. -#SRCS+= usb.c +# USB parts; USB can be loaded and is unconditional on any kernel config. +.if defined(WITH_USB) && ${WITH_USB} > 0 +SRCS+= usb.c +.endif -# SDIO stuff. -#SRCS+= sdio.c sdio_mac.c sdio_mcu.c +# SDIO parts; SDIO depends on an MMCCAM kernel. +.if defined(WITH_SDIO) && ${WITH_SDIO} > 0 && ${KERN_OPTS:MMMCCAM} +SRCS+= sdio.c sdio_mac.c sdio_mcu.c +.endif .if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0 SRCS+= debugfs.c diff --git a/sys/modules/mt76/mt7925/Makefile b/sys/modules/mt76/mt7925/Makefile index dc6de5085d77..ee79f09dba1c 100644 --- a/sys/modules/mt76/mt7925/Makefile +++ b/sys/modules/mt76/mt7925/Makefile @@ -1,3 +1,5 @@ +.include + DEVDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76/mt7925 .PATH: ${DEVDIR} @@ -7,11 +9,15 @@ KMOD= if_mt7925 # Common stuff. SRCS= init.c main.c mac.c mcu.c regd.c -# PCI stuff. +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} SRCS+= pci.c pci_mac.c pci_mcu.c +.endif -# USB stuff. -#SRCS+= usb.c +# USB parts; USB can be loaded and is unconditional on any kernel config. +.if defined(WITH_USB) && ${WITH_USB} > 0 +SRCS+= usb.c +.endif .if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0 SRCS+= debugfs.c From nobody Fri Feb 27 02:29: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 4fMXN128Wvz6T7l6 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN052NTz40kP for ; Fri, 27 Feb 2026 02:29:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uNk7yQ3dmfn+b1utv5PAiDI24Fb/Qgqj+V8obvOGi/g=; b=HqZxzgVwEkfS8HXtJ86Kg+RuTB7Eyd5E+dtrT1J5QJZlXs4dGZGxP7XSdYWPloWPQMJVpB 3C7qKhbXEup9atN+fa9UYDhiBpW4BMhBxf0BREJJXBI6AX3WA0eOGFZjgZuDFPcBvUIQrH jkQ020D9zcKYte4x9AjSBFD1eve3bhhStHbXoxuDdRTa9cc3qp9ZBSiyig/ZImuVNkeaz6 hlScN222LmINMRjRQ0uOuedwWBvRDtqmOYfFdgH9sj1U3hI91qFbgkouifw9lpCn6dX2Mf as/DPv8yxATOeLsuVOvYo0vMknVUimF8Xw5Pn1pdvqXLqBiqnVTL4Rm/0xIwEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159376; a=rsa-sha256; cv=none; b=eGfcuQGpyRbBCSYqPIKU2oNoLShbii4nmec6N5M7pmEFVBtd5vl2Im6C9Vo5QElKQGoCi8 iJThp7uNiaYeCmpRK07WrhOlhUTMKq7g7O1D7a6HkbiIa1+L9OC5X6F7O6c1sGMyOwgt+6 72e6yKbjj5wEHG9Ls503IF+VwsVWEiWjVkByFR+b5AbRGYL4RZjEn2K0If65lFuekBHUlb sfkO7+izH3Xf6za0rFrHOTEu1FrR+x5napz8YKgcs7epBNltJZ7uLczeY53ZvbCiDP9h39 MaLvq4U+k6LvZWM0MsFPEWwzJeSvGqAzXfMP1zkybYBUv/WCFJQ9ScgRFjDm3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159376; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uNk7yQ3dmfn+b1utv5PAiDI24Fb/Qgqj+V8obvOGi/g=; b=U/Tb/mreVo0xWjFd/p9bBDx29G4c3ii3+vfWhS30nIyBPvSiy8R4XqZBhSO7pX4e9dMV/B j6hKueSinuBHmA4qsbRUOl97+OCKk1HCFzeYJg0dXSCjEy7b/RMeFEe40HnCl65KkZoAjs AaBvMNM6t6HygJ5GjsEnlibz7AFWWIqQqdZPYH4TaLl7/+Cbwgtc6N4A+XagHEc30IOJ8K Zc64rAWLwQ1NpfvCUWEI1zF4Jv/XEISdZAgtseti5lZJUYgLErp8zRRVCedwHa0k6lKvAg ZmSA9fVF3EPfselGOxKKStkRz4znN8d/3/ZaWW3cwxtnBtP372oEESZwhOs6mg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN04XzGzyZY for ; Fri, 27 Feb 2026 02:29:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21acc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: cd91367dc394 - stable/15 - mt76: module Makefiles fix .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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: cd91367dc39476583fc01676f4d35ccda8aa14c5 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:36 +0000 Message-Id: <69a10190.21acc.364671a9@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=cd91367dc39476583fc01676f4d35ccda8aa14c5 commit cd91367dc39476583fc01676f4d35ccda8aa14c5 Author: Bjoern A. Zeeb AuthorDate: 2026-02-03 18:26:37 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:13 +0000 mt76: module Makefiles fix .PATH The common Makefile.inc had the .PATH set for the common code. That .PATH is only needed for the mt76_core module, which shares code for all other drivers. We leave the COMMONDIR variable defined in Makefile.inc as we need it for CFLAGS+= -I for each driver but migrate the .PATH to avoid drivers picking up the wrong files. Sponsored by: The FreeBSD Foundation (cherry picked from commit 03f6b1fd6af0bb43f74b38d8b5373f5485da0e8f) --- sys/modules/mt76/Makefile.inc | 2 -- sys/modules/mt76/core/Makefile | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/modules/mt76/Makefile.inc b/sys/modules/mt76/Makefile.inc index 739c85c60dac..41b18651e985 100644 --- a/sys/modules/mt76/Makefile.inc +++ b/sys/modules/mt76/Makefile.inc @@ -2,8 +2,6 @@ COMMONDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76 -.PATH: ${COMMONDIR} - # Bus attachments. WITH_PCI= 1 WITH_USB= 0 diff --git a/sys/modules/mt76/core/Makefile b/sys/modules/mt76/core/Makefile index 589063a23229..f2aec9dfcf4c 100644 --- a/sys/modules/mt76/core/Makefile +++ b/sys/modules/mt76/core/Makefile @@ -1,5 +1,7 @@ .include +.PATH: ${COMMONDIR} + KMOD= mt76_core # Basic stuff. From nobody Fri Feb 27 02:29: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 4fMXN20tQHz6T7l9 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN15rd3z40sv for ; Fri, 27 Feb 2026 02:29:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159377; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B3I198gj17dWpHFeYqWi6bItuf4a/YdxI961xYMga8Y=; b=KzLaAhy4hHht2iaZdyN/vY+NcOC/zADuVirQDUFSW76DHlwvKr/60cjK4a/HvN7xkXLglg +n8xMumeihI5kakmfSP5LbZTjD4IL9JG1dosdlgMjsgRIdEsUB/lRSKIZ3Ic8UU9mi3qzQ frFY+9J+IL+y6nnYsW94AxNy77FONT52ydMTWlfIE+SgparhCxLMvXYhz8ytpe8rvxOu5F 3SnIxL7jMRMAJYhw+Pa1f2t9B2B4ciB7E3UkOrImG/rIxVZ3bVSI1B1Yd1S9QfZbBikO5l pAZ3Ux+B4oynDLRz9r3BoXya0hi4JFOdXICTJrgfqN+Q+3bEC/G1WhjfaF8IHw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159377; a=rsa-sha256; cv=none; b=mR0inoBc6zg+zemMHYdnTLRF2VzYgETSed9lrdf+OxWeVY3bP8auYLNGB8g7STtObOqlHY HyUOnOVCEahzqJyd9ES/tLrxV5Nqc/VpMBzdJ8K/LWuzBf2lEOXtWpoJPbLvqQy5PlgIxH YXc8i7jKufraIsoNdObX7MESmlqu8mc61fi1mLxOTvJeQsz4j3Js5mIdrK9nBjIGJfhsT4 HPX3HES2jG99vAq2zrsiYZX3+5rY7ALJsxuL47qdkISeVFGlNZaGh/ezGhfxIZX7cHomsz HaFaPCb8xJqLIiHArBlyoQ/pj/OB8rIMsky44vHmN8u+X/06+MmUVnTS7fpiqw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159377; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=B3I198gj17dWpHFeYqWi6bItuf4a/YdxI961xYMga8Y=; b=jwEiSnh+FszEZccw2ycSJJk+9KacYWqh0NC76F2ZFUTaHJjKLiZdccaOuayZp6W3asRsLM xXjnp+CnIEktlgn30tgV/T8W6qjP3H7UKR1oFIUd9AchOkS63EnadyoV9LoxXb9Da87oD+ v/fupuIwn9n7enRWQJgUaROpAY2KjhP7ew3QfK+JLGkTa3V5h2II8t7mSsJ8YOzcXFGAmy Xo2C4DcJM033OvqdaHcnI6bxYv/lSISipiOlllHND7NCy1INTtg7fO0fI+t4CT0EcX1LSV H5h5wKqbszVQZwYHS+LsDuW+CKSvo5cMZiPFAcu32Tm1gHtstcr8BXIghad15w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN15LfZzyGw for ; Fri, 27 Feb 2026 02:29:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20fbb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: a90e903d807f - stable/15 - mt76: sort out MODULE_DEPEND for PCI and USB List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a90e903d807f359da63c9955155ba2487322c3c7 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:37 +0000 Message-Id: <69a10191.20fbb.15d5a329@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a90e903d807f359da63c9955155ba2487322c3c7 commit a90e903d807f359da63c9955155ba2487322c3c7 Author: Bjoern A. Zeeb AuthorDate: 2026-02-02 01:24:07 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:19 +0000 mt76: sort out MODULE_DEPEND for PCI and USB It is not enough to depend on mt76_core which then depends on linuxkpi and linuxkpi_wlan. Given each mt76 driver is its own module, each also needs to depend on these linuxkpi modules. In addition the core module usb part also has to depend on linuxkpi_usb. This in addition to the previously sorted PCI drivers, allows (or will allow) the individual chipsets (drivers) to load on systems with USB, if compiled in, as well. Sponsored by: The FreeBSD Foundation (cherry picked from commit b129f79a8985a92cd061afa4ee31311cfe31d285) --- sys/contrib/dev/mediatek/mt76/mt7615/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7915/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7921/usb.c | 7 +++++++ sys/contrib/dev/mediatek/mt76/mt7925/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/mt7925/usb.c | 7 +++++++ sys/contrib/dev/mediatek/mt76/mt7996/pci.c | 2 +- sys/contrib/dev/mediatek/mt76/usb.c | 3 +++ 8 files changed, 22 insertions(+), 5 deletions(-) diff --git a/sys/contrib/dev/mediatek/mt76/mt7615/pci.c b/sys/contrib/dev/mediatek/mt76/mt7615/pci.c index fe181d269419..ae701dc7d9c3 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7615/pci.c +++ b/sys/contrib/dev/mediatek/mt76/mt7615/pci.c @@ -206,7 +206,7 @@ MODULE_FIRMWARE(MT7663_FIRMWARE_N9); MODULE_FIRMWARE(MT7663_ROM_PATCH); #if defined(__FreeBSD__) MODULE_VERSION(mt7615_pci, 1); +MODULE_DEPEND(mt7615_pci, mt76_core, 1, 1, 1); MODULE_DEPEND(mt7615_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(mt7615_pci, linuxkpi_wlan, 1, 1, 1); -MODULE_DEPEND(mt7615_pci, mt76_core, 1, 1, 1); #endif diff --git a/sys/contrib/dev/mediatek/mt76/mt7915/pci.c b/sys/contrib/dev/mediatek/mt76/mt7915/pci.c index 4e94a137c077..2eb2b7079057 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7915/pci.c +++ b/sys/contrib/dev/mediatek/mt76/mt7915/pci.c @@ -266,7 +266,7 @@ MODULE_FIRMWARE(MT7916_FIRMWARE_WM); MODULE_FIRMWARE(MT7916_ROM_PATCH); #if defined(__FreeBSD__) MODULE_VERSION(mt7915_pci, 1); +MODULE_DEPEND(mt7915_pci, mt76_core, 1, 1, 1); MODULE_DEPEND(mt7915_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(mt7915_pci, linuxkpi_wlan, 1, 1, 1); -MODULE_DEPEND(mt7915_pci, mt76_core, 1, 1, 1); #endif diff --git a/sys/contrib/dev/mediatek/mt76/mt7921/pci.c b/sys/contrib/dev/mediatek/mt76/mt7921/pci.c index 30660837077f..46b59c4d0390 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7921/pci.c +++ b/sys/contrib/dev/mediatek/mt76/mt7921/pci.c @@ -595,7 +595,7 @@ MODULE_DESCRIPTION("MediaTek MT7921E (PCIe) wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); #if defined(__FreeBSD__) MODULE_VERSION(mt7921_pci, 1); +MODULE_DEPEND(mt7921_pci, mt76_core, 1, 1, 1); MODULE_DEPEND(mt7921_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(mt7921_pci, linuxkpi_wlan, 1, 1, 1); -MODULE_DEPEND(mt7921_pci, mt76_core, 1, 1, 1); #endif diff --git a/sys/contrib/dev/mediatek/mt76/mt7921/usb.c b/sys/contrib/dev/mediatek/mt76/mt7921/usb.c index 17057e68bf21..64881ef7cbf4 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7921/usb.c +++ b/sys/contrib/dev/mediatek/mt76/mt7921/usb.c @@ -346,3 +346,10 @@ module_usb_driver(mt7921u_driver); MODULE_DESCRIPTION("MediaTek MT7921U (USB) wireless driver"); MODULE_AUTHOR("Lorenzo Bianconi "); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_VERSION(mt7921_usb, 1); +MODULE_DEPEND(mt7921_usb, mt76_core, 1, 1, 1); +MODULE_DEPEND(mt7921_usb, linuxkpi, 1, 1, 1); +MODULE_DEPEND(mt7921_usb, linuxkpi_wlan, 1, 1, 1); +MODULE_DEPEND(mt7921_usb, linuxkpi_usb, 1, 1, 1); +#endif diff --git a/sys/contrib/dev/mediatek/mt76/mt7925/pci.c b/sys/contrib/dev/mediatek/mt76/mt7925/pci.c index 021f431c9ded..d57e1aacf112 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7925/pci.c +++ b/sys/contrib/dev/mediatek/mt76/mt7925/pci.c @@ -651,7 +651,7 @@ MODULE_DESCRIPTION("MediaTek MT7925E (PCIe) wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); #if defined(__FreeBSD__) MODULE_VERSION(mt7925_pci, 1); +MODULE_DEPEND(mt7925_pci, mt76_core, 1, 1, 1); MODULE_DEPEND(mt7925_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(mt7925_pci, linuxkpi_wlan, 1, 1, 1); -MODULE_DEPEND(mt7925_pci, mt76_core, 1, 1, 1); #endif diff --git a/sys/contrib/dev/mediatek/mt76/mt7925/usb.c b/sys/contrib/dev/mediatek/mt76/mt7925/usb.c index d9968f03856d..437c073d6a5b 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7925/usb.c +++ b/sys/contrib/dev/mediatek/mt76/mt7925/usb.c @@ -344,3 +344,10 @@ module_usb_driver(mt7925u_driver); MODULE_AUTHOR("Lorenzo Bianconi "); MODULE_DESCRIPTION("MediaTek MT7925U (USB) wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_VERSION(mt7925_usb, 1); +MODULE_DEPEND(mt7925_usb, mt76_core, 1, 1, 1); +MODULE_DEPEND(mt7925_usb, linuxkpi, 1, 1, 1); +MODULE_DEPEND(mt7925_usb, linuxkpi_wlan, 1, 1, 1); +MODULE_DEPEND(mt7925_usb, linuxkpi_usb, 1, 1, 1); +#endif diff --git a/sys/contrib/dev/mediatek/mt76/mt7996/pci.c b/sys/contrib/dev/mediatek/mt76/mt7996/pci.c index 241599dcbc72..5ca3b0819acb 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7996/pci.c +++ b/sys/contrib/dev/mediatek/mt76/mt7996/pci.c @@ -287,7 +287,7 @@ MODULE_FIRMWARE(MT7990_FIRMWARE_WM); MODULE_FIRMWARE(MT7990_ROM_PATCH); #if defined(__FreeBSD__) MODULE_VERSION(mt7996_pci, 1); +MODULE_DEPEND(mt7996_pci, mt76_core, 1, 1, 1); MODULE_DEPEND(mt7996_pci, linuxkpi, 1, 1, 1); MODULE_DEPEND(mt7996_pci, linuxkpi_wlan, 1, 1, 1); -MODULE_DEPEND(mt7996_pci, mt76_core, 1, 1, 1); #endif diff --git a/sys/contrib/dev/mediatek/mt76/usb.c b/sys/contrib/dev/mediatek/mt76/usb.c index 67c976bb9c22..b0d04a465f35 100644 --- a/sys/contrib/dev/mediatek/mt76/usb.c +++ b/sys/contrib/dev/mediatek/mt76/usb.c @@ -1141,3 +1141,6 @@ EXPORT_SYMBOL_GPL(mt76u_init); MODULE_AUTHOR("Lorenzo Bianconi "); MODULE_DESCRIPTION("MediaTek MT76x USB helpers"); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_DEPEND(mt76_core, linuxkpi_usb, 1, 1, 1); +#endif From nobody Fri Feb 27 02:29: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 4fMXN350Mzz6T7P4 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN26KSXz413Y for ; Fri, 27 Feb 2026 02:29:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159378; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4X4bL8/O1/rmOw9A4mpL/FfzptxCmm7FdG+jV2dgNN0=; b=gqPGcyQ+4UcEACXUezYBYEWYhVjHfM429/p2F80F2KmxfOrO8DtUqKcR82R3l+3ujZRrLD mwnWWSf7HrylEmjSgaV8P3GKpT9BEdGZ72fkl4+d6LMKeXMMZ3VpEtaAyTc1NTQfsFi696 bxcUt8vXKJM/5/CQq8XEeMzR7Fxd7x6ycaFLuOMI2mahymEsnK2q/RXrtGnQ743PLFkSSG dgb8oUN44LPjmBltl9mQwhcfRH0BFOe/qVapZUued9RKrAkB24cSpmOAQIYR2PmTZ9bsSg 41brcHERhUDqsER6obhQU3n7f2E7J153NmmkFc/JvJSTUd+Mni+vPQj0WPUedA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159378; a=rsa-sha256; cv=none; b=kF995QG/yDesTrNcr7zaW7eL5/HU4hPEoyvcYJZSfP3Q5JYUMJxRFc+68d6Sh6ErDHdCNd OmY5iufC7SRlFJ11Lgn4M6sNsKH04siq3zT6PRm9s58UEBUYXfDw9CtlACKZzLoKP04/wP ADv3XWIfVe4BRSplBHqUnCxXh0ToQR9AzfOGcjHxN8YTZI1pF1r2a95XML9Qx8X/fvZrsQ ifLXQqjQbllIzXx2dVX7OICDv3XVEaWcYv5t+py9uPqfbbYfa09oUCiHL7CrtVzO4uXVwF y7KHx1bZ4PROG7HRt++0kAPaTiTRkCfT9BBAMEygaG2mCcuH917po2ywRs56KQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159378; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4X4bL8/O1/rmOw9A4mpL/FfzptxCmm7FdG+jV2dgNN0=; b=d1g9HA1UYyX4/ApO883pVGNCtZiAy3GhwW3B+3OzakKfOMvVgff5aQzCxMtvZFx9UlhuKv FGwe8+fcR9+ytMaZRQ4XO1IvmQQxkLjrYKDmcU81VJLtifYairY9DPfWKSrr6ZYjpKPIg2 9fREqn/HgQup4RbjoMCCoCMWpgVVBfw+Sx2mU/5QteH9ZEZsr4yJ+EA7FiKc/pEf9lk0+u 89vurrCHF5E48ja8d9UONnDfmMQoDEdYX750h3j5jRVc+2pxK2CUVnZmYmezlu/9pbeJBx qX+hT0P6QUA1Pw44qhzeBSKPJ9wvVm7ILJZ5t92Fw977stu5FxgKuW64IDeKKA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN25jhSzxwH for ; Fri, 27 Feb 2026 02:29:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f657 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 4b312b0bcbd4 - stable/15 - mt76: make USB compile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4b312b0bcbd4870831104b3063bb792f6933e0a5 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:38 +0000 Message-Id: <69a10192.1f657.237a7c1a@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4b312b0bcbd4870831104b3063bb792f6933e0a5 commit 4b312b0bcbd4870831104b3063bb792f6933e0a5 Author: Bjoern A. Zeeb AuthorDate: 2026-02-03 18:25:02 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:23 +0000 mt76: make USB compile This is the mt76-specific changes to make the USB driver targets for 7921 and 7925 compile. Sponsored by: The FreeBSD Foundation (cherry picked from commit 642c8387647daabc2505497cdafef4d3ce82bbf2) --- sys/contrib/dev/mediatek/mt76/mt792x_usb.c | 3 +++ sys/contrib/dev/mediatek/mt76/usb.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/sys/contrib/dev/mediatek/mt76/mt792x_usb.c b/sys/contrib/dev/mediatek/mt76/mt792x_usb.c index 552808458138..05879ae232d2 100644 --- a/sys/contrib/dev/mediatek/mt76/mt792x_usb.c +++ b/sys/contrib/dev/mediatek/mt76/mt792x_usb.c @@ -7,6 +7,9 @@ #include #include #include +#if defined(__FreeBSD__) +#include +#endif #include "mt792x.h" #include "mt76_connac2_mac.h" diff --git a/sys/contrib/dev/mediatek/mt76/usb.c b/sys/contrib/dev/mediatek/mt76/usb.c index b0d04a465f35..e658334fe4e4 100644 --- a/sys/contrib/dev/mediatek/mt76/usb.c +++ b/sys/contrib/dev/mediatek/mt76/usb.c @@ -5,6 +5,8 @@ #if defined(__FreeBSD__) #define LINUXKPI_PARAM_PREFIX mt76_usb_ + +#include #endif #include @@ -474,7 +476,11 @@ mt76u_get_rx_entry_len(struct mt76_dev *dev, u8 *data, } static struct sk_buff * +#if defined(__linux__) mt76u_build_rx_skb(struct mt76_dev *dev, void *data, +#elif defined(__FreeBSD__) +mt76u_build_rx_skb(struct mt76_dev *dev, u8 *data, +#endif int len, int buf_size) { int head_room, drv_flags = dev->drv->drv_flags; @@ -495,7 +501,11 @@ mt76u_build_rx_skb(struct mt76_dev *dev, void *data, data += head_room + MT_SKB_HEAD_LEN; page = virt_to_head_page(data); skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, +#if defined(__linux__) page, data - page_address(page), +#elif defined(__FreeBSD__) + page, data - (u8 *)page_address(page), +#endif len - MT_SKB_HEAD_LEN, buf_size); return skb; From nobody Fri Feb 27 02:29: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 4fMXN41rg6z6T7ck for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN36ZLTz4114 for ; Fri, 27 Feb 2026 02:29:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vR7lvlgOc5Pw3rGHgpnW3/KPYFAYskAjHBlycXOT5TQ=; b=FwhrrCGBbIaJhTnobe3NMhN98+aYGDH83/EHEJR3fAXj2jqFfoVySAqkhNQJKdgDUJsoI9 TMIIXpWwFE90Jy9Le7nQRLGqwnnghUwIVkzlH6nCJQ4/6+u48LmYem2RVbtkHB/Zb0q6QE X247O6L46UXP70ds/XEnMxuyrUIl51EQi31Mm+S/5vc/5v1OjKK+XGEfQkKYq2awHToDw1 Q+LRtkBKQX+fCBqtritBNjiNG2MJ8BL1bwiv7wyi+Q8Ce/m7e9wyKCPO9vbx01V5BWoZ57 wtRQS7XAyVYc1ioe2RPyBygt4mfTiecjOhkwNRcGwluXk7jFXl50shTkZ5orpQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159379; a=rsa-sha256; cv=none; b=ayRORYhdlAyb0iXj+IMgUm4EOINqC0BNi+h3bqTrxgMDUFsa4J7pKQFSRxrChiSpvU4xtS cnPNbt9XaVOjRszKFU9eOlOomPQd0rfZkalGjl2mtmojHwaGFLe2qHdyaMhX98Lj9pV3/R aKMpzladpNUThnA5ZxMJ06757CHbhMmpROX96FF1O7Mx63Bf2dJC9d6RRwtYjWLwMmLank 33WPZYrPsi0ntV1SQ7I+5Zd4iAOxQfxX7OitUPcE6lxlZHHi0+ROx9GNEj8LdhOpBRkAwJ X6kuEHOZFNfsS+yzxLgVH+C2U7E9b5NMP1aLxNfm4ecjLMjd6gFwO+lB6xgBlA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vR7lvlgOc5Pw3rGHgpnW3/KPYFAYskAjHBlycXOT5TQ=; b=MNpP6m2YNy8XZ8guH1WKHK42Qb9C3hU9bOW68roeapcsx6JoGdEkHxKYiV1Dx5BDmXjr8j Cr31UlMfHHAU0wCVBCk+vmcFg3bGNHnarijZjlKlJQeVhjmDU6F9bN9woCx3HA0v0ZhrlB iRcrZiFdPyOiD6sTphcrRcrtBd9FF52UJaknyiYIFZ0H38eRtBzcjnssijrvASQ57KT3t1 78lfAmQJkh/JsbLyFYMqkHjN/Yre1vFV3a8tG+XpIFi8awd+/rhugQYBQANVWksxg/S5Fb dw1J8silMKi9DvaLv8hvH+2D91bSPleukGdcKMV5AVBKOKo5Be+x2qjqYxVqRA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN366sjzyHq for ; Fri, 27 Feb 2026 02:29:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fe70 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: efb9f7d98698 - stable/15 - mt76: mt7925: add missing LINUXKPI_PARAM_PREFIX List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: efb9f7d98698f25ad3a5ec9c9300ab51a6763a1d Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:39 +0000 Message-Id: <69a10193.1fe70.3b23ccdc@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=efb9f7d98698f25ad3a5ec9c9300ab51a6763a1d commit efb9f7d98698f25ad3a5ec9c9300ab51a6763a1d Author: Bjoern A. Zeeb AuthorDate: 2026-02-04 22:20:37 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:28 +0000 mt76: mt7925: add missing LINUXKPI_PARAM_PREFIX There is a module_param_named() in the file so we need to set LINUXKPI_PARAM_PREFIX to get it a uniq sysctl name. mt7921 has the exact same option. Without their individual prefixes the names would clash on systems with both chipsets and not work for both. Sponsored by: The FreeBSD Foundation (cherry picked from commit bc820edd2d7906e04e93aef8a6137991ad86f4cc) --- sys/contrib/dev/mediatek/mt76/mt7925/regd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/dev/mediatek/mt76/mt7925/regd.c b/sys/contrib/dev/mediatek/mt76/mt7925/regd.c index 292087e882d1..73f6f93faf35 100644 --- a/sys/contrib/dev/mediatek/mt76/mt7925/regd.c +++ b/sys/contrib/dev/mediatek/mt76/mt7925/regd.c @@ -1,6 +1,10 @@ // SPDX-License-Identifier: BSD-3-Clause-Clear /* Copyright (C) 2025 MediaTek Inc. */ +#if defined(__FreeBSD__) +#define LINUXKPI_PARAM_PREFIX mt7925_ +#endif + #include "mt7925.h" #include "regd.h" #include "mcu.h" From nobody Fri Feb 27 02:29: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 4fMXN55MfSz6T7P6 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN50Y19z40qt for ; Fri, 27 Feb 2026 02:29:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159381; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rsqH22kONSTzSsDBHRQcfVB2rJq5DHp9jFy2uC56kTg=; b=i99h07swvYPpuF0FB5eH18aDHFMx0y5vJxKrcw0isByXGzflrBftuwzGrm/3cC6wjxlNWG 5M+hIwh3kQY2OfTx8qHceOH/FvsTvXmtNDhOo8Pc7hz98MNSEReargguRq0iZgKWTRmRTi qqbXHc2vcmyCQ6ffI22Pba6g4KodiQG+ozsCUDq9OFWWZH1mZVOk1/X6LXp2P9XOXczVYS uRoFQQF494WAM334waLK1m7aDW7Zu5tD2ai5RaveIWTbLXuUNuKmmduyEgQH47WtG88WEb VfR4NZHUC9k2FHjRZ+t1wRRktDcEbJ/bHbxHxHFVdTttz8TOUELjqcCqAx4PSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159381; a=rsa-sha256; cv=none; b=MkNcmAmuzuTlq5cJbS5tafOjB5zbjsrAa62C/6lIVg4Kef9ifqJJqXBicJhuo1kdmOpsxX DDnW/HqnzN9YqWJlYuSY6J4y0DkYgjcQ/j6sUfHKCUtCdLMlGCgpvR1gqW9SgZ2FXaE1rM UKhEEHwyajbFp9gl7IY8vUb2qLC+0BCTV+goTD+HoNma5I2djeEoZdblK/g0nBlebYt7MJ yPq+yFLMKSHXWGj/eXwukKjxgYZwxb4meN5Yf6nqMj2oJcjRHSkJyAeYyLOgjHJHDO4tCw /M/MBrTUk6RF1e0+TBCdKHNvlakYMf7HY0vY5Q1DIkePqiCWME0jPLaXCjsaXg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159381; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rsqH22kONSTzSsDBHRQcfVB2rJq5DHp9jFy2uC56kTg=; b=wa2PJqjWStxG0KPfpxnO8ja69ifUBF6EQ799cG7H2jnCYl+HgrqX1GZAkWW5R4q8HWqM76 rJbBaisKnbX3ZFrwtxF3+JCRQBimXkkekeeRu6EKXO02RG6k2Sf8hzMdzntNCH4tq4VDID B9AWDRBUlZXrE4giJWPkSj3wv+mQLq7+QZERkq9siOiJta5zLfd4+DKLwJPCBJXfxJ1ifK /VSmIbdREdptmCTyseRa9gyqosAKUWeq+PIMEvNp0LAEdIBO5+6jAypSH5QUgh0M7+6Wzz 5voU5Yf4CqUeoCVPARZ6PCLWZ0zs3lotJeASCyBbxa0kOQ9/EQ+6IFc/uAbvIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN46y0pzyGx for ; Fri, 27 Feb 2026 02:29:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21383 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 7c8425858944 - stable/15 - mt76: fix a check wrongly giving us random ether addresses all the time List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7c8425858944a20c92164d4dd537ee7a8308072b Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:40 +0000 Message-Id: <69a10194.21383.3ce2c824@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7c8425858944a20c92164d4dd537ee7a8308072b commit 7c8425858944a20c92164d4dd537ee7a8308072b Author: Bjoern A. Zeeb AuthorDate: 2026-02-05 00:20:04 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:33 +0000 mt76: fix a check wrongly giving us random ether addresses all the time Do not cover the is_valid_ether_addr() check under CONFIG_OF. Unclear if this is an initial porting or a merging error before the driver hit the FreeBSD src tree. The end result was that we always got a random link-layer address, while the individual drivers may have setup phy->macaddr and this function would only overwride if given in device tree. Only if both, driver and and the OF backup, fail then go and use the random link-layer address. While here adjust printing the random link-layer address using a FreeBSD format specifier and not the unsupported Linux one. Fixes: 6c92544d7c97 Sponsored by: The FreeBSD Foundation (cherry picked from commit 3afe9e12fb331dc698ac62f3b918d82d768a2792) --- sys/contrib/dev/mediatek/mt76/eeprom.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/contrib/dev/mediatek/mt76/eeprom.c b/sys/contrib/dev/mediatek/mt76/eeprom.c index 1d5b95226a16..99e1bca3c19f 100644 --- a/sys/contrib/dev/mediatek/mt76/eeprom.c +++ b/sys/contrib/dev/mediatek/mt76/eeprom.c @@ -186,16 +186,19 @@ mt76_eeprom_override(struct mt76_phy *phy) err = of_get_mac_address(np, phy->macaddr); if (err == -EPROBE_DEFER) return err; +#endif if (!is_valid_ether_addr(phy->macaddr)) { -#endif eth_random_addr(phy->macaddr); dev_info(dev->dev, +#if defined(__linux__) "Invalid MAC address, using random address %pM\n", phy->macaddr); -#if defined(CONFIG_OF) - } +#elif defined(__FreeBSD__) + "Invalid MAC address, using random address %6D\n", + phy->macaddr, ":"); #endif + } return 0; } From nobody Fri Feb 27 02:29: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 4fMXN63Mpxz6T7j9 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN61jq1z4165 for ; Fri, 27 Feb 2026 02:29:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159382; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0suBKrPbRXNtdRo0+Z6dNmumqVz/WaCN7WnySvQ2tso=; b=KmPp0kNGYm73aSxFFZmmLNmwWH4aXufRw11vI1bT2At8s34JBamfxPQeGR5+8EJXQtqEY6 vKPK+qjkyjDJvMJY6anCCQ3sov6ANKcf2mb6pUTAMgdcqKLJfOTOhDHEvTKG3Nkn2xAPSI GWrJru/goLLhbUSmx+kFHbvc08LFIaZ9e+eXwrX08uQ/hqzPV06xtvGUIOGcXb1qbpWytC a7yUgMfSUTaAGi8cbu61oMY6JHlxnkfSKYND+APtdwYzMVJ+94sDxcU1o4TmfU24n5qOck QAxdO4uX4mAdSYgM8Z2SS3SQsMrM4F/vCfunHdFWI8xZzslEAizqD+sJyd4koQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159382; a=rsa-sha256; cv=none; b=sS/t3UoCM6mFylb/XTb7OBIdshBTbFzc0c153g8Oa7lRz7UKeth09RicNB5H4dsfu8xrWK Y7ecJN+E/I+By8lrNZaZq7243ZE+AX76ulFaXqOu+l8N4jjgGNOqOcA4R0igV6GPo0/wXU aWnxNa4SZQTAH2I/BoUTGv9PEnQECdOoSxBUYC371sAAZOHy4wS+s8lWKQzXBtVc+hBdk0 TZWeBdEMYVdqz75OOtp96Wf0U46UM9f/5VbZS7e3Mid0oFNGRHH0BEjmT3kRGyG6HXNVOd MR+Nftf8nbYBIBbIZ5KXqR5parc0at5mWxOmsYk0D+oLx4i91sKSsu+zM158Og== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159382; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0suBKrPbRXNtdRo0+Z6dNmumqVz/WaCN7WnySvQ2tso=; b=vdJzfmtHi3+fbxRMw4E+xnic5zqUZpY4/GWmmA4VOyMeTBQIOP2DJ0e+DGB60Ho+TUQ432 c0rySX8rKIBho6Lzrw8ee6tt22JEeIdDyZMbG8upw14ViBMoaHkytj/dfwDgLH4Fv50Gc0 v9EeR0WbhAlVW7rTqgy0/RcXRemitKaUjbD8BjMfIrpymTpzc+OfxBdXGNOSMB3iNWHlOM U53AQS+6cLCmQVb68FzJw5kW47IF01j7tbG6OxoZYVHmVZSXN4lvQM15DnIob+Vwlfqpni W2g0HSLyimiNT6PTR2qGCYjpo+6hb06i1t4o0nchJYjgO6Sskq60/vKgSl7ONg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN60nymzxwJ for ; Fri, 27 Feb 2026 02:29:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2033b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d16077f48468 - stable/15 - LinuxKPI: 802.11: set extra tx info flag for EAPOL for mt76 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d16077f48468f080902b88d5445f44e5fd8d30f4 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:42 +0000 Message-Id: <69a10196.2033b.60f9ab7a@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d16077f48468f080902b88d5445f44e5fd8d30f4 commit d16077f48468f080902b88d5445f44e5fd8d30f4 Author: Bjoern A. Zeeb AuthorDate: 2026-02-04 22:25:50 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:39 +0000 LinuxKPI: 802.11: set extra tx info flag for EAPOL for mt76 mt76 requires IEEE80211_TX_CTL_USE_MINRATE to be set for EAPOL, so add it. Sponsored by: The FreeBSD Foundation (cherry picked from commit c529e1a8f8edb575de6b109981c4ca7ffdd3b81c) --- sys/compat/linuxkpi/common/src/linux_80211.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 4ce0a2094adb..2a56d19adbea 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -5697,8 +5697,10 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) c = ic->ic_curchan; info->band = lkpi_net80211_chan_to_nl80211_band(c); info->hw_queue = vif->hw_queue[ac]; - if (m->m_flags & M_EAPOL) + if ((m->m_flags & M_EAPOL) != 0) { info->control.flags |= IEEE80211_TX_CTRL_PORT_CTRL_PROTO; + info->flags |= IEEE80211_TX_CTL_USE_MINRATE; /* mt76 */ + } info->control.vif = vif; /* XXX-BZ info->control.rates */ #ifdef __notyet__ From nobody Fri Feb 27 02:29: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 4fMXN749KBz6T7gC for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN72Bjhz416B for ; Fri, 27 Feb 2026 02:29:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TaPFPqKq55M2/xoCdJawHijo1r6W1pFOVVlxHzJ4xSw=; b=m/7FuIQmMyw6fDngrRsFZWj4D1do1IWB/6et0Rbu2m9xvbk8vmfoG4T28TaYgZLLVBwOrZ 4VYBySF2VWoIRkXM3lCQ9zDj5njNY/RkN2ssbkmisS7NHkPCHZZ4pTCt2INXT6OVm3cKxF T4AIdZ2nxAXDGxfKtaUDiKfT5QJMLHT6gZLVFyloptFUEe5Azk8AebY3m7mKhbRynt1zWE 8IRcnrERjNEBiCUyh5n6pjFyEMg469QqetUgu9XczJ18YWpYgJ/0WeYZaeAXEE3/bW7muj xhZnq5CrpGNOal+L0ATVyUhaMpbFN4i7cAN/mHLkTJMne/06MB7UT3n8FerIKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159383; a=rsa-sha256; cv=none; b=fd+HUgiGTW3ZlH/dhxqrnfQjmCLPGJUyThjczmmugdgB0h6lRuTd3clLsgfNf6wf0SX86a 2QLUEDC1AH39lpmYSrpjo22MpW7rLVfyuZHexHKzDiBdqd40xO89uj6wJX1ROlPOUPwHxS ekRWqlF442rspinJGhBaQHjNvdEBM3pQ5k6dn9HjqPueLwNMTlPTf+rkmVJjw3F9HRr9oA IXAOVB7P9PaLlNd05asWGoU8Ypyc3whCDjsaymJJeyckYkPus7mnROuoH7HTgj5xWOSRMX vkp/Jg94dU85Y80XJXFHS8pVdmYjy3CQzSEcMpWZQvMSr9OSbdbF3oMIA6tnJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TaPFPqKq55M2/xoCdJawHijo1r6W1pFOVVlxHzJ4xSw=; b=JPSMM3cazqhzj0RZRqQ9OT3o1lfjZfsZpPmA/C95OSp7NF46AUilU4NsRiqtADPXttY0TG uzB1Lk0tyW5hmk2aK2s+oT1WYL2OYa2iRWYOrrkNyppBz3W5oLWHr6Oxy3kdRy16LbmjPL 0QceBVUvIYhzhmacMpByEs1WM3b+gimobcKfkfDRX7nbdXAeyGpsJvKGJAoGBTRyW5h2Oz hHzro+w8V6JbafRzAXuwdga13n9vH0lJ5xPd2Zi/p58PTyvNWLwroChT3Qk5ld5z0s30XP e4dmlkTHYyA/Ru5Tl+hjquhYPenKNnBcxD1c7/DI/CV6IYrZX1qZYHgRzOykag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN71hZXzxR5 for ; Fri, 27 Feb 2026 02:29:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 204cb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d5f1a9f574f9 - stable/15 - LinuxKPI: 802.11: make sure we are scheduled before wake_tx_queue() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d5f1a9f574f9144c86450440ff495e471735ae26 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:43 +0000 Message-Id: <69a10197.204cb.1905cf86@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d5f1a9f574f9144c86450440ff495e471735ae26 commit d5f1a9f574f9144c86450440ff495e471735ae26 Author: Bjoern A. Zeeb AuthorDate: 2026-02-04 22:39:01 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:45 +0000 LinuxKPI: 802.11: make sure we are scheduled before wake_tx_queue() If we are not scheduled before calling wake_tx_queue() packets may never go out, which at first will look like EAPOL fails (as wpa_supplicant suggest possibly with a wrong key). Using monitor mode it will be clear what is going on. Pass a flag down to wake_tx_queue() to call ieee80211_schedule_txq() in case (*wake_tx_queue)() is supported or not, which solves the problem for the lkpi_80211_txq_tx_one() which was failing. Sponsored by: The FreeBSD Foundation (cherry picked from commit 7d60647a1a6c19e7be33428c33b77faadfe863a1) --- sys/compat/linuxkpi/common/src/linux_80211.c | 8 ++++---- sys/compat/linuxkpi/common/src/linux_80211.h | 5 +++-- sys/compat/linuxkpi/common/src/linux_80211_macops.c | 10 ++++++++-- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 2a56d19adbea..54571b28e2b8 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2025 The FreeBSD Foundation + * Copyright (c) 2020-2026 The FreeBSD Foundation * Copyright (c) 2020-2025 Bjoern A. Zeeb * * This software was developed by Björn Zeeb under sponsorship from @@ -2150,7 +2150,7 @@ lkpi_wake_tx_queues(struct ieee80211_hw *hw, struct ieee80211_sta *sta, if (no_emptyq && ltxq_empty) continue; - lkpi_80211_mo_wake_tx_queue(hw, sta->txq[tid]); + lkpi_80211_mo_wake_tx_queue(hw, sta->txq[tid], false); } } @@ -5764,7 +5764,7 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) #endif LKPI_80211_LTXQ_UNLOCK(ltxq); wiphy_lock(hw->wiphy); - lkpi_80211_mo_wake_tx_queue(hw, <xq->txq); + lkpi_80211_mo_wake_tx_queue(hw, <xq->txq, true); wiphy_unlock(hw->wiphy); return; @@ -8751,7 +8751,7 @@ lkpi_ieee80211_wake_queues(struct ieee80211_hw *hw, int hwq) ltxq->stopped = false; if (!skb_queue_empty(<xq->skbq)) - lkpi_80211_mo_wake_tx_queue(hw, sta->txq[tid]); + lkpi_80211_mo_wake_tx_queue(hw, sta->txq[tid], false); } } rcu_read_unlock(); diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index d4f18fcafbba..3d25ab4a857b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2023 The FreeBSD Foundation + * Copyright (c) 2020-2026 The FreeBSD Foundation * Copyright (c) 2020-2021 Bjoern A. Zeeb * * This software was developed by Björn Zeeb under sponsorship from @@ -481,7 +481,8 @@ void lkpi_80211_mo_mgd_complete_tx(struct ieee80211_hw *, struct ieee80211_vif * struct ieee80211_prep_tx_info *); void lkpi_80211_mo_tx(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *); -void lkpi_80211_mo_wake_tx_queue(struct ieee80211_hw *, struct ieee80211_txq *); +void lkpi_80211_mo_wake_tx_queue(struct ieee80211_hw *, struct ieee80211_txq *, + bool); void lkpi_80211_mo_sync_rx_queues(struct ieee80211_hw *); void lkpi_80211_mo_sta_pre_rcu_remove(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c index a85e6d0d0dd7..634cffddea9e 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c +++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2021-2022 The FreeBSD Foundation + * Copyright (c) 2021-2026 The FreeBSD Foundation * * This software was developed by Björn Zeeb under sponsorship from * the FreeBSD Foundation. @@ -644,11 +644,17 @@ lkpi_80211_mo_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *txctrl, } void -lkpi_80211_mo_wake_tx_queue(struct ieee80211_hw *hw, struct ieee80211_txq *txq) +lkpi_80211_mo_wake_tx_queue(struct ieee80211_hw *hw, struct ieee80211_txq *txq, + bool schedule) { struct lkpi_hw *lhw; lhw = HW_TO_LHW(hw); + + /* Do the schedule before the check for wake_tx_queue supported! */ + if (schedule) + ieee80211_schedule_txq(hw, txq); + if (lhw->ops->wake_tx_queue == NULL) return; From nobody Fri Feb 27 02: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 4fMXNB0BDqz6T7PD for ; Fri, 27 Feb 2026 02:29:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN93jw6z418r for ; Fri, 27 Feb 2026 02: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=1772159385; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zwaG3aQBPxv/CnTcm+UYaybmo3Obyr824MB7nCOCsIs=; b=wv8t8I9c5WizXYdpjeGbYUmp1YrTrwbCHrzDtaBQ/dvAqOXt5FeY2DxMnnbd7Q72DmnFUE n6wF7YYc1Yvu2o0RmDVWv/UgoDOh91SbkImJsyhZQPKUpljC3GsZ7SX7rpKsi4EMytcXe9 XpyvMdiZ/W1XtVsEC4pDeEGIJV1EQjKBREwMhpOifvbGRT+rukmF0d/3prM1kmpCkdzxaC iljqOU5mjuLRD6gjg1fCeOiHU0Si2HX1fNNxHzMozhy+YbdKNR6mXQ9X2D8k4BXE8NGiNo jr1mDBBuVEkzuyIcWWFZH0ZE8kQUOPgINHCgxb6NFw5x8AZjNS8IyknRub8jSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159385; a=rsa-sha256; cv=none; b=e1kVKxJRMSkF3eSgABJsTHvwdaZ9iTJ6kkVZ3jXrdpkgq1QZZlW5J5MQncOwOdNDAW3DnN 55ATE6ylMuZqFtcJAopzVKvxwmIjPTNN8cJ7Qh4NK7D/HuJvv2vbjWRQaqBOVThg0Arwo7 y4CEQh9zoNeH61qpyJnvVnA6EfO/0+oO1PZAOMhFZHF3mPUOjN5bl/RdIRm5Cpvxwh6Gq5 EZ76uZdbM82LqPCo4y9wN9891nxcxpAmjCs1y8YG6GYzbYWgbr2+BNqJY8wy2MTbpzjjHi 7CWx4Dxb74naMz/o6aEcpV1Dmn8KbsmXFFcgq8yVNO9oRNkHRrCoP/p0jFLw8A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159385; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zwaG3aQBPxv/CnTcm+UYaybmo3Obyr824MB7nCOCsIs=; b=nOOc0PoUlgS1oQUNlsdrQEyFR5Z7kn2SmgXhsxWHmYLaqGWWIZKghqKg+OK35ntqwtT+Y+ mbgI8PEw0nfh8PTK97zwIzZLQbb9BEEMD8TLgXICQrm3pBhp++MwKjYvSU728mzlWUiUMI FA8e8vLrbzC//DlqPS2ErWTKk8zYPMTmNQ21zyGGO8A/WNHDSYqE5f/ADL2KP9K4kvB98B cGgoMI2RT12lL+Rz1C94BXQB5tq28Opikl10XEDaiCjyJkeFoNXdIsbxNiGOF+HKBHT2mM +YngYLgu0LlasFltRjl8cJ7aefyWcWB16yqBmRHbCM+TXt3msBQ98L+wVkoJRw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN93GPPzyZb for ; Fri, 27 Feb 2026 02:29:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 215ca by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: f7d063c451bf - stable/15 - net80211: in net80211_vap_printf() also use vprintf() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f7d063c451bf7fd3b8d6de2296380b471845db09 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:45 +0000 Message-Id: <69a10199.215ca.625a35d0@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f7d063c451bf7fd3b8d6de2296380b471845db09 commit f7d063c451bf7fd3b8d6de2296380b471845db09 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 13:43:51 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:02:07 +0000 net80211: in net80211_vap_printf() also use vprintf() While everything else uses vprintf() and net80211_vap_printf() vlog() the debug output of wlandebug sessions can be weird. For consistency use vprintf() everywhere to have homogeneous logging. Sponosred by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D54795 (cherry picked from commit 840f478eed2ab18abd1088aa12587bb708a46b56) --- sys/net80211/ieee80211_freebsd.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c index e01d0bf20f5e..d324d3769bfd 100644 --- a/sys/net80211/ieee80211_freebsd.c +++ b/sys/net80211/ieee80211_freebsd.c @@ -1352,7 +1352,7 @@ net80211_vap_printf(const struct ieee80211vap *vap, const char *fmt, ...) va_start(ap, fmt); snprintf(if_fmt, sizeof(if_fmt), "%s: %s", if_name(vap->iv_ifp), fmt); - vlog(LOG_INFO, if_fmt, ap); + vprintf(if_fmt, ap); va_end(ap); } @@ -1362,14 +1362,12 @@ net80211_vap_printf(const struct ieee80211vap *vap, const char *fmt, ...) void net80211_ic_printf(const struct ieee80211com *ic, const char *fmt, ...) { + char if_fmt[256]; va_list ap; - /* - * TODO: do the vap_printf stuff above, use vlog(LOG_INFO, ...) - */ - printf("%s: ", ic->ic_name); + snprintf(if_fmt, sizeof(if_fmt), "%s: %s", ic->ic_name, fmt); va_start(ap, fmt); - vprintf(fmt, ap); + vprintf(if_fmt, ap); va_end(ap); } From nobody Fri Feb 27 02:29: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 4fMXN85c69z6T7lM for ; Fri, 27 Feb 2026 02:29:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXN82zlsz418l for ; Fri, 27 Feb 2026 02:29:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159384; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nHzAhlRxaeXlnRlFRi3uJdwbFQswAnin7pTK5DkxkZY=; b=BS6sGatTOJXlsv5qRxancwPqWeM8vpvi+7f46sv4sy7Q4HpDY3or7kRK245oBhty/axRnf pA7XR6Wu16Ud4wdyu8Xozxfuux395pf1tYERiq/w6hAy2D+LEoAmXAuGe1eSU3YhLXujN2 M2miBc2/8+pfrJoJlCyMKT1JoLfNqeGrsTqdGNfMBvQSjzo2owZGhX49rcCNePjfvw7k9o DHG5BWzDQoBXbToKPtTZfgu820xyoRTVVB15HbW3HNfOKFaDHxJJsHnVbBNKEZNmLb56sq Ocq7Voq7GIrec8PAmgs9j0Bixax+E9xLiat+J5Atl2oCy3JKNJ3tWNOG/9jYJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159384; a=rsa-sha256; cv=none; b=D72kZge74CQPN9+v8lRVJdYhQaqDti2Vrbc3N15BJjXJlNx3duLUU4V4Zl3UTy/6OsvcFh 10/tPjTbpxM0Q3viTZVl3PacT6oQCTE06ADf7QAAr0F/LCTquM3v1GaKdb8ShT/4UMQvj6 xUcN0uU6MrmOIP/GtXQWaBHzlfYJk5Dq8Z9q27jrI0d3VGbak3jjLzyP9NuA/K1dQDOMF1 S2yN1Gz3Xuw8q3haqmPQqQfw/9TRtE10rtscHMfC62IkXN/wd7zOAGxfMWaR2RFueqngeK O+RSbfAns5ou2Oxhqn2XGOV+qlhqXQ8wgUJ9H+ZOMHPuCz7NbxUhGo0kkCg3uA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159384; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nHzAhlRxaeXlnRlFRi3uJdwbFQswAnin7pTK5DkxkZY=; b=G3za+M2pgm/9UITBBAPEPS4HJsZUrF5H6vOQbvhw0u6Ic7a5ucxiJ7IHTzddGqJhuRke8L ZTXSG0ExMXb4RE0fHs0EqgPOzMKOzblwqPMALTnrvYQ6ftYHEnes4i8+xPfkAVRDiOPkre 1OPsEza69pkSiHiUF3aOFegXmVT59Xo9SQ4F6AkIMNKgLjPZ82jFzwdTcpBv9qOPSy5Niv UAAJ5nyhHCkG51iZb/d5/rEPS3HIRglbsUswx0bj9DT2EkiGCBFWFAbZU/maIBYBxWv2Qy fSwNyrfnGSZ4xZCUuUAcbM0hKMfEnzZW5g/Q8L6p74hPPQBw5aqVPGE9smHDrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXN82SYDzyZZ for ; Fri, 27 Feb 2026 02:29:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f6f1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d89845f449da - stable/15 - LinuxKPI: 802.11: catch possible NULL pointer deref with mt76 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d89845f449da734a3d9893552c5b0da963c90819 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:44 +0000 Message-Id: <69a10198.1f6f1.7641dc28@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d89845f449da734a3d9893552c5b0da963c90819 commit d89845f449da734a3d9893552c5b0da963c90819 Author: Bjoern A. Zeeb AuthorDate: 2026-02-04 22:46:47 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:01:54 +0000 LinuxKPI: 802.11: catch possible NULL pointer deref with mt76 With mt76 we, for the first time, see that txstat->skb or txstat->info may not be filled in linuxkpi_ieee80211_tx_status_ext(). Guard for these cases checking for skb and info to be not NULL and assume a TX failure in case info is NULL. Sponsored by: The FreeBSD Foundation (cherry picked from commit 94be5dbdfd22de4ec9ad699803ae18d9d209d824) --- sys/compat/linuxkpi/common/src/linux_80211.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 54571b28e2b8..0b732cb691c6 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -8304,6 +8304,9 @@ _lkpi_ieee80211_free_txskb(struct ieee80211_hw *hw, struct sk_buff *skb, struct ieee80211_node *ni; struct mbuf *m; + if (skb == NULL) + return; + m = skb->m; skb->m = NULL; @@ -8329,13 +8332,13 @@ linuxkpi_ieee80211_tx_status_ext(struct ieee80211_hw *hw, struct ieee80211_tx_status *txstat) { struct sk_buff *skb; - struct ieee80211_tx_info *info; + struct ieee80211_tx_info *info, _info = { }; struct ieee80211_ratectl_tx_status txs; struct ieee80211_node *ni; int status; skb = txstat->skb; - if (skb->m != NULL) { + if (skb != NULL && skb->m != NULL) { struct mbuf *m; m = skb->m; @@ -8345,7 +8348,13 @@ linuxkpi_ieee80211_tx_status_ext(struct ieee80211_hw *hw, ni = NULL; } + /* + * If we have no info information on tx, set info to an all-zero struct + * to make the code (and debug output) simpler. + */ info = txstat->info; + if (info == NULL) + info = &_info; if (info->flags & IEEE80211_TX_STAT_ACK) { status = 0; /* No error. */ txs.status = IEEE80211_RATECTL_TX_SUCCESS; @@ -8410,7 +8419,8 @@ linuxkpi_ieee80211_tx_status_ext(struct ieee80211_hw *hw, if (txstat->free_list) { _lkpi_ieee80211_free_txskb(hw, skb, status); - list_add_tail(&skb->list, txstat->free_list); + if (skb != NULL) + list_add_tail(&skb->list, txstat->free_list); } else { linuxkpi_ieee80211_free_txskb(hw, skb, status); } From nobody Fri Feb 27 02: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 4fMXNC3QgLz6T7d4 for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNB4914z41JF for ; Fri, 27 Feb 2026 02: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=1772159386; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1BumuuwSTixL0nt+qJtEiTvYNRtyaMg6invukKt6Eso=; b=RJZ1EWP9se30K9wOGavllh/YRw5jzVF2ZY0YzgNcxwp5Pwt9SO6N+92dx08tu+1l3XBeav RDu2d7zzhxnukL4pkqhs/K+2Jo0zsSNJ1YpdM2Xz0b0m05JanQvFyKy+Oj7yuRk5UUPkQc jV3jiRbbz3iVZsyTwZ/5inkbdrQdn5T5AdSZaxlBvkYw2Wa+yMi1rbRPMW5eaFCIXrRh/d aJ+tARuvG54MSPqABlvk/73fqW5tDkV/9RXOjpwGK/BbuH3nLsBtIOTxriUeM4W2iMTx38 /FY5uTgcMW0Jk71nZTzNAkflQIfsx3/atYZUAc/5Bmf1+SRpSySawiNNBDc0gA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159386; a=rsa-sha256; cv=none; b=Osy3zRvonKjgebVPBUPy1Hm/zMUKJYP/JpxCUPw8K5H70fndUCmb+8dnb0zvcoPyTvNDdd a0f0nIJDZWw9f2IokxaFJVpyMU183vLs37IQ+Xle0OICTL7l3fY+0bp+eeeWmETkSHOAdS 9xoDh0HQGlwjk2Pp7xyixikLo3m9SS3iwRe+8IJfoPBiw8zf9LheZoBUAWhTAAUrov4Yw3 79JITF5u56pMY63byhPcL6Un9RTXr44Q1CMhTBAAgEyHY9by8HqH8zgmxL8sHwsfUqoAa/ ifALmHUdzsmT8saCimcBSlWPa5X8cOC9J1nRHDOAsQXg/MbYa4WzadG09SvxFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159386; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1BumuuwSTixL0nt+qJtEiTvYNRtyaMg6invukKt6Eso=; b=Fyv3+EIuG7UPpen4sM01A4V8I6ijLnzLmL+WyeL1rrQ2nCa9inYu2cgPMl7kEgtkSVoTep OFrUnPyo+aBTdjntoFRu440gJL5or8hkuYRD1OhDUh00hn0RBi3qcAluWPGMpoFL7vTu0x NimmKhsOX7sXMb8BBZh1jSmovQ+sOUJavY0qLfySu82V25/G1YioQj8HZxpmKN4FrTFTZQ W6tj+Ly1GZ+UehAerPvJBSGtSBH/ThSa+51uefoUvodt0CZg3Kz+u4atn5Fpg6BWbo71bE iLpxaZCTmmHKcaNcdP8bAgONTaIBLd8Miq5zqlLH9eBgxdQE34UGiTGt4ElViA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNB3gLhzycZ for ; Fri, 27 Feb 2026 02:29:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ece4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 9c0f88c33ce0 - stable/15 - LinuxKPI: expand dma_sync_single_for_cpu() in lkpi_dma_unmap() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9c0f88c33ce02d8b842e7e75ba7b0beb7edebcbc Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:46 +0000 Message-Id: <69a1019a.1ece4.7564fa9@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9c0f88c33ce02d8b842e7e75ba7b0beb7edebcbc commit 9c0f88c33ce02d8b842e7e75ba7b0beb7edebcbc Author: Bjoern A. Zeeb AuthorDate: 2026-01-23 19:14:18 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:02:27 +0000 LinuxKPI: expand dma_sync_single_for_cpu() in lkpi_dma_unmap() In case lkpi_dma_unmap() would call dma_sync_single_for_cpu() we get into a lock recursion which will trigger a panic with debug kernels. It would be hard to provide an internal "locked" version for dma_sync_single_for_cpu(). In the old days this would not have been a problem but (long before we added the missing sync calls) some locks got folded into one in a6619e8d9c1a3. Sponsored by: The FreeBSD Foundation Observed with: iwlwifi mld Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D54841 (cherry picked from commit b615b4805a9ce83b9b86dd66d46a9f220f9f89c6) --- sys/compat/linuxkpi/common/src/linux_pci.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index cf8a6ffeb46c..c8d1989f669b 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -1720,9 +1720,26 @@ lkpi_dma_unmap(struct device *dev, dma_addr_t dma_addr, size_t len, } LINUX_DMA_PCTRIE_REMOVE(&priv->ptree, dma_addr); - if ((attrs & DMA_ATTR_SKIP_CPU_SYNC) == 0) - dma_sync_single_for_cpu(dev, dma_addr, len, direction); + if ((attrs & DMA_ATTR_SKIP_CPU_SYNC) != 0) + goto skip_sync; + /* dma_sync_single_for_cpu() unrolled to avoid lock recursicn. */ + switch (direction) { + case DMA_BIDIRECTIONAL: + bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_POSTREAD); + bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_PREREAD); + break; + case DMA_TO_DEVICE: + bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_POSTWRITE); + break; + case DMA_FROM_DEVICE: + bus_dmamap_sync(obj->dmat, obj->dmamap, BUS_DMASYNC_POSTREAD); + break; + default: + break; + } + +skip_sync: bus_dmamap_unload(obj->dmat, obj->dmamap); bus_dmamap_destroy(obj->dmat, obj->dmamap); DMA_PRIV_UNLOCK(priv); From nobody Fri Feb 27 02: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 4fMXNC5sszz6T7PM for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNC4VKkz41Cl for ; Fri, 27 Feb 2026 02: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=1772159387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4jrMpghhSErTk+tXv8ddoznwpooCwotgDgPPWa1vbYI=; b=YaxuhUvEDwf2xQiYoMdIvcDf78gdyU0accTGDmJZuXG9ONm0Q/E8zSINHEsx7qbBx+EscA Ql/bneuitCk4R7fxhClqjQ9Ln1gdpmfHSapvDofn5bc0yIqIaD17KRQZ5qx9IpVsKFjUvl tOdmCxXAiKBDsXthL8qWbQlfuk1+MUl6tkYPweDJUTlV8oMKs7M0NfkbO0MOzioJVecsbn ah2kXPq3pO2wTcGKeUBB/lCg4JvOed5G64FC8wPB4sTZD8rJdF8PAGRmpv57vstfX4sK2B zxd0bWhEXESdcXdkFwsNw1/hif57QgL7mQ0PzPqZzUN3vq0no+OGJKtTyWZS3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159387; a=rsa-sha256; cv=none; b=fb3qSOlRe/mt90jmYnXnBYju+eBIWL3C3idrIFha/vJlASbZJyuvc76WcQQmMd3oEhdxyr yfovj7MRYGjiRXd3Qb/8u162fBbOZOi0FP7Yu0OhZV51FmKVtW/c/5bRou1uitvn4VV2pW flphAmPRKCD8VypgTbxvAY6OOP4mquHRcXNLxQqjy4pTerkxjmDfF9hsbqLz6ZvKnRHuN7 Sf1P45eywZM9shi+GLBJycS6LeRl5K8GBWUIRd0WUzHd11ZqQl9k4qffPv2f/MIalfLWru /1KzwwSzaUeRi1Q9IEn+m3+I4l2GbndtnnIDJuzo8oAEWA+R2XIb/Rvcp4mRxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4jrMpghhSErTk+tXv8ddoznwpooCwotgDgPPWa1vbYI=; b=rn14WVfTDzO4IpWl5GNCm7eikQDUcfHECcwV9JjM621sufYfmFFb6FehZ6YYQdX+amy4BF AHdhwVpzZJhDmILYHpFcD7Xu/X2qIjOtJMEXrLxieeM95R2f2D3Qvuy//L8k37oBMHt41u yqkZPqFWOS/XCngAiUtPfWIDqYuXCMuEtWYl4LXhD0GFrR/hL+Tye9Vbf0sVhxEeXWab+v uE6Xs/13lyMX4+DyEnNC756IREBoj6YoYJCRF4pCQlsb378hYFA2BKt66i3Zmx/RK0lNfz JDEMYsndKD4K+FNp6PK0G65liao6rE3as11J8dyNa6XD+9Tu9AlweUQ2WfEkrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNC42PWzycb for ; Fri, 27 Feb 2026 02:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21a1f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: f8713b7f8dda - stable/15 - LinuxKPI: pci: make sure a tailq and lock are 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f8713b7f8dda735e65c3a14a4634f9cc0427ae66 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:47 +0000 Message-Id: <69a1019b.21a1f.12a39a59@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f8713b7f8dda735e65c3a14a4634f9cc0427ae66 commit f8713b7f8dda735e65c3a14a4634f9cc0427ae66 Author: Bjoern A. Zeeb AuthorDate: 2026-01-24 22:16:36 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:02:39 +0000 LinuxKPI: pci: make sure a tailq and lock are initialized Move the initializations of the tailq and lock from linux_pci_attach_device() into lkpifill_pci_dev() so that they are initialized in all cases we create a device (see all the possible callers of lkpifill_pci_dev()). Sponsored by: The FreeBSD Foundation Reviewed by: emaste, dumbbell Differential Revision: https://reviews.freebsd.org/D54861 (cherry picked from commit 1f19fc2632c98cfe653a082b5fcb02d16053ed06) --- sys/compat/linuxkpi/common/src/linux_pci.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index c8d1989f669b..c4f0564c7e35 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -385,14 +385,16 @@ lkpifill_pci_dev(device_t dev, struct pci_dev *pdev) pdev->dev.bsddev = dev; pdev->dev.parent = &linux_root_device; pdev->dev.release = lkpi_pci_dev_release; - INIT_LIST_HEAD(&pdev->dev.irqents); if (pci_msi_count(dev) > 0) pdev->msi_desc = malloc(pci_msi_count(dev) * sizeof(*pdev->msi_desc), M_DEVBUF, M_WAITOK | M_ZERO); + TAILQ_INIT(&pdev->mmio); + spin_lock_init(&pdev->pcie_cap_lock); spin_lock_init(&pdev->dev.devres_lock); INIT_LIST_HEAD(&pdev->dev.devres_head); + INIT_LIST_HEAD(&pdev->dev.irqents); return (0); } @@ -613,9 +615,6 @@ linux_pci_attach_device(device_t dev, struct pci_driver *pdrv, if (error) goto out_dma_init; - TAILQ_INIT(&pdev->mmio); - spin_lock_init(&pdev->pcie_cap_lock); - spin_lock(&pci_lock); list_add(&pdev->links, &pci_devices); spin_unlock(&pci_lock); From nobody Fri Feb 27 02: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 4fMXNF0dZcz6T7d9 for ; Fri, 27 Feb 2026 02:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXND5Hmnz415W for ; Fri, 27 Feb 2026 02:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159388; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e+D1jRdmNWyucFSmLEil4kwVb6sO56E8mOnCgydRB9w=; b=ADsZAhc1nCuEyul/3qW1GRVSiOu2RHhJp1s9mKAPip7WO8BChSadSs2iqlX7eHSSbkxhbz o7Q9qhT4ee0g5mFKhndHyWzHz7/hleH8FBlYrqExC917bMhyA9kibVhvm6SCoKsyP5Xmul KbiShKjvWSCv00LBV/Bc1T7/alpmiphTeoxVS+oGWtEPVte09P7fXvvA6kO5BGMNomIvvT PIrLsRb5cwv26LmjZc8/EB1jdWspjR6xjuaCbIf99m6HH6F3kMHOjKma39cVzS8XSztuAt qdX1/9UUtCP4/G0P+Gj4atq5FO3Yc9y+YWRbT7yoR/BCtzZ77SNf8oJdswNAcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159388; a=rsa-sha256; cv=none; b=RE6mpxmzaH/c0iMA+Y4vjv1x2Jyhk20AsnMXYEed0vSnEX6FCw+hQXpp7jSnT9WoQuJ7Z3 QebKJI+3Kts/zfR0L8vtsi+wBDh9Lv0shBAHPvTYnkn9UUsgQG4Ueu/yUiKJbOO2QWZvGx /LdGzvd6vVgqXMX1JVkRqpbxSWqxMe7u2gRve7mv5QDrb0siPzIRn70Ht9c8FLpIV/l6nx o8lW2+C47KVaOC6LHhPEXlpWB3lD+Wz994yphffLd9TrOKSWFjIvzrLgNBo0dmyp1hrDvy 5e23G+5tSDEy94xGCXwiAR/gyvsA5+Zkc3TetDsMhRgQ+82lL9fYpKGsd6Hbcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159388; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e+D1jRdmNWyucFSmLEil4kwVb6sO56E8mOnCgydRB9w=; b=hMsWgKVIictIzv+UF/6uXT6qxUmMGE1i6FP+pnQf1ln/Sw7Fib9p2zVuEKAYL5b8er+7/V 96a7Y1/V2NnAl0GeKcl8L+6bv2Oxf106vAM4Zs2RQ5BSjYMT0TWn/oHLSYYhutiCBHybh5 45gSFPe3iWWfdTb89HKzl5pPurvoHtWvYIJkkiwmmHxjgG3ZTjw1V7/WcciA0DoCOxCDMD X+AsHQcqPS9qEY4ksfsMeSTa88gxUywxmBPK84vumSBH4TKxKeQE/AXEK3sleHabfjiykI HOB3QwCsB9TPtoaxhUdC4w8kPWcTk0pHTb6I9/qM2GiMIhmWxeUwnKCB2ySKDg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXND4qhPzyHx for ; Fri, 27 Feb 2026 02:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 219b9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 7949253aeb32 - stable/15 - LinuxKPI: move MODULE_DEVICE_TABLE from pci.h to module.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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7949253aeb324560dc0a0d5b574e305aad8ec79f Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:48 +0000 Message-Id: <69a1019c.219b9.4043f5aa@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7949253aeb324560dc0a0d5b574e305aad8ec79f commit 7949253aeb324560dc0a0d5b574e305aad8ec79f Author: Bjoern A. Zeeb AuthorDate: 2026-01-26 20:31:24 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:02:50 +0000 LinuxKPI: move MODULE_DEVICE_TABLE from pci.h to module.h Move the MODULE_DEVICE_TABLE macro to module.h where it belongs in preparation for different bus (e.g., USB, SDIO) support. The various struct _device_id, if not elsewhere, should be defined in mod_devicetable.h. This is the next step after 2f5666c1727c. No functional changes. Sponsored by: The FreeBSD Foundation Reviewed by: emaste, dumbbell Differential Revision: https://reviews.freebsd.org/D54900 (cherry picked from commit 1f4fbcf342f41fecc8dff4e0d9a1f9bdb1cdf784) --- sys/compat/linuxkpi/common/include/linux/module.h | 18 ++++++++++++++++++ sys/compat/linuxkpi/common/include/linux/pci.h | 18 ------------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/module.h b/sys/compat/linuxkpi/common/include/linux/module.h index 079dacf8df6c..fbe57cbbed82 100644 --- a/sys/compat/linuxkpi/common/include/linux/module.h +++ b/sys/compat/linuxkpi/common/include/linux/module.h @@ -53,6 +53,24 @@ #define MODULE_SUPPORTED_DEVICE(name) #define MODULE_IMPORT_NS(_name) +/* Linux has an empty element at the end of the ID table -> nitems() - 1. */ +#define MODULE_DEVICE_TABLE(_bus, _table) \ + \ +static device_method_t _ ## _bus ## _ ## _table ## _methods[] = { \ + DEVMETHOD_END \ +}; \ + \ +static driver_t _ ## _bus ## _ ## _table ## _driver = { \ + "lkpi_" #_bus #_table, \ + _ ## _bus ## _ ## _table ## _methods, \ + 0 \ +}; \ + \ +DRIVER_MODULE(lkpi_ ## _table, _bus, _ ## _bus ## _ ## _table ## _driver,\ + 0, 0); \ + \ +MODULE_DEVICE_TABLE_BUS_ ## _bus(_bus, _table) + /* * THIS_MODULE is used to differentiate modules on Linux. We currently * completely stub out any Linux struct module usage, but THIS_MODULE is still diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index cda1cf7dfb5e..9b7699a5ca59 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -76,24 +76,6 @@ struct pci_device_id { MODULE_PNP_INFO("U32:vendor;U32:device;V32:subvendor;V32:subdevice", \ _bus, lkpi_ ## _table, _table, nitems(_table) - 1) -/* Linux has an empty element at the end of the ID table -> nitems() - 1. */ -#define MODULE_DEVICE_TABLE(_bus, _table) \ - \ -static device_method_t _ ## _bus ## _ ## _table ## _methods[] = { \ - DEVMETHOD_END \ -}; \ - \ -static driver_t _ ## _bus ## _ ## _table ## _driver = { \ - "lkpi_" #_bus #_table, \ - _ ## _bus ## _ ## _table ## _methods, \ - 0 \ -}; \ - \ -DRIVER_MODULE(lkpi_ ## _table, _bus, _ ## _bus ## _ ## _table ## _driver,\ - 0, 0); \ - \ -MODULE_DEVICE_TABLE_BUS_ ## _bus(_bus, _table) - #define PCI_ANY_ID -1U #define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07)) From nobody Fri Feb 27 02: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 4fMXNG3n6Rz6T7jM for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNF6Jflz417l for ; Fri, 27 Feb 2026 02: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=1772159389; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dU/LOCbX/NIIxLT8ozqGLFouXirKMRIMeB/1HbtDyEM=; b=eMfLIQJarkow2DEiBtmndIGEBFOC+qaO/CkMTF2jgG0fHigbUeSrfPk18zsPNkeBI7Ecvi tSqfVcxIJf8dMh4rl7j2Kq7hetyOBpuYrIwTD9Zbabso+i5PYHO83oJFGI+pUd1zAiuV9G 3P4H9ZJ34SvFeR4XsvH5WAerihyR7qme5FxZxy9aaq+CYUn9JdPL6gAaiYfJRtxjq6mHRj c6L5pau3UXWiCufPKQGLZ2HhFLjdXbwqW6+bxl6B41gklg/vGS9sPAxdrr4ckLL2ZJDg5I Fj8Ll/XO3hF6Yni0fVmZIWuHxHkW85tn16qmshz8ouiyeh3makDhIHDa/rgh7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159389; a=rsa-sha256; cv=none; b=TVn6NOPPLWqCUZ2ruAC8HM+kFqW1/0GSxQwZRHbQPX/E0lhl9c+6Y+vxdKGC5wXETBOoHU 54/UqzYdiIhO5THDpD8oi7+dnC8OPuJ0cqXiwL+nd2rusFvytEkz95/9xTpZy2Mh+Y97GG AlmpwpmJX+6eAL5hjJ3EVryWLEj+xL4ubAVUMKtzRYwc08Bk54cqtaa49Wu890mLSZVFs9 f5IcAEOJhJIBx1VNDQj6jI7fI+5jpv2QCUH1jEnFse/1rSHRcvHp0i7/4sGr2aDphWIn5Z nZpK0UAyfHyKh9aMOHFIWz5oAw9NZh7PHuMbh2l7+WQs8huxdviUJrahy39eEQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159389; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dU/LOCbX/NIIxLT8ozqGLFouXirKMRIMeB/1HbtDyEM=; b=HZ4cuFWm1zgxnTnAPWrBXYiz9w7zX6cKQrcxzfwe28MdIyHVJ1rqozpPisXWAIznLRmGD2 jkbCxnij9FNTJDfNIU+ImYzFup/nVzZuKxF7YJPQFRocQ1cwTgGLsgBDxc4JHVP+K8elZA maQE5tTpdMEEg5QuT4loIyyrkFSlO+LjGmd1tJX1+DUavcfn37w8flIjFqduG9vwnGzMxb IMUAC+xBMQ5TeQXwSQ5FKiVIwsXcM0XhPWK8TIh2qrOQ/IwHqhZp4oIwFndZEgrhsk5zNB ua6+KyH3w/YLinnUzxDJMOgNnp+ZEiOrgtgL7kM2YnY49WhEtLcfBT9Qp7BTMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNF5dwrzyJ0 for ; Fri, 27 Feb 2026 02:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 212a3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 67a064decf92 - stable/15 - LinuxKPI: mod_devicetable, add comment about [future] LinuxKPI USB List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 67a064decf92f5c729856e535a6d51f41023a462 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:49 +0000 Message-Id: <69a1019d.212a3.1ba744df@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=67a064decf92f5c729856e535a6d51f41023a462 commit 67a064decf92f5c729856e535a6d51f41023a462 Author: Bjoern A. Zeeb AuthorDate: 2026-01-26 21:00:24 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:03:38 +0000 LinuxKPI: mod_devicetable, add comment about [future] LinuxKPI USB USB structures are defined with the native USB implementation. Just leave a comment why they are not here. Sponsored by: The FreeBSD Foundation Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D54991 (cherry picked from commit 020ff5e29431f5b55f2e3876c0e4828205e17cd5) --- sys/compat/linuxkpi/common/include/linux/mod_devicetable.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/mod_devicetable.h b/sys/compat/linuxkpi/common/include/linux/mod_devicetable.h index 87bd6ec24bce..df7c2472861b 100644 --- a/sys/compat/linuxkpi/common/include/linux/mod_devicetable.h +++ b/sys/compat/linuxkpi/common/include/linux/mod_devicetable.h @@ -80,4 +80,10 @@ struct dmi_system_id { #define ACPI_ID_LEN 16 +/* ----------------------------------------------------------------------------- + * USB + */ +/* struct usb_device_id is defined in sys/dev/usb/usbdi.h. */ +/* MODULE_DEVICE_TABLE_BUS_usb we have in usb.h. */ + #endif /* __LINUXKPI_LINUX_MOD_DEVICETABLE_H__ */ From nobody Fri Feb 27 02:29: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 4fMXNH31MXz6T7dH for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNG71X1z41Jw for ; Fri, 27 Feb 2026 02:29:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159391; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3FCgokKS5wLqnsQZYKT7IqLWFiQOHIwBfTI0MnFOlQs=; b=FzEHXxCF9glUSjW+o4M9BRi9M8zEyYNHrAbMqJ6ecYanu5UgRZSax4YxIMioh9moUfvlcf KufF6cPIwLcConhEoBaYTdxM4441So9eUiGWfZiNBAkBWGJPjwpTegH7eGUlHdc7YeGKYa Ig+hSj1RzHQkg+g8LHvpparGRL2RSJ97MWHfzN7P7iu0bOj8aaq7EnH59QyFMAMTnyhcKK JFOT1IqV1I140utiZZZ7kSLQkBROblPC9V+1cmzw5oPISTAp64PJSI5UX/3+D/WRL5W+UM J60BoZhmkGfFSO3EI+Tv/dgY4z2klqUFmlUpMaUMsYfmxYVydRVFi/4cOPbrgA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159391; a=rsa-sha256; cv=none; b=SHplJ496IeamhIMlQA4iQDynA0taIFq1OtpogkM9tV1Db8zEhp2exIPHdKmiRM62NsEyZI DFOHb1Q5VmbNXuKYZ5056xQdnXrbNce+NA0KxxLFlwtaqfRRnN/YXKM45DNjM4m06e2OZw MTes9/NxQ5CLW4y4Uz3mviJXwdXo7bxTd8Db80N9NfOyuOWDAwb59TEd7zaJ/YGjA9aZ86 BxY8ZUnk/0s+XiH1oQmG9klO6+sd7y56U3knCxkxjqR0EZPeb6K0aN6VZHH2EJZfYwY3oA E7lAoqZByYj2Ccv1Db+niF1Lcg4fhwuXuhjJ9GXmBeC5SY+MxV5Dmq7eMxVVJQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159391; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3FCgokKS5wLqnsQZYKT7IqLWFiQOHIwBfTI0MnFOlQs=; b=CBbVAOp0tW+alyx9vE7Ru4NRYbp/SEpwRJXfnJJX7goaSkmAHQsXngnXJptSDGGi25yNrf xOi4SnVo4hOC7I4bSwmWlXl8e7rH+G2D/1i8GGTiBBqAVTssZHyq5RBfK49m24CAUCQUsN A20paYcHqaJXxsmDUY5ba/Wi8EK/xLsd9uU/1AgtoPfzss43GkkX7Z2eCtIzcxVOWj2As5 BEPe2v6nj/FQ4EwYpvwWx/4KlVU26dUKsSyJ6mCqrIxazhbJsG8UdeC3nv1H+2ESeeDSZX DxnkJPrBv5fd3Sx4NzstdU1IyIWI1usx8HOQd4dpmZrJD72yZWDCbl7xbbPXqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNG6RBjzxR6 for ; Fri, 27 Feb 2026 02:29:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21ad0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: aa54113d8e1b - stable/15 - LinuxKPI: add scoped_guard(), spinlock guard 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: aa54113d8e1bfc0442017cff97fcbc1b8c9f5c54 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:50 +0000 Message-Id: <69a1019e.21ad0.8bf1eca@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=aa54113d8e1bfc0442017cff97fcbc1b8c9f5c54 commit aa54113d8e1bfc0442017cff97fcbc1b8c9f5c54 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:54:30 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:09 +0000 LinuxKPI: add scoped_guard(), spinlock guard support The "cleanup.h" implementation got a bit more complicated. For one we now use a macro to concatenate a prefix, the name, and a suffix for variable and function declarations. This was triggered by the fact that the "guard_" prefix we used was confusing. We now use a generic "cleanup_" which is only encoded in the single place rather than all over the file. As already indicated by the comment the DEFINE_LOCK_GUARD_0() macro got split up and a _1 version which also takes a type got implemented and is used for a spinlock variant used by rtw89(4) via the new scoped_guard() bits. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54808 (cherry picked from commit 31393810a168b74cf13ace0e1d35dae6b4a12bf5) --- sys/compat/linuxkpi/common/include/linux/cleanup.h | 127 ++++++++++++++++----- .../linuxkpi/common/include/linux/spinlock.h | 10 ++ 2 files changed, 109 insertions(+), 28 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/cleanup.h b/sys/compat/linuxkpi/common/include/linux/cleanup.h index 5bb146f082ed..fb21a81f121b 100644 --- a/sys/compat/linuxkpi/common/include/linux/cleanup.h +++ b/sys/compat/linuxkpi/common/include/linux/cleanup.h @@ -1,7 +1,7 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2024-2025 The FreeBSD Foundation + * Copyright (c) 2024-2026 The FreeBSD Foundation * * This software was developed by Björn Zeeb under sponsorship from * the FreeBSD Foundation. @@ -10,18 +10,26 @@ #ifndef _LINUXKPI_LINUX_CLEANUP_H #define _LINUXKPI_LINUX_CLEANUP_H +#include + +#define CLEANUP_NAME(_n, _s) __CONCAT(__CONCAT(cleanup_, _n), _s) + #define __cleanup(_f) __attribute__((__cleanup__(_f))) +#define DECLARE(_n, _x) \ + CLEANUP_NAME(_n, _t) _x __cleanup(CLEANUP_NAME(_n, _destroy)) = \ + CLEANUP_NAME(_n, _create) + /* * Note: "_T" are special as they are exposed into common code for * statements. Extra care should be taken when changing the code. */ #define DEFINE_GUARD(_n, _dt, _lock, _unlock) \ \ - typedef _dt guard_ ## _n ## _t; \ + typedef _dt CLEANUP_NAME(_n, _t); \ \ static inline _dt \ - guard_ ## _n ## _create( _dt _T) \ + CLEANUP_NAME(_n, _create)( _dt _T) \ { \ _dt c; \ \ @@ -30,7 +38,7 @@ } \ \ static inline void \ - guard_ ## _n ## _destroy(_dt *t) \ + CLEANUP_NAME(_n, _destroy)(_dt *t) \ { \ _dt _T; \ \ @@ -39,9 +47,10 @@ } /* We need to keep these calls unique. */ +#define _guard(_n, _x) \ + DECLARE(_n, _x) #define guard(_n) \ - guard_ ## _n ## _t guard_ ## _n ## _ ## __COUNTER__ \ - __cleanup(guard_ ## _n ## _destroy) = guard_ ## _n ## _create + _guard(_n, guard_ ## _n ## _ ## __COUNTER__) #define DEFINE_FREE(_n, _t, _f) \ static inline void \ @@ -56,38 +65,100 @@ #define __free(_n) __cleanup(__free_##_n) /* - * Given this is a _0 version it should likely be broken up into parts. - * But we have no idead what a _1, _2, ... version would do different - * until we see a call. - * This is used for a not-real-type (rcu). We use a bool to "simulate" - * the lock held. Also _T still special, may not always be used, so tag - * with __unused (or better the LinuxKPI __maybe_unused). + * Our initial version go broken up. Some simplifications like using + * "bool" for the lock had to be changed to a more general type. + * _T is still special and, like other bits, may not always be used, + * so tag with __unused (or better the LinuxKPI __maybe_unused). */ -#define DEFINE_LOCK_GUARD_0(_n, _lock, _unlock, ...) \ +#define _DEFINE_LOCK_GUARD_0(_n, _lock) \ + static inline CLEANUP_NAME(_n, _t) \ + CLEANUP_NAME(_n, _create)(void) \ + { \ + CLEANUP_NAME(_n, _t) _tmp; \ + CLEANUP_NAME(_n, _t) *_T __maybe_unused; \ + \ + _tmp.lock = (void *)1; \ + _T = &_tmp; \ + _lock; \ + return (_tmp); \ + } + +#define _DEFINE_LOCK_GUARD_1(_n, _type, _lock) \ + static inline CLEANUP_NAME(_n, _t) \ + CLEANUP_NAME(_n, _create)(_type *l) \ + { \ + CLEANUP_NAME(_n, _t) _tmp; \ + CLEANUP_NAME(_n, _t) *_T __maybe_unused; \ \ + _tmp.lock = l; \ + _T = &_tmp; \ + _lock; \ + return (_tmp); \ + } + +#define _GUARD_IS_ERR(_v) \ + ({ \ + uintptr_t x = (uintptr_t)(void *)(_v); \ + IS_ERR_VALUE(x); \ + }) + +#define __is_cond_ptr(_n) \ + CLEANUP_NAME(_n, _is_cond) +#define __guard_ptr(_n) \ + CLEANUP_NAME(_n, _ptr) + +#define _DEFINE_CLEANUP_IS_CONDITIONAL(_n, _b) \ + static const bool CLEANUP_NAME(_n, _is_cond) __maybe_unused = _b + +#define _DEFINE_GUARD_LOCK_PTR(_n, _lp) \ + static inline void * \ + CLEANUP_NAME(_n, _lock_ptr)(CLEANUP_NAME(_n, _t) *_T) \ + { \ + void *_p; \ + \ + _p = (void *)(uintptr_t)*(_lp); \ + if (IS_ERR(_p)) \ + _p = NULL; \ + return (_p); \ + } + +#define _DEFINE_UNLOCK_GUARD(_n, _type, _unlock, ...) \ typedef struct { \ - bool lock; \ + _type *lock; \ __VA_ARGS__; \ - } guard_ ## _n ## _t; \ + } CLEANUP_NAME(_n, _t); \ \ static inline void \ - guard_ ## _n ## _destroy(guard_ ## _n ## _t *_T) \ + CLEANUP_NAME(_n, _destroy)(CLEANUP_NAME(_n, _t) *_T) \ { \ - if (_T->lock) { \ + if (!_GUARD_IS_ERR(_T->lock)) { \ _unlock; \ } \ } \ \ - static inline guard_ ## _n ## _t \ - guard_ ## _n ## _create(void) \ - { \ - guard_ ## _n ## _t _tmp; \ - guard_ ## _n ## _t *_T __maybe_unused; \ - \ - _tmp.lock = true; \ - _T = &_tmp; \ - _lock; \ - return (_tmp); \ - } + _DEFINE_GUARD_LOCK_PTR(_n, &_T->lock) + +#define DEFINE_LOCK_GUARD_0(_n, _lock, _unlock, ...) \ + _DEFINE_CLEANUP_IS_CONDITIONAL(_n, false); \ + _DEFINE_UNLOCK_GUARD(_n, void, _unlock, __VA_ARGS__) \ + _DEFINE_LOCK_GUARD_0(_n, _lock) + +/* This allows the type to be set. */ +#define DEFINE_LOCK_GUARD_1(_n, _t, _lock, _unlock, ...) \ + _DEFINE_CLEANUP_IS_CONDITIONAL(_n, false); \ + _DEFINE_UNLOCK_GUARD(_n, _t, _unlock, __VA_ARGS__) \ + _DEFINE_LOCK_GUARD_1(_n, _t, _lock) + +#define _scoped_guard(_n, _l, ...) \ + for (DECLARE(_n, _scoped)(__VA_ARGS__); \ + 1 /*__guard_ptr(_n)(&_scoped) || !__is_cond_ptr(_n) */; \ + ({ goto _l; })) \ + if (0) { \ +_l: \ + break; \ + } else + +#define scoped_guard(_n, ...) \ + _scoped_guard(_n, ___label_ ## __COUNTER__, ##__VA_ARGS__) #endif /* _LINUXKPI_LINUX_CLEANUP_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/spinlock.h b/sys/compat/linuxkpi/common/include/linux/spinlock.h index dc10b0457153..a08edcf8f417 100644 --- a/sys/compat/linuxkpi/common/include/linux/spinlock.h +++ b/sys/compat/linuxkpi/common/include/linux/spinlock.h @@ -36,6 +36,7 @@ #include #include +#include #include #include #include @@ -178,4 +179,13 @@ _atomic_dec_and_lock_irqsave(atomic_t *cnt, spinlock_t *lock, return (0); } +/* + * cleanup.h related pre-defined cases. + */ +DEFINE_LOCK_GUARD_1(spinlock_irqsave, + spinlock_t, + spin_lock_irqsave(_T->lock, _T->flags), + spin_unlock_irqrestore(_T->lock, _T->flags), + unsigned long flags) + #endif /* _LINUXKPI_LINUX_SPINLOCK_H_ */ From nobody Fri Feb 27 02: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 4fMXNJ224zz6T7b9 for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNJ0bTLz4184 for ; Fri, 27 Feb 2026 02: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=1772159392; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J+NjODJ+q1OZ0M2hweQr6d6jaC/+bSk4Sb37eEQ3d+E=; b=KLYstyuQFgkWI2KGvQuXqtXYOmh6bbp/SFcQsDy9/4GCzj0c6ZY4CBTFBN+gfSAjFF4w3r ySK1Ws6tWBVaDz8l5qTV7Nf+BZf1vZQNRU2CmttuRY8N1lwytcanlTU7xE41WGYvvWui0U A8TmGQswZKOfj9RB0SWNuAgWggR8ltXFyXYUoP9BpoZzIEF4NMaTHT9ShTVSAtqeI9VQfd LdVlFVlKsDkI8Qx4brITO8D7scTuqW9/cn+C9tM5wZySiQpGlPUEM3X4fuMLb2xn0b4S10 GFlHEMbn+ZL7Pn0Dobdd2RIIqtP2zRJ51v1up048MoeLUWesOxKDB6vntJAKNw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159392; a=rsa-sha256; cv=none; b=SaaTJj32UXgXGb3H9lngpga1dC1Qg8kFTub5MLujYa9YcBo1f+jzBbuJlVNydvOfNj02Im toAiDDy8lIkN9Oy4tksNh6BxXtZlx1kSXLCR/xBLcWiRlJgvmSurSQ/FHiN8/i+QELICXK d4TW9J1RYhU2jB/c0MXSFKURfVZjbuAkqyb4hJ3lDJt+r87b53Z7HOGhn2ExBjoaeG9CKj ZEbEhYt4Tm0kxm/HVuZsl8EPh8JfQRN5NBjAdnmc0gFGhrdHdO4nQzWyyAIxwEkKHCYUa5 4IvmnnVa0EEOSarrA59yARXkJMsumMiwDrV34pAnlItbiOI7PZOAu3ZIxo1BmA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159392; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J+NjODJ+q1OZ0M2hweQr6d6jaC/+bSk4Sb37eEQ3d+E=; b=PIjnPjPUcWYON5slExZWoToboxeiH2WLgOOEOyjOjQ7hfIuXgxOgYpVCux+xUbTDoZAeJk DpepvoaTUG0bZBUMM3att4Y0CKTXTH+2taTZs7+rcFRIdmRggvR/cAwSyalQmMQgx9sCEN GVCRZ77Rbml57Q2PoXi4chTBF5/GX7boH8PKxMJa4GkZUbp1dmv8YJBKq/hfxB1NEgsWvV rnosxVWciQik3IZTn+etuBzlDs32S8fI4NqnDi32YozAyRkwZ687rcbqgmAw+2UBTMPqF9 hxhGTclVB4s8U1Ly/QDfT7qgJsWWGLa89dRT1gvkrwHfs8ny9ZizODSQMAXmvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNJ05kQzycc for ; Fri, 27 Feb 2026 02:29:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 203f4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: c686a7352c9f - stable/15 - rtw88: set .bsddriver.name for USB chipsets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c686a7352c9f73966015754c5292b002095a7939 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:52 +0000 Message-Id: <69a101a0.203f4.147c873d@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c686a7352c9f73966015754c5292b002095a7939 commit c686a7352c9f73966015754c5292b002095a7939 Author: Bjoern A. Zeeb AuthorDate: 2026-01-29 11:16:11 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:18 +0000 rtw88: set .bsddriver.name for USB chipsets We use the FreeBSD-specifc bsddriver.name to get the device name; set it everywere consistently. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55020 (cherry picked from commit d3c4e8952cd1be2015aa9d83820961283aa4f00c) --- sys/contrib/dev/rtw88/rtw8723du.c | 2 +- sys/contrib/dev/rtw88/rtw8812au.c | 3 +++ sys/contrib/dev/rtw88/rtw8814au.c | 3 +++ sys/contrib/dev/rtw88/rtw8821au.c | 3 +++ sys/contrib/dev/rtw88/rtw8821cu.c | 2 +- sys/contrib/dev/rtw88/rtw8822bu.c | 2 +- sys/contrib/dev/rtw88/rtw8822cu.c | 2 +- 7 files changed, 13 insertions(+), 4 deletions(-) diff --git a/sys/contrib/dev/rtw88/rtw8723du.c b/sys/contrib/dev/rtw88/rtw8723du.c index 064cbb4d9760..1e1b674ca357 100644 --- a/sys/contrib/dev/rtw88/rtw8723du.c +++ b/sys/contrib/dev/rtw88/rtw8723du.c @@ -28,7 +28,7 @@ static struct usb_driver rtw_8723du_driver = { .id_table = rtw_8723du_id_table, .probe = rtw8723du_probe, .disconnect = rtw_usb_disconnect, -#if defined(__FreeBSD__) && defined(__notyet__) +#if defined(__FreeBSD__) .bsddriver.name = KBUILD_MODNAME, #endif }; diff --git a/sys/contrib/dev/rtw88/rtw8812au.c b/sys/contrib/dev/rtw88/rtw8812au.c index dfea89670372..d6693ab4d273 100644 --- a/sys/contrib/dev/rtw88/rtw8812au.c +++ b/sys/contrib/dev/rtw88/rtw8812au.c @@ -86,6 +86,9 @@ static struct usb_driver rtw_8812au_driver = { .id_table = rtw_8812au_id_table, .probe = rtw_usb_probe, .disconnect = rtw_usb_disconnect, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif }; module_usb_driver(rtw_8812au_driver); diff --git a/sys/contrib/dev/rtw88/rtw8814au.c b/sys/contrib/dev/rtw88/rtw8814au.c index 1a0886ec17dd..86158bf381b0 100644 --- a/sys/contrib/dev/rtw88/rtw8814au.c +++ b/sys/contrib/dev/rtw88/rtw8814au.c @@ -46,6 +46,9 @@ static struct usb_driver rtw_8814au_driver = { .id_table = rtw_8814au_id_table, .probe = rtw_usb_probe, .disconnect = rtw_usb_disconnect, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif }; module_usb_driver(rtw_8814au_driver); diff --git a/sys/contrib/dev/rtw88/rtw8821au.c b/sys/contrib/dev/rtw88/rtw8821au.c index 28c281b32978..d07aa0fca68b 100644 --- a/sys/contrib/dev/rtw88/rtw8821au.c +++ b/sys/contrib/dev/rtw88/rtw8821au.c @@ -70,6 +70,9 @@ static struct usb_driver rtw_8821au_driver = { .id_table = rtw_8821au_id_table, .probe = rtw_usb_probe, .disconnect = rtw_usb_disconnect, +#if defined(__FreeBSD__) + .bsddriver.name = KBUILD_MODNAME, +#endif }; module_usb_driver(rtw_8821au_driver); diff --git a/sys/contrib/dev/rtw88/rtw8821cu.c b/sys/contrib/dev/rtw88/rtw8821cu.c index 3386c54f2646..0f42819f787c 100644 --- a/sys/contrib/dev/rtw88/rtw8821cu.c +++ b/sys/contrib/dev/rtw88/rtw8821cu.c @@ -52,7 +52,7 @@ static struct usb_driver rtw_8821cu_driver = { .id_table = rtw_8821cu_id_table, .probe = rtw_8821cu_probe, .disconnect = rtw_usb_disconnect, -#if defined(__FreeBSD__) && defined(__notyet__) +#if defined(__FreeBSD__) .bsddriver.name = KBUILD_MODNAME, #endif }; diff --git a/sys/contrib/dev/rtw88/rtw8822bu.c b/sys/contrib/dev/rtw88/rtw8822bu.c index 2886f470df71..ae595a867339 100644 --- a/sys/contrib/dev/rtw88/rtw8822bu.c +++ b/sys/contrib/dev/rtw88/rtw8822bu.c @@ -96,7 +96,7 @@ static struct usb_driver rtw_8822bu_driver = { .id_table = rtw_8822bu_id_table, .probe = rtw8822bu_probe, .disconnect = rtw_usb_disconnect, -#if defined(__FreeBSD__) && defined(__notyet__) +#if defined(__FreeBSD__) .bsddriver.name = KBUILD_MODNAME, #endif }; diff --git a/sys/contrib/dev/rtw88/rtw8822cu.c b/sys/contrib/dev/rtw88/rtw8822cu.c index a5f8311c022b..2fdb64374e8c 100644 --- a/sys/contrib/dev/rtw88/rtw8822cu.c +++ b/sys/contrib/dev/rtw88/rtw8822cu.c @@ -38,7 +38,7 @@ static struct usb_driver rtw_8822cu_driver = { .id_table = rtw_8822cu_id_table, .probe = rtw8822cu_probe, .disconnect = rtw_usb_disconnect, -#if defined(__FreeBSD__) && defined(__notyet__) +#if defined(__FreeBSD__) .bsddriver.name = KBUILD_MODNAME, #endif }; From nobody Fri Feb 27 02: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 4fMXNK4QP3z6T7jT for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNK1qFMz41H9 for ; Fri, 27 Feb 2026 02: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=1772159393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q/GKwfWxC9kIbZ1sV4UdSuXthTvqoNzFDT/hetwv018=; b=T+LoKhaV4V6ekOv18vdC/fbJ5HpsfBJV9x2ORtGBaKegik5uJFkOzX7hgtdL/ROHFm6YHO AmU7+cXyy+qi5r/BPG/WNQX0dSwYzJlGKgJprLckfp9+GuPCcqi+0feMr2ShjNvrI771ZE w7XH9mSCV8uwIUhHsN+cjYmj/kyNsLEtHHGfMLROQpR7nvzmwzd9l7yUGQExiY0jnoLz1x Ggq5Toy0HuNzl+KFKteict9rm50O4QGP0Jho50H+dZcsrTLv/6L18JKVJpAcoAe2uxffzh 4wVwyU6CFHU34v4gbhu+YiVNTkgzx3dWw3tPSOibT+pamWPonsQadCtan3Udyw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159393; a=rsa-sha256; cv=none; b=wjKrXrAb6qdoq/+NUtv/9B8qpRjjsdKwziZHVu/Z0FP8DlwwKjvUh1J3yplkX8EWX8/tUw OZLf+41+jn3FQHRRXoiSu5kMNOEZYwTsNefyreYEbjjSxwL/zxQo79HtHwG11CIgIvWnqE VfaS/RBybGu6QYUGO0ySt0gjuecdMp0NSpmGyL/FHTgCS4duY1wM7/F/LO47rCIyQ7d/Wk ydrg/8UjkIcCOj4GBRiu9ec2i6Y6t93DxTXS8EAPAbKOii9sA0cVHUeO0dg3c9E34H+AFJ GsY6LV2lxfwx0NvgScwnWNDD6ghWYuKjG0f1tLGXZCTPaKyRYFMb+YYspBpQxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q/GKwfWxC9kIbZ1sV4UdSuXthTvqoNzFDT/hetwv018=; b=FGVGZ//HXHQZEbWAWbCQuT9o5WS5rdAB8JRkIaKnIGKb8KM3Xxwsec/CHvA4DLZzMB8xt3 BNaPVHRuMVPPFFqxMp5BGE8b5mLW0uOxS/EY69oq7YwiajcTVbWIuoMf5FTZrsbUBZkj6f jEUOx7MG78tnsaRogXsGflsDA856PY66S6PPfEXpDEWVFtKJ22+PHYrfXtOzeyVm1lS5RN 1CKVbVVOr5nFp0cz73rjVwCdHlqa1+uN54a/uUX5Ue++Z5tF50VPKlK/bTs6MEmX19aALG +VuWExd2d3ps7a8USakLki2J2wS/2Vg8RMSvmIRxevRXQAKlwUgm9oc0GIlwYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNK0sMqzyJ1 for ; Fri, 27 Feb 2026 02:29:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 204cf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 1b52d3124ab0 - stable/15 - ath10k: fix a schedule() call List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1b52d3124ab0b292c2c56d5d856305bd6cfec004 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:53 +0000 Message-Id: <69a101a1.204cf.406b9a57@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=1b52d3124ab0b292c2c56d5d856305bd6cfec004 commit 1b52d3124ab0b292c2c56d5d856305bd6cfec004 Author: Bjoern A. Zeeb AuthorDate: 2025-12-08 00:00:05 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:24 +0000 ath10k: fix a schedule() call Using kern_yield does not seem ideal either for polling here; use a schedule_timeout() call from LinuxKPI instead and use about 100 iterations per second. Improve an error message to include the error code so we have a better idea of what happens. (cherry picked from commit 6387c1135921fbc86ab0f3c1508a3719ca9cac54) --- sys/contrib/dev/athk/ath10k/bmi.c | 5 +++++ sys/contrib/dev/athk/ath10k/pci.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/contrib/dev/athk/ath10k/bmi.c b/sys/contrib/dev/athk/ath10k/bmi.c index 6dd92d29f631..30dded5b6bbb 100644 --- a/sys/contrib/dev/athk/ath10k/bmi.c +++ b/sys/contrib/dev/athk/ath10k/bmi.c @@ -66,7 +66,12 @@ int ath10k_bmi_get_target_info(struct ath10k *ar, ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &resp, &resplen); if (ret) { +#if defined(__linux__) ath10k_warn(ar, "unable to get target info from device\n"); +#elif defined(__FreeBSD__) + ath10k_warn(ar, "unable to get target info from device: %d\n", + ret); +#endif return ret; } diff --git a/sys/contrib/dev/athk/ath10k/pci.c b/sys/contrib/dev/athk/ath10k/pci.c index e613eaf24797..e9b8573a698b 100644 --- a/sys/contrib/dev/athk/ath10k/pci.c +++ b/sys/contrib/dev/athk/ath10k/pci.c @@ -2340,8 +2340,11 @@ static int ath10k_pci_bmi_wait(struct ath10k *ar, #if defined(__linux__) schedule(); #elif defined(__FreeBSD__) - /* Using LinuxKPI we'll hang for-ever as there's no wake_up */ - kern_yield(PRI_USER); + /* + * Using LinuxKPI's schedule() will hang for-ever as there is + * no wake_up. Poll about 100 times per second until timeout. + */ + schedule_timeout(BMI_COMMUNICATION_TIMEOUT_HZ/300); #endif } From nobody Fri Feb 27 02: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 4fMXNL4Rfzz6T7jY for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNL23Crz41HP for ; Fri, 27 Feb 2026 02: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=1772159394; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FeRrLO0z8aoZEIPWATDaNBEEIt/x7OAD098Dhv+uKLg=; b=kdLg+ZeTJxTEJx69QuqgWE+oGOkDmOhAmbpCwzaZ5oR28JpTdz/HBllYiWsLx3B8A/u9Y3 aqzxSR1IgIO4pNdkf5poaAn5mDsYCg/QTLlceqvmMaXFjJWuS3xGSemOKFoxlbZuGF/SnB j1frOdnus08+siC1zlUH4b+ne5SQikShn29lnWfqgCumUVDNCF/fwuqZ4XcPw7WkfyE34U S/GyGHOiuvFW18vLaskguabyynSJa79Nkqi29DtU3qtzODCCFgGzP+KM7DDtAPw9R7zO2r KwmrpFt0i9YJTYsRQfRMhzL0GiWIxIGHQVagt1CzBTXYX6I4LiIjNa0nRlDrpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159394; a=rsa-sha256; cv=none; b=md/CAGdGrzAl0isuqAIZ0mVrnpqeBnrUzL03RvQpcCOhJ217Lf+8tpDxFGx8UquY2kHIQi aOMbjjwk3uv9OigRUTtFWxlYt8DFgl2Vmdu99pomFXsF5ZUA2Prmmdri2jb9vZP/ylLT59 OLvl9sY9BNUwHVn/RE/qHeSm9Zxg5HYDtC3uDRLRUJ6vG1Dz4cLfJdcfZAcKScJmFSYAPI ZbNqzAYRZD3xz3zIpf6ASBJ4dzrlMOVaAgfG1N/jw//ZFxPmaupbPVfc7RVp7HIcsvYZE9 Ibp4DMA7xVKJat71by9UC790E+noOHbd9bDcHVFLqUNDRL7jgcq9hrUYrgzcAQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159394; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FeRrLO0z8aoZEIPWATDaNBEEIt/x7OAD098Dhv+uKLg=; b=V2Xf5lm26GPB4jLgjHa1eLS+6x/uFjKE01KRMyF8SnQUiHsWAFfvSSypNOOq72CfTGaXns ebL8thdoQe/FsucMkYGM2/lQxagxFsWWC35v//lT+weurr5HsBt2HZOvD0FXK2750y0736 kUH4TjIIK0mfxnpAhjYajtqoOcxgWY/Nqi4iFPlf1iUCVe8xzDF1MGAnn5WkB5Ot1tHfWa 6CxFVyRUVDQwENCyiyFkGf9A/X6RE9ISaTnLAkh2ta5E3yj9z/270fNzsELKZa3eL1uLhg JfZdVFFrToPJSd/UUiJE9PbzOcmBNECj1JgusZC+ryXKB2P0XIhoXdKzlv6ueA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNL1c3mzxwQ for ; Fri, 27 Feb 2026 02:29:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2101b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 309fb59019f2 - stable/15 - ath10k: add sysctl to turn on/off fwlog List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 309fb59019f2b9b25f90cc15be75d6f0f0d3ea82 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:54 +0000 Message-Id: <69a101a2.2101b.350a16bd@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=309fb59019f2b9b25f90cc15be75d6f0f0d3ea82 commit 309fb59019f2b9b25f90cc15be75d6f0f0d3ea82 Author: Bjoern A. Zeeb AuthorDate: 2025-12-08 18:47:45 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:30 +0000 ath10k: add sysctl to turn on/off fwlog FWLOG, if compiled in, was on by default without a way to stop it from printing everything to the console. Add a modparam to enable it with it being disabled by default if available. (cherry picked from commit 717240c95d297711d3bed0bb8b4cc8403ecbfd6a) --- sys/contrib/dev/athk/ath10k/fwlog.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sys/contrib/dev/athk/ath10k/fwlog.c b/sys/contrib/dev/athk/ath10k/fwlog.c index fb1e292fe2e4..9ea4d36c2c7c 100644 --- a/sys/contrib/dev/athk/ath10k/fwlog.c +++ b/sys/contrib/dev/athk/ath10k/fwlog.c @@ -14,10 +14,20 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#if defined(__FreeBSD__) +#define LINUXKPI_PARAM_PREFIX ath10k_fwlog_ +#endif + #include "core.h" #include "debug.h" #if defined(__FreeBSD__) #include "fwlog.h" + +#include /* modparam */ + +static bool enable; +module_param(enable, bool, 0644); +MODULE_PARM_DESC(enable, "Enable firmware loggging."); #endif #define FW_DBGLOG_TIMESTAMP_OFFSET 0 @@ -1526,6 +1536,13 @@ static void ath10k_fwlog_print_work(struct work_struct *work) { void ath10k_handle_fwlog_msg(struct ath10k *ar, struct sk_buff *skb) { +#if defined(__FreeBSD__) + if (!enable) { + dev_kfree_skb(skb); + return; + } +#endif + if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) { ath10k_warn(ar, "ignoring fwlog event!!!\n"); dev_kfree_skb(skb); From nobody Fri Feb 27 02: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 4fMXNM51WGz6T7tj for ; Fri, 27 Feb 2026 02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNM2xvPz41HS for ; Fri, 27 Feb 2026 02: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=1772159395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EpLDNyoyEUyLIB5YSqvc06GeLuK6E/FkRmkSO/RIsPI=; b=kDV9jGU+JtdU8R+Zvaor2yiXUxTZU3Yeny2cYgk4fRxjlASyegoXfPIUmj99u+u3ovrlOA Z29KYjPO0ElPKrSj7mZzfuFwAHa3lXsRoFJy8PxKwA9lf4JLDc/P1TK7UP1PnAhdVm8zGt 2gNB/Q876KKxJZTIuqNbuzRZ1IH55ccPXbvFsXQPyXfI0nB7OO1l1lOb1Gue3wqvSvfFa/ jcOxIPh3JpJ7NXo9WbOSjY8YmnXAntPwtlYCQqhRugga0ACvPhYQgcXHFim0fpr8xsrWSE edVrpSHogYvq1MkRhGycZfiyrck2PZAuQ97VEk8e6SVWa3zh3dZC5umN3YObAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159395; a=rsa-sha256; cv=none; b=YvhyZaR/XRGq0HApMcXbGQcQZXYby752ju7PwEWK+55fD/bVQ99aixmlHsKQi/nwsWT8ip +MkhrmExhjTWitMNVwDPDa4pnt7m3aY+Rt+P/eoUFrvg2EmulFzwr+WalzlNJ6LX/ZmAVf jle5v0NPCXOPEtXh5MEgPuFevVR/kBQGu8fMkr35X9haqASZe+YXs6+3lVSpmDhTP0wJol SKBFkdo9+kd4jYL1Xrh2FbT1jx65VvvM9n39s6AstLUhaP1rXXL2C/aqWn9yc1Ltwh5ybr +qNUMgVxzsCXkAK35WbIeGALTe/8WGevUfH7xtZtw4a8IHDH9FFXIxXY2iIJJA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159395; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EpLDNyoyEUyLIB5YSqvc06GeLuK6E/FkRmkSO/RIsPI=; b=ZFJBLfM5uiPZmCDUlIR+r4ISzdS1caP1MLSt8VwD8Xz8ZPJYZZqLeAqnegAJu4LlV8E+54 VaCkv9hSBd09I0AV/pd5RxP50VBhm+pm79CNM1IdS+gNUPfD++ZXBfVGxYsyV5WQT/0nWY 8Ny+unoCU5Wi/4yYDfeFhZMsjFKyg0DgF5erGDFPVFmx925u6w8DiZUt/7sl5nuZUaVkpI JlWxRh/YepGtn0SR1omC76m/u7JF1roi0d5a57/epAiiXa8KrTpdutIBrI2+Z0bfatxfbM dEZXY1H0Y7nTG9Jwg1zoPUC/YscyPjVMsLWZVw5yN2c8zEsY6Uz0t3NgQWEDog== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNM2RrVzyZd for ; Fri, 27 Feb 2026 02:29:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fe74 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: c2b7d9ae065d - stable/15 - ath10k: cleanup some bits no longer FreeBSD-specific List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c2b7d9ae065d3ff49098aa485d567aa4e3622477 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:55 +0000 Message-Id: <69a101a3.1fe74.da476c8@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c2b7d9ae065d3ff49098aa485d567aa4e3622477 commit c2b7d9ae065d3ff49098aa485d567aa4e3622477 Author: Bjoern A. Zeeb AuthorDate: 2025-12-14 22:28:46 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:35 +0000 ath10k: cleanup some bits no longer FreeBSD-specific We have since I did this port in 2023 added ACPI support to LinuxKPI, so we can use it. Also there is a linux/of.h header so we no longer need to guard the #include. (cherry picked from commit db20376a4fc949d6a5b30b11f8bf9146c6b3395d) --- sys/contrib/dev/athk/ath10k/core.c | 4 +--- sys/contrib/dev/athk/ath10k/htt_rx.c | 5 ++--- sys/contrib/dev/athk/ath10k/mac.c | 36 +----------------------------------- sys/modules/ath10k/Makefile | 1 + 4 files changed, 5 insertions(+), 41 deletions(-) diff --git a/sys/contrib/dev/athk/ath10k/core.c b/sys/contrib/dev/athk/ath10k/core.c index 9ec08b402fd2..6167338b5c79 100644 --- a/sys/contrib/dev/athk/ath10k/core.c +++ b/sys/contrib/dev/athk/ath10k/core.c @@ -13,9 +13,7 @@ #include #include #include -#if defined(__linux__) || (defined(__FreeBSD__) && defined(CONFIG_OF)) #include -#endif #include #include #include @@ -2048,7 +2046,7 @@ static int ath10k_download_cal_nvmem(struct ath10k *ar, const char *cell_name) ret = ath10k_download_board_data(ar, buf, len); kfree(buf); #elif defined(__FreeBSD__) - ret = -ENXIO; + ret = -EOPNOTSUPP; #endif if (ret) ath10k_warn(ar, "failed to download calibration data from nvmem-cell '%s': %d\n", diff --git a/sys/contrib/dev/athk/ath10k/htt_rx.c b/sys/contrib/dev/athk/ath10k/htt_rx.c index ad61fad315c5..d73369ffb697 100644 --- a/sys/contrib/dev/athk/ath10k/htt_rx.c +++ b/sys/contrib/dev/athk/ath10k/htt_rx.c @@ -849,9 +849,6 @@ int ath10k_htt_rx_alloc(struct ath10k_htt *htt) timer_setup(timer, ath10k_htt_rx_ring_refill_retry, 0); spin_lock_init(&htt->rx_ring.lock); -#if defined(__FreeBSD__) - spin_lock_init(&htt->tx_fetch_ind_q.lock); -#endif htt->rx_ring.fill_cnt = 0; htt->rx_ring.sw_rd_idx.msdu_payld = 0; @@ -1670,6 +1667,7 @@ static void ath10k_htt_rx_h_undecap_nwifi(struct ath10k *ar, ether_addr_copy(ieee80211_get_DA(hdr), da); ether_addr_copy(ieee80211_get_SA(hdr), sa); #elif defined(__FreeBSD__) + /* ieee80211_get_[DS]A() do not take a const argument. */ hdr2 = (struct ieee80211_hdr *)msdu->data; ether_addr_copy(ieee80211_get_DA(hdr2), da); ether_addr_copy(ieee80211_get_SA(hdr2), sa); @@ -1812,6 +1810,7 @@ static void ath10k_htt_rx_h_undecap_eth(struct ath10k *ar, ether_addr_copy(ieee80211_get_DA(hdr), da); ether_addr_copy(ieee80211_get_SA(hdr), sa); #elif defined(__FreeBSD__) + /* ieee80211_get_[DS]A() do not take a const argument. */ hdr2 = (struct ieee80211_hdr *)msdu->data; ether_addr_copy(ieee80211_get_DA(hdr2), da); ether_addr_copy(ieee80211_get_SA(hdr2), sa); diff --git a/sys/contrib/dev/athk/ath10k/mac.c b/sys/contrib/dev/athk/ath10k/mac.c index e2bda3c0d925..d8e6bd2d277d 100644 --- a/sys/contrib/dev/athk/ath10k/mac.c +++ b/sys/contrib/dev/athk/ath10k/mac.c @@ -13,9 +13,7 @@ #include #include #include -#if defined(__linux__) || (defined(__FreeBSD__) && defined(CONFIG_OF)) #include -#endif #include #include @@ -5130,7 +5128,7 @@ static int __ath10k_fetch_bb_timing_dt(struct ath10k *ar, bb_timing->bb_tx_timing, bb_timing->bb_xpa_timing); return 0; #else - return -EINVAL; + return -ENOENT; #endif } @@ -9914,22 +9912,14 @@ static u32 ath10k_mac_wrdd_get_mcc(struct ath10k *ar, union acpi_object *wrdd) union acpi_object *mcc_value; u32 i; -#if defined(__linux__) if (wrdd->type != ACPI_TYPE_PACKAGE || wrdd->package.count < 2 || wrdd->package.elements[0].type != ACPI_TYPE_INTEGER || wrdd->package.elements[0].integer.value != 0) { -#elif defined(__FreeBSD__) - if (wrdd->Type != ACPI_TYPE_PACKAGE || - wrdd->Package.Count < 2 || - wrdd->Package.Elements[0].Type != ACPI_TYPE_INTEGER || - wrdd->Package.Elements[0].Integer.Value != 0) { -#endif ath10k_warn(ar, "ignoring malformed/unsupported wrdd structure\n"); return 0; } -#if defined(__linux__) for (i = 1; i < wrdd->package.count; ++i) { mcc_pkg = &wrdd->package.elements[i]; @@ -9947,25 +9937,6 @@ static u32 ath10k_mac_wrdd_get_mcc(struct ath10k *ar, union acpi_object *wrdd) mcc_value = &mcc_pkg->package.elements[1]; return mcc_value->integer.value; -#elif defined(__FreeBSD__) - for (i = 1; i < wrdd->Package.Count; ++i) { - mcc_pkg = &wrdd->Package.Elements[i]; - - if (mcc_pkg->Type != ACPI_TYPE_PACKAGE) - continue; - if (mcc_pkg->Package.Count < 2) - continue; - if (mcc_pkg->Package.Elements[0].Type != ACPI_TYPE_INTEGER || - mcc_pkg->Package.Elements[1].Type != ACPI_TYPE_INTEGER) - continue; - - domain_type = &mcc_pkg->Package.Elements[0]; - if (domain_type->Integer.Value != WRDD_WIFI) - continue; - - mcc_value = &mcc_pkg->Package.Elements[1]; - return mcc_value->Integer.Value; -#endif } return 0; } @@ -9997,13 +9968,8 @@ static int ath10k_mac_get_wrdd_regulatory(struct ath10k *ar, u16 *rd) return -EIO; } -#if defined(__linux__) alpha2_code = ath10k_mac_wrdd_get_mcc(ar, wrdd.pointer); kfree(wrdd.pointer); -#elif defined(__FreeBSD__) - alpha2_code = ath10k_mac_wrdd_get_mcc(ar, wrdd.Pointer); - kfree(wrdd.Pointer); -#endif if (!alpha2_code) return -EIO; diff --git a/sys/modules/ath10k/Makefile b/sys/modules/ath10k/Makefile index d8196854b681..93518c66f89f 100644 --- a/sys/modules/ath10k/Makefile +++ b/sys/modules/ath10k/Makefile @@ -38,6 +38,7 @@ CFLAGS+= ${LINUXKPI_INCLUDES} #CFLAGS+= -ferror-limit=0 CFLAGS+= -DCONFIG_ATH10K_DEBUG +CFLAGS+= -DLINUXKPI_WANT_LINUX_ACPI #CFLAGS+= -DCONFIG_ATH10K_AHB #CFLAGS+= -DCONFIG_ATH10K_DEBUGFS From nobody Fri Feb 27 02:29:56 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNP1JLXz6T7dj for ; Fri, 27 Feb 2026 02:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNN448Rz41Bk for ; Fri, 27 Feb 2026 02:29:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159396; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jcRHIyiYpQLp/ByxCJ3Eyj3iVQRThhGpnXb7JSMBsRk=; b=quRld5HS1zAlbUXT1zLuZNFAM0uYZpANyGvhg4uCPWnYgfSxP4iKptjmllSKC/DhIJ9grv EU1+NAkpK4IKj/ztRC/uS037H7108pSOz8PnvcPKmeYc0NRhD0KhrIjX/oUy2Ne4PLNq60 Bzt2JDb9ovbGtq+n4Nd8PrGo6PlCdfZEZ3TX3Y5FRqEunsjzh1iRlIyYJQAeQzS1p5RyXw 9gbrKFNbEdAE+cGFbr6RZxawgR0SDigNraDltJf5FuNBXF8gk7MVac3wsFcfejupEsBQ9S xc52MDEc498pQjAnxXcGhMej+oMTPfDWTfnuAkWY5bKavC65/HcWvgm41xvvBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159396; a=rsa-sha256; cv=none; b=YfhlU5CzDJST7zfmBU9H22MhKYlDBzVMN66UeM9MmF57y8K5nfy6wbTLaB0dk9lvOk+8ox 4r9bgdy/bJmb9rcEoO/HTjMWWALYU8hbAnOSSsbOLUrFn2JDQcmW8ckGFof9458ME0SB6l FKyN3Axxzc11foV5CdVo+MlW0ZxORNqjontKuH3McOzHFwFo5vgkqRV5P0sdr2WWN96KkA OkTO6voR3myCl0o6zoG5wHNHcPaDMLuddma2m1iM2yEyWoEHiS9QYycSAj3/BHkASAvpx8 1q8j8o3rgYJzAkvqZ052cQMNIpkOD+8RCRzG9mHXDkhrp09lFwlp+e+d79F2wA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159396; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jcRHIyiYpQLp/ByxCJ3Eyj3iVQRThhGpnXb7JSMBsRk=; b=UCtP422d17vk4ig11h/tNNlxWAEZXD1bylbjK6Sx6k5SVfIDkbUMP8DFMS5RUD9HdIueJi AopWEiuLqW8nfytlPal1tVPKoPjEDsKpd170KlLCpx2jSmpzOLNkg4elqlLfuZqtJduFfM Fuw+rsGE9R72r3iU5MM8W/JdKVIvNJNPU0QiOIbf+31ywRRkq9We/pViYscj22s5hvzLkn AcMh9VovgF+PCmswM4OM/06bPmXzqA9jwEWaX/TtAdBpT1MWu/9aV4RwKHVeX489mbt5FF KwjOOAHbIGuItmN5CoIQ4VjZ88E8Wys4T26KWLydq8p/GNgtLWr4kPY5Rhnj5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNN3DP7zxR8 for ; Fri, 27 Feb 2026 02:29:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f6f5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: bc1f3a730c0f - stable/15 - ath10k: harmonize all MODULE_DEPEND to ath10k List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bc1f3a730c0f832efec9374d9305337b64053a3e Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:56 +0000 Message-Id: <69a101a4.1f6f5.454f409c@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=bc1f3a730c0f832efec9374d9305337b64053a3e commit bc1f3a730c0f832efec9374d9305337b64053a3e Author: Bjoern A. Zeeb AuthorDate: 2026-02-07 22:29:44 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:47 +0000 ath10k: harmonize all MODULE_DEPEND to ath10k With theoretically multiple bus attachements (unclear if we will ever support anything but PCI) rename the module name to "ath10k" and use it consistently. Move the common depends to core.c and lindebugfs and usb to their respective files. (cherry picked from commit c45b60cab05b47b1d87bf49e58f669d9aaf72765) --- sys/contrib/dev/athk/ath10k/core.c | 6 ++++++ sys/contrib/dev/athk/ath10k/debug.c | 6 ++++++ sys/contrib/dev/athk/ath10k/pci.c | 9 --------- sys/contrib/dev/athk/ath10k/usb.c | 3 +++ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/sys/contrib/dev/athk/ath10k/core.c b/sys/contrib/dev/athk/ath10k/core.c index 6167338b5c79..a1fd099487fd 100644 --- a/sys/contrib/dev/athk/ath10k/core.c +++ b/sys/contrib/dev/athk/ath10k/core.c @@ -3870,3 +3870,9 @@ EXPORT_SYMBOL(ath10k_core_destroy); MODULE_AUTHOR("Qualcomm Atheros"); MODULE_DESCRIPTION("Core module for Qualcomm Atheros 802.11ac wireless LAN cards."); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_VERSION(ath10k, 1); +MODULE_DEPEND(ath10k, linuxkpi, 1, 1, 1); +MODULE_DEPEND(ath10k, linuxkpi_wlan, 1, 1, 1); +MODULE_DEPEND(ath10k, athk_common, 1, 1, 1); +#endif diff --git a/sys/contrib/dev/athk/ath10k/debug.c b/sys/contrib/dev/athk/ath10k/debug.c index 8a79f5418585..7a9e54cfb23b 100644 --- a/sys/contrib/dev/athk/ath10k/debug.c +++ b/sys/contrib/dev/athk/ath10k/debug.c @@ -2777,3 +2777,9 @@ trace: ; EXPORT_SYMBOL(ath10k_dbg_dump); #endif /* CONFIG_ATH10K_DEBUG */ + +#if defined(__FreeBSD__) +#ifdef CONFIG_ATH10K_DEBUGFS +MODULE_DEPEND(ath10k, debugfs, 1, 1, 1); +#endif +#endif diff --git a/sys/contrib/dev/athk/ath10k/pci.c b/sys/contrib/dev/athk/ath10k/pci.c index e9b8573a698b..f4c9af1e12fc 100644 --- a/sys/contrib/dev/athk/ath10k/pci.c +++ b/sys/contrib/dev/athk/ath10k/pci.c @@ -3933,15 +3933,6 @@ module_exit(ath10k_pci_exit); MODULE_AUTHOR("Qualcomm Atheros"); MODULE_DESCRIPTION("Driver support for Qualcomm Atheros PCIe/AHB 802.11ac WLAN devices"); MODULE_LICENSE("Dual BSD/GPL"); -#if defined(__FreeBSD__) -MODULE_VERSION(ath10k_pci, 1); -MODULE_DEPEND(ath10k_pci, linuxkpi, 1, 1, 1); -MODULE_DEPEND(ath10k_pci, linuxkpi_wlan, 1, 1, 1); -MODULE_DEPEND(ath10k_pci, athk_common, 1, 1, 1); -#ifdef CONFIG_ATH10K_DEBUGFS -MODULE_DEPEND(ath10k_pci, debugfs, 1, 1, 1); -#endif -#endif /* QCA988x 2.0 firmware files */ MODULE_FIRMWARE(QCA988X_HW_2_0_FW_DIR "/" ATH10K_FW_API2_FILE); diff --git a/sys/contrib/dev/athk/ath10k/usb.c b/sys/contrib/dev/athk/ath10k/usb.c index 1732a4f98418..9dfa179ba610 100644 --- a/sys/contrib/dev/athk/ath10k/usb.c +++ b/sys/contrib/dev/athk/ath10k/usb.c @@ -1128,3 +1128,6 @@ module_usb_driver(ath10k_usb_driver); MODULE_AUTHOR("Atheros Communications, Inc."); MODULE_DESCRIPTION("Driver support for Qualcomm Atheros USB 802.11ac WLAN devices"); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_DEPEND(ath10k, linuxkpi_usb, 1, 1, 1); +#endif From nobody Fri Feb 27 02:29:57 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNQ06Nwz6T7hK for ; Fri, 27 Feb 2026 02:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNP4bC1z41SG for ; Fri, 27 Feb 2026 02:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BlVWVEg5LhndkG4mE/6oUGzegFOc4NEUuea5phMkMs0=; b=l7nKPhhIiD/CwIzaRi8mPUMErYJJKxpmSIIkWnsU8ExJWOLopyBE16b+3iiph51cDqC7uH rDRtX8eGb5LW8YO0OV6VSEZtA3jmhecp8Z7JPhCLqlC5hXfrjmyNKJooa7eYq+jTbn93Yj /kH6+q5Mmko5L44dgZ/eu7zFSSmnXEmTk3vez+ouGkCO/Ah0YJC62UAlhMZz3hwNlZkwB3 mvJfyfImwDotaeZ/TqeKwH+Yn71dyFvwP3TaoaOLbpfb2ngKx5pvX77JzOwcjG9bkK8AB8 IY6RaoJ/55kZAkzuAOkM2vz5uAik59WVBzslj1RaEDN50w0bpzd4qC9Iz3vYRA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159397; a=rsa-sha256; cv=none; b=EoJa7osyjMILvszvl0QT9xB+058Kez+0FXOgyrWwjEJyPSB2UVQil0gbjfbnVP4XMPEotq NtCRtt7GuQre8ygCOrGWOk41Jnvt3itpgSegpD3f2ZXpCOvyCVeF/rIHLd/oq4e0s5EJ0+ aUc2xFlkw0UHpczSrwZ+E1+9pbQTzjMHoSGxB6mzNtdxWh0pDKPrHi0ZOnozaQ73Lbyakx MU16mS0ocCsvh4hvuByLEIlND13wQhrpjOyC/mwDiUKuh984bvpS93hsaDrZA9jXhCkw5V zIwZRp2wONyMHwF5brrZDemjGQfrVsAQP8s9mkGbYCYaNUEIqCSLDiHT9keqsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BlVWVEg5LhndkG4mE/6oUGzegFOc4NEUuea5phMkMs0=; b=m6bgX2D+wd1KcXdK0DzqWBHyaAhcX+bbOG49IsmR/qVksC5Kk1NS+RDxJbCOIqmDuKQrKO tY5Rs+hOPXFhTsVvDkLaK/DgCl97lSqCsBY6gGCNWbiVUZ3WmSOODCTZlN96V8NFhuiRp+ cYz9DuC5HxWF13a+l23MhuoJ15XTKbSfncKwyAOcrWnArlDNmwXDu9G8wMNYaKwBNvNV3R 2r4oyKZH/WClTFPEw/MC8xcqst6ZAiGVZnOQyrw0j7uTwqOZHpGPBatPnBBjKTDJv7VnwP LoK1tYxFtY9b8SPIwtToPjgQ3V1RHVEroPAHMJ2DVaK0pOzenf7yrYoZJqw6iw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNP426Czy74 for ; Fri, 27 Feb 2026 02:29:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21293 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 5cbfbd5cd0d5 - stable/15 - ath10k: usb: make compile using [a future] linuxkpi_usb List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5cbfbd5cd0d53d2a396fb6cde8d68cdf62d9f0c1 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:57 +0000 Message-Id: <69a101a5.21293.5d8151d1@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5cbfbd5cd0d53d2a396fb6cde8d68cdf62d9f0c1 commit 5cbfbd5cd0d53d2a396fb6cde8d68cdf62d9f0c1 Author: Bjoern A. Zeeb AuthorDate: 2026-02-07 22:13:23 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:52 +0000 ath10k: usb: make compile using [a future] linuxkpi_usb Make ath10k usb code compile just to gather more USB bits. Currently (and likely forever) it is useless as the ath10k USB implementation never got finished. At the moment it lacks an entry for the USB bus attachment in core.c ath10k_hw_params_list[]. ath10k_usb0 on uhub1 ath10k_usb0: on usbus0 ath10k_usb0: Warning: ath10k USB support is incomplete, don't expect anything to work! ath10k_usb0: Unsupported hardware version: 0x5020001 ath10k_usb0: could not get hw params (-22) ath10k_usb0: could not probe fw (-22) There is another possible hardware [1] which was also never merged upstream. [1] https://lists.infradead.org/pipermail/ath10k/2024-August/016037.html "[PATCH] wifi: ath10k: add USB device ID for Atheros QCA9377-7" (cherry picked from commit ca83c369755bcc205090093e6e0d045fae24714e) --- sys/contrib/dev/athk/ath10k/usb.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sys/contrib/dev/athk/ath10k/usb.c b/sys/contrib/dev/athk/ath10k/usb.c index 9dfa179ba610..a825d442fe33 100644 --- a/sys/contrib/dev/athk/ath10k/usb.c +++ b/sys/contrib/dev/athk/ath10k/usb.c @@ -842,14 +842,22 @@ static int ath10k_usb_setup_pipe_resources(struct ath10k *ar, ATH10K_USB_IS_DIR_IN (endpoint->bEndpointAddress) ? "rx" : "tx", endpoint->bEndpointAddress, +#if defined(__linux__) le16_to_cpu(endpoint->wMaxPacketSize)); +#elif defined(__FreeBSD__) + UGETW(endpoint->wMaxPacketSize)); +#endif } else if (ATH10K_USB_IS_INT_EP(endpoint->bmAttributes)) { ath10k_dbg(ar, ATH10K_DBG_USB, "usb %s int ep 0x%2.2x maxpktsz %d interval %d\n", ATH10K_USB_IS_DIR_IN (endpoint->bEndpointAddress) ? "rx" : "tx", endpoint->bEndpointAddress, +#if defined(__linux__) le16_to_cpu(endpoint->wMaxPacketSize), +#elif defined(__FreeBSD__) + UGETW(endpoint->wMaxPacketSize), +#endif endpoint->bInterval); } else if (ATH10K_USB_IS_ISOC_EP(endpoint->bmAttributes)) { /* TODO for ISO */ @@ -858,7 +866,11 @@ static int ath10k_usb_setup_pipe_resources(struct ath10k *ar, ATH10K_USB_IS_DIR_IN (endpoint->bEndpointAddress) ? "rx" : "tx", endpoint->bEndpointAddress, +#if defined(__linux__) le16_to_cpu(endpoint->wMaxPacketSize), +#elif defined(__FreeBSD__) + UGETW(endpoint->wMaxPacketSize), +#endif endpoint->bInterval); } @@ -881,8 +893,13 @@ static int ath10k_usb_setup_pipe_resources(struct ath10k *ar, pipe->ar_usb = ar_usb; pipe->logical_pipe_num = pipe_num; +#if defined(__linux__) pipe->ep_address = endpoint->bEndpointAddress; pipe->max_packet_size = le16_to_cpu(endpoint->wMaxPacketSize); +#elif defined(__FreeBSD__) + pipe->ep_address = endpoint->bEndpointAddress & UE_ADDR; + pipe->max_packet_size = UGETW(endpoint->wMaxPacketSize); +#endif if (ATH10K_USB_IS_BULK_EP(endpoint->bmAttributes)) { if (ATH10K_USB_IS_DIR_IN(pipe->ep_address)) { @@ -1017,8 +1034,13 @@ static int ath10k_usb_probe(struct usb_interface *interface, netif_napi_add(ar->napi_dev, &ar->napi, ath10k_usb_napi_poll); usb_get_dev(dev); +#if defined(__linux__) vendor_id = le16_to_cpu(dev->descriptor.idVendor); product_id = le16_to_cpu(dev->descriptor.idProduct); +#elif defined(__FreeBSD__) + vendor_id = UGETW(dev->descriptor.idVendor); + product_id = UGETW(dev->descriptor.idProduct); +#endif ath10k_dbg(ar, ATH10K_DBG_BOOT, "usb new func vendor 0x%04x product 0x%04x\n", From nobody Fri Feb 27 02:29: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 4fMXNR1tXTz6T7rL for ; Fri, 27 Feb 2026 02:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNQ5Hxdz41dm for ; Fri, 27 Feb 2026 02:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d6zoCg9lHgjO1GiZheBY6CiwI0ialdkU+vKfkj+jh18=; b=wH5bhpeXkiiMW0b1HXVmG497v+kXCB9ucZY5xIZnfwr928flPcEhlZmKISl9alUnL3K4RJ nCm4aSEE9pJQ67G3r2UZRqxA5EDgspfu/K/IcVmKCnYjYrf7xAgLviH0vlDn3Jpcfo5acX 1hMRRMMBKjDyZJo9is0r9xXpk6daocj0sZLoi9vqau5OIEUeueWdEVuNhawbCdgY6o0y/j u/J4Msi1lGuahk3eoJDLB+bCGgFPq527d2VphbBKvERfrC9qpLJujhBkWnaHU7mwW/eSZw ir6YiKZREAgXVOav21cQjs4BU86csPhlSH1z6HORyevMVdOg46vvOH5/gI+DRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159398; a=rsa-sha256; cv=none; b=eYgUgFZFvS4dlStgITYB2yUeOIcj7VNzv5HzGtzdLmtHgAN+evP5FT/nY4ddnniJx3MWxO KcRU1o7/9TjKDafsYW0QtAdxgRYH/LX8CLSDdOnE7d1sVa4PePNGX95KytTPqeMDuFFwD0 30M47pMOYGfwsHuoOT+NdHn5BRNxLOwr5OwORQ1tRXO60XkJc7TVgp/yIegI2G15y6E0w2 uByeaPYSMScuPRc0DQhsxe9wQ6rHC5BqcYjsUHqOk+4uah/utzoQK+sOTuBQOJcYwwCMIV j5tvEdYuFdv036Yc0msUHFiqJIGILGMPsXkO09sRCLF4Jni5eM+OUU/kdHtfHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d6zoCg9lHgjO1GiZheBY6CiwI0ialdkU+vKfkj+jh18=; b=BkuAnuvzBttMmWc26+LDHEh1JePSbFGvRGAIf2VNGlZKiOeMuG7A5uLsY1X/6ZqB9cJeSW UfTJslxyraEsop5WhGSKdfD0SSPO8sAEPs/MQ8qeRRrbgNgdbDIWQXfhWEKSa1Btg0jVnt jyN1dqpP1NaTbavwtkTijWuEopBG8Ugu0XcMEEeyVesBIGXAzXs/ytnGeBZrFEGEvskZDO MID6JTzY9s28GnrTfYntfg5kC2O9PSNPRR+2HiwitalQNtKeLpBRraZEiLSbV7VWFpgx/P 4PmsWNrMqxo8LBCYxpQJ6KUbQlggmx3vjxRXebkUIl7gD3W9ScTtrq4gjBCpKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNQ4pH8zxR9 for ; Fri, 27 Feb 2026 02:29:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21a23 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 3c6c9a9f043b - stable/15 - ath10k: modules Makefile bus attachments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3c6c9a9f043b30523329c06bf9e1ec1954ff6831 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:58 +0000 Message-Id: <69a101a6.21a23.61c69192@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3c6c9a9f043b30523329c06bf9e1ec1954ff6831 commit 3c6c9a9f043b30523329c06bf9e1ec1954ff6831 Author: Bjoern A. Zeeb AuthorDate: 2026-02-07 22:31:59 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:05:59 +0000 ath10k: modules Makefile bus attachments Given USB in theory compiles add it to the Makefile. The upstream support was never finished and I see little chances it ever will be so keep USB disabled by default. (cherry picked from commit 32efafda38288848ec71e97eddf085ee0c108109) --- sys/modules/ath10k/Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sys/modules/ath10k/Makefile b/sys/modules/ath10k/Makefile index 93518c66f89f..16f481116357 100644 --- a/sys/modules/ath10k/Makefile +++ b/sys/modules/ath10k/Makefile @@ -2,6 +2,10 @@ DEVATH10KDIR= ${SRCTOP}/sys/contrib/dev/athk/ath10k .PATH: ${DEVATH10KDIR} +# Bus attachments. +WITH_PCI= 1 +WITH_USB= 0 # Never finished upstream, not working. + WITH_CONFIG_FWLOG= 1 WITH_LEDS= 0 @@ -12,7 +16,15 @@ SRCS+= htc.c htt.c htt_rx.c htt_tx.c SRCS+= txrx.c wmi.c wmi-tlv.c SRCS+= p2p.c swap.c +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} SRCS+= pci.c +.endif + +# USB parts; USB can be loaded and is unconditional on any kernel config. +.if defined(WITH_USB) && ${WITH_USB} > 0 +SRCS+= usb.c +.endif # Other SRCS+= ${LINUXKPI_GENSRCS} From nobody Fri Feb 27 02:29: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 4fMXNS3gWNz6T85h for ; Fri, 27 Feb 2026 02:30:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNR6XgLz41f0 for ; Fri, 27 Feb 2026 02:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159399; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9Y+QmVCRnriHYxkoVkUwSDfqAJMrIYa/5hxyXZwafgo=; b=lOJxoU8vtgaY1QGgFZGW3heJaiELghgkGtF+zYIwvAW2GpOgO377i3eAh+6EJ52vK08sJQ kGB5A8qg3PNum9imS8KK2Wb6b46UKLlUBKSWklbkBkhhjVtyLNI2tqxFcXZh/y8shiM5tx V2oQoP6/hQit8xd6eRamhgW0NsNH6+tgwFmFxHFiQ+4bqynI9F6iY6kT5/zxhugTe9IYvI H7hBRGBp9+Nkj6fpilgaD2JFcflQhWXuEdLwOl+V/+s2NVfMUO40q7Q55RKEkf0XI+qhls /bxXe1KWHeyVaWDAoe7VoLn4VXia6r0MXNYvXvDlYr3yHrWslMJmgIoZGXzw1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159399; a=rsa-sha256; cv=none; b=BvJWMXQ6qoMIXgX8jwSFU/RDRyBhopCtkOOyLbZnd0oymGT1bXvtPZtuG6yYp+tr4uT9BZ kYpIVdU/C00LZYCUcD0FXztUdogYbD3bmxQ343UQCinoPkkdgayxx8sDG55DFtLoFMjbI5 oM+EomPEH8B5qar+Wq/1C1kdEV5q2Z1cuVOj946Tvn27MrmFbD4n130r3BYUopcvmQNB3/ W0yjCmdvjEkEMjEhexGNFLSzFRxVg39y49VpBkiqjjeKuHiQNwnCxTaDuvd8NRCPRj71xk /NaZ2YIJQ7z8RdSf7mq4WhrFGo5vJa9B+WTFdW1HyIJ1dJcSgxffxBXgrpEIBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159399; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9Y+QmVCRnriHYxkoVkUwSDfqAJMrIYa/5hxyXZwafgo=; b=mj5BciX2DaynrxOX9tAnvtb1CSeYo9Be1NbesHe5ai7MwTOYZBZFTdxI+JCFxa3OCcHd21 ypN/r9IiwU/8E2lovDojcrlynzgpCvw8GDqy+0YPefBxgMz+8JEbwt2k72S1A/hpNqJ+kM +Xf7w8k9t4iI9itIFx6id2KwkbRLj2SMysEznbw6j+sjhLn9Zmt7BzjOxM3ptqXpn3j528 v4xUs/YzMyirZwxHyCnzmeEHA/kN/hEHhlDP7iqlXcBMlP9SiVkksNzH9R/GPplHhUbf9B 7Cp+UprN301sH8EnymvsRbEARefjZZmvO3+xlubXGzSHUGw7ldxnz9WF+6qwKg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNR683WzyZg for ; Fri, 27 Feb 2026 02:29:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f6f9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:29:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 0d9a154fe73b - stable/15 - rtw89: update Realtek's rtw89 driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0d9a154fe73ba61951708f277bf9aee992588545 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:29:59 +0000 Message-Id: <69a101a7.1f6f9.28ce93a2@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=0d9a154fe73ba61951708f277bf9aee992588545 commit 0d9a154fe73ba61951708f277bf9aee992588545 Author: Bjoern A. Zeeb AuthorDate: 2025-12-05 20:48:02 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:04 +0000 rtw89: update Realtek's rtw89 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7 ( tag: v6.19-rc6 ). Sponsored by: The FreeBSD Foundation PR: 285228 (cherry picked from commit 10f91d9ff7b827aac6035e224e6ddc2c79f3a0cd) --- sys/contrib/dev/rtw89/Kconfig | 22 + sys/contrib/dev/rtw89/Makefile | 6 + sys/contrib/dev/rtw89/cam.c | 173 +++--- sys/contrib/dev/rtw89/cam.h | 446 ++++------------ sys/contrib/dev/rtw89/chan.c | 11 +- sys/contrib/dev/rtw89/chan.h | 10 +- sys/contrib/dev/rtw89/coex.c | 5 +- sys/contrib/dev/rtw89/core.c | 911 ++++++++++++++++++++++++++++---- sys/contrib/dev/rtw89/core.h | 242 ++++++++- sys/contrib/dev/rtw89/debug.c | 424 ++++++++++++++- sys/contrib/dev/rtw89/debug.h | 1 + sys/contrib/dev/rtw89/fw.c | 353 ++++++++++--- sys/contrib/dev/rtw89/fw.h | 144 ++++- sys/contrib/dev/rtw89/mac.c | 270 ++++++++-- sys/contrib/dev/rtw89/mac.h | 115 +++- sys/contrib/dev/rtw89/mac80211.c | 124 ++++- sys/contrib/dev/rtw89/mac_be.c | 10 +- sys/contrib/dev/rtw89/pci.c | 486 +++++++++++++---- sys/contrib/dev/rtw89/pci.h | 132 ++++- sys/contrib/dev/rtw89/pci_be.c | 18 +- sys/contrib/dev/rtw89/phy.c | 541 +++++++++++++++++-- sys/contrib/dev/rtw89/phy.h | 24 +- sys/contrib/dev/rtw89/phy_be.c | 13 + sys/contrib/dev/rtw89/ps.c | 26 +- sys/contrib/dev/rtw89/reg.h | 80 ++- sys/contrib/dev/rtw89/regd.c | 22 +- sys/contrib/dev/rtw89/rtw8851b.c | 7 + sys/contrib/dev/rtw89/rtw8851b_rfk.c | 167 +++--- sys/contrib/dev/rtw89/rtw8851be.c | 4 + sys/contrib/dev/rtw89/rtw8851bu.c | 27 + sys/contrib/dev/rtw89/rtw8852a.c | 129 ++++- sys/contrib/dev/rtw89/rtw8852a_rfk.c | 16 +- sys/contrib/dev/rtw89/rtw8852ae.c | 4 + sys/contrib/dev/rtw89/rtw8852au.c | 79 +++ sys/contrib/dev/rtw89/rtw8852b.c | 7 + sys/contrib/dev/rtw89/rtw8852b_common.c | 6 +- sys/contrib/dev/rtw89/rtw8852b_rfk.c | 6 +- sys/contrib/dev/rtw89/rtw8852be.c | 4 + sys/contrib/dev/rtw89/rtw8852bt.c | 4 + sys/contrib/dev/rtw89/rtw8852bt_rfk.c | 14 +- sys/contrib/dev/rtw89/rtw8852bte.c | 4 + sys/contrib/dev/rtw89/rtw8852bu.c | 26 + sys/contrib/dev/rtw89/rtw8852c.c | 172 +++++- sys/contrib/dev/rtw89/rtw8852c.h | 2 +- sys/contrib/dev/rtw89/rtw8852c_rfk.c | 69 ++- sys/contrib/dev/rtw89/rtw8852ce.c | 4 + sys/contrib/dev/rtw89/rtw8852cu.c | 69 +++ sys/contrib/dev/rtw89/rtw8922a.c | 26 +- sys/contrib/dev/rtw89/rtw8922ae.c | 4 + sys/contrib/dev/rtw89/sar.c | 15 + sys/contrib/dev/rtw89/sar.h | 1 + sys/contrib/dev/rtw89/ser.c | 5 +- sys/contrib/dev/rtw89/txrx.h | 45 +- sys/contrib/dev/rtw89/usb.c | 115 ++-- sys/contrib/dev/rtw89/usb.h | 12 + sys/contrib/dev/rtw89/wow.c | 87 ++- sys/contrib/dev/rtw89/wow.h | 6 + sys/modules/rtw89/Makefile | 7 +- 58 files changed, 4651 insertions(+), 1101 deletions(-) diff --git a/sys/contrib/dev/rtw89/Kconfig b/sys/contrib/dev/rtw89/Kconfig index 4288c30b400a..44d8a7f32bf2 100644 --- a/sys/contrib/dev/rtw89/Kconfig +++ b/sys/contrib/dev/rtw89/Kconfig @@ -74,6 +74,17 @@ config RTW89_8852AE 802.11ax PCIe wireless network (Wi-Fi 6) adapter +config RTW89_8852AU + tristate "Realtek 8852AU USB wireless network (Wi-Fi 6) adapter" + depends on USB + select RTW89_CORE + select RTW89_USB + select RTW89_8852A + help + Select this option will enable support for 8852AU chipset + + 802.11ax USB wireless network (Wi-Fi 6) adapter + config RTW89_8852BE tristate "Realtek 8852BE PCI wireless network (Wi-Fi 6) adapter" depends on PCI @@ -121,6 +132,17 @@ config RTW89_8852CE 802.11ax PCIe wireless network (Wi-Fi 6E) adapter +config RTW89_8852CU + tristate "Realtek 8852CU USB wireless network (Wi-Fi 6E) adapter" + depends on USB + select RTW89_CORE + select RTW89_USB + select RTW89_8852C + help + Select this option will enable support for 8852CU chipset + + 802.11ax USB wireless network (Wi-Fi 6E) adapter + config RTW89_8922AE tristate "Realtek 8922AE/8922AE-VS PCI wireless network (Wi-Fi 7) adapter" depends on PCI diff --git a/sys/contrib/dev/rtw89/Makefile b/sys/contrib/dev/rtw89/Makefile index 23e43c444f69..1be81f254fca 100644 --- a/sys/contrib/dev/rtw89/Makefile +++ b/sys/contrib/dev/rtw89/Makefile @@ -43,6 +43,9 @@ rtw89_8852a-objs := rtw8852a.o \ obj-$(CONFIG_RTW89_8852AE) += rtw89_8852ae.o rtw89_8852ae-objs := rtw8852ae.o +obj-$(CONFIG_RTW89_8852AU) += rtw89_8852au.o +rtw89_8852au-objs := rtw8852au.o + obj-$(CONFIG_RTW89_8852B_COMMON) += rtw89_8852b_common.o rtw89_8852b_common-objs := rtw8852b_common.o @@ -75,6 +78,9 @@ rtw89_8852c-objs := rtw8852c.o \ obj-$(CONFIG_RTW89_8852CE) += rtw89_8852ce.o rtw89_8852ce-objs := rtw8852ce.o +obj-$(CONFIG_RTW89_8852CU) += rtw89_8852cu.o +rtw89_8852cu-objs := rtw8852cu.o + obj-$(CONFIG_RTW89_8922A) += rtw89_8922a.o rtw89_8922a-objs := rtw8922a.o \ rtw8922a_rfk.o diff --git a/sys/contrib/dev/rtw89/cam.c b/sys/contrib/dev/rtw89/cam.c index 385a238fe5cc..9370cbda945c 100644 --- a/sys/contrib/dev/rtw89/cam.c +++ b/sys/contrib/dev/rtw89/cam.c @@ -236,7 +236,8 @@ static int __rtw89_cam_detach_sec_cam(struct rtw89_dev *rtwdev, if (ret) rtw89_err(rtwdev, "failed to update dctl cam del key: %d\n", ret); - ret = rtw89_fw_h2c_cam(rtwdev, rtwvif_link, rtwsta_link, NULL); + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif_link, rtwsta_link, NULL, + RTW89_ROLE_INFO_CHANGE); if (ret) rtw89_err(rtwdev, "failed to update cam del key: %d\n", ret); } @@ -276,7 +277,8 @@ static int __rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, ret); return ret; } - ret = rtw89_fw_h2c_cam(rtwdev, rtwvif_link, rtwsta_link, NULL); + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif_link, rtwsta_link, NULL, + RTW89_ROLE_INFO_CHANGE); if (ret) { rtw89_err(rtwdev, "failed to update addr cam sec entry: %d\n", ret); @@ -760,7 +762,8 @@ int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link) int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link, - struct rtw89_sta_link *rtwsta_link, u8 *cmd) + struct rtw89_sta_link *rtwsta_link, + struct rtw89_h2c_addr_cam_v0 *h2c) { struct rtw89_bssid_cam_entry *bssid_cam = rtw89_get_bssid_cam_of(rtwvif_link, rtwsta_link); @@ -780,20 +783,19 @@ int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, rcu_read_unlock(); - FWCMD_SET_ADDR_BSSID_IDX(cmd, bssid_cam->bssid_cam_idx); - FWCMD_SET_ADDR_BSSID_OFFSET(cmd, bssid_cam->offset); - FWCMD_SET_ADDR_BSSID_LEN(cmd, bssid_cam->len); - FWCMD_SET_ADDR_BSSID_VALID(cmd, bssid_cam->valid); - FWCMD_SET_ADDR_BSSID_MASK(cmd, bss_mask); - FWCMD_SET_ADDR_BSSID_BB_SEL(cmd, bssid_cam->phy_idx); - FWCMD_SET_ADDR_BSSID_BSS_COLOR(cmd, bss_color); - - FWCMD_SET_ADDR_BSSID_BSSID0(cmd, bssid_cam->bssid[0]); - FWCMD_SET_ADDR_BSSID_BSSID1(cmd, bssid_cam->bssid[1]); - FWCMD_SET_ADDR_BSSID_BSSID2(cmd, bssid_cam->bssid[2]); - FWCMD_SET_ADDR_BSSID_BSSID3(cmd, bssid_cam->bssid[3]); - FWCMD_SET_ADDR_BSSID_BSSID4(cmd, bssid_cam->bssid[4]); - FWCMD_SET_ADDR_BSSID_BSSID5(cmd, bssid_cam->bssid[5]); + h2c->w12 = le32_encode_bits(bssid_cam->bssid_cam_idx, ADDR_CAM_W12_BSSID_IDX) | + le32_encode_bits(bssid_cam->offset, ADDR_CAM_W12_BSSID_OFFSET) | + le32_encode_bits(bssid_cam->len, ADDR_CAM_W12_BSSID_LEN); + h2c->w13 = le32_encode_bits(bssid_cam->valid, ADDR_CAM_W13_BSSID_VALID) | + le32_encode_bits(bss_mask, ADDR_CAM_W13_BSSID_MASK) | + le32_encode_bits(bssid_cam->phy_idx, ADDR_CAM_W13_BSSID_BB_SEL) | + le32_encode_bits(bss_color, ADDR_CAM_W13_BSSID_BSS_COLOR) | + le32_encode_bits(bssid_cam->bssid[0], ADDR_CAM_W13_BSSID_BSSID0) | + le32_encode_bits(bssid_cam->bssid[1], ADDR_CAM_W13_BSSID_BSSID1); + h2c->w14 = le32_encode_bits(bssid_cam->bssid[2], ADDR_CAM_W14_BSSID_BSSID2) | + le32_encode_bits(bssid_cam->bssid[3], ADDR_CAM_W14_BSSID_BSSID3) | + le32_encode_bits(bssid_cam->bssid[4], ADDR_CAM_W14_BSSID_BSSID4) | + le32_encode_bits(bssid_cam->bssid[5], ADDR_CAM_W14_BSSID_BSSID5); return 0; } @@ -813,18 +815,21 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link, struct rtw89_sta_link *rtwsta_link, const u8 *scan_mac_addr, - u8 *cmd) + struct rtw89_h2c_addr_cam_v0 *h2c) { struct ieee80211_vif *vif = rtwvif_link_to_vif(rtwvif_link); struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif_link, rtwsta_link); struct ieee80211_sta *sta = rtwsta_link_to_sta_safe(rtwsta_link); + const struct rtw89_chip_info *chip = rtwdev->chip; struct ieee80211_link_sta *link_sta; const u8 *sma = scan_mac_addr ? scan_mac_addr : rtwvif_link->mac_addr; u8 sma_hash, tma_hash, addr_msk_start; + u8 ver = chip->addrcam_ver; u8 sma_start = 0; u8 tma_start = 0; const u8 *tma; + u8 mac_id; rcu_read_lock(); @@ -845,69 +850,79 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, sma_hash = rtw89_cam_addr_hash(sma_start, sma); tma_hash = rtw89_cam_addr_hash(tma_start, tma); - FWCMD_SET_ADDR_IDX(cmd, addr_cam->addr_cam_idx); - FWCMD_SET_ADDR_OFFSET(cmd, addr_cam->offset); - FWCMD_SET_ADDR_LEN(cmd, addr_cam->len); - - FWCMD_SET_ADDR_VALID(cmd, addr_cam->valid); - FWCMD_SET_ADDR_NET_TYPE(cmd, rtwvif_link->net_type); - FWCMD_SET_ADDR_BCN_HIT_COND(cmd, rtwvif_link->bcn_hit_cond); - FWCMD_SET_ADDR_HIT_RULE(cmd, rtwvif_link->hit_rule); - FWCMD_SET_ADDR_BB_SEL(cmd, rtwvif_link->phy_idx); - FWCMD_SET_ADDR_ADDR_MASK(cmd, addr_cam->addr_mask); - FWCMD_SET_ADDR_MASK_SEL(cmd, addr_cam->mask_sel); - FWCMD_SET_ADDR_SMA_HASH(cmd, sma_hash); - FWCMD_SET_ADDR_TMA_HASH(cmd, tma_hash); - - FWCMD_SET_ADDR_BSSID_CAM_IDX(cmd, addr_cam->bssid_cam_idx); - - FWCMD_SET_ADDR_SMA0(cmd, sma[0]); - FWCMD_SET_ADDR_SMA1(cmd, sma[1]); - FWCMD_SET_ADDR_SMA2(cmd, sma[2]); - FWCMD_SET_ADDR_SMA3(cmd, sma[3]); - FWCMD_SET_ADDR_SMA4(cmd, sma[4]); - FWCMD_SET_ADDR_SMA5(cmd, sma[5]); - - FWCMD_SET_ADDR_TMA0(cmd, tma[0]); - FWCMD_SET_ADDR_TMA1(cmd, tma[1]); - FWCMD_SET_ADDR_TMA2(cmd, tma[2]); - FWCMD_SET_ADDR_TMA3(cmd, tma[3]); - FWCMD_SET_ADDR_TMA4(cmd, tma[4]); - FWCMD_SET_ADDR_TMA5(cmd, tma[5]); - - FWCMD_SET_ADDR_PORT_INT(cmd, rtwvif_link->port); - FWCMD_SET_ADDR_TSF_SYNC(cmd, rtwvif_link->port); - FWCMD_SET_ADDR_TF_TRS(cmd, rtwvif_link->trigger); - FWCMD_SET_ADDR_LSIG_TXOP(cmd, rtwvif_link->lsig_txop); - FWCMD_SET_ADDR_TGT_IND(cmd, rtwvif_link->tgt_ind); - FWCMD_SET_ADDR_FRM_TGT_IND(cmd, rtwvif_link->frm_tgt_ind); - FWCMD_SET_ADDR_MACID(cmd, rtwsta_link ? rtwsta_link->mac_id : - rtwvif_link->mac_id); + mac_id = rtwsta_link ? rtwsta_link->mac_id : rtwvif_link->mac_id; + + if (ver == 0) + h2c->w1 = le32_encode_bits(addr_cam->addr_cam_idx, ADDR_CAM_W1_IDX) | + le32_encode_bits(addr_cam->offset, ADDR_CAM_W1_OFFSET) | + le32_encode_bits(addr_cam->len, ADDR_CAM_W1_LEN); + else + h2c->w1 = le32_encode_bits(addr_cam->addr_cam_idx, ADDR_CAM_W1_V1_IDX) | + le32_encode_bits(addr_cam->offset, ADDR_CAM_W1_V1_OFFSET) | + le32_encode_bits(addr_cam->len, ADDR_CAM_W1_V1_LEN); + + h2c->w2 = le32_encode_bits(addr_cam->valid, ADDR_CAM_W2_VALID) | + le32_encode_bits(rtwvif_link->net_type, ADDR_CAM_W2_NET_TYPE) | + le32_encode_bits(rtwvif_link->bcn_hit_cond, ADDR_CAM_W2_BCN_HIT_COND) | + le32_encode_bits(rtwvif_link->hit_rule, ADDR_CAM_W2_HIT_RULE) | + le32_encode_bits(rtwvif_link->phy_idx, ADDR_CAM_W2_BB_SEL) | + le32_encode_bits(addr_cam->addr_mask, ADDR_CAM_W2_ADDR_MASK) | + le32_encode_bits(addr_cam->mask_sel, ADDR_CAM_W2_MASK_SEL) | + le32_encode_bits(sma_hash, ADDR_CAM_W2_SMA_HASH) | + le32_encode_bits(tma_hash, ADDR_CAM_W2_TMA_HASH); + h2c->w3 = le32_encode_bits(addr_cam->bssid_cam_idx, ADDR_CAM_W3_BSSID_CAM_IDX); + h2c->w4 = le32_encode_bits(sma[0], ADDR_CAM_W4_SMA0) | + le32_encode_bits(sma[1], ADDR_CAM_W4_SMA1) | + le32_encode_bits(sma[2], ADDR_CAM_W4_SMA2) | + le32_encode_bits(sma[3], ADDR_CAM_W4_SMA3); + h2c->w5 = le32_encode_bits(sma[4], ADDR_CAM_W5_SMA4) | + le32_encode_bits(sma[5], ADDR_CAM_W5_SMA5) | + le32_encode_bits(tma[0], ADDR_CAM_W5_TMA0) | + le32_encode_bits(tma[1], ADDR_CAM_W5_TMA1); + h2c->w6 = le32_encode_bits(tma[2], ADDR_CAM_W6_TMA2) | + le32_encode_bits(tma[3], ADDR_CAM_W6_TMA3) | + le32_encode_bits(tma[4], ADDR_CAM_W6_TMA4) | + le32_encode_bits(tma[5], ADDR_CAM_W6_TMA5); + if (ver == 0) + h2c->w8 = le32_encode_bits(rtwvif_link->port, ADDR_CAM_W8_PORT_INT) | + le32_encode_bits(rtwvif_link->port, ADDR_CAM_W8_TSF_SYNC) | + le32_encode_bits(rtwvif_link->trigger, ADDR_CAM_W8_TF_TRS) | + le32_encode_bits(rtwvif_link->lsig_txop, ADDR_CAM_W8_LSIG_TXOP) | + le32_encode_bits(rtwvif_link->tgt_ind, ADDR_CAM_W8_TGT_IND) | + le32_encode_bits(rtwvif_link->frm_tgt_ind, ADDR_CAM_W8_FRM_TGT_IND) | + le32_encode_bits(mac_id, ADDR_CAM_W8_MACID); + else + h2c->w8 = le32_encode_bits(rtwvif_link->port, ADDR_CAM_W8_V1_PORT_INT) | + le32_encode_bits(rtwvif_link->port, ADDR_CAM_W8_V1_TSF_SYNC) | + le32_encode_bits(rtwvif_link->trigger, ADDR_CAM_W8_V1_TF_TRS) | + le32_encode_bits(rtwvif_link->lsig_txop, ADDR_CAM_W8_V1_LSIG_TXOP) | + le32_encode_bits(mac_id, ADDR_CAM_W8_V1_MACID); + if (rtwvif_link->net_type == RTW89_NET_TYPE_INFRA) - FWCMD_SET_ADDR_AID12(cmd, vif->cfg.aid & 0xfff); + h2c->w9 = le32_encode_bits(vif->cfg.aid & 0xfff, ADDR_CAM_W9_AID12); else if (rtwvif_link->net_type == RTW89_NET_TYPE_AP_MODE) - FWCMD_SET_ADDR_AID12(cmd, sta ? sta->aid & 0xfff : 0); - FWCMD_SET_ADDR_WOL_PATTERN(cmd, rtwvif_link->wowlan_pattern); - FWCMD_SET_ADDR_WOL_UC(cmd, rtwvif_link->wowlan_uc); - FWCMD_SET_ADDR_WOL_MAGIC(cmd, rtwvif_link->wowlan_magic); - FWCMD_SET_ADDR_WAPI(cmd, addr_cam->wapi); - FWCMD_SET_ADDR_SEC_ENT_MODE(cmd, addr_cam->sec_ent_mode); - FWCMD_SET_ADDR_SEC_ENT0_KEYID(cmd, addr_cam->sec_ent_keyid[0]); - FWCMD_SET_ADDR_SEC_ENT1_KEYID(cmd, addr_cam->sec_ent_keyid[1]); - FWCMD_SET_ADDR_SEC_ENT2_KEYID(cmd, addr_cam->sec_ent_keyid[2]); - FWCMD_SET_ADDR_SEC_ENT3_KEYID(cmd, addr_cam->sec_ent_keyid[3]); - FWCMD_SET_ADDR_SEC_ENT4_KEYID(cmd, addr_cam->sec_ent_keyid[4]); - FWCMD_SET_ADDR_SEC_ENT5_KEYID(cmd, addr_cam->sec_ent_keyid[5]); - FWCMD_SET_ADDR_SEC_ENT6_KEYID(cmd, addr_cam->sec_ent_keyid[6]); - - FWCMD_SET_ADDR_SEC_ENT_VALID(cmd, addr_cam->sec_cam_map[0] & 0xff); - FWCMD_SET_ADDR_SEC_ENT0(cmd, addr_cam->sec_ent[0]); - FWCMD_SET_ADDR_SEC_ENT1(cmd, addr_cam->sec_ent[1]); - FWCMD_SET_ADDR_SEC_ENT2(cmd, addr_cam->sec_ent[2]); - FWCMD_SET_ADDR_SEC_ENT3(cmd, addr_cam->sec_ent[3]); - FWCMD_SET_ADDR_SEC_ENT4(cmd, addr_cam->sec_ent[4]); - FWCMD_SET_ADDR_SEC_ENT5(cmd, addr_cam->sec_ent[5]); - FWCMD_SET_ADDR_SEC_ENT6(cmd, addr_cam->sec_ent[6]); + h2c->w9 = le32_encode_bits(sta ? sta->aid & 0xfff : 0, ADDR_CAM_W9_AID12); + + h2c->w9 |= le32_encode_bits(rtwvif_link->wowlan_pattern, ADDR_CAM_W9_WOL_PATTERN) | + le32_encode_bits(rtwvif_link->wowlan_uc, ADDR_CAM_W9_WOL_UC) | + le32_encode_bits(rtwvif_link->wowlan_magic, ADDR_CAM_W9_WOL_MAGIC) | + le32_encode_bits(addr_cam->wapi, ADDR_CAM_W9_WAPI) | + le32_encode_bits(addr_cam->sec_ent_mode, ADDR_CAM_W9_SEC_ENT_MODE) | + le32_encode_bits(addr_cam->sec_ent_keyid[0], ADDR_CAM_W9_SEC_ENT0_KEYID) | + le32_encode_bits(addr_cam->sec_ent_keyid[1], ADDR_CAM_W9_SEC_ENT1_KEYID) | + le32_encode_bits(addr_cam->sec_ent_keyid[2], ADDR_CAM_W9_SEC_ENT2_KEYID) | + le32_encode_bits(addr_cam->sec_ent_keyid[3], ADDR_CAM_W9_SEC_ENT3_KEYID) | + le32_encode_bits(addr_cam->sec_ent_keyid[4], ADDR_CAM_W9_SEC_ENT4_KEYID) | + le32_encode_bits(addr_cam->sec_ent_keyid[5], ADDR_CAM_W9_SEC_ENT5_KEYID) | + le32_encode_bits(addr_cam->sec_ent_keyid[6], ADDR_CAM_W9_SEC_ENT6_KEYID); + h2c->w10 = le32_encode_bits(addr_cam->sec_cam_map[0] & 0xff, ADDR_CAM_W10_SEC_ENT_VALID) | + le32_encode_bits(addr_cam->sec_ent[0], ADDR_CAM_W10_SEC_ENT0) | + le32_encode_bits(addr_cam->sec_ent[1], ADDR_CAM_W10_SEC_ENT1) | + le32_encode_bits(addr_cam->sec_ent[2], ADDR_CAM_W10_SEC_ENT2); + h2c->w11 = le32_encode_bits(addr_cam->sec_ent[3], ADDR_CAM_W11_SEC_ENT3) | + le32_encode_bits(addr_cam->sec_ent[4], ADDR_CAM_W11_SEC_ENT4) | + le32_encode_bits(addr_cam->sec_ent[5], ADDR_CAM_W11_SEC_ENT5) | + le32_encode_bits(addr_cam->sec_ent[6], ADDR_CAM_W11_SEC_ENT6); rcu_read_unlock(); } diff --git a/sys/contrib/dev/rtw89/cam.h b/sys/contrib/dev/rtw89/cam.h index 8fd2d776408e..c46b6f91bbdb 100644 --- a/sys/contrib/dev/rtw89/cam.h +++ b/sys/contrib/dev/rtw89/cam.h @@ -12,345 +12,109 @@ #define RTW89_BSSID_MATCH_ALL GENMASK(5, 0) #define RTW89_BSSID_MATCH_5_BYTES GENMASK(4, 0) -static inline void FWCMD_SET_ADDR_IDX(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 1, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_OFFSET(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 1, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_LEN(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 1, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_VALID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, BIT(0)); -} - -static inline void FWCMD_SET_ADDR_NET_TYPE(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(2, 1)); -} - -static inline void FWCMD_SET_ADDR_BCN_HIT_COND(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(4, 3)); -} - -static inline void FWCMD_SET_ADDR_HIT_RULE(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(6, 5)); -} - -static inline void FWCMD_SET_ADDR_BB_SEL(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, BIT(7)); -} - -static inline void FWCMD_SET_ADDR_ADDR_MASK(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(13, 8)); -} - -static inline void FWCMD_SET_ADDR_MASK_SEL(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(15, 14)); -} - -static inline void FWCMD_SET_ADDR_SMA_HASH(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_TMA_HASH(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 2, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_BSSID_CAM_IDX(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 3, value, GENMASK(5, 0)); -} - -static inline void FWCMD_SET_ADDR_SMA0(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 4, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_SMA1(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 4, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_SMA2(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 4, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_SMA3(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 4, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_SMA4(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 5, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_SMA5(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 5, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_TMA0(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 5, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_TMA1(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 5, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_TMA2(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 6, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_TMA3(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 6, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_TMA4(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 6, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_TMA5(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 6, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_MACID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_PORT_INT(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, GENMASK(10, 8)); -} - -static inline void FWCMD_SET_ADDR_TSF_SYNC(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, GENMASK(13, 11)); -} - -static inline void FWCMD_SET_ADDR_TF_TRS(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, BIT(14)); -} - -static inline void FWCMD_SET_ADDR_LSIG_TXOP(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, BIT(15)); -} - -static inline void FWCMD_SET_ADDR_TGT_IND(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, GENMASK(26, 24)); -} - -static inline void FWCMD_SET_ADDR_FRM_TGT_IND(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 8, value, GENMASK(29, 27)); -} - -static inline void FWCMD_SET_ADDR_AID12(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(11, 0)); -} - -static inline void FWCMD_SET_ADDR_AID12_0(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_AID12_1(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(11, 8)); -} - -static inline void FWCMD_SET_ADDR_WOL_PATTERN(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, BIT(12)); -} - -static inline void FWCMD_SET_ADDR_WOL_UC(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, BIT(13)); -} - -static inline void FWCMD_SET_ADDR_WOL_MAGIC(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, BIT(14)); -} - -static inline void FWCMD_SET_ADDR_WAPI(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, BIT(15)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT_MODE(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(17, 16)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT0_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(19, 18)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT1_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(21, 20)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT2_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(23, 22)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT3_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(25, 24)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT4_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(27, 26)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT5_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(29, 28)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT6_KEYID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 9, value, GENMASK(31, 30)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT_VALID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 10, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT0(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 10, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT1(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 10, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT2(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 10, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT3(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 11, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT4(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 11, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT5(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 11, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_SEC_ENT6(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 11, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_BSSID_IDX(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 12, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_BSSID_OFFSET(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 12, value, GENMASK(15, 8)); -} - -static inline void FWCMD_SET_ADDR_BSSID_LEN(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 12, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_BSSID_VALID(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 13, value, BIT(0)); -} - -static inline void FWCMD_SET_ADDR_BSSID_BB_SEL(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 13, value, BIT(1)); -} - -static inline void FWCMD_SET_ADDR_BSSID_MASK(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 13, value, GENMASK(7, 2)); -} - -static inline void FWCMD_SET_ADDR_BSSID_BSS_COLOR(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 13, value, GENMASK(13, 8)); -} - -static inline void FWCMD_SET_ADDR_BSSID_BSSID0(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 13, value, GENMASK(23, 16)); -} - -static inline void FWCMD_SET_ADDR_BSSID_BSSID1(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 13, value, GENMASK(31, 24)); -} - -static inline void FWCMD_SET_ADDR_BSSID_BSSID2(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 14, value, GENMASK(7, 0)); -} - -static inline void FWCMD_SET_ADDR_BSSID_BSSID3(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 14, value, GENMASK(15, 8)); -} +struct rtw89_h2c_addr_cam_v0 { + __le32 w0; + __le32 w1; + __le32 w2; + __le32 w3; + __le32 w4; + __le32 w5; + __le32 w6; + __le32 w7; + __le32 w8; + __le32 w9; + __le32 w10; + __le32 w11; + __le32 w12; + __le32 w13; + __le32 w14; +} __packed; -static inline void FWCMD_SET_ADDR_BSSID_BSSID4(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 14, value, GENMASK(23, 16)); -} +struct rtw89_h2c_addr_cam { + struct rtw89_h2c_addr_cam_v0 v0; + __le32 w15; +} __packed; -static inline void FWCMD_SET_ADDR_BSSID_BSSID5(void *cmd, u32 value) -{ - le32p_replace_bits((__le32 *)(cmd) + 14, value, GENMASK(31, 24)); -} +#define ADDR_CAM_W1_IDX GENMASK(7, 0) +#define ADDR_CAM_W1_OFFSET GENMASK(15, 8) +#define ADDR_CAM_W1_LEN GENMASK(23, 16) +#define ADDR_CAM_W1_V1_IDX GENMASK(9, 0) +#define ADDR_CAM_W1_V1_OFFSET GENMASK(23, 16) +#define ADDR_CAM_W1_V1_LEN GENMASK(31, 24) +#define ADDR_CAM_W2_VALID BIT(0) +#define ADDR_CAM_W2_NET_TYPE GENMASK(2, 1) +#define ADDR_CAM_W2_BCN_HIT_COND GENMASK(4, 3) +#define ADDR_CAM_W2_HIT_RULE GENMASK(6, 5) +#define ADDR_CAM_W2_BB_SEL BIT(7) +#define ADDR_CAM_W2_ADDR_MASK GENMASK(13, 8) +#define ADDR_CAM_W2_MASK_SEL GENMASK(15, 14) +#define ADDR_CAM_W2_SMA_HASH GENMASK(23, 16) +#define ADDR_CAM_W2_TMA_HASH GENMASK(31, 24) +#define ADDR_CAM_W3_BSSID_CAM_IDX GENMASK(5, 0) +#define ADDR_CAM_W4_SMA0 GENMASK(7, 0) +#define ADDR_CAM_W4_SMA1 GENMASK(15, 8) +#define ADDR_CAM_W4_SMA2 GENMASK(23, 16) +#define ADDR_CAM_W4_SMA3 GENMASK(31, 24) +#define ADDR_CAM_W5_SMA4 GENMASK(7, 0) +#define ADDR_CAM_W5_SMA5 GENMASK(15, 8) +#define ADDR_CAM_W5_TMA0 GENMASK(23, 16) +#define ADDR_CAM_W5_TMA1 GENMASK(31, 24) +#define ADDR_CAM_W6_TMA2 GENMASK(7, 0) +#define ADDR_CAM_W6_TMA3 GENMASK(15, 8) +#define ADDR_CAM_W6_TMA4 GENMASK(23, 16) +#define ADDR_CAM_W6_TMA5 GENMASK(31, 24) +#define ADDR_CAM_W8_MACID GENMASK(7, 0) +#define ADDR_CAM_W8_PORT_INT GENMASK(10, 8) +#define ADDR_CAM_W8_TSF_SYNC GENMASK(13, 11) +#define ADDR_CAM_W8_TF_TRS BIT(14) +#define ADDR_CAM_W8_LSIG_TXOP BIT(15) +#define ADDR_CAM_W8_TGT_IND GENMASK(26, 24) +#define ADDR_CAM_W8_FRM_TGT_IND GENMASK(29, 27) +#define ADDR_CAM_W8_V1_MACID GENMASK(9, 0) +#define ADDR_CAM_W8_V1_PORT_INT GENMASK(18, 16) +#define ADDR_CAM_W8_V1_TSF_SYNC GENMASK(21, 19) +#define ADDR_CAM_W8_V1_TF_TRS BIT(22) +#define ADDR_CAM_W8_V1_LSIG_TXOP BIT(23) +#define ADDR_CAM_W8_V1_TB_RANGING BIT(24) +#define ADDR_CAM_W8_V1_TB_SENSING BIT(25) +#define ADDR_CAM_W8_V1_SENS_EN BIT(26) +#define ADDR_CAM_W9_AID12 GENMASK(11, 0) +#define ADDR_CAM_W9_AID12_0 GENMASK(7, 0) +#define ADDR_CAM_W9_AID12_1 GENMASK(11, 8) +#define ADDR_CAM_W9_WOL_PATTERN BIT(12) +#define ADDR_CAM_W9_WOL_UC BIT(13) +#define ADDR_CAM_W9_WOL_MAGIC BIT(14) +#define ADDR_CAM_W9_WAPI BIT(15) +#define ADDR_CAM_W9_SEC_ENT_MODE GENMASK(17, 16) +#define ADDR_CAM_W9_SEC_ENT0_KEYID GENMASK(19, 18) +#define ADDR_CAM_W9_SEC_ENT1_KEYID GENMASK(21, 20) +#define ADDR_CAM_W9_SEC_ENT2_KEYID GENMASK(23, 22) +#define ADDR_CAM_W9_SEC_ENT3_KEYID GENMASK(25, 24) +#define ADDR_CAM_W9_SEC_ENT4_KEYID GENMASK(27, 26) +#define ADDR_CAM_W9_SEC_ENT5_KEYID GENMASK(29, 28) +#define ADDR_CAM_W9_SEC_ENT6_KEYID GENMASK(31, 30) +#define ADDR_CAM_W10_SEC_ENT_VALID GENMASK(7, 0) +#define ADDR_CAM_W10_SEC_ENT0 GENMASK(15, 8) +#define ADDR_CAM_W10_SEC_ENT1 GENMASK(23, 16) +#define ADDR_CAM_W10_SEC_ENT2 GENMASK(31, 24) +#define ADDR_CAM_W11_SEC_ENT3 GENMASK(7, 0) +#define ADDR_CAM_W11_SEC_ENT4 GENMASK(15, 8) +#define ADDR_CAM_W11_SEC_ENT5 GENMASK(23, 16) +#define ADDR_CAM_W11_SEC_ENT6 GENMASK(31, 24) +#define ADDR_CAM_W12_BSSID_IDX GENMASK(7, 0) +#define ADDR_CAM_W12_BSSID_OFFSET GENMASK(15, 8) +#define ADDR_CAM_W12_BSSID_LEN GENMASK(23, 16) +#define ADDR_CAM_W13_BSSID_VALID BIT(0) +#define ADDR_CAM_W13_BSSID_BB_SEL BIT(1) +#define ADDR_CAM_W13_BSSID_MASK GENMASK(7, 2) +#define ADDR_CAM_W13_BSSID_BSS_COLOR GENMASK(13, 8) +#define ADDR_CAM_W13_BSSID_BSSID0 GENMASK(23, 16) +#define ADDR_CAM_W13_BSSID_BSSID1 GENMASK(31, 24) +#define ADDR_CAM_W14_BSSID_BSSID2 GENMASK(7, 0) +#define ADDR_CAM_W14_BSSID_BSSID3 GENMASK(15, 8) +#define ADDR_CAM_W14_BSSID_BSSID4 GENMASK(23, 16) +#define ADDR_CAM_W14_BSSID_BSSID5 GENMASK(31, 24) +#define ADDR_CAM_W15_UPD_MODE GENMASK(2, 0) struct rtw89_h2c_dctlinfo_ud_v1 { __le32 c0; @@ -552,9 +316,10 @@ int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, void rtw89_cam_deinit_bssid_cam(struct rtw89_dev *rtwdev, struct rtw89_bssid_cam_entry *bssid_cam); void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, - struct rtw89_vif_link *vif, + struct rtw89_vif_link *rtwvif_link, struct rtw89_sta_link *rtwsta_link, - const u8 *scan_mac_addr, u8 *cmd); + const u8 *scan_mac_addr, + struct rtw89_h2c_addr_cam_v0 *h2c); void rtw89_cam_fill_dctl_sec_cam_info_v1(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link, struct rtw89_sta_link *rtwsta_link, @@ -565,7 +330,8 @@ void rtw89_cam_fill_dctl_sec_cam_info_v2(struct rtw89_dev *rtwdev, struct rtw89_h2c_dctlinfo_ud_v2 *h2c); int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link, - struct rtw89_sta_link *rtwsta_link, u8 *cmd); + struct rtw89_sta_link *rtwsta_link, + struct rtw89_h2c_addr_cam_v0 *h2c); int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta, diff --git a/sys/contrib/dev/rtw89/chan.c b/sys/contrib/dev/rtw89/chan.c index bbdae184a0df..220b0f4988f7 100644 --- a/sys/contrib/dev/rtw89/chan.c +++ b/sys/contrib/dev/rtw89/chan.c @@ -281,6 +281,7 @@ void rtw89_entity_init(struct rtw89_dev *rtwdev) { struct rtw89_hal *hal = &rtwdev->hal; struct rtw89_entity_mgnt *mgnt = &hal->entity_mgnt; + int i, j; hal->entity_pause = false; bitmap_zero(hal->entity_map, NUM_OF_RTW89_CHANCTX); @@ -289,6 +290,11 @@ void rtw89_entity_init(struct rtw89_dev *rtwdev) INIT_LIST_HEAD(&mgnt->active_list); + for (i = 0; i < RTW89_MAX_INTERFACE_NUM; i++) { + for (j = 0; j < __RTW89_MLD_MAX_LINK_NUM; j++) + mgnt->chanctx_tbl[i][j] = RTW89_CHANCTX_IDLE; + } + rtw89_config_default_chandef(rtwdev); } @@ -353,7 +359,7 @@ static void rtw89_normalize_link_chanctx(struct rtw89_dev *rtwdev, const struct rtw89_chan *__rtw89_mgnt_chan_get(struct rtw89_dev *rtwdev, const char *caller_message, - u8 link_index) + u8 link_index, bool nullchk) { struct rtw89_hal *hal = &rtwdev->hal; struct rtw89_entity_mgnt *mgnt = &hal->entity_mgnt; @@ -400,6 +406,9 @@ const struct rtw89_chan *__rtw89_mgnt_chan_get(struct rtw89_dev *rtwdev, return rtw89_chan_get(rtwdev, chanctx_idx); dflt: + if (unlikely(nullchk)) + return NULL; + rtw89_debug(rtwdev, RTW89_DBG_CHAN, "%s (%s): prefetch NULL on link index %u\n", __func__, caller_message ?: "", link_index); diff --git a/sys/contrib/dev/rtw89/chan.h b/sys/contrib/dev/rtw89/chan.h index b1175419f92b..5b22764d5329 100644 --- a/sys/contrib/dev/rtw89/chan.h +++ b/sys/contrib/dev/rtw89/chan.h @@ -180,10 +180,16 @@ void rtw89_chanctx_proceed(struct rtw89_dev *rtwdev, const struct rtw89_chan *__rtw89_mgnt_chan_get(struct rtw89_dev *rtwdev, const char *caller_message, - u8 link_index); + u8 link_index, bool nullchk); #define rtw89_mgnt_chan_get(rtwdev, link_index) \ - __rtw89_mgnt_chan_get(rtwdev, __func__, link_index) + __rtw89_mgnt_chan_get(rtwdev, __func__, link_index, false) + +static inline const struct rtw89_chan * +rtw89_mgnt_chan_get_or_null(struct rtw89_dev *rtwdev, u8 link_index) +{ + return __rtw89_mgnt_chan_get(rtwdev, NULL, link_index, true); +} struct rtw89_mcc_links_info { struct rtw89_vif_link *links[NUM_OF_RTW89_MCC_ROLES]; diff --git a/sys/contrib/dev/rtw89/coex.c b/sys/contrib/dev/rtw89/coex.c index e4e6daf51a1b..0f7ae572ef91 100644 --- a/sys/contrib/dev/rtw89/coex.c +++ b/sys/contrib/dev/rtw89/coex.c @@ -93,7 +93,7 @@ static const struct rtw89_btc_fbtc_slot s_def[] = { [CXST_E2G] = __DEF_FBTC_SLOT(5, 0xea5a5a5a, SLOT_MIX), [CXST_E5G] = __DEF_FBTC_SLOT(5, 0xffffffff, SLOT_ISO), [CXST_EBT] = __DEF_FBTC_SLOT(5, 0xe5555555, SLOT_MIX), - [CXST_ENULL] = __DEF_FBTC_SLOT(5, 0xaaaaaaaa, SLOT_ISO), + [CXST_ENULL] = __DEF_FBTC_SLOT(5, 0x55555555, SLOT_MIX), [CXST_WLK] = __DEF_FBTC_SLOT(250, 0xea5a5a5a, SLOT_MIX), [CXST_W1FDD] = __DEF_FBTC_SLOT(50, 0xffffffff, SLOT_ISO), [CXST_B1FDD] = __DEF_FBTC_SLOT(50, 0xffffdfff, SLOT_ISO), @@ -4153,6 +4153,7 @@ void rtw89_btc_set_policy_v1(struct rtw89_dev *rtwdev, u16 policy_type) s_def[CXST_EBT].cxtbl, s_def[CXST_EBT].cxtype); _slot_set_le(btc, CXST_ENULL, s_def[CXST_ENULL].dur, s_def[CXST_ENULL].cxtbl, s_def[CXST_ENULL].cxtype); + _slot_set_dur(btc, CXST_EBT, dur_2); break; case BTC_CXP_OFFE_DEF2: _slot_set(btc, CXST_E2G, 20, cxtbl[1], SLOT_ISO); @@ -4162,6 +4163,7 @@ void rtw89_btc_set_policy_v1(struct rtw89_dev *rtwdev, u16 policy_type) s_def[CXST_EBT].cxtbl, s_def[CXST_EBT].cxtype); _slot_set_le(btc, CXST_ENULL, s_def[CXST_ENULL].dur, s_def[CXST_ENULL].cxtbl, s_def[CXST_ENULL].cxtype); + _slot_set_dur(btc, CXST_EBT, dur_2); break; case BTC_CXP_OFFE_2GBWMIXB: if (a2dp->exist) @@ -4170,6 +4172,7 @@ void rtw89_btc_set_policy_v1(struct rtw89_dev *rtwdev, u16 policy_type) _slot_set(btc, CXST_E2G, 5, tbl_w1, SLOT_MIX); _slot_set_le(btc, CXST_EBT, cpu_to_le16(40), s_def[CXST_EBT].cxtbl, s_def[CXST_EBT].cxtype); + _slot_set_dur(btc, CXST_EBT, dur_2); break; case BTC_CXP_OFFE_WL: /* for 4-way */ _slot_set(btc, CXST_E2G, 5, cxtbl[1], SLOT_MIX); diff --git a/sys/contrib/dev/rtw89/core.c b/sys/contrib/dev/rtw89/core.c index 1220378d08cf..b1b16dda3304 100644 --- a/sys/contrib/dev/rtw89/core.c +++ b/sys/contrib/dev/rtw89/core.c @@ -7,6 +7,7 @@ #endif #include +#include #include #include "cam.h" @@ -292,17 +293,18 @@ rtw89_get_6ghz_span(struct rtw89_dev *rtwdev, u32 center_freq) return NULL; } -bool rtw89_ra_report_to_bitrate(struct rtw89_dev *rtwdev, u8 rpt_rate, u16 *bitrate) +bool rtw89_legacy_rate_to_bitrate(struct rtw89_dev *rtwdev, u8 legacy_rate, u16 *bitrate) { - struct ieee80211_rate rate; + const struct ieee80211_rate *rate; - if (unlikely(rpt_rate >= ARRAY_SIZE(rtw89_bitrates))) { - rtw89_debug(rtwdev, RTW89_DBG_UNEXP, "invalid rpt rate %d\n", rpt_rate); + if (unlikely(legacy_rate >= ARRAY_SIZE(rtw89_bitrates))) { + rtw89_debug(rtwdev, RTW89_DBG_UNEXP, + "invalid legacy rate %d\n", legacy_rate); return false; } - rate = rtw89_bitrates[rpt_rate]; - *bitrate = rate.bitrate; + rate = &rtw89_bitrates[legacy_rate]; *** 9550 LINES SKIPPED *** From nobody Fri Feb 27 02:30:03 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNW4TD2z6T85x for ; Fri, 27 Feb 2026 02:30:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNW0c9vz41YB for ; Fri, 27 Feb 2026 02:30:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eVzRO19+jgD7zt9mCZgchGeOjpySFIx9ns/PYCx2Z6A=; b=V2Kd3RQaiqJykgyaTrr55Fop2yLJa7LNXY5q5RCS81ZPk5J0lz6iEkPq3H2jnkRU6Ds+KC Km5exUabJC4gHcIleHasRAwTBg96aUx/k8kCRfQ8O/r7XwLgQSZquqLoAp+Wt8cCs4gBQA yy6DoW8LM/YAh0Gpb+rl9Ezr7XZo3P00iNXyKJVup1gz30bNwFqR3vae7rhuY0llF4Ivy9 ieP6nHXMEPtH67OxjCEjE8LzS8RMsWOhBXnhXfNnOIvCoCBIE7QyX2Z6DD81etAx1bBceq KHsTynIT9xRnSDij699EMHO1ckzcUxHgB2dxeElUrPiwIzTlIb+XXHMMEsP2cw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159403; a=rsa-sha256; cv=none; b=W/D72NZVbRfvzCBM6cWA+/RlfvpdFhEvKnfRM+4aqP8dLktOwtMhnH7tc8QsuD6VKpIQKP OB0hFonNxIfAjZvyFli/+pn8NCgtHY4MgE09rtLYdf6q3F5N7CT877PTfVOGS6Su3VZbK1 M9ejuaGmaF0xX1ta4+qAlw+vD+KlDQ6VPyH2J1lem80C1clqMaIjjDHTz3nEPqNps6ougW YfMYacHQND7FatI9r1wrt7pq4Mg0Zfw4gftqOILDw1w8v1OvMWSAX/cJjtBsFg91fNZNjy 1aI9JwSpQkBHTIM+41wEi7cI1rXLTdFzSEX0k8W2tqvhIFMYXXWKngeCOai3xA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159403; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eVzRO19+jgD7zt9mCZgchGeOjpySFIx9ns/PYCx2Z6A=; b=Sj7RYumIIwgD4bpJwIl3Cf2mq/9Vbax3xqHn+csnbCu4N8Oouim4/mDvvhhoBD2yt2+Aar Sa5VLr1QcOK0NHD7WtLc5aXU+Z9BuenrQ2ffyShQ1rMCz/f38L+XAIw77i38109spAyZ/p uYXO5ofq5HddIvGQbzmW7MCsmaRpwZpzM4dwlkY9GBBwddYs/RHh1MZi02HX3V6f+vZY+M tipQOct/oCuvHsNJI9/OU6ac943Q6FwgtHdTmaz5Dv7pmMdXxBwUAEqJjJu/lyJwnIN0/e +OI+MYkD0f6FMhyjhLPR24WIpsCttZIpZjP0ydsSTBpPKPFObVa4U6F68MYqfA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNW08KVzyX8 for ; Fri, 27 Feb 2026 02:30:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22400 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: e5643f312af2 - stable/15 - rtw89: cleanup static_assert() calls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e5643f312af2da1e77b3cf90d204e910ee851134 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:03 +0000 Message-Id: <69a101ab.22400.478ab5b3@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e5643f312af2da1e77b3cf90d204e910ee851134 commit e5643f312af2da1e77b3cf90d204e910ee851134 Author: Bjoern A. Zeeb AuthorDate: 2026-01-20 22:51:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:37 +0000 rtw89: cleanup static_assert() calls These days we can use static_assert() without trouble so remove the FreeBSD-specific rtw89_static_assert implementation. This reduces the diff to upstream and will ease future driver updates. Sponsored by: The FreeBSD Foundation (cherry picked from commit 57b839612b7abb891057f1efe380c509664f868b) --- sys/contrib/dev/rtw89/core.h | 6 ------ sys/contrib/dev/rtw89/debug.c | 12 ------------ sys/contrib/dev/rtw89/fw.h | 8 -------- sys/contrib/dev/rtw89/phy.c | 8 -------- sys/contrib/dev/rtw89/rtw8851b.c | 6 ------ sys/contrib/dev/rtw89/rtw8852c.c | 6 ------ sys/contrib/dev/rtw89/rtw8852c_rfk.c | 4 ---- sys/contrib/dev/rtw89/sar.c | 4 ---- sys/contrib/dev/rtw89/ser.c | 4 ---- 9 files changed, 58 deletions(-) diff --git a/sys/contrib/dev/rtw89/core.h b/sys/contrib/dev/rtw89/core.h index a8bfa538515e..b6b810567a35 100644 --- a/sys/contrib/dev/rtw89/core.h +++ b/sys/contrib/dev/rtw89/core.h @@ -7703,10 +7703,4 @@ void rtw89_core_ntfy_btc_event(struct rtw89_dev *rtwdev, enum rtw89_btc_hmsg eve int rtw89_core_mlsr_switch(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif, unsigned int link_id); -#if defined(__linux__) -#define rtw89_static_assert(_x) static_assert(_x) -#elif defined(__FreeBSD__) -#define rtw89_static_assert(_x) _Static_assert(_x, "bad array size") -#endif - #endif diff --git a/sys/contrib/dev/rtw89/debug.c b/sys/contrib/dev/rtw89/debug.c index ad11256fffb7..0db142ba6d89 100644 --- a/sys/contrib/dev/rtw89/debug.c +++ b/sys/contrib/dev/rtw89/debug.c @@ -505,11 +505,7 @@ static const struct txpwr_ent __txpwr_ent_byr_ax[] = { __GEN_TXPWR_ENT4("HEDCM_2NSS", "MCS0 ", "MCS1 ", "MCS3 ", "MCS4 "), }; -#if defined(__linux__) static_assert((ARRAY_SIZE(__txpwr_ent_byr_ax) * 4) == -#elif defined(__FreeBSD__) -rtw89_static_assert((ARRAY_SIZE(__txpwr_ent_byr_ax) * 4) == -#endif (R_AX_PWR_BY_RATE_MAX - R_AX_PWR_BY_RATE + 4)); static const struct txpwr_map __txpwr_map_byr_ax = { @@ -565,11 +561,7 @@ static const struct txpwr_ent __txpwr_ent_lmt_ax[] = { __GEN_TXPWR_ENT2("MCS_2TX_40M_2p5", "NON_BF", "BF"), }; -#if defined(__linux__) static_assert((ARRAY_SIZE(__txpwr_ent_lmt_ax) * 2) == -#elif defined(__FreeBSD__) -rtw89_static_assert((ARRAY_SIZE(__txpwr_ent_lmt_ax) * 2) == -#endif (R_AX_PWR_LMT_MAX - R_AX_PWR_LMT + 4)); static const struct txpwr_map __txpwr_map_lmt_ax = { @@ -597,11 +589,7 @@ static const struct txpwr_ent __txpwr_ent_lmt_ru_ax[] = { "RU106_4", "RU106_5", "RU106_6", "RU106_7"), }; -#if defined(__linux__) static_assert((ARRAY_SIZE(__txpwr_ent_lmt_ru_ax) * 8) == -#elif defined(__FreeBSD__) -rtw89_static_assert((ARRAY_SIZE(__txpwr_ent_lmt_ru_ax) * 8) == -#endif (R_AX_PWR_RU_LMT_MAX - R_AX_PWR_RU_LMT + 4)); static const struct txpwr_map __txpwr_map_lmt_ru_ax = { diff --git a/sys/contrib/dev/rtw89/fw.h b/sys/contrib/dev/rtw89/fw.h index 940a7b39bee1..cedb4a47a769 100644 --- a/sys/contrib/dev/rtw89/fw.h +++ b/sys/contrib/dev/rtw89/fw.h @@ -3608,11 +3608,7 @@ struct rtw89_fw_c2h_attr { static inline struct rtw89_fw_c2h_attr *RTW89_SKB_C2H_CB(struct sk_buff *skb) { -#if defined(__linux__) static_assert(sizeof(skb->cb) >= sizeof(struct rtw89_fw_c2h_attr)); -#elif defined(__FreeBSD__) - rtw89_static_assert(sizeof(skb->cb) >= sizeof(struct rtw89_fw_c2h_attr)); -#endif return (struct rtw89_fw_c2h_attr *)skb->cb; } @@ -3818,11 +3814,7 @@ struct rtw89_mac_mcc_tsf_rpt { u32 tsf_y_high; }; -#if defined(__linux__) static_assert(sizeof(struct rtw89_mac_mcc_tsf_rpt) <= RTW89_COMPLETION_BUF_SIZE); -#elif defined(__FreeBSD__) -rtw89_static_assert(sizeof(struct rtw89_mac_mcc_tsf_rpt) <= RTW89_COMPLETION_BUF_SIZE); -#endif #define RTW89_GET_MAC_C2H_MCC_TSF_RPT_MACID_X(c2h) \ le32_get_bits(*((const __le32 *)(c2h) + 2), GENMASK(7, 0)) diff --git a/sys/contrib/dev/rtw89/phy.c b/sys/contrib/dev/rtw89/phy.c index bbd4e3d7d360..f60753369516 100644 --- a/sys/contrib/dev/rtw89/phy.c +++ b/sys/contrib/dev/rtw89/phy.c @@ -2856,11 +2856,7 @@ rtw89_phy_fill_txpwr_limit_ru_160m_ax(struct rtw89_dev *rtwdev, static const int ofst[] = { -14, -10, -6, -2, 2, 6, 10, 14 }; int i; -#if defined(__linux__) static_assert(ARRAY_SIZE(ofst) == RTW89_RU_SEC_NUM_AX); -#elif defined(__FreeBSD__) - rtw89_static_assert(ARRAY_SIZE(ofst) == RTW89_RU_SEC_NUM_AX); -#endif for (i = 0; i < RTW89_RU_SEC_NUM_AX; i++) { lmt_ru->ru26[i] = rtw89_phy_read_txpwr_limit_ru(rtwdev, band, RTW89_RU26, @@ -7556,11 +7552,7 @@ static void [RTW89_RFK_F_DELAY] = _rfk_delay, }; -#if defined(__linux__) static_assert(ARRAY_SIZE(_rfk_handler) == RTW89_RFK_F_NUM); -#elif defined(__FreeBSD__) -rtw89_static_assert(ARRAY_SIZE(_rfk_handler) == RTW89_RFK_F_NUM); -#endif void rtw89_rfk_parser(struct rtw89_dev *rtwdev, const struct rtw89_rfk_tbl *tbl) diff --git a/sys/contrib/dev/rtw89/rtw8851b.c b/sys/contrib/dev/rtw89/rtw8851b.c index 04246a31cc0e..84b628d23882 100644 --- a/sys/contrib/dev/rtw89/rtw8851b.c +++ b/sys/contrib/dev/rtw89/rtw8851b.c @@ -1825,15 +1825,9 @@ static void rtw8851b_bb_set_tx_shape_dfir(struct rtw89_dev *rtwdev, #define __DFIR_CFG_ADDR(i) (R_TXFIR0 + ((i) << 2)) #define __DFIR_CFG_MASK 0xffffffff #define __DFIR_CFG_NR 8 -#if defined(__linux__) #define __DECL_DFIR_PARAM(_name, _val...) \ static const u32 param_ ## _name[] = {_val}; \ static_assert(ARRAY_SIZE(param_ ## _name) == __DFIR_CFG_NR) -#elif defined(__FreeBSD__) -#define __DECL_DFIR_PARAM(_name, _val...) \ - static const u32 param_ ## _name[] = {_val}; \ - rtw89_static_assert(ARRAY_SIZE(param_ ## _name) == __DFIR_CFG_NR) -#endif __DECL_DFIR_PARAM(flat, 0x023D23FF, 0x0029B354, 0x000FC1C8, 0x00FDB053, diff --git a/sys/contrib/dev/rtw89/rtw8852c.c b/sys/contrib/dev/rtw89/rtw8852c.c index 6f272aab48a5..db99450e9158 100644 --- a/sys/contrib/dev/rtw89/rtw8852c.c +++ b/sys/contrib/dev/rtw89/rtw8852c.c @@ -2085,15 +2085,9 @@ static void rtw8852c_bb_set_tx_shape_dfir(struct rtw89_dev *rtwdev, { #define __DFIR_CFG_MASK 0xffffff #define __DFIR_CFG_NR 8 -#if defined(__linux__) #define __DECL_DFIR_VAR(_prefix, _name, _val...) \ static const u32 _prefix ## _ ## _name[] = {_val}; \ static_assert(ARRAY_SIZE(_prefix ## _ ## _name) == __DFIR_CFG_NR) -#elif defined(__FreeBSD__) -#define __DECL_DFIR_VAR(_prefix, _name, _val...) \ - static const u32 _prefix ## _ ## _name[] = {_val}; \ - rtw89_static_assert(ARRAY_SIZE(_prefix ## _ ## _name) == __DFIR_CFG_NR) -#endif #define __DECL_DFIR_PARAM(_name, _val...) __DECL_DFIR_VAR(param, _name, _val) #define __DECL_DFIR_ADDR(_name, _val...) __DECL_DFIR_VAR(addr, _name, _val) diff --git a/sys/contrib/dev/rtw89/rtw8852c_rfk.c b/sys/contrib/dev/rtw89/rtw8852c_rfk.c index 129b940da62a..cbee484dee30 100644 --- a/sys/contrib/dev/rtw89/rtw8852c_rfk.c +++ b/sys/contrib/dev/rtw89/rtw8852c_rfk.c @@ -2704,11 +2704,7 @@ static void _dpk_cal_select(struct rtw89_dev *rtwdev, bool force, u8 path; bool is_fail = true, reloaded[RTW8852C_DPK_RF_PATH] = {false}; -#if defined(__linux__) static_assert(ARRAY_SIZE(kip_reg) == RTW8852C_DPK_KIP_REG_NUM); -#elif defined(__FreeBSD__) - rtw89_static_assert(ARRAY_SIZE(kip_reg) == RTW8852C_DPK_KIP_REG_NUM); -#endif if (dpk->is_dpk_reload_en) { for (path = 0; path < RTW8852C_DPK_RF_PATH; path++) { diff --git a/sys/contrib/dev/rtw89/sar.c b/sys/contrib/dev/rtw89/sar.c index ed3fa4e6b0a5..ef7feccccd5e 100644 --- a/sys/contrib/dev/rtw89/sar.c +++ b/sys/contrib/dev/rtw89/sar.c @@ -406,11 +406,7 @@ static const struct cfg80211_sar_freq_ranges rtw89_common_sar_freq_ranges[] = { { .start_freq = 6875, .end_freq = 7115, }, }; -#if defined(__linux__) static_assert(RTW89_SAR_SUBBAND_NR == -#elif defined(__FreeBSD__) -rtw89_static_assert(RTW89_SAR_SUBBAND_NR == -#endif ARRAY_SIZE(rtw89_common_sar_freq_ranges)); const struct cfg80211_sar_capa rtw89_sar_capa = { diff --git a/sys/contrib/dev/rtw89/ser.c b/sys/contrib/dev/rtw89/ser.c index 03f56b03875a..f99e179f7ff9 100644 --- a/sys/contrib/dev/rtw89/ser.c +++ b/sys/contrib/dev/rtw89/ser.c @@ -620,11 +620,7 @@ struct __fw_backtrace_info { u32 sp; } __packed; -#if defined(__linux__) static_assert(RTW89_FW_BACKTRACE_INFO_SIZE == -#elif defined(__FreeBSD__) -rtw89_static_assert(RTW89_FW_BACKTRACE_INFO_SIZE == -#endif sizeof(struct __fw_backtrace_info)); static u32 convert_addr_from_wcpu(u32 wcpu_addr) From nobody Fri Feb 27 02:30: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 4fMXNT1m96z6T7xH for ; Fri, 27 Feb 2026 02:30:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNS6xkkz41Vy for ; Fri, 27 Feb 2026 02:30:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mCD7oQ8yFkGP6Fnov8UmQrViPQd0Sqz6d01D6qaXXq8=; b=uttrwNZT/C9xYghA/KUkwEtWP1IFgOvKUX37U5K+s28Z4zjSgYR4xbYhaRFE4+aGiKtH4k VH7loy2vF56gk8kdSSZobZDu/fSG0YHhJ5SVqynNIjPm4mOvJeVkfq4oh9A+/brUjEx1do qVJaswDXnoz5qgR6V+opLTwOSzgewTdXLFIIur1E0lD11O1scnr6f3CNfRvjG+0kOmkWxc eQDzf/vlWCSrvB7QyjHaUYJrLza9Elzv89G6BUtBMWIaHR+8z7niFSMVixF4rVuzLIVoFU oLJo9MbBwTyMlq+TCkN0N31mHhT/0hI+VQ7RJCg1tb7O5GSzkV2z1qtgrb8jxQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159401; a=rsa-sha256; cv=none; b=LiaFf1Kjnnl0k/EMW32U/v9eubh3jH3W3Hkf6/u3aWCN35npvXkgQqk5vPyZNOd9mRbrYC 3Md8/6XPLvknWprPijv2nszYHL3ai4ZOr2r0nYgR7Il0bq1QlUcz2WwBwDcfef0WZG/9q6 6eFyCzatFTotYIbS01bieQ26r9ZLGa+wunMY6B2BnHgsV9ynaDMtJJ6L1GrcVG0BmwMs6T fqfSX8jsPjnu/kcklPZ8PAG88cv2pDTUFCoK6vDASoPYVO9p2bltjl1VqwXRWkFwH1eZpN aIQGOSLCjtN5lpVHogiFZ5RYlsUO890BsBHNHlW48elTOdcIUgrYc7PnJi+IqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159401; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mCD7oQ8yFkGP6Fnov8UmQrViPQd0Sqz6d01D6qaXXq8=; b=UvQ2Y20k0oD+mnD9xvIqo/EOy/BTlDQRcGVJEdOGLOTrUU0LgJViYyVYq2xxZyKEqDGHm+ ODNb5UFkH10mIvm+oGVVwBdyeEk8MsUeNVjdYEnqcsw52J5DGclPb+cIfV2bXlOQBG8EWN fAzY2ASDEm8PpoIpfD6tz6ytrn2JKwbhddat0m/O+vnOk5N5+A76GJexeD4UFkxrqVQktG h4yrVR3j+tC1dZ5hqXtsBbmfHYpOTQp9HNfW7Q/V+Bg1B1Gb/DBWB0JCnj2CKDymfq5OJ9 wNab70pqrJaQ9bWwWJGJk1zsFBe3EDZkejhLsndMzCS9ekc5uP69aTz42Kn76A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNS6Tx9zyg8 for ; Fri, 27 Feb 2026 02:30:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22213 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 3e42c294ef76 - stable/15 - rtw88: harmonize all MODULE_DEPEND to rtw88 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3e42c294ef76e5fdfb22bb4cbf0dcc35d61b144d Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:00 +0000 Message-Id: <69a101a8.22213.43f4a4cc@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3e42c294ef76e5fdfb22bb4cbf0dcc35d61b144d commit 3e42c294ef76e5fdfb22bb4cbf0dcc35d61b144d Author: Bjoern A. Zeeb AuthorDate: 2026-01-26 16:18:49 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:15 +0000 rtw88: harmonize all MODULE_DEPEND to rtw88 From the time I used to split up the driver into a core part and bus attachment sub-drivers the various bus attachments had their own module name but all is "rtw88" now. Core functionality depends on linuxkpi, linuxkpi_wlan, and for debug.c lindebugfs. Each bus attachment then depends on its own parent layer if needed: PCI gets pull in through linuxkpi, USB: depends on [the future] linuxkpi_usb, and SDIO: depends on [the future] linuxkpi_sdio. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D55021 (cherry picked from commit 49c1b388d5a89761980d24aee14f3bd0db7c0dda) --- sys/contrib/dev/rtw88/debug.c | 4 ++++ sys/contrib/dev/rtw88/main.c | 5 +++++ sys/contrib/dev/rtw88/pci.c | 8 -------- sys/contrib/dev/rtw88/usb.c | 5 +---- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/sys/contrib/dev/rtw88/debug.c b/sys/contrib/dev/rtw88/debug.c index 53742a3220f2..1e2b11cf1dd3 100644 --- a/sys/contrib/dev/rtw88/debug.c +++ b/sys/contrib/dev/rtw88/debug.c @@ -1381,3 +1381,7 @@ void rtw_dbg(struct rtw_dev *rtwdev, enum rtw_debug_mask mask, EXPORT_SYMBOL(rtw_dbg); #endif /* CONFIG_RTW88_DEBUG */ + +#ifdef CONFIG_RTW88_DEBUGFS +MODULE_DEPEND(rtw88, lindebugfs, 1, 1, 1); +#endif diff --git a/sys/contrib/dev/rtw88/main.c b/sys/contrib/dev/rtw88/main.c index d9e6e9477dfb..b38709b180fd 100644 --- a/sys/contrib/dev/rtw88/main.c +++ b/sys/contrib/dev/rtw88/main.c @@ -2591,3 +2591,8 @@ void rtw_set_ampdu_factor(struct rtw_dev *rtwdev, struct ieee80211_vif *vif, MODULE_AUTHOR("Realtek Corporation"); MODULE_DESCRIPTION("Realtek 802.11ac wireless core module"); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_VERSION(rtw88, 1); +MODULE_DEPEND(rtw88, linuxkpi, 1, 1, 1); +MODULE_DEPEND(rtw88, linuxkpi_wlan, 1, 1, 1); +#endif diff --git a/sys/contrib/dev/rtw88/pci.c b/sys/contrib/dev/rtw88/pci.c index e4cbaae4646f..1dc4f5915d2d 100644 --- a/sys/contrib/dev/rtw88/pci.c +++ b/sys/contrib/dev/rtw88/pci.c @@ -1964,11 +1964,3 @@ EXPORT_SYMBOL(rtw_pci_shutdown); MODULE_AUTHOR("Realtek Corporation"); MODULE_DESCRIPTION("Realtek PCI 802.11ac wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); -#if defined(__FreeBSD__) -MODULE_VERSION(rtw_pci, 1); -MODULE_DEPEND(rtw_pci, linuxkpi, 1, 1, 1); -MODULE_DEPEND(rtw_pci, linuxkpi_wlan, 1, 1, 1); -#ifdef CONFIG_RTW88_DEBUGFS -MODULE_DEPEND(rtw_pci, lindebugfs, 1, 1, 1); -#endif -#endif diff --git a/sys/contrib/dev/rtw88/usb.c b/sys/contrib/dev/rtw88/usb.c index 9fe00af9fc0e..69a4cb60184f 100644 --- a/sys/contrib/dev/rtw88/usb.c +++ b/sys/contrib/dev/rtw88/usb.c @@ -1379,8 +1379,5 @@ MODULE_AUTHOR("Realtek Corporation"); MODULE_DESCRIPTION("Realtek USB 802.11ac wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); #if defined(__FreeBSD__) -MODULE_VERSION(rtw88_usb, 1); -MODULE_DEPEND(rtw88_usb, rtw88_core, 1, 1, 1); -MODULE_DEPEND(rtw88_usb, linuxkpi, 1, 1, 1); -MODULE_DEPEND(rtw88_usb, linuxkpi_wlan, 1, 1, 1); +MODULE_DEPEND(rtw88, linuxkpi_usb, 1, 1, 1); #endif From nobody Fri Feb 27 02:30: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 4fMXNV30Zvz6T85r for ; Fri, 27 Feb 2026 02:30:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNV0QLgz41W7 for ; Fri, 27 Feb 2026 02:30:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159402; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G3clL0NIrPQGBjdxeVKu6wLF8XqKH0u5C3GTwrFs020=; b=ekkI/DvkHOB3HwU31AvhMkj8U+bl17QVS28w/OcJisFQG1ZILzEd1NsE36Y1agwHN8T90H z7T84twJMDlhwi+dFnnoV1hJOrw7QgUlsE5GH7y0DHAtfTnVSsEfjp/b+OZ7xqxY9pGtrm ahPpM+mbYpaFJwYmnc9ODLjuimE0qp5ByAhQjUsKcwqGNu8WYneUU8WvqcmRoCYjPSO+bt YrjHNBuCWfgR4xqSDBVv+Xm+1gB8iV07PCl1U6PgXbtu+C86R3YF3hERHJPCXl16FSNhUe H9BzsYuh/JkeZjezjC9+O6tayQayMTfW968cE7G1d5jIsAtKfInvNuvfFOAcdw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159402; a=rsa-sha256; cv=none; b=KiNQLmUaI/Hskg1S05kWiOBC4QBjqBQXSrcYkLbBr3q71f8OxLipsm0dwlbzo6It0T7Gyf zTG1D3/9qkj3D2a5dkzwTqL8sUia8/bWGZ+1O3TXPMfwQKCqYv+GsRH644kJsmRPJrAMlZ 4LyuWMJjl6bDlojT+3QNlbO7WEhZ90yx1m7LxodUT4hCAgK9iaNex5/w72Guce/BuISagf 8QWOiCwDA+kyMN555tj5rjDZxFDrOm/a3MXw27hrE1B3aP8pfYjNLN4jASGVfCwL2Eu4lD qidNQoTy5mPunsNXHzdV//SBlNWcnNHZ4RoU4o8puFkB9QcFjot4+zmYcTL4cQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159402; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G3clL0NIrPQGBjdxeVKu6wLF8XqKH0u5C3GTwrFs020=; b=MEMHfMxFGPuZLMumEZ9PIg/wrAgNZCqVWU6cVTYHg0TuvIIUVhaBxj+A6NJSwt7WIeZcZZ 1qJ6X5PIAm5UQZsMzKNAlHlYvgndvZuSY/ewvBtnvLxRcRa3TVAzZbfaqAWt4FUAQsRLFz sQ3Dtd7I6TYRWNpYXjHggknR+6kEYSgnunSdjiPnv7iOgbW/75k2nGuLCHWUkwZJOWPrj0 j51DAm/QZHw2EswuXx1kEf6cYZygXycUcsX+GcESgdzlUsS7EciqleLwGEZhPD4qMdLsiS blIeF/zJUKqBr5FobxOBfTvmj78JmbcVH8LQfgfJkRtmjnxdvusIaHl4FU4/zA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNT6rGczyg9 for ; Fri, 27 Feb 2026 02:30:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22380 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: db3daf95e05f - stable/15 - rtw88: Add bus attachments to the module Makefile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: db3daf95e05fae9149d2779379c4642c12d3968c Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:01 +0000 Message-Id: <69a101a9.22380.5414d9c1@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=db3daf95e05fae9149d2779379c4642c12d3968c commit db3daf95e05fae9149d2779379c4642c12d3968c Author: Bjoern A. Zeeb AuthorDate: 2026-01-26 13:19:14 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:20 +0000 rtw88: Add bus attachments to the module Makefile In addition to PCIe we will support USB and also prepare for SDIO (still disabled locally). The module SRCS are split up into a common part, which we always add. All three bus parts are guarded by a local variable in the Makefile. In addition the PCI parts require PCI to be compiled into the kernel. We add that check in case of, e.g., SoCs with SDIO but no PCI, which may not have PCI in the kernel config and thus the module would fail to attach. USB has no additional check as it is fully loadable and does not have to be in a kernel config. SDIO depends on an MMCCAM-enabled kernel but is otherwise loadable. While we could, we are not splitting the various bus attachments into individual modules as we generally do not do that in FreeBSD. [1] Sponsored by: The FreeBSD Foundation Discussed with: imp and jhb (2022, 2024), see also 17732dd8f01b [1] OKed by: imp (KERN_OPTS checks initially suggested by jhb) Differential Revision: https://reviews.freebsd.org/D55022 (cherry picked from commit 9e175561196066a09c1a89202fd60e0433b87868) --- sys/modules/rtw88/Makefile | 82 +++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 23 deletions(-) diff --git a/sys/modules/rtw88/Makefile b/sys/modules/rtw88/Makefile index 0ce6ad3f99bb..2347093db1a5 100644 --- a/sys/modules/rtw88/Makefile +++ b/sys/modules/rtw88/Makefile @@ -1,7 +1,15 @@ +.include + DEVRTW88DIR= ${SRCTOP}/sys/contrib/dev/rtw88 .PATH: ${DEVRTW88DIR} +# Bus attachments. +WITH_PCI= 1 +WITH_USB= 0 +WITH_SDIO= 0 + +# Options. WITH_CONFIG_PM= 0 WITH_DEBUGFS= 1 WITH_LEDS= 0 @@ -19,41 +27,69 @@ SRCS+= wow.c CFLAGS+= -DCONFIG_PM=${WITH_CONFIG_PM} .endif -# PCI parts. +# Common +SRCS+= rtw8723x.c # 87x3 common +SRCS+= rtw8703b.c rtw8703b_tables.c # 11n +SRCS+= rtw8723d.c rtw8723d_table.c # 11n +SRCS+= rtw8814a.c rtw8814a_table.c # 11ac +SRCS+= rtw8821c.c rtw8821c_table.c # 11ac +SRCS+= rtw8822b.c rtw8822b_table.c # 11ac +SRCS+= rtw8822c.c rtw8822c_table.c # 11ac + +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} SRCS+= pci.c -SRCS+= rtw8723x.c # 87x3 common -SRCS+= rtw8703b.c rtw8703b_tables.c # 11n -SRCS+= rtw8723d.c rtw8723d_table.c rtw8723de.c # 11n -SRCS+= rtw8821c.c rtw8821c_table.c rtw8821ce.c # 11ac -SRCS+= rtw8822b.c rtw8822b_table.c rtw8822be.c # 11ac -SRCS+= rtw8822c.c rtw8822c_table.c rtw8822ce.c # 11ac -SRCS+= rtw8814a.c rtw8814a_table.c rtw8814ae.c # 11ac - -# USB parts -#SRCS+= rtw88xxa.c # 88xxa common -#SRCS+= rtw8812a.c rtw8812a_table.c rtw8812au.c -#SRCS+= rtw8814au.c -#SRCS+= rtw8821a.c rtw8821a_table.c rtw8821au.c -#CFLAGS+= -DCONFIG_RTW88_USB +SRCS+= rtw8723de.c +SRCS+= rtw8814ae.c +SRCS+= rtw8821ce.c +SRCS+= rtw8822be.c +SRCS+= rtw8822ce.c +.endif + +# USB parts; USB can be loaded and is unconditional on any kernel config. +.if defined(WITH_USB) && ${WITH_USB} > 0 +SRCS+= usb.c +SRCS+= rtw8723du.c +SRCS+= rtw88xxa.c # 88xxa common +SRCS+= rtw8812a.c rtw8812a_table.c rtw8812au.c +SRCS+= rtw8814au.c +SRCS+= rtw8821a.c rtw8821a_table.c rtw8821au.c +SRCS+= rtw8821cu.c +SRCS+= rtw8822bu.c +SRCS+= rtw8822cu.c + +CFLAGS+= -DCONFIG_RTW88_USB +.endif + +# SDIO parts; SDIO depends on an MMCCAM kernel. +.if defined(WITH_SDIO) && ${WITH_SDIO} > 0 && ${KERN_OPTS:MMMCCAM} +SRCS+= rtw8723cs.c +SRCS+= rtw8723ds.c +SRCS+= rtw8821cs.c +SRCS+= rtw8822bs.c +SRCS+= rtw8822cs.c +.endif .if defined(WITH_LEDS) && ${WITH_LEDS} > 0 CFLAGS+= -DCONFIG_RTW88_LEDS SRCS+= led.c .endif +.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0 +CFLAGS+= -DCONFIG_RTW88_DEBUGFS +.endif + # Other -SRCS+= ${LINUXKPI_GENSRCS} -SRCS+= opt_wlan.h opt_inet6.h opt_inet.h +SRCS+= opt_wlan.h opt_inet6.h opt_inet.h +SRCS+= ${LINUXKPI_GENSRCS} -CFLAGS+= -DKBUILD_MODNAME='"rtw88"' -CFLAGS+= -DLINUXKPI_VERSION=61900 +CFLAGS+= ${LINUXKPI_INCLUDES} CFLAGS+= -I${DEVRTW88DIR} -CFLAGS+= ${LINUXKPI_INCLUDES} CFLAGS+= -DCONFIG_RTW88_DEBUG -.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0 -CFLAGS+= -DCONFIG_RTW88_DEBUGFS -.endif + +CFLAGS+= -DKBUILD_MODNAME='"rtw88"' +CFLAGS+= -DLINUXKPI_VERSION=61900 # Helpful after fresh imports. #CFLAGS+= -ferror-limit=0 From nobody Fri Feb 27 02:30: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 4fMXNY6przz6T7v4 for ; Fri, 27 Feb 2026 02:30:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNY2HTFz41Wg for ; Fri, 27 Feb 2026 02:30:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159405; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yQriIJp7TMnyGmx+Ed3zscnu6dAbCkgKCE/M9gVS+T4=; b=i6dcongXox900hi1Mo9S/xW5bIOh2deGoWPDmhGWTsMw84+w2JSePG9M99/KbEH7wuzgoo xVi55qSxqniLFTJBg27B6g61bau9B9PDy7r4DEVqf0nrV1T1GbW40cgK1EhPXvw94OeweH RJfJPQcxQGsYPDUXt7dfZwCztzZ0kkKbHUFQI3uLhpwOeKxgCM0Q/eFP9rfalfJuhX9Si5 LnXrgbgvFGsy9akBnTUSKET7XEf8lWx3kU5H+gsGWuwnZS+3QcGhf8CFfupq8cdEilspga K6cWLtGlsYR0gh8Ve0gAlZ6maVzYBgR5hAVMzrv3YL0Bg4cvBMhe0wtLwUXzlA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159405; a=rsa-sha256; cv=none; b=X9T78Y+BUcV3WbtGgNkjqdW7yhF/tuhWG23SH8bjekFN7fD6aGK8GJml8ex8kYVG34swcS SCDM1RYWBoXkWGNkoN+3lftJ6fcRxvVez2eHoU98TUdzugab53YUdh95gLk/hqVOC8WoBg Qzfa/x7I+Sxvr3tkesstqn9LGNgdHpsXRKXClKP2ItCabWwWcMXx/JKMtwnpiURS3Jp3Vb QxQlEOxwbppnaLYzFHGQpe7UpzABOK0Vr+8kikQeN+OLjNcpwjn1qb08VlZrVunswfIMMg Eu91SSEHuufqw8O1U1Uf+9Toa4uUdjvwgM3WGPQ5gQOc6b7l9L7W9FACCe68GA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159405; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yQriIJp7TMnyGmx+Ed3zscnu6dAbCkgKCE/M9gVS+T4=; b=da1JRN+qFasxWcBhlbzwS7cVfKCyR1SQeaj7tQmRAh+j+sFcZc+dhJBvzQ1I+R31br7NzK 1GsoldtZIIbUdF9pznk4arI1gBaJiCKxWvzB1ZW1O4xU9rH/T/hOsHlvKkBkbh8rtVDVop 0knSlwSihsT/3op2y27AdHeMWhFPyOyTj4dj5eLgzN6sP4b8kxMmalDiZZr4wdZdVPGLU0 jiXABWuPMpUjqFt4VYJrEljQ7hvugKdF/reP5+X8XslzurlBuxA0yC0/mrGZWlfx+aoGR+ Ey22LuSd7jpzEfBp80ixGN7ybIfnCvmYBsgintky4OkMcgu2rPQaVwXp+YD6XA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNY0v5Xzy78 for ; Fri, 27 Feb 2026 02:30:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20fdf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d4270bedae78 - stable/15 - rtw89: module Makefile add USB bus attachments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d4270bedae78866eab8024cfe71770206a2d7840 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:05 +0000 Message-Id: <69a101ad.20fdf.72205a75@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d4270bedae78866eab8024cfe71770206a2d7840 commit d4270bedae78866eab8024cfe71770206a2d7840 Author: Bjoern A. Zeeb AuthorDate: 2026-01-31 23:16:55 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:46 +0000 rtw89: module Makefile add USB bus attachments Sponsored by: The FreeBSD Foundation (cherry picked from commit f19cb3c72b001f5ca2204888bfab50e2f388547d) --- sys/modules/rtw89/Makefile | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/sys/modules/rtw89/Makefile b/sys/modules/rtw89/Makefile index 701e40fcb2d7..63032afa6f89 100644 --- a/sys/modules/rtw89/Makefile +++ b/sys/modules/rtw89/Makefile @@ -4,6 +4,12 @@ DEVRTW89DIR= ${SRCTOP}/sys/contrib/dev/rtw89 .PATH: ${DEVRTW89DIR} +# Bus attachments. +WITH_PCI= 1 +WITH_USB= 0 +WITH_SDIO= 0 + +# Options. WITH_CONFIG_PM= 0 WITH_DEBUGFS= 0 .if ${KERN_OPTS:MDEV_ACPI} @@ -12,24 +18,20 @@ WITH_CONFIG_ACPI= 1 KMOD= if_rtw89 +# Core parts. SRCS= core.c -SRCS+= pci.c pci_be.c SRCS+= chan.c mac80211.c mac.c mac_be.c phy.c phy_be.c fw.c SRCS+= cam.c efuse.c efuse_be.c regd.c sar.c coex.c ps.c ser.c SRCS+= util.c -SRCS+= rtw8852a.c rtw8852a_rfk.c rtw8852a_rfk_table.c rtw8852a_table.c -SRCS+= rtw8852ae.c -SRCS+= rtw8852c.c rtw8852c_rfk.c rtw8852c_rfk_table.c rtw8852c_table.c -SRCS+= rtw8852ce.c + +# Common SRCS+= rtw8851b.c rtw8851b_rfk.c rtw8851b_rfk_table.c rtw8851b_table.c -SRCS+= rtw8851be.c +SRCS+= rtw8852a.c rtw8852a_rfk.c rtw8852a_rfk_table.c rtw8852a_table.c SRCS+= rtw8852b_common.c SRCS+= rtw8852b.c rtw8852b_rfk.c rtw8852b_rfk_table.c rtw8852b_table.c -SRCS+= rtw8852be.c SRCS+= rtw8852bt.c rtw8852bt_rfk.c rtw8852bt_rfk_table.c -SRCS+= rtw8852bte.c +SRCS+= rtw8852c.c rtw8852c_rfk.c rtw8852c_rfk_table.c rtw8852c_table.c SRCS+= rtw8922a.c rtw8922a_rfk.c -SRCS+= rtw8922ae.c .if defined(WITH_CONFIG_ACPI) && ${WITH_CONFIG_ACPI} > 0 SRCS.DEV_ACPI+= acpi.c @@ -38,10 +40,25 @@ CFLAGS+= -DCONFIG_ACPI # This needs to always stay on for the LinuxKPI header file. CFLAGS+= -DLINUXKPI_WANT_LINUX_ACPI -# USB parts -#SRCS+= rtw8851bu.c -#SRCS+= rtw8852au.c rtw8852bu.c rtw8852cu.c -#SRCS+= usb.c +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} +SRCS+= pci.c pci_be.c +SRCS+= rtw8851be.c +SRCS+= rtw8852ae.c +SRCS+= rtw8852be.c +SRCS+= rtw8852bte.c +SRCS+= rtw8852ce.c +SRCS+= rtw8922ae.c +.endif + +# USB parts; USB can be loaded and is unconditional on any kernel config. +.if defined(WITH_USB) && ${WITH_USB} > 0 +SRCS+= usb.c +SRCS+= rtw8851bu.c +SRCS+= rtw8852au.c +SRCS+= rtw8852bu.c +SRCS+= rtw8852cu.c +.endif # CONFIG_RTW89_DEBUG (always on for now) SRCS+= debug.c From nobody Fri Feb 27 02:30:04 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNY0sqKz6T7pT for ; Fri, 27 Feb 2026 02:30:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNX10cVz41l0 for ; Fri, 27 Feb 2026 02:30:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ku4rk+iy5BE1C+YdlNuP7mGEOj5vCIuLzo4f7HPenig=; b=cEa6mk8O4pxPNPzXJY3Cq3bhCFdlVsPQNjyXkAvui5+IzZfUnsQ/zQWRWw+9lFfKH/YmAy u59xMlgdqOusc77tkMVk4v1FDClTx/NZhZ4k515DKt+eL0/KqbBthN68m10Tkv6aRiti0/ TlAPOsBiJUiPnFcqmOb+QkYElGoc2EBEq1dFPcykr5x2tChpucX1i9dJYPjI7qJ+66LtVh M8r9lcGy5MrsY+JSt4J/5sjVxMeW6Dh11o+gHdJRL8dm9PZgZv3UKeD5HNgWvB2TEvwv8Q oM+vmo/5tYullTA5yXhL4YArklafn+RfnB9ZGI8b10I+pHCDe/huSk3c/7C8ow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159404; a=rsa-sha256; cv=none; b=R562pMGujo9YZVKr/QJBAem7TWoqxGT5nPAYCnNf94jihaSqz7t7tYQhevnkMS1rz1A3IT XiWgHs2z/0Mdb83P7ZCXh6mwlydIgviTJuB4ydmfm1KqeYE6IzrCJI7pu0PWkkqbExtrET hteAEq3DypmbhMKBeNRKOGjQIIuRnKU81snUEiCXAViqTXA8enzPFJd91YhdlcYWQbY5px y9SbOMZBrhyeHhcGOuSHZisKllhxBh6z7IujbglwU8jI7kuyMHckMb+P8apE2hougoseMf 1spNiTxjWyYUs4LkmBWCpiY0SNQEOernhvv5ddbL2DYLFro8ktTOaIcztGm/eA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159404; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ku4rk+iy5BE1C+YdlNuP7mGEOj5vCIuLzo4f7HPenig=; b=T3iJY46sOGexUlu76svgYysVXanuyryux4XZy0o6O2qz7Hz5UEEX4ztH+DbVg0V+rf+k5a pooPR7miqtwoDAEZPHZO/NuM7G99Kg0vIImLilwFjQ6RMbjaaNC+aFnOlu/BMLll3kvhcQ /JhScqOuBTx4leX1ev1ugdfHG+vImiWq7Aocze15TZsG5jRQv+RtzQ3p/VjQHAC6eNuPa3 quulE1BU9nhVUrpPp9SnIGrQWMzo0uO+NiWjdig6+1m014T2WS28YD5Zk4XM5gBhXn+Rt/ XNio8VIa2SU5iE9IbRx75V9oorkceGC3GJ7CJIrabPlgF6s/+LbtK81RmOLHyw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNX0Y6pzxRD for ; Fri, 27 Feb 2026 02:30:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2036c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 6ef309629d2d - stable/15 - rtw89: harmonize all MODULE_DEPEND to rtw89 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6ef309629d2d58efba16234ef3e6ae1bc033f439 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:04 +0000 Message-Id: <69a101ac.2036c.187d0f4d@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6ef309629d2d58efba16234ef3e6ae1bc033f439 commit 6ef309629d2d58efba16234ef3e6ae1bc033f439 Author: Bjoern A. Zeeb AuthorDate: 2026-02-07 18:05:40 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:41 +0000 rtw89: harmonize all MODULE_DEPEND to rtw89 rtw89 came like rtw88 was done. Given rtw88 once was split up rtw89 got modelled the same way. Clean this up too. Sponsored by: The FreeBSD Foundation (cherry picked from commit 7fc5c8df4c90a2067c936e3026be6bd6840cd5ec) --- sys/contrib/dev/rtw89/core.c | 5 +++++ sys/contrib/dev/rtw89/debug.c | 5 +++++ sys/contrib/dev/rtw89/pci.c | 8 -------- sys/contrib/dev/rtw89/usb.c | 3 +++ 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/sys/contrib/dev/rtw89/core.c b/sys/contrib/dev/rtw89/core.c index b1b16dda3304..aeaf1c8f80c5 100644 --- a/sys/contrib/dev/rtw89/core.c +++ b/sys/contrib/dev/rtw89/core.c @@ -6723,3 +6723,8 @@ EXPORT_SYMBOL(rtw89_free_ieee80211_hw); MODULE_AUTHOR("Realtek Corporation"); MODULE_DESCRIPTION("Realtek 802.11ax wireless core module"); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_VERSION(rtw89, 1); +MODULE_DEPEND(rtw89, linuxkpi, 1, 1, 1); +MODULE_DEPEND(rtw89, linuxkpi_wlan, 1, 1, 1); +#endif diff --git a/sys/contrib/dev/rtw89/debug.c b/sys/contrib/dev/rtw89/debug.c index 0db142ba6d89..086c1dedf03c 100644 --- a/sys/contrib/dev/rtw89/debug.c +++ b/sys/contrib/dev/rtw89/debug.c @@ -4889,3 +4889,8 @@ void rtw89_debug(struct rtw89_dev *rtwdev, enum rtw89_debug_mask mask, } EXPORT_SYMBOL(rtw89_debug); #endif +#if defined(__FreeBSD__) +#ifdef CONFIG_RTW89_DEBUGFS +MODULE_DEPEND(rtw89, lindebugfs, 1, 1, 1); +#endif +#endif diff --git a/sys/contrib/dev/rtw89/pci.c b/sys/contrib/dev/rtw89/pci.c index e8de0f0e9ad8..aeb6570928f9 100644 --- a/sys/contrib/dev/rtw89/pci.c +++ b/sys/contrib/dev/rtw89/pci.c @@ -4931,11 +4931,3 @@ EXPORT_SYMBOL(rtw89_pci_remove); MODULE_AUTHOR("Realtek Corporation"); MODULE_DESCRIPTION("Realtek PCI 802.11ax wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); -#if defined(__FreeBSD__) -MODULE_VERSION(rtw89_pci, 1); -MODULE_DEPEND(rtw89_pci, linuxkpi, 1, 1, 1); -MODULE_DEPEND(rtw89_pci, linuxkpi_wlan, 1, 1, 1); -#ifdef CONFIG_RTW89_DEBUGFS -MODULE_DEPEND(rtw89_pci, lindebugfs, 1, 1, 1); -#endif -#endif diff --git a/sys/contrib/dev/rtw89/usb.c b/sys/contrib/dev/rtw89/usb.c index d7d968207a39..3282225df4f6 100644 --- a/sys/contrib/dev/rtw89/usb.c +++ b/sys/contrib/dev/rtw89/usb.c @@ -1069,3 +1069,6 @@ EXPORT_SYMBOL(rtw89_usb_disconnect); MODULE_AUTHOR("Bitterblue Smith "); MODULE_DESCRIPTION("Realtek USB 802.11ax wireless driver"); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_DEPEND(rtw89, linuxkpi_usb, 1, 1, 1); +#endif From nobody Fri Feb 27 02:30:07 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNb6Qpsz6T866 for ; Fri, 27 Feb 2026 02:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNb23SXz41Ws for ; Fri, 27 Feb 2026 02:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N83ZZnjauaO66CxnTZqpEhDBIctkxhZaUJ7P2b3RG+A=; b=x2bQEXxeypBE2gW1QXGQwgH/KIAf/faAE1TcavulDr8ntlJtWLpB0X2P9NtAfL7E8LBewJ y+v0kzqQ/v2WgUxugupwKy9VL54KJwRLM2vdM9FDw+0by4FPQw+DWi9gnO/4WcW1xL3JhR Ys3Uyfwh5FcpISEs5ZZkS0amaJbX1mWd7dXFWpQ7OjOIwCqy3HEHi23I2q9HNdKTyRf42J wpzpFwpnLc1j4q0OPafG+l/f8MNp/vAW+jL+CsSGFCxKQE1PitmOXmiGBVIemgBWXAnzmo RUJCSlExLwLt1UqpGEymtgNcLVSFwjVmTrxn+zYsurCa+F13cp1sbumzrvb4Fg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159407; a=rsa-sha256; cv=none; b=Ey0WbHpHYTnAsVTrBgqdJ9y7mEHrt3wHwzJVQSJZgl6kZZ11QHnRKCB5XJ2cysRwXpwAnU FFU+H1hEs7P9VEc6yqcE3VmPtzL2rkToU4TIvxzLtCqCAerlRPE6dUMTfbc4XtknE5g5xK zvoJjQJ3EQW6zbNNlxtR6HeapbNPjemBu2CitIVB4a/88A9ruy5MYvK0Z9BrfeHHYgteHN /qsOSSRw/wDU7d6F2knCsW4kXP/978yGvG0PskT8Ez6Z1r2hOmaPKMbM0dgk3Fw+dTJqYa U15YYGn19SRuDCXqn+K5oZ4LTVOl3J1FPogNG9V2O7h9gij2aAruPwHIXxRukw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N83ZZnjauaO66CxnTZqpEhDBIctkxhZaUJ7P2b3RG+A=; b=D9DIBrtgIlBORb74jiKVad3vDVYkzN4pHTZkaAu/GmTIS/pWe2Q6MrEGAD9RdZQWVWYD/a g7Exv6ttbXvcxE78nahbcVG9pBtrfurINe+9BkqeA5D5bGwemGYoSWI2Vg/8e5tHbGM2/5 hCLDP3p8EWr98dCN8jBDooJdYuTcRwaC6iVGuVkZOgibQHxDGaQZY9ZJwTc9as5YPUjUjW e5Rc044BCj6fE0TNU8c+FzTNuTZYNGvmKEh0Vy4t7Rph4ToyyagxigLsgUfvuf2VVWNhZO QUBDeZHqa03X/XTxgU8KhEEWigWLqzaNqqUHhJhEtob05CS/F8gjXnJRQNsJJg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNb1c3tzygD for ; Fri, 27 Feb 2026 02:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 204f1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 64681bb96fcf - stable/15 - ath10k: update Atheros/QCA's ath10k driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 64681bb96fcf8323bd13801c218847d0560c59fb Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:07 +0000 Message-Id: <69a101af.204f1.af3eddd@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=64681bb96fcf8323bd13801c218847d0560c59fb commit 64681bb96fcf8323bd13801c218847d0560c59fb Author: Bjoern A. Zeeb AuthorDate: 2026-02-10 15:12:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:57 +0000 ath10k: update Atheros/QCA's ath10k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 05f7e89ab9731565d8a62e3b5d1ec206485eeb0b ( tag: v6.19 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit 083f8f33304ab105d0b556bdc244c9fa73068b67) --- sys/contrib/dev/athk/ath10k/ce.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sys/contrib/dev/athk/ath10k/ce.c b/sys/contrib/dev/athk/ath10k/ce.c index 719957ac87e4..d53ecebcf992 100644 --- a/sys/contrib/dev/athk/ath10k/ce.c +++ b/sys/contrib/dev/athk/ath10k/ce.c @@ -1727,8 +1727,8 @@ static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id) (ce_state->src_ring->nentries * sizeof(struct ce_desc) + CE_DESC_RING_ALIGN), - ce_state->src_ring->base_addr_owner_space, - ce_state->src_ring->base_addr_ce_space); + ce_state->src_ring->base_addr_owner_space_unaligned, + ce_state->src_ring->base_addr_ce_space_unaligned); kfree(ce_state->src_ring); } @@ -1737,8 +1737,8 @@ static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id) (ce_state->dest_ring->nentries * sizeof(struct ce_desc) + CE_DESC_RING_ALIGN), - ce_state->dest_ring->base_addr_owner_space, - ce_state->dest_ring->base_addr_ce_space); + ce_state->dest_ring->base_addr_owner_space_unaligned, + ce_state->dest_ring->base_addr_ce_space_unaligned); kfree(ce_state->dest_ring); } @@ -1758,8 +1758,8 @@ static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id) (ce_state->src_ring->nentries * sizeof(struct ce_desc_64) + CE_DESC_RING_ALIGN), - ce_state->src_ring->base_addr_owner_space, - ce_state->src_ring->base_addr_ce_space); + ce_state->src_ring->base_addr_owner_space_unaligned, + ce_state->src_ring->base_addr_ce_space_unaligned); kfree(ce_state->src_ring); } @@ -1768,8 +1768,8 @@ static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id) (ce_state->dest_ring->nentries * sizeof(struct ce_desc_64) + CE_DESC_RING_ALIGN), - ce_state->dest_ring->base_addr_owner_space, - ce_state->dest_ring->base_addr_ce_space); + ce_state->dest_ring->base_addr_owner_space_unaligned, + ce_state->dest_ring->base_addr_ce_space_unaligned); kfree(ce_state->dest_ring); } From nobody Fri Feb 27 02:30:06 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNZ3ZF5z6T7v5 for ; Fri, 27 Feb 2026 02:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNZ1hXNz41TP for ; Fri, 27 Feb 2026 02:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zwmIOYK5s0l9GoosHe5t7QCD3l/0sBwIHQZkd5mwlXw=; b=jEtztA4iE2nZkgTNWmQubKXC0UUiOMBzPyzMtTzk6lsDkL7Fe1PtgivSBuAnyqwHgPCxMK oRubbCp/zqsN/k7i5u2SYcM1ACIjrHcLAUj2uFxPK+S5eLAzGuK5dw2KW4BWlTCK6IAsZJ ubv65wb3YIl4IYv9/R0Q2q6HEmj8XUa3apt7/TFssvZU0/2hh/WMoaNNPEq2haIWJQaoZv ieD7soGC+Y2fQTXhzkdzp264Zo4qU5Q9hlfxUUckBAhbuUXqT7PMB1tGxvVFAK1RQwmpP3 A0gygI+Z/lZBmq+Ww1d5U0pWAhPz0ICqitQQ/NBSoEZUCwpiodfA88SWaYBSbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159406; a=rsa-sha256; cv=none; b=LPq1kmgHwLvb4MN3yNmn0sl71mWDcRLJUbMgLWWwU1bc2lAp0ywSGh6gEqTpUHcQWa1Ne7 D7SgbpPo8Q9sBe3aPL76YiQdTHoX598eXlZhy6VeLtDObKJ6PqgpUCk7lANhzRCVMloNnv TNxCOftPFCYeJrSVO+cUNpEWLg1TxCjV9l6sS9KCPzaFtqun1tE3bOV7V6AfOS30ee6qvx j3fEFosrDByaQkpIIWjKad9ptwgHPDaFMaX30xCGfwGYZSjcvaPx3J7CrlTXOsLnmEc0Oc iTjIf9c4Loy+f1gaRgy5CnsY4HHG4SiAPJW+gU8FZmUuWeOkhao29BwADRRgVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zwmIOYK5s0l9GoosHe5t7QCD3l/0sBwIHQZkd5mwlXw=; b=bK8Msvosvsv4brvM8vvEvtUW04hfhUdEpSJg534kREg1UrmsKLnBWhY6bUjbdoSYuNpj2K gYWV/RK55JHd+mKoKL8u/uUA7+ho1H4nzbpeze/9bgf7Illt7tOpaGNILTbg220BAzZujE OnsUeE0DVLyQG3cOL2/sWkxqHMjKvEiHuDmAcARnY3OLT2JA7Cq1SV6vPCHOXs7NeWEd6n +7vNU+GLfXJQld92B2fvw0kQbZBJrwNGqI/52riy4uCBCbImUCDFYrd+dkuAQ7DlnICB9M zCTjyKJMvYxSMQJuF1O/gEy9oZT9Do9J/Lk6qF0T6ifsW38qVhfL5HdWl/JQyw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNZ1FlWzygC for ; Fri, 27 Feb 2026 02:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21a52 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: cacb3a7dd025 - stable/15 - rtw88: remove more references to rtw88fw List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: cacb3a7dd025c2475ea24301ff289552533a000d Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:06 +0000 Message-Id: <69a101ae.21a52.4d77309f@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=cacb3a7dd025c2475ea24301ff289552533a000d commit cacb3a7dd025c2475ea24301ff289552533a000d Author: Bjoern A. Zeeb AuthorDate: 2026-02-10 13:30:53 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:06:50 +0000 rtw88: remove more references to rtw88fw When I removed the Realtek rtww8x firmware from base I missed to add rtw88fw.4 to ObsoleteFiles.inc [1]. While adding this, also remove a leftover reference in rtw88.4. Reported by: Herbert J. Skuhra (herbert gojira.at) [1] Fixes: cf94672363d6 (cherry picked from commit 3f4213f00ac5eea0a56cebeb1ba9f64a2489a956) --- ObsoleteFiles.inc | 3 ++- share/man/man4/rtw88.4 | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index e3bc68bdb541..3b7907085f9c 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -1996,8 +1996,9 @@ OLD_FILES+=usr/share/examples/diskless/README.BOOTP OLD_FILES+=usr/share/examples/diskless/README.TEMPLATING OLD_FILES+=usr/share/examples/diskless/clone_root -# 20230905 +# 20230905: Removed rtw8x firmware files from src.git OLD_FILES+=usr/share/doc/legal/realtek_rtw88_firmware.LICENCE +OLD_FILES+=usr/share/man/man4/rtw88fw.4.gz # 20230828 MOVED_LIBS+=usr/lib/librt.so.1 diff --git a/share/man/man4/rtw88.4 b/share/man/man4/rtw88.4 index 4c2cba8311ae..e01f508ef80e 100644 --- a/share/man/man4/rtw88.4 +++ b/share/man/man4/rtw88.4 @@ -1,9 +1,9 @@ .\"- .\" SPDX-License-Identifier: BSD-2-Clause .\" -.\" Copyright (c) 2022-2025 Bjoern A. Zeeb +.\" Copyright (c) 2022-2026 Bjoern A. Zeeb .\" -.Dd June 13, 2025 +.Dd February 10, 2026 .Dt RTW88 4 .Os .Sh NAME @@ -84,7 +84,6 @@ for network buffer memory to the lower 32bit of physical memory and make the driver work. .El .Sh SEE ALSO -.Xr rtw88fw 4 , .Xr wlan 4 , .Xr networking 7 , .Xr fwget 8 , From nobody Fri Feb 27 02:30:08 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNd2tSvz6T7pf for ; Fri, 27 Feb 2026 02:30:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNd1h3Yz41lc for ; Fri, 27 Feb 2026 02:30:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nKZxcrDDY/QhA0aac3eWwShrm0ENx8AII2BR6/6XFTg=; b=oPebwWfGborFq8HRRoFxGeHYBWVQ0fannhg/L0pA3E+6ajn/IduUeLfZNRIBXAOL6SQoTU EIMluxllDshgNa9lCdq5va4T6oSYxZ/Ic14XwPYiueJNwt10fosP28nPrVErql8hkhqlWc hqk5py7fqLX/IEjMAAdje0+up0046cqoaMJz05V3QPNZZJp+KNl31XkxAvgrZ0FlRD0d6e 1i3mukbrMErn/LpGny8Zwkz/mQOlUkXzdn1tPNg09367MjVsABYDDLGtPLdeDcw0Qh96pn nlJo81QB5sT5eKDccvfyJFepegzvan3ntIQl2dyoURejbVIRj0x8rmX/5tpY6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159409; a=rsa-sha256; cv=none; b=U13k/04QiAoK8EMCFTGAjhs8b9DAJx2SGXeHw7DAkdaDuYpc1+YlM64uulbIAo/RB6u3bl +oSv1lyropCSP+irut97yxiaBsjmqU49SeIqj1RyGFpDEdWvd8Ri9toW6QwLnDlw2ep3hT jhE4dCDWlRs/inFlt09AjCN6vxYmcOjBDOWJxc99Dg2Bki6Lm7Zq8RszOa7nmVb8ElWyup 750WWiXGsiioWY8LuW1c0wZLhhb7/YXXuMBIB0WMY0HlC9oEWoulY/YZGC4xLghW0O8Kd3 Kkb8/N/iYqMhU6J/gYBtf5RAdtX2scQwUZcntqChn8rARNXuNXTqZH1zpZx0zw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nKZxcrDDY/QhA0aac3eWwShrm0ENx8AII2BR6/6XFTg=; b=ETodFQ6Eg5D9xc4+FT5h5iD56yg1YdooFdVuLjjgrSBAjsUhrA6APar8Zi37EtgK7a0uD8 n0++LnfjohBV+qdoGfaM+M7Rc9VoVytwaPeFtOld2tBjuNBNGr8/EX1O1QhqePcQSSRepV /zd29attEJcoyya7F+gxN8d450wAA8to/y59uxuy1y8uuT5tMeZYb/KzxSr7x0q7uBS7g8 eFg8ZFf3MpHEpKj13uZNa60y9yS0DPaHiWc3P4gSH9VXuStyy5YuQcrO2KnevM4+wYgnap Pl3wf0hTPsVBxroL/Uw57gSh7qbul9/j21s7fxhtklbTGMifRVVIW2qX6/D1kw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNd1GwtzygF for ; Fri, 27 Feb 2026 02:30:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21afa by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: a32802d07dc0 - stable/15 - brcm80211: import Broadcom wireless brcmsmac and brcmfmac drivers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a32802d07dc0ef95854abd892ccba7b016a7490f Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:08 +0000 Message-Id: <69a101b0.21afa.61c82ca1@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a32802d07dc0ef95854abd892ccba7b016a7490f commit a32802d07dc0ef95854abd892ccba7b016a7490f Author: Bjoern A. Zeeb AuthorDate: 2026-02-10 21:22:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:07:02 +0000 brcm80211: import Broadcom wireless brcmsmac and brcmfmac drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git e5f0a698b34ed76002dc5cff3804a61c80233a7a ( tag: v6.17 ). We are likely only going to use the brcmfmac driver but given they come nicely packaged in a directory structure and bwn(9) still uses GPL-only phy files we could use some of the information from brcmsmac and fix that (should it ever still be relevant). (cherry picked from commit b4c3e9b5b09c829b4135aff738bd2893ed052377) --- sys/contrib/dev/broadcom/brcm80211/Makefile | 13 + .../dev/broadcom/brcm80211/brcmfmac/Makefile | 62 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/acpi.c | 51 + .../dev/broadcom/brcm80211/brcmfmac/bca/Makefile | 12 + .../dev/broadcom/brcm80211/brcmfmac/bca/core.c | 39 + .../dev/broadcom/brcm80211/brcmfmac/bca/module.c | 28 + .../dev/broadcom/brcm80211/brcmfmac/bca/vops.h | 11 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c | 490 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.h | 20 + .../dev/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1269 + .../dev/broadcom/brcm80211/brcmfmac/btcoex.c | 481 + .../dev/broadcom/brcm80211/brcmfmac/btcoex.h | 18 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/bus.h | 342 + .../dev/broadcom/brcm80211/brcmfmac/cfg80211.c | 8477 ++++++ .../dev/broadcom/brcm80211/brcmfmac/cfg80211.h | 498 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c | 1472 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.h | 92 + .../dev/broadcom/brcm80211/brcmfmac/common.c | 637 + .../dev/broadcom/brcm80211/brcmfmac/common.h | 95 + .../dev/broadcom/brcm80211/brcmfmac/commonring.c | 236 + .../dev/broadcom/brcm80211/brcmfmac/commonring.h | 62 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.c | 1576 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.h | 228 + .../dev/broadcom/brcm80211/brcmfmac/cyw/Makefile | 12 + .../dev/broadcom/brcm80211/brcmfmac/cyw/core.c | 373 + .../broadcom/brcm80211/brcmfmac/cyw/fwil_types.h | 87 + .../dev/broadcom/brcm80211/brcmfmac/cyw/module.c | 28 + .../dev/broadcom/brcm80211/brcmfmac/cyw/vops.h | 11 + .../dev/broadcom/brcm80211/brcmfmac/debug.c | 56 + .../dev/broadcom/brcm80211/brcmfmac/debug.h | 143 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/dmi.c | 215 + .../dev/broadcom/brcm80211/brcmfmac/feature.c | 385 + .../dev/broadcom/brcm80211/brcmfmac/feature.h | 131 + .../dev/broadcom/brcm80211/brcmfmac/firmware.c | 859 + .../dev/broadcom/brcm80211/brcmfmac/firmware.h | 95 + .../dev/broadcom/brcm80211/brcmfmac/flowring.c | 508 + .../dev/broadcom/brcm80211/brcmfmac/flowring.h | 74 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.c | 514 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.h | 401 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwil.c | 432 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwil.h | 224 + .../dev/broadcom/brcm80211/brcmfmac/fwil_types.h | 1239 + .../dev/broadcom/brcm80211/brcmfmac/fwsignal.c | 2514 ++ .../dev/broadcom/brcm80211/brcmfmac/fwsignal.h | 48 + .../dev/broadcom/brcm80211/brcmfmac/fwvid.c | 200 + .../dev/broadcom/brcm80211/brcmfmac/fwvid.h | 88 + .../dev/broadcom/brcm80211/brcmfmac/msgbuf.c | 1687 ++ .../dev/broadcom/brcm80211/brcmfmac/msgbuf.h | 43 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/of.c | 155 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/of.h | 14 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c | 2546 ++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.h | 179 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c | 2785 ++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.h | 14 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c | 595 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.h | 72 + .../dev/broadcom/brcm80211/brcmfmac/proto.c | 71 + .../dev/broadcom/brcm80211/brcmfmac/proto.h | 155 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c | 4650 +++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.h | 370 + .../dev/broadcom/brcm80211/brcmfmac/tracepoint.c | 32 + .../dev/broadcom/brcm80211/brcmfmac/tracepoint.h | 144 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c | 1604 ++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.h | 42 + .../dev/broadcom/brcm80211/brcmfmac/vendor.c | 118 + .../dev/broadcom/brcm80211/brcmfmac/vendor.h | 53 + .../dev/broadcom/brcm80211/brcmfmac/wcc/Makefile | 12 + .../dev/broadcom/brcm80211/brcmfmac/wcc/core.c | 40 + .../dev/broadcom/brcm80211/brcmfmac/wcc/module.c | 28 + .../dev/broadcom/brcm80211/brcmfmac/wcc/vops.h | 11 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/xtlv.c | 84 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/xtlv.h | 31 + .../dev/broadcom/brcm80211/brcmsmac/Makefile | 47 + .../dev/broadcom/brcm80211/brcmsmac/aiutils.c | 707 + .../dev/broadcom/brcm80211/brcmsmac/aiutils.h | 221 + .../dev/broadcom/brcm80211/brcmsmac/ampdu.c | 1097 + .../dev/broadcom/brcm80211/brcmsmac/ampdu.h | 53 + .../dev/broadcom/brcm80211/brcmsmac/antsel.c | 309 + .../dev/broadcom/brcm80211/brcmsmac/antsel.h | 27 + .../brcm80211/brcmsmac/brcms_trace_brcmsmac.h | 102 + .../brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h | 92 + .../brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h | 110 + .../brcm80211/brcmsmac/brcms_trace_events.c | 23 + .../brcm80211/brcmsmac/brcms_trace_events.h | 40 + .../dev/broadcom/brcm80211/brcmsmac/channel.c | 771 + .../dev/broadcom/brcm80211/brcmsmac/channel.h | 47 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/d11.h | 1902 ++ .../dev/broadcom/brcm80211/brcmsmac/debug.c | 246 + .../dev/broadcom/brcm80211/brcmsmac/debug.h | 75 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.c | 1556 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.h | 124 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/led.h | 38 + .../dev/broadcom/brcm80211/brcmsmac/mac80211_if.c | 1738 ++ .../dev/broadcom/brcm80211/brcmsmac/mac80211_if.h | 113 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.c | 8065 ++++++ sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.h | 670 + .../dev/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c | 2497 ++ .../dev/broadcom/brcm80211/brcmsmac/phy/phy_hal.h | 241 + .../dev/broadcom/brcm80211/brcmsmac/phy/phy_int.h | 1113 + .../dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c | 5151 ++++ .../dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.h | 110 + .../dev/broadcom/brcm80211/brcmsmac/phy/phy_n.c | 28572 +++++++++++++++++++ .../broadcom/brcm80211/brcmsmac/phy/phy_qmath.c | 298 + .../broadcom/brcm80211/brcmsmac/phy/phy_qmath.h | 31 + .../broadcom/brcm80211/brcmsmac/phy/phy_radio.h | 1522 + .../dev/broadcom/brcm80211/brcmsmac/phy/phyreg_n.h | 156 + .../broadcom/brcm80211/brcmsmac/phy/phytbl_lcn.c | 3170 ++ .../broadcom/brcm80211/brcmsmac/phy/phytbl_lcn.h | 44 + .../dev/broadcom/brcm80211/brcmsmac/phy/phytbl_n.c | 10099 +++++++ .../dev/broadcom/brcm80211/brcmsmac/phy/phytbl_n.h | 39 + .../dev/broadcom/brcm80211/brcmsmac/phy_shim.c | 215 + .../dev/broadcom/brcm80211/brcmsmac/phy_shim.h | 172 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/pmu.c | 165 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/pmu.h | 26 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/pub.h | 341 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/rate.c | 514 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/rate.h | 245 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/scb.h | 67 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/stf.c | 437 + sys/contrib/dev/broadcom/brcm80211/brcmsmac/stf.h | 36 + .../dev/broadcom/brcm80211/brcmsmac/types.h | 294 + .../dev/broadcom/brcm80211/brcmsmac/ucode_loader.c | 109 + .../dev/broadcom/brcm80211/brcmsmac/ucode_loader.h | 56 + .../dev/broadcom/brcm80211/brcmutil/Makefile | 10 + sys/contrib/dev/broadcom/brcm80211/brcmutil/d11.c | 247 + .../dev/broadcom/brcm80211/brcmutil/utils.c | 327 + .../dev/broadcom/brcm80211/include/brcm_hw_ids.h | 116 + .../dev/broadcom/brcm80211/include/brcmu_d11.h | 156 + .../dev/broadcom/brcm80211/include/brcmu_utils.h | 216 + .../dev/broadcom/brcm80211/include/brcmu_wifi.h | 247 + .../dev/broadcom/brcm80211/include/chipcommon.h | 311 + sys/contrib/dev/broadcom/brcm80211/include/defs.h | 94 + sys/contrib/dev/broadcom/brcm80211/include/soc.h | 25 + 133 files changed, 116023 insertions(+) diff --git a/sys/contrib/dev/broadcom/brcm80211/Makefile b/sys/contrib/dev/broadcom/brcm80211/Makefile new file mode 100644 index 000000000000..88115d072624 --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/Makefile @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: ISC +# +# Makefile fragment for Broadcom 802.11 Networking Device Driver +# +# Copyright (c) 2010 Broadcom Corporation +# + +# common flags +subdir-ccflags-$(CONFIG_BRCMDBG) += -DDEBUG + +obj-$(CONFIG_BRCMUTIL) += brcmutil/ +obj-$(CONFIG_BRCMFMAC) += brcmfmac/ +obj-$(CONFIG_BRCMSMAC) += brcmsmac/ diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/Makefile b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/Makefile new file mode 100644 index 000000000000..e5ca0f511822 --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/Makefile @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: ISC +# +# Makefile fragment for Broadcom 802.11 Networking Device Driver +# +# Copyright (c) 2010 Broadcom Corporation +# + +ccflags-y += \ + -I $(src) \ + -I $(src)/../include + +obj-$(CONFIG_BRCMFMAC) += brcmfmac.o +brcmfmac-objs += \ + cfg80211.o \ + chip.o \ + fwil.o \ + fweh.o \ + p2p.o \ + proto.o \ + common.o \ + core.o \ + firmware.o \ + fwvid.o \ + feature.o \ + btcoex.o \ + vendor.o \ + pno.o \ + xtlv.o +brcmfmac-$(CONFIG_BRCMFMAC_PROTO_BCDC) += \ + bcdc.o \ + fwsignal.o +brcmfmac-$(CONFIG_BRCMFMAC_PROTO_MSGBUF) += \ + commonring.o \ + flowring.o \ + msgbuf.o +brcmfmac-$(CONFIG_BRCMFMAC_SDIO) += \ + sdio.o \ + bcmsdh.o +brcmfmac-$(CONFIG_BRCMFMAC_USB) += \ + usb.o +brcmfmac-$(CONFIG_BRCMFMAC_PCIE) += \ + pcie.o +brcmfmac-$(CONFIG_BRCMDBG) += \ + debug.o +brcmfmac-$(CONFIG_BRCM_TRACING) += \ + tracepoint.o +brcmfmac-$(CONFIG_OF) += \ + of.o +brcmfmac-$(CONFIG_DMI) += \ + dmi.o +brcmfmac-$(CONFIG_ACPI) += \ + acpi.o + +ifeq ($(CONFIG_BRCMFMAC),m) +obj-m += wcc/ +obj-m += cyw/ +obj-m += bca/ +else +brcmfmac-$(CONFIG_BRCMFMAC) += wcc/core.o +brcmfmac-$(CONFIG_BRCMFMAC) += cyw/core.o +brcmfmac-$(CONFIG_BRCMFMAC) += bca/core.o +endif diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/acpi.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/acpi.c new file mode 100644 index 000000000000..c4a54861bfb4 --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/acpi.c @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright The Asahi Linux Contributors + */ + +#include +#include "debug.h" +#include "core.h" +#include "common.h" + +void brcmf_acpi_probe(struct device *dev, enum brcmf_bus_type bus_type, + struct brcmf_mp_device *settings) +{ + acpi_status status; + const union acpi_object *o; + struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER, NULL}; + struct acpi_device *adev = ACPI_COMPANION(dev); + + if (!adev) + return; + + if (!ACPI_FAILURE(acpi_dev_get_property(adev, "module-instance", + ACPI_TYPE_STRING, &o))) { + brcmf_dbg(INFO, "ACPI module-instance=%s\n", o->string.pointer); + settings->board_type = devm_kasprintf(dev, GFP_KERNEL, + "apple,%s", + o->string.pointer); + } else { + brcmf_dbg(INFO, "No ACPI module-instance\n"); + return; + } + + status = acpi_evaluate_object(adev->handle, "RWCV", NULL, &buf); + o = buf.pointer; + if (!ACPI_FAILURE(status) && o && o->type == ACPI_TYPE_BUFFER && + o->buffer.length >= 2) { + char *antenna_sku = devm_kzalloc(dev, 3, GFP_KERNEL); + + if (antenna_sku) { + memcpy(antenna_sku, o->buffer.pointer, 2); + brcmf_dbg(INFO, "ACPI RWCV data=%*phN antenna-sku=%s\n", + (int)o->buffer.length, o->buffer.pointer, + antenna_sku); + settings->antenna_sku = antenna_sku; + } + + kfree(buf.pointer); + } else { + brcmf_dbg(INFO, "No ACPI antenna-sku\n"); + } +} diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/Makefile b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/Makefile new file mode 100644 index 000000000000..5e37c638f966 --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/Makefile @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: ISC +# +# Copyright (c) 2022 Broadcom Corporation + +ccflags-y += \ + -I $(src) \ + -I $(src)/.. \ + -I $(src)/../../include + +obj-m += brcmfmac-bca.o +brcmfmac-bca-objs += \ + core.o module.o diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c new file mode 100644 index 000000000000..f471c962104a --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2022 Broadcom Corporation + */ +#include +#include +#include +#include +#include +#include + +#include "vops.h" + +#define BRCMF_BCA_E_LAST 212 + +static void brcmf_bca_feat_attach(struct brcmf_if *ifp) +{ + /* SAE support not confirmed so disabling for now */ + ifp->drvr->feat_flags &= ~BIT(BRCMF_FEAT_SAE); +} + +static int brcmf_bca_alloc_fweh_info(struct brcmf_pub *drvr) +{ + struct brcmf_fweh_info *fweh; + + fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_BCA_E_LAST), + GFP_KERNEL); + if (!fweh) + return -ENOMEM; + + fweh->num_event_codes = BRCMF_BCA_E_LAST; + drvr->fweh = fweh; + return 0; +} + +const struct brcmf_fwvid_ops brcmf_bca_ops = { + .feat_attach = brcmf_bca_feat_attach, + .alloc_fweh_info = brcmf_bca_alloc_fweh_info, +}; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/module.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/module.c new file mode 100644 index 000000000000..1e1c79b18c5b --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/module.c @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2022 Broadcom Corporation + */ +#include +#include +#include +#include + +#include "vops.h" + +static int __init brcmf_bca_init(void) +{ + return brcmf_fwvid_register_vendor(BRCMF_FWVENDOR_BCA, THIS_MODULE, + &brcmf_bca_ops); +} + +static void __exit brcmf_bca_exit(void) +{ + brcmf_fwvid_unregister_vendor(BRCMF_FWVENDOR_BCA, THIS_MODULE); +} + +MODULE_DESCRIPTION("Broadcom FullMAC WLAN driver plugin for Broadcom AP chipsets"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_IMPORT_NS("BRCMFMAC"); + +module_init(brcmf_bca_init); +module_exit(brcmf_bca_exit); diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/vops.h b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/vops.h new file mode 100644 index 000000000000..7897e6b6eefb --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/vops.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: ISC */ +/* + * Copyright (c) 2022 Broadcom Corporation + */ +#ifndef _BRCMFMAC_BCA_VOPS_H +#define _BRCMFMAC_BCA_VOPS_H + +extern const struct brcmf_fwvid_ops brcmf_bca_ops; +#define BCA_VOPS (&brcmf_bca_ops) + +#endif /* _BRCMFMAC_BCA_VOPS_H */ diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c new file mode 100644 index 000000000000..9ec0c60b6da1 --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c @@ -0,0 +1,490 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2010 Broadcom Corporation + */ + +/******************************************************************************* + * Communicates with the dongle by using dcmd codes. + * For certain dcmd codes, the dongle interprets string data from the host. + ******************************************************************************/ + +#include +#include + +#include +#include + +#include "core.h" +#include "bus.h" +#include "fwsignal.h" +#include "debug.h" +#include "tracepoint.h" +#include "proto.h" +#include "bcdc.h" + +struct brcmf_proto_bcdc_dcmd { + __le32 cmd; /* dongle command value */ + __le32 len; /* lower 16: output buflen; + * upper 16: input buflen (excludes header) */ + __le32 flags; /* flag defns given below */ + __le32 status; /* status code returned from the device */ +}; + +/* BCDC flag definitions */ +#define BCDC_DCMD_ERROR 0x01 /* 1=cmd failed */ +#define BCDC_DCMD_SET 0x02 /* 0=get, 1=set cmd */ +#define BCDC_DCMD_IF_MASK 0xF000 /* I/F index */ +#define BCDC_DCMD_IF_SHIFT 12 +#define BCDC_DCMD_ID_MASK 0xFFFF0000 /* id an cmd pairing */ +#define BCDC_DCMD_ID_SHIFT 16 /* ID Mask shift bits */ +#define BCDC_DCMD_ID(flags) \ + (((flags) & BCDC_DCMD_ID_MASK) >> BCDC_DCMD_ID_SHIFT) + +/* + * BCDC header - Broadcom specific extension of CDC. + * Used on data packets to convey priority across USB. + */ +#define BCDC_HEADER_LEN 4 +#define BCDC_PROTO_VER 2 /* Protocol version */ +#define BCDC_FLAG_VER_MASK 0xf0 /* Protocol version mask */ +#define BCDC_FLAG_VER_SHIFT 4 /* Protocol version shift */ +#define BCDC_FLAG_SUM_GOOD 0x04 /* Good RX checksums */ +#define BCDC_FLAG_SUM_NEEDED 0x08 /* Dongle needs to do TX checksums */ +#define BCDC_PRIORITY_MASK 0x7 +#define BCDC_FLAG2_IF_MASK 0x0f /* packet rx interface in APSTA */ +#define BCDC_FLAG2_IF_SHIFT 0 + +#define BCDC_GET_IF_IDX(hdr) \ + ((int)((((hdr)->flags2) & BCDC_FLAG2_IF_MASK) >> BCDC_FLAG2_IF_SHIFT)) +#define BCDC_SET_IF_IDX(hdr, idx) \ + ((hdr)->flags2 = (((hdr)->flags2 & ~BCDC_FLAG2_IF_MASK) | \ + ((idx) << BCDC_FLAG2_IF_SHIFT))) + +/** + * struct brcmf_proto_bcdc_header - BCDC header format + * + * @flags: flags contain protocol and checksum info. + * @priority: 802.1d priority and USB flow control info (bit 4:7). + * @flags2: additional flags containing dongle interface index. + * @data_offset: start of packet data. header is following by firmware signals. + */ +struct brcmf_proto_bcdc_header { + u8 flags; + u8 priority; + u8 flags2; + u8 data_offset; +}; + +/* + * maximum length of firmware signal data between + * the BCDC header and packet data in the tx path. + */ +#define BRCMF_PROT_FW_SIGNAL_MAX_TXBYTES 12 + +#define RETRIES 2 /* # of retries to retrieve matching dcmd response */ +#define BUS_HEADER_LEN (16+64) /* Must be atleast SDPCM_RESERVE + * (amount of header tha might be added) + * plus any space that might be needed + * for bus alignment padding. + */ +#define ROUND_UP_MARGIN 2048 + +struct brcmf_bcdc { + u16 reqid; + u8 bus_header[BUS_HEADER_LEN]; + struct brcmf_proto_bcdc_dcmd msg; + unsigned char buf[BRCMF_DCMD_MAXLEN]; + struct brcmf_fws_info *fws; +}; + + +struct brcmf_fws_info *drvr_to_fws(struct brcmf_pub *drvr) +{ + struct brcmf_bcdc *bcdc = drvr->proto->pd; + + return bcdc->fws; +} + +static int +brcmf_proto_bcdc_msg(struct brcmf_pub *drvr, int ifidx, uint cmd, void *buf, + uint len, bool set) +{ + struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd; + struct brcmf_proto_bcdc_dcmd *msg = &bcdc->msg; + u32 flags; + + brcmf_dbg(BCDC, "Enter\n"); + + memset(msg, 0, sizeof(struct brcmf_proto_bcdc_dcmd)); + + msg->cmd = cpu_to_le32(cmd); + msg->len = cpu_to_le32(len); + flags = (++bcdc->reqid << BCDC_DCMD_ID_SHIFT); + if (set) + flags |= BCDC_DCMD_SET; + flags = (flags & ~BCDC_DCMD_IF_MASK) | + (ifidx << BCDC_DCMD_IF_SHIFT); + msg->flags = cpu_to_le32(flags); + + if (buf) + memcpy(bcdc->buf, buf, len); + + len += sizeof(*msg); + if (len > BRCMF_TX_IOCTL_MAX_MSG_SIZE) + len = BRCMF_TX_IOCTL_MAX_MSG_SIZE; + + /* Send request */ + return brcmf_bus_txctl(drvr->bus_if, (unsigned char *)&bcdc->msg, len); +} + +static int brcmf_proto_bcdc_cmplt(struct brcmf_pub *drvr, u32 id, u32 len) +{ + int ret; + struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd; + + brcmf_dbg(BCDC, "Enter\n"); + len += sizeof(struct brcmf_proto_bcdc_dcmd); + do { + ret = brcmf_bus_rxctl(drvr->bus_if, (unsigned char *)&bcdc->msg, + len); + if (ret < 0) + break; + } while (BCDC_DCMD_ID(le32_to_cpu(bcdc->msg.flags)) != id); + + return ret; +} + +static int +brcmf_proto_bcdc_query_dcmd(struct brcmf_pub *drvr, int ifidx, uint cmd, + void *buf, uint len, int *fwerr) +{ + struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd; + struct brcmf_proto_bcdc_dcmd *msg = &bcdc->msg; + void *info; + int ret = 0, retries = 0; + u32 id, flags; + + brcmf_dbg(BCDC, "Enter, cmd %d len %d\n", cmd, len); + + *fwerr = 0; + ret = brcmf_proto_bcdc_msg(drvr, ifidx, cmd, buf, len, false); + if (ret < 0) { + bphy_err(drvr, "brcmf_proto_bcdc_msg failed w/status %d\n", + ret); + goto done; + } + +retry: + /* wait for interrupt and get first fragment */ + ret = brcmf_proto_bcdc_cmplt(drvr, bcdc->reqid, len); + if (ret < 0) + goto done; + + flags = le32_to_cpu(msg->flags); + id = (flags & BCDC_DCMD_ID_MASK) >> BCDC_DCMD_ID_SHIFT; + + if ((id < bcdc->reqid) && (++retries < RETRIES)) + goto retry; + if (id != bcdc->reqid) { + bphy_err(drvr, "%s: unexpected request id %d (expected %d)\n", + brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id, + bcdc->reqid); + ret = -EINVAL; + goto done; + } + + /* Check info buffer */ + info = (void *)&bcdc->buf[0]; + + /* Copy info buffer */ + if (buf) { + if (ret < (int)len) + len = ret; + memcpy(buf, info, len); + } + + ret = 0; + + /* Check the ERROR flag */ + if (flags & BCDC_DCMD_ERROR) + *fwerr = le32_to_cpu(msg->status); +done: + return ret; +} + +static int +brcmf_proto_bcdc_set_dcmd(struct brcmf_pub *drvr, int ifidx, uint cmd, + void *buf, uint len, int *fwerr) +{ + struct brcmf_bcdc *bcdc = (struct brcmf_bcdc *)drvr->proto->pd; + struct brcmf_proto_bcdc_dcmd *msg = &bcdc->msg; + int ret; + u32 flags, id; + + brcmf_dbg(BCDC, "Enter, cmd %d len %d\n", cmd, len); + + *fwerr = 0; + ret = brcmf_proto_bcdc_msg(drvr, ifidx, cmd, buf, len, true); + if (ret < 0) + goto done; + + ret = brcmf_proto_bcdc_cmplt(drvr, bcdc->reqid, len); + if (ret < 0) + goto done; + + flags = le32_to_cpu(msg->flags); + id = (flags & BCDC_DCMD_ID_MASK) >> BCDC_DCMD_ID_SHIFT; + + if (id != bcdc->reqid) { + bphy_err(drvr, "%s: unexpected request id %d (expected %d)\n", + brcmf_ifname(brcmf_get_ifp(drvr, ifidx)), id, + bcdc->reqid); + ret = -EINVAL; + goto done; + } + + ret = 0; + + /* Check the ERROR flag */ + if (flags & BCDC_DCMD_ERROR) + *fwerr = le32_to_cpu(msg->status); + +done: + return ret; +} + +static void +brcmf_proto_bcdc_hdrpush(struct brcmf_pub *drvr, int ifidx, u8 offset, + struct sk_buff *pktbuf) +{ + struct brcmf_proto_bcdc_header *h; + + brcmf_dbg(BCDC, "Enter\n"); + + /* Push BDC header used to convey priority for buses that don't */ + skb_push(pktbuf, BCDC_HEADER_LEN); + + h = (struct brcmf_proto_bcdc_header *)(pktbuf->data); + + h->flags = (BCDC_PROTO_VER << BCDC_FLAG_VER_SHIFT); + if (pktbuf->ip_summed == CHECKSUM_PARTIAL) + h->flags |= BCDC_FLAG_SUM_NEEDED; + + h->priority = (pktbuf->priority & BCDC_PRIORITY_MASK); + h->flags2 = 0; + h->data_offset = offset; + BCDC_SET_IF_IDX(h, ifidx); + trace_brcmf_bcdchdr(pktbuf->data); +} + +static int +brcmf_proto_bcdc_hdrpull(struct brcmf_pub *drvr, bool do_fws, + struct sk_buff *pktbuf, struct brcmf_if **ifp) +{ + struct brcmf_proto_bcdc_header *h; + struct brcmf_if *tmp_if; + + brcmf_dbg(BCDC, "Enter\n"); + + /* Pop BCDC header used to convey priority for buses that don't */ + if (pktbuf->len <= BCDC_HEADER_LEN) { + brcmf_dbg(INFO, "rx data too short (%d <= %d)\n", + pktbuf->len, BCDC_HEADER_LEN); + return -EBADE; + } + + trace_brcmf_bcdchdr(pktbuf->data); + h = (struct brcmf_proto_bcdc_header *)(pktbuf->data); + + tmp_if = brcmf_get_ifp(drvr, BCDC_GET_IF_IDX(h)); + if (!tmp_if) { + brcmf_dbg(INFO, "no matching ifp found\n"); + return -EBADE; + } + if (((h->flags & BCDC_FLAG_VER_MASK) >> BCDC_FLAG_VER_SHIFT) != + BCDC_PROTO_VER) { + bphy_err(drvr, "%s: non-BCDC packet received, flags 0x%x\n", + brcmf_ifname(tmp_if), h->flags); + return -EBADE; + } + + if (h->flags & BCDC_FLAG_SUM_GOOD) { + brcmf_dbg(BCDC, "%s: BDC rcv, good checksum, flags 0x%x\n", + brcmf_ifname(tmp_if), h->flags); + pktbuf->ip_summed = CHECKSUM_UNNECESSARY; + } + + pktbuf->priority = h->priority & BCDC_PRIORITY_MASK; + + skb_pull(pktbuf, BCDC_HEADER_LEN); + if (do_fws) + brcmf_fws_hdrpull(tmp_if, h->data_offset << 2, pktbuf); + else + skb_pull(pktbuf, h->data_offset << 2); + + if (pktbuf->len == 0) + return -ENODATA; + + if (ifp != NULL) + *ifp = tmp_if; + return 0; +} + +static int brcmf_proto_bcdc_tx_queue_data(struct brcmf_pub *drvr, int ifidx, + struct sk_buff *skb) +{ + struct brcmf_if *ifp = brcmf_get_ifp(drvr, ifidx); + struct brcmf_bcdc *bcdc = drvr->proto->pd; + + if (!brcmf_fws_queue_skbs(bcdc->fws)) + return brcmf_proto_txdata(drvr, ifidx, 0, skb); + + return brcmf_fws_process_skb(ifp, skb); +} + +static int +brcmf_proto_bcdc_txdata(struct brcmf_pub *drvr, int ifidx, u8 offset, + struct sk_buff *pktbuf) +{ + brcmf_proto_bcdc_hdrpush(drvr, ifidx, offset, pktbuf); + return brcmf_bus_txdata(drvr->bus_if, pktbuf); +} + +void brcmf_proto_bcdc_txflowblock(struct device *dev, bool state) +{ + struct brcmf_bus *bus_if = dev_get_drvdata(dev); + struct brcmf_pub *drvr = bus_if->drvr; + + brcmf_dbg(TRACE, "Enter\n"); + + brcmf_fws_bus_blocked(drvr, state); +} + +void +brcmf_proto_bcdc_txcomplete(struct device *dev, struct sk_buff *txp, + bool success) +{ + struct brcmf_bus *bus_if = dev_get_drvdata(dev); + struct brcmf_bcdc *bcdc = bus_if->drvr->proto->pd; + struct brcmf_if *ifp; + + /* await txstatus signal for firmware if active */ + if (brcmf_fws_fc_active(bcdc->fws)) { + brcmf_fws_bustxcomplete(bcdc->fws, txp, success); + } else { + if (brcmf_proto_bcdc_hdrpull(bus_if->drvr, false, txp, &ifp)) + brcmu_pkt_buf_free_skb(txp); + else + brcmf_txfinalize(ifp, txp, success); + } +} + +static void +brcmf_proto_bcdc_configure_addr_mode(struct brcmf_pub *drvr, int ifidx, + enum proto_addr_mode addr_mode) +{ +} + +static void +brcmf_proto_bcdc_delete_peer(struct brcmf_pub *drvr, int ifidx, + u8 peer[ETH_ALEN]) +{ +} + +static void +brcmf_proto_bcdc_add_tdls_peer(struct brcmf_pub *drvr, int ifidx, + u8 peer[ETH_ALEN]) +{ +} + +static void brcmf_proto_bcdc_rxreorder(struct brcmf_if *ifp, + struct sk_buff *skb) +{ + brcmf_fws_rxreorder(ifp, skb); +} + +static void +brcmf_proto_bcdc_add_if(struct brcmf_if *ifp) +{ + brcmf_fws_add_interface(ifp); +} + +static void +brcmf_proto_bcdc_del_if(struct brcmf_if *ifp) +{ + brcmf_fws_del_interface(ifp); +} + +static void +brcmf_proto_bcdc_reset_if(struct brcmf_if *ifp) +{ + brcmf_fws_reset_interface(ifp); +} + +static int +brcmf_proto_bcdc_init_done(struct brcmf_pub *drvr) +{ + struct brcmf_bcdc *bcdc = drvr->proto->pd; + struct brcmf_fws_info *fws; + + fws = brcmf_fws_attach(drvr); + if (IS_ERR(fws)) + return PTR_ERR(fws); + + bcdc->fws = fws; + return 0; +} + +static void brcmf_proto_bcdc_debugfs_create(struct brcmf_pub *drvr) +{ + brcmf_fws_debugfs_create(drvr); +} + +int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr) +{ + struct brcmf_bcdc *bcdc; + + bcdc = kzalloc(sizeof(*bcdc), GFP_ATOMIC); + if (!bcdc) + goto fail; + + /* ensure that the msg buf directly follows the cdc msg struct */ + if ((unsigned long)(&bcdc->msg + 1) != (unsigned long)bcdc->buf) { + bphy_err(drvr, "struct brcmf_proto_bcdc is not correctly defined\n"); + goto fail; + } + + drvr->proto->hdrpull = brcmf_proto_bcdc_hdrpull; + drvr->proto->query_dcmd = brcmf_proto_bcdc_query_dcmd; + drvr->proto->set_dcmd = brcmf_proto_bcdc_set_dcmd; + drvr->proto->tx_queue_data = brcmf_proto_bcdc_tx_queue_data; + drvr->proto->txdata = brcmf_proto_bcdc_txdata; + drvr->proto->configure_addr_mode = brcmf_proto_bcdc_configure_addr_mode; + drvr->proto->delete_peer = brcmf_proto_bcdc_delete_peer; + drvr->proto->add_tdls_peer = brcmf_proto_bcdc_add_tdls_peer; + drvr->proto->rxreorder = brcmf_proto_bcdc_rxreorder; + drvr->proto->add_if = brcmf_proto_bcdc_add_if; + drvr->proto->del_if = brcmf_proto_bcdc_del_if; + drvr->proto->reset_if = brcmf_proto_bcdc_reset_if; + drvr->proto->init_done = brcmf_proto_bcdc_init_done; + drvr->proto->debugfs_create = brcmf_proto_bcdc_debugfs_create; + drvr->proto->pd = bcdc; + + drvr->hdrlen += BCDC_HEADER_LEN + BRCMF_PROT_FW_SIGNAL_MAX_TXBYTES; + drvr->bus_if->maxctl = BRCMF_DCMD_MAXLEN + + sizeof(struct brcmf_proto_bcdc_dcmd) + ROUND_UP_MARGIN; + return 0; + +fail: + kfree(bcdc); + return -ENOMEM; +} + +void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr) +{ + struct brcmf_bcdc *bcdc = drvr->proto->pd; + + drvr->proto->pd = NULL; + brcmf_fws_detach(bcdc->fws); + kfree(bcdc); +} diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.h b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.h new file mode 100644 index 000000000000..b051d2860cd1 --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.h @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2013 Broadcom Corporation + */ +#ifndef BRCMFMAC_BCDC_H +#define BRCMFMAC_BCDC_H + +#ifdef CONFIG_BRCMFMAC_PROTO_BCDC +int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr); +void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr); +void brcmf_proto_bcdc_txflowblock(struct device *dev, bool state); +void brcmf_proto_bcdc_txcomplete(struct device *dev, struct sk_buff *txp, + bool success); +struct brcmf_fws_info *drvr_to_fws(struct brcmf_pub *drvr); +#else +static inline int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr) { return 0; } +static inline void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr) {} +#endif + +#endif /* BRCMFMAC_BCDC_H */ diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c new file mode 100644 index 000000000000..8ab7d1e34a6e --- /dev/null +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -0,0 +1,1269 @@ +// SPDX-License-Identifier: ISC +/* + * Copyright (c) 2010 Broadcom Corporation + */ +/* ****************** SDIO CARD Interface Functions **************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include "chip.h" +#include "bus.h" +#include "debug.h" +#include "sdio.h" +#include "core.h" +#include "common.h" + +#define SDIOH_API_ACCESS_RETRY_LIMIT 2 + +#define DMA_ALIGN_MASK 0x03 + *** 115992 LINES SKIPPED *** From nobody Fri Feb 27 02:30: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 4fMXNf55Zmz6T7xc for ; Fri, 27 Feb 2026 02:30: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNf2R5tz41jY for ; Fri, 27 Feb 2026 02:30:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159410; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FipFJ1U1NJ/umWonuLBKMsIrvDIn5xY/UxXSFdKSRbs=; b=NOo1M5fq8Pb97G0VFhV5wLm+hkfeEuDq19cYyosEDO1ZOL69MhbNHQKUc8T8zN8yYdXbqa huaXfUhFaroHkfHzdKR7KuUGjVcceAAe8yHfwzwOOPf75g1gmM82npYrfeiGR2mGkiKi71 rSheTkGbZcJp6AqKHnZTtdMOk+FPWCDYwskTIWlJuGIkkBBws8njmjKUmYaTE7crBq076H wlI7UAJAspxkvSWZmkf8ACDGjIv+Sb/HUc+9VOn4BDAkkTUTzs9SdvyrKjm4eV6sGkemOA 1DE174eUdtBzxPZVZJGWruDtH7zSlgmklJjXQwhn6XRhdcZB1NQPrW80pmI0pg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159410; a=rsa-sha256; cv=none; b=bW4gWM319b2YLifkIr49U7Jeiz3m94ERff958icmDvcIxYzXow/7dEHSHqU4CU8vaPEozL LHXsF/IPOB3PQyifgxH070V1Yz3ob6SvDgBw/lVGchycZuS2e9xCQStTCxS7K/Ux+7h0Bk w0zhjZOT2yafrJ8d1mM8Wo1EKX7dbms3KZfNcl7jYzYNbtUPPt9m8YlbTacSqRxvsIkceW i/taXqd8JfnWGe8ZF7DAtOpp3e36WCHAfJhAzM6kZY+6WW6FwWIpnOma0s7l3CwSbLiHpm 2t6AzrcY3g4mrIjGpZyQ0vbK1cMFSezmahIZg95KrKaI5NbpXU2rGc/Um1ONnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159410; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FipFJ1U1NJ/umWonuLBKMsIrvDIn5xY/UxXSFdKSRbs=; b=XalGr/KS1sWiAcyAkfMe+aPnHPQc8U1///C+ejdarumz+IqfPKM4oyOoQPzh1G2b2IObZm oP/3v/DmE48Y+1JrkL4Y8VN24kmJbP/c2u/yqLUYJ9v/PGYqIHWvl8PyNgMf1xNgmyMjGj TPxp9Hy1wa2K4M9GunlKVfMDLMK41jDZtDMo6XyyKVKE0AGdfFzznznDLTYqcsgw1fPXez sa+9r3aQh+2DDesG1dkRHnShkfbn5DY6dNSfHlQK150wcPqWzkbrkfsjzOib9UiGec16HJ /YunH7dtN7xDhA8LE3eXJDHi28eKCEgsqDxevXTq/QdMYWI/TCat48gz/38pvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNf1pX4zygH for ; Fri, 27 Feb 2026 02:30:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20f4a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: a1fd73b3faed - stable/15 - brcm80211: add LinuxKPI files and module Makefiles List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a1fd73b3faed190457a072ad7127a1a860b3e925 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:10 +0000 Message-Id: <69a101b2.20f4a.3331ae88@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a1fd73b3faed190457a072ad7127a1a860b3e925 commit a1fd73b3faed190457a072ad7127a1a860b3e925 Author: Bjoern A. Zeeb AuthorDate: 2026-02-10 21:33:09 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:07:18 +0000 brcm80211: add LinuxKPI files and module Makefiles sys/compat/linuxkpi/common/include/linux/platform_data/brcmfmac.h is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git e5f0a698b34ed76002dc5cff3804a61c80233a7a ( tag: v6.17 ). Currently only PCIe is made to compile. It does load firmware (if needed, e.g., on arm64 with an alignment issue fixed), and starts to come up. To make it work there is a cfg80211 layer and netdevice integration to do, so do not hold your breath just yet. (cherry picked from commit 902136e0fe112383ec64d2ef43a446063b5e6417) --- .../linuxkpi/common/include/linux/bcm47xx_nvram.h | 21 +++ .../linuxkpi/common/include/linux/bcma/bcma.h | 29 ++++ .../linuxkpi/common/include/linux/bcma/bcma_regs.h | 17 ++ .../common/include/linux/platform_data/brcmfmac.h | 185 ++++++++++++++++++++ .../linuxkpi/common/include/linux/ssb/ssb_regs.h | 25 +++ .../dev/broadcom/brcm80211/brcmfmac/cfg80211.c | 190 +++++++++++++++++++++ .../dev/broadcom/brcm80211/brcmfmac/common.c | 35 ++++ .../dev/broadcom/brcm80211/brcmfmac/commonring.c | 15 ++ .../dev/broadcom/brcm80211/brcmfmac/debug.c | 8 + .../dev/broadcom/brcm80211/brcmfmac/debug.h | 24 +++ .../dev/broadcom/brcm80211/brcmfmac/firmware.c | 24 +++ .../dev/broadcom/brcm80211/brcmfmac/flowring.c | 24 +++ .../dev/broadcom/brcm80211/brcmfmac/flowring.h | 8 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwil.c | 8 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwil.h | 4 + .../dev/broadcom/brcm80211/brcmfmac/fwvid.c | 18 ++ .../dev/broadcom/brcm80211/brcmfmac/msgbuf.c | 34 ++++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c | 23 +++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c | 117 +++++++++++++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c | 21 +++ .../dev/broadcom/brcm80211/brcmfmac/proto.h | 16 ++ .../dev/broadcom/brcm80211/brcmfmac/tracepoint.h | 18 ++ .../dev/broadcom/brcm80211/brcmfmac/vendor.c | 9 + sys/contrib/dev/broadcom/brcm80211/brcmfmac/xtlv.c | 4 + .../dev/broadcom/brcm80211/brcmutil/utils.c | 9 + sys/modules/brcm80211/Makefile | 4 + sys/modules/brcm80211/brcmfmac/Makefile | 89 ++++++++++ sys/modules/brcm80211/brcmutil/Makefile | 28 +++ 28 files changed, 1007 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/bcm47xx_nvram.h b/sys/compat/linuxkpi/common/include/linux/bcm47xx_nvram.h new file mode 100644 index 000000000000..744101a2f8b1 --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/bcm47xx_nvram.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Bjoern A. Zeeb + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef _LINUXKPI_LINUX_BCM47XX_NVRAM_H +#define _LINUXKPI_LINUX_BCM47XX_NVRAM_H + +static inline char * +bcm47xx_nvram_get_contents(size_t *x __unused) +{ + return (NULL); +}; + +static inline void +bcm47xx_nvram_release_contents(const char *x __unused) +{ +}; + +#endif /* _LINUXKPI_LINUX_BCM47XX_NVRAM_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/bcma/bcma.h b/sys/compat/linuxkpi/common/include/linux/bcma/bcma.h new file mode 100644 index 000000000000..3840c3a420e5 --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/bcma/bcma.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2025 Bjoern A. Zeeb + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef _LINUXKPI_LINUX_BCMA_BCMA_H +#define _LINUXKPI_LINUX_BCMA_BCMA_H + +#define BCMA_CORE_80211 0x812 +#define BCMA_CORE_ARM_CA7 0x847 +#define BCMA_CORE_ARM_CM3 0x82A +#define BCMA_CORE_ARM_CR4 0x83E +#define BCMA_CORE_CHIPCOMMON 0x800 +#define BCMA_CORE_GCI 0x840 +#define BCMA_CORE_INTERNAL_MEM 0x80E +#define BCMA_CORE_PCIE2 0x83C +#define BCMA_CORE_PMU 0x827 +#define BCMA_CORE_SDIO_DEV 0x829 +#define BCMA_CORE_SYS_MEM 0x849 + +/* XXX not sure where these belong. */ +#define BCMA_CC_CAP_EXT_AOB_PRESENT 0x00000040 +#define BCMA_CC_PMU_CTL_RES_SHIFT 13 +#define BCMA_CC_PMU_CTL_RES_RELOAD 0x2 +#define BCMA_CC_SROM_CONTROL_OTPSEL 0x00000010 +#define BCMA_CC_SROM_CONTROL_OTP_PRESENT 0x00000020 + +#endif /* _LINUXKPI_LINUX_BCMA_BCMA_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/bcma/bcma_regs.h b/sys/compat/linuxkpi/common/include/linux/bcma/bcma_regs.h new file mode 100644 index 000000000000..0a4cdddf7a73 --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/bcma/bcma_regs.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2025 Bjoern A. Zeeb + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef _LINUXKPI_LINUX_BCMA_BCMA_REGS_H +#define _LINUXKPI_LINUX_BCMA_BCMA_REGS_H + +#define BCMA_IOCTL 0x0408 +#define BCMA_IOCTL_CLK 0x0001 +#define BCMA_IOCTL_FGC 0x0002 + +#define BCMA_RESET_CTL 0x0800 +#define BCMA_RESET_CTL_RESET 0x0001 + +#endif /* _LINUXKPI_LINUX_BCMA_BCMA_REGS_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/platform_data/brcmfmac.h b/sys/compat/linuxkpi/common/include/linux/platform_data/brcmfmac.h new file mode 100644 index 000000000000..ec99b7b73d1d --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/platform_data/brcmfmac.h @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2016 Broadcom Corporation + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _LINUX_BRCMFMAC_PLATFORM_H +#define _LINUX_BRCMFMAC_PLATFORM_H + + +#define BRCMFMAC_PDATA_NAME "brcmfmac" + +#define BRCMFMAC_COUNTRY_BUF_SZ 4 + + +/* + * Platform specific driver functions and data. Through the platform specific + * device data functions and data can be provided to help the brcmfmac driver to + * operate with the device in combination with the used platform. + */ + + +/** + * Note: the brcmfmac can be loaded as module or be statically built-in into + * the kernel. If built-in then do note that it uses module_init (and + * module_exit) routines which equal device_initcall. So if you intend to + * create a module with the platform specific data for the brcmfmac and have + * it built-in to the kernel then use a higher initcall then device_initcall + * (see init.h). If this is not done then brcmfmac will load without problems + * but will not pickup the platform data. + * + * When the driver does not "detect" platform driver data then it will continue + * without reporting anything and just assume there is no data needed. Which is + * probably true for most platforms. + */ + +/** + * enum brcmf_bus_type - Bus type identifier. Currently SDIO, USB and PCIE are + * supported. + */ +enum brcmf_bus_type { + BRCMF_BUSTYPE_SDIO, + BRCMF_BUSTYPE_USB, + BRCMF_BUSTYPE_PCIE +}; + + +/** + * struct brcmfmac_sdio_pd - SDIO Device specific platform data. + * + * @txglomsz: SDIO txglom size. Use 0 if default of driver is to be + * used. + * @drive_strength: is the preferred drive_strength to be used for the SDIO + * pins. If 0 then a default value will be used. This is + * the target drive strength, the exact drive strength + * which will be used depends on the capabilities of the + * device. + * @oob_irq_supported: does the board have support for OOB interrupts. SDIO + * in-band interrupts are relatively slow and for having + * less overhead on interrupt processing an out of band + * interrupt can be used. If the HW supports this then + * enable this by setting this field to true and configure + * the oob related fields. + * @oob_irq_nr, + * @oob_irq_flags: the OOB interrupt information. The values are used for + * registering the irq using request_irq function. + * @broken_sg_support: flag for broken sg list support of SDIO host controller. + * Set this to true if the SDIO host controller has higher + * align requirement than 32 bytes for each scatterlist + * item. + * @sd_head_align: alignment requirement for start of data buffer. + * @sd_sgentry_align: length alignment requirement for each sg entry. + * @reset: This function can get called if the device communication + * broke down. This functionality is particularly useful in + * case of SDIO type devices. It is possible to reset a + * dongle via sdio data interface, but it requires that + * this is fully functional. This function is chip/module + * specific and this function should return only after the + * complete reset has completed. + */ +struct brcmfmac_sdio_pd { + int txglomsz; + unsigned int drive_strength; + bool oob_irq_supported; + unsigned int oob_irq_nr; + unsigned long oob_irq_flags; + bool broken_sg_support; + unsigned short sd_head_align; + unsigned short sd_sgentry_align; + void (*reset)(void); +}; + +/** + * struct brcmfmac_pd_cc_entry - Struct for translating user space country code + * (iso3166) to firmware country code and + * revision. + * + * @iso3166: iso3166 alpha 2 country code string. + * @cc: firmware country code string. + * @rev: firmware country code revision. + */ +struct brcmfmac_pd_cc_entry { + char iso3166[BRCMFMAC_COUNTRY_BUF_SZ]; + char cc[BRCMFMAC_COUNTRY_BUF_SZ]; + s32 rev; +}; + +/** + * struct brcmfmac_pd_cc - Struct for translating country codes as set by user + * space to a country code and rev which can be used by + * firmware. + * + * @table_size: number of entries in table (> 0) + * @table: array of 1 or more elements with translation information. + */ +struct brcmfmac_pd_cc { + int table_size; + struct brcmfmac_pd_cc_entry table[]; +}; + +/** + * struct brcmfmac_pd_device - Device specific platform data. (id/rev/bus_type) + * is the unique identifier of the device. + * + * @id: ID of the device for which this data is. In case of SDIO + * or PCIE this is the chipid as identified by chip.c In + * case of USB this is the chipid as identified by the + * device query. + * @rev: chip revision, see id. + * @bus_type: The type of bus. Some chipid/rev exist for different bus + * types. Each bus type has its own set of settings. + * @feature_disable: Bitmask of features to disable (override), See feature.c + * in brcmfmac for details. + * @country_codes: If available, pointer to struct for translating country + * codes. + * @bus: Bus specific (union) device settings. Currently only + * SDIO. + */ +struct brcmfmac_pd_device { + unsigned int id; + unsigned int rev; + enum brcmf_bus_type bus_type; + unsigned int feature_disable; + struct brcmfmac_pd_cc *country_codes; + union { + struct brcmfmac_sdio_pd sdio; + } bus; +}; + +/** + * struct brcmfmac_platform_data - BRCMFMAC specific platform data. + * + * @power_on: This function is called by the brcmfmac driver when the module + * gets loaded. This can be particularly useful for low power + * devices. The platform spcific routine may for example decide to + * power up the complete device. If there is no use-case for this + * function then provide NULL. + * @power_off: This function is called by the brcmfmac when the module gets + * unloaded. At this point the devices can be powered down or + * otherwise be reset. So if an actual power_off is not supported + * but reset is supported by the devices then reset the devices + * when this function gets called. This can be particularly useful + * for low power devices. If there is no use-case for this + * function then provide NULL. + */ +struct brcmfmac_platform_data { + void (*power_on)(void); + void (*power_off)(void); + char *fw_alternative_path; + int device_count; + struct brcmfmac_pd_device devices[]; +}; + + +#endif /* _LINUX_BRCMFMAC_PLATFORM_H */ diff --git a/sys/compat/linuxkpi/common/include/linux/ssb/ssb_regs.h b/sys/compat/linuxkpi/common/include/linux/ssb/ssb_regs.h new file mode 100644 index 000000000000..e1c18b6b632a --- /dev/null +++ b/sys/compat/linuxkpi/common/include/linux/ssb/ssb_regs.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Bjoern A. Zeeb + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef _LINUXKPI_LINUX_SSB_SSB_REGS_H +#define _LINUXKPI_LINUX_SSB_SSB_REGS_H + +#define SSB_IDHIGH_RCHI 0x00007000 +#define SSB_IDHIGH_RCHI_SHIFT 8 +#define SSB_IDHIGH_RCLO 0x0000000F +#define SSB_IDLOW_INITIATOR 0x00000080 +#define SSB_IMSTATE_BUSY 0x01800000 +#define SSB_IMSTATE_IBE 0x00020000 +#define SSB_IMSTATE_REJECT 0x02000000 +#define SSB_IMSTATE_TO 0x00040000 +#define SSB_TMSHIGH_BUSY 0x00000004 +#define SSB_TMSHIGH_SERR 0x00000001 +#define SSB_TMSLOW_CLOCK 0x00010000 +#define SSB_TMSLOW_FGC 0x00020000 +#define SSB_TMSLOW_REJECT 0x00000002 +#define SSB_TMSLOW_RESET 0x00000001 + +#endif /* _LINUXKPI_LINUX_SSB_SSB_REGS_H */ diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c index 8af402555b5e..35f68b370714 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5,13 +5,21 @@ /* Toplevel file. Relies on dhd_linux.c to send commands to the dongle. */ +#if defined(__FreeBSD__) +#include +#endif #include #include #include #include +#if defined(__linux__) #include +#endif #include #include +#if defined(__FreeBSD__) +#include +#endif #include #include @@ -36,6 +44,24 @@ #define BRCMF_SCAN_IE_LEN_MAX 2048 +#if defined(__FreeBSD__) +#ifdef WPA_OUI +#undef WPA_OUI +#endif +#ifdef WPA_OUI_TYPE +#undef WPA_OUI_TYPE +#endif +#ifdef RSN_OUI +#undef RSN_OUI +#endif +#ifdef WME_OUI_TYPE +#undef WME_OUI_TYPE +#endif +#ifdef WPS_OUI_TYPE +#undef WPS_OUI_TYPE +#endif +#endif + #define WPA_OUI "\x00\x50\xF2" /* WPA OUI */ #define WPA_OUI_TYPE 1 #define RSN_OUI "\x00\x0F\xAC" /* RSN OUI */ @@ -257,7 +283,11 @@ struct brcmf_vs_tlv { }; struct parsed_vndr_ie_info { +#if defined(__linux__) u8 *ie_ptr; +#elif defined(__FreeBSD__) + const u8 *ie_ptr; +#endif u32 ie_len; /* total length including id & length field */ struct brcmf_vs_tlv vndrie; }; @@ -429,7 +459,11 @@ brcmf_parse_tlvs(const void *buf, int buflen, uint key) if ((elt->id == key) && (totlen >= (len + TLV_HDR_LEN))) return elt; +#if defined(__linux__) elt = (struct brcmf_tlv *)((u8 *)elt + (len + TLV_HDR_LEN)); +#elif defined(__FreeBSD__) + elt = (const struct brcmf_tlv *)((const u8 *)elt + (len + TLV_HDR_LEN)); +#endif totlen -= (len + TLV_HDR_LEN); } @@ -462,7 +496,11 @@ brcmf_tlv_has_ie(const u8 *ie, const u8 **tlvs, u32 *tlvs_len, return false; } +#if defined(__linux__) static struct brcmf_vs_tlv * +#elif defined(__FreeBSD__) +static const struct brcmf_vs_tlv * +#endif brcmf_find_wpaie(const u8 *parse, u32 len) { const struct brcmf_tlv *ie; @@ -470,20 +508,34 @@ brcmf_find_wpaie(const u8 *parse, u32 len) while ((ie = brcmf_parse_tlvs(parse, len, WLAN_EID_VENDOR_SPECIFIC))) { if (brcmf_tlv_has_ie((const u8 *)ie, &parse, &len, WPA_OUI, TLV_OUI_LEN, WPA_OUI_TYPE)) +#if defined(__linux__) return (struct brcmf_vs_tlv *)ie; +#elif defined(__FreeBSD__) + return (const struct brcmf_vs_tlv *)ie; +#endif } return NULL; } +#if defined(__linux__) static struct brcmf_vs_tlv * +#elif defined(__FreeBSD__) +static const struct brcmf_vs_tlv * +#endif brcmf_find_wpsie(const u8 *parse, u32 len) { const struct brcmf_tlv *ie; while ((ie = brcmf_parse_tlvs(parse, len, WLAN_EID_VENDOR_SPECIFIC))) { +#if defined(__linux__) if (brcmf_tlv_has_ie((u8 *)ie, &parse, &len, WPA_OUI, TLV_OUI_LEN, WPS_OUI_TYPE)) return (struct brcmf_vs_tlv *)ie; +#elif defined(__FreeBSD__) + if (brcmf_tlv_has_ie((const u8 *)ie, &parse, &len, + WPA_OUI, TLV_OUI_LEN, WPS_OUI_TYPE)) + return (const struct brcmf_vs_tlv *)ie; +#endif } return NULL; } @@ -1239,8 +1291,13 @@ s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info *cfg, reqid = brcmf_pno_find_reqid_by_bucket(cfg->pno, bucket); if (!aborted) { +#if defined(__linux__) brcmf_dbg(SCAN, "report results: reqid=%llu\n", reqid); +#elif defined(__FreeBSD__) + brcmf_dbg(SCAN, "report results: reqid=%ju\n", + (uintmax_t)reqid); +#endif cfg80211_sched_scan_results(cfg_to_wiphy(cfg), reqid); } @@ -2413,7 +2470,11 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, ie = NULL; ie_len = 0; /* find the WPA_IE */ +#if defined(__linux__) wpa_ie = brcmf_find_wpaie((u8 *)sme->ie, sme->ie_len); +#elif defined(__FreeBSD__) + wpa_ie = brcmf_find_wpaie(sme->ie, sme->ie_len); +#endif if (wpa_ie) { ie = wpa_ie; ie_len = wpa_ie->len + TLV_HDR_LEN; @@ -2450,7 +2511,11 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, chanspec = 0; } +#if defined(__linux__) brcmf_dbg(INFO, "ie (%p), ie_len (%zd)\n", sme->ie, sme->ie_len); +#elif defined(__FreeBSD__) + brcmf_dbg(INFO, "ie (%p), ie_len (%u)\n", sme->ie, sme->ie_len); +#endif err = brcmf_set_wpa_version(ndev, sme); if (err) { @@ -2840,7 +2905,11 @@ brcmf_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev, key = &ifp->vif->profile.key[key_idx]; memset(key, 0, sizeof(*key)); if ((ext_key) && (!is_multicast_ether_addr(mac_addr))) +#if defined(__linux__) memcpy((char *)&key->ea, (void *)mac_addr, ETH_ALEN); +#elif defined(__FreeBSD__) + memcpy((char *)&key->ea, mac_addr, ETH_ALEN); +#endif key->len = params->key_len; key->index = key_idx; memcpy(key->data, params->key, key->len); @@ -2849,9 +2918,15 @@ brcmf_cfg80211_add_key(struct wiphy *wiphy, struct net_device *ndev, if (params->seq && params->seq_len == 6) { /* rx iv */ +#if defined(__linux__) u8 *ivptr; ivptr = (u8 *)params->seq; +#elif defined(__FreeBSD__) + const u8 *ivptr; + + ivptr = params->seq; +#endif key->rxiv.hi = (ivptr[5] << 24) | (ivptr[4] << 16) | (ivptr[3] << 8) | ivptr[2]; key->rxiv.lo = (ivptr[1] << 8) | ivptr[0]; @@ -3758,8 +3833,13 @@ brcmf_alloc_internal_escan_request(struct wiphy *wiphy, u32 n_netinfo) { req = kzalloc(req_size, GFP_KERNEL); if (req) { req->wiphy = wiphy; +#if defined(__linux__) req->ssids = (void *)(&req->channels[0]) + n_netinfo * sizeof(req->channels[0]); +#elif defined(__FreeBSD__) + req->ssids = (void *)((&req->channels[0]) + + n_netinfo * sizeof(req->channels[0])); +#endif } return req; } @@ -3902,7 +3982,11 @@ brcmf_notify_sched_scan_results(struct brcmf_if *ifp, } netinfo_start = brcmf_get_netinfo_array(pfn_result); +#if defined(__linux__) datalen = e->datalen - ((void *)netinfo_start - (void *)pfn_result); +#elif defined(__FreeBSD__) + datalen = e->datalen - ((u8 *)netinfo_start - (u8 *)pfn_result); +#endif if (datalen < result_count * sizeof(*netinfo)) { bphy_err(drvr, "insufficient event data\n"); goto out_err; @@ -3992,7 +4076,11 @@ static __always_inline void brcmf_delay(u32 ms) cond_resched(); mdelay(ms); } else { +#if defined(__linux__) msleep(ms); +#elif defined(__FreeBSD__) + linux_msleep(ms); +#endif } } @@ -4529,7 +4617,11 @@ static s32 brcmf_configure_opensecurity(struct brcmf_if *ifp) return 0; } +#if defined(__linux__) static bool brcmf_valid_wpa_oui(u8 *oui, bool is_rsn_ie) +#elif defined(__FreeBSD__) +static bool brcmf_valid_wpa_oui(const u8 *oui, bool is_rsn_ie) +#endif { if (is_rsn_ie) return (memcmp(oui, RSN_OUI, TLV_OUI_LEN) == 0); @@ -4553,7 +4645,11 @@ brcmf_configure_wpaie(struct brcmf_if *ifp, u32 gval = 0; u32 wpa_auth = 0; u32 offset; +#if defined(__linux__) u8 *data; +#elif defined(__FreeBSD__) + const u8 *data; +#endif u16 rsn_cap; u32 wme_bss_disable; u32 mfp; @@ -4563,7 +4659,11 @@ brcmf_configure_wpaie(struct brcmf_if *ifp, goto exit; len = wpa_ie->len + TLV_HDR_LEN; +#if defined(__linux__) data = (u8 *)wpa_ie; +#elif defined(__FreeBSD__) + data = (const u8 *)wpa_ie; +#endif offset = TLV_HDR_LEN; if (!is_rsn_ie) offset += VS_IE_FIXED_HDR_LEN; @@ -4786,19 +4886,32 @@ static s32 brcmf_parse_vndr_ies(const u8 *vndr_ie_buf, u32 vndr_ie_len, struct parsed_vndr_ies *vndr_ies) { +#if defined(__linux__) struct brcmf_vs_tlv *vndrie; struct brcmf_tlv *ie; +#elif defined(__FreeBSD__) + const struct brcmf_vs_tlv *vndrie; + const struct brcmf_tlv *ie; +#endif struct parsed_vndr_ie_info *parsed_info; s32 remaining_len; remaining_len = (s32)vndr_ie_len; memset(vndr_ies, 0, sizeof(*vndr_ies)); +#if defined(__linux__) ie = (struct brcmf_tlv *)vndr_ie_buf; +#elif defined(__FreeBSD__) + ie = (const struct brcmf_tlv *)vndr_ie_buf; +#endif while (ie) { if (ie->id != WLAN_EID_VENDOR_SPECIFIC) goto next; +#if defined(__linux__) vndrie = (struct brcmf_vs_tlv *)ie; +#elif defined(__FreeBSD__) + vndrie = (const struct brcmf_vs_tlv *)ie; +#endif /* len should be bigger than OUI length + one */ if (vndrie->len < (VS_IE_FIXED_HDR_LEN - TLV_HDR_LEN + 1)) { brcmf_err("invalid vndr ie. length is too small %d\n", @@ -4816,7 +4929,11 @@ brcmf_parse_vndr_ies(const u8 *vndr_ie_buf, u32 vndr_ie_len, parsed_info = &vndr_ies->ie_info[vndr_ies->count]; /* save vndr ie information */ +#if defined(__linux__) parsed_info->ie_ptr = (char *)vndrie; +#elif defined(__FreeBSD__) + parsed_info->ie_ptr = (const char *)vndrie; +#endif parsed_info->ie_len = vndrie->len + TLV_HDR_LEN; memcpy(&parsed_info->vndrie, vndrie, sizeof(*vndrie)); @@ -4833,14 +4950,22 @@ next: if (remaining_len <= TLV_HDR_LEN) ie = NULL; else +#if defined(__linux__) ie = (struct brcmf_tlv *)(((u8 *)ie) + ie->len + +#elif defined(__FreeBSD__) + ie = (const struct brcmf_tlv *)(((const u8 *)ie) + ie->len + +#endif TLV_HDR_LEN); } return 0; } static u32 +#if defined(__linux__) brcmf_vndr_ie(u8 *iebuf, s32 pktflag, u8 *ie_ptr, u32 ie_len, s8 *add_del_cmd) +#elif defined(__FreeBSD__) +brcmf_vndr_ie(u8 *iebuf, s32 pktflag, const u8 *ie_ptr, u32 ie_len, s8 *add_del_cmd) +#endif { strscpy(iebuf, add_del_cmd, VNDR_IE_CMD_LEN); @@ -5085,11 +5210,19 @@ brcmf_parse_configure_security(struct brcmf_if *ifp, s32 err = 0; /* find the RSN_IE */ +#if defined(__linux__) rsn_ie = brcmf_parse_tlvs((u8 *)settings->beacon.tail, +#elif defined(__FreeBSD__) + rsn_ie = brcmf_parse_tlvs(settings->beacon.tail, +#endif settings->beacon.tail_len, WLAN_EID_RSN); /* find the WPA_IE */ +#if defined(__linux__) wpa_ie = brcmf_find_wpaie((u8 *)settings->beacon.tail, +#elif defined(__FreeBSD__) + wpa_ie = brcmf_find_wpaie(settings->beacon.tail, +#endif settings->beacon.tail_len); if (wpa_ie || rsn_ie) { @@ -5100,9 +5233,16 @@ brcmf_parse_configure_security(struct brcmf_if *ifp, if (err < 0) return err; } else { +#if defined(__linux__) struct brcmf_vs_tlv *tmp_ie; tmp_ie = (struct brcmf_vs_tlv *)rsn_ie; +#elif defined(__FreeBSD__) + const struct brcmf_vs_tlv *tmp_ie; + + tmp_ie = (const struct brcmf_vs_tlv *)rsn_ie; +#endif + /* RSN IE */ err = brcmf_configure_wpaie(ifp, tmp_ie, true); @@ -5155,7 +5295,11 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev, &ifp->vif->is_11d)) { is_11d = supports_11d = false; } else { +#if defined(__linux__) country_ie = brcmf_parse_tlvs((u8 *)settings->beacon.tail, +#elif defined(__FreeBSD__) + country_ie = brcmf_parse_tlvs(settings->beacon.tail, +#endif settings->beacon.tail_len, WLAN_EID_COUNTRY); is_11d = country_ie ? 1 : 0; @@ -5166,7 +5310,11 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev, if (settings->ssid == NULL || settings->ssid_len == 0) { ie_offset = DOT11_MGMT_HDR_LEN + DOT11_BCN_PRB_FIXED_LEN; ssid_ie = brcmf_parse_tlvs( +#if defined(__linux__) (u8 *)&settings->beacon.head[ie_offset], +#elif defined(__FreeBSD__) + &settings->beacon.head[ie_offset], +#endif settings->beacon.head_len - ie_offset, WLAN_EID_SSID); if (!ssid_ie || ssid_ie->len > IEEE80211_MAX_SSID_LEN) @@ -5382,7 +5530,11 @@ static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev, if (ifp->vif->wdev.iftype == NL80211_IFTYPE_AP) { /* Due to most likely deauths outstanding we sleep */ /* first to make sure they get processed by fw. */ +#if defined(__linux__) msleep(400); +#elif defined(__FreeBSD__) + linux_msleep(400); +#endif if (profile->use_fwauth != BIT(BRCMF_PROFILE_FWAUTH_NONE)) { struct cfg80211_crypto_settings crypto = {}; @@ -5504,10 +5656,18 @@ brcmf_cfg80211_change_station(struct wiphy *wiphy, struct net_device *ndev, if (params->sta_flags_set & BIT(NL80211_STA_FLAG_AUTHORIZED)) err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SCB_AUTHORIZE, +#if defined(__linux__) (void *)mac, ETH_ALEN); +#elif defined(__FreeBSD__) + __DECONST(u8 *, mac), ETH_ALEN); +#endif else err = brcmf_fil_cmd_data_set(ifp, BRCMF_C_SET_SCB_DEAUTHORIZE, +#if defined(__linux__) (void *)mac, ETH_ALEN); +#elif defined(__FreeBSD__) + __DECONST(u8 *, mac), ETH_ALEN); +#endif if (err < 0) bphy_err(drvr, "Setting SCB (de-)authorize failed, %d\n", err); @@ -5623,8 +5783,13 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, memcpy(action_frame->data, &buf[DOT11_MGMT_HDR_LEN], le16_to_cpu(action_frame->len)); +#if defined(__linux__) brcmf_dbg(TRACE, "Action frame, cookie=%lld, len=%d, channel=%d\n", *cookie, le16_to_cpu(action_frame->len), +#elif defined(__FreeBSD__) + brcmf_dbg(TRACE, "Action frame, cookie=%ju, len=%d, channel=%d\n", + (uintmax_t)*cookie, le16_to_cpu(action_frame->len), +#endif le32_to_cpu(af_params->channel)); ack = brcmf_p2p_send_action_frame(cfg, cfg_to_ndev(cfg), @@ -5815,11 +5980,19 @@ brcmf_notify_tdls_peer_event(struct brcmf_if *ifp, break; case BRCMF_E_REASON_TDLS_PEER_CONNECTED: brcmf_dbg(TRACE, "TDLS Peer Connected\n"); +#if defined(__linux__) brcmf_proto_add_tdls_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); +#elif defined(__FreeBSD__) + brcmf_proto_add_tdls_peer(ifp->drvr, ifp->ifidx, e->addr); +#endif break; case BRCMF_E_REASON_TDLS_PEER_DISCONNECTED: brcmf_dbg(TRACE, "TDLS Peer Disconnected\n"); +#if defined(__linux__) brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); +#elif defined(__FreeBSD__) + brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, e->addr); +#endif break; } @@ -6553,7 +6726,11 @@ brcmf_notify_connect_status(struct brcmf_if *ifp, (e->event_code == BRCMF_E_DEAUTH_IND) || (e->event_code == BRCMF_E_DISASSOC_IND) || ((e->event_code == BRCMF_E_LINK) && (!e->flags))) { +#if defined(__linux__) brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, (u8 *)e->addr); +#elif defined(__FreeBSD__) + brcmf_proto_delete_peer(ifp->drvr, ifp->ifidx, e->addr); +#endif } if (brcmf_is_apmode(ifp->vif)) { @@ -6640,7 +6817,11 @@ brcmf_notify_mic_status(struct brcmf_if *ifp, else key_type = NL80211_KEYTYPE_PAIRWISE; +#if defined(__linux__) cfg80211_michael_mic_failure(ifp->ndev, (u8 *)&e->addr, key_type, -1, +#elif defined(__FreeBSD__) + cfg80211_michael_mic_failure(ifp->ndev, e->addr, key_type, -1, +#endif NULL, GFP_KERNEL); return 0; @@ -8183,7 +8364,11 @@ brcmf_cfg80211_dump_survey(struct wiphy *wiphy, struct net_device *ndev, goto exit; /* Add 10 ms for IOVAR completion */ +#if defined(__linux__) msleep(ACS_MSRMNT_DELAY + 10); +#elif defined(__FreeBSD__) + linux_msleep(ACS_MSRMNT_DELAY + 10); +#endif /* Issue IOVAR to collect measurement results */ req.msrmnt_query = 1; @@ -8204,8 +8389,13 @@ brcmf_cfg80211_dump_survey(struct wiphy *wiphy, struct net_device *ndev, brcmf_dbg(INFO, "OBSS dump: channel %d: survey duration %d\n", ieee80211_frequency_to_channel(info->channel->center_freq), ACS_MSRMNT_DELAY); +#if defined(__linux__) brcmf_dbg(INFO, "noise(%d) busy(%llu) rx(%llu) tx(%llu)\n", info->noise, info->time_busy, info->time_rx, info->time_tx); +#elif defined(__FreeBSD__) + brcmf_dbg(INFO, "noise(%d) busy(%ju) rx(%ju) tx(%ju)\n", + info->noise, (uintmax_t)info->time_busy, (uintmax_t)info->time_rx, (uintmax_t)info->time_tx); +#endif exit: if (!brcmf_is_apmode(ifp->vif)) diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c index 688f16c51319..17e408b7fa23 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c @@ -3,6 +3,10 @@ * Copyright (c) 2010 Broadcom Corporation */ +#if defined(__FreeBSD__) +#define LINUXKPI_PARAM_PREFIX brcmfmac_ +#endif + #include #include #include @@ -24,6 +28,12 @@ MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("Broadcom 802.11 wireless LAN fullmac driver."); MODULE_LICENSE("Dual BSD/GPL"); +#if defined(__FreeBSD__) +MODULE_DEPEND(brcmfmac, brcmutil, 1, 1, 1); +MODULE_DEPEND(brcmfmac, linuxkpi, 1, 1, 1); +MODULE_DEPEND(brcmfmac, linuxkpi_wlan, 1, 1, 1); +MODULE_DEPEND(brcmfmac, lindebugfs, 1, 1, 1); /* XXX-BZ someone should fix this */ +#endif #define BRCMF_DEFAULT_SCAN_CHANNEL_TIME 40 #define BRCMF_DEFAULT_SCAN_UNASSOC_TIME 40 @@ -118,7 +128,11 @@ static int brcmf_c_download(struct brcmf_if *ifp, u16 flag, } static int brcmf_c_download_blob(struct brcmf_if *ifp, +#if defined(__linux__) const void *data, size_t size, +#elif defined(__FreeBSD__) + const u8 *data, size_t size, +#endif const char *loadvar, const char *statvar) { struct brcmf_pub *drvr = ifp->drvr; @@ -467,10 +481,22 @@ void __brcmf_err(struct brcmf_bus *bus, const char *func, const char *fmt, ...) vaf.fmt = fmt; vaf.va = &args; +#if defined(__linux__) if (bus) dev_err(bus->dev, "%s: %pV", func, &vaf); else pr_err("%s: %pV", func, &vaf); +#elif defined(__FreeBSD__) + { + char *str; + vasprintf(&str, M_KMALLOC, vaf.fmt, args); + if (bus) + dev_err(bus->dev, "ERROR: %s: %s", func, str); + else + pr_err("ERROR: %s: %s", func, str); + free(str, M_KMALLOC); + } +#endif va_end(args); } @@ -487,7 +513,16 @@ void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...) va_start(args, fmt); vaf.va = &args; if (brcmf_msg_level & level) +#if defined(__linux__) pr_debug("%s %pV", func, &vaf); +#elif defined(__FreeBSD__) + { + char *str; + vasprintf(&str, M_KMALLOC, vaf.fmt, args); + pr_debug("%s %s", func, str); + free(str, M_KMALLOC); + } +#endif trace_brcmf_dbg(level, func, &vaf); va_end(args); } diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/commonring.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/commonring.c index e44236cb210e..c0880fa12f57 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/commonring.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/commonring.c @@ -119,8 +119,13 @@ again: available = commonring->r_ptr - commonring->w_ptr; if (available > 1) { +#if defined(__linux__) ret_ptr = commonring->buf_addr + (commonring->w_ptr * commonring->item_len); +#elif defined(__FreeBSD__) + ret_ptr = (void *)((uintptr_t)commonring->buf_addr + + (commonring->w_ptr * commonring->item_len)); +#endif commonring->w_ptr++; if (commonring->w_ptr == commonring->depth) commonring->w_ptr = 0; @@ -155,8 +160,13 @@ again: available = commonring->r_ptr - commonring->w_ptr; if (available > 1) { +#if defined(__linux__) ret_ptr = commonring->buf_addr + (commonring->w_ptr * commonring->item_len); +#elif defined(__FreeBSD__) + ret_ptr = (void *)((uintptr_t)commonring->buf_addr + + (commonring->w_ptr * commonring->item_len)); +#endif *alloced = min_t(u16, n_items, available - 1); if (*alloced + commonring->w_ptr > commonring->depth) *alloced = commonring->depth - commonring->w_ptr; @@ -217,8 +227,13 @@ void *brcmf_commonring_get_read_ptr(struct brcmf_commonring *commonring, if (*n_items == 0) return NULL; +#if defined(__linux__) return commonring->buf_addr + *** 1219 LINES SKIPPED *** From nobody Fri Feb 27 02:30: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 4fMXNg51ZCz6T7kF for ; Fri, 27 Feb 2026 02:30: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNg32lqz41cj for ; Fri, 27 Feb 2026 02:30:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PTkKof3CAssLbAgZqaZ13MICmKV2tL3H8J9/HBBL6pU=; b=u/y8HUq5Ql/h5FFO5Go4mcenpyvGn8LB3Z6cdEp0If/MRirhA1CfwR2KzHxdfn5AeLTliE nQUohepS9y/EXTR50ABtzHwkD6i+bO75uHIxz62bAOiRlE7AtI9MH4Q2t2Acyx9uMuy6sQ UuYzfml/6tUzmyvmKZjg452nc6s/Sl6Bw3o20DxReqsuKaTc3NC2PHj4TzaYtKx3+SEY08 fo/5MdldXYUl9Pg69g2pA4qoYxgUWlr3wcXi3Dql1ZX5rWd++GgMeIU4MgP94v/HxOod7A sRY1S4liN3k/EkNb5yf4Ye0ctFx3i3kanuN9QoY192634MJt83EUKKMYsRX4YA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159411; a=rsa-sha256; cv=none; b=ubN3EbMz1xWlVvpDyH1dDiKPPpb7NFL1s8e38mBtpQG4rSYB+qw0JPDbqk5WUvH7BiBqmU hAhkWIgEimdo5XiiJQbZz9pbSImwfr0bo4IomxgPwze2+rgQ1O5iwUiN0AnN77WxEnxFmh 0wea6IQVZdDLgUOEtZrrNSmTON7Og6rHtQiC9dkWNOfux9WzX4M1JLWHnwuB7Z5ivOgC3G sPdIzMKpqcwRedunMj1/SMdmrMCqpp8Gw4yT9G6gPhu/SNX/D5SdXeQjs+ZAsI7nV0mcY6 fFNB+3TV8Gu6/Oxk4GJL3MGVhX/qmMWfBDRtsFK0ifQBRteyFVrzVEPHeyLAiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159411; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PTkKof3CAssLbAgZqaZ13MICmKV2tL3H8J9/HBBL6pU=; b=CZ1rQu9w6Vz0jBIltRjKK6mPmvYmYz7l6lfg7HNXG7hxgw67EKkYsZsxT3jZWNjJAYt13T vFr7p7KYAaqVtvwesNBGbiff/tN94Yu5RKb7eAB5a75DDgu9onV0mdjmdhdnyEKQZdaa0/ y+F2rh2OzFUaF9yv0ccCwritPrMAcIcnMYFNOiHqKfJu6kL5le94DgEFPe+EtNbqKama94 hce6QDmjoWvYCyRtc3UQ+Vw3JR55yv7hfX4FyCM8qXyx/qfnnT3Nyb44Kvjz/+4u4re8/5 16FugPGZ9OYebj9GbJu8JQaUcrH0TCMMFS+y5oFMLkH5b5wlSbXgyB9Y/0QE8A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNg2GMVzych for ; Fri, 27 Feb 2026 02:30:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22075 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: f77e10824dd5 - stable/15 - brcmfmac: make USB parts compile (and not panic right away) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f77e10824dd526652849e39d7e9879cfe3d25597 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:11 +0000 Message-Id: <69a101b3.22075.59152bfc@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f77e10824dd526652849e39d7e9879cfe3d25597 commit f77e10824dd526652849e39d7e9879cfe3d25597 Author: Bjoern A. Zeeb AuthorDate: 2026-02-09 01:07:01 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:07:25 +0000 brcmfmac: make USB parts compile (and not panic right away) Fix casts and consts and add one extra error check for a NULL pointer. This will require [a future] linuxkpi_usb. There are very few dongles I know off: - the original Raspberry PI USB dongle [1] - Cisco Linksys AE1200 The reason for making USB compile despite the limited 11n 150/300 Mbit/s adapters is that it is the simplest way to work on cfg80211 while on the road, not requiring a full PCIe slot or another SoC for SDIO. Sponsored by: The FreeBSD Foundation Hardware donated by: Martin Husemann (martin NetBSD.org) [1] (cherry picked from commit 22741535bcf4b003e41c0ecd22cca578359ba434) --- sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c | 6 +++ sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c | 52 ++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c index 9ec0c60b6da1..7e846cbf5157 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c @@ -387,12 +387,18 @@ brcmf_proto_bcdc_configure_addr_mode(struct brcmf_pub *drvr, int ifidx, static void brcmf_proto_bcdc_delete_peer(struct brcmf_pub *drvr, int ifidx, +#if defined(__FreeBSD__) + const +#endif u8 peer[ETH_ALEN]) { } static void brcmf_proto_bcdc_add_tdls_peer(struct brcmf_pub *drvr, int ifidx, +#if defined(__FreeBSD__) + const +#endif u8 peer[ETH_ALEN]) { } diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c index f0129d10d2b9..46b7cf4380e6 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c @@ -8,6 +8,9 @@ #include #include #include +#if defined(__FreeBSD__) +#include +#endif #include #include @@ -255,7 +258,11 @@ brcmf_usb_send_ctl(struct brcmf_usbdev_info *devinfo, u8 *buf, int len) devinfo->ctl_out_pipe, (unsigned char *) &devinfo->ctl_write, buf, size, +#if defined(__linux__) (usb_complete_t)brcmf_usb_ctlwrite_complete, +#elif defined(__FreeBSD__) + brcmf_usb_ctlwrite_complete, +#endif devinfo); ret = usb_submit_urb(devinfo->ctl_urb, GFP_ATOMIC); @@ -289,7 +296,11 @@ brcmf_usb_recv_ctl(struct brcmf_usbdev_info *devinfo, u8 *buf, int len) devinfo->ctl_in_pipe, (unsigned char *) &devinfo->ctl_read, buf, size, +#if defined(__linux__) (usb_complete_t)brcmf_usb_ctlread_complete, +#elif defined(__FreeBSD__) + brcmf_usb_ctlread_complete, +#endif devinfo); ret = usb_submit_urb(devinfo->ctl_urb, GFP_ATOMIC); @@ -768,7 +779,11 @@ static int brcmf_usb_dl_cmd(struct brcmf_usbdev_info *devinfo, u8 cmd, usb_rcvctrlpipe(devinfo->usbdev, 0), (unsigned char *) &devinfo->ctl_read, (void *) tmpbuf, size, +#if defined(__linux__) (usb_complete_t)brcmf_usb_sync_complete, devinfo); +#elif defined(__FreeBSD__) + brcmf_usb_sync_complete, devinfo); +#endif devinfo->ctl_completed = false; ret = usb_submit_urb(devinfo->ctl_urb, GFP_ATOMIC); @@ -873,7 +888,11 @@ brcmf_usb_dl_send_bulk(struct brcmf_usbdev_info *devinfo, void *buffer, int len) /* Prepare the URB */ usb_fill_bulk_urb(devinfo->bulk_urb, devinfo->usbdev, devinfo->tx_pipe, buffer, len, +#if defined(__linux__) (usb_complete_t)brcmf_usb_sync_complete, devinfo); +#elif defined(__FreeBSD__) + brcmf_usb_sync_complete, devinfo); +#endif devinfo->bulk_urb->transfer_flags |= URB_ZERO_PACKET; @@ -888,10 +907,19 @@ brcmf_usb_dl_send_bulk(struct brcmf_usbdev_info *devinfo, void *buffer, int len) } static int +#if defined(__linux__) brcmf_usb_dl_writeimage(struct brcmf_usbdev_info *devinfo, u8 *fw, int fwlen) +#elif defined(__FreeBSD__) +brcmf_usb_dl_writeimage(struct brcmf_usbdev_info *devinfo, const u8 *fw, int fwlen) +#endif { unsigned int sendlen, sent, dllen; +#if defined(__linux__) char *bulkchunk = NULL, *dlpos; +#elif defined(__FreeBSD__) + char *bulkchunk = NULL; + const u8 *dlpos; +#endif struct rdl_state_le state; u32 rdlstate, rdlbytes; int err = 0; @@ -973,7 +1001,11 @@ fail: return err; } +#if defined(__linux__) static int brcmf_usb_dlstart(struct brcmf_usbdev_info *devinfo, u8 *fw, int len) +#elif defined(__FreeBSD__) +static int brcmf_usb_dlstart(struct brcmf_usbdev_info *devinfo, const u8 *fw, int len) +#endif { int err; @@ -1049,7 +1081,11 @@ brcmf_usb_fw_download(struct brcmf_usbdev_info *devinfo) goto out; err = brcmf_usb_dlstart(devinfo, +#if defined(__linux__) (u8 *)devinfo->image, devinfo->image_len); +#elif defined(__FreeBSD__) + (const u8 *)devinfo->image, devinfo->image_len); +#endif if (err == 0) err = brcmf_usb_dlrun(devinfo); @@ -1080,12 +1116,20 @@ static void brcmf_usb_detach(struct brcmf_usbdev_info *devinfo) static int check_file(const u8 *headers) { +#if defined(__linux__) struct trx_header_le *trx; +#elif defined(__FreeBSD__) + const struct trx_header_le *trx; +#endif int actual_len = -1; brcmf_dbg(USB, "Enter\n"); /* Extract trx header */ +#if defined(__linux__) trx = (struct trx_header_le *) headers; +#elif defined(__FreeBSD__) + trx = (const struct trx_header_le *) headers; +#endif if (trx->magic != cpu_to_le32(TRX_MAGIC)) return -1; @@ -1187,6 +1231,10 @@ static void brcmf_usb_probe_phase2(struct device *dev, int ret, fw = fwreq->items[BRCMF_USB_FW_CODE].binary; kfree(fwreq); +#if defined(__FreeBSD__) + if (fw == NULL) + goto error; +#endif ret = check_file(fw->data); if (ret < 0) { @@ -1602,3 +1650,7 @@ int brcmf_usb_register(void) brcmf_dbg(USB, "Enter\n"); return usb_register(&brcmf_usbdrvr); } + +#if defined(__FreeBSD__) +MODULE_DEPEND(brcmfmac, linuxkpi_usb, 1, 1, 1); +#endif From nobody Fri Feb 27 02:30: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 4fMXNh5fXKz6T83q for ; Fri, 27 Feb 2026 02:30: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNh34sqz41gk for ; Fri, 27 Feb 2026 02:30:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dCwZ/FzhhNDY2ePtRWANQ3O+0tMy+vpeUGMnetAuCQc=; b=ItTKtaavSOlaCUb0bZvCJcoIXsTL/1UrH1XYt8NDQC/RFYxHgRHCKDNk9I5TkcEMF7bnIq Vx4dkuFvy4rweT8tscVzVhI0KH0tr5+tKXqSvoJ8kgoK2/2ciDRE3usCid1d7iYEy1z9az KvgSqy64Pb0V2xVfn/KM+lRjEzJ8NYrU0gxWdjk/mL7xeVBcs77x3YHCitQRQZU3X6Mabs XcyG5jUI1Cq4gFwLsJ632ZjJeaRP45rcDaplXPnoeeUvIhVUq7LNN0Im4N2+nZA2WPY0mQ ym9HMdbpwz2iZSIMxEpAb/EeVknUwI1K69fj/6rNS/MoviKyirwRbl8uXE69uA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159412; a=rsa-sha256; cv=none; b=VZpjEazDdWuS5zTKWwPaWrhD+sbOSZYOs4IKrzrz/TNS+HsE7WLtqECiIIUnZuc2zNn/5B gI9uPPzgyLc7wUw4ysM2W2tzeNhXmyX4YDwhik7K/nRr9euE70NrF2S260QtNo8z1fJImK TEryxm4Yz3kHxCYxrF2pjDH1YrHpjsoGjLaRA8MYbX4+LQ+WEuE5aynkPfLQDI6Bzuf3yq xVstZtebRqFyRTNqER/HyaLikJdDmQH+4ooWFTkdrwNxd/yq8pHuYq9auiJnn1xbjeLsWj Tc5RbYBzFeaWOGwjsykV49G6m1gfDbewASNIhwsUfl8nsw/LKecX1mDAroKViw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159412; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dCwZ/FzhhNDY2ePtRWANQ3O+0tMy+vpeUGMnetAuCQc=; b=uQ/9UQu11EYyddwX4OSSWIs30RgBL2D01Gs/NhpsKqkPfZWlhrOzHNAidacch2lGL27Xj/ SIegSlrcsVTs0YFSDjwNTINgrBBnx+sF+r8MB0iwTjRotkIOXZDGidylU2eWF/PH0XUOFO RJPrn6jQQ8ks4vjltxoSLcSQmwjZDEVaRmmrIntugRH70oqmtboRQhnSIQIAuOrhgG8WH9 PlJZtPKe0439DY6h9C4Vy5Ej83XhNVSs5UZ2YC7wc8Dl/G1qScVrdMdRDjOWBfRC0XMHQ9 Rwvno1ebVZmy2dUItb+rJpFZleeqCkCjTGJDD66Xhmbcg4ECpFdo8F4fBQkxkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNh2dnbzxRF for ; Fri, 27 Feb 2026 02:30:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21a56 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 9ec32912dc53 - stable/15 - brcmfmac: deal with bus attachments to the module Makefile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9ec32912dc53ac42c0e27b22ac5dd312fe8b7b8d Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:12 +0000 Message-Id: <69a101b4.21a56.28b689d3@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9ec32912dc53ac42c0e27b22ac5dd312fe8b7b8d commit 9ec32912dc53ac42c0e27b22ac5dd312fe8b7b8d Author: Bjoern A. Zeeb AuthorDate: 2026-02-09 01:08:42 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:07:33 +0000 brcmfmac: deal with bus attachments to the module Makefile As with LinuxKPI-based wireless drivers, e.g., rtw88, PCI depends on PCI being compiled into the kernel, SDIO will depend on MMCCAM in the kernel once supported, and USB can always be loaded. Sponsored by: The FreeBSD Foundation (cherry picked from commit 98c44ccb01d9461da477ec8d784c763e4d03fb36) --- sys/modules/brcm80211/brcmfmac/Makefile | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sys/modules/brcm80211/brcmfmac/Makefile b/sys/modules/brcm80211/brcmfmac/Makefile index 67955c96db53..b0c4d75a3d17 100644 --- a/sys/modules/brcm80211/brcmfmac/Makefile +++ b/sys/modules/brcm80211/brcmfmac/Makefile @@ -3,7 +3,7 @@ DEVDIR= ${SRCTOP}/sys/contrib/dev/broadcom/brcm80211/brcmfmac .PATH: ${DEVDIR} # Should split this up into a core driver and 3 more -WITH_PCIE=1 +WITH_PCI=1 WITH_SDIO=0 WITH_USB=0 @@ -20,21 +20,24 @@ SRCS+= fweh.c fwil.c fwvid.c p2p.c pno.c proto.c vendor.c xtlv.c SRCS+= wcc/core.c cyw/core.c bca/core.c -.if defined(WITH_PCIE) && ${WITH_PCIE} > 0 -CFLAGS+= -DCONFIG_BRCMFMAC_PCIE=1 +# PCI parts; PCI needs to be compiled into the kernel and cannot be loaded. +.if defined(WITH_PCI) && ${WITH_PCI} > 0 && ${KERN_OPTS:MDEV_PCI} SRCS+= pcie.c msgbuf.c commonring.c flowring.c +CFLAGS+= -DCONFIG_BRCMFMAC_PCIE=1 .endif -.if defined(WITH_SDIO) && ${WITH_SDIO} > 0 -CFLAGS+= -DCONFIG_BRCMFMAC_SDIO=1 +# SDIO parts; SDIO depends on an MMCCAM kernel. +.if defined(WITH_SDIO) && ${WITH_SDIO} > 0 && ${KERN_OPTS:MMMCCAM} SRCS+= sdio.c bcmsdh.c SRCS+= sdio_if.h SRCS+= sdiodevs.h +CFLAGS+= -DCONFIG_BRCMFMAC_SDIO=1 .endif +# USB parts; USB can be loaded and is unconditional on any kernel config. .if defined(WITH_USB) && ${WITH_USB} > 0 -CFLAGS+= -DCONFIG_BRCMFMAC_USB=1 SRCS+= usb.c +CFLAGS+= -DCONFIG_BRCMFMAC_USB=1 .endif .if (defined(WITH_SDIO) && ${WITH_SDIO} > 0) || \ @@ -74,7 +77,7 @@ CFLAGS+= ${LINUXKPI_INCLUDES} CFLAGS+= -ferror-limit=0 #CFLAGS+= -DCONFIG_BRCM_TRACING=${WITH_TRACING} -CFLAGS+= -DCONFIG_BRCMFMAC_PROTO_MSGBUF=${WITH_PCIE} +CFLAGS+= -DCONFIG_BRCMFMAC_PROTO_MSGBUF=${WITH_PCI} CFLAGS+= -DCONFIG_BRCMDBG=${WITH_DEBUG} #CFLAGS+= -DCONFIG_DMI=${WITH_DMI} From nobody Fri Feb 27 02:30: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 4fMXNk17RCz6T86X for ; Fri, 27 Feb 2026 02:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNj3qXqz41kB for ; Fri, 27 Feb 2026 02:30:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eL8uyPMjQOyKflsNn7YtQ5wmn17kPqvVNv4jIQMookk=; b=unxFL3EwKfFQEROaM1PHxPdUzV0ezG2R936CO+YGqk9M9+w/raJ37XlFrV8MENCIWvsd1/ wg9wqYkkZZGYhlyElsJcJjxQTvgzi/wE7xuaNYEBW/glSze91Pq4UQMRI1nPtSBUVlfS0Y Pz4mOL9RjvSl7KCg7SHMO/yk9V2u8+B8cz4i1Coz0AK+YVyByb3IGyNKlNVoatzvBF47Zd v6e5HTNh/sL2HZtWKTFlPmVxJKM2jr4C5WaOLxBNoGetscRBzSLi5bnlEZbBt3tBD/Jg+1 korSoXbkriPvmX1k1/P/GONL9AOOPQ+ipKVXF1xCJTNA6ANtFySpQzOPqxs4mw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159413; a=rsa-sha256; cv=none; b=PlzIRbFGcpdo/Gw9h2T8V3xZbCU+BJ8gAst8gbE8oGeYJyfD8D99shNbZK6cxgMZcDNcKx 0qOru3OVevowx1rA7tPyldvF/Z4H+LQRF1bjm/EjoSSE8pNFAmvCDlxR/hvaJZ6cYC5Eoa WYlyYL60EE2X0/177jF8Qa2COZcPBIqylzhd6XhSNMgJwokMxmez4EUUkhKm9YzT+4ngmm uaI6wZGypmOEF8sNmBVT0Kx/7EKSnShOsnAi4iWIVkIWY31xCmiB8n/SsBT0u8EV0dquTn jeeY2Vlm9cVIgVFVuSkgyyhilNpiJdww+Y2yVd6eDGsKRxXsZeIySYHpi/3GWg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159413; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eL8uyPMjQOyKflsNn7YtQ5wmn17kPqvVNv4jIQMookk=; b=esNjzDReXxQ68bvHWICoZ9STymErmnweajvCK0PvwI89Ntvy5QT83lXZM0d/OhDIAagDBs T7zC427RYNrWGqiiolNyf013Lz0ETAt9e4lC2usMtcBZItl3SQMrZwZ9+iGtR7ccaIILS9 gOf+7wioEi6dHKpHho83UhxtMt4BM0gy+9Trhx5yTWY2GxwMBu7cHGysOvT7UbqQu4EekE NRWSiqgpBylBJN17cXBHeFsriBDEgxEmpkp6w21HcERyBBVP+NvndxSKk7ac89oaB3+Q3g 8JYAtyYqvxY7cdjy07bVOXMzvaJi7Zlyzi0HRsDM+w83BqVPoJk8tjuq467vKQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNj3GW7zyZn for ; Fri, 27 Feb 2026 02:30:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 212de by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 927df9ea55a4 - stable/15 - brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 927df9ea55a403bbd7e3a146e23ce9eb1884f2db Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:13 +0000 Message-Id: <69a101b5.212de.30203ff6@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=927df9ea55a403bbd7e3a146e23ce9eb1884f2db commit 927df9ea55a403bbd7e3a146e23ce9eb1884f2db Author: Bjoern A. Zeeb AuthorDate: 2026-02-10 23:56:40 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:07:38 +0000 brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 24d479d26b25bce5faea3ddd9fa8f3a6c3129ea7 ( tag: v6.19-rc6 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit 9375e11f079d725d42c5b431de33044088ad14f7) --- .../dev/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 +- .../dev/broadcom/brcm80211/brcmfmac/cfg80211.c | 26 ++++++++++++++++++-- sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c | 4 ++-- sys/contrib/dev/broadcom/brcm80211/brcmfmac/dmi.c | 14 +++++++++++ .../dev/broadcom/brcm80211/brcmfmac/firmware.c | 14 +++++++---- sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c | 28 ++++++++-------------- sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.h | 3 +-- sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c | 8 +++---- .../dev/broadcom/brcm80211/include/brcm_hw_ids.h | 1 - 9 files changed, 65 insertions(+), 35 deletions(-) diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c index 8ab7d1e34a6e..6a3f187320fc 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -997,9 +997,9 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = { BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356, WCC), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359, WCC), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43751, WCC), + BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43752, WCC), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373, CYW), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43012, CYW), - BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752, CYW), BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_89359, CYW), CYW_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43439, CYW), { /* end: all zeroes */ } diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c index 35f68b370714..43afaa5249a6 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5792,8 +5792,7 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, #endif le32_to_cpu(af_params->channel)); - ack = brcmf_p2p_send_action_frame(cfg, cfg_to_ndev(cfg), - af_params); + ack = brcmf_p2p_send_action_frame(vif->ifp, af_params); cfg80211_mgmt_tx_status(wdev, *cookie, buf, len, ack, GFP_KERNEL); @@ -6131,6 +6130,26 @@ static int brcmf_cfg80211_del_pmk(struct wiphy *wiphy, struct net_device *dev, return brcmf_set_pmk(ifp, NULL, 0); } +static int brcmf_cfg80211_change_bss(struct wiphy *wiphy, struct net_device *dev, + struct bss_parameters *params) +{ + struct brcmf_if *ifp = netdev_priv(dev); + int ret = 0; + + /* In AP mode, the "ap_isolate" value represents + * 0 = allow low-level bridging of frames between associated stations + * 1 = restrict low-level bridging of frames to isolate associated stations + * -1 = do not change existing setting + */ + if (params->ap_isolate >= 0) { + ret = brcmf_fil_iovar_int_set(ifp, "ap_isolate", params->ap_isolate); + if (ret < 0) + brcmf_err("ap_isolate iovar failed: ret=%d\n", ret); + } + + return ret; +} + static struct cfg80211_ops brcmf_cfg80211_ops = { .add_virtual_intf = brcmf_cfg80211_add_iface, .del_virtual_intf = brcmf_cfg80211_del_iface, @@ -6178,6 +6197,7 @@ static struct cfg80211_ops brcmf_cfg80211_ops = { .update_connect_params = brcmf_cfg80211_update_conn_params, .set_pmk = brcmf_cfg80211_set_pmk, .del_pmk = brcmf_cfg80211_del_pmk, + .change_bss = brcmf_cfg80211_change_bss, }; struct cfg80211_ops *brcmf_cfg80211_get_ops(struct brcmf_mp_device *settings) @@ -7840,6 +7860,8 @@ static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp) BIT(NL80211_BSS_SELECT_ATTR_BAND_PREF) | BIT(NL80211_BSS_SELECT_ATTR_RSSI_ADJUST); + wiphy->bss_param_support = WIPHY_BSS_PARAM_AP_ISOLATE; + wiphy->flags |= WIPHY_FLAG_NETNS_OK | WIPHY_FLAG_PS_ON_BY_DEFAULT | WIPHY_FLAG_HAVE_AP_SME | diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c index 9074ab49e806..4239f2b21e54 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c @@ -738,8 +738,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci) case BRCM_CC_4364_CHIP_ID: case CY_CC_4373_CHIP_ID: return 0x160000; - case CY_CC_43752_CHIP_ID: case BRCM_CC_43751_CHIP_ID: + case BRCM_CC_43752_CHIP_ID: case BRCM_CC_4377_CHIP_ID: return 0x170000; case BRCM_CC_4378_CHIP_ID: @@ -1452,7 +1452,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub) return (reg & CC_SR_CTL0_ENABLE_MASK) != 0; case BRCM_CC_4359_CHIP_ID: case BRCM_CC_43751_CHIP_ID: - case CY_CC_43752_CHIP_ID: + case BRCM_CC_43752_CHIP_ID: case CY_CC_43012_CHIP_ID: addr = CORE_CC_REG(pmu->base, retention_ctl); reg = chip->ops->read32(chip->ctx, addr); diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/dmi.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/dmi.c index c3a602197662..abe7f6501e5e 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/dmi.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/dmi.c @@ -24,6 +24,10 @@ static const struct brcmf_dmi_data acepc_t8_data = { BRCM_CC_4345_CHIP_ID, 6, "acepc-t8" }; +static const struct brcmf_dmi_data acer_a1_840_data = { + BRCM_CC_43340_CHIP_ID, 2, "acer-a1-840" +}; + /* The Chuwi Hi8 Pro uses the same Ampak AP6212 module as the Chuwi Vi8 Plus * and the nvram for the Vi8 Plus is already in linux-firmware, so use that. */ @@ -91,6 +95,16 @@ static const struct dmi_system_id dmi_platform_data[] = { }, .driver_data = (void *)&acepc_t8_data, }, + { + /* Acer Iconia One 8 A1-840 (non FHD version) */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Insyde"), + DMI_MATCH(DMI_PRODUCT_NAME, "BayTrail"), + /* Above strings are too generic also match BIOS date */ + DMI_MATCH(DMI_BIOS_DATE, "04/01/2014"), + }, + .driver_data = (void *)&acer_a1_840_data, + }, { /* Chuwi Hi8 Pro with D2D3_Hi8Pro.233 BIOS */ .matches = { diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c index aa8f05e822a0..0ad9abd67fd6 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c @@ -578,12 +578,16 @@ static int brcmf_fw_request_nvram_done(const struct firmware *fw, void *ctx) #endif data_len = fw->size; } else { - if ((data = bcm47xx_nvram_get_contents(&data_len))) + data = bcm47xx_nvram_get_contents(&data_len); + if (data) { free_bcm47xx_nvram = true; - else if ((data = brcmf_fw_nvram_from_efi(&data_len))) - kfree_nvram = true; - else if (!(cur->flags & BRCMF_FW_REQF_OPTIONAL)) - goto fail; + } else { + data = brcmf_fw_nvram_from_efi(&data_len); + if (data) + kfree_nvram = true; + else if (!(cur->flags & BRCMF_FW_REQF_OPTIONAL)) + goto fail; + } } if (data) diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c index e34ba5756af1..21237fa7e229 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.c @@ -1544,6 +1544,7 @@ int brcmf_p2p_notify_action_tx_complete(struct brcmf_if *ifp, /** * brcmf_p2p_tx_action_frame() - send action frame over fil. * + * @ifp: interface to transmit on. * @p2p: p2p info struct for vif. * @af_params: action frame data/info. * @@ -1553,12 +1554,11 @@ int brcmf_p2p_notify_action_tx_complete(struct brcmf_if *ifp, * The WLC_E_ACTION_FRAME_COMPLETE event will be received when the action * frame is transmitted. */ -static s32 brcmf_p2p_tx_action_frame(struct brcmf_p2p_info *p2p, +static s32 brcmf_p2p_tx_action_frame(struct brcmf_if *ifp, + struct brcmf_p2p_info *p2p, struct brcmf_fil_af_params_le *af_params) { struct brcmf_pub *drvr = p2p->cfg->pub; - struct brcmf_cfg80211_vif *vif; - struct brcmf_p2p_action_frame *p2p_af; s32 err = 0; brcmf_dbg(TRACE, "Enter\n"); @@ -1567,14 +1567,7 @@ static s32 brcmf_p2p_tx_action_frame(struct brcmf_p2p_info *p2p, clear_bit(BRCMF_P2P_STATUS_ACTION_TX_COMPLETED, &p2p->status); clear_bit(BRCMF_P2P_STATUS_ACTION_TX_NOACK, &p2p->status); - /* check if it is a p2p_presence response */ - p2p_af = (struct brcmf_p2p_action_frame *)af_params->action_frame.data; - if (p2p_af->subtype == P2P_AF_PRESENCE_RSP) - vif = p2p->bss_idx[P2PAPI_BSSCFG_CONNECTION].vif; - else - vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif; - - err = brcmf_fil_bsscfg_data_set(vif->ifp, "actframe", af_params, + err = brcmf_fil_bsscfg_data_set(ifp, "actframe", af_params, sizeof(*af_params)); if (err) { bphy_err(drvr, " sending action frame has failed\n"); @@ -1726,16 +1719,14 @@ static bool brcmf_p2p_check_dwell_overflow(u32 requested_dwell, /** * brcmf_p2p_send_action_frame() - send action frame . * - * @cfg: driver private data for cfg80211 interface. - * @ndev: net device to transmit on. + * @ifp: interface to transmit on. * @af_params: configuration data for action frame. */ -bool brcmf_p2p_send_action_frame(struct brcmf_cfg80211_info *cfg, - struct net_device *ndev, +bool brcmf_p2p_send_action_frame(struct brcmf_if *ifp, struct brcmf_fil_af_params_le *af_params) { + struct brcmf_cfg80211_info *cfg = ifp->drvr->config; struct brcmf_p2p_info *p2p = &cfg->p2p; - struct brcmf_if *ifp = netdev_priv(ndev); struct brcmf_fil_action_frame_le *action_frame; struct brcmf_config_af_params config_af_params; struct afx_hdl *afx_hdl = &p2p->afx_hdl; @@ -1880,7 +1871,7 @@ bool brcmf_p2p_send_action_frame(struct brcmf_cfg80211_info *cfg, linux_msleep(P2P_AF_RETRY_DELAY_TIME); #endif - ack = !brcmf_p2p_tx_action_frame(p2p, af_params); + ack = !brcmf_p2p_tx_action_frame(ifp, p2p, af_params); tx_retry++; dwell_overflow = brcmf_p2p_check_dwell_overflow(requested_dwell, dwell_jiffies); @@ -2240,7 +2231,6 @@ static struct wireless_dev *brcmf_p2p_create_p2pdev(struct brcmf_p2p_info *p2p, WARN_ON(p2p_ifp->bsscfgidx != bsscfgidx); - init_completion(&p2p->send_af_done); INIT_WORK(&p2p->afx_hdl.afx_work, brcmf_p2p_afx_handler); init_completion(&p2p->afx_hdl.act_frm_scan); init_completion(&p2p->wait_next_af); @@ -2536,6 +2526,8 @@ s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg, bool p2pdev_forced) pri_ifp = brcmf_get_ifp(cfg->pub, 0); p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif = pri_ifp->vif; + init_completion(&p2p->send_af_done); + if (p2pdev_forced) { err_ptr = brcmf_p2p_create_p2pdev(p2p, NULL, NULL); if (IS_ERR(err_ptr)) { diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.h b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.h index d2ecee565bf2..d3137ebd7158 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.h +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/p2p.h @@ -168,8 +168,7 @@ int brcmf_p2p_notify_action_frame_rx(struct brcmf_if *ifp, int brcmf_p2p_notify_action_tx_complete(struct brcmf_if *ifp, const struct brcmf_event_msg *e, void *data); -bool brcmf_p2p_send_action_frame(struct brcmf_cfg80211_info *cfg, - struct net_device *ndev, +bool brcmf_p2p_send_action_frame(struct brcmf_if *ifp, struct brcmf_fil_af_params_le *af_params); bool brcmf_p2p_scan_finding_common_channel(struct brcmf_cfg80211_info *cfg, struct brcmf_bss_info_le *bi); diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c index 8a0bad5119a0..8cf9d7e7c3f7 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c @@ -655,10 +655,10 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = { BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356), BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359), BRCMF_FW_ENTRY(BRCM_CC_43751_CHIP_ID, 0xFFFFFFFF, 43752), + BRCMF_FW_ENTRY(BRCM_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752), BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373), BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012), BRCMF_FW_ENTRY(CY_CC_43439_CHIP_ID, 0xFFFFFFFF, 43439), - BRCMF_FW_ENTRY(CY_CC_43752_CHIP_ID, 0xFFFFFFFF, 43752) }; #define TXCTL_CREDITS 2 @@ -3426,8 +3426,8 @@ err: static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus) { if (bus->ci->chip == BRCM_CC_43751_CHIP_ID || - bus->ci->chip == CY_CC_43012_CHIP_ID || - bus->ci->chip == CY_CC_43752_CHIP_ID) + bus->ci->chip == BRCM_CC_43752_CHIP_ID || + bus->ci->chip == CY_CC_43012_CHIP_ID) return true; else return false; @@ -4278,8 +4278,8 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err, switch (sdiod->func1->device) { case SDIO_DEVICE_ID_BROADCOM_43751: + case SDIO_DEVICE_ID_BROADCOM_43752: case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373: - case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752: brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n", CY_4373_F2_WATERMARK); brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK, diff --git a/sys/contrib/dev/broadcom/brcm80211/include/brcm_hw_ids.h b/sys/contrib/dev/broadcom/brcm80211/include/brcm_hw_ids.h index b39c5c1ee18b..df3b67ba4db2 100644 --- a/sys/contrib/dev/broadcom/brcm80211/include/brcm_hw_ids.h +++ b/sys/contrib/dev/broadcom/brcm80211/include/brcm_hw_ids.h @@ -60,7 +60,6 @@ #define CY_CC_4373_CHIP_ID 0x4373 #define CY_CC_43012_CHIP_ID 43012 #define CY_CC_43439_CHIP_ID 43439 -#define CY_CC_43752_CHIP_ID 43752 /* USB Device IDs */ #define BRCM_USB_43143_DEVICE_ID 0xbd1e From nobody Fri Feb 27 02:30: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 4fMXNk5YVBz6T7xp for ; Fri, 27 Feb 2026 02:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNk43vRz41pJ for ; Fri, 27 Feb 2026 02:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rPFLUYb1YLObYh+UNXkk+ZoSaplIQHhviP2JSAMjXxA=; b=avUBPDelE+R7TwH2mVUVo395GzzPeXq8MWhJAg6tDEGU83HrHvjsYjsxOolRy1hUemsY4n dkNhdGopd2t3ZNbBEYswZOocn0xlYcUIbO5ETRtaBG/R7OYHHwIiC2211qNsX+8FPiSdLy So8zEq1GV86JUGRZhM5BLw8EouenfH9f7eDzArUUGkVYJ19atlFS1cDkbQikX2xN5Q4b3d gK7RUYfmeEdiViyo8I9jw4ZvA6fWU8Uj0XPfUerPxOrkZXpHBjqcrCvSeHztCfkHKvj5/2 AWPDEih0ofztQATfGZZqTccTvIyWoSGjJzddAlN6BrLkeNs5ZJo4UTtqA3vTFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159414; a=rsa-sha256; cv=none; b=lwOrZ6sbZKrmdxTUu8I2lqeMJ9moh3t/ovBiYsX5McYeYkR63wq4qY68UtEEgoYdVxfZZN P7kipXjGopQXY2DHvetNLOkCCj7Ns6/6r/y6sg5k+wOHmseb8tUv727kN7/kfM5fxUF/ve kNSeuOrKKcF4qh31O1J9oq7IQktNKNJdcjrP5TjNpkMvHpkBks7KJajZhBbDmLtF3Z4Kb9 t8hXZn6izFdVzmfBKYRCo+FkIt7VVTMX/zY2R4gyJ4w+VY93tQZGhp/YAsESG1FEvVXChf J/vwv7ZaC70pco/4fWrK1CyYi2TSsWxIrCbxSA569kXAnk+tQfb/MCl4Juf1kw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rPFLUYb1YLObYh+UNXkk+ZoSaplIQHhviP2JSAMjXxA=; b=aQggMxNzHH4QjSXKDnEQiLOYGI0dVXHOTZNSa3ZfcrB+M568Xm+CLxFTUK1tyl9qDmz6KJ Od5ID3ndE8Ol5QCR4zTgbDuea3RYzzjhRXunXiSv2XzHQkPjyraPjjqiqvMRxIrh+zlQ2u 9rnGp1jvXIW+3pJeKnS9vcgKVc/8QNrShrHKwGC/miiODtERUTSeG2uGmt/zisr9K/+elA Fy+wXVrEF42cQNiWpuf7lMqeTMVCb95kpdaQUPOr9miLBjmqwP9iiNXdqFMwWtOwSkfvlb RS8L453LzeCZY1Z9jUXVQKUgcdiWgXP/S8Vrwtf5dbt86oS3Bx6me53FdbfDFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNk3d0Qzy7C for ; Fri, 27 Feb 2026 02:30:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20feb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 9291447874e3 - stable/15 - LinuxKPI: 802.11: add cfg80211 (*change_bss) and related structs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 9291447874e33c04e38228d3a5d9080de083f064 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:14 +0000 Message-Id: <69a101b6.20feb.2c8ab2a8@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9291447874e33c04e38228d3a5d9080de083f064 commit 9291447874e33c04e38228d3a5d9080de083f064 Author: Bjoern A. Zeeb AuthorDate: 2026-02-11 00:44:36 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:07:44 +0000 LinuxKPI: 802.11: add cfg80211 (*change_bss) and related structs Needed by brcmfmac v6.19. Sponsored by: The FreeBSD Foundation (cherry picked from commit b02def7c4a10fa3e2b05ebec379c5c634b87484d) --- sys/compat/linuxkpi/common/include/net/cfg80211.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index 94d34fb9dc0c..5c8c914bdee7 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1021,6 +1021,14 @@ struct survey_info { /* net80211::struct ieee80211_channel_survey */ struct linuxkpi_ieee80211_channel *channel; }; +enum wiphy_bss_param_flags { + WIPHY_BSS_PARAM_AP_ISOLATE = BIT(0), +}; + +struct bss_parameters { + int ap_isolate; +}; + enum wiphy_vendor_cmd_need_flags { WIPHY_VENDOR_CMD_NEED_NETDEV = 0x01, WIPHY_VENDOR_CMD_NEED_RUNNING = 0x02, @@ -1142,6 +1150,8 @@ struct wiphy { int n_radio; const struct wiphy_radio *radio; + uint32_t bss_param_support; /* enum wiphy_bss_param_flags */ + int features, hw_version; int interface_modes, max_match_sets, max_remain_on_channel_duration, max_scan_ssids, max_sched_scan_ie_len, max_sched_scan_plan_interval, max_sched_scan_plan_iterations, max_sched_scan_plans, max_sched_scan_reqs, max_sched_scan_ssids; int num_iftype_ext_capab; @@ -1224,7 +1234,7 @@ struct cfg80211_ops { int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *); int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, int, int); - + int (*change_bss)(struct wiphy *, struct net_device *, struct bss_parameters *); }; From nobody Fri Feb 27 02:30: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 4fMXNl6lP0z6T81s for ; Fri, 27 Feb 2026 02:30:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNl4m9Jz41rm for ; Fri, 27 Feb 2026 02:30:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=POZUOwtXGrVWLUuI/tpPym0Xy5OsUEt3cqT8Ep8YYag=; b=cYML4ilLZ9Vvchmw4sbVuz+qeo++t1LkkBsGo9osKoUhzX2G8JitJ7rQAqf7zlBQnz24uT a4KyyqkAgmqFI8bb/TEyIi2ZXQLflvdaj9DaC+Fbi41nEvU4vBda3dc1umKLQpW0ThFtXT 6iqtSg4r4BVNa+ywlRI6blVXV+SZ4fApbftBP5AL+q0Evr2jvCHGLhTZwochA045AznJfW P9jgozkvFOn3gvPW6QkiqZ4QwZiR+C3qqoiYFrw4TVlrITUQe83gPko9tfz9Qxju/lPgr8 U51Fu+Z3GJtk8j3sAKhfOYxHXq/GDCnJI6JIdHoKU73Yql1lmnuViJnI12pRiA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159415; a=rsa-sha256; cv=none; b=CzHJOMZR1mkoyC+vB5KLSXAgNb7UywgBp/vpHvs9lkh7mjjmjrTtzMfo0KzgUfVoYrkxmC DyGXAaQ8pxBVjYX2hRJD9dhAlVCEmTEasNYRP7nhEc7xYfXpYAQikjNdVIB46qRyG2ABGS 9dVj6sH45h6KQzLU2bFhDvz8nbYlbaehiNxSlEuREWx+FLREKBfzo1OupP7Z5LTw2sksoZ s2/qpb5u6qN/UFMTdX4CyctjeEyrV21ct4ysKTdB2djVQLSRcJccG8gF2TETjy5p2YbX9i C6tqwOTu+qesPLMkXhfEXUVrAQ8+MuZa8jP0yKHt3IPd8MsjOjRwtrF7Qh0jvg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=POZUOwtXGrVWLUuI/tpPym0Xy5OsUEt3cqT8Ep8YYag=; b=tx/6D0uRThx19s/O2qajrZFJ8Iqwh9AC5WQMr651totLVNv06x+s8ZKtLSmxKS4nkTV9ul 5J0JZaCS/T63G/2sDx5nWyx84pzKic3PneIDHSFKZ71JpPBfVoWIh4HuSX3YDyY1Wz+Lw0 vqbIzDmLUB9DcSn44sjvV9tfjK4sHA9RFwtlOtXk2kLsu0YelKbC/+ZJgpPCOVOzr2J/DB SF3iTLWOJFAx44lfZwwQJCRoG1r9OR+s2SniL+RXFe5o+tnMVnw5BUeb5d2YVD8dDtWhgR m5RGotYM6Yb0jYoLuuNs+OjJ9s/W96wze3vKSlXJhaRrGNYq9mXrrGWX+ZY8Jw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNl41kczycl for ; Fri, 27 Feb 2026 02:30:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21afb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 68dceb7b8f0e - stable/15 - qoriq / nxp: fix spelling in device_set_desc() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 68dceb7b8f0e48c0878d3678b93d8625d98f58ef Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:15 +0000 Message-Id: <69a101b7.21afb.47032837@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=68dceb7b8f0e48c0878d3678b93d8625d98f58ef commit 68dceb7b8f0e48c0878d3678b93d8625d98f58ef Author: Bjoern A. Zeeb AuthorDate: 2026-02-19 23:10:34 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:08:13 +0000 qoriq / nxp: fix spelling in device_set_desc() The product series is called NXP QorIQ Layerscape. Remove the extra 'e. [1] Fix spelling of NXP, which is not NPX, in two places. [2] Reviewed by: mmel, emaste [1] Reported by: Kevin Bowling (kevin.bowling kev009.com), qoriq_dw_pci.c [2] Differential Revision: https://reviews.freebsd.org/D55388 (cherry picked from commit a4e30909ec983f7986954e6c509ea21422561d84) (cherry picked from commit c3ed2f3e414497ab3cf6ade17e52a87f07a547e6) --- sys/arm64/conf/std.nxp | 2 +- sys/arm64/qoriq/qoriq_dw_pci.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/conf/std.nxp b/sys/arm64/conf/std.nxp index b4552fadaff4..367d058bf666 100644 --- a/sys/arm64/conf/std.nxp +++ b/sys/arm64/conf/std.nxp @@ -6,7 +6,7 @@ options SOC_NXP_LS # I2C -device pca954x # NPX I2C bus multiplexer / switches +device pca954x # NXP I2C bus multiplexer / switches device pcf8563 # NXP Real-time clock/calendar device tca64xx # NXP I2C gpio expander device pcf85063 # NXP Real-time clock diff --git a/sys/arm64/qoriq/qoriq_dw_pci.c b/sys/arm64/qoriq/qoriq_dw_pci.c index b6eecba48c39..f4ca024c941f 100644 --- a/sys/arm64/qoriq/qoriq_dw_pci.c +++ b/sys/arm64/qoriq/qoriq_dw_pci.c @@ -176,7 +176,7 @@ qorif_dw_pci_probe(device_t dev) if (ofw_bus_search_compatible(dev, compat_data)->ocd_data == 0) return (ENXIO); - device_set_desc(dev, "NPX Layaerscape PCI-E Controller"); + device_set_desc(dev, "NXP QorIQ Layerscape PCI-E Controller"); return (BUS_PROBE_DEFAULT); } From nobody Fri Feb 27 02:30: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 4fMXNn03s3z6T841 for ; Fri, 27 Feb 2026 02:30: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNm4vVcz422f for ; Fri, 27 Feb 2026 02:30:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159416; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KJzS/Kek9bKa+XAcLE5HBe0PAuw1K4c3mEgUzBTauLI=; b=jzXHaFlwXDlEn9fJssbggEjEFLqP1Mtf+YCLfBAsG8XNYXVTNcomERnHJFMZFPVkq2yM1R y04qRVXjvyKwIVBgot1OXPAAiEOiXR3pjUfnzZDC+Z+WvpZJum6wJ6fHd4SEHxV45803wQ p614Gty8hKj694BOZWsdgTsNJeEIyNiMUzEDqCRcjEbUX8ICaTXMKgjC+wYPnkKM5y4g0D esRyrF5nSoC7MxWPKM83qAKnz1G7P/Z7V7or2A8gMKpOKLIeEA1wlluTxm0Hf8zUidIkut fbDKzr1HR8ZF8smqIvTrgBxg17EXPMzxsgbJFUDmdO0svq/gwdoql5Dq2x7nuw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159416; a=rsa-sha256; cv=none; b=snEx42x7GEMJJDI7TZfxotsHvC70BZdUZVetrlKwPjtmJfyivanj0LTK1ygvZrxX1Y+kL7 /c7pjOF37sPzSXa5nHbcowVKSpJUVMje70hm7mvySWuHTCTAdx+Vj6vg5UYnRtdb7MJP3I PIMarddDZmz8q3fyRvcoJ8hlRRbNHvGqb+ESbn0YhuoLnLKiA8bje7RnrkBrsHh+rwUGPO 4u/HsLfq0m0z8ykp+TRBtzqRJ0SCallU3uLwVlMlixD6EHRJ0HXmUcjnM2f330+TGvyOhz O183NvOkx4fzCbZ0Jp0Z57tXWAzaqu6D5z+0lA3NIEHAij3FTpCXoQ2VnDsRkQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159416; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KJzS/Kek9bKa+XAcLE5HBe0PAuw1K4c3mEgUzBTauLI=; b=J58/vKW++t7GHhqEGXvaPaEP2B9f/KfnGGW4kJCGInwsXYLbABD5gx+qaZL1YBCTlJW+nS lmrKSJm1GIY+cIYPx61mxcWAph0mUOYwauYSgfE64I3BoCvwpoXvXPJfNhwIvPpkoUyxFi U2mv5D0sOJeO6Pyf36QHZDoKb64OPtAhwTGtgFl6syT6I0JAwdWwV665kehQE2b3uz1RRP rzemDhtf+KK5HuMIMot99IErZmgMas0FX3l173VWAXnLwbI5MJNBTGSz6Z4oQXKiqeQ3Od O4LKtsWyU7cFfeXjgrj7yseGdIYWyhyNLmECC2Lw50Umsg/KGoyOOOi3js1vHA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNm4N2jzycm for ; Fri, 27 Feb 2026 02:30:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21944 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: ca1e0f9d60c9 - stable/15 - ofed: reduce usage of struct dma_attrs *dma_attrs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ca1e0f9d60c9328164c7018592fa9de513e65b08 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:16 +0000 Message-Id: <69a101b8.21944.7f24b31@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ca1e0f9d60c9328164c7018592fa9de513e65b08 commit ca1e0f9d60c9328164c7018592fa9de513e65b08 Author: Bjoern A. Zeeb AuthorDate: 2026-02-19 23:12:29 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:09:17 +0000 ofed: reduce usage of struct dma_attrs *dma_attrs ib_verbs.h still uses struct dma_attrs *dma_attrs everywhere. It is beyond my knowledge when that struct got deprecated upstream but it is still supported by our LinuxKPI. The problem is that the functions called with that argument (dma_map_single_attrs, dma_unmap_single_attrs, dma_map_sg_attrs, dma_unmap_sg_attrs) so far are #defines in LinuxKPI and drop the last argument (attrs) so it was never a problem. In preparation to pass the attrs to the actual implementation in LinuxKPI, which has gained support for them, we now pass dma_sttrs->flags which is the expected unsigned long bit field. If anyone has serious interest in updating our ofed implementation they could look into this some more and remove the usage of struct dma_attrs entirely. Sponsored by: The FreeBSD Foundation Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D55390 (cherry picked from commit 5edf24aac1d0978d37d62594f42d87c9f118622b) --- sys/ofed/include/rdma/ib_verbs.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/ofed/include/rdma/ib_verbs.h b/sys/ofed/include/rdma/ib_verbs.h index 78aa0af4fa2b..0c40a6f18f7c 100644 --- a/sys/ofed/include/rdma/ib_verbs.h +++ b/sys/ofed/include/rdma/ib_verbs.h @@ -3539,7 +3539,7 @@ static inline u64 ib_dma_map_single_attrs(struct ib_device *dev, struct dma_attrs *dma_attrs) { return dma_map_single_attrs(dev->dma_device, cpu_addr, size, - direction, dma_attrs); + direction, dma_attrs->flags); } static inline void ib_dma_unmap_single_attrs(struct ib_device *dev, @@ -3548,7 +3548,7 @@ static inline void ib_dma_unmap_single_attrs(struct ib_device *dev, struct dma_attrs *dma_attrs) { return dma_unmap_single_attrs(dev->dma_device, addr, size, - direction, dma_attrs); + direction, dma_attrs->flags); } /** @@ -3630,7 +3630,7 @@ static inline int ib_dma_map_sg_attrs(struct ib_device *dev, dma_attrs); else return dma_map_sg_attrs(dev->dma_device, sg, nents, direction, - dma_attrs); + dma_attrs->flags); } static inline void ib_dma_unmap_sg_attrs(struct ib_device *dev, @@ -3643,7 +3643,7 @@ static inline void ib_dma_unmap_sg_attrs(struct ib_device *dev, dma_attrs); else dma_unmap_sg_attrs(dev->dma_device, sg, nents, direction, - dma_attrs); + dma_attrs->flags); } /** * ib_sg_dma_address - Return the DMA address from a scatter/gather entry From nobody Fri Feb 27 02:30: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 4fMXNq1HgGz6T824 for ; Fri, 27 Feb 2026 02:30:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNp5zfTz425P for ; Fri, 27 Feb 2026 02:30:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159418; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WFkk/HCSpuPOz4Bk8JBk9nnkZWSxPM87P4phDjeezFM=; b=cIM/y+MNmckIpYqrB998InFfGBSRcfl1lc992muKfGLodKyjxFmm4OOYID1b8I/MpNwZiA OI5F9yRJoEzC+GINEpHZJkJHeHD++Q2qsNTRPf5ygsqA3eyMw6ygzTVyK3ZSiw+KejnMmT 3OMyfyiH3Gt4wL3EI6tsqkruIeQzgYSR/OPHgVZ5ctEElzLj+bSKCl/DojPkAU/vkINb3k dfAsheTL0qs/yOJTxsWsSC+ZXCiSj6Q/5b2XVUTj1o7Ljtp8TaN3uyekULjeU+tDa9mi1N H+ITPoKc1E/6+Buz0tsFLqQ81NVkoZJ0n31N0W7TDsL/JKWcVtRSWQ09/pVETA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159418; a=rsa-sha256; cv=none; b=eOvwWNzk1sWsyrzL3kwVzCHsQCYc8H9WzMvUutyoLcJu3LjGhu2wyoYfnxTilL6/aKjh9a pJebSkc+U3AyJK0KdzzTxeSYwiLANcVh2NlBwrzR78IXrz8ehjBieMY5uwtJ5PT/6PIaTJ gH+lSXTor/DurtYNc6bU4C0ENE5HG/RhlMFoG/LJRR+J0kN5+bz3gT7VgFKE6NI3RJBWD9 u+GGKAHPkaYjd783f92lduoznhd/yvHkAPGc25CSqRlH80IGS/QPuhzEa/Ag8IcY8TGf5/ DiExr5l94wBM4CrcxOADdYfynADqPZpJe+OcSJ0dmvLSvdfZOjsAus2oYsAYTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159418; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WFkk/HCSpuPOz4Bk8JBk9nnkZWSxPM87P4phDjeezFM=; b=P/Iv1Rvp5tWdZmm50OCcAgCpiKTbD6Y1emq6x3xxeBWV4eFalCmWKbuSet3xNFoUi+vwKd Byg0QnXFTo0+ugn0/4yrW9FFqdlcF1MAatz7Jh6ObEihE/I560f3Jof45n9Sp+uUZ0+SnP qYAiBT/L3OSaQ9xOz/q9Gf8+/8GJvo4YVGhG4OAOaWbBB0ugq0r+WxPQOIVtNeSrUAM8kv iYHpge+JS3iA1wPZiDRyEc2PUAfXyWOiNJGPYaTr5oIqB6Dy4xHue5rgNrHeUG4bQLPwIg m7cuUkXf0I8eyWmzH6dzhKrGLjTGMaZSzKEu6Tr97V5/tyYiQpP/fmnvLyv/0w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNp5HbMzyZr for ; Fri, 27 Feb 2026 02:30:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22800 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 64af3362df76 - stable/15 - LinuxKPI: 802.11: adjust assoc check before key deletion List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 64af3362df76e0c7cdce5c0f64ff9ccef09bb155 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:18 +0000 Message-Id: <69a101ba.22800.7e7800d6@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=64af3362df76e0c7cdce5c0f64ff9ccef09bb155 commit 64af3362df76e0c7cdce5c0f64ff9ccef09bb155 Author: Bjoern A. Zeeb AuthorDate: 2026-02-24 23:51:43 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:09:34 +0000 LinuxKPI: 802.11: adjust assoc check before key deletion There is a discrepancy between the vif assoc state and the sta state (see comment in lkpi_sta_run_to_init()). Adjust the check in lkpi_iv_key_delete() and add it to lkpi_sta_del_keys() so that we can take way the keys after whatever comes first: the sta went away from AUTHORIZED (RUN) or if the vif is no longer marked assoc. This is needed as we may only take the sta down partially back to State 2 (cf. 802.11-2024, Figure 11-23) and key material is no longer valid before the vif gets cleaned up and the sta is removed entirely. Sponsored by: The FreeBSD Foundation (cherry picked from commit 96a57fc4bf4edca9a579cc47f9058253c11f8313) --- sys/compat/linuxkpi/common/src/linux_80211.c | 30 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index e80cf9436b3a..550bd417c529 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1373,6 +1373,15 @@ lkpi_sta_del_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, return (0); lockdep_assert_wiphy(hw->wiphy); + + if (vif->cfg.assoc && lsta->state == IEEE80211_STA_AUTHORIZED) { + if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) + ic_printf(lsta->ni->ni_ic, + "%d %lu %s: vif still assoc; not deleting keys\n", + curthread->td_tid, jiffies, __func__); + return (0); + } + ieee80211_ref_node(lsta->ni); error = 0; @@ -1452,6 +1461,15 @@ lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) */ lockdep_assert_wiphy(hw->wiphy); + ni = ieee80211_ref_node(vap->iv_bss); + lsta = ni->ni_drv_data; + if (lsta == NULL) { + ic_printf(ic, "%s: ni %p (%6D) with lsta NULL\n", + __func__, ni, ni->ni_bssid, ":"); + ieee80211_free_node(ni); + return (0); + } + /* * While we are assoc we may still send packets. We cannot delete the * keys as otherwise packets could go out unencrypted. Some firmware @@ -1462,30 +1480,24 @@ lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) * How to test: run 800Mbit/s UDP traffic and during that restart your * supplicant. You want to survive that. */ - if (vif->cfg.assoc) { + if (vif->cfg.assoc && lsta->state == IEEE80211_STA_AUTHORIZED) { if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) ic_printf(ic, "%d %lu %s: vif still assoc; not deleting keys\n", curthread->td_tid, jiffies, __func__); + ieee80211_free_node(ni); return (0); } if (IEEE80211_KEY_UNDEFINED(k)) { ic_printf(ic, "%s: vap %p key %p is undefined: %p %u\n", __func__, vap, k, k->wk_cipher, k->wk_keyix); + ieee80211_free_node(ni); return (0); } if (vap->iv_bss == NULL) { ic_printf(ic, "%s: iv_bss %p for vap %p is NULL\n", __func__, vap->iv_bss, vap); - return (0); - } - - ni = ieee80211_ref_node(vap->iv_bss); - lsta = ni->ni_drv_data; - if (lsta == NULL) { - ic_printf(ic, "%s: ni %p (%6D) with lsta NULL\n", - __func__, ni, ni->ni_bssid, ":"); ieee80211_free_node(ni); return (0); } From nobody Fri Feb 27 02:30: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 4fMXNp16c5z6T7q6 for ; Fri, 27 Feb 2026 02:30:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNn5YPDz41py for ; Fri, 27 Feb 2026 02:30:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OfKeaDtIzxw4x5gW+vcV6AmfK8Brj/LqEdgBakg7OEY=; b=MfxeZTuiKafxYRr7LVfUI/entgtn4OqUOkFP4CV1cYyt/wA1ikkZjacjyRaF0pC7b/bT39 0TqO2C0Lmlz8SVzVA/lyX/XSy+P1OKH/LxeooIqIQ7Yr6+0XsmsKIF+0DjW09938jijlOD Keh4jKJ7z+f7Desbxd6FRJoCGYlgYHhGyozHRjgxnI1Iz6fl4SuoYA3GaJ+R7/IhJhPCz8 QseHNQcv0QqeQ0KLo3ZzK3pfzJh4SkjQYeo1dNghf9yS5whp2mz1z8hk3VWBZeRHy6g0EP CBXKcOZ0riFTe1/c7ogsSQ9vF4M6Q/L8V2Jysotxe+g31pGqa3/hgz+ZprpLUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159417; a=rsa-sha256; cv=none; b=pGDUoCK91lN5/ZGSXoTzEuZNoMv1QLBTyq90VPW85eabaAkFsV9vM6z2146WBsKr7ZcdGu iGpk3KdY4e4tCw2/8bwCd6ozvRKkASBPWa7WAd1GJsh4tgTI6s3PM3D0AYjxicJYZAW6ul vgHC3iHJXOAr3SPt0tEhIbjJgJXROUSEkahEQoGqR0O5/SgtzSpAZshkbSlVhQm5z5/6+1 69VwvI07NS3oDHLszQl31Q7yT8Qrf7eWb7eR8x7C3EyY8B/omK7KD0tZEQXmxa7V0c9JFW jqPXpr6EYlkbtjc3QR0Tl08U6UrVj2BWQZWhXXdf6W2W7m0lhIhKZxjTXYymZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OfKeaDtIzxw4x5gW+vcV6AmfK8Brj/LqEdgBakg7OEY=; b=JOOt0aw87sovoRlZsItexHtHLEMWEUxffrsWTze8Y0O+pgjgmTVxtzo4wdgVS0Xgt/64b0 1QiRXZ7pjyDzcF9I4oh6Kq5boyySiLL5nWObJORL38jjLkSun5OZYIpottfnaqtEu378oh ofJ2kZgiF+fpeZ3fNuu3aeyJeoDQk11hLHnIvXHzpC3lBkH24YVo5zrPBos7mio6botLS1 TPJG+/icDtSePnlKbEg1potWbKoDhB6LRpPnrReJBfaoSwfDMweP0d9h5t7FrYRTiM+f+Q xXQq6p+/atr/pI0rOSO2gJ9CKLs6syouHrZyrtINNb5vL9/WT+rtBs31Ri2cLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNn4pdyzyJ6 for ; Fri, 27 Feb 2026 02:30:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 204f5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: b07c75928028 - stable/15 - LinuxKPI: 802.11: do not leak BA sessions when tearing down state List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b07c75928028e5cf6bfc3d76e6ade4123dc052b7 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:17 +0000 Message-Id: <69a101b9.204f5.5876fb35@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b07c75928028e5cf6bfc3d76e6ade4123dc052b7 commit b07c75928028e5cf6bfc3d76e6ade4123dc052b7 Author: Bjoern A. Zeeb AuthorDate: 2026-02-24 12:55:48 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:09:28 +0000 LinuxKPI: 802.11: do not leak BA sessions when tearing down state In certain cases we may tear down state of a node with 'ongoing' BA sessions. This can trigger a firmware crash with iwlwifi as reported in [1] when trying to remove the sta from the firmware. 0x2010303A | ADVANCED_SYSASSERT .. 0x00000000 | umac data1 (sta id=0) .. 0x0088030C | last host cmd (STA_RM) [1] https://lists.freebsd.org/archives/freebsd-wireless/2025-November/003901.html I hit the same problem while running regression tests after reworking some LinuxKPI 802.11 sta state machine bits. Add the missing calls to lkpi_sta_run_to_assoc() and lkpi_sta_run_to_init() to make sure (through net80211) we call (*ampdu_action) with IEEE80211_AMPDU_RX_STOP to avoid the firmware crash. Note: this specific patch was not excessively tested. The upcoming change to the state machine including this fix has seen more testing but also only needed the change in one place. The reason for putting this in upfront is to document the case well. Reported by: Mohammad Amin (the.madamin20 gmail.com) [1] Sponsored by: The FreeBSSD Foundation (cherry picked from commit fc9369abef6b6993e79b08de832e1d49f81a17b9) --- sys/compat/linuxkpi/common/src/linux_80211.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 0b732cb691c6..e80cf9436b3a 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -3256,6 +3256,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int #if 0 enum ieee80211_bss_changed bss_changed; #endif + struct ieee80211_rx_ampdu *rap; int error; lhw = vap->iv_ic->ic_softc; @@ -3311,6 +3312,16 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int goto outni; } + /* Stop any BA sessions if still active. */ + for (int rapn = 0; rapn < WME_NUM_TID; rapn++) { + rap = &ni->ni_rx_ampdu[rapn]; + + if ((rap->rxa_flags & IEEE80211_AGGR_RUNNING) == 0) + continue; + + vap->iv_ic->ic_ampdu_rx_stop(ni, rap); + } + IEEE80211_UNLOCK(vap->iv_ic); /* Ensure the packets get out. */ @@ -3412,6 +3423,7 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int struct ieee80211_sta *sta; struct ieee80211_prep_tx_info prep_tx_info; enum ieee80211_bss_changed bss_changed; + struct ieee80211_rx_ampdu *rap; int error; lhw = vap->iv_ic->ic_softc; @@ -3467,6 +3479,16 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int goto outni; } + /* Stop any BA sessions if still active. */ + for (int rapn = 0; rapn < WME_NUM_TID; rapn++) { + rap = &ni->ni_rx_ampdu[rapn]; + + if ((rap->rxa_flags & IEEE80211_AGGR_RUNNING) == 0) + continue; + + vap->iv_ic->ic_ampdu_rx_stop(ni, rap); + } + IEEE80211_UNLOCK(vap->iv_ic); /* Ensure the packets get out. */ From nobody Fri Feb 27 02:30: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 4fMXNs1ptxz6T7kb for ; Fri, 27 Feb 2026 02:30:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNr6ZmVz41sn for ; Fri, 27 Feb 2026 02:30:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=irlizwx8H5gdpaCsnYdDVmNr7D0fHYJfUy6AK+2DJss=; b=SObFEJWJZkGYlM5L69gWeTXMcSTbb8ST06ERUDJCj2hoAW76j7JiRJz2nmx0nB8/M+SuRa YvLsdiDI5vuuJ3LoF1+hOG5YO4Rz8VgqHxAtSKML74yblsm4huUOkYND/d+Azau3/ar9F6 VJj4LJa6836NgjxvPG2A/rivSQrAOTD/hs2JXPVLnx+AnQdM8MOgVw4Bno0AF0aYSbB8ww VQo4ohOt6XJVLXoWZ/XeqHBWzqFhtOehx7JeKVQypDKR6wwXnixKx9kG4WCDfsMRN10lCM 3VkrVB7tsmsTv/4C5xiL2MBxZBEUi5M63cZcSNlOBW6k68KNkwfLh8uClhmNwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159420; a=rsa-sha256; cv=none; b=Msvk004IE2KM5hLXWRL98yyTP5f4lGIdT9SriDdrjjekHcYmc1eOdTEfXgoYx5Hgj9p/jj 66gjwUKL+vd0a9nqhMTBsTk7m+vuXBMXdFBRNU9OrWr0XeGOy6vfSdoCGjnp29bxrRx1Aw LXo7x0EEbxUKvouLs9bfpKA+0zejM8VEGQLkXIuuBCOQVbsW7nztv65a5rw4Ow4uFU6+Nv fxW/cMraG0d8sWR2OFhaP5i4ZJfWjphzo6vNNzKkYYue6+CYSXj3X7PV1zWqREVIIIhR8j zCs0HNQaisX28pxIdmJW/RyDAHBe7wZ6ZH+VW3z5IPB3wHX8Ly0IoGzJ73e0hg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=irlizwx8H5gdpaCsnYdDVmNr7D0fHYJfUy6AK+2DJss=; b=ng5la+2TfM6L/op9Il9befcapA3dSXsiirLlZsM/Ig3CoBnuaUZn+rYbnz8ugcKbnSIiUI BPJdxObt5ruxMnNYGeZgIiqnqe1f5tZc0zP2hUl6ZCeDZRyRDIdH0tILdXj7qf0sXEJoMe LbgB9H76CG0S2ZIpKUzUS0GvbOl7TuZs89Ondd4e0s7+RZXtwXfNAI9O875E8UDylSsDJT Oqc6AlZlOPhOykCp+1snWCpp//osg1S6sv2Xl4YgmpkuSahFLXvoEx4KrWkGj028cMI0wI fbzrgP+twUcDHj6qh7WMmxAx1W6MGa2JZc/J0cdR7B0q7orfr/MZJLC2Yk+vQw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNr67DlzxRH for ; Fri, 27 Feb 2026 02:30:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 220af by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: c201c9ff5f3d - stable/15 - LinuxKPI: 802.11: fold the sta state machine 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c201c9ff5f3d2dd5c7614c58b1afb9892d3d1cf5 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:20 +0000 Message-Id: <69a101bc.220af.2922828e@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c201c9ff5f3d2dd5c7614c58b1afb9892d3d1cf5 commit c201c9ff5f3d2dd5c7614c58b1afb9892d3d1cf5 Author: Bjoern A. Zeeb AuthorDate: 2026-02-25 00:13:22 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:09:49 +0000 LinuxKPI: 802.11: fold the sta state machine again In and around d9f59799fc3e7 we adjusted the initial sta state machine implementation and unfolded some functions, duplicating code. This version tries to undo some of that as it seems that we can get away with doing it more cleanly these days. There are 5 main functions for the path from INIT to RUN (UP1,2,3.1,3.2,4) and 4 main functions for the path from RUN to INIT (DOWN1,2,3,4). The reason there is one more on the patch up is that we can go directly from AUTH to RUN without going through ASSOC first. In addition there are further functions relying only on these 9 base state change functions in order to implement the remaining possible state transitions net80211 can do (without CSA and SLEEP). Another change is that we no longer take a sta always through INIT/SCAN first and then back up to AUTH, that is, we are no longer deleting the sta from the firmware unless net80211 would also take us down to that state and in a follow-up back up. This is a preparation for another fix to come in order to import a newer version of iwlwifi (v6.19). I have run a few days of mlme_assoc (see tools) and some other basic regression tests. The only thing I managed was to deadlock net80211 for other reasons (ieee80211_waitfor_parent()). But this will need excessive user testing as the various options which may have an effect on the subtle details are great as we learnt in the past years. Sponsored by: The FreeBSD Foundation (cherry picked from commit 48f55a49a1d142c616edbc7ee6745dd6b83393e4) --- sys/compat/linuxkpi/common/src/linux_80211.c | 834 +++++++++------------------ 1 file changed, 278 insertions(+), 556 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 9693e4eec268..48b87ae47751 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -2121,7 +2121,7 @@ lkpi_disassoc(struct ieee80211_sta *sta, struct ieee80211_vif *vif, * The caller is responsible for removing the sta gong to * IEEE80211_STA_NOTEXIST and then executing the * bss_info_changed() update. - * See lkpi_sta_run_to_init() for more detailed comment. + * See DOWN4 for more detailed comment. */ lvif = VIF_TO_LVIF(vif); @@ -2248,13 +2248,17 @@ lkpi_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) static int lkpi_sta_state_do_nada(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { - return (0); } -/* lkpi_iv_newstate() handles the stop scan case generally. */ -#define lkpi_sta_scan_to_init(_v, _n, _a) lkpi_sta_state_do_nada(_v, _n, _a) +/* UP1 */ +static int +lkpi_sta_init_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +{ + return (lkpi_sta_state_do_nada(vap, nstate, arg)); +} +/* UP2 */ static int lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { @@ -2579,136 +2583,7 @@ out_relocked: return (error); } -static int -lkpi_sta_auth_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - struct lkpi_hw *lhw; - struct ieee80211_hw *hw; - struct lkpi_vif *lvif; - struct ieee80211_vif *vif; - struct ieee80211_node *ni; - struct lkpi_sta *lsta; - struct ieee80211_sta *sta; - struct ieee80211_prep_tx_info prep_tx_info; - enum ieee80211_bss_changed bss_changed; - int error; - - lhw = vap->iv_ic->ic_softc; - hw = LHW_TO_HW(lhw); - lvif = VAP_TO_LVIF(vap); - vif = LVIF_TO_VIF(lvif); - - LKPI_80211_LVIF_LOCK(lvif); -#ifdef LINUXKPI_DEBUG_80211 - /* XXX-BZ KASSERT later; state going down so no action. */ - if (lvif->lvif_bss == NULL) - ic_printf(vap->iv_ic, "%s:%d: lvif %p vap %p iv_bss %p lvif_bss %p " - "lvif_bss->ni %p synched %d\n", __func__, __LINE__, - lvif, vap, vap->iv_bss, lvif->lvif_bss, - (lvif->lvif_bss != NULL) ? lvif->lvif_bss->ni : NULL, - lvif->lvif_bss_synched); -#endif - - lsta = lvif->lvif_bss; - LKPI_80211_LVIF_UNLOCK(lvif); - KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " - "lvif %p vap %p\n", __func__, - lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); - ni = lsta->ni; /* Reference held for lvif_bss. */ - sta = LSTA_TO_STA(lsta); - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - - IEEE80211_UNLOCK(vap->iv_ic); - wiphy_lock(hw->wiphy); - - /* flush, drop. */ - lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); - - /* Wake tx queues to get packet(s) out. */ - lkpi_wake_tx_queues(hw, sta, false, true); - - /* flush, no drop */ - lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), false); - - /* End mgd_complete_tx. */ - if (lsta->in_mgd) { - memset(&prep_tx_info, 0, sizeof(prep_tx_info)); - prep_tx_info.success = false; - lkpi_80211_mo_mgd_complete_tx(hw, vif, &prep_tx_info); - lsta->in_mgd = false; - } - - /* sync_rx_queues */ - lkpi_80211_mo_sync_rx_queues(hw); - - /* sta_pre_rcu_remove */ - lkpi_80211_mo_sta_pre_rcu_remove(hw, vif, sta); - - /* Take the station down. */ - - /* Adjust sta and change state (from NONE) to NOTEXIST. */ - KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); - KASSERT(lsta->state == IEEE80211_STA_NONE, ("%s: lsta %p state not " - "NONE: %#x, nstate %d arg %d\n", __func__, lsta, lsta->state, nstate, arg)); - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NOTEXIST); - if (error != 0) { - IMPROVE("do we need to undo the chan ctx?"); - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(NOTEXIST) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } -#if 0 - lsta->added_to_drv = false; /* mo manages. */ -#endif - - bss_changed = 0; - vif->bss_conf.dtim_period = 0; /* go back to 0. */ - bss_changed |= BSS_CHANGED_BEACON_INFO; - lkpi_80211_mo_bss_info_changed(hw, vif, &vif->bss_conf, bss_changed); - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - - LKPI_80211_LVIF_LOCK(lvif); - /* Remove ni reference for this cache of lsta. */ - lvif->lvif_bss = NULL; - lvif->lvif_bss_synched = false; - LKPI_80211_LVIF_UNLOCK(lvif); - lkpi_lsta_remove(lsta, lvif); - - /* conf_tx */ - - lkpi_remove_chanctx(hw, vif); - -out: - wiphy_unlock(hw->wiphy); - IEEE80211_LOCK(vap->iv_ic); - if (error == 0) { - /* - * We do this outside the wiphy lock as net80211::node_free() may call - * into crypto code to delete keys and we have a recursed on - * non-recursive sx panic. Also only do this if we get here w/o error. - * - * The very last release the reference on the ni for the ni/lsta on - * lvif->lvif_bss. Upon return from this both ni and lsta are invalid - * and potentially freed. - */ - ieee80211_free_node(ni); - } - return (error); -} - -static int -lkpi_sta_auth_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - int error; - - error = lkpi_sta_auth_to_scan(vap, nstate, arg); - if (error == 0) - error = lkpi_sta_scan_to_init(vap, nstate, arg); - return (error); -} - +/* UP3.1 */ static int lkpi_sta_auth_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { @@ -2768,18 +2643,21 @@ lkpi_sta_auth_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, in lsta->in_mgd = false; } - /* Now start assoc. */ + /* Now start assoc. unless nstate=RUN (auth_to_run). */ /* Start mgd_prepare_tx. */ - if (!lsta->in_mgd) { + if (nstate == IEEE80211_S_ASSOC && !lsta->in_mgd) { memset(&prep_tx_info, 0, sizeof(prep_tx_info)); prep_tx_info.duration = PREP_TX_INFO_DURATION; lkpi_80211_mo_mgd_prepare_tx(hw, vif, &prep_tx_info); lsta->in_mgd = true; } +#if 0 + /* We do not yet have a packet to go out. */ /* Wake tx queue to get packet out. */ lkpi_wake_tx_queues(hw, LSTA_TO_STA(lsta), false, true); +#endif /* * .. we end up in "assoc_to_run" @@ -2797,76 +2675,23 @@ out: return (error); } -/* auth_to_auth, assoc_to_assoc. */ +static int lkpi_sta_assoc_to_run(struct ieee80211vap *, enum ieee80211_state, int); + +/* UP3.2 */ static int -lkpi_sta_a_to_a(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +lkpi_sta_auth_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { - struct lkpi_hw *lhw; - struct ieee80211_hw *hw; - struct lkpi_vif *lvif; - struct ieee80211_vif *vif; - struct lkpi_sta *lsta; - struct ieee80211_prep_tx_info prep_tx_info; int error; - lhw = vap->iv_ic->ic_softc; - hw = LHW_TO_HW(lhw); - lvif = VAP_TO_LVIF(vap); - vif = LVIF_TO_VIF(lvif); - - IEEE80211_UNLOCK(vap->iv_ic); - wiphy_lock(hw->wiphy); - - LKPI_80211_LVIF_LOCK(lvif); - /* XXX-BZ KASSERT later? */ - if (!lvif->lvif_bss_synched || lvif->lvif_bss == NULL) { -#ifdef LINUXKPI_DEBUG_80211 - ic_printf(vap->iv_ic, "%s:%d: lvif %p vap %p iv_bss %p lvif_bss %p " - "lvif_bss->ni %p synched %d\n", __func__, __LINE__, - lvif, vap, vap->iv_bss, lvif->lvif_bss, - (lvif->lvif_bss != NULL) ? lvif->lvif_bss->ni : NULL, - lvif->lvif_bss_synched); -#endif - LKPI_80211_LVIF_UNLOCK(lvif); - error = ENOTRECOVERABLE; - goto out; - } - lsta = lvif->lvif_bss; - LKPI_80211_LVIF_UNLOCK(lvif); - - KASSERT(lsta != NULL, ("%s: lsta %p! lvif %p vap %p\n", __func__, - lsta, lvif, vap)); - - IMPROVE("event callback?"); - - /* End mgd_complete_tx. */ - if (lsta->in_mgd) { - memset(&prep_tx_info, 0, sizeof(prep_tx_info)); - prep_tx_info.success = false; - lkpi_80211_mo_mgd_complete_tx(hw, vif, &prep_tx_info); - lsta->in_mgd = false; - } - - /* Now start assoc. */ - - /* Start mgd_prepare_tx. */ - if (!lsta->in_mgd) { - memset(&prep_tx_info, 0, sizeof(prep_tx_info)); - prep_tx_info.duration = PREP_TX_INFO_DURATION; - lkpi_80211_mo_mgd_prepare_tx(hw, vif, &prep_tx_info); - lsta->in_mgd = true; - } - - error = 0; -out: - wiphy_unlock(hw->wiphy); - IEEE80211_LOCK(vap->iv_ic); - + error = lkpi_sta_auth_to_assoc(vap, nstate, arg); + if (error == 0) + error = lkpi_sta_assoc_to_run(vap, nstate, arg); return (error); } +/* UP4 */ static int -_lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { struct lkpi_hw *lhw; struct ieee80211_hw *hw; @@ -2888,15 +2713,19 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i wiphy_lock(hw->wiphy); LKPI_80211_LVIF_LOCK(lvif); + /* XXX-BZ KASSERT later? */ + if (!lvif->lvif_bss_synched || lvif->lvif_bss == NULL) { #ifdef LINUXKPI_DEBUG_80211 - /* XXX-BZ KASSERT later; state going down so no action. */ - if (lvif->lvif_bss == NULL) ic_printf(vap->iv_ic, "%s:%d: lvif %p vap %p iv_bss %p lvif_bss %p " "lvif_bss->ni %p synched %d\n", __func__, __LINE__, lvif, vap, vap->iv_bss, lvif->lvif_bss, (lvif->lvif_bss != NULL) ? lvif->lvif_bss->ni : NULL, lvif->lvif_bss_synched); #endif + LKPI_80211_LVIF_UNLOCK(lvif); + error = ENOTRECOVERABLE; + goto out; + } lsta = lvif->lvif_bss; LKPI_80211_LVIF_UNLOCK(lvif); KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " @@ -2904,244 +2733,28 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); ni = lsta->ni; /* Reference held for lvif_bss. */ - sta = LSTA_TO_STA(lsta); - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - - /* flush, drop. */ - lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); - - IMPROVE("What are the proper conditions for DEAUTH_NEED_MGD_TX_PREP?"); - if (ieee80211_hw_check(hw, DEAUTH_NEED_MGD_TX_PREP) && - !lsta->in_mgd) { - memset(&prep_tx_info, 0, sizeof(prep_tx_info)); - prep_tx_info.duration = PREP_TX_INFO_DURATION; - prep_tx_info.was_assoc = true; - lkpi_80211_mo_mgd_prepare_tx(hw, vif, &prep_tx_info); - lsta->in_mgd = true; - } - wiphy_unlock(hw->wiphy); - IEEE80211_LOCK(vap->iv_ic); + IMPROVE("ponder some of this moved to ic_newassoc, scan_assoc_success, " + "and to lesser extend ieee80211_notify_node_join"); - /* Call iv_newstate first so we get potential DEAUTH packet out. */ - error = lvif->iv_newstate(vap, nstate, arg); + /* Finish assoc. (even if this is auth_to_run!) */ + /* Update sta_state (AUTH to ASSOC) and set aid. */ + KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " + "AUTH: %#x\n", __func__, lsta, lsta->state)); + sta = LSTA_TO_STA(lsta); + sta->aid = IEEE80211_NODE_AID(ni); +#ifdef LKPI_80211_WME + if (vap->iv_flags & IEEE80211_F_WME) + sta->wme = true; +#endif + error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: iv_newstate(%p, %d, %d) " - "failed: %d\n", __func__, __LINE__, vap, nstate, arg, error); - goto outni; + ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(ASSOC) " + "failed: %d\n", __func__, __LINE__, error); + goto out; } - IEEE80211_UNLOCK(vap->iv_ic); - - /* Ensure the packets get out. */ - lkpi_80211_flush_tx(lhw, lsta); - - wiphy_lock(hw->wiphy); - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - - /* Wake tx queues to get packet(s) out. */ - lkpi_wake_tx_queues(hw, sta, false, true); - - /* flush, no drop */ - lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), false); - - /* End mgd_complete_tx. */ - if (lsta->in_mgd) { - memset(&prep_tx_info, 0, sizeof(prep_tx_info)); - prep_tx_info.success = false; - prep_tx_info.was_assoc = true; - lkpi_80211_mo_mgd_complete_tx(hw, vif, &prep_tx_info); - lsta->in_mgd = false; - } - - /* sync_rx_queues */ - lkpi_80211_mo_sync_rx_queues(hw); - - /* sta_pre_rcu_remove */ - lkpi_80211_mo_sta_pre_rcu_remove(hw, vif, sta); - - /* Take the station down. */ - - /* Update sta and change state (from AUTH) to NONE. */ - KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); - KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " - "AUTH: %#x\n", __func__, lsta, lsta->state)); - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NONE); - if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(NONE) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } - - /* See comment in lkpi_sta_run_to_init(). */ - bss_changed = 0; - bss_changed |= lkpi_disassoc(sta, vif, lhw); - -#ifdef LKPI_80211_HW_CRYPTO - /* - * In theory we remove keys here but there must not exist any for this - * state change until we clean them up again into small steps and no - * code duplication. - */ -#endif - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - - /* Adjust sta and change state (from NONE) to NOTEXIST. */ - KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); - KASSERT(lsta->state == IEEE80211_STA_NONE, ("%s: lsta %p state not " - "NONE: %#x, nstate %d arg %d\n", __func__, lsta, lsta->state, nstate, arg)); - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NOTEXIST); - if (error != 0) { - IMPROVE("do we need to undo the chan ctx?"); - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(NOTEXIST) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); /* sta no longer save to use. */ - - IMPROVE("Any bss_info changes to announce?"); - vif->bss_conf.qos = 0; - bss_changed |= BSS_CHANGED_QOS; - vif->cfg.ssid_len = 0; - memset(vif->cfg.ssid, '\0', sizeof(vif->cfg.ssid)); - bss_changed |= BSS_CHANGED_BSSID; - vif->bss_conf.dtim_period = 0; /* go back to 0. */ - bss_changed |= BSS_CHANGED_BEACON_INFO; - lkpi_80211_mo_bss_info_changed(hw, vif, &vif->bss_conf, bss_changed); - - LKPI_80211_LVIF_LOCK(lvif); - /* Remove ni reference for this cache of lsta. */ - lvif->lvif_bss = NULL; - lvif->lvif_bss_synched = false; - LKPI_80211_LVIF_UNLOCK(lvif); - lkpi_lsta_remove(lsta, lvif); - - /* conf_tx */ - - lkpi_remove_chanctx(hw, vif); - - error = EALREADY; -out: - wiphy_unlock(hw->wiphy); - IEEE80211_LOCK(vap->iv_ic); - if (error == EALREADY) { - /* - * We do this outside the wiphy lock as net80211::node_free() may call - * into crypto code to delete keys and we have a recursed on - * non-recursive sx panic. Also only do this if we get here w/o error. - * - * The very last release the reference on the ni for the ni/lsta on - * lvif->lvif_bss. Upon return from this both ni and lsta are invalid - * and potentially freed. - */ - ieee80211_free_node(ni); - } -outni: - return (error); -} - -static int -lkpi_sta_assoc_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - int error; - - error = _lkpi_sta_assoc_to_down(vap, nstate, arg); - if (error != 0 && error != EALREADY) - return (error); - - /* At this point iv_bss is long a new node! */ - - error |= lkpi_sta_scan_to_auth(vap, nstate, 0); - return (error); -} - -static int -lkpi_sta_assoc_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - int error; - - error = _lkpi_sta_assoc_to_down(vap, nstate, arg); - return (error); -} - -static int -lkpi_sta_assoc_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - int error; - - error = _lkpi_sta_assoc_to_down(vap, nstate, arg); - return (error); -} - -static int -lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - struct lkpi_hw *lhw; - struct ieee80211_hw *hw; - struct lkpi_vif *lvif; - struct ieee80211_vif *vif; - struct ieee80211_node *ni; - struct lkpi_sta *lsta; - struct ieee80211_sta *sta; - struct ieee80211_prep_tx_info prep_tx_info; - enum ieee80211_bss_changed bss_changed; - int error; - - lhw = vap->iv_ic->ic_softc; - hw = LHW_TO_HW(lhw); - lvif = VAP_TO_LVIF(vap); - vif = LVIF_TO_VIF(lvif); - - IEEE80211_UNLOCK(vap->iv_ic); - wiphy_lock(hw->wiphy); - - LKPI_80211_LVIF_LOCK(lvif); - /* XXX-BZ KASSERT later? */ - if (!lvif->lvif_bss_synched || lvif->lvif_bss == NULL) { -#ifdef LINUXKPI_DEBUG_80211 - ic_printf(vap->iv_ic, "%s:%d: lvif %p vap %p iv_bss %p lvif_bss %p " - "lvif_bss->ni %p synched %d\n", __func__, __LINE__, - lvif, vap, vap->iv_bss, lvif->lvif_bss, - (lvif->lvif_bss != NULL) ? lvif->lvif_bss->ni : NULL, - lvif->lvif_bss_synched); -#endif - LKPI_80211_LVIF_UNLOCK(lvif); - error = ENOTRECOVERABLE; - goto out; - } - lsta = lvif->lvif_bss; - LKPI_80211_LVIF_UNLOCK(lvif); - KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " - "lvif %p vap %p\n", __func__, - lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); - - ni = lsta->ni; /* Reference held for lvif_bss. */ - - IMPROVE("ponder some of this moved to ic_newassoc, scan_assoc_success, " - "and to lesser extend ieee80211_notify_node_join"); - - /* Finish assoc. */ - /* Update sta_state (AUTH to ASSOC) and set aid. */ - KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " - "AUTH: %#x\n", __func__, lsta, lsta->state)); - sta = LSTA_TO_STA(lsta); - sta->aid = IEEE80211_NODE_AID(ni); -#ifdef LKPI_80211_WME - if (vap->iv_flags & IEEE80211_F_WME) - sta->wme = true; -#endif - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); - if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(ASSOC) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } - - IMPROVE("wme / conf_tx [all]"); + IMPROVE("wme / conf_tx [all]"); /* Update bss info (bss_info_changed) (assoc, aid, ..). */ bss_changed = 0; @@ -3180,7 +2793,7 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int * - event_callback */ - /* End mgd_complete_tx. */ + /* End mgd_complete_tx. (we do not have to check ostate == IEEE80211_S_ASSOC). */ if (lsta->in_mgd) { memset(&prep_tx_info, 0, sizeof(prep_tx_info)); prep_tx_info.success = true; @@ -3243,17 +2856,11 @@ out: return (error); } -static int -lkpi_sta_auth_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) -{ - int error; - - error = lkpi_sta_auth_to_assoc(vap, nstate, arg); - if (error == 0) - error = lkpi_sta_assoc_to_run(vap, nstate, arg); - return (error); -} - +/* + * DOWN1 + * "to assoc" means we are going back to State 2 from State 4[/3]. + * This means ni still is authenticated, so we keep sta, chanctx, .. + */ static int lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { @@ -3276,6 +2883,9 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int lvif = VAP_TO_LVIF(vap); vif = LVIF_TO_VIF(lvif); + IEEE80211_UNLOCK(vap->iv_ic); + wiphy_lock(hw->wiphy); + LKPI_80211_LVIF_LOCK(lvif); #ifdef LINUXKPI_DEBUG_80211 /* XXX-BZ KASSERT later; state going down so no action. */ @@ -3297,9 +2907,6 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - IEEE80211_UNLOCK(vap->iv_ic); - wiphy_lock(hw->wiphy); - /* flush, drop. */ lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); @@ -3316,7 +2923,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); - /* Call iv_newstate first so we get potential DISASSOC packet out. */ + /* Call iv_newstate first so we get potential (RE-)ASSOC/DEAUTH? packet out. */ error = lvif->iv_newstate(vap, nstate, arg); if (error != 0) { ic_printf(vap->iv_ic, "%s:%d: iv_newstate(%p, %d, %d) " @@ -3363,7 +2970,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_80211_mo_sync_rx_queues(hw); /* sta_pre_rcu_remove */ - lkpi_80211_mo_sta_pre_rcu_remove(hw, vif, sta); + lkpi_80211_mo_sta_pre_rcu_remove(hw, vif, sta); #endif /* Take the station down. */ @@ -3412,6 +3019,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int #if 0 /* Update bss info (bss_info_changed) (assoc, aid, ..). */ + /* See comment in DOWN4. */ lkpi_disassoc(sta, vif, lhw); #endif @@ -3423,8 +3031,15 @@ outni: return (error); } +/* + * DOWN2 + * We are in state 2 and go back to state 1 and will try to auth again + * (to IEEE80211_S_AUTH in FreeBSD means "try to auth"). This should be + * like scan_to_auth but that we keep the "ni" and with that chanctx/bssid, + * which essentially makes this "a_to_a" in LinuxKPI. + */ static int -lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +lkpi_sta_assoc_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) { struct lkpi_hw *lhw; struct ieee80211_hw *hw; @@ -3432,10 +3047,6 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int struct ieee80211_vif *vif; struct ieee80211_node *ni; struct lkpi_sta *lsta; - struct ieee80211_sta *sta; - struct ieee80211_prep_tx_info prep_tx_info; - enum ieee80211_bss_changed bss_changed; - struct ieee80211_rx_ampdu *rap; int error; lhw = vap->iv_ic->ic_softc; @@ -3463,53 +3074,81 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); ni = lsta->ni; /* Reference held for lvif_bss. */ - sta = LSTA_TO_STA(lsta); lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - /* flush, drop. */ - lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); - - IMPROVE("What are the proper conditions for DEAUTH_NEED_MGD_TX_PREP?"); - if (ieee80211_hw_check(hw, DEAUTH_NEED_MGD_TX_PREP) && - !lsta->in_mgd) { - memset(&prep_tx_info, 0, sizeof(prep_tx_info)); - prep_tx_info.duration = PREP_TX_INFO_DURATION; - prep_tx_info.was_assoc = true; - lkpi_80211_mo_mgd_prepare_tx(hw, vif, &prep_tx_info); - lsta->in_mgd = true; + /* Take the station down. */ + /* Update sta_state (AUTH to NONE). */ + KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); + KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " + "AUTH: %#x\n", __func__, lsta, lsta->state)); + error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NONE); + if (error != 0) { + ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(NONE) " + "failed: %d\n", __func__, __LINE__, error); + goto out; } + lkpi_lsta_dump(lsta, ni, __func__, __LINE__); + +out: wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); + return (error); +} - /* Call iv_newstate first so we get potential DISASSOC packet out. */ - error = lvif->iv_newstate(vap, nstate, arg); - if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: iv_newstate(%p, %d, %d) " - "failed: %d\n", __func__, __LINE__, vap, nstate, arg, error); - goto outni; - } - - /* Stop any BA sessions if still active. */ - for (int rapn = 0; rapn < WME_NUM_TID; rapn++) { - rap = &ni->ni_rx_ampdu[rapn]; - - if ((rap->rxa_flags & IEEE80211_AGGR_RUNNING) == 0) - continue; +/* + * DOWN3 + * We are in state 1. Either auth timed out (arg != 0) or we have an internal + * state change forcing us to give up trying to authenticate. + * Cleanup and remove chanctx, sta, ... + */ +static int +lkpi_sta_auth_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +{ + struct lkpi_hw *lhw; + struct ieee80211_hw *hw; + struct lkpi_vif *lvif; + struct ieee80211_vif *vif; + struct ieee80211_node *ni; + struct lkpi_sta *lsta; + struct ieee80211_sta *sta; + struct ieee80211_prep_tx_info prep_tx_info; + enum ieee80211_bss_changed bss_changed; + int error; - vap->iv_ic->ic_ampdu_rx_stop(ni, rap); - } + lhw = vap->iv_ic->ic_softc; + hw = LHW_TO_HW(lhw); + lvif = VAP_TO_LVIF(vap); + vif = LVIF_TO_VIF(lvif); IEEE80211_UNLOCK(vap->iv_ic); + wiphy_lock(hw->wiphy); - /* Ensure the packets get out. */ - lkpi_80211_flush_tx(lhw, lsta); + LKPI_80211_LVIF_LOCK(lvif); +#ifdef LINUXKPI_DEBUG_80211 + /* XXX-BZ KASSERT later; state going down so no action. */ + if (lvif->lvif_bss == NULL) + ic_printf(vap->iv_ic, "%s:%d: lvif %p vap %p iv_bss %p lvif_bss %p " + "lvif_bss->ni %p synched %d\n", __func__, __LINE__, + lvif, vap, vap->iv_bss, lvif->lvif_bss, + (lvif->lvif_bss != NULL) ? lvif->lvif_bss->ni : NULL, + lvif->lvif_bss_synched); +#endif - wiphy_lock(hw->wiphy); + lsta = lvif->lvif_bss; + LKPI_80211_LVIF_UNLOCK(lvif); + KASSERT(lsta != NULL && lsta->ni != NULL, ("%s: lsta %p ni %p " + "lvif %p vap %p\n", __func__, + lsta, (lsta != NULL) ? lsta->ni : NULL, lvif, vap)); + ni = lsta->ni; /* Reference held for lvif_bss. */ + sta = LSTA_TO_STA(lsta); lkpi_lsta_dump(lsta, ni, __func__, __LINE__); + /* flush, drop. */ + lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); + /* Wake tx queues to get packet(s) out. */ lkpi_wake_tx_queues(hw, sta, false, true); @@ -3520,7 +3159,6 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int if (lsta->in_mgd) { memset(&prep_tx_info, 0, sizeof(prep_tx_info)); prep_tx_info.success = false; - prep_tx_info.was_assoc = true; lkpi_80211_mo_mgd_complete_tx(hw, vif, &prep_tx_info); lsta->in_mgd = false; } @@ -3528,36 +3166,8 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* sync_rx_queues */ lkpi_80211_mo_sync_rx_queues(hw); - /* sta_pre_rcu_remove */ - lkpi_80211_mo_sta_pre_rcu_remove(hw, vif, sta); - - /* Take the station down. */ - - /* Adjust sta and change state (from AUTHORIZED) to ASSOC. */ - KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); - KASSERT(lsta->state == IEEE80211_STA_AUTHORIZED, ("%s: lsta %p state not " - "AUTHORIZED: %#x\n", __func__, lsta, lsta->state)); - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); - if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(ASSOC) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } - - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); - #ifdef LKPI_80211_HW_CRYPTO if (lkpi_hwcrypto) { - /* - * In theory we only need to do this if we changed assoc. - * If we were not assoc, there should be no keys and we - * should not be here. - */ -#ifdef notyet - KASSERT((bss_changed & BSS_CHANGED_ASSOC) != 0, ("%s: " - "trying to remove keys but were not assoc: %#010jx, lvif %p\n", - __func__, (uintmax_t)bss_changed, lvif)); -#endif error = lkpi_sta_del_keys(hw, vif, lsta); if (error != 0) { ic_printf(vap->iv_ic, "%s:%d: lkpi_sta_del_keys " @@ -3572,29 +3182,12 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int } #endif - /* Update sta_state (ASSOC to AUTH). */ - KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); - KASSERT(lsta->state == IEEE80211_STA_ASSOC, ("%s: lsta %p state not " - "ASSOC: %#x\n", __func__, lsta, lsta->state)); - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_AUTH); - if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(AUTH) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } + /* sta_pre_rcu_remove */ + lkpi_80211_mo_sta_pre_rcu_remove(hw, vif, sta); - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); + synchronize_net(); - /* Update sta and change state (from AUTH) to NONE. */ - KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); - KASSERT(lsta->state == IEEE80211_STA_AUTH, ("%s: lsta %p state not " - "AUTH: %#x\n", __func__, lsta, lsta->state)); - error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_NONE); - if (error != 0) { - ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(NONE) " - "failed: %d\n", __func__, __LINE__, error); - goto out; - } + /* Take the station down. */ bss_changed = 0; /* @@ -3641,16 +3234,15 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_lsta_remove(lsta, lvif); - lkpi_lsta_dump(lsta, ni, __func__, __LINE__); /* sta no longer save to use. */ + lkpi_lsta_dump(lsta, ni, __func__, __LINE__); IMPROVE("Any bss_info changes to announce?"); - vif->bss_conf.qos = 0; + vif->bss_conf.qos = false; bss_changed |= BSS_CHANGED_QOS; vif->cfg.ssid_len = 0; memset(vif->cfg.ssid, '\0', sizeof(vif->cfg.ssid)); bss_changed |= BSS_CHANGED_BSSID; vif->bss_conf.use_short_preamble = false; - vif->bss_conf.qos = false; /* XXX BSS_CHANGED_???? */ vif->bss_conf.dtim_period = 0; /* go back to 0. */ bss_changed |= BSS_CHANGED_BEACON_INFO; @@ -3666,11 +3258,10 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_remove_chanctx(hw, vif); - error = EALREADY; out: wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); - if (error == EALREADY) { + if (error == 0) { /* * We do this outside the wiphy lock as net80211::node_free() may call * into crypto code to delete keys and we have a recursed on @@ -3682,15 +3273,148 @@ out: */ ieee80211_free_node(ni); } -outni: + return (error); +} + +/* DOWN4 */ +static int +lkpi_sta_scan_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +{ + /* lkpi_iv_newstate() handles the stop scan case in common code. */ + return (lkpi_sta_state_do_nada(vap, nstate, arg)); +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +static int +lkpi_sta_auth_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +{ + int error; + + error = lkpi_sta_auth_to_scan(vap, nstate, arg); + if (error == 0) + error = lkpi_sta_scan_to_init(vap, nstate, arg); + return (error); +} + +/* auth_to_auth, assoc_to_assoc. */ +static int +lkpi_sta_a_to_a(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) +{ + struct lkpi_hw *lhw; + struct ieee80211_hw *hw; + struct lkpi_vif *lvif; + struct ieee80211_vif *vif; + struct lkpi_sta *lsta; + struct ieee80211_prep_tx_info prep_tx_info; + int error; + + lhw = vap->iv_ic->ic_softc; + hw = LHW_TO_HW(lhw); + lvif = VAP_TO_LVIF(vap); + vif = LVIF_TO_VIF(lvif); *** 161 LINES SKIPPED *** From nobody Fri Feb 27 02:30: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 4fMXNr2L3Pz6T7kZ for ; Fri, 27 Feb 2026 02:30:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNq6HpLz41vy for ; Fri, 27 Feb 2026 02:30:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P8LrD0xo5fR8K5Lw3GMywRsTDyOvn9x1/9bsdrLsA/Y=; b=vYxJKxt7tyP9Lr4yKA+JVlLLmL22qv6sQPBH+ARen3KRfwg69ViBECxCiyEH6xB8TApkgC vc2HalxrdM+eLMw/092+vfqH2YxrlMAThSSaCTlG+LPTqyjASlrFbs00vv4R7ymCrv75io elUBLODqVeHJuq8Ev8t6fTY/1kFQAs8oyqE9oqZ9r3QbiSensx0j/08Lfpanpxzzg937xY ZJuoX3W4Qe6av1uO+cyrfH4sVfby/0RJcDXUAPdihzcRFOf2AeFea6B7VqFKu17JH5V/PU QgRjUlGgSnYS/aMbOfqpi5iuH1tCJYpk11F2iBtDXdwF+xAIxhrcS9EozcZ4aA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159419; a=rsa-sha256; cv=none; b=olhGqVoLMzkH3hzpHinB7s0MlRg9N7QghxW55d/zZpkcRIUa2SYhtWEq7qoDLFHNajuxge zcbDBN+C9SvgRlRvGDkb7MnBI6nVKYRasTkabRNpxkKd8ZQMFDa4LAxhCtwLiaj2g8+2GI cr9+Buk/ff3vDVADq5K0gmlerZjSnn/UhrK2+Nt5WqYkCVh3xqWXmUAuX1cTtk9zeSS/hF /CQVMNVdSujFndtJ4sOdewur5NXX+7uk9k3PjQZAzf/chz2yB5rVqMoS1NyvR/B/+yDaKk Z1MxbSylszePa3j4VK0wzM9mPHeVDGlDS2GOxRyBIgmL4k0hJyDCyuxCq9EEhw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P8LrD0xo5fR8K5Lw3GMywRsTDyOvn9x1/9bsdrLsA/Y=; b=luUQ/Dh9wTvII0n5MEhR5J/VqrGAwb0duhFP4pJg9jUO+STYEGanuByiFXrylsWVKfCmhg X6WdeMgxDfCQu1gcx4HdAoUMIwz9Atsh220i5+03IWSXSS+i3HJd9HYgDjJjdqdrE90W+k zz59a/eicUJtiMere2acNRx29cx/d43dG8H93aeBKJk8Uq2n8XiuHngcw7P97Zj62jOYwj 2+F4JP/mDaZFHBSgfYiIWBzrU8hlf9qO9YKR/gME3sB++O9MueIk7dcKLUKP+NCP6vTkSi JYVRuUubLPOiKEqy6AHoq0tr5du/ctyGWzEZQTODHgIO+nP6oJhSHFXFmrFpkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNq5fs5zygL for ; Fri, 27 Feb 2026 02:30:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 226eb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 7e9c07d5ec62 - stable/15 - LinuxKPI: 802.11: improve crypto debug logging List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 7e9c07d5ec621a91d329f5b1d2321be4883468b3 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:19 +0000 Message-Id: <69a101bb.226eb.391f5db4@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7e9c07d5ec621a91d329f5b1d2321be4883468b3 commit 7e9c07d5ec621a91d329f5b1d2321be4883468b3 Author: Bjoern A. Zeeb AuthorDate: 2026-02-25 00:05:36 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:09:41 +0000 LinuxKPI: 802.11: improve crypto debug logging Add a log entry to lkpi_ieee80211_iterate_keys() in order to be able to determine if there are still keys available when a driver calls into this (e.g., iwlwifi does before removing the sta to make sure the keys are gone). Sponsored by: The FreeBSD Foundation (cherry picked from commit acba7a62b92ff62ca4ae831e9c28fc6ed4f6455a) --- sys/compat/linuxkpi/common/src/linux_80211.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 550bd417c529..9693e4eec268 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -7106,6 +7106,14 @@ lkpi_ieee80211_iterate_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *, struct ieee80211_key_conf *, void *), void *arg) { +#ifdef LINUXKPI_DEBUG_80211 + if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) + net80211_vap_printf(LVIF_TO_VAP(VIF_TO_LVIF(vif)), + "%s:%d: lsta %6D added_to_drv %d kc[keyix %u] %p\n", + __func__, __LINE__, LSTA_TO_STA(lsta)->addr, ":", + lsta->added_to_drv, keyix, lsta->kc[keyix]); +#endif + if (!lsta->added_to_drv) return; From nobody Fri Feb 27 02:30: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 4fMXNt1wnQz6T7sW for ; Fri, 27 Feb 2026 02:30:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMXNt00txz425x for ; Fri, 27 Feb 2026 02:30:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159422; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YuBEtoFK1l+pqhc1Y6Ab4595rycXRcNT/ZiB/Vz9mXA=; b=ER1aQnpbnj/tQZLnAP2ueOZgxkT50Ip0L3U13oBkSUDUNW9OMDXxgQ2z3jsD4fesYOensl FCSw5wGNvavY6BvF4uPdyh5gVRj24PAl6hWbGKhvTD2X8r75H0g03IU+XgR4FS2Zo4s32f Q5rhyg7ATV7gTnIQzcNQOhb7wyshSH4rKM02j9+vobqHrJ10NWBXx9m4fPY2VhYSi0cVQ0 QByma9igomYTy0UEyz6t9bZ1s4yDBLzplE0UbCd2MEaYzvblQp5vdMBfsLi2GHa+uppC8u SeVztQvK9KUtA+lGVNqUFciDjBKSf3Sd7a4WxNnOvqwLO7gDMiXLvDKqpj8X0Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772159422; a=rsa-sha256; cv=none; b=lNXF7AdRIRP4M/czPI4ivTUi462qM/WD4etQoVYatetpVFitjssB2Nke+i1bLprHJstCCu jIhHsv7tT/NbusHKCXjpxMEELC13an+XGUFcuIOGoYbEhCMiDVGFqJCgizvfRuRET166hQ gJY2xWAuByipe4P4VPc6ETPCou5eY43pXBrGok1SlejgMHn/v/mtkjWH7ksWcIHl4Vz4D9 D4agmaGpaReANmyDjdb9+qX0PGwhUT7A3tc3KMq1TIq99tl1ZPGxJmS23hDn8DaajDODUP 4CGK6LMm6Fe1ad4zav0nB07ixaC2yId5Extdmvqnzl9iCdfp01nNNgglWZhFGg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772159422; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YuBEtoFK1l+pqhc1Y6Ab4595rycXRcNT/ZiB/Vz9mXA=; b=HG3UQy7RP6p91n5bGWFyxMpeU4uxiJfu/hRP58FoiWmOdwNYdsXYgEMKkRWpzCInMNmrM3 QQ5aW6xTx0SZdaXo5CMhCxYpf3671zjQALcZPhDq2l6xj8j0Xa9YbYtUieHnIgHs86HWra 07hTn75/kSdJGZcki0HBKDxvL6Yhtmd8AzbivI3dwo4K4US9fub25Ctzt7HIyWoSjWySJo FsvEPdEd20RnFaCWk2o0wL12AOPTg4BumHqnVDKd9BY/rPt/DeBFpcXq/sixYfOgIV2a3y ZSjO7TJiWRnAy8jqSRHKEB1YqrtKyyaet0EYqQdl6j/Qb7TJyZbm+SFHW9PYEA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMXNs6ScWzyZs for ; Fri, 27 Feb 2026 02:30:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 211c9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 02:30:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 112e91693f5b - stable/15 - LinuxKPI: remove dummy header now in common List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 112e91693f5b7f6ec59c864c2db55d3a9843499f Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 02:30:21 +0000 Message-Id: <69a101bd.211c9.3b71dd50@gitrepo.freebsd.org> The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=112e91693f5b7f6ec59c864c2db55d3a9843499f commit 112e91693f5b7f6ec59c864c2db55d3a9843499f Author: Bjoern A. Zeeb AuthorDate: 2026-02-26 22:46:08 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-02-26 23:09:56 +0000 LinuxKPI: remove dummy header now in common page_pool/helpers.h does exist in common/include/net/page_pool/helpers.h so we can remove the dummy header file. Sponosred by: The FreeBSD Foundation (cherry picked from commit c944960a5bd7725e4d5e6805ec1e55b7de147c35) --- sys/compat/linuxkpi/dummy/include/net/page_pool/helpers.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sys/compat/linuxkpi/dummy/include/net/page_pool/helpers.h b/sys/compat/linuxkpi/dummy/include/net/page_pool/helpers.h deleted file mode 100644 index e69de29bb2d1..000000000000 From nobody Fri Feb 27 10:05: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 4fMkVT3sJhz6Sbp9 for ; Fri, 27 Feb 2026 10:05:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMkVT3Fz1z4Chq for ; Fri, 27 Feb 2026 10:05:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772186753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nSXKT1O6tJ5r10WmV4o5FEHn8NM9mzThjMupWg6T59I=; b=XHHHciybze3Xp1AT/tebkIb7TtQfkZcJrkcj8sRGEE8TQgTsmqHhA6cOKWBSyVEZz2LQif iPMFWp9Q5OojuXfNiRR2gQMcq68ZBjD3dJbtDVKH8LbfWlPt5b9fQES7cS9FcbINxjzzNL 0SDB2vhZVl298hLhcK5Qt4QoGxcQDjh41uyifvzU+fHOwnfGM/RsA5zIQy6bmH9GGbM1xU PM+8P55uFdoAx5/BBfEXGWGIHNTZ2Jwj2O+YQJSwFpKsVirOgkQ/EIDklllstxLS5+9w0v zwzRSQFmd3zkdCk4yRCJEstTCfzdcCchfc8sTlSgHIuiTSPSGsj1ln9Z9z2JdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772186753; a=rsa-sha256; cv=none; b=JENySUL8M801qQtL0hxHh8Ya3MQkLcMmiV3zpLXFrpA4IfQJQOCnil56NVSJRrlO9Ymiz+ Be9r7R3QI00mNZqOX7NUJ6KSrjgOV0sxdVYlx3XDW03DhD8vq66KirqSvYFAKaZR0Kdm51 cwtK5fgMsMn18asv/3nNvMmxIG1YoL86WM01Xj4I/BCo+CgjAGS795zV/Umflq2K3bdTCX sfOcQ9pYa/zHRoGhGSZAMtVxuAbKawhB3nGJMoLgrQix3fYg1FBLOjJIjDdTyYfCbX7Imt B4TZxg15fJWRAsOWcehbc0fLM6Uy+BPDhI4xLI87onEPRZAP3ZHjAM0rcIVXbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772186753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nSXKT1O6tJ5r10WmV4o5FEHn8NM9mzThjMupWg6T59I=; b=m6UcN8qNg31Sgk0jwkIHsnkz8VETtSlphmUmUSYbd3M/N4U+xYAVkZhfI/Hg93WRRbMNxS eQLc2aWV3O8MpvHXkW9NWFFL/DJZ8u55/PUt9wpzmLLI1NIFF7vXh7jHGrI3QKGTxUfeni bfcJdo503xzCsVmP+DlEvsqh3sdyfKsXfX14sCUR1m650OF4aFc/j71u3vn/faBOz/eheO KBL8ZyNTUeXqXfgAEyZwKFSwv1ionecudPAg1aNbQkAILLUNCHVQs/NfcF0D4/ty6FW0UE BHo99H3vlPWKbON+VXYspyZAwLZLGNkRXlApCznBp7xvsPh6TNETx2CCjlWQPQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMkVT2Vy7z1Bcq for ; Fri, 27 Feb 2026 10:05:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30858 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 10:05: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: d851e0070499 - stable/15 - ngctl: Fix getline loop List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: d851e0070499b8b34f3cf1efb956aefa6faf6859 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 10:05:53 +0000 Message-Id: <69a16c81.30858.65dde7ed@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d851e0070499b8b34f3cf1efb956aefa6faf6859 commit d851e0070499b8b34f3cf1efb956aefa6faf6859 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-24 14:23:39 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-27 10:05:26 +0000 ngctl: Fix getline loop I misremembered when I wrote this code: getline() returns -1 on EOF, not zero, so the loop condition and the error check are both incorrect (though in practice getline() will never return 0). MFC after: 3 days Fixes: 3cbdcabf714d ("ngctl: Modernize code somewhat") Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55487 (cherry picked from commit 6c4777c59325c2cfefcce0c466b3bf475404a550) --- usr.sbin/ngctl/main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/ngctl/main.c b/usr.sbin/ngctl/main.c index b58de1e042b3..2b711fd4155a 100644 --- a/usr.sbin/ngctl/main.c +++ b/usr.sbin/ngctl/main.c @@ -243,7 +243,7 @@ ReadFile(FILE *fp) unsigned int lineno = 0; int rtn = CMDRTN_OK; - while ((len = getline(&line, &sz, fp)) > 0) { + while ((len = getline(&line, &sz, fp)) >= 0) { lineno++; if (*line == '#') continue; @@ -252,7 +252,7 @@ ReadFile(FILE *fp) break; } } - if (len < 0) + if (ferror(fp)) rtn = CMDRTN_ERROR; free(line); return (rtn); From nobody Fri Feb 27 10:05: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 4fMkVV67F9z6Sbv7 for ; Fri, 27 Feb 2026 10:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMkVV41JQz4CXq for ; Fri, 27 Feb 2026 10:05:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772186754; 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=zrlpELvVU8gkHoEKj8QJ6SAmV9INrbczCiQ22eUWbQg=; b=FqaVotN+UrDcZqCfH7foA86sJI8f3mqHQ2dChFlToaD9NMMrluACcKfZ/i2/t+TXrTmAJ1 8rPJDoVz5GGA3ECTxce8wnV2pwbnAX+dB/XurcnfE6z9+ttXF4+F74w5OOYrYDEIzR+IqA QpS55qrObCv8Bwu4FlArLUXTssRjSZwAh15Nv44K2rWOdQHwMaNesnwklUlkKidpAc1oy7 dA2OxuOqzWhQzUnwfAWJfT7AD8Oy6oMowpGdkCL0t5tU8PanAqCXR3T6luvsekQcbem0Yj oD+9h4vxGt/2OSQPRWRByo0/qsWSy4/MgL6+iC8ghk+CKvDft8aDg0towFl8Bg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772186754; a=rsa-sha256; cv=none; b=v6kI/hbMexQj0+u/WI6E6dtmmm1V5BClo+WRmbxY40GbItq98+eeXdRsyPyCc1ODrII5YB 6eRp4WvwiKm7UqW3q6hULGu5qYUJnt5ZqpjBTfVlT4kTNDP2E1u3f1sneEKTCv/xAmPSkC 5460JfmKmkGUtk2/c7VmVbVzO0Z+MBYM3lvZu/66mZf8oT48iUbCfD+VaySJDSfYHDYTHu eC+23/lEjXMptAaG7Yyf7vy4mb+0FMwahcEPCh4Xjf3nLX0DXIpGcT+fUaU1rluRqh56tN vHf3dXNyHFzxkzKd85lgIHKYw8qTJjp0d1k16tIiEFz52X0LDIImENQe/1OHgQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772186754; 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=zrlpELvVU8gkHoEKj8QJ6SAmV9INrbczCiQ22eUWbQg=; b=bauBBuImZlQ3SLkiPSA11zWtYh9ZckRq3NfJbUNWFXh0mQNNoN436ADCcbTsnlKTKDz8xg ODRu68/lQ+e96YVriP8rSgmpr2e5k7ZZNHcPOA9NJRgctG8e6K6a6evtqyWEG9IkY2BiVY E57aS2uvknifzPff8SxpyJJgd7909U0kIzJ/PECpI5lEAWWoVR9PAhmGPbxCBmZIN12+dF HBwJQafboamQrgboAPssS6j4hywphWvbIIvN2nw2MCKyrUT4sdLUiATwGtUBL4buQl5DoW yQRzo0swpzW4WU3nfzzdCUJo8RuHXhwDvGTg3unF+qW+0xyYglMvclvAkQDc8Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMkVV2mspz1C1j for ; Fri, 27 Feb 2026 10:05:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 304a1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 10:05:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: David Marker From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: d3f3314359a0 - stable/15 - ngctl.8: fix incorrect 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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d3f3314359a0ee9bf7b2520c45bee5968a6bce62 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 10:05:54 +0000 Message-Id: <69a16c82.304a1.4ccf7359@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d3f3314359a0ee9bf7b2520c45bee5968a6bce62 commit d3f3314359a0ee9bf7b2520c45bee5968a6bce62 Author: David Marker AuthorDate: 2026-02-24 14:27:52 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-27 10:05:26 +0000 ngctl.8: fix incorrect synopsis Tiny manpage bug I caused in D50241 I left a line in the manpage that shouldn't be there. MFC after: 3 days Fixes: 72d01e62b082 ("netgraph: teach ngctl to attach and run itself in a jail") Reviewed by: des, markj Differential Revision: https://reviews.freebsd.org/D55485 (cherry picked from commit 9ed56cd8d6929e3ee733e1e61d2e0c6b81122983) --- usr.sbin/ngctl/ngctl.8 | 1 - 1 file changed, 1 deletion(-) diff --git a/usr.sbin/ngctl/ngctl.8 b/usr.sbin/ngctl/ngctl.8 index 63b8f58ed3df..2fb22fd59646 100644 --- a/usr.sbin/ngctl/ngctl.8 +++ b/usr.sbin/ngctl/ngctl.8 @@ -44,7 +44,6 @@ .Op Fl f Ar filename .Op Fl n Ar nodename .Op Ar command Op Ns Ar argument ... -.Op Ar command ... .Sh DESCRIPTION The .Nm From nobody Fri Feb 27 12:05: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 4fMn8f1b31z6Srvf for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8d5fkTz3DBB for ; Fri, 27 Feb 2026 12:05:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193937; 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=Hr0gtEPehHdBGO4ycEtblxTYyDKLOrUjMb+Q+Z2FCGc=; b=L5xIxkldjhSqOQtSjBsFfUluzszUxURuEc0C0vDCwDAmUoDY/+W6q0QHxxtScE//Akr1jT dKflgebE4FWx4GDLsMd8+tvl8i1B2i2riq+lEqqNc/T1tRC9Ilo0IFOD+xK/aeyKw9joTK QCtese1su4aCKg/361Hm4REI63WFZ5dV8uRsIWcEC4VVGQWDpfBW5DnmgiOiQTaWvBo6r6 oa8t3AozrGpmvnf/RucQcl3PfxHtoI50bauTA/h/MW8DTtPpmB6BB20ecggAGg7GcAzc5r 7PzrSW4dLRbDmmUPNZ8uv6BpEK3OwD9o4YrOMSYOFaw1te0L4Zn8GdBY/LUBRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193937; a=rsa-sha256; cv=none; b=lJOLWQfFieDznqiJSwYbmxlbdynZiO2WBA3JSBTLj2Fiwb09TyQmNGq97s7rz10lZPwj9b pzjg4ynglvC7wQLqRkohWOrs06agRjANeirmqO9dUoaLKayg/DECbwHGOcB98d5NMnDmrz UAkZyaFTY+ce4R6FebHmOSvxqynIIACXemgqhh3rGydRy/xYAeuq/KWKTm1oX7myp8spFD i9od1LUtBf5+O1axfRLbOkcua/bnTwAPa5mjcE9iMex4kbwRBjQw82qtln6fAbUS43/XhF 6ItFJ5X+zwghbrGyyzyy+Y8sY9cPY7Tm5ChAcJ2jxb5MqbPtxLRX19B3UUMg+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=1772193937; 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=Hr0gtEPehHdBGO4ycEtblxTYyDKLOrUjMb+Q+Z2FCGc=; b=hHx5XPDXqbfgHU/indlUxWNbz8H2Lh6f9TgATljL/pz2ZgywcEnoLLc3xGx4AjjUsyF9q3 rkDAYJBfSP0exOtCUk18qDXSfAoeyJP4+kL+RBJkwgnbXDV8v4k5uIW4WwJR6zLA8HyXE6 slqhPSvvMM8b9UhasYD9RPU4vwD3vmmcPqmLrTTeRpYXAbm6aS04aujcCDIyhwxq/RDvak OrA/ZJPrUFI9LORVl99er4tB3ST/MYg395RvOnRe2vWEuUbLOhe4C59BdCa4Iwc9/E80sH YHJjLtoWF6m8nbdhx6dEutsS4RwkMdnvWbW5hCAXff6i8fXrXRuU/lntk0NcKg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8d4y3yz1wd for ; Fri, 27 Feb 2026 12:05:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3eb00 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sreekanth Reddy From: Sumit Saxena Subject: git: b7c72909b4c4 - stable/15 - bnxt_re: Fix active_speed value when two ports are aggregated List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b7c72909b4c4f261ec4971764357c3d4b699727f Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:37 +0000 Message-Id: <69a18891.3eb00.7a92c287@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=b7c72909b4c4f261ec4971764357c3d4b699727f commit b7c72909b4c4f261ec4971764357c3d4b699727f Author: Sreekanth Reddy AuthorDate: 2026-01-23 16:36:02 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:38 +0000 bnxt_re: Fix active_speed value when two ports are aggregated Currently driver is not considering the active_lanes while displaying the speed & width of port and hence it showing invalid active_speed and active_width values in the ibv_devinfo command output when two ports are aggregated at hardware level. Fixed the driver to consider the active_lanes while determining the active_speed & active_width values. Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D54523 MFC after: 3 days (cherry picked from commit b7d6334df61a559e98191f90fd5e611e0d077def) --- sys/dev/bnxt/bnxt_en/bnxt.h | 2 + sys/dev/bnxt/bnxt_en/bnxt_hwrm.c | 8 ++- sys/dev/bnxt/bnxt_en/bnxt_ulp.h | 1 + sys/dev/bnxt/bnxt_en/if_bnxt.c | 4 +- sys/dev/bnxt/bnxt_re/bnxt_re.h | 1 + sys/dev/bnxt/bnxt_re/ib_verbs.c | 104 +++++++++++++++++++++++++++++---------- sys/dev/bnxt/bnxt_re/ib_verbs.h | 12 +++++ sys/dev/bnxt/bnxt_re/main.c | 1 + 8 files changed, 103 insertions(+), 30 deletions(-) diff --git a/sys/dev/bnxt/bnxt_en/bnxt.h b/sys/dev/bnxt/bnxt_en/bnxt.h index dc2ea1fdc09e..5556914fb61e 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt.h +++ b/sys/dev/bnxt/bnxt_en/bnxt.h @@ -455,6 +455,7 @@ struct bnxt_link_info { uint16_t req_link_speed; uint8_t module_status; struct hwrm_port_phy_qcfg_output phy_qcfg_resp; + uint8_t active_lanes; }; enum bnxt_phy_type { @@ -1269,6 +1270,7 @@ struct bnxt_softc { #define BNXT_PHY_FL_NO_PAUSE (HWRM_PORT_PHY_QCAPS_OUTPUT_FLAGS2_PAUSE_UNSUPPORTED << 8) #define BNXT_PHY_FL_NO_PFC (HWRM_PORT_PHY_QCAPS_OUTPUT_FLAGS2_PFC_UNSUPPORTED << 8) #define BNXT_PHY_FL_BANK_SEL (HWRM_PORT_PHY_QCAPS_OUTPUT_FLAGS2_BANK_ADDR_SUPPORTED << 8) +#define BNXT_PHY_FL_SPEEDS2 (HWRM_PORT_PHY_QCAPS_OUTPUT_FLAGS2_SPEEDS2_SUPPORTED << 8) struct bnxt_aux_dev *aux_dev; struct net_device *net_dev; struct mtx en_ops_lock; diff --git a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c index e540cc74578d..2a79b418fe62 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c @@ -2917,10 +2917,14 @@ bnxt_hwrm_port_phy_qcfg(struct bnxt_softc *softc) } link_info->duplex_setting = resp->duplex_cfg; - if (link_info->phy_link_status == HWRM_PORT_PHY_QCFG_OUTPUT_LINK_LINK) + if (link_info->phy_link_status == HWRM_PORT_PHY_QCFG_OUTPUT_LINK_LINK) { link_info->link_speed = le16toh(resp->link_speed); - else + if (softc->phy_flags & BNXT_PHY_FL_SPEEDS2) + link_info->active_lanes = resp->active_lanes; + } else { link_info->link_speed = 0; + link_info->active_lanes = 0; + } link_info->force_link_speed = le16toh(resp->force_link_speed); link_info->auto_link_speeds = le16toh(resp->auto_link_speed); link_info->support_speeds = le16toh(resp->support_speeds); diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h index 04c3f558fd20..7d7ecbd2f536 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h @@ -126,6 +126,7 @@ struct bnxt_en_dev { struct bnxt_dbr *en_dbr; struct bnxt_bar_info hwrm_bar; u32 espeed; + uint8_t lanes; }; struct bnxt_en_ops { diff --git a/sys/dev/bnxt/bnxt_en/if_bnxt.c b/sys/dev/bnxt/bnxt_en/if_bnxt.c index af6a4c7b01c1..94775457b7e3 100644 --- a/sys/dev/bnxt/bnxt_en/if_bnxt.c +++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c @@ -4794,9 +4794,11 @@ bnxt_report_link(struct bnxt_softc *softc) const char *duplex = NULL, *flow_ctrl = NULL; const char *signal_mode = ""; - if(softc->edev) + if(softc->edev) { softc->edev->espeed = bnxt_fw_to_ethtool_speed(link_info->link_speed); + softc->edev->lanes = link_info->active_lanes; + } if (link_info->link_up == link_info->last_link_up) { if (!link_info->link_up) diff --git a/sys/dev/bnxt/bnxt_re/bnxt_re.h b/sys/dev/bnxt/bnxt_re/bnxt_re.h index fe7a27f4e216..c0bc11e490b2 100644 --- a/sys/dev/bnxt/bnxt_re/bnxt_re.h +++ b/sys/dev/bnxt/bnxt_re/bnxt_re.h @@ -535,6 +535,7 @@ struct bnxt_re_dev { bool is_virtfn; u32 num_vfs; u32 espeed; + u8 lanes; /* * For storing the speed of slave interfaces. * Same as espeed when bond is not configured diff --git a/sys/dev/bnxt/bnxt_re/ib_verbs.c b/sys/dev/bnxt/bnxt_re/ib_verbs.c index dba0f348c414..37b77c5af909 100644 --- a/sys/dev/bnxt/bnxt_re/ib_verbs.c +++ b/sys/dev/bnxt/bnxt_re/ib_verbs.c @@ -241,50 +241,99 @@ int bnxt_re_modify_device(struct ib_device *ibdev, return 0; } -static void __to_ib_speed_width(u32 espeed, u8 *speed, u8 *width) +static void __to_ib_speed_width(u32 espeed, u8 lanes, u8 *speed, u8 *width) { - switch (espeed) { - case SPEED_1000: - *speed = IB_SPEED_SDR; + if (!lanes) { + switch (espeed) { + case SPEED_1000: + *speed = IB_SPEED_SDR; + *width = IB_WIDTH_1X; + break; + case SPEED_10000: + *speed = IB_SPEED_QDR; + *width = IB_WIDTH_1X; + break; + case SPEED_20000: + *speed = IB_SPEED_DDR; + *width = IB_WIDTH_4X; + break; + case SPEED_25000: + *speed = IB_SPEED_EDR; + *width = IB_WIDTH_1X; + break; + case SPEED_40000: + *speed = IB_SPEED_QDR; + *width = IB_WIDTH_4X; + break; + case SPEED_50000: + *speed = IB_SPEED_EDR; + *width = IB_WIDTH_2X; + break; + case SPEED_100000: + *speed = IB_SPEED_EDR; + *width = IB_WIDTH_4X; + break; + case SPEED_200000: + *speed = IB_SPEED_HDR; + *width = IB_WIDTH_4X; + break; + case SPEED_400000: + *speed = IB_SPEED_NDR; + *width = IB_WIDTH_4X; + break; + default: + *speed = IB_SPEED_SDR; + *width = IB_WIDTH_1X; + break; + } + return; + } + + switch (lanes) { + case 1: *width = IB_WIDTH_1X; break; - case SPEED_10000: - *speed = IB_SPEED_QDR; - *width = IB_WIDTH_1X; + case 2: + *width = IB_WIDTH_2X; break; - case SPEED_20000: - *speed = IB_SPEED_DDR; + case 4: *width = IB_WIDTH_4X; break; - case SPEED_25000: - *speed = IB_SPEED_EDR; + case 8: + *width = IB_WIDTH_8X; + break; + case 12: + *width = IB_WIDTH_12X; + break; + default: *width = IB_WIDTH_1X; + } + + switch (espeed / lanes) { + case SPEED_2500: + *speed = IB_SPEED_SDR; break; - case SPEED_40000: - *speed = IB_SPEED_QDR; - *width = IB_WIDTH_4X; + case SPEED_5000: + *speed = IB_SPEED_DDR; break; - case SPEED_50000: - *speed = IB_SPEED_EDR; - *width = IB_WIDTH_2X; + case SPEED_10000: + *speed = IB_SPEED_FDR10; break; - case SPEED_100000: + case SPEED_14000: + *speed = IB_SPEED_FDR; + break; + case SPEED_25000: *speed = IB_SPEED_EDR; - *width = IB_WIDTH_4X; break; - case SPEED_200000: + case SPEED_50000: *speed = IB_SPEED_HDR; - *width = IB_WIDTH_4X; break; - case SPEED_400000: + case SPEED_100000: *speed = IB_SPEED_NDR; - *width = IB_WIDTH_4X; break; default: *speed = IB_SPEED_SDR; - *width = IB_WIDTH_1X; - break; - } + } } /* Port */ @@ -322,9 +371,10 @@ int bnxt_re_query_port(struct ib_device *ibdev, u8 port_num, port_attr->subnet_timeout = 0; port_attr->init_type_reply = 0; rdev->espeed = rdev->en_dev->espeed; + rdev->lanes = rdev->en_dev->lanes; if (test_bit(BNXT_RE_FLAG_IBDEV_REGISTERED, &rdev->flags)) - __to_ib_speed_width(rdev->espeed, &active_speed, + __to_ib_speed_width(rdev->espeed, rdev->lanes, &active_speed, &active_width); port_attr->active_speed = active_speed; diff --git a/sys/dev/bnxt/bnxt_re/ib_verbs.h b/sys/dev/bnxt/bnxt_re/ib_verbs.h index e8c840f8946a..f3b7f44c828d 100644 --- a/sys/dev/bnxt/bnxt_re/ib_verbs.h +++ b/sys/dev/bnxt/bnxt_re/ib_verbs.h @@ -49,10 +49,22 @@ struct bnxt_re_dev; #define SPEED_1000 1000 #endif +#ifndef SPEED_2500 +#define SPEED_2500 2500 +#endif + +#ifndef SPEED_5000 +#define SPEED_5000 5000 +#endif + #ifndef SPEED_10000 #define SPEED_10000 10000 #endif +#ifndef SPEED_14000 +#define SPEED_14000 14000 +#endif + #ifndef SPEED_20000 #define SPEED_20000 20000 #endif diff --git a/sys/dev/bnxt/bnxt_re/main.c b/sys/dev/bnxt/bnxt_re/main.c index 0e0cc32218bd..eb21c770ca5f 100644 --- a/sys/dev/bnxt/bnxt_re/main.c +++ b/sys/dev/bnxt/bnxt_re/main.c @@ -3818,6 +3818,7 @@ static int bnxt_re_dev_reg(struct bnxt_re_dev **rdev, struct ifnet *netdev, void bnxt_re_get_link_speed(struct bnxt_re_dev *rdev) { rdev->espeed = rdev->en_dev->espeed; + rdev->lanes = rdev->en_dev->lanes; return; } From nobody Fri Feb 27 12:05: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 4fMn8c68w3z6Ss75 for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8c4nXDz3DDn for ; Fri, 27 Feb 2026 12:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193936; 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=AVkcW2TUIJEWZo1aPbXkAnJXWcUK9Tlyf+EzwsNC+Ok=; b=GuR4h4nYr2iGXUGPM+BiuuiKJPY/itTuUr1NPIE8/BG0Uhci1axqFMFzLaoTRxgLO1iO1J vlCQ8N5oWG3i6YETf+iK2+wDouiBYMgOHvKnyFplvYg04uY4yhRhXomuUJphj53Sw9TveN FcziDEZEQAgDbxNy1wFnUMxog77D6yEqj9uDV+Mz+SY9XilK3Id+TLdX/oQVoiLBg5eE20 nKxzxfuydKQTiIfJgFTFbkXI1d//HoI5JatkTV8C7lJ33DUfxb2nsKaTdgJPX/li8BvoQc 2Uz3cA5CFYoZUKTrcl+2Zy58jJ8ggvvLsQ1wjv68s9uzNU25mhyKbjlRkqmoZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193936; a=rsa-sha256; cv=none; b=ijiCYR+uCWhHGFF9glOdUvSOdJWkwbqVi32siDnUyak7E57sqnOCCss4QhlHSi7lUiRA8s rrWRY17D4BG+XyrxyDAbPF2AYlQPmmtizoPVTXF/lknnh49uwFRdTV8sEsV/P6QdIpa7L8 6HqiaYaBELGUqcRgaZEP7hb9XTHvjPwQWI+TOR5GRDkCm14nMsd5GWVhc3zcvZuSltM+51 GtX7Ps98B0lpqKMvVQzT8PD7yGl6yviTyuO8AI1PLORaXJ+AISNpXSx7HQPQlJD+q6T+Pg aVxh97Ns2F/9W/Ro249G5tYB+Ki23ACy6f7uzp9JY7dwo8vHFyUUDxBPJqPyIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193936; 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=AVkcW2TUIJEWZo1aPbXkAnJXWcUK9Tlyf+EzwsNC+Ok=; b=dNF++ON7Zhxn40CoCV0e1FiSjCmRsDmKgqWwumIxHq7I3qWF/PTkFWMEhG2RCY4hIluJLl UYCSYd83lCaArr9qrrzwWdOAcGesyW7jPRBWWYK6crirKwcL2t1BL+yVbwbfdLIgw+KWkY VHqQlAkPQBk3t3rfGRauGc6FVyLtBT39FC0WDQqhTBrvr5BJaIUNdEMYiek5im12mH/8Ms x3LtLeUVAmi7d08maaVHZVRufY1hNbqH1znyir6CQUq/EKuVYa7FGfC7DNr34d235n7Ca7 auJGWYp3eVgKkRPmpUFmWZ5cnixHcRefmi7goAeZsrpLr3v0GaLZJmY0+a2dGw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8c44thz2Lq for ; Fri, 27 Feb 2026 12:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d459 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sreekanth Reddy From: Sumit Saxena Subject: git: 39d9a9c111ec - stable/15 - bnxt_en/re: Use FW defined resource limit for RoCE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 39d9a9c111ec5e4cfbfdfc2d8848114a73279cd5 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:36 +0000 Message-Id: <69a18890.3d459.4d5487c5@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=39d9a9c111ec5e4cfbfdfc2d8848114a73279cd5 commit 39d9a9c111ec5e4cfbfdfc2d8848114a73279cd5 Author: Sreekanth Reddy AuthorDate: 2026-01-23 16:32:51 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:38 +0000 bnxt_en/re: Use FW defined resource limit for RoCE Check FW flags for status of Resource Limits. If bit FUNC_QCAPS_RESP_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED is set, that means FW set the resource limit for L2 and RoCE. We'll then do the following: L2 driver would allocate context memory based on what FW reported. RoCE driver uses FW reported values without capping. These values are the total FW reported value minus L2 and other components shares. For example: FW reported max_qps = 137217 in L2 query, this includes: 5120 for L2 1025 for QP1 131072 for RoCE L2 will allocate backing store memory for the total. In RoCE query, we'll get max_qp = 131072 and use it without further capping. Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D54522 MFC after: 3 days (cherry picked from commit 913e454f306124c83797bfa71681dcdf806532c6) --- sys/dev/bnxt/bnxt_en/bnxt.h | 4 ++++ sys/dev/bnxt/bnxt_en/bnxt_hwrm.c | 3 +++ sys/dev/bnxt/bnxt_en/bnxt_ulp.c | 2 ++ sys/dev/bnxt/bnxt_en/bnxt_ulp.h | 2 ++ sys/dev/bnxt/bnxt_en/if_bnxt.c | 9 +++++++-- sys/dev/bnxt/bnxt_re/qplib_res.h | 7 +++++++ sys/dev/bnxt/bnxt_re/qplib_sp.c | 31 +++++++++++++++++-------------- 7 files changed, 42 insertions(+), 16 deletions(-) diff --git a/sys/dev/bnxt/bnxt_en/bnxt.h b/sys/dev/bnxt/bnxt_en/bnxt.h index 78e98eb23beb..dc2ea1fdc09e 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt.h +++ b/sys/dev/bnxt/bnxt_en/bnxt.h @@ -1250,6 +1250,10 @@ struct bnxt_softc { #define BNXT_FW_CAP_CFA_NTUPLE_RX_EXT_IP_PROTO BIT_ULL(47) #define BNXT_FW_CAP_ENABLE_RDMA_SRIOV BIT_ULL(48) #define BNXT_FW_CAP_RSS_TCAM BIT_ULL(49) + + #define BNXT_FW_CAP_SW_MAX_RESOURCE_LIMITS BIT_ULL(61) + #define BNXT_SW_RES_LMT(bp) ((bp)->fw_cap & BNXT_FW_CAP_SW_MAX_RESOURCE_LIMITS) + uint32_t lpi_tmr_lo; uint32_t lpi_tmr_hi; /* copied from flags and flags2 in hwrm_port_phy_qcaps_output */ diff --git a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c index 3e5dc0bf4b6d..e540cc74578d 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c @@ -1218,6 +1218,9 @@ bnxt_hwrm_func_qcaps(struct bnxt_softc *softc) flags_ext & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_EXT_DBR_PACING_SUPPORTED) softc->fw_cap |= BNXT_FW_CAP_DBR_PACING_SUPPORTED; + if (flags_ext2 & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED) + softc->fw_cap |= BNXT_FW_CAP_SW_MAX_RESOURCE_LIMITS; + if (flags_ext2 & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_EXT2_GENERIC_STATS_SUPPORTED) softc->fw_cap |= BNXT_FW_CAP_GENERIC_STATS; func->fw_fid = le16toh(resp->fid); diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.c b/sys/dev/bnxt/bnxt_en/bnxt_ulp.c index 9950858f0eef..677c9c99b74e 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.c @@ -458,6 +458,8 @@ static inline void bnxt_set_edev_info(struct bnxt_en_dev *edev, struct bnxt_soft edev->flags |= BNXT_EN_FLAG_ROCEV2_CAP; if (bp->is_asym_q) edev->flags |= BNXT_EN_FLAG_ASYM_Q; + if (BNXT_SW_RES_LMT(bp)) + edev->flags |= BNXT_EN_FLAG_SW_RES_LMT; edev->hwrm_bar = bp->hwrm_bar; edev->port_partition_type = bp->port_partition_type; edev->ulp_version = BNXT_ULP_VERSION; diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h index bbf16304456a..04c3f558fd20 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h @@ -90,8 +90,10 @@ struct bnxt_en_dev { #define BNXT_EN_FLAG_ULP_STOPPED 0x8 #define BNXT_EN_FLAG_ASYM_Q 0x10 #define BNXT_EN_FLAG_MULTI_HOST 0x20 + #define BNXT_EN_FLAG_SW_RES_LMT 0x400 #define BNXT_EN_ASYM_Q(edev) ((edev)->flags & BNXT_EN_FLAG_ASYM_Q) #define BNXT_EN_MH(edev) ((edev)->flags & BNXT_EN_FLAG_MULTI_HOST) +#define BNXT_EN_SW_RES_LMT(edev) ((edev)->flags & BNXT_EN_FLAG_SW_RES_LMT) const struct bnxt_en_ops *en_ops; struct bnxt_ulp ulp_tbl[BNXT_MAX_ULP]; int l2_db_offset; /* Doorbell BAR offset diff --git a/sys/dev/bnxt/bnxt_en/if_bnxt.c b/sys/dev/bnxt/bnxt_en/if_bnxt.c index a34bd1a7e511..af6a4c7b01c1 100644 --- a/sys/dev/bnxt/bnxt_en/if_bnxt.c +++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c @@ -1198,8 +1198,13 @@ static int bnxt_alloc_ctx_mem(struct bnxt_softc *softc) max_srqs = ctxm->max_entries; if (softc->flags & BNXT_FLAG_ROCE_CAP) { pg_lvl = 2; - extra_qps = min_t(u32, 65536, max_qps - l2_qps - qp1_qps); - extra_srqs = min_t(u32, 8192, max_srqs - srqs); + if (BNXT_SW_RES_LMT(softc)) { + extra_qps = max_qps - l2_qps - qp1_qps; + extra_srqs = max_srqs - srqs; + } else { + extra_qps = min_t(uint32_t, 65536, max_qps - l2_qps - qp1_qps); + extra_srqs = min_t(uint32_t, 8192, max_srqs - srqs); + } } ctxm = &ctx->ctx_arr[BNXT_CTX_QP]; diff --git a/sys/dev/bnxt/bnxt_re/qplib_res.h b/sys/dev/bnxt/bnxt_re/qplib_res.h index 914694ee3b8c..59a8a43ecef6 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_res.h +++ b/sys/dev/bnxt/bnxt_re/qplib_res.h @@ -843,4 +843,11 @@ static inline void bnxt_qplib_max_res_supported(struct bnxt_qplib_chip_ctx *cctx break; } } + +static inline u32 bnxt_re_cap_fw_res(u32 fw_val, u32 drv_cap, bool sw_max_en) +{ + if (sw_max_en) + return fw_val; + return min_t(u32, fw_val, drv_cap); +} #endif diff --git a/sys/dev/bnxt/bnxt_re/qplib_sp.c b/sys/dev/bnxt/bnxt_re/qplib_sp.c index 31a0878e421b..8c382c7a645a 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_sp.c +++ b/sys/dev/bnxt/bnxt_re/qplib_sp.c @@ -40,6 +40,7 @@ #include "qplib_res.h" #include "qplib_rcfw.h" #include "qplib_sp.h" +#include "bnxt_ulp.h" const struct bnxt_qplib_gid bnxt_qplib_gid_zero = {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }}; @@ -79,6 +80,7 @@ static void bnxt_qplib_query_version(struct bnxt_qplib_rcfw *rcfw, char *fw_ver) int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) { + struct bnxt_qplib_max_res dev_res = {}; struct creq_query_func_resp resp = {}; struct bnxt_qplib_cmdqmsg msg = {}; struct creq_query_func_resp_sb *sb; @@ -86,10 +88,10 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) struct bnxt_qplib_dev_attr *attr; struct bnxt_qplib_chip_ctx *cctx; struct cmdq_query_func req = {}; + bool sw_max_en; u8 *tqm_alloc; int i, rc = 0; u32 temp; - u8 chip_gen = BNXT_RE_DEFAULT; cctx = rcfw->res->cctx; attr = rcfw->res->dattr; @@ -110,10 +112,11 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) rc = bnxt_qplib_rcfw_send_message(rcfw, &msg); if (rc) goto bail; + bnxt_qplib_max_res_supported(cctx, rcfw->res, &dev_res, false); + sw_max_en = BNXT_EN_SW_RES_LMT(rcfw->res->en_dev); /* Extract the context from the side buffer */ - chip_gen = _get_chip_gen_p5_type(cctx); - attr->max_qp = le32_to_cpu(sb->max_qp); - attr->max_qp = min_t(u32, attr->max_qp, BNXT_RE_MAX_QP_SUPPORTED(chip_gen)); + attr->max_qp = bnxt_re_cap_fw_res(le32_to_cpu(sb->max_qp), + dev_res.max_qp, sw_max_en); /* max_qp value reported by FW does not include the QP1 */ attr->max_qp += 1; attr->max_qp_rd_atom = @@ -142,29 +145,29 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) if (_is_chip_gen_p5_p7(cctx) && cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE) attr->max_qp_sges = sb->max_sge_var_wqe; - attr->max_cq = le32_to_cpu(sb->max_cq); - attr->max_cq = min_t(u32, attr->max_cq, BNXT_RE_MAX_CQ_SUPPORTED(chip_gen)); + attr->max_cq = bnxt_re_cap_fw_res(le32_to_cpu(sb->max_cq), + dev_res.max_cq, sw_max_en); attr->max_cq_wqes = le32_to_cpu(sb->max_cqe); attr->max_cq_wqes = min_t(u32, BNXT_QPLIB_MAX_CQ_WQES, attr->max_cq_wqes); attr->max_cq_sges = attr->max_qp_sges; - attr->max_mr = le32_to_cpu(sb->max_mr); - attr->max_mr = min_t(u32, attr->max_mr, BNXT_RE_MAX_MRW_SUPPORTED(chip_gen)); - attr->max_mw = le32_to_cpu(sb->max_mw); - attr->max_mw = min_t(u32, attr->max_mw, BNXT_RE_MAX_MRW_SUPPORTED(chip_gen)); + attr->max_mr = bnxt_re_cap_fw_res(le32_to_cpu(sb->max_mr), + dev_res.max_mr, sw_max_en); + attr->max_mw = bnxt_re_cap_fw_res(le32_to_cpu(sb->max_mw), + dev_res.max_mr, sw_max_en); attr->max_mr_size = le64_to_cpu(sb->max_mr_size); attr->max_pd = BNXT_QPLIB_MAX_PD; attr->max_raw_ethy_qp = le32_to_cpu(sb->max_raw_eth_qp); - attr->max_ah = le32_to_cpu(sb->max_ah); - attr->max_ah = min_t(u32, attr->max_ah, BNXT_RE_MAX_AH_SUPPORTED(chip_gen)); + attr->max_ah = bnxt_re_cap_fw_res(le32_to_cpu(sb->max_ah), + dev_res.max_ah, sw_max_en); attr->max_fmr = le32_to_cpu(sb->max_fmr); attr->max_map_per_fmr = sb->max_map_per_fmr; - attr->max_srq = le16_to_cpu(sb->max_srq); - attr->max_srq = min_t(u32, attr->max_srq, BNXT_RE_MAX_SRQ_SUPPORTED(chip_gen)); + attr->max_srq = bnxt_re_cap_fw_res(le16_to_cpu(sb->max_srq), + dev_res.max_srq, sw_max_en); attr->max_srq_wqes = le32_to_cpu(sb->max_srq_wr) - 1; attr->max_srq_sges = sb->max_srq_sge; attr->max_pkey = 1; From nobody Fri Feb 27 12:05: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 4fMn8g1R8rz6Ss0B for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8f6P0dz3DNY for ; Fri, 27 Feb 2026 12:05:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193938; 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=xV2ffprkAu4Ufvu+jE7qGzJRMVoR39qFztx/T10oNCI=; b=G+PkVz3ShR6S2mS8Fb4yL06SLmewwoSoMrOqqJsG4KlcwEEG8+X44vvCKdFpGheWYHltdn Z0qTWYjuBYb1JKWyMYz06zVpNCYwDUJp9/afGJdEhzhOuwDHr9WO9iSWLxghAlFecIo6CM yHKT6HiBSK1XPN+4FFqPL0fJp14FoMmuEpzeAdx3V9fPTQr7mMlP5Te0uxegHKlXqECkVe cd+c9KoNcbIdTrXCYUEFlg51xlJvcr4xnNdECJkEx+VdNAzvgo57Sh7Pak0nO24Bf5B5Qn M1LzLwmTkCXoqI3a+lzafyn3egCa2TVvxEFUEG683pJh/b2fwURP7DPzQlOewA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193938; a=rsa-sha256; cv=none; b=UlycI32Ygr/wMheDuVe4V5F1rYWJV/Dgp0sAyQ2C4k+cBarEHPVQfbt0piRf0+9zuiUs9t 8TL8n9M9ct2GXSA+OxVkWVLRSkm+v6/6tQ0qgSVZJtEHyEB1BsXYW6NG3bMlEvArImL0S6 7WcZeSzwcjyEtsVxV8V8SLSjKIS/ifd5fdvZ8SsVoGyADEsBm0W5Di3Y5qCJXffZcew8+e gOzIBWAwR3GwhPgLyb9YnRJOkA0r+uL6aqb2BJ5XK9xsd9R25lzmEkEYLg6MXRUO2KZ0t3 mCyLeYo26vxPI4aTimQzOX3ET2voNkKkXGg3LKynzj53TC5zLD1iqRYOE446oQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193938; 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=xV2ffprkAu4Ufvu+jE7qGzJRMVoR39qFztx/T10oNCI=; b=DymiAJN4+anMEd5y1xKkTTBy71fo248PquydBn0UYk74guhkqLMfgKf4phFrwpFAFwKvuB gAtjSRsu/gczIVg4IXBT0u4SxqbqPSbwaD+LexcCpubAyzdeFjMKe6LrvYQgspoEHwQkdc uv+NDBI6wOgOFzKLl+KJyEP1n1VBvrXP1TUZKxw4qbiN5AmcWXiCqEzqdIJH0PxNLpXQGz TWRT9MCsKdzax7FUyp3aELF3Eas9kn9zlhPMO6buH2S8f9DQcW3rvsBqpsv6GV7ZqZ1paC tzcDEX5rHrW995NkK9Q1n3kLWEyJcN+moFIsnNex3vA52eu1bQHCvcgles2vMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8f5qP0z1kP for ; Fri, 27 Feb 2026 12:05:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c153 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sreekanth Reddy From: Sumit Saxena Subject: git: e68039680868 - stable/15 - bnxt_re: Add support to display board_id in ibv_devinfo output List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e68039680868819074734fe8fb90ac27605a5216 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:38 +0000 Message-Id: <69a18892.3c153.ecce5d9@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=e68039680868819074734fe8fb90ac27605a5216 commit e68039680868819074734fe8fb90ac27605a5216 Author: Sreekanth Reddy AuthorDate: 2026-01-23 16:38:02 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:38 +0000 bnxt_re: Add support to display board_id in ibv_devinfo output Added support to display board_id in ibv_devinfo output. ibv_devinfo util reads the board_id from below sysctl attribute, so added this sysctl attribute. sys.class.infiniband.bnxt_reX.board_id Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D54524 MFC after: 3 days (cherry picked from commit 3a9565c2a8e4f1b3da698bf6a8af5889dc4fefbd) --- sys/dev/bnxt/bnxt_en/bnxt.h | 1 + sys/dev/bnxt/bnxt_en/bnxt_ulp.c | 1 + sys/dev/bnxt/bnxt_en/bnxt_ulp.h | 2 ++ sys/dev/bnxt/bnxt_en/if_bnxt.c | 7 +++++++ sys/dev/bnxt/bnxt_re/main.c | 21 ++++++++++++++++++++- 5 files changed, 31 insertions(+), 1 deletion(-) diff --git a/sys/dev/bnxt/bnxt_en/bnxt.h b/sys/dev/bnxt/bnxt_en/bnxt.h index 5556914fb61e..64482a656e9d 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt.h +++ b/sys/dev/bnxt/bnxt_en/bnxt.h @@ -1340,6 +1340,7 @@ struct bnxt_softc { unsigned long fw_reset_timestamp; struct bnxt_fw_health *fw_health; + char board_partno[64]; }; struct bnxt_filter_info { diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.c b/sys/dev/bnxt/bnxt_en/bnxt_ulp.c index 677c9c99b74e..c6d862a36a9a 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.c @@ -463,6 +463,7 @@ static inline void bnxt_set_edev_info(struct bnxt_en_dev *edev, struct bnxt_soft edev->hwrm_bar = bp->hwrm_bar; edev->port_partition_type = bp->port_partition_type; edev->ulp_version = BNXT_ULP_VERSION; + memcpy(edev->board_part_number, bp->board_partno, BNXT_VPD_PN_FLD_LEN - 1); } int bnxt_rdma_aux_device_del(struct bnxt_softc *softc) diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h index 7d7ecbd2f536..53bb51b07135 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h @@ -127,6 +127,8 @@ struct bnxt_en_dev { struct bnxt_bar_info hwrm_bar; u32 espeed; uint8_t lanes; + #define BNXT_VPD_PN_FLD_LEN 32 + char board_part_number[BNXT_VPD_PN_FLD_LEN]; }; struct bnxt_en_ops { diff --git a/sys/dev/bnxt/bnxt_en/if_bnxt.c b/sys/dev/bnxt/bnxt_en/if_bnxt.c index 94775457b7e3..dea6fd68181e 100644 --- a/sys/dev/bnxt/bnxt_en/if_bnxt.c +++ b/sys/dev/bnxt/bnxt_en/if_bnxt.c @@ -2674,6 +2674,13 @@ bnxt_attach_pre(if_ctx_t ctx) softc->state_bv = bit_alloc(BNXT_STATE_MAX, M_DEVBUF, M_WAITOK|M_ZERO); + if (BNXT_PF(softc)) { + const char *part_num; + + if (pci_get_vpd_readonly(softc->dev, "PN", &part_num) == 0) + snprintf(softc->board_partno, sizeof(softc->board_partno), "%s", part_num); + } + return (rc); failed: diff --git a/sys/dev/bnxt/bnxt_re/main.c b/sys/dev/bnxt/bnxt_re/main.c index eb21c770ca5f..dc68854157a0 100644 --- a/sys/dev/bnxt/bnxt_re/main.c +++ b/sys/dev/bnxt/bnxt_re/main.c @@ -2031,11 +2031,30 @@ static ssize_t show_hca(struct device *device, struct device_attribute *attr, return scnprintf(buf, PAGE_SIZE, "%s\n", rdev->ibdev.node_desc); } +static ssize_t show_board_id(struct device *device, struct device_attribute *attr, + char *buf) +{ + struct bnxt_re_dev *rdev = to_bnxt_re_dev(device, ibdev.dev); + char buffer[BNXT_VPD_PN_FLD_LEN] = {}; + + if (!rdev->is_virtfn) + memcpy(buffer, rdev->en_dev->board_part_number, + BNXT_VPD_PN_FLD_LEN - 1); + else + scnprintf(buffer, BNXT_VPD_PN_FLD_LEN, + "0x%x-VF", rdev->en_dev->pdev->device); + + return scnprintf(buf, PAGE_SIZE, "%s\n", buffer); +} + static DEVICE_ATTR(hw_rev, 0444, show_rev, NULL); static DEVICE_ATTR(hca_type, 0444, show_hca, NULL); +static DEVICE_ATTR(board_id, 0444, show_board_id, NULL); + static struct device_attribute *bnxt_re_attributes[] = { &dev_attr_hw_rev, - &dev_attr_hca_type + &dev_attr_hca_type, + &dev_attr_board_id }; int ib_register_device_compat(struct bnxt_re_dev *rdev) From nobody Fri Feb 27 12:05: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 4fMn8h1tltz6Sry1 for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8h0LV2z3DBF for ; Fri, 27 Feb 2026 12:05:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193940; 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=SMpRrFrdrrEP6ZF/s1d0ctd0xKn9hACxmgmiVxMCqJc=; b=MfJ4ilI32TyWVDWyVlnT/yA9oPvPtir9YMEi1pzYwnm6XFYL20Lq7u38ZoTJp+FA3BhaLY FgA0oTjyNP6frv4UQ+mO6fUb56s/Q3UNuxiSFI7JAzlCUVmNnX2NRArtNvkL+cOVXV3aNr 6zPSzs9+4caRtDv5DpkFa4nk0fraM48l0uq1lgMaOYA58BmYhZff19ZwyXG3szCUGH4kSb S2WTegNJyFNiHNTMUiR0q6WAluT35Z0ZvNMnihaONBAadnry6bBAaNv/IwTlpprvCS0KPP hMbIwr4rID5JZlVKzJmsIK+SzpPykcEN4+2XLMX+H94/fuKEFWXn3Cihrfm93A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193940; a=rsa-sha256; cv=none; b=RMaiLaQpUmDQpqfsTAOVDHluST8nrQL6WypJn2I4VIeYoqVGwycPgLaq0z4CsMfKxisV0d Lc/EAKVBK8y938vjtF+p45jqnS7VQdM3trdD7MZnH3xS8PKkBEouWz1C5dg834yBVolL67 Q1HthrBNA+VnvpYgercJkj9OHKZqI0s/hpgI2SdudHt3ZRdJbnz+A8UghdLMhvRhnZ6P4r 5/cmPElLYd4gE1mO424j1zUcsrW4Os3s3iSDJXN+lNIqVtBYWsni/jZQUu9fhUfhdKzoe8 i+lhpGsZGSZPSj5uxOQRCDv9WHXzTPYE8KZ8Q7vo7Lkx+8AF0F9yqdATgn7c8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193940; 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=SMpRrFrdrrEP6ZF/s1d0ctd0xKn9hACxmgmiVxMCqJc=; b=h4hRKmUwTIUBMHKPuRmu3pnPzkcM1GfuSbMy2HkvkgGTVuMywBYc0+zip2C7WqDg60jxN+ 3WBq3lpgl5Ra+H3hGF9bvar+bIa+xX6AY49r/02A/8MZdQZkFAyauMWXfXGcqYBlqc/P2/ QhYqS0oh6vgVjnSlIplXJxL6ofK+4ebcCI7iH/vDVHZ8uAcswvhFN2YiAnBv72HltFPTM+ kSkh2DhnvQLZ0CCWTZ7m5MmGWX5VKqK0EjZ7u42gbXz5W71Ap8KYjAjb0Taa5ty50JlbMQ PVPD+d5Sgu/Qjx+k95W1S6K02+3uQtk2D1sU7pZ76Pvr4qUR0A6FhynHjCxzKQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8g6lFCz1yb for ; Fri, 27 Feb 2026 12:05:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3eb05 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sreekanth Reddy From: Sumit Saxena Subject: git: bc9dad93ba5f - stable/15 - bnxt_re/libbnxtre: Add support for Variable WQE on BCM576xx controllers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bc9dad93ba5f49508cd809435a46c66a6222798a Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:39 +0000 Message-Id: <69a18893.3eb05.77033205@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=bc9dad93ba5f49508cd809435a46c66a6222798a commit bc9dad93ba5f49508cd809435a46c66a6222798a Author: Sreekanth Reddy AuthorDate: 2026-01-23 16:40:13 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:38 +0000 bnxt_re/libbnxtre: Add support for Variable WQE on BCM576xx controllers Variable size WQE means that each send Work Queue Entry to HW can use different WQE sizes as opposed to the static WQE size on the current devices. Set variable WQE mode for BCM576xx devices. Depth of the Queue will be a multiple of slot which is 16 bytes. The number of slots should be a multiple of 256 as per the HW requirement. Initialize the Software shadow queue to hold requests equal to the number of slots. Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D54525 MFC after: 3 days (cherry picked from commit 823f158a01330484f83f69c31d695035c607f8ee) --- contrib/ofed/libbnxtre/abi.h | 10 ++- contrib/ofed/libbnxtre/main.c | 1 + contrib/ofed/libbnxtre/memory.h | 1 + contrib/ofed/libbnxtre/verbs.c | 31 +++++++--- sys/dev/bnxt/bnxt_re/bnxt_re-abi.h | 12 ++-- sys/dev/bnxt/bnxt_re/bnxt_re.h | 11 +++- sys/dev/bnxt/bnxt_re/ib_verbs.c | 123 +++++++++++++++++++++++-------------- sys/dev/bnxt/bnxt_re/ib_verbs.h | 5 ++ sys/dev/bnxt/bnxt_re/main.c | 20 +++--- sys/dev/bnxt/bnxt_re/qplib_fp.c | 74 +++++++++++++++++----- sys/dev/bnxt/bnxt_re/qplib_fp.h | 12 ++++ sys/dev/bnxt/bnxt_re/qplib_sp.c | 16 +++-- sys/dev/bnxt/bnxt_re/qplib_sp.h | 8 +++ 13 files changed, 227 insertions(+), 97 deletions(-) diff --git a/contrib/ofed/libbnxtre/abi.h b/contrib/ofed/libbnxtre/abi.h index e3533c122688..a729c16f4db9 100644 --- a/contrib/ofed/libbnxtre/abi.h +++ b/contrib/ofed/libbnxtre/abi.h @@ -46,7 +46,7 @@ #define __aligned_u64 __attribute__((aligned(8))) u64 -#define BNXT_RE_ABI_VERSION 6 +#define BNXT_RE_ABI_VERSION 7 #define BNXT_RE_MAX_INLINE_SIZE 0x60 #define BNXT_RE_MAX_INLINE_SIZE_VAR_WQE 0x1E0 #define BNXT_RE_MAX_PUSH_SIZE_VAR_WQE 0xD0 @@ -267,12 +267,14 @@ enum { BNXT_RE_COMP_MASK_UCNTX_MQP_EX_SUPPORTED = 0x8, BNXT_RE_COMP_MASK_UCNTX_DBR_PACING_ENABLED = 0x10, BNXT_RE_COMP_MASK_UCNTX_DBR_RECOVERY_ENABLED = 0x20, - BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED = 0x40 + BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED = 0x40, + BNXT_RE_COMP_MASK_UCNTX_CMASK_HAVE_MODE = 0x80 }; enum bnxt_re_req_to_drv { BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT = 0x01, - BNXT_RE_COMP_MASK_REQ_UCNTX_RSVD_WQE = 0x02 + BNXT_RE_COMP_MASK_REQ_UCNTX_RSVD_WQE = 0x02, + BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT = 0x03 }; #define BNXT_RE_WQE_MODES_WQE_MODE_MASK 0x01 @@ -410,6 +412,8 @@ struct bnxt_re_qp_req { __u64 qpsva; __u64 qprva; __u64 qp_handle; + __u64 comp_mask; + __u32 sq_slots; } __attribute__((packed)); struct bnxt_re_qp_resp { diff --git a/contrib/ofed/libbnxtre/main.c b/contrib/ofed/libbnxtre/main.c index 8e1903688a53..ee08f891dd1e 100644 --- a/contrib/ofed/libbnxtre/main.c +++ b/contrib/ofed/libbnxtre/main.c @@ -297,6 +297,7 @@ int bnxt_re_init_context(struct verbs_device *vdev, struct ibv_context *ibvctx, req.comp_mask |= BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT; req.comp_mask |= BNXT_RE_COMP_MASK_REQ_UCNTX_RSVD_WQE; + req.comp_mask |= BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT; ret = ibv_cmd_get_context(ibvctx, &req.cmd, sizeof(req), &resp.resp, sizeof(resp)); diff --git a/contrib/ofed/libbnxtre/memory.h b/contrib/ofed/libbnxtre/memory.h index fe18f30ad1a5..875d10f3769f 100644 --- a/contrib/ofed/libbnxtre/memory.h +++ b/contrib/ofed/libbnxtre/memory.h @@ -51,6 +51,7 @@ struct bnxt_re_qattr { uint32_t nwr; uint32_t sz_ring; uint32_t sz_shad; + uint32_t sw_nwr; }; /* spin lock wrapper struct */ diff --git a/contrib/ofed/libbnxtre/verbs.c b/contrib/ofed/libbnxtre/verbs.c index 320b374abe7e..602d792a1ce0 100644 --- a/contrib/ofed/libbnxtre/verbs.c +++ b/contrib/ofed/libbnxtre/verbs.c @@ -1224,6 +1224,8 @@ static int bnxt_re_get_rq_slots(struct bnxt_re_dev *rdev, uint8_t qpmode, return slots; } +#define BNXT_VAR_MAX_SLOT_ALIGN 256 + static int bnxt_re_get_sq_slots(struct bnxt_re_dev *rdev, uint8_t qpmode, uint32_t nswr, uint32_t nsge, uint32_t ils, uint32_t *esize) @@ -1235,17 +1237,21 @@ static int bnxt_re_get_sq_slots(struct bnxt_re_dev *rdev, uint32_t ilsize; uint32_t hdr_sz; uint32_t slots; + uint32_t align; hdr_sz = bnxt_re_get_sqe_hdr_sz(); stride = sizeof(struct bnxt_re_sge); + align = hdr_sz; + if (qpmode == BNXT_RE_WQE_MODE_VARIABLE) + align = stride; max_wqesz = bnxt_re_calc_wqe_sz(rdev->devattr.max_sge); - ilsize = get_aligned(ils, hdr_sz); + ilsize = get_aligned(ils, align); wqe_size = bnxt_re_calc_wqe_sz(nsge); if (ilsize) { cal_ils = hdr_sz + ilsize; wqe_size = MAX(cal_ils, wqe_size); - wqe_size = get_aligned(wqe_size, hdr_sz); + wqe_size = get_aligned(wqe_size, align); } if (wqe_size > max_wqesz) return -EINVAL; @@ -1256,6 +1262,8 @@ static int bnxt_re_get_sq_slots(struct bnxt_re_dev *rdev, if (esize) *esize = wqe_size; slots = (nswr * wqe_size) / stride; + if (qpmode == BNXT_RE_WQE_MODE_VARIABLE) + slots = get_aligned(slots, BNXT_VAR_MAX_SLOT_ALIGN); return slots; } @@ -1288,11 +1296,15 @@ static int bnxt_re_get_sqmem_size(struct bnxt_re_context *cntx, qattr->nwr = nswr; qattr->slots = nslots; qattr->esize = esz; + if (mode) + qattr->sw_nwr = nslots; + else + qattr->sw_nwr = nswr; bytes = nslots * sizeof(struct bnxt_re_sge); /* ring */ bytes += npsn * bnxt_re_get_psne_size(cntx); /* psn */ qattr->sz_ring = get_aligned(bytes, cntx->rdev->pg_size); - qattr->sz_shad = nswr * sizeof(struct bnxt_re_wrid); /* shadow */ + qattr->sz_shad = qattr->sw_nwr * sizeof(struct bnxt_re_wrid); /* shadow */ return 0; } @@ -1315,6 +1327,7 @@ static int bnxt_re_get_rqmem_size(struct bnxt_re_context *cntx, qattr->nwr = nrwr; qattr->slots = nslots; qattr->esize = esz; + qattr->sw_nwr = nrwr; bytes = nslots * sizeof(struct bnxt_re_sge); qattr->sz_ring = get_aligned(bytes, cntx->rdev->pg_size); @@ -1406,8 +1419,8 @@ static int bnxt_re_alloc_init_swque(struct bnxt_re_joint_queue *jqq, if (!jqq->swque) return -ENOMEM; jqq->start_idx = 0; - jqq->last_idx = qattr->nwr - 1; - for (indx = 0; indx < qattr->nwr; indx++) + jqq->last_idx = qattr->sw_nwr - 1; + for (indx = 0; indx < qattr->sw_nwr; indx++) jqq->swque[indx].next_idx = indx + 1; jqq->swque[jqq->last_idx].next_idx = 0; jqq->last_idx = 0; @@ -1457,13 +1470,13 @@ static int bnxt_re_alloc_queues(struct bnxt_re_qp *qp, */ que->pad = (que->va + que->depth * que->stride); psn_size = bnxt_re_get_psne_size(qp->cntx); - que->pad_stride_log2 = (uint32_t)bnxt_log2((double)psn_size); + que->pad_stride_log2 = (uint32_t)bnxt_log2((double)(psn_size - 1)); ret = bnxt_re_alloc_init_swque(qp->jsqq, qp->mem, &qattr[indx]); if (ret) goto fail; - qp->cap.max_swr = qattr[indx].nwr; + qp->cap.max_swr = qattr[indx].sw_nwr; qp->jsqq->cntx = qp->cntx; que->dbtail = (qp->qpmode == BNXT_RE_WQE_MODE_VARIABLE) ? &que->tail : &qp->jsqq->start_idx; @@ -1473,7 +1486,7 @@ static int bnxt_re_alloc_queues(struct bnxt_re_qp *qp, goto skip_msn; que->msn = 0; que->msn_tbl_sz = 0; - if (qp->qpmode & BNXT_RE_WQE_MODE_VARIABLE) + if (qp->qpmode == BNXT_RE_WQE_MODE_VARIABLE) que->msn_tbl_sz = roundup_pow_of_two(qattr->slots) / 2; else que->msn_tbl_sz = roundup_pow_of_two(qattr->nwr); @@ -1575,6 +1588,8 @@ struct ibv_qp *bnxt_re_create_qp(struct ibv_pd *ibvpd, req.qpsva = (uint64_t)qp->jsqq->hwque->va; req.qprva = qp->jrqq ? (uint64_t)qp->jrqq->hwque->va : 0; req.qp_handle = (uint64_t)qp; + if (qp->qpmode == BNXT_RE_WQE_MODE_VARIABLE) + req.sq_slots = qattr[BNXT_RE_QATTR_SQ_INDX].slots; if (ibv_cmd_create_qp(ibvpd, &qp->ibvqp, attr, &req.cmd, sizeof(req), &resp.resp, sizeof(resp))) diff --git a/sys/dev/bnxt/bnxt_re/bnxt_re-abi.h b/sys/dev/bnxt/bnxt_re/bnxt_re-abi.h index 8f48609e7f6f..c7ca19f29046 100644 --- a/sys/dev/bnxt/bnxt_re/bnxt_re-abi.h +++ b/sys/dev/bnxt/bnxt_re/bnxt_re-abi.h @@ -34,7 +34,7 @@ #include #include -#define BNXT_RE_ABI_VERSION 6 +#define BNXT_RE_ABI_VERSION 7 enum { BNXT_RE_COMP_MASK_UCNTX_WC_DPI_ENABLED = 0x01, @@ -43,12 +43,14 @@ enum { BNXT_RE_COMP_MASK_UCNTX_MQP_EX_SUPPORTED = 0x08, BNXT_RE_COMP_MASK_UCNTX_DBR_PACING_ENABLED = 0x10, BNXT_RE_COMP_MASK_UCNTX_DBR_RECOVERY_ENABLED = 0x20, - BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED = 0x40 + BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED = 0x40, + BNXT_RE_COMP_MASK_UCNTX_CMASK_HAVE_MODE = 0x80, }; enum { BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT = 0x01, - BNXT_RE_COMP_MASK_REQ_UCNTX_RSVD_WQE = 0x02 + BNXT_RE_COMP_MASK_REQ_UCNTX_RSVD_WQE = 0x02, + BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT = 0x03 }; struct bnxt_re_uctx_req { @@ -66,7 +68,7 @@ struct bnxt_re_uctx_resp { __u32 max_cqd; __u32 chip_id0; __u32 chip_id1; - __u32 modes; + __u32 mode; __aligned_u64 comp_mask; } __attribute__((packed)); @@ -134,6 +136,8 @@ struct bnxt_re_qp_req { __u64 qpsva; __u64 qprva; __u64 qp_handle; + __u64 comp_mask; + __u32 sq_slots; } __attribute__((packed)); struct bnxt_re_qp_resp { diff --git a/sys/dev/bnxt/bnxt_re/bnxt_re.h b/sys/dev/bnxt/bnxt_re/bnxt_re.h index c0bc11e490b2..0afc8566c020 100644 --- a/sys/dev/bnxt/bnxt_re/bnxt_re.h +++ b/sys/dev/bnxt/bnxt_re/bnxt_re.h @@ -717,7 +717,7 @@ void bnxt_re_remove_device(struct bnxt_re_dev *rdev, u8 removal_type, void bnxt_re_destroy_lag(struct bnxt_re_dev **rdev); int bnxt_re_add_device(struct bnxt_re_dev **rdev, struct ifnet *netdev, - u8 qp_mode, u8 op_type, u8 wqe_mode, u32 num_msix_requested, + u8 qp_mode, u8 op_type, u32 num_msix_requested, struct auxiliary_device *aux_dev); void bnxt_re_create_base_interface(bool primary); int bnxt_re_schedule_work(struct bnxt_re_dev *rdev, unsigned long event, @@ -1070,6 +1070,15 @@ static inline void bnxt_re_set_def_do_pacing(struct bnxt_re_dev *rdev) rdev->qplib_res.pacing_data->do_pacing = rdev->dbr_def_do_pacing; } +static inline bool bnxt_re_is_var_size_supported(struct bnxt_re_dev *rdev, + struct bnxt_re_ucontext *uctx) +{ + if (uctx) + return uctx->cmask & BNXT_RE_UCNTX_CAP_VAR_WQE_ENABLED; + else + return rdev->chip_ctx->modes.wqe_mode; +} + static inline void bnxt_re_set_pacing_dev_state(struct bnxt_re_dev *rdev) { rdev->qplib_res.pacing_data->dev_err_state = diff --git a/sys/dev/bnxt/bnxt_re/ib_verbs.c b/sys/dev/bnxt/bnxt_re/ib_verbs.c index 37b77c5af909..32899abab9ff 100644 --- a/sys/dev/bnxt/bnxt_re/ib_verbs.c +++ b/sys/dev/bnxt/bnxt_re/ib_verbs.c @@ -1667,15 +1667,18 @@ static int bnxt_re_setup_swqe_size(struct bnxt_re_qp *qp, align = sizeof(struct sq_send_hdr); ilsize = ALIGN(init_attr->cap.max_inline_data, align); - sq->wqe_size = bnxt_re_get_swqe_size(ilsize, sq->max_sge); - if (sq->wqe_size > _get_swqe_sz(dev_attr->max_qp_sges)) - return -EINVAL; - /* For Cu/Wh and gen p5 backward compatibility mode - * wqe size is fixed to 128 bytes + /* For gen p4 and gen p5 fixed wqe compatibility mode + * wqe size is fixed to 128 bytes - ie 6 SGEs */ - if (sq->wqe_size < _get_swqe_sz(dev_attr->max_qp_sges) && - qplqp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) - sq->wqe_size = _get_swqe_sz(dev_attr->max_qp_sges); + if (qplqp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) { + sq->wqe_size = _get_swqe_sz(BNXT_STATIC_MAX_SGE); + sq->max_sge = BNXT_STATIC_MAX_SGE; + } else { + sq->wqe_size = bnxt_re_get_swqe_size(ilsize, sq->max_sge); + if (sq->wqe_size > _get_swqe_sz(dev_attr->max_qp_sges)) + return -EINVAL; + } + if (init_attr->cap.max_inline_data) { qplqp->max_inline_data = sq->wqe_size - @@ -1728,10 +1731,14 @@ static int bnxt_re_init_user_qp(struct bnxt_re_dev *rdev, sizeof(struct sq_psn_search); if (rdev->dev_attr && _is_host_msn_table(rdev->dev_attr->dev_cap_ext_flags2)) psn_sz = sizeof(struct sq_msn_search); - psn_nume = (qplib_qp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) ? - qplib_qp->sq.max_wqe : - ((qplib_qp->sq.max_wqe * qplib_qp->sq.wqe_size) / - sizeof(struct bnxt_qplib_sge)); + if (cntx && bnxt_re_is_var_size_supported(rdev, cntx)) { + psn_nume = ureq.sq_slots; + } else { + psn_nume = (qplib_qp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) ? + qplib_qp->sq.max_wqe : + ((qplib_qp->sq.max_wqe * qplib_qp->sq.wqe_size) / + sizeof(struct bnxt_qplib_sge)); + } if (rdev->dev_attr && _is_host_msn_table(rdev->dev_attr->dev_cap_ext_flags2)) psn_nume = roundup_pow_of_two(psn_nume); @@ -1912,6 +1919,7 @@ static struct bnxt_re_qp *bnxt_re_create_shadow_qp(struct bnxt_re_pd *pd, /* Shadow QP SQ depth should be same as QP1 RQ depth */ qp->qplib_qp.sq.wqe_size = bnxt_re_get_swqe_size(0, 6); qp->qplib_qp.sq.max_wqe = qp1_qp->rq.max_wqe; + qp->qplib_qp.sq.max_sw_wqe = qp1_qp->rq.max_wqe; qp->qplib_qp.sq.max_sge = 2; /* Q full delta can be 1 since it is internal QP */ qp->qplib_qp.sq.q_full_delta = 1; @@ -1923,6 +1931,7 @@ static struct bnxt_re_qp *bnxt_re_create_shadow_qp(struct bnxt_re_pd *pd, qp->qplib_qp.rq.wqe_size = _max_rwqe_sz(6); /* 128 Byte wqe size */ qp->qplib_qp.rq.max_wqe = qp1_qp->rq.max_wqe; + qp->qplib_qp.rq.max_sw_wqe = qp1_qp->rq.max_wqe; qp->qplib_qp.rq.max_sge = qp1_qp->rq.max_sge; qp->qplib_qp.rq.sginfo.pgsize = PAGE_SIZE; qp->qplib_qp.rq.sginfo.pgshft = PAGE_SHIFT; @@ -1995,6 +2004,7 @@ static int bnxt_re_init_rq_attr(struct bnxt_re_qp *qp, entries = init_attr->cap.max_recv_wr + 1; entries = bnxt_re_init_depth(entries, cntx); rq->max_wqe = min_t(u32, entries, dev_attr->max_qp_wqes + 1); + rq->max_sw_wqe = rq->max_wqe; rq->q_full_delta = 0; rq->sginfo.pgsize = PAGE_SIZE; rq->sginfo.pgshft = PAGE_SHIFT; @@ -2019,10 +2029,11 @@ static void bnxt_re_adjust_gsi_rq_attr(struct bnxt_re_qp *qp) static int bnxt_re_init_sq_attr(struct bnxt_re_qp *qp, struct ib_qp_init_attr *init_attr, - void *cntx) + void *cntx, struct ib_udata *udata) { struct bnxt_qplib_dev_attr *dev_attr; struct bnxt_qplib_qp *qplqp; + struct bnxt_re_qp_req ureq; struct bnxt_re_dev *rdev; struct bnxt_qplib_q *sq; int diff = 0; @@ -2034,35 +2045,53 @@ static int bnxt_re_init_sq_attr(struct bnxt_re_qp *qp, sq = &qplqp->sq; dev_attr = rdev->dev_attr; - sq->max_sge = init_attr->cap.max_send_sge; - if (sq->max_sge > dev_attr->max_qp_sges) { - sq->max_sge = dev_attr->max_qp_sges; - init_attr->cap.max_send_sge = sq->max_sge; + if (udata) { + rc = ib_copy_from_udata(&ureq, udata, + min(udata->inlen, sizeof(ureq))); + if (rc) + return -EINVAL; } - rc = bnxt_re_setup_swqe_size(qp, init_attr); - if (rc) - return rc; - /* - * Change the SQ depth if user has requested minimum using - * configfs. Only supported for kernel consumers. Setting - * min_tx_depth to 4096 to handle iser SQ full condition - * in most of the newer OS distros - */ + + sq->max_sge = init_attr->cap.max_send_sge; entries = init_attr->cap.max_send_wr; - if (!cntx && rdev->min_tx_depth && init_attr->qp_type != IB_QPT_GSI) { + if (cntx && udata && qplqp->wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE) { + sq->max_wqe = ureq.sq_slots; + sq->max_sw_wqe = ureq.sq_slots; + sq->wqe_size = sizeof(struct sq_sge); + } else { + if (sq->max_sge > dev_attr->max_qp_sges) { + sq->max_sge = dev_attr->max_qp_sges; + init_attr->cap.max_send_sge = sq->max_sge; + } + rc = bnxt_re_setup_swqe_size(qp, init_attr); + if (rc) + return rc; /* - * If users specify any value greater than 1 use min_tx_depth - * provided by user for comparison. Else, compare it with the - * BNXT_RE_MIN_KERNEL_QP_TX_DEPTH and adjust it accordingly. + * Change the SQ depth if user has requested minimum using + * configfs. Only supported for kernel consumers. Setting + * min_tx_depth to 4096 to handle iser SQ full condition + * in most of the newer OS distros */ - if (rdev->min_tx_depth > 1 && entries < rdev->min_tx_depth) - entries = rdev->min_tx_depth; - else if (entries < BNXT_RE_MIN_KERNEL_QP_TX_DEPTH) - entries = BNXT_RE_MIN_KERNEL_QP_TX_DEPTH; - } - diff = bnxt_re_get_diff(cntx, rdev->chip_ctx); - entries = bnxt_re_init_depth(entries + diff + 1, cntx); - sq->max_wqe = min_t(u32, entries, dev_attr->max_qp_wqes + diff + 1); + + if (!cntx && rdev->min_tx_depth && init_attr->qp_type != IB_QPT_GSI) { + /* + * If users specify any value greater than 1 use min_tx_depth + * provided by user for comparison. Else, compare it with the + * BNXT_RE_MIN_KERNEL_QP_TX_DEPTH and adjust it accordingly. + */ + if (rdev->min_tx_depth > 1 && entries < rdev->min_tx_depth) + entries = rdev->min_tx_depth; + else if (entries < BNXT_RE_MIN_KERNEL_QP_TX_DEPTH) + entries = BNXT_RE_MIN_KERNEL_QP_TX_DEPTH; + } + diff = bnxt_re_get_diff(cntx, rdev->chip_ctx); + entries = bnxt_re_init_depth(entries + diff + 1, cntx); + sq->max_wqe = min_t(u32, entries, dev_attr->max_qp_wqes + diff + 1); + if (qplqp->wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE) + sq->max_sw_wqe = bnxt_qplib_get_depth(sq, qplqp->wqe_mode, true); + else + sq->max_sw_wqe = sq->max_wqe; + } sq->q_full_delta = diff + 1; /* * Reserving one slot for Phantom WQE. Application can @@ -2128,11 +2157,6 @@ out: return qptype; } -static int bnxt_re_init_qp_wqe_mode(struct bnxt_re_dev *rdev) -{ - return rdev->chip_ctx->modes.wqe_mode; -} - static int bnxt_re_init_qp_attr(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd, struct ib_qp_init_attr *init_attr, struct ib_udata *udata) @@ -2166,7 +2190,7 @@ static int bnxt_re_init_qp_attr(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd, goto out; } qplqp->type = (u8)qptype; - qplqp->wqe_mode = bnxt_re_init_qp_wqe_mode(rdev); + qplqp->wqe_mode = bnxt_re_is_var_size_supported(rdev, cntx); ether_addr_copy(qplqp->smac, rdev->dev_addr); if (init_attr->qp_type == IB_QPT_RC) { @@ -2213,7 +2237,7 @@ static int bnxt_re_init_qp_attr(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd, bnxt_re_adjust_gsi_rq_attr(qp); /* Setup SQ */ - rc = bnxt_re_init_sq_attr(qp, init_attr, cntx); + rc = bnxt_re_init_sq_attr(qp, init_attr, cntx, udata); if (rc) goto out; if (init_attr->qp_type == IB_QPT_GSI) @@ -2849,6 +2873,7 @@ int bnxt_re_modify_qp(struct ib_qp *ib_qp, struct ib_qp_attr *qp_attr, if (entries > dev_attr->max_qp_wqes) entries = dev_attr->max_qp_wqes; qp->qplib_qp.rq.max_wqe = entries; + qp->qplib_qp.rq.max_sw_wqe = qp->qplib_qp.rq.max_wqe; qp->qplib_qp.rq.q_full_delta = qp->qplib_qp.rq.max_wqe - qp_attr->cap.max_recv_wr; qp->qplib_qp.rq.max_sge = qp_attr->cap.max_recv_sge; @@ -5349,7 +5374,7 @@ int bnxt_re_alloc_ucontext(struct ib_ucontext *uctx_in, } genp5 = _is_chip_gen_p5_p7(cctx); - resp.modes = genp5 ? cctx->modes.wqe_mode : 0; + resp.mode = genp5 ? cctx->modes.wqe_mode : 0; if (rdev->dev_attr && _is_host_msn_table(rdev->dev_attr->dev_cap_ext_flags2)) resp.comp_mask = BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED; @@ -5384,6 +5409,12 @@ int bnxt_re_alloc_ucontext(struct ib_ucontext *uctx_in, if (bnxt_re_init_rsvd_wqe_flag(&ureq, &resp, genp5)) dev_warn(rdev_to_dev(rdev), "Rsvd wqe in use! Try the updated library.\n"); + if (ureq.comp_mask & BNXT_RE_COMP_MASK_REQ_UCNTX_VAR_WQE_SUPPORT) { + resp.comp_mask |= BNXT_RE_COMP_MASK_UCNTX_CMASK_HAVE_MODE; + resp.mode = rdev->chip_ctx->modes.wqe_mode; + if (resp.mode == BNXT_QPLIB_WQE_MODE_VARIABLE) + resp.comp_mask |= BNXT_RE_UCNTX_CAP_VAR_WQE_ENABLED; + } } else { dev_warn(rdev_to_dev(rdev), "Enabled roundup logic. Update the library!\n"); diff --git a/sys/dev/bnxt/bnxt_re/ib_verbs.h b/sys/dev/bnxt/bnxt_re/ib_verbs.h index f3b7f44c828d..66d15dd2b767 100644 --- a/sys/dev/bnxt/bnxt_re/ib_verbs.h +++ b/sys/dev/bnxt/bnxt_re/ib_verbs.h @@ -508,6 +508,11 @@ static inline int bnxt_re_init_pow2_flag(struct bnxt_re_uctx_req *req, return 0; } +enum { + BNXT_RE_UCNTX_CAP_POW2_DISABLED = 0x1ULL, + BNXT_RE_UCNTX_CAP_VAR_WQE_ENABLED = 0x2ULL, +}; + static inline u32 bnxt_re_init_depth(u32 ent, struct bnxt_re_ucontext *uctx) { return uctx ? (uctx->cmask & BNXT_RE_COMP_MASK_UCNTX_POW2_DISABLED) ? diff --git a/sys/dev/bnxt/bnxt_re/main.c b/sys/dev/bnxt/bnxt_re/main.c index dc68854157a0..01c2710bc3ea 100644 --- a/sys/dev/bnxt/bnxt_re/main.c +++ b/sys/dev/bnxt/bnxt_re/main.c @@ -1101,7 +1101,6 @@ static int bnxt_re_handle_start(struct auxiliary_device *adev) rc = bnxt_re_add_device(&rdev, real_dev, en_info->gsi_mode, BNXT_RE_POST_RECOVERY_INIT, - en_info->wqe_mode, en_info->num_msix_requested, adev); if (rc) { /* Add device failed. Unregister the device. @@ -1435,15 +1434,15 @@ static void bnxt_re_set_db_offset(struct bnxt_re_dev *rdev) return; } -static void bnxt_re_set_drv_mode(struct bnxt_re_dev *rdev, u8 mode) +static void bnxt_re_set_drv_mode(struct bnxt_re_dev *rdev) { struct bnxt_qplib_chip_ctx *cctx; struct bnxt_en_dev *en_dev; en_dev = rdev->en_dev; cctx = rdev->chip_ctx; - cctx->modes.wqe_mode = _is_chip_gen_p5_p7(rdev->chip_ctx) ? - mode : BNXT_QPLIB_WQE_MODE_STATIC; + cctx->modes.wqe_mode = _is_chip_p7(rdev->chip_ctx) ? + BNXT_QPLIB_WQE_MODE_VARIABLE : BNXT_QPLIB_WQE_MODE_STATIC; cctx->modes.te_bypass = false; if (bnxt_re_hwrm_qcaps(rdev)) dev_err(rdev_to_dev(rdev), @@ -1492,7 +1491,7 @@ static void bnxt_re_destroy_chip_ctx(struct bnxt_re_dev *rdev) kfree(chip_ctx); } -static int bnxt_re_setup_chip_ctx(struct bnxt_re_dev *rdev, u8 wqe_mode) +static int bnxt_re_setup_chip_ctx(struct bnxt_re_dev *rdev) { struct bnxt_qplib_chip_ctx *chip_ctx; struct bnxt_en_dev *en_dev; @@ -1527,7 +1526,7 @@ static int bnxt_re_setup_chip_ctx(struct bnxt_re_dev *rdev, u8 wqe_mode) rc = -ENOMEM; goto fail; } - bnxt_re_set_drv_mode(rdev, wqe_mode); + bnxt_re_set_drv_mode(rdev); bnxt_re_set_db_offset(rdev); rc = bnxt_qplib_map_db_bar(&rdev->qplib_res); @@ -3551,7 +3550,7 @@ static void bnxt_re_dev_uninit(struct bnxt_re_dev *rdev, u8 op_type) } } -static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 op_type, u8 wqe_mode) +static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 op_type) { struct bnxt_re_ring_attr rattr = {}; struct bnxt_qplib_creq_ctx *creq; @@ -3566,7 +3565,7 @@ static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 op_type, u8 wqe_mode) } set_bit(BNXT_RE_FLAG_NETDEV_REGISTERED, &rdev->flags); - rc = bnxt_re_setup_chip_ctx(rdev, wqe_mode); + rc = bnxt_re_setup_chip_ctx(rdev); if (rc) { dev_err(rdev_to_dev(rdev), "Failed to get chip context rc 0x%x", rc); bnxt_re_unregister_netdev(rdev); @@ -3879,7 +3878,7 @@ void bnxt_re_remove_device(struct bnxt_re_dev *rdev, u8 op_type, int bnxt_re_add_device(struct bnxt_re_dev **rdev, struct ifnet *netdev, - u8 qp_mode, u8 op_type, u8 wqe_mode, + u8 qp_mode, u8 op_type, u32 num_msix_requested, struct auxiliary_device *aux_dev) { @@ -3952,7 +3951,7 @@ int bnxt_re_add_device(struct bnxt_re_dev **rdev, rtnl_lock(); en_info->rdev = *rdev; rtnl_unlock(); - rc = bnxt_re_dev_init(*rdev, op_type, wqe_mode); + rc = bnxt_re_dev_init(*rdev, op_type); if (rc) { ref_error: bnxt_re_dev_unreg(*rdev); @@ -4401,7 +4400,6 @@ static int bnxt_re_probe(struct auxiliary_device *adev, rc = bnxt_re_add_device(&rdev, en_dev->net, BNXT_RE_GSI_MODE_ALL, BNXT_RE_COMPLETE_INIT, - BNXT_QPLIB_WQE_MODE_STATIC, BNXT_RE_MSIX_FROM_MOD_PARAM, adev); if (rc) { mutex_unlock(&bnxt_re_mutex); diff --git a/sys/dev/bnxt/bnxt_re/qplib_fp.c b/sys/dev/bnxt/bnxt_re/qplib_fp.c index d4b439b05588..19708302198b 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_fp.c +++ b/sys/dev/bnxt/bnxt_re/qplib_fp.c @@ -842,15 +842,15 @@ static int bnxt_qplib_alloc_init_swq(struct bnxt_qplib_q *que) int rc = 0; int indx; - que->swq = kcalloc(que->max_wqe, sizeof(*que->swq), GFP_KERNEL); + que->swq = kcalloc(que->max_sw_wqe, sizeof(*que->swq), GFP_KERNEL); if (!que->swq) { rc = -ENOMEM; goto out; } que->swq_start = 0; - que->swq_last = que->max_wqe - 1; - for (indx = 0; indx < que->max_wqe; indx++) + que->swq_last = que->max_sw_wqe - 1; + for (indx = 0; indx < que->max_sw_wqe; indx++) que->swq[indx].next_idx = indx + 1; que->swq[que->swq_last].next_idx = 0; /* Make it circular */ que->swq_last = 0; @@ -879,19 +879,23 @@ static u32 bnxt_qplib_get_stride(void) return sizeof(struct sq_sge); } -static u32 bnxt_qplib_get_depth(struct bnxt_qplib_q *que) +u32 bnxt_qplib_get_depth(struct bnxt_qplib_q *que, u8 wqe_mode, bool is_sq) { - u8 stride; + u32 slots; - stride = bnxt_qplib_get_stride(); - return (que->wqe_size * que->max_wqe) / stride; + /* Queue depth is the number of slots. */ + slots = (que->wqe_size * que->max_wqe) / sizeof(struct sq_sge); + /* For variable WQE mode, need to align the slots to 256 */ + if (wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE && is_sq) + slots = ALIGN(slots, BNXT_VAR_MAX_SLOT_ALIGN); + return slots; } static u32 _set_sq_size(struct bnxt_qplib_q *que, u8 wqe_mode) { /* For Variable mode supply number of 16B slots */ return (wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) ? - que->max_wqe : bnxt_qplib_get_depth(que); + que->max_wqe : bnxt_qplib_get_depth(que, wqe_mode, true); } static u32 _set_sq_max_slot(u8 wqe_mode) @@ -929,7 +933,7 @@ int bnxt_qplib_create_qp1(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) hwq_attr.res = res; hwq_attr.sginfo = &sq->sginfo; hwq_attr.stride = bnxt_qplib_get_stride(); - hwq_attr.depth = bnxt_qplib_get_depth(sq); + hwq_attr.depth = bnxt_qplib_get_depth(sq, qp->wqe_mode, false); hwq_attr.type = HWQ_TYPE_QUEUE; rc = bnxt_qplib_alloc_init_hwq(&sq->hwq, &hwq_attr); if (rc) @@ -953,7 +957,7 @@ int bnxt_qplib_create_qp1(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) hwq_attr.res = res; hwq_attr.sginfo = &rq->sginfo; hwq_attr.stride = bnxt_qplib_get_stride(); - hwq_attr.depth = bnxt_qplib_get_depth(rq); + hwq_attr.depth = bnxt_qplib_get_depth(rq, qp->wqe_mode, false); hwq_attr.type = HWQ_TYPE_QUEUE; rc = bnxt_qplib_alloc_init_hwq(&rq->hwq, &hwq_attr); if (rc) @@ -1105,7 +1109,7 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) hwq_attr.res = res; hwq_attr.sginfo = &sq->sginfo; hwq_attr.stride = bnxt_qplib_get_stride(); - hwq_attr.depth = bnxt_qplib_get_depth(sq); + hwq_attr.depth = bnxt_qplib_get_depth(sq, qp->wqe_mode, true); hwq_attr.aux_stride = psn_sz; hwq_attr.aux_depth = (psn_sz) ? _set_sq_size(sq, qp->wqe_mode) : 0; @@ -1147,7 +1151,7 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) hwq_attr.res = res; hwq_attr.sginfo = &rq->sginfo; hwq_attr.stride = bnxt_qplib_get_stride(); - hwq_attr.depth = bnxt_qplib_get_depth(rq); + hwq_attr.depth = bnxt_qplib_get_depth(rq, qp->wqe_mode, false); hwq_attr.aux_stride = 0; hwq_attr.aux_depth = 0; hwq_attr.type = HWQ_TYPE_QUEUE; @@ -2878,6 +2882,32 @@ out: return rc; } +static int bnxt_qplib_get_cqe_sq_cons(struct bnxt_qplib_q *sq, u32 cqe_slot) +{ + struct bnxt_qplib_hwq *sq_hwq; + struct bnxt_qplib_swq *swq; + int cqe_sq_cons = -1; + u32 start, last; + + sq_hwq = &sq->hwq; + + start = sq->swq_start; + last = sq->swq_last; + + while (last != start) { + swq = &sq->swq[last]; + if (swq->slot_idx == cqe_slot) { + cqe_sq_cons = swq->next_idx; + dev_err(&sq_hwq->pdev->dev, "%s: Found cons wqe = %d slot = %d\n", + __func__, cqe_sq_cons, cqe_slot); + break; + } + + last = swq->next_idx; + } + return cqe_sq_cons; +} + static int bnxt_qplib_cq_process_req(struct bnxt_qplib_cq *cq, struct cq_req *hwcqe, struct bnxt_qplib_cqe **pcqe, int *budget, @@ -2886,8 +2916,9 @@ static int bnxt_qplib_cq_process_req(struct bnxt_qplib_cq *cq, struct bnxt_qplib_qp *qp; struct bnxt_qplib_q *sq; struct bnxt_qplib_cqe *cqe; - u32 cqe_sq_cons; + u32 cqe_sq_cons, slot_num; struct bnxt_qplib_swq *swq; + int cqe_cons; int rc = 0; qp = (struct bnxt_qplib_qp *)le64_to_cpu(hwcqe->qp_handle); @@ -2899,13 +2930,26 @@ static int bnxt_qplib_cq_process_req(struct bnxt_qplib_cq *cq, } sq = &qp->sq; - cqe_sq_cons = le16_to_cpu(hwcqe->sq_cons_idx) % sq->max_wqe; + cqe_sq_cons = le16_to_cpu(hwcqe->sq_cons_idx) % sq->max_sw_wqe; if (qp->sq.flushed) { dev_dbg(&cq->hwq.pdev->dev, "%s: QPLIB: QP in Flush QP = %p\n", __func__, qp); goto done; } + if (__is_err_cqe_for_var_wqe(qp, hwcqe->status)) { + slot_num = le16_to_cpu(hwcqe->sq_cons_idx); + cqe_cons = bnxt_qplib_get_cqe_sq_cons(sq, slot_num); + if (cqe_cons < 0) { + dev_dbg(&cq->hwq.pdev->dev, "%s: Wrong SQ cons cqe_slot_indx = %d\n", + __func__, slot_num); + goto done; + } + cqe_sq_cons = cqe_cons; + dev_dbg(&cq->hwq.pdev->dev, "%s: cqe_sq_cons = %d swq_last = %d swq_start = %d\n", + __func__, cqe_sq_cons, sq->swq_last, sq->swq_start); + } + /* Require to walk the sq's swq to fabricate CQEs for all previously * signaled SWQEs due to CQE aggregation from the current sq cons * to the cqe_sq_cons @@ -3348,7 +3392,7 @@ static int bnxt_qplib_cq_process_terminal(struct bnxt_qplib_cq *cq, if (cqe_cons == 0xFFFF) goto do_rq; - cqe_cons %= sq->max_wqe; + cqe_cons %= sq->max_sw_wqe; if (qp->sq.flushed) { dev_dbg(&cq->hwq.pdev->dev, "%s: QPLIB: QP in Flush QP = %p\n", __func__, qp); diff --git a/sys/dev/bnxt/bnxt_re/qplib_fp.h b/sys/dev/bnxt/bnxt_re/qplib_fp.h index fd2d8a08c818..542a26782c62 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_fp.h +++ b/sys/dev/bnxt/bnxt_re/qplib_fp.h @@ -300,6 +300,7 @@ struct bnxt_qplib_q { struct bnxt_qplib_sg_info sginfo; struct bnxt_qplib_hwq hwq; u32 max_wqe; + u32 max_sw_wqe; u16 max_sge; u16 wqe_size; u16 q_full_delta; @@ -635,5 +636,16 @@ static inline uint64_t bnxt_re_update_msn_tbl(uint32_t st_idx, uint32_t npsn, ui SQ_MSN_SEARCH_START_PSN_MASK)); } +static inline bool __is_var_wqe(struct bnxt_qplib_qp *qp) +{ + return (qp->wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE); +} + +static inline bool __is_err_cqe_for_var_wqe(struct bnxt_qplib_qp *qp, u8 status) +{ + return (status != CQ_REQ_STATUS_OK) && __is_var_wqe(qp); +} + void bnxt_re_schedule_dbq_event(struct bnxt_qplib_res *res); +u32 bnxt_qplib_get_depth(struct bnxt_qplib_q *que, u8 wqe_mode, bool is_sq); #endif diff --git a/sys/dev/bnxt/bnxt_re/qplib_sp.c b/sys/dev/bnxt/bnxt_re/qplib_sp.c index 8c382c7a645a..f876573ce69f 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_sp.c +++ b/sys/dev/bnxt/bnxt_re/qplib_sp.c @@ -129,11 +129,6 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) * one extra entry while creating the qp */ attr->max_qp_wqes = le16_to_cpu(sb->max_qp_wr) - 1; - /* Adjust for max_qp_wqes for variable wqe */ - if (cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE) { - attr->max_qp_wqes = (BNXT_MAX_SQ_SIZE) / - (BNXT_MAX_VAR_WQE_SIZE / BNXT_SGE_SIZE) - 1; - } if (!_is_chip_gen_p5_p7(cctx)) { /* * 128 WQEs needs to be reserved for the HW (8916). Prevent @@ -141,10 +136,13 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) */ attr->max_qp_wqes -= BNXT_QPLIB_RESERVED_QP_WRS; } - attr->max_qp_sges = sb->max_sge; - if (_is_chip_gen_p5_p7(cctx) && - cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE) - attr->max_qp_sges = sb->max_sge_var_wqe; + + /* Adjust for max_qp_wqes for variable wqe */ + if (cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE) + attr->max_qp_wqes = BNXT_VAR_MAX_WQE - 1; + + attr->max_qp_sges = cctx->modes.wqe_mode == BNXT_QPLIB_WQE_MODE_VARIABLE ? + min_t(u32, sb->max_sge_var_wqe, BNXT_VAR_MAX_SGE) : sb->max_sge; attr->max_cq = bnxt_re_cap_fw_res(le32_to_cpu(sb->max_cq), dev_res.max_cq, sw_max_en); diff --git a/sys/dev/bnxt/bnxt_re/qplib_sp.h b/sys/dev/bnxt/bnxt_re/qplib_sp.h index fa7dd890501c..5a5485dc5250 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_sp.h +++ b/sys/dev/bnxt/bnxt_re/qplib_sp.h @@ -32,6 +32,7 @@ #define __BNXT_QPLIB_SP_H__ #include +#include "bnxt_re-abi.h" #define BNXT_QPLIB_RESERVED_QP_WRS 128 @@ -395,6 +396,13 @@ bool ib_modify_qp_is_ok_compat(enum ib_qp_state cur_state, enum ib_qp_state next #define BNXT_MAX_VAR_WQE_SIZE 512 #define BNXT_SGE_SIZE 16 +#define BNXT_VAR_MAX_WQE 4352 +#define BNXT_VAR_MAX_SLOT_ALIGN 256 +#define BNXT_VAR_MAX_SGE 13 +#define BNXT_RE_MAX_RQ_WQES 65536 + +#define BNXT_STATIC_MAX_SGE 6 + /* PF defines */ #define BNXT_RE_MAX_QP_SUPPORTED(chip_gen) \ chip_gen == BNXT_RE_DEFAULT ? (64 * 1024) : 0 From nobody Fri Feb 27 12:05: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 4fMn8h6BJxz6Ss3G for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8h4r8jz3D7X for ; Fri, 27 Feb 2026 12:05:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193940; 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=gPNUbnkP6w2ic4Wy1OOGVV7I9xIZeOgLmOrjAEg+CLg=; b=I603LxuNdy3PFgsvkNzc0u1Em31E0z2WeO5mszBnoy55nbjcnL0jV7dYTyYYPFrRqKzSbp w7WxhzqlrAM9YaHi5WTye0uBAKDUQ1bi4DS/PzmFOX9azdg8CXdQhh4hb0Rt5JHgIjLh/A Zd+m4KzJ7z55N11Kqwb2HCS04m+DhArdGu6SDHRYqm6bXB/WmOBzz5IxQD1uGdZ++fMlX2 MoRqBFA5aELAlcAwBWDjh9NQAXQRUmllrcHIYrMAjDT3Wr4E56CFmz7lmh8Gj85W4M/as9 zDEbnuIG34AFf/qRoUecdgj9/O2KCegua/k03FuVpJW4hO/l76sKnxR/ClGvtA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193940; a=rsa-sha256; cv=none; b=JaFhRt8pHoXlFdXjdrj5YB2Gg4/SVOdNIaboc64Fs8boyQ9uSSoO0Q1ndSpoKnkN4uVH0G ++xlxjm/PDKooOFsO2zVISpR5cT3+1oWEBh1dBsEI9Sz1w0RCr3nOOBYU5raoIi36u0/3U EmE93O9iuNu8zE9GJLA4ajEbPI8xPXissi3CspBH8+n8wme3TuM74TBZNMHpCsZ0jsxhIP ljl+OQuF37XMcSHVyiXkjeX2SIdv61A8C92e0I5i7KnabGmBM034V5WN+IrIExHSJTx8eN wqRaMzCQ2O3YPMAgmpSwV3bHjkR+7SQNg5udht1936VRgs7uj5wUfT8rCF2BZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193940; 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=gPNUbnkP6w2ic4Wy1OOGVV7I9xIZeOgLmOrjAEg+CLg=; b=hYiaBTea3/AHZ85i9zF45AdxFwkIwgrVTNo+pWSHyYwMWX2Wp6ROwUqERh+p1vZmZeMex3 6VpBOT7efXZecQWUGO6cFrBCbntWNm62nOoK3DNnp2j4G6H3qFvUXUI7JGHa2W76ZTf/Ep lW7ZNIkDzZDJ7M/mzAOnDF/icz9+j/QmO6eW2S08HjtObDMoLUWFzNOf1Cs2C1XRG3574d +or/RoMqrSXt24s/p/3ThgtxLEDhvrhUaw1bq6jfgPxlXBVTLKgSL2xawYHOGUlbSnJhM7 CFlAqCaX8sU5NF+F3JlFh+XNyfOGM0h4X0L4AMZOI3pzXLbXLFda7uvogsP4jA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8h4Hjtz1r7 for ; Fri, 27 Feb 2026 12:05:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3de0c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sreekanth Reddy From: Sumit Saxena Subject: git: 1ff252f0bb82 - stable/15 - bnxt_re/libbnxtre: Add RoCE support for BCM576xx controllers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1ff252f0bb82c4ff5cc4ae2c1074a2f732a3e92a Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:35 +0000 Message-Id: <69a1888f.3de0c.3fd0bd97@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=1ff252f0bb82c4ff5cc4ae2c1074a2f732a3e92a commit 1ff252f0bb82c4ff5cc4ae2c1074a2f732a3e92a Author: Sreekanth Reddy AuthorDate: 2026-01-23 16:27:22 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:37 +0000 bnxt_re/libbnxtre: Add RoCE support for BCM576xx controllers Added RoCE support for BCM576xx controllers with below changes, 1. Update the BAR offsets for handling BCM576xx controllers. Use the values populated by the L2 driver for getting the Doorbell offsets. 2. Use msn index instead of tail to pull psn table entry. 3. Temporarily disable dbr pacing feature untill it is fully implemented. 4. Add support for 400G speed. Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D54521 MFC after: 3 days (cherry picked from commit 92ba9b2fe58910b1d2cd6cd34b5ec093f0d9f700) --- contrib/ofed/libbnxtre/abi.h | 1 + contrib/ofed/libbnxtre/db.c | 9 +++++++-- contrib/ofed/libbnxtre/main.h | 1 + contrib/ofed/libbnxtre/verbs.c | 13 +++++++++++-- sys/dev/bnxt/bnxt_en/bnxt.h | 1 + sys/dev/bnxt/bnxt_en/bnxt_hwrm.c | 2 ++ sys/dev/bnxt/bnxt_en/bnxt_ulp.c | 3 ++- sys/dev/bnxt/bnxt_en/bnxt_ulp.h | 3 +++ sys/dev/bnxt/bnxt_re/ib_verbs.c | 19 +++++++++++-------- sys/dev/bnxt/bnxt_re/ib_verbs.h | 8 ++++++++ sys/dev/bnxt/bnxt_re/main.c | 37 +++++++++++++++++++++--------------- sys/dev/bnxt/bnxt_re/qplib_fp.c | 41 +++++++++++++++++++++++++++++----------- sys/dev/bnxt/bnxt_re/qplib_fp.h | 1 + sys/dev/bnxt/bnxt_re/qplib_res.c | 3 ++- sys/dev/bnxt/bnxt_re/qplib_res.h | 12 +++++++++--- sys/dev/bnxt/bnxt_re/qplib_sp.c | 1 + sys/dev/bnxt/bnxt_re/qplib_sp.h | 1 + 17 files changed, 113 insertions(+), 43 deletions(-) diff --git a/contrib/ofed/libbnxtre/abi.h b/contrib/ofed/libbnxtre/abi.h index 390605edb40b..e3533c122688 100644 --- a/contrib/ofed/libbnxtre/abi.h +++ b/contrib/ofed/libbnxtre/abi.h @@ -529,6 +529,7 @@ struct bnxt_re_srq_req { struct bnxt_re_srq_resp { struct ibv_create_srq_resp resp; __u32 srqid; + __u64 srq_page; } __attribute__((packed)); struct bnxt_re_srqe { diff --git a/contrib/ofed/libbnxtre/db.c b/contrib/ofed/libbnxtre/db.c index 8751297c9218..3d416795679c 100644 --- a/contrib/ofed/libbnxtre/db.c +++ b/contrib/ofed/libbnxtre/db.c @@ -38,7 +38,7 @@ #define BNXT_RE_MAX_FIFO_DEPTH_P5 0x2c00 #define BNXT_RE_DB_FIFO_ROOM_MASK_P7 0x3FFF8000 -#define BNXT_RE_MAX_FIFO_DEPTH_P7 0x8000 +#define BNXT_RE_MAX_FIFO_DEPTH_P7 0x7fff #define BNXT_RE_DB_FIFO_ROOM_SHIFT 15 #define BNXT_RE_DB_THRESHOLD 20 @@ -248,10 +248,15 @@ void bnxt_re_ring_srq_db(struct bnxt_re_srq *srq) void bnxt_re_ring_srq_arm(struct bnxt_re_srq *srq) { struct bnxt_re_db_hdr hdr; + uint32_t toggle = 0; + + if (srq->srq_page) + toggle = *(uint32_t *)srq->srq_page; if (bnxt_re_do_pacing(srq->uctx, &srq->rand)) return; - bnxt_re_init_db_hdr(&hdr, srq->cap.srq_limit, 0, srq->srqid, + bnxt_re_init_db_hdr(&hdr, srq->cap.srq_limit, + toggle << BNXT_RE_DB_TOGGLE_SHIFT, srq->srqid, BNXT_RE_QUE_TYPE_SRQ_ARM); bnxt_re_ring_db(srq->udpi, hdr.typ_qid_indx, &srq->shadow_db_key, &srq->dbr_lock); diff --git a/contrib/ofed/libbnxtre/main.h b/contrib/ofed/libbnxtre/main.h index ea258de22abd..06ed4647d68e 100644 --- a/contrib/ofed/libbnxtre/main.h +++ b/contrib/ofed/libbnxtre/main.h @@ -189,6 +189,7 @@ struct bnxt_re_srq { struct xorshift32_state rand; uint8_t dbr_lock; bool arm_req; + void *srq_page; }; struct bnxt_re_joint_queue { diff --git a/contrib/ofed/libbnxtre/verbs.c b/contrib/ofed/libbnxtre/verbs.c index 7054af34b0c7..320b374abe7e 100644 --- a/contrib/ofed/libbnxtre/verbs.c +++ b/contrib/ofed/libbnxtre/verbs.c @@ -342,9 +342,9 @@ struct ibv_cq *_bnxt_re_create_cq(struct ibv_context *ibvctx, int ncqe, } if (resp.comp_mask & BNXT_RE_COMP_MASK_CQ_HAS_CQ_PAGE) { - cq->cq_page = mmap(NULL, dev->pg_size, PROT_WRITE, MAP_SHARED, + cq->cq_page = mmap(NULL, dev->pg_size, PROT_READ | PROT_WRITE, MAP_SHARED, ibvctx->cmd_fd, resp.cq_page); - if (!cq->cq_page) + if (cq->cq_page == MAP_FAILED) fprintf(stderr, DEV "Valid cq_page not mapped\n"); } @@ -2347,6 +2347,13 @@ struct ibv_srq *bnxt_re_create_srq(struct ibv_pd *ibvpd, goto fail; srq->srqid = resp.srqid; + if (resp.srq_page) { + srq->srq_page = mmap(NULL, uctx->rdev->pg_size, PROT_READ, MAP_SHARED, + ibvpd->context->cmd_fd, resp.srq_page); + if (srq->srq_page == MAP_FAILED) + srq->srq_page = NULL; + } + srq->udpi = &uctx->udpi; srq->cap.max_wr = srq->srqq->depth; srq->cap.max_sge = attr->attr.max_sge; @@ -2395,6 +2402,8 @@ int bnxt_re_destroy_srq(struct ibv_srq *ibvsrq) bnxt_re_list_del_node(&srq->dbnode, &srq->uctx->srq_dbr_res.head); pthread_spin_unlock(&srq->uctx->srq_dbr_res.lock); } + if (srq->srq_page) + munmap(srq->srq_page, srq->uctx->rdev->pg_size); ret = ibv_cmd_destroy_srq(ibvsrq); if (ret) { if (_is_db_drop_recovery_enable(srq->uctx)) { diff --git a/sys/dev/bnxt/bnxt_en/bnxt.h b/sys/dev/bnxt/bnxt_en/bnxt.h index 0ba7b5723b91..78e98eb23beb 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt.h +++ b/sys/dev/bnxt/bnxt_en/bnxt.h @@ -1167,6 +1167,7 @@ struct bnxt_softc { struct iflib_dma_info def_nq_ring_mem; struct task def_cp_task; int db_size; + int db_offset; int legacy_db_size; struct bnxt_doorbell_ops db_ops; diff --git a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c index 9e7f4614d9f9..3e5dc0bf4b6d 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_hwrm.c @@ -1309,6 +1309,7 @@ bnxt_hwrm_func_qcfg(struct bnxt_softc *softc) goto end; softc->legacy_db_size = le16_to_cpu(resp->legacy_l2_db_size_kb) * 1024; + softc->db_offset = le16toh(resp->legacy_l2_db_size_kb) * 1024; if (BNXT_CHIP_P5(softc)) { if (BNXT_PF(softc)) @@ -1316,6 +1317,7 @@ bnxt_hwrm_func_qcfg(struct bnxt_softc *softc) else min_db_offset = DB_VF_OFFSET_P5; softc->legacy_db_size = min_db_offset; + softc->db_offset = min_db_offset; } softc->db_size = roundup2(le16_to_cpu(resp->l2_doorbell_bar_size_kb) * diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.c b/sys/dev/bnxt/bnxt_en/bnxt_ulp.c index 3c1f62cb4da3..9950858f0eef 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.c +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.c @@ -125,7 +125,7 @@ static void bnxt_fill_msix_vecs(struct bnxt_softc *bp, struct bnxt_msix_entry *e ent[i].vector = bp->irq_tbl[idx + i].vector; ent[i].ring_idx = idx + i; if (BNXT_CHIP_P5_PLUS(bp)) - ent[i].db_offset = DB_PF_OFFSET_P5; + ent[i].db_offset = bp->db_offset; else ent[i].db_offset = (idx + i) * 0x80; @@ -449,6 +449,7 @@ static inline void bnxt_set_edev_info(struct bnxt_en_dev *edev, struct bnxt_soft edev->pdev = bp->pdev; edev->softc = bp; edev->l2_db_size = bp->db_size; + edev->l2_db_offset = bp->db_offset; mtx_init(&bp->en_ops_lock, "Ethernet ops lock", NULL, MTX_DEF); if (bp->flags & BNXT_FLAG_ROCEV1_CAP) diff --git a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h index 0108293046d7..bbf16304456a 100644 --- a/sys/dev/bnxt/bnxt_en/bnxt_ulp.h +++ b/sys/dev/bnxt/bnxt_en/bnxt_ulp.h @@ -94,6 +94,9 @@ struct bnxt_en_dev { #define BNXT_EN_MH(edev) ((edev)->flags & BNXT_EN_FLAG_MULTI_HOST) const struct bnxt_en_ops *en_ops; struct bnxt_ulp ulp_tbl[BNXT_MAX_ULP]; + int l2_db_offset; /* Doorbell BAR offset + * of non-cacheable. + */ int l2_db_size; /* Doorbell BAR size in * bytes mapped by L2 * driver. diff --git a/sys/dev/bnxt/bnxt_re/ib_verbs.c b/sys/dev/bnxt/bnxt_re/ib_verbs.c index 0383a16757aa..dba0f348c414 100644 --- a/sys/dev/bnxt/bnxt_re/ib_verbs.c +++ b/sys/dev/bnxt/bnxt_re/ib_verbs.c @@ -276,6 +276,10 @@ static void __to_ib_speed_width(u32 espeed, u8 *speed, u8 *width) *speed = IB_SPEED_HDR; *width = IB_WIDTH_4X; break; + case SPEED_400000: + *speed = IB_SPEED_NDR; + *width = IB_WIDTH_4X; + break; default: *speed = IB_SPEED_SDR; *width = IB_WIDTH_1X; @@ -1666,23 +1670,24 @@ static int bnxt_re_init_user_qp(struct bnxt_re_dev *rdev, return rc; bytes = (qplib_qp->sq.max_wqe * qplib_qp->sq.wqe_size); + bytes = PAGE_ALIGN(bytes); /* Consider mapping PSN search memory only for RC QPs. */ if (qplib_qp->type == CMDQ_CREATE_QP_TYPE_RC) { psn_sz = _is_chip_gen_p5_p7(rdev->chip_ctx) ? sizeof(struct sq_psn_search_ext) : sizeof(struct sq_psn_search); - if (rdev->dev_attr && BNXT_RE_HW_RETX(rdev->dev_attr->dev_cap_flags)) + if (rdev->dev_attr && _is_host_msn_table(rdev->dev_attr->dev_cap_ext_flags2)) psn_sz = sizeof(struct sq_msn_search); psn_nume = (qplib_qp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) ? qplib_qp->sq.max_wqe : ((qplib_qp->sq.max_wqe * qplib_qp->sq.wqe_size) / sizeof(struct bnxt_qplib_sge)); - if (BNXT_RE_HW_RETX(rdev->dev_attr->dev_cap_flags)) + if (rdev->dev_attr && _is_host_msn_table(rdev->dev_attr->dev_cap_ext_flags2)) psn_nume = roundup_pow_of_two(psn_nume); bytes += (psn_nume * psn_sz); + bytes = PAGE_ALIGN(bytes); } - bytes = PAGE_ALIGN(bytes); umem = ib_umem_get_compat(rdev, context, udata, ureq.qpsva, bytes, IB_ACCESS_LOCAL_WRITE, 1); if (IS_ERR(umem)) { @@ -5294,11 +5299,9 @@ int bnxt_re_alloc_ucontext(struct ib_ucontext *uctx_in, } genp5 = _is_chip_gen_p5_p7(cctx); - if (BNXT_RE_ABI_VERSION > 5) { - resp.modes = genp5 ? cctx->modes.wqe_mode : 0; - if (rdev->dev_attr && BNXT_RE_HW_RETX(rdev->dev_attr->dev_cap_flags)) - resp.comp_mask = BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED; - } + resp.modes = genp5 ? cctx->modes.wqe_mode : 0; + if (rdev->dev_attr && _is_host_msn_table(rdev->dev_attr->dev_cap_ext_flags2)) + resp.comp_mask = BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED; resp.pg_size = PAGE_SIZE; resp.cqe_sz = sizeof(struct cq_base); diff --git a/sys/dev/bnxt/bnxt_re/ib_verbs.h b/sys/dev/bnxt/bnxt_re/ib_verbs.h index cb9f7974e92d..e8c840f8946a 100644 --- a/sys/dev/bnxt/bnxt_re/ib_verbs.h +++ b/sys/dev/bnxt/bnxt_re/ib_verbs.h @@ -77,10 +77,18 @@ struct bnxt_re_dev; #define SPEED_200000 200000 #endif +#ifndef SPEED_400000 +#define SPEED_400000 400000 +#endif + #ifndef IB_SPEED_HDR #define IB_SPEED_HDR 64 #endif +#ifndef IB_SPEED_NDR +#define IB_SPEED_NDR 128 +#endif + #define RDMA_NETWORK_IPV4 1 #define RDMA_NETWORK_IPV6 2 diff --git a/sys/dev/bnxt/bnxt_re/main.c b/sys/dev/bnxt/bnxt_re/main.c index 3d26d21f3fc7..0e0cc32218bd 100644 --- a/sys/dev/bnxt/bnxt_re/main.c +++ b/sys/dev/bnxt/bnxt_re/main.c @@ -1411,12 +1411,14 @@ static void bnxt_re_set_db_offset(struct bnxt_re_dev *rdev) dev_info(rdev_to_dev(rdev), "Couldn't get DB bar size, Low latency framework is disabled\n"); /* set register offsets for both UC and WC */ - if (_is_chip_p7(cctx)) - res->dpi_tbl.ucreg.offset = offset; - else + if (_is_chip_p7(cctx)) { + res->dpi_tbl.ucreg.offset = en_dev->l2_db_offset; + res->dpi_tbl.wcreg.offset = en_dev->l2_db_size; + } else { res->dpi_tbl.ucreg.offset = res->is_vf ? BNXT_QPLIB_DBR_VF_DB_OFFSET : BNXT_QPLIB_DBR_PF_DB_OFFSET; - res->dpi_tbl.wcreg.offset = res->dpi_tbl.ucreg.offset; + res->dpi_tbl.wcreg.offset = res->dpi_tbl.ucreg.offset; + } /* If WC mapping is disabled by L2 driver then en_dev->l2_db_size * is equal to the DB-Bar actual size. This indicates that L2 @@ -3592,19 +3594,24 @@ static int bnxt_re_dev_init(struct bnxt_re_dev *rdev, u8 op_type, u8 wqe_mode) goto release_rtnl; } + set_bit(BNXT_RE_FLAG_NET_RING_ALLOC, &rdev->flags); + if (!rdev->chip_ctx) goto release_rtnl; - /* Program the NQ ID for DBQ notification */ - if (rdev->chip_ctx->modes.dbr_pacing_v0 || - bnxt_qplib_dbr_pacing_en(rdev->chip_ctx) || - bnxt_qplib_dbr_pacing_ext_en(rdev->chip_ctx)) { - rc = bnxt_re_initialize_dbr_pacing(rdev); - if (!rc) - rdev->dbr_pacing = true; - else - rdev->dbr_pacing = false; - dev_dbg(rdev_to_dev(rdev), "%s: initialize db pacing ret %d\n", - __func__, rc); + + if (!(_is_chip_p7(rdev->chip_ctx))) { + /* Program the NQ ID for DBQ notification */ + if (rdev->chip_ctx->modes.dbr_pacing_v0 || + bnxt_qplib_dbr_pacing_en(rdev->chip_ctx) || + bnxt_qplib_dbr_pacing_ext_en(rdev->chip_ctx)) { + rc = bnxt_re_initialize_dbr_pacing(rdev); + if (!rc) + rdev->dbr_pacing = true; + else + rdev->dbr_pacing = false; + dev_dbg(rdev_to_dev(rdev), "%s: initialize db pacing ret %d\n", + __func__, rc); + } } vec = rdev->nqr.msix_entries[BNXT_RE_AEQ_IDX].vector; diff --git a/sys/dev/bnxt/bnxt_re/qplib_fp.c b/sys/dev/bnxt/bnxt_re/qplib_fp.c index 3f1b02406f7f..d4b439b05588 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_fp.c +++ b/sys/dev/bnxt/bnxt_re/qplib_fp.c @@ -388,10 +388,14 @@ static void bnxt_qplib_service_nq(unsigned long data) struct bnxt_qplib_srq *srq; struct nq_srq_event *nqsrqe = (struct nq_srq_event *)nqe; + u8 toggle; q_handle = le32_to_cpu(nqsrqe->srq_handle_low); q_handle |= (u64)le32_to_cpu(nqsrqe->srq_handle_high) << 32; srq = (struct bnxt_qplib_srq *)q_handle; + toggle = (le16_to_cpu(nqe->info10_type) & NQ_CN_TOGGLE_MASK) + >> NQ_CN_TOGGLE_SFT; + srq->dbinfo.toggle = toggle; bnxt_qplib_armen_db(&srq->dbinfo, DBC_DBC_TYPE_SRQ_ARMENA); if (!nq->srqn_handler(nq, @@ -1075,8 +1079,11 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) u32 sqsz; qp->cctx = res->cctx; - if (res->dattr) + if (res->dattr) { qp->dev_cap_flags = res->dattr->dev_cap_flags; + qp->is_host_msn_tbl = _is_host_msn_table(res->dattr->dev_cap_ext_flags2); + } + /* General */ req.type = qp->type; req.dpi = cpu_to_le32(qp->dpi->dpi); @@ -1087,7 +1094,7 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) psn_sz = _is_chip_gen_p5_p7(qp->cctx) ? sizeof(struct sq_psn_search_ext) : sizeof(struct sq_psn_search); - if (BNXT_RE_HW_RETX(qp->dev_cap_flags)) { + if (qp->is_host_msn_tbl) { psn_sz = sizeof(struct sq_msn_search); qp->msn = 0; } @@ -1103,7 +1110,7 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) hwq_attr.aux_depth = (psn_sz) ? _set_sq_size(sq, qp->wqe_mode) : 0; /* Update msn tbl size */ - if (BNXT_RE_HW_RETX(qp->dev_cap_flags) && psn_sz) { + if (qp->is_host_msn_tbl && psn_sz) { if (qp->wqe_mode == BNXT_QPLIB_WQE_MODE_STATIC) hwq_attr.aux_depth = roundup_pow_of_two(_set_sq_size(sq, qp->wqe_mode)); else @@ -1131,8 +1138,7 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp) req.sq_pg_size_sq_lvl = pg_sz_lvl; req.sq_fwo_sq_sge = cpu_to_le16(((0 << CMDQ_CREATE_QP_SQ_FWO_SFT) & CMDQ_CREATE_QP_SQ_FWO_MASK) | - ((BNXT_RE_HW_RETX(qp->dev_cap_flags)) ? - BNXT_MSN_TBLE_SGE : sq->max_sge & + (sq->max_sge & CMDQ_CREATE_QP_SQ_SGE_MASK)); req.scq_cid = cpu_to_le32(qp->scq->id); @@ -1764,7 +1770,7 @@ static void bnxt_qplib_fill_psn_search(struct bnxt_qplib_qp *qp, return; /* Handle MSN differently on cap flags */ - if (BNXT_RE_HW_RETX(qp->dev_cap_flags)) { + if (qp->is_host_msn_tbl) { bnxt_qplib_fill_msn_search(qp, wqe, swq); return; } @@ -1897,7 +1903,7 @@ static u16 _translate_q_full_delta(struct bnxt_qplib_q *que, u16 wqe_bytes) } static void bnxt_qplib_pull_psn_buff(struct bnxt_qplib_qp *qp, struct bnxt_qplib_q *sq, - struct bnxt_qplib_swq *swq, bool hw_retx) + struct bnxt_qplib_swq *swq, bool is_host_msn_tbl) { struct bnxt_qplib_hwq *sq_hwq; u32 pg_num, pg_indx; @@ -1909,8 +1915,11 @@ static void bnxt_qplib_pull_psn_buff(struct bnxt_qplib_qp *qp, struct bnxt_qplib return; tail = swq->slot_idx / sq->dbinfo.max_slot; - if (hw_retx) + if (is_host_msn_tbl) { + /* For HW retx use qp msn index */ + tail = qp->msn; tail %= qp->msn_tbl_sz; + } pg_num = (tail + sq_hwq->pad_pgofft) / (PAGE_SIZE / sq_hwq->pad_stride); pg_indx = (tail + sq_hwq->pad_pgofft) % (PAGE_SIZE / sq_hwq->pad_stride); buff = (void *)(sq_hwq->pad_pg[pg_num] + pg_indx * sq_hwq->pad_stride); @@ -1935,6 +1944,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, struct bnxt_qplib_swq *swq; bool sch_handler = false; u16 slots_needed; + bool msn_update; void *base_hdr; void *ext_hdr; __le32 temp32; @@ -1976,7 +1986,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, sw_prod = sq_hwq->prod; swq = bnxt_qplib_get_swqe(sq, &wqe_idx); swq->slot_idx = sw_prod; - bnxt_qplib_pull_psn_buff(qp, sq, swq, BNXT_RE_HW_RETX(qp->dev_cap_flags)); + bnxt_qplib_pull_psn_buff(qp, sq, swq, qp->is_host_msn_tbl); swq->wr_id = wqe->wr_id; swq->type = wqe->type; @@ -2010,6 +2020,9 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, wqe->num_sge, &sw_prod); if (data_len < 0) goto queue_err; + /* Make sure we update MSN table only for wired wqes */ + msn_update = true; + /* Specifics */ switch (wqe->type) { case BNXT_QPLIB_SWQE_TYPE_SEND: @@ -2064,6 +2077,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, ext_sqe->avid = cpu_to_le32(wqe->send.avid & SQ_SEND_AVID_MASK); sq->psn = (sq->psn + 1) & BTH_PSN_MASK; + msn_update = false; } else { sqe->length = cpu_to_le32(data_len); if (qp->mtu) @@ -2157,6 +2171,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, "\tflags = 0x%x\n" "\tinv_l_key = 0x%x\n", sqe->wqe_type, sqe->flags, sqe->inv_l_key); + msn_update = false; break; } case BNXT_QPLIB_SWQE_TYPE_FAST_REG_MR: @@ -2207,6 +2222,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, sqe->zero_based_page_size_log, sqe->l_key, *(u32 *)sqe->length, sqe->numlevels_pbl_page_size_log, ext_sqe->pblptr, ext_sqe->va); + msn_update = false; break; } case BNXT_QPLIB_SWQE_TYPE_BIND_MW: @@ -2236,6 +2252,7 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, sqe->wqe_type, sqe->flags, sqe->access_cntl, sqe->mw_type_zero_based, sqe->parent_l_key, sqe->l_key, sqe->va, ext_sqe->length_lo); + msn_update = false; break; } default: @@ -2243,8 +2260,10 @@ int bnxt_qplib_post_send(struct bnxt_qplib_qp *qp, rc = -EINVAL; goto done; } - swq->next_psn = sq->psn & BTH_PSN_MASK; - bnxt_qplib_fill_psn_search(qp, wqe, swq); + if (!qp->is_host_msn_tbl || msn_update) { + swq->next_psn = sq->psn & BTH_PSN_MASK; + bnxt_qplib_fill_psn_search(qp, wqe, swq); + } queue_err: bnxt_qplib_swq_mod_start(sq, wqe_idx); diff --git a/sys/dev/bnxt/bnxt_re/qplib_fp.h b/sys/dev/bnxt/bnxt_re/qplib_fp.h index 527c377f0aa5..fd2d8a08c818 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_fp.h +++ b/sys/dev/bnxt/bnxt_re/qplib_fp.h @@ -390,6 +390,7 @@ struct bnxt_qplib_qp { u32 msn_tbl_sz; /* get devflags in PI code */ u16 dev_cap_flags; + bool is_host_msn_tbl; }; diff --git a/sys/dev/bnxt/bnxt_re/qplib_res.c b/sys/dev/bnxt/bnxt_re/qplib_res.c index f527af031176..9051f4c9f2b7 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_res.c +++ b/sys/dev/bnxt/bnxt_re/qplib_res.c @@ -1139,7 +1139,8 @@ int bnxt_qplib_map_db_bar(struct bnxt_qplib_res *res) ucreg->bar_id = RCFW_DBR_PCI_BAR_REGION; ucreg->bar_base = pci_resource_start(res->pdev, ucreg->bar_id); - ucreg->offset = 65536; + if (_is_chip_gen_p5(res->cctx)) + ucreg->offset = 65536; ucreg->len = ucreg->offset + PAGE_SIZE; diff --git a/sys/dev/bnxt/bnxt_re/qplib_res.h b/sys/dev/bnxt/bnxt_re/qplib_res.h index 6468207a49aa..914694ee3b8c 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_res.h +++ b/sys/dev/bnxt/bnxt_re/qplib_res.h @@ -616,6 +616,12 @@ static inline bool _is_hw_retx_supported(u16 dev_cap_flags) /* Disable HW_RETX */ #define BNXT_RE_HW_RETX(a) _is_hw_retx_supported((a)) +static inline bool _is_host_msn_table(u16 dev_cap_ext_flags2) +{ + return (dev_cap_ext_flags2 & CREQ_QUERY_FUNC_RESP_SB_REQ_RETRANSMISSION_SUPPORT_MASK) == + CREQ_QUERY_FUNC_RESP_SB_REQ_RETRANSMISSION_SUPPORT_HOST_MSN_TABLE; +} + static inline bool _is_cqe_v2_supported(u16 dev_cap_flags) { return dev_cap_flags & @@ -650,7 +656,7 @@ static inline void bnxt_qplib_ring_db32(struct bnxt_qplib_db_info *info, #define BNXT_QPLIB_INIT_DBHDR(xid, type, indx, toggle) \ (((u64)(((xid) & DBC_DBC_XID_MASK) | DBC_DBC_PATH_ROCE | \ (type) | BNXT_QPLIB_DBR_VALID) << 32) | (indx) | \ - ((toggle) << (BNXT_QPLIB_DBR_TOGGLE_SHIFT))) + (((u32)(toggle)) << (BNXT_QPLIB_DBR_TOGGLE_SHIFT))) static inline void bnxt_qplib_write_db(struct bnxt_qplib_db_info *info, u64 key, void __iomem *db, @@ -724,7 +730,7 @@ static inline void bnxt_qplib_armen_db(struct bnxt_qplib_db_info *info, u64 key = 0; u8 toggle = 0; - if (type == DBC_DBC_TYPE_CQ_ARMENA) + if (type == DBC_DBC_TYPE_CQ_ARMENA || type == DBC_DBC_TYPE_SRQ_ARMENA) toggle = info->toggle; /* Index always at 0 */ key = BNXT_QPLIB_INIT_DBHDR(info->xid, type, 0, toggle); @@ -746,7 +752,7 @@ static inline void bnxt_qplib_srq_arm_db(struct bnxt_qplib_db_info *info) u64 key = 0; /* Index always at 0 */ - key = BNXT_QPLIB_INIT_DBHDR(info->xid, DBC_DBC_TYPE_SRQ_ARM, 0, 0); + key = BNXT_QPLIB_INIT_DBHDR(info->xid, DBC_DBC_TYPE_SRQ_ARM, 0, info->toggle); bnxt_qplib_write_db(info, key, info->priv_db, &info->shadow_key); } diff --git a/sys/dev/bnxt/bnxt_re/qplib_sp.c b/sys/dev/bnxt/bnxt_re/qplib_sp.c index c414718a816f..31a0878e421b 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_sp.c +++ b/sys/dev/bnxt/bnxt_re/qplib_sp.c @@ -185,6 +185,7 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw) attr->page_size_cap = BIT_ULL(28) | BIT_ULL(21) | BIT_ULL(12); bnxt_qplib_query_version(rcfw, attr->fw_ver); + attr->dev_cap_ext_flags2 = le16_to_cpu(sb->dev_cap_ext_flags_2); for (i = 0; i < MAX_TQM_ALLOC_REQ / 4; i++) { temp = le32_to_cpu(sb->tqm_alloc_reqs[i]); diff --git a/sys/dev/bnxt/bnxt_re/qplib_sp.h b/sys/dev/bnxt/bnxt_re/qplib_sp.h index e306db3b9d8e..fa7dd890501c 100644 --- a/sys/dev/bnxt/bnxt_re/qplib_sp.h +++ b/sys/dev/bnxt/bnxt_re/qplib_sp.h @@ -71,6 +71,7 @@ struct bnxt_qplib_dev_attr { u32 l2_db_size; u8 tqm_alloc_reqs[MAX_TQM_ALLOC_REQ]; u8 is_atomic; + u16 dev_cap_ext_flags2; u16 dev_cap_flags; u64 page_size_cap; u32 max_dpi; From nobody Fri Feb 27 12:05: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 4fMn8j4JNzz6Ss0L for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8j0ycyz3DNg for ; Fri, 27 Feb 2026 12:05:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193941; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=omnNPN8rk/cM/FKu09xdYSy0bWAyOz1MdcltdK027DA=; b=yP0JOPHxtoLl2b321gJ4vvFnU4BbV+tu6aHkETTww0F7hg/oCpU5GHwpcrAsQuq0H3jqDX HJiBukNegq3Uc8dZXZllp3cbE2gErrM9fjTA8BaLhQdLkCwccCa7btZZqb5UW+VHjnD/gQ 66pCTJ4TC2zZ+jQKtWC5AA67px+OFbd4GIyFr51hkFJaoh8eSpcWn13/g4oXfNvCFPovQI YtDaIG/ykaP/b3rsAsPLOkRSU7JMEIZYxIAtGXGVinU758xzoMP5nIUSPH83pT6P5PRUlY vyTw5v8UKrJK5d1nHKtGgKT/uNvpruQFllG/khuIZ1afeP/iM3RBxcprvLNlkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193941; a=rsa-sha256; cv=none; b=i26uKRQsXsoIEvOZH10WWGk5xmTvu/i9UXhkrOa0TLH7dOt270YiPVAHgUBylxWC/JC9cp DwltiKayl805nniiryOldgaCfoiH30tofIoL/MoSZKpo94nm5TH55neE3BtOeoInyYOKEg wpK62KivyJbWkMk0QLzBdVhrB5DK+gg9QsK1LtxWQblt7iuyveIiwqZE654cHlNYZ+H1qI XcIHiV4yy77Ezi4ZoVJJgHWrc2VqKNUV0fMGeAvQmdAGxMvxWkmb4h97MiiRZ6tjCtoRzZ 55ovX9r5h4qDgp9P4yRWZzKjkhEdZfMn0eckYW1Aimk2Nfup9FsPQZN1TFBH+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193941; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=omnNPN8rk/cM/FKu09xdYSy0bWAyOz1MdcltdK027DA=; b=CKLXvOV9NLS8ApcSBtRJVv6LnWHnt2H1Sb6lGV2Q0qxaxH0DYkqspvWX6Ae9dUKLQ6QY7p 7VCK8YRnon84Xn7KNkYbwpM+cq7+5cLVVFDS9MV0lgTvd0amY/GXmQfoo8eU7gyYBSbs0E eLNVSpHkPKACK1Wv4rpo2WeFUsTo6QAm7VCSDr5d6m8AL3wPu2yblwYEmZLgTc3lZVqR3z OHN1eTuJFpulVIVuqx5As/9Jx6qRdt8Po2DukZWUb8GFQMZX4i/zx5FwcnbvbCR79ldRkO vLY5nOFwzZ/rRFVBOOFW/Z3CtJGQonJXELM5RREkTFiCx9ppLocHhCzQcujo1g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8j0Q5gz28x for ; Fri, 27 Feb 2026 12:05:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3dd1a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Sumit Saxena Subject: git: d7d5ddb27a37 - stable/15 - share/mk: Include libbnxtre entry in bsd.libnames.mk List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d7d5ddb27a37f4ef1ee36a547a5389b4f557a65f Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:41 +0000 Message-Id: <69a18895.3dd1a.3ff6ee38@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=d7d5ddb27a37f4ef1ee36a547a5389b4f557a65f commit d7d5ddb27a37f4ef1ee36a547a5389b4f557a65f Author: Sumit Saxena AuthorDate: 2025-12-03 11:21:10 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:39 +0000 share/mk: Include libbnxtre entry in bsd.libnames.mk Add libbnxtre entry in bsd.libnames.mk file. MFC-After: 3 days Reviewed-by: sumit.saxena@broadcom.com Differential-Revision: https://reviews.freebsd.org/D49603 (cherry picked from commit b42fda6be3fde001cdbe1623cc89b1dc9faf1b93) --- lib/ofed/Makefile | 1 + share/mk/bsd.libnames.mk | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/ofed/Makefile b/lib/ofed/Makefile index a16e93adc149..5421e2e43cd1 100644 --- a/lib/ofed/Makefile +++ b/lib/ofed/Makefile @@ -10,6 +10,7 @@ SUBDIR= \ libcxgb4 \ libmlx4 \ libmlx5 \ + libbnxtre \ libirdma \ libibnetdisc \ libopensm diff --git a/share/mk/bsd.libnames.mk b/share/mk/bsd.libnames.mk index 54bdfd301cd3..955e3c4ebdef 100644 --- a/share/mk/bsd.libnames.mk +++ b/share/mk/bsd.libnames.mk @@ -118,6 +118,7 @@ LIBMENU?= ${LIBDESTDIR}${LIBDIR_BASE}/libmenu.a LIBMILTER?= ${LIBDESTDIR}${LIBDIR_BASE}/libmilter.a LIBMLX4?= ${LIBDESTDIR}${LIBDIR_BASE}/libmlx4.a LIBMLX5?= ${LIBDESTDIR}${LIBDIR_BASE}/libmlx5.a +LIBBNXTRE?= ${LIBDESTDIR}${LIBDIR_BASE}/libbnxtre.a LIBMP?= ${LIBDESTDIR}${LIBDIR_BASE}/libmp.a LIBMT?= ${LIBDESTDIR}${LIBDIR_BASE}/libmt.a LIBNCURSES?= ${LIBDESTDIR}${LIBDIR_BASE}/libncurses.a From nobody Fri Feb 27 12:05: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 4fMn8k3YGqz6Ss3P for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8k1jpgz3DBN for ; Fri, 27 Feb 2026 12:05:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193942; 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=sc0FHnokMzVxPSI77Q7huSLjLjzAZ/ImyOXH48uiueE=; b=x1LvSNYAv27R3ZdHIEQY/fTHoDPkBSSGuXmsucO8s35nq1jDs4iAc1K77OPC6W1v49mISW VCqR5dOTgVUJXiG3fyKKZYsEnJ1b7P57UWsE2OHY5X6kE6llDZIxMHqPqJ2bDoyTiFzzAT PEKzreFb2HKT1vSfpjYruRI7bivEI66DSgN+WUMffwQ6CBwbDgQMwnGtA6S6qKaSc65Tiq onnghXEnaL8aCZTZ61m0FCnM3LdDuJ8b3ruWnILrr4+dupfNFIcVb4AczXdy7ncfVF8buA jpQNyD1ytnfnQGiZ4qnVhg6MMdPc7AK6woB9bs8Vik82ymIKiulXoxVVitpYJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193942; a=rsa-sha256; cv=none; b=BBGItCfVj3vnX71epl1Qw1SOUHTPAF6u634wmDFR/Idxqlan8w5kI8luPby8b1vLzrraI8 DOwYRBC3OBAneRLkA9hDBBfmYdlaUiJbiZCIHXi6jKT6NxJ1Tvklb76GaDfW6O4ACdP+Lp crmJpIICqPpHS2PwwWf6UAmpey4IuSw/EOC8ZIhViHzPz5EunfLKq6S5lAIXcxnIBvlEJV NQE2AcTe0T4r/s/hfPvB0zPHw3sc/Fq+SGisbZ4KboaZSWyICudYUixXOZeduXpYP9ruLy l6OV6iydtFjt/avYL6/DUK0fFVuCTgWO3UmysQSh0i6B6gK3pTOLWvo+aB89pQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193942; 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=sc0FHnokMzVxPSI77Q7huSLjLjzAZ/ImyOXH48uiueE=; b=cgL8bdVitvbLCcaK5W+WwQ9Sg0+f9WCc9f+70AeTodO9jE83SkZeaSUw1nvAmEax0bYlxx jmIGcbtnzNQgcfDQw5U1zEhB8FHTKWUUCQDmPXL8a+D/2WI+O1/dEC07BrcgzceMnrh+Cs vyUzM5H7lRoBbwRZiZ2JQKIFEWapAws+363EIWjjW9JynLVlHJA9+C8kTYCJRR8cRRrq7m 9pc+BEojXDJhybBVYv8v+n9quFXKmg3sgUa8/HChqxq9wY+YyEMBP6zrnlQrvkc4wWsSXT t3SCgJiBCYskTBWssVJ6y9ytETaWgwnpCaS/Flq6epnAlfc47QjI087tiF55hg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8k1CdVz1kR for ; Fri, 27 Feb 2026 12:05:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3dad3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mark Johnston From: Sumit Saxena Subject: git: cb2852147edf - stable/15 - ofed: Define SUBDIR_DEPEND_libbnxtre List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: cb2852147edf66eb77143102549d57689ff29a47 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:42 +0000 Message-Id: <69a18896.3dad3.5e5cdb51@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=cb2852147edf66eb77143102549d57689ff29a47 commit cb2852147edf66eb77143102549d57689ff29a47 Author: Mark Johnston AuthorDate: 2025-12-03 14:21:07 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:39 +0000 ofed: Define SUBDIR_DEPEND_libbnxtre Fixes: b42fda6be3fd ("share/mk: Include libbnxtre entry in bsd.libnames.mk") (cherry picked from commit 962ad7c1984decda1f16b079cd09ca9310e7f7ce) --- lib/ofed/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ofed/Makefile b/lib/ofed/Makefile index 5421e2e43cd1..a3265813f7d2 100644 --- a/lib/ofed/Makefile +++ b/lib/ofed/Makefile @@ -19,6 +19,7 @@ SUBDIR_DEPEND_libibcm= libibverbs SUBDIR_DEPEND_librdmacm= libibverbs SUBDIR_DEPEND_libibmad= libibumad SUBDIR_DEPEND_libvendor= libibumad +SUBDIR_DEPEND_libbnxtre= libibverbs SUBDIR_DEPEND_libcxgb4= libibverbs SUBDIR_DEPEND_libmlx4= libibverbs SUBDIR_DEPEND_libmlx5= libibverbs From nobody Fri Feb 27 12:05: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 4fMn8l6kRLz6Ss3S for ; Fri, 27 Feb 2026 12:05: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8l2QpFz3DJn for ; Fri, 27 Feb 2026 12:05:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193943; 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=IzxlJrgPblfnfKZonMRFpIAE1oY58EpdkeSyYgSp/lw=; b=beY8aVx0lDwo2JqK4/vmjTF8gREzYSAgr88lAoGCm/NitLHmA7R3KFvQM4qP1490JYM+Li eOGytp++ekmh2ltZN1d++WJo3b3WQsS/3dYwtAoZiAAhEZLU+qjEJh+IFYndOGMDgb/SMK Wp44i7/sCe6dwf6OZT8VZKMRun95jzwsnnb6D8i8ruMir0nredcK/PacWE2A2SWZvkyDdF TlmJPCZ3UwcISq+Vg74O5T3Gm2JbrtK0tA4ZzgPmFEn4TIszZDgVo+YPvRCgTbhJwcGQVz jv2P2G0oEaqFpkitGSYnzPgtRzywLgq/U9kURrUB33WqRgzVZVJljRgjRnNw3A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193943; a=rsa-sha256; cv=none; b=lcQcg3huUpl6NhgiKUjzjQHiZZxzhPb3JtS6IRf/XYk3fBVfC/kOGG3oZriD8vnPjQO4S4 7wWJK3pwIOUQipdCHHx33neE0rUKVRhWMGmWg6rFS+6NL0sFDbWUcJliYqxMw/QPwRGo3q wOTYh7nM47MQPvToVRYd2XyxSmLCiOCdVLer1J/X0+wHnO0q73Ph+CuVAghYsvPmcEtNIZ tmHq0HV0P31cpIbZAxDk/tQxojVsXCHZDw5wkwMG0K1VfeGuuftjKt8GMDyeASx9n4cW0t 4xIiewD1CqAOj7veuR2702Vr1ux1tP9mF+rtZ5NzTERQC/qKEk1+6Ml0FRt4aA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193943; 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=IzxlJrgPblfnfKZonMRFpIAE1oY58EpdkeSyYgSp/lw=; b=RGAdJT9leut4lCfExGPoSV3oLEnnQGVSgxqbDvxus3nal6jGFCmGbnlZgcdx5fTwRsju3J gJ31rqUeiR02J6RWzBzOuaPQhiy5+b2GGv7tyVEBsuWCfC2loZtY4jnVhhazeMkk3p2Tnh JY7Bddby5xewNk7jBW8zclGGzPvFAkPea2a7BO6qITtYcLyDhm9JbujL9bLHBvuQ7jjyA5 /eWAFbs99Ygd5ze5cMjcTpOUYEOzNqd1oXSwkxCuC5enQ8TCSxgRNBeSFG7zqsjqwYahC7 UhXIjwLUVT7V1HspVZHe3ybxeNB2LdKWyK/+eP9CXTFv5dK674mErqIlUl84Kw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8l1jbJz1kS for ; Fri, 27 Feb 2026 12:05:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cbc1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mark Johnston From: Sumit Saxena Subject: git: c5b8c66fe1ae - stable/15 - libpcap: Fix dependency definitions for libpcap List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c5b8c66fe1ae042fe964c173ad58f633c30ffa44 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:43 +0000 Message-Id: <69a18897.3cbc1.5e904c73@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=c5b8c66fe1ae042fe964c173ad58f633c30ffa44 commit c5b8c66fe1ae042fe964c173ad58f633c30ffa44 Author: Mark Johnston AuthorDate: 2025-12-03 14:26:50 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:39 +0000 libpcap: Fix dependency definitions for libpcap Commit 35dd53a9e132 ("librdmacm/libibverbs: Statically bound libbnxtre.so.1 to rping") causes a build failure, since src.libnames.mk declares a depencency on libbnxtre.so, but the libpcap Makefile and prebuild lib dependencies were not updated accordingly. Fix the declarations. Fixes: 35dd53a9e132 ("librdmacm/libibverbs: Statically bound libbnxtre.so.1 to rping") Reviewed by: ssaxena Differential Revision: https://reviews.freebsd.org/D54048 (cherry picked from commit 73e8fe62466a8ae5576473d9be4c6df9a6eedab0) --- Makefile.inc1 | 2 ++ lib/libpcap/Makefile | 1 + 2 files changed, 3 insertions(+) diff --git a/Makefile.inc1 b/Makefile.inc1 index e3e0409c8e4e..72ca2e69c7f7 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -3421,10 +3421,12 @@ _prebuild_libs+= \ lib/ofed/libibmad \ lib/ofed/libibumad \ lib/ofed/complib \ + lib/ofed/libbnxtre \ lib/ofed/libmlx5 lib/ofed/libibmad__L: lib/ofed/libibumad__L lib/ofed/complib__L: lib/libthr__L +lib/ofed/libbnxt__L: lib/ofed/libibverbs__L lib/libthr__L lib/ofed/libmlx5__L: lib/ofed/libibverbs__L lib/libthr__L .endif diff --git a/lib/libpcap/Makefile b/lib/libpcap/Makefile index c4bd175b502a..7f8d8e65d79c 100644 --- a/lib/libpcap/Makefile +++ b/lib/libpcap/Makefile @@ -151,6 +151,7 @@ CFLAGS+= -DPCAP_SUPPORT_NETMAP .if ${MK_OFED} != "no" SRCS+= pcap-rdmasniff.c LIBADD+= ibverbs +LIBADD+= bnxtre LIBADD+= mlx5 CFLAGS+= -DPCAP_SUPPORT_RDMASNIFF .endif From nobody Fri Feb 27 12:05: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 4fMn8n5Mjkz6Ss3c for ; Fri, 27 Feb 2026 12:05:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8m382Mz3DZb for ; Fri, 27 Feb 2026 12:05:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193944; 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=Lyh1BcHC3KnoiVypk2x90BkUL8RHJFN+zyrYz9UdJGQ=; b=mjeIOP2c0tTYKw1RALpAWDR2MPSL93Yurv540/kTxqpgSH7G/16LqDyJmDr5N/2qE6XW/c luu8aI/FRMMHLJ88xMU6R9YYk+VHShPp7XMs4d3mAe22JR+CgCQLTCvTsdmM+R+UHyQ4R7 ZIY9mFm7JbZ9hF5kZvjxQw0WTT6Z8MmG8Q085FxjuVQkinGVRfGdzIuLqv37y39cCIqvsR 7Jb8G+2Stcy59G7hUH6C/wtXWgLlslieLiTn0t7ztk8GmUwroiYumvf49hmQdAAeP4Zevs 4rxNUdBHxPFYsdsJbr/ZGlvtU6vIK14x30BSK8CPMW2WdTO7iwe23VvjgckqLQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193944; a=rsa-sha256; cv=none; b=cg4d9ROMm0Ls0ZeRef0d/t+G8K2u71uvCTAoogKTRoTLQTJPUtMJDutZLy4d57HPFvIf2q b7lfey/8cJvPBUEbssyFW7pkwTPKpt2H1bgbf4l5ldrY0d3iqo00nnsYSNdpjJKvu+UfV0 Zk7/BNzo71oJkOYET5eEzvG37qtEtmqgxe+XXIJymzo9appUQLaTK17zvgthKXS7Qdsr3M xPSG78TvhqKvrEcRV2JeFMf+RkpCHkrteVLE/0nn8XcvL5zzN4gyWJJv0j0Occ3ZCJEpT0 EG2m+Dy3a9fWJplHONGdz9P43u81C0ntwEcVlyMfnuNqJBppMNPqYfrhZxvRwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193944; 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=Lyh1BcHC3KnoiVypk2x90BkUL8RHJFN+zyrYz9UdJGQ=; b=V6Wr7NCYGJeACg6Tpiq3eHvz1Iht5HmvNDDfmu2h4MvYH3zTYJz86BQqVDf748snLcqCrz QpsWkW9WTLY/2VP1n5M56a5sWoV/5OQoGdwZih6aLHXjX87hACRi/N2gfX1xmQnKFW/h/U hoU3NhH0951IkAYLKbnbEzNUbfitBHu6ORkMuq+8iknutBay0lkF24OJzs4VK3OkwYZW90 UyUEUUPbU3+5UYP6CKd3N75iRWr/gY+zA7Wfz0cuf63a3riJYd4g16nyG4hphdDPI6rocr pI9t5nQ4aRIDAkEuHQdGEZQ0XIIw3g61Tx9wCD4Q08VQthW4bK7PeUosprZxmw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8m2Vq5z1rD for ; Fri, 27 Feb 2026 12:05:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d45e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mark Johnston From: Sumit Saxena Subject: git: 4243e2e99654 - stable/15 - Makefile.inc1: Fix the libbnxtre dependency target List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4243e2e996541a4e4b2e81eef66aafa0c2b07809 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:44 +0000 Message-Id: <69a18898.3d45e.267a0260@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=4243e2e996541a4e4b2e81eef66aafa0c2b07809 commit 4243e2e996541a4e4b2e81eef66aafa0c2b07809 Author: Mark Johnston AuthorDate: 2025-12-03 15:06:54 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:39 +0000 Makefile.inc1: Fix the libbnxtre dependency target Reported by: Jenkins Fixes: 73e8fe62466a ("libpcap: Fix dependency definitions for libpcap") (cherry picked from commit e19230d49ffc02944d93645800da934b7aeee078) --- Makefile.inc1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 72ca2e69c7f7..e65021c356c5 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -3426,7 +3426,7 @@ _prebuild_libs+= \ lib/ofed/libibmad__L: lib/ofed/libibumad__L lib/ofed/complib__L: lib/libthr__L -lib/ofed/libbnxt__L: lib/ofed/libibverbs__L lib/libthr__L +lib/ofed/libbnxtre__L: lib/ofed/libibverbs__L lib/libthr__L lib/ofed/libmlx5__L: lib/ofed/libibverbs__L lib/libthr__L .endif From nobody Fri Feb 27 12:05: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 4fMn8p2z3Qz6Ss7R for ; Fri, 27 Feb 2026 12:05:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMn8n3n2wz3DVJ for ; Fri, 27 Feb 2026 12:05:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193945; 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=DDRio30+nKNG0dHECnY2D/zDtFWd4O0gGY91xzgK1/s=; b=rCQuaaQAWHbOGD6gTwn0lyPwvthUrRQ4PreGDIjn4vUkvAJfNqJZCahKkFKTBg09hSQgY3 fZgsGE5mQF4w9kUivpPjf13o4qcTLud1+ea6P9+77Ob9Ud4yDkxjK8aBur+Q3hsRxi/oPI Jz6mfUEbNcONsWeXtTis0QERCHxB5oAN5+vDErHqs55A5Kci6YtJwShfl02XX2trVLgvKB GYJ/a/sKlJqSgASiZWHRcLabOu8kMna+HMFacNVIsnBMFaYTDDvM/oUaWFunnvVZlUb1ae 7hG3B97PQc+80LDDvGp1IO8tjn17J4pwbYad0s9wuEdpoJXLnSqzi3TCWWu6Cg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772193945; a=rsa-sha256; cv=none; b=MxHcpqkY0KoAqZ8iULZ2/36WZ0q4sXZHQklMVjJFykm6/w3JtjGX799FWgxnuHCEWO+d6/ 3XilKtmFK3QmRP5uwUYZO+61jbTRlIWa7BgFqHu6aONlkNW8Sa++E59mA3PhCIiQxzKZPc L391F5Zh5jcUAxgNHQvUWvknlAZ6h3AwXQqZHj6bo/SBViS1IMKDlRb1eOP2yd8O1bE5wY 2urfknc0QZt9xEq3FzWBdZbraZkRFhpS5e7zdnFXPywlQSbwJwgOB4r4YbPl3SJKQRMypU mC/Qu8XYBzt3pl4f8cTMrIpqiw6MP3V6egO5D0Lc4WvLLm4RKPzofSo7J6XkPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772193945; 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=DDRio30+nKNG0dHECnY2D/zDtFWd4O0gGY91xzgK1/s=; b=Ccq3bb6zr+8aqFFYL0SrXSeILmDX5mweLYstw5Khg2eFq8Bs0XWGgosC+wRNInPTkHlwIg vq37BIXRj8p2u4qtz5/znUGKuTapOG2p46VyryYE2TqCtn8dZ14aIS5sq3MNxF8z9a1BRg BRDolKAuPg19VQksTjD1mRsA0muBV9cdIfiLXO+hBB4tCYkuMpY2vW4fURcB2pR2JYPtyQ 2HbtUwJio5PMnsif2uuhXn3F64RzhGGj49k5P0uiWISmIVxwpc9L84xE66uzJ4nUc5Zc7r 239vh30JtSRsjwt7vdao0aH8UbE+GlggdPZLDLj1BKcC0DDOeHi0VJaSExHiiw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMn8n3MyYz2Lv for ; Fri, 27 Feb 2026 12:05:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3db2b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 12:05:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sreekanth Reddy From: Sumit Saxena Subject: git: 6032b83fa4ea - stable/15 - librdmacm/libibverbs: Add bnxtre RDMA provider to OFED build infrastructure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ssaxena X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6032b83fa4ea1cb48fe78adf5498ee24a19a4f45 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 12:05:45 +0000 Message-Id: <69a18899.3db2b.621e9891@gitrepo.freebsd.org> The branch stable/15 has been updated by ssaxena: URL: https://cgit.FreeBSD.org/src/commit/?id=6032b83fa4ea1cb48fe78adf5498ee24a19a4f45 commit 6032b83fa4ea1cb48fe78adf5498ee24a19a4f45 Author: Sreekanth Reddy AuthorDate: 2026-01-09 11:34:43 +0000 Commit: Sumit Saxena CommitDate: 2026-02-27 12:04:39 +0000 librdmacm/libibverbs: Add bnxtre RDMA provider to OFED build infrastructure Extend the FreeBSD OFED build framework to include the Broadcom bnxtre RDMA provider library. This change: -Registers libbnxtre in src.libnames.mk so it is built and installed as part of the OFED libraries. -Adds bnxtre to the OFED pcap dependency set when MK_OFED is enabled. -Declares proper dependency mappings for bnxtre (ibverbs, pthread). -Introduces LIBBNXTREDIR for consistent object directory handling. -Updates libibverbs and librdmacm build rules to link against libbnxtre, enabling Broadcom RoCE device support at runtime. -libbnxtre library uses below constructor to register with the libibverbs, static attribute((constructor)) void bnxt_re_register_driver(void) These updates ensure that applications using libibverbs and librdmacm can discover and use Broadcom bnxt RDMA devices on FreeBSD. Reviewed by: markj, ssaxena Differential Revision: https://reviews.freebsd.org/D54368 MFC after: 3 days (cherry picked from commit 821c6c43a33d5b72290ee7f896d28438a3b789e1) --- share/mk/src.libnames.mk | 7 +++++-- usr.bin/ofed/libibverbs/Makefile.inc | 2 +- usr.bin/ofed/librdmacm/Makefile.inc | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk index f066e7bbdd94..00dd8b9e5d4d 100644 --- a/share/mk/src.libnames.mk +++ b/share/mk/src.libnames.mk @@ -286,6 +286,7 @@ _LIBRARIES+= \ irdma \ mlx4 \ mlx5 \ + bnxtre \ rdmacm \ osmcomp \ opensm \ @@ -361,7 +362,7 @@ _DP_cap_sysctl= nv _DP_cap_syslog= nv _DP_crypt= md .if ${MK_OFED} != "no" -_DP_pcap= ibverbs mlx5 +_DP_pcap= ibverbs mlx5 bnxtre .endif _DP_pjdlog= util _DP_usb= pthread @@ -511,11 +512,12 @@ _DP_cxgb4= ibverbs pthread _DP_ibcm= ibverbs _DP_ibmad= ibumad _DP_ibnetdisc= osmcomp ibmad ibumad -_DP_ibumad= +_DP_ibumad= _DP_ibverbs= _DP_irdma= ibverbs pthread _DP_mlx4= ibverbs pthread _DP_mlx5= ibverbs pthread +_DP_bnxtre= ibverbs pthread _DP_rdmacm= ibverbs _DP_osmcomp= pthread _DP_opensm= pthread @@ -810,6 +812,7 @@ LIBIBVERBSDIR= ${_LIB_OBJTOP}/lib/ofed/libibverbs LIBIRDMADIR= ${_LIB_OBJTOP}/lib/ofed/libirdma LIBMLX4DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx4 LIBMLX5DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx5 +LIBBNXTREDIR= ${_LIB_OBJTOP}/lib/ofed/libbnxtre LIBRDMACMDIR= ${_LIB_OBJTOP}/lib/ofed/librdmacm LIBOSMCOMPDIR= ${_LIB_OBJTOP}/lib/ofed/complib LIBOPENSMDIR= ${_LIB_OBJTOP}/lib/ofed/libopensm diff --git a/usr.bin/ofed/libibverbs/Makefile.inc b/usr.bin/ofed/libibverbs/Makefile.inc index 616c9bd54707..f8301c3d1073 100644 --- a/usr.bin/ofed/libibverbs/Makefile.inc +++ b/usr.bin/ofed/libibverbs/Makefile.inc @@ -3,6 +3,6 @@ _spath=${SRCTOP}/contrib/ofed/libibverbs BINDIR?= /usr/bin CFLAGS+= -I${_spath} -LIBADD+= ibverbs mlx4 mlx5 cxgb4 irdma pthread +LIBADD+= ibverbs mlx4 mlx5 bnxtre cxgb4 irdma pthread WARNS?= 2 diff --git a/usr.bin/ofed/librdmacm/Makefile.inc b/usr.bin/ofed/librdmacm/Makefile.inc index 74f32fe08b42..66fcf2ac267b 100644 --- a/usr.bin/ofed/librdmacm/Makefile.inc +++ b/usr.bin/ofed/librdmacm/Makefile.inc @@ -3,6 +3,6 @@ _spath=${SRCTOP}/contrib/ofed/librdmacm BINDIR?= /usr/bin CFLAGS+= -I${SRCTOP}/contrib/ofed -LIBADD+= ibverbs rdmacm irdma mlx4 mlx5 cxgb4 pthread +LIBADD+= ibverbs rdmacm irdma mlx4 mlx5 bnxtre cxgb4 pthread WARNS?= 0 From nobody Fri Feb 27 19:59: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 4fMzgF5gM7z6T6f0 for ; Fri, 27 Feb 2026 19:59:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMzgF51Drz3V9R for ; Fri, 27 Feb 2026 19:59:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772222361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a2jV2DJHTm1LTNeAPtCfV0ByWpLWEexzI42BvOBx170=; b=WHx/Zgp85N4jVvgumr+KP+yJy+VUFYfE1+K6UFtVZnVvh9EdhW29Ebt9MXE0MsJRVvx30I LQoe4meLcnwvFSw2W1w9hXrV7wqS6Gu8JSXcVhGBRkLUZXgM5irVTZcHxAk7bGF8BVvBHk QD4W8OoUqIyjjrgNDVLXLY6tQ3b0C/78RpYNqa3lvcClTdyZfAZebvCGl4+DIYSqlBBV3O 6j6BJBkfuEY04G0BkgwA5We9qqQeSpeHnOuWIP9x+lCW8c0fS8LEayW/XOoR3lzAiqAG8h 2r8/4ySHBJk+fjSD05+wsnhQzfoCuzc0QssOdBCtnjr22PkayRwD9kRMlmEn/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772222361; a=rsa-sha256; cv=none; b=uqHymklLRO7jxm/g3FYSdRYVnQx0orDgl7w52kAVXotausn/9o77qyI4avtmc9JGKG6/Hc TJAa6y1DRsb+aagLKEiG7uO6ojRUj+lujbprycGQ7jJpe8Kdi2kDlA3cIDm64g3KaLsnIP NrhpZzXEc4aZKdMYKJRRU5DShtNTnKvDvRXynVHF34ELiQWIYKXXPFitKDzCf6LyTzoV9D S69zKWw6l0ATicRLkF50LIgelknbtAqBy3yZv0yZ5f/ey/ekwIlOm4VQ4bTai3oOmbOSFV r/EnfHYsBeizCmS3VS8prXjVzlu9c1PKMeQbpvyJRhJFiSrWO3m+2RbED+MHhg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772222361; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a2jV2DJHTm1LTNeAPtCfV0ByWpLWEexzI42BvOBx170=; b=qWWgmQok8yFWqaKn2RCh7vqmeemG7LtXBZrtGE4XkaBj9RZnXDUpdHBuDWXYCc+oxoKPOV eraAd+1zE0l4PVq6PGdot7ATZX8leTZoZwzbJr86vuyU9J0BqL1eZBi5rSzVv4TDgGd/+q 4WeTg8UV2U5NGJ1QD3TT4AFeH+8/ryC1ursBpUedj3Owtlf4OY4BGzwwUAD1i97ioUgRY5 /CVjNekLkq1GkUUUsLgK4MzFQwQ7xQvigpy4i4cHbVErMHfQfUqDTQdxXvtjvuFJimBUxf 1MDqjj+xxKbWLhVT1bgBMo2MQyWw4wAX6zddjhqjEjB5g74fxAKOiazpuAIbMA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMzgF4B11zXVJ for ; Fri, 27 Feb 2026 19:59:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 205b6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 19:59:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d37214da968b - stable/15 - freebsd-update: Error for -b basedir without UNAME_r set List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d37214da968b8f381e7b67f80607e0865d873f5e Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 19:59:21 +0000 Message-Id: <69a1f799.205b6.5f6d8dee@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d37214da968b8f381e7b67f80607e0865d873f5e commit d37214da968b8f381e7b67f80607e0865d873f5e Author: Ed Maste AuthorDate: 2024-12-10 13:47:34 +0000 Commit: Ed Maste CommitDate: 2026-02-27 19:59:04 +0000 freebsd-update: Error for -b basedir without UNAME_r set freebsd-update sets the currently running release from UNAME -r, which can be overridden via the --currently-running commandline option (or by setting UNAME_r in the environment). This may be invalid if -b is used to specify a basedir other than /, so error out if -b is specified without setting the currently running version. PR: 283229 Reviewed by: cperciva Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48016 (cherry picked from commit 097458ac665db732cc91a22279da4cc14f694da2) --- usr.sbin/freebsd-update/freebsd-update.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index d9db4fa4bf6b..c77f4b18fc61 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -755,6 +755,10 @@ fetchupgrade_check_params () { esac chmod 700 ${WORKDIR} cd ${WORKDIR} || exit 1 + if [ "$BASEDIR" != / ] && [ -z "$UNAME_r" ]; then + echo "$(basename $0): -b basedir requires --currently-running to be specified." + exit 1 + fi # Generate release number. The s/SECURITY/RELEASE/ bit exists # to provide an upgrade path for FreeBSD Update 1.x users, since From nobody Fri Feb 27 23:09: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 4fN3tr3gXfz6TX56 for ; Fri, 27 Feb 2026 23:09: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN3tr2v5nz3sCm for ; Fri, 27 Feb 2026 23:09:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772233780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x7VNPP2SezaEMEF01uoH+ebhcCArajgzYSDRXJ78e24=; b=KpizXsNUo3A6gZQbI1jSUQUydsGqsn2difhxFAA+TtBLepYopDF5GJMf3V711WSQAHksZM Wv/MML9iOWVL1o3CR3k1gPqPI/auwXQOzu7N/BoWyO+xuRvOf4ecFnfpKfc3jToY+QE0A5 E+C4b63bBUXUQ1daBrSmborswNQn48iyps+8C0XWJyHc23Eu3/Lccq1WV9WG81hPgayZoO 9/4Snigo2S4Wbh4IxvlCcVb4Br4wsCn2vtLzkHAxCQxqpxusnYB8O5pDnvAUC05mvFbbsd t2CRjZj93LszwL8cXoQJHWaWgeKSSMnRLK128qljRLIXljp5zcGSpcuy6NdgZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772233780; a=rsa-sha256; cv=none; b=iGgvxWNwIkZJcloVtJcj77qyUuMBgc3pUiZfy3z1ndE29DFtNydo93XOLw9TToIw9IUF9l OcNDnYHqYik1Ti+lRCf24tI1WgFqrIKTxs6URh3eF1uMt5VAREUeCVzV7sRXzpjHom57lA t9qTHTjeA+NmagN/bv6KdNmeXYHUikQbUgpS3DRzyhWbD5/wECiaAQZeuB7CHfCCqA6Wpp Zg/A8OIKwd9K0W+8gUycI5b+pLw/DWf5DP0KUy58SfW1+OJcH5RxHILo0wIn3/6uSEawyP 1IxPweMvWEAZgZtUfcGDCBsxYIxEhFEg0hVPTFYQUmqIjTOLV6W7vW+a2lnyYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772233780; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x7VNPP2SezaEMEF01uoH+ebhcCArajgzYSDRXJ78e24=; b=P5lzIT60Ebq27vkms8OOZNA08jzZxqYrHqHj6SC2kCBMdz+7dQjhkVy/I/SnUVl9G5lnR0 soyMPVjOVMjxMQ2ed104mBLcgelHRtIEFFysLG0mYtfZUn1POp6/evyMFbnrnuDmfjDOod Yn8fnv9doVqavjIey1jTaVzEHc+OGznmbvvL52+QQm4lqhqgtIp04M06xWuQfOMtebEnMc EDcJbXHg0rM7r/wilkleLCDlRZmgc7g3BmoHFYdcSBOnTMuahja4/VSgx/eneTCl0RpNHW gO9sQzLBteYUBd+yhnPr310DHtc6eJ4jcK7AN1I011FKVAuAYUTHhNeYlsEggQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN3tr2DQSzdrc for ; Fri, 27 Feb 2026 23:09:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bc9b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 23:09:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: b24dc842e1db - stable/15 - e1000: Increase FC pause/refresh time on PCH2 and newer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: b24dc842e1db573c894a20e6c0f14c6b13b15b8b Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 23:09:40 +0000 Message-Id: <69a22434.3bc9b.5467d900@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=b24dc842e1db573c894a20e6c0f14c6b13b15b8b commit b24dc842e1db573c894a20e6c0f14c6b13b15b8b Author: Kevin Bowling AuthorDate: 2026-02-13 06:30:22 +0000 Commit: Kevin Bowling CommitDate: 2026-02-27 23:09:28 +0000 e1000: Increase FC pause/refresh time on PCH2 and newer This corresponds to Linux f74dc880098b4a29f76d756b888fb31d81ad9a0c That commit does not provide any public background detail, but it's been in use for over 5 years and corresponds to previous chip bugs w.r.t. automatic generation of PAUSE frames. Reviewed by: kgalazka Differential Revision: https://reviews.freebsd.org/D54555 (cherry picked from commit 2bdec2ee73be7dbafce9982b0dc5c273918a5443) --- sys/dev/e1000/if_em.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 49adc8caa325..23b7e3ff116b 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -3225,8 +3225,8 @@ em_reset(if_ctx_t ctx) case e1000_pch_ptp: hw->fc.high_water = 0x5C20; hw->fc.low_water = 0x5048; - hw->fc.pause_time = 0x0650; - hw->fc.refresh_time = 0x0400; + hw->fc.pause_time = 0xFFFF; + hw->fc.refresh_time = 0xFFFF; /* Jumbos need adjusted PBA */ if (if_getmtu(ifp) > ETHERMTU) E1000_WRITE_REG(hw, E1000_PBA, 12); From nobody Fri Feb 27 23:10: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 4fN3vz6XDvz6TX3r for ; Fri, 27 Feb 2026 23:10: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN3vz5xmvz3sXf for ; Fri, 27 Feb 2026 23:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772233839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gbKwm7tn/24XUImkli5dq9G0tSbhSMBc57U4dqbvN7Y=; b=ElDwlYtRvqSNeP++zwrA3+LnloY+CYZDe5zJlmDtjUORW16HA01EQ7/AMc1r33PvMZZBr8 z7M6t3VKs0YniTNrCDvfKyj8fQ7pWzLIchw4CdBkEnHxtMELNi95pizFFxLhYEHJzel2PW 3K1GiQNiRsHq8FFMATGapkKgyK9VetX9HUwaFAhIp4f0zkj5ABsPw+3xBsHLBeo/GeUyEQ YNBR/L6A7B9XvD1//IQPBo9z80yyjHQ3L5J1abjMZNtpAaLhqkGfdTvu05awmPdr8IOyVX sbaMdTZNNINSDcADr/BYyaOxirOfebL5Ky/a3PJRm8QWpuI3ZDThKLVLRr3uzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772233839; a=rsa-sha256; cv=none; b=bWSxN+PMsPUAPu1O92AaAPDEY1hbe2eYr8H9qsXqEibkF+uryhMgRFPAXdAGU7YErpmwzi ckNHZiLQyRy4LFe0Tqd1c+21N3w46l//Uha0j1DoIF3VCvwIo+eyMXAdr0atOcWj8XKWLm ItAqTr0HSmoIKIyhatBrf8Q64mBrOKjQaZUJ1nN0+HP3d71Kdb0II7ZvQyurq+gNYbPACm bifE7ZVxYLuiwVFOCI7RMCcD7fPEqemb0xOUr7ZST4U/kXYpolNNAf60MdWl24IX7NOmZU i9ntSOG89VgRZRSgNcel3mTZVwOMKQsSnSIiqmqSKJIXldJRkkNBrHl1dAa9Gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772233839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gbKwm7tn/24XUImkli5dq9G0tSbhSMBc57U4dqbvN7Y=; b=oy/UEDPOT2nGM9Od9mXhucyfTDTycr1cn2QlKOOIjDcm6/i4wU/b1RNBr/EUNtDKcCYhUU P7+w4j4QmEMzAM8UfHlKvT7wu2eCaC5QnYLca+cFIhfdh8/ZfYMhoKPNs/UbCT5XpRBJRL ZAtZHESJeqdq+8sN4xNEgIAdTF72u/xe0i18p9EihQbgMeIRuEItIwUueU728tHNoNJzG0 /E3d1WzJvEt7plWPJm3Kx7ergz8Ke41m99rxOoi2jg2mMETxHKsVRLA/hIoB8/NLYi9xns 0pX8kPy4+ZSx1UVGq2hN4gfKOAYlFOHd6JM6dVTg4D+L8JwAKOUbvOalgI96Jw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN3vz5QRTzdrh for ; Fri, 27 Feb 2026 23:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d12d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 23:10:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 2244269424ae - stable/14 - e1000: Increase FC pause/refresh time on PCH2 and newer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 2244269424ae439f0234d238c2674a95c0b459a3 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 23:10:39 +0000 Message-Id: <69a2246f.3d12d.495160ef@gitrepo.freebsd.org> The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=2244269424ae439f0234d238c2674a95c0b459a3 commit 2244269424ae439f0234d238c2674a95c0b459a3 Author: Kevin Bowling AuthorDate: 2026-02-13 06:30:22 +0000 Commit: Kevin Bowling CommitDate: 2026-02-27 23:10:13 +0000 e1000: Increase FC pause/refresh time on PCH2 and newer This corresponds to Linux f74dc880098b4a29f76d756b888fb31d81ad9a0c That commit does not provide any public background detail, but it's been in use for over 5 years and corresponds to previous chip bugs w.r.t. automatic generation of PAUSE frames. Reviewed by: kgalazka Differential Revision: https://reviews.freebsd.org/D54555 (cherry picked from commit 2bdec2ee73be7dbafce9982b0dc5c273918a5443) --- sys/dev/e1000/if_em.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 318620c944a3..248d14f5974c 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -3218,8 +3218,8 @@ em_reset(if_ctx_t ctx) case e1000_pch_ptp: hw->fc.high_water = 0x5C20; hw->fc.low_water = 0x5048; - hw->fc.pause_time = 0x0650; - hw->fc.refresh_time = 0x0400; + hw->fc.pause_time = 0xFFFF; + hw->fc.refresh_time = 0xFFFF; /* Jumbos need adjusted PBA */ if (if_getmtu(ifp) > ETHERMTU) E1000_WRITE_REG(hw, E1000_PBA, 12); From nobody Fri Feb 27 23:11: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 4fN3wn2vgvz6TXLw for ; Fri, 27 Feb 2026 23:11:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN3wn2Gxrz3sy9 for ; Fri, 27 Feb 2026 23:11:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772233881; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2rEYhOH9GDCRL6QfdQUfKuc4VPWeYNmgNc9I3DqZ9xo=; b=n5FimlWbK/GU2du1rS3CA95Ub0NgcMS99PScQkb+06EcX2b66YOGiWvfdhe96/HI7IMNHd GU6rXFQQiC1ZjfFhTp+Clq+Bx0FvR49u1eNZS5SNFrE1EfQZ1+1dr0ZlcSWS29CbH7xHt2 p//je8sFOpBWpFVlAY5+5X6pzNhoWUaal2EC4ZJXmEJRZaL5vyPQvdpD1ncl3agzxlDDgs SVOdph4I+a/ZEx1a69gJRvCT7MKSTz5Y2VCwKDGZ40UVCPF/n70ysq1fMK3MaJf1VnrkFU Q83hurrXa581w/by7H5bb7Nzcci4hx4GNdpyR+WRKeIgZAiNVq6b7vg+DUVORg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772233881; a=rsa-sha256; cv=none; b=pGesXKds+36Y58dlxSzHN71xdyrn/EfNX+otGzCPdYK9y3EYqW8Kd+xVWyo2GGf5jOukxR XVhv3l5blmwwKpLqLDfPNN8/QBUJfja74HF12mR7VSjNQ9Fwq6OLCTuo4rHB6H22rxKRGR oA714aCNdXhFaVU5a5a6OmSE3qKcbjx2REI9Ka7SIiotX9f9RDvMfupE4o5tw8o+vLAyuR IEg8LmuvEsKKsQxZqy/p56HWmGblMsmJcuijHvTtqZ4F/2uyd3+nY9giQAhRGJhhGWIPLY HmZ691bR8WJD1UOu06RE2yH86gUc/K2G7GToUoMy8ImbsJ7/IZV5erH7kHeaJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772233881; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2rEYhOH9GDCRL6QfdQUfKuc4VPWeYNmgNc9I3DqZ9xo=; b=lWrZic1/A9+xsKOkdjn8eMIw+3pDkfMG71qyzeEYzXDnxDMLfg0UwHjNLxOO+Zjhs+58P7 o36AztBrhmiqplvGG89t+vMSsax7/3fxliqJYKiluNrbYezXEOkbEPxTXt311zhZ0GBUfX 3q4u4ZIK6P5sTIaRj91daLmBl7u3w9d5Qi3Orl9ISHXXBfNdpJ5tzzB6nCJSO/AlAkHAvZ wkG/pdeI5m2S6NBEOTdStcFDJ49QkVS+tQGreOlk4DCxVpXqqgM7167ytbBLf44Px0+lcW LH3y7HQIy2OAYzSrjP153XK9Q6YIQQgVNrQhOsj/eo09nGyD+XVqsxr1Dt7ybg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN3wn1rnszfBK for ; Fri, 27 Feb 2026 23:11:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d06d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 27 Feb 2026 23:11:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 55eff489d9cd - stable/13 - e1000: Increase FC pause/refresh time on PCH2 and newer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 55eff489d9cdae5620bf60bb79d996a059404ed2 Auto-Submitted: auto-generated Date: Fri, 27 Feb 2026 23:11:21 +0000 Message-Id: <69a22499.3d06d.1451af0@gitrepo.freebsd.org> The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=55eff489d9cdae5620bf60bb79d996a059404ed2 commit 55eff489d9cdae5620bf60bb79d996a059404ed2 Author: Kevin Bowling AuthorDate: 2026-02-13 06:30:22 +0000 Commit: Kevin Bowling CommitDate: 2026-02-27 23:11:11 +0000 e1000: Increase FC pause/refresh time on PCH2 and newer This corresponds to Linux f74dc880098b4a29f76d756b888fb31d81ad9a0c That commit does not provide any public background detail, but it's been in use for over 5 years and corresponds to previous chip bugs w.r.t. automatic generation of PAUSE frames. Reviewed by: kgalazka Differential Revision: https://reviews.freebsd.org/D54555 (cherry picked from commit 2bdec2ee73be7dbafce9982b0dc5c273918a5443) --- sys/dev/e1000/if_em.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 3244dc9fa348..92874e43fd3d 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -3206,8 +3206,8 @@ em_reset(if_ctx_t ctx) case e1000_pch_ptp: hw->fc.high_water = 0x5C20; hw->fc.low_water = 0x5048; - hw->fc.pause_time = 0x0650; - hw->fc.refresh_time = 0x0400; + hw->fc.pause_time = 0xFFFF; + hw->fc.refresh_time = 0xFFFF; /* Jumbos need adjusted PBA */ if (if_getmtu(ifp) > ETHERMTU) E1000_WRITE_REG(hw, E1000_PBA, 12); From nobody Sat Feb 28 01:33: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 4fN74W1Chsz6Tnqm for ; Sat, 28 Feb 2026 01:33:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN74W0JKnz47NB for ; Sat, 28 Feb 2026 01:33:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242395; 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=xWpTp2PThCEXMwwZhCOqqggAgRTHXOXQy5AQI+LF8EA=; b=GIjnJvqs9vHNzIW6hR5H+KHNXDHrVkEbNMzW3VaF1rPV8hLzb9mgDNcs2Yg43r32icBG/y D2riLBoTt7sgSWcVlFQKofQZ2BmGkwdvC8nsl8oWho/dS07/jfcMxtOoequpTMAcI1IZk4 yVezq6EOuDBLqK4GL/13RyKWbITIvLzwBT4vfuq0mRQteRWaOA01hegVWkTm++AHOvZ61T 4t6a7Sxujfl5WPLOPoUB2AntPJ12Ma40Abr6pFVoPbsSjEsTSIg4h+jqD8jyJp5FKjpe1Y OERHV4mLMueVl42ZteF9it6niqxLjQrVcF1zFgVOkoD1pJfLaDhvzG1uAjc4eA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772242395; a=rsa-sha256; cv=none; b=J4oA/33RsfqltLmlcYzIcWhmyRhpGWl9qYsyfKapM8avdXdwXR2XwV2srefaXkGauRBkmt /isVub4f5WfzksnZGgaZ7m+rMVC1OFHeamYC9dlNcaOm9JGdjwZDfLv0a/Bjj3AvHL6Ckg 9vfIXTHXYF6nQnymmgCmcuthU8RivbXCYDRkwMJBM4vRBrX0O+R08e5FTZyKvHoJCoamPW lbs+EYyj/dK6DAiJfEgVXzV1renUFybCp5wX2xuLuCqGgGTv4fM5gs1w71b/eNxwEIvyWA 6s04WZYYWOALHARrodQlmQVs3eb20J0ig+MOLIEX8caJ8nEu7cJYAm/QrKlwwA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242395; 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=xWpTp2PThCEXMwwZhCOqqggAgRTHXOXQy5AQI+LF8EA=; b=cYHDxi86V4wcgEkxFjtwWnbFpYl1+S9jh75SNJ7iiSYwBS8HwfUMzstBj1AR/7obLy/d1x NcxR/Wrja3RAcgAWlx6lb4x0gO0hNZI0d/lOUsmvsNThbETYyCbk4XrQkD0wlbVAQAWrgA IT5x6rHXDJ16NRNEZlQjy/KrtIv3LdVOl/mrWLRAAC0YqLI2ORkQBJ7A+9HYJbPTxRAmS0 IjtShETum/qzcjiMXR4ABoAFlldMv030BIxnhZzkDhpDXIdc9bw0W64op1WqBKB3xuGFuj 0MZUtV90u5iAMKt0aTfxPNn7Ekx9i5mmVHlIPurSdAIiP2K0TelcD2eRvKw6ew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN74V6jS9zjQC for ; Sat, 28 Feb 2026 01:33:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19cd4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Feb 2026 01:33:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Ruslan Bukin From: Konstantin Belousov Subject: git: e0dbeabeee7a - stable/15 - iommu_gas: Fix assertion. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: e0dbeabeee7a5f8fb7617b22b272c70c5618907c Auto-Submitted: auto-generated Date: Sat, 28 Feb 2026 01:33:14 +0000 Message-Id: <69a245da.19cd4.607b9313@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e0dbeabeee7a5f8fb7617b22b272c70c5618907c commit e0dbeabeee7a5f8fb7617b22b272c70c5618907c Author: Ruslan Bukin AuthorDate: 2026-02-19 13:56:36 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-28 01:32:24 +0000 iommu_gas: Fix assertion. (cherry picked from commit 7e8284c6ad95bb7a0fc84d4d945ee98737efdd36) --- sys/dev/iommu/iommu_gas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/iommu/iommu_gas.c b/sys/dev/iommu/iommu_gas.c index 80e37341b3dc..306649db445f 100644 --- a/sys/dev/iommu/iommu_gas.c +++ b/sys/dev/iommu/iommu_gas.c @@ -282,7 +282,7 @@ iommu_gas_fini_domain(struct iommu_domain *domain) entry = RB_MIN(iommu_gas_entries_tree, &domain->rb_root); KASSERT(entry->start == 0, ("start entry start %p", domain)); - KASSERT(entry->end == IOMMU_PAGE_SIZE, ("start entry end %p", domain)); + KASSERT(entry->end == 0, ("start entry end %p", domain)); KASSERT(entry->flags == (IOMMU_MAP_ENTRY_PLACE | IOMMU_MAP_ENTRY_UNMAPPED), ("start entry flags %p", domain)); From nobody Sat Feb 28 01:33: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 4fN74X2KWyz6Tnxq for ; Sat, 28 Feb 2026 01:33: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN74X0qWnz47dm for ; Sat, 28 Feb 2026 01:33:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242396; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IxlNTudpjl+yWUNZFCgA1Glqkod9+8hZrHKlZ/W0owc=; b=MtLShUpjsbnm2Q/AcpBgpA5zHslgI/i2TfIuQt3wUWErJk3B+SiCf8adzO3CpC2qUv/+u/ HKoEq9TTY5WPGsbJOTsgU/4yYucLscuob4FZUqk2ymDYj7aVp536d4kDWAw36kdBGi9Hvx Zxp0s688dLxv+zmrE+EcznYnH7fWCXyknQnCwP7r3qLAJBWXGdc6pUxaIr7xnSgh7qbdpe T/vnmh+++OxVfYgP8/Y5haJKpNLXuZNyfKtz8C8buHc5Dz8OWE2arSBHG3+StECMUk+8+W s4kBnTAgIpFqKeJmRVkzHRRky2f9NzUDXeyiGSczNkYhkAvmN7C0f48Gh6jmHQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772242396; a=rsa-sha256; cv=none; b=ql08Mc+dPo8MhTIs6yaUGKPL6QTHPjwmo9MlGL0pCeg+55Qge+Arf7pMKgWrcoQ3/X/xOS huv0ZAlg8Yzw4lzWs9K0VLr/Rc6GT17SCuB3wvDlujpVf4Cs+vMq3wWM/0fyRHvhkDNMyk j3j1XIuko0uCoXtfrM/PHBwp6FfiRTGgDCkgXA1C6l8tqW6bGJRSN7A6JH0rRCYGnU5ysE HGjeM7P2V/H+cW3LVvFepAA+JR85toB50NQOceGKsVxi0YqW+TewJU4emlGGtN7XUB3o7A N5GNf0nCt7YlJaqI1xiKb5Mn32olppcg4gWIBNhdywQflvZRGqJH1kEYQEw33w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242396; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IxlNTudpjl+yWUNZFCgA1Glqkod9+8hZrHKlZ/W0owc=; b=Q44mcdwOUABS/FSE+lhVFkgN33+yxzT75D4g1yC3hHp47vLDI57KEj98cLvIcyfOpCUunk 4ByyPMKcwo9hIlgGN3fsmZBQd+ZjQhV4PD0PCkuL6JPduHb7SLSidXRM/07/Jx3GL4fEXo 2N6Lln1bHilyuvdhr7mezw+oCxxdw6JtVpfNgnw4A33+0k2mtSVqHo3rjxt/09OQ5+A5CW J2WDEVXutvDpUdDMkkwaf3ds4BUxE6MVuVCdYUX0zH4tg55/8xcxEeyEMGn4q3ridyoHeG SHEVwU5130yOBpQjaBtNb87yvpItW8DvYQzaflEGF7JDF9G2VuIGsMQ8DsqY4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN74X0Qb4zjdn for ; Sat, 28 Feb 2026 01:33:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19cd9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Feb 2026 01:33:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 08f95c4938d3 - stable/15 - procctl(PROC_REAP_KILL): use pgrp pg_killsx sx to sync with fork List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 08f95c4938d301a9e00e69b97d1dea3cacd98ac5 Auto-Submitted: auto-generated Date: Sat, 28 Feb 2026 01:33:16 +0000 Message-Id: <69a245dc.19cd9.310916a9@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=08f95c4938d301a9e00e69b97d1dea3cacd98ac5 commit 08f95c4938d301a9e00e69b97d1dea3cacd98ac5 Author: Konstantin Belousov AuthorDate: 2026-02-15 11:05:36 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-28 01:32:24 +0000 procctl(PROC_REAP_KILL): use pgrp pg_killsx sx to sync with fork PR: 290844 (cherry picked from commit be140717a0a4bbfa7176d334c36364d34a0b1bc5) --- sys/kern/kern_procctl.c | 142 +++++++++++++++++++----------------------------- 1 file changed, 56 insertions(+), 86 deletions(-) diff --git a/sys/kern/kern_procctl.c b/sys/kern/kern_procctl.c index 96365e192d3c..04c47d086677 100644 --- a/sys/kern/kern_procctl.c +++ b/sys/kern/kern_procctl.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include @@ -256,68 +255,73 @@ struct reap_kill_proc_work { ksiginfo_t *ksi; struct procctl_reaper_kill *rk; int *error; - struct task t; }; static void reap_kill_proc_locked(struct reap_kill_proc_work *w) { - int error1; - bool need_stop; + int error; PROC_LOCK_ASSERT(w->target, MA_OWNED); PROC_ASSERT_HELD(w->target); - error1 = cr_cansignal(w->cr, w->target, w->rk->rk_sig); - if (error1 != 0) { + error = cr_cansignal(w->cr, w->target, w->rk->rk_sig); + if (error != 0) { if (*w->error == ESRCH) { w->rk->rk_fpid = w->target->p_pid; - *w->error = error1; + *w->error = error; } return; } - /* - * The need_stop indicates if the target process needs to be - * suspended before being signalled. This is needed when we - * guarantee that all processes in subtree are signalled, - * avoiding the race with some process not yet fully linked - * into all structures during fork, ignored by iterator, and - * then escaping signalling. - * - * The thread cannot usefully stop itself anyway, and if other - * thread of the current process forks while the current - * thread signals the whole subtree, it is an application - * race. - */ - if ((w->target->p_flag & (P_KPROC | P_SYSTEM | P_STOPPED)) == 0) - need_stop = thread_single(w->target, SINGLE_ALLPROC) == 0; - else - need_stop = false; - (void)pksignal(w->target, w->rk->rk_sig, w->ksi); w->rk->rk_killed++; - *w->error = error1; - - if (need_stop) - thread_single_end(w->target, SINGLE_ALLPROC); + *w->error = error; } static void -reap_kill_proc_work(void *arg, int pending __unused) +reap_kill_proc(struct reap_kill_proc_work *w) { - struct reap_kill_proc_work *w; - - w = arg; - PROC_LOCK(w->target); - if ((w->target->p_flag2 & P2_WEXIT) == 0) - reap_kill_proc_locked(w); - PROC_UNLOCK(w->target); - - sx_xlock(&proctree_lock); - w->target = NULL; - wakeup(&w->target); - sx_xunlock(&proctree_lock); + struct pgrp *pgrp; + int xlocked; + + sx_assert(&proctree_lock, SX_LOCKED); + xlocked = sx_xlocked(&proctree_lock); + PROC_LOCK_ASSERT(w->target, MA_OWNED); + PROC_ASSERT_HELD(w->target); + + /* Sync with forks. */ + for (;;) { + /* + * Short-circuit handling of the exiting process, do + * not wait for it to single-thread (hold prevents it + * from exiting further). This avoids + * locking pg_killsx for it, and reduces the + * proctree_lock contention. + */ + if ((w->target->p_flag2 & P2_WEXIT) != 0) + return; + + pgrp = w->target->p_pgrp; + if (pgrp == NULL || sx_try_xlock(&pgrp->pg_killsx)) + break; + + PROC_UNLOCK(w->target); + sx_unlock(&proctree_lock); + /* This is safe because pgrp zone is nofree. */ + sx_xlock(&pgrp->pg_killsx); + sx_xunlock(&pgrp->pg_killsx); + if (xlocked) + sx_xlock(&proctree_lock); + else + sx_slock(&proctree_lock); + PROC_LOCK(w->target); + } + + reap_kill_proc_locked(w); + + if (pgrp != NULL) + sx_xunlock(&pgrp->pg_killsx); } struct reap_kill_tracker { @@ -388,8 +392,7 @@ reap_kill_subtree_once(struct thread *td, struct proc *p, struct proc *reaper, struct reap_kill_tracker_head tracker; struct reap_kill_tracker *t; struct proc *p2; - int r, xlocked; - bool res, st; + bool res; res = false; TAILQ_INIT(&tracker); @@ -432,53 +435,21 @@ reap_kill_subtree_once(struct thread *td, struct proc *p, struct proc *reaper, (P2_REAPKILLED | P2_WEXIT)) != 0) continue; - if (p2 == td->td_proc) { - if ((p2->p_flag & P_HADTHREADS) != 0 && - (p2->p_flag2 & P2_WEXIT) == 0) { - xlocked = sx_xlocked(&proctree_lock); - sx_unlock(&proctree_lock); - st = true; - } else { - st = false; - } - PROC_LOCK(p2); + PROC_LOCK(p2); + if ((p2->p_flag2 & P2_WEXIT) == 0) { + _PHOLD(p2); + /* * sapblk ensures that only one thread * in the system sets this flag. */ p2->p_flag2 |= P2_REAPKILLED; - if (st) - r = thread_single(p2, SINGLE_NO_EXIT); - (void)pksignal(p2, w->rk->rk_sig, w->ksi); - w->rk->rk_killed++; - if (st && r == 0) - thread_single_end(p2, SINGLE_NO_EXIT); - PROC_UNLOCK(p2); - if (st) { - if (xlocked) - sx_xlock(&proctree_lock); - else - sx_slock(&proctree_lock); - } - } else { - PROC_LOCK(p2); - if ((p2->p_flag2 & P2_WEXIT) == 0) { - _PHOLD(p2); - p2->p_flag2 |= P2_REAPKILLED; - PROC_UNLOCK(p2); - w->target = p2; - taskqueue_enqueue(taskqueue_thread, - &w->t); - while (w->target != NULL) { - sx_sleep(&w->target, - &proctree_lock, PWAIT, - "reapst", 0); - } - PROC_LOCK(p2); - _PRELE(p2); - } - PROC_UNLOCK(p2); + + w->target = p2; + reap_kill_proc(w); + _PRELE(p2); } + PROC_UNLOCK(p2); res = true; } reap_kill_sched_free(t); @@ -572,7 +543,6 @@ reap_kill(struct thread *td, struct proc *p, void *data) w.ksi = &ksi; w.rk = rk; w.error = &error; - TASK_INIT(&w.t, 0, reap_kill_proc_work, &w); reap_kill_subtree(td, p, reaper, &w); crfree(w.cr); } From nobody Sat Feb 28 01:33: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 4fN74Y3KfNz6TnnX for ; Sat, 28 Feb 2026 01:33: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN74Y1qxNz47hR for ; Sat, 28 Feb 2026 01:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5mMGG2aHOwWlOPxNEvumDcoaC1ToRsG1Hg04JydVdC0=; b=qnSJBMIwqFOyXebWF0nGnPXfO/3zbSGNWaUhwOCfjPhv1fWzMzwQ35Aydd3ut9XZrSxdrc qJuiW7b8WpXhOZnCcQqV1wnxEiQ8J5B7iw4ht7MPjttN/2dNoaRM8/QqHUlCHuY1Xg+IxR SJ9opdf4ibPsgkffqCfqlDwPw5NjsAOp7ATWR07knHjvPKz3Su6vYALgfOyeBBWjrbhZQf E7jr9u4qxgiEJ7zKkRlbvcmCr9KBsYS94Z8ar/KeAU55Ik/z6KEXMC6lrumw/Afxh6MdvB MDp1IwWCGO1FpIgnkCab1kR7uo5WI8gIH4TFA48UZEmqQSpDkIuAVzTLyhSi7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772242397; a=rsa-sha256; cv=none; b=hW81LiqaeO5KY9waF1JveNXvpEyTpw1+HdqprUmFCRtnHVeFpqrJtkrhx2mWgN0Fd1bW3s 00Okd9OKvstHWmxZU0rYz18E5B1SR7AFpCflqGXcpmm3AQurSrg1eB6tY36rZmESXfwSJ9 koizSMES0N2s9YH2Y55ZeolOaLJOBnvNL665CoY7czmS0lFlrAz1cyB9obUfv3r3i9HY6q 3EDZL01cAUxLw6jKxra0EaQUphRpvUD+it+fTiwdR+L+MCBmJGf6v6f4dYs99CWxWPcF4a b+q5J+Ft59bButc6LS2WxKB19B5mm7VZU4vz/Gmo6JgYs5FoR+teb9wAmq9GNA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5mMGG2aHOwWlOPxNEvumDcoaC1ToRsG1Hg04JydVdC0=; b=ovPHOAkMraps0DtBKqHCnTWylw/9jWI2OvrOgWG3rIo0WqT9Yq4mtUXIwrabRRihFw1VlO sEz19nnT4Nb2f6OKNASL50O3O2opdyPWF71mDwkPibMWeOEyzp3JE67IhkS2WaS4mOG0Gf 570zv0UoCALN0HA3MkdwnKW/SBNvCfdkOyUkbaX+Sxi7aX8gKaADiz5Pz1RPnx0GRWGt/F Liro75z4Z66v8+/+h6DD/NvrOTnKmQOb9k2rF5x/MrGsGBUZi6mvJUyWlRGVMQrQtK1Pm0 m15lIbu/I3NTARw7B2uhbnJhvzm3rHfT5/hCxy3KkUu0mJO85tSTkeA0NV5IoA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN74Y1FJnzjQF for ; Sat, 28 Feb 2026 01:33:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bea1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Feb 2026 01:33:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cf64824a3e95 - stable/15 - reap_kill_subtree_once(): reap_kill_proc_work() might drop proctree_lock List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: cf64824a3e95777834233064dfbf6ed9f8a1c663 Auto-Submitted: auto-generated Date: Sat, 28 Feb 2026 01:33:17 +0000 Message-Id: <69a245dd.1bea1.c3430f5@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cf64824a3e95777834233064dfbf6ed9f8a1c663 commit cf64824a3e95777834233064dfbf6ed9f8a1c663 Author: Konstantin Belousov AuthorDate: 2026-02-16 15:20:02 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-28 01:32:24 +0000 reap_kill_subtree_once(): reap_kill_proc_work() might drop proctree_lock (cherry picked from commit 0e67c3f675eab3a9c00b76e3886ace7700ef1bd4) --- sys/kern/kern_procctl.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_procctl.c b/sys/kern/kern_procctl.c index 04c47d086677..30ab37d56877 100644 --- a/sys/kern/kern_procctl.c +++ b/sys/kern/kern_procctl.c @@ -280,7 +280,7 @@ reap_kill_proc_locked(struct reap_kill_proc_work *w) } static void -reap_kill_proc(struct reap_kill_proc_work *w) +reap_kill_proc(struct reap_kill_proc_work *w, bool *proctree_dropped) { struct pgrp *pgrp; int xlocked; @@ -311,6 +311,7 @@ reap_kill_proc(struct reap_kill_proc_work *w) /* This is safe because pgrp zone is nofree. */ sx_xlock(&pgrp->pg_killsx); sx_xunlock(&pgrp->pg_killsx); + *proctree_dropped = true; if (xlocked) sx_xlock(&proctree_lock); else @@ -392,7 +393,7 @@ reap_kill_subtree_once(struct thread *td, struct proc *p, struct proc *reaper, struct reap_kill_tracker_head tracker; struct reap_kill_tracker *t; struct proc *p2; - bool res; + bool proctree_dropped, res; res = false; TAILQ_INIT(&tracker); @@ -400,6 +401,7 @@ reap_kill_subtree_once(struct thread *td, struct proc *p, struct proc *reaper, while ((t = TAILQ_FIRST(&tracker)) != NULL) { TAILQ_REMOVE(&tracker, t, link); +again: /* * Since reap_kill_proc() drops proctree_lock sx, it * is possible that the tracked reaper is no longer. @@ -435,6 +437,7 @@ reap_kill_subtree_once(struct thread *td, struct proc *p, struct proc *reaper, (P2_REAPKILLED | P2_WEXIT)) != 0) continue; + proctree_dropped = false; PROC_LOCK(p2); if ((p2->p_flag2 & P2_WEXIT) == 0) { _PHOLD(p2); @@ -446,11 +449,13 @@ reap_kill_subtree_once(struct thread *td, struct proc *p, struct proc *reaper, p2->p_flag2 |= P2_REAPKILLED; w->target = p2; - reap_kill_proc(w); + reap_kill_proc(w, &proctree_dropped); _PRELE(p2); } PROC_UNLOCK(p2); res = true; + if (proctree_dropped) + goto again; } reap_kill_sched_free(t); } From nobody Sat Feb 28 01:33: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 4fN74b12G8z6Tnsy for ; Sat, 28 Feb 2026 01:33:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fN74Z2Vlbz47c0 for ; Sat, 28 Feb 2026 01:33:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hFCiKeqWGMlk5bLphAIB6xpulDDxeGcfPWkklbuoVWk=; b=NiN7z0BT7dg0QrAnRKV45QY00rDfVmbZL2VEnf1QUg8VnSQlfJzO5NBCpoHRniU+ImRbfj NcIdycBg5zHJqVr4EVzq/eKvZcs6RFjJcsR+pZfZxCRiZFTgfuFxr+5UDBQxUi96e6HN0F kCFm+3i1zPFuZwcXM1dnrFlMQB4G3Exf0labxOJ9WEZAoTQRuUaBMDFP32xtxiNlIm2GFK Mb3qkt3175lg5CEbBW1TJwMJQ8/Tjk2MqGypp3G/Hh06DtHewsYoAM8PmSnqCWWYxzhj23 yOBawDic/5Jrt02vquGCkB0YW5VGsLpGOa93xJf/UnYos5vHPvJuSeQbZ/ezEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772242398; a=rsa-sha256; cv=none; b=N/v3ZRorCDyd4FXXpP4PrsF1aQYnkOalbfNGPPsYStqyXaPH9EWEuJTxGSR/SBw4pU1sLD hQWzQ5llSYrhua9nKbVyucQnxSUXBRwvCU/65kyB5qZWIoppBBvgzHQEmpiGBh/M/MFvHU ndl5Ayfq//8oh/WdWSaOkmshi2NV157rk4+epeIyTPgW7KZfHg8rp2VHuhUy6mj96dg9qK 1Sxfy0r22v6IuQMdqRl/5Gx1VQ69Rwmq3rWYIJ02vMulAz/ykHmQjvdLl9OZkcX9zvZznq nhq+W15SmCJDtpFpYlwKLbwhrgQRPnH2poVKI1AOlI6+0e5yUXzLMIAhgimBxw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772242398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hFCiKeqWGMlk5bLphAIB6xpulDDxeGcfPWkklbuoVWk=; b=v4C8sSbAdCdropogVnhz9n71AihFTiukTUyug+gaeuvk+sH/i7wZgHQazcpKuJiniDgCar sZ6WIWFN9WrjuiRTaJH0+YEcvO3QkLGUpRRZyGjhb7H1646DdmgWTjPv1ro5mSjFKU8DHb SR4MGZKSPMsF2gMSHDzSxQ43rxO2Hfz8iCoEQ25IWuq07NZMr9UbSdnSJhQVk0PiSw5FsG GLNXTRwpC0smVNaG3BUTXHc1sLk5W+kfAA6tfLR+Mb97U/GerB6aywuWYxgANGEj+JGf0p /58vFZiv5SetdcIBlWZVRLEpyNaNmhb66wsZY3M3YAQlkWi9c06W8VgcFhZEYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fN74Z23Mqzhvm for ; Sat, 28 Feb 2026 01:33:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1982e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Feb 2026 01:33:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: fe90ad2d2444 - stable/15 - procctl(PROC_REAP_KILL): align error reporting with pgkill(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: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: fe90ad2d2444616d01d0d5396c0687635d637364 Auto-Submitted: auto-generated Date: Sat, 28 Feb 2026 01:33:18 +0000 Message-Id: <69a245de.1982e.3acadada@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=fe90ad2d2444616d01d0d5396c0687635d637364 commit fe90ad2d2444616d01d0d5396c0687635d637364 Author: Konstantin Belousov AuthorDate: 2026-02-18 08:22:51 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-28 01:32:25 +0000 procctl(PROC_REAP_KILL): align error reporting with pgkill(2) (cherry picked from commit 5c8af592f69a31da94c45722dcd74afcf0ab375e) --- sys/kern/kern_procctl.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_procctl.c b/sys/kern/kern_procctl.c index 30ab37d56877..b1539c5cec4f 100644 --- a/sys/kern/kern_procctl.c +++ b/sys/kern/kern_procctl.c @@ -267,7 +267,11 @@ reap_kill_proc_locked(struct reap_kill_proc_work *w) error = cr_cansignal(w->cr, w->target, w->rk->rk_sig); if (error != 0) { - if (*w->error == ESRCH) { + /* + * Hide ESRCH errors to ensure that this function + * cannot be used as an oracle for process visibility. + */ + if (error != ESRCH && *w->error == 0) { w->rk->rk_fpid = w->target->p_pid; *w->error = error; } From nobody Sat Feb 28 14:02: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 4fNRjM6ss9z6TM2c for ; Sat, 28 Feb 2026 14:02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fNRjM5yWNz3QJv for ; Sat, 28 Feb 2026 14:02:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772287367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u5H7lJzz21eQvWZQpD/mDyCZaphz9gGQMZl+4v0z9Kw=; b=AwmZ1JRaOdnKj8Edcz8ah4BYCjxCAgU94osMGgrvB3VHfj2tkZCBaV3t9T5mJq+EmdobyU vF/gjfSEpLnslkc+anK9colbZSnPRuFYmCaK9dNTe6EaEBcPgBJy6SAm81CSFaZFcpo/+b RkHqo2WZwATOEopiWi9Q4MKVl8rw79fRAOjDBF/Zn6YOSooefe45Ue7URrpkFxTijnNa2L 5dulWdeLrloqkFsr6+SGKrG+xCEeGKYSBPIBELkbeGRjbgTmj7tAeF72oix7sVIQrQuysb nvhxtjvlJq1SHb/NdwD9wv/BccADL6Q4BUYI/wcqGDdfl4LL/gjzoZ9hS8OgEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772287367; a=rsa-sha256; cv=none; b=lKO1JONl2czIcnbnNcl7qCfJH1lD712jYtfdg3eN8aWCCydsJ5T/JETf3nbvsdkJL3z02Y XffibO2ZVQVfA99TKLJ2XJNbjEaqu9dGENfeWH7a73SDpHcrftaoJjdGWpfyXgOxXcdN1g qysVaR5nN/GgDJWBZzB2vXqfHnIt2twmuzVemAjPOXiRHsqCSQ6RR9V9M1P2a+orTEn+Xg XpLxy0/Os1YXaweLxBZJc3Kh+jl8NNmxC6FU/HOaj2sJSJ31lIVjch6IDpYcgzIHMhAbsU LcM7edhN4lAxJYAhH0Lb+hbPe8Ly1T/JbEKPa/jjkbV6OB/BReyNjGgk9t0qGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772287367; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u5H7lJzz21eQvWZQpD/mDyCZaphz9gGQMZl+4v0z9Kw=; b=lLA8xwon1HQvSJt/mM3iNEjgekrLAC6e6oAgNouO8/n9m0JdJ5bfn9L6lh0geJK/4LGvve 61YZ0ypFXlZu5tr5g1zfGSgODqwYOAaRnOvbxx66lahE6HMAw0yKWEfu4Z9+2hSPoc6NaT sqmRcxZvtwLZ7rAibU/ZjPJctoO/+fW70IGUzdTHDdM8GF/KL6DH91oca3mhVP0oG+hRFN 8U3QsGAZGZuQCfDGxQnAYu9hTh5hnMePMkLIgWIpcv/C7GHLdZWE1TMO4qn4Md7cHE1xLZ RBBYMKOUlgZex9feDfekfPRtMsIRa38q51dWRL2Mh5qoXbWcVPgJYB4f4XHWqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fNRjM5Jdcz154T for ; Sat, 28 Feb 2026 14:02:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2247a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 28 Feb 2026 14:02:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: a9f454a9c798 - stable/15 - sound: Detect unsupported formats List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a9f454a9c79810d60261d03dbec73c29396bf128 Auto-Submitted: auto-generated Date: Sat, 28 Feb 2026 14:02:47 +0000 Message-Id: <69a2f587.2247a.16865864@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a9f454a9c79810d60261d03dbec73c29396bf128 commit a9f454a9c79810d60261d03dbec73c29396bf128 Author: Christos Margiolis AuthorDate: 2026-02-21 11:36:58 +0000 Commit: Christos Margiolis CommitDate: 2026-02-28 14:02:39 +0000 sound: Detect unsupported formats This way we can avoid edge-cases like 8af6aee96ed609456900c6dd92dafabac5e89c0a ("virtual_oss(8): Remove floating point formats from preference list"). Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D55403 (cherry picked from commit 3deae7b786743193531f4e69527e789de52644c5) --- sys/dev/sound/pcm/channel.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 011dc1427c2e..b74f76fd21ca 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -2092,9 +2092,23 @@ chn_setspeed(struct pcm_channel *c, uint32_t speed) int chn_setformat(struct pcm_channel *c, uint32_t format) { - uint32_t oldformat, oldspeed; + uint32_t oldformat, oldspeed, x; int ret; + /* + * Detect unsupported formats. This checks if the format is supported + * in the first place, and that no more than 1 format is specified at + * the same time. + */ + x = format & AFMT_CONVERTIBLE; + if ((x & (x - 1)) != 0) { + if (snd_verbose > 3) { + device_printf(c->dev, "%s(): Unsupported format: " + "0x%08x\n", __func__, format); + } + return (EINVAL); + } + /* XXX force stereo */ if ((format & AFMT_PASSTHROUGH) && AFMT_CHANNEL(format) < 2) { format = SND_FORMAT(format, AFMT_PASSTHROUGH_CHANNEL,