From nobody Mon Aug 10 00:42: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 4hJGDb0t9Vz6pMXx for ; Mon, 10 Aug 2026 00:42: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJGDZ6Stlz3nXf for ; Mon, 10 Aug 2026 00:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786322542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Kp7ZeVcq0/kcDFWvMKs9k3ZQbaHj0ufQYM7KExwaLF0=; b=mBNd3mhkKRoy34GmAWZ/onWaPGYn3qwZa+pHqKEUl0VCziwqbxhZTQgfyGnhfjyVp5nyXQ mXA6Zpg2n1iJ+vAn/1ApZTIPwbYEoE42fOhxUSe6Dk8M1wOh/+fiGb1X4o5LG9yGQLkyWb dVeSrr2Y9YtrXLo3CcpcLh3+MXW3Og+8MktWp6S8Aq6X1GF3MEYkEufV5ZPeLsU1Y+I8Dm qlB0gQtnZsry98RKQyjr8HoisRTOrstJt6jesst4WoMiqtoV4I8PGdnYaWHU6Z5kk0g2kP Ej833b2oQyanJkNoIVu6A17EtcvZS7Pwsc2qIechrnxEQYm6zczm+1nMgKzgZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786322542; a=rsa-sha256; cv=none; b=NYbflfUinGgVQv4nj8vLtFm06prj+G8t/FpKNprBAHupik64jJfR6gkipMVpUSghlu0WB2 RIrq6OWM41ppXZYUQ05Gr1aDvbAIuQYf4X2b/cumIIDgcRNiAirE/3hgh4H3Cvh3SZvxcX qH1MDSUk4bvtdBSJ4Zj9oNfaXQ9TFzQVg/8QMpz+CvqVn98PWlQHbbBpp14ek5YbLTYcCq M05cGqTg9BezP4qMLs4SDJBhxte/KRVWeuibWQGAi42yfuGafveLO4TtFAK3KdEUUzqMK1 P6YVci5WvPrFPR2uQRXO6zvotJ9qkgRZRrNi1UnREBluDUmeH72TQ5AarnBruw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786322542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Kp7ZeVcq0/kcDFWvMKs9k3ZQbaHj0ufQYM7KExwaLF0=; b=wlWtuAtq5itzuU+ovZULZlD0572eLpHXIG6uV4FnPOmjVCkG+8cG8OSMp7+6BtS3JDxcRR wuMQ8j3VYYdajYBScHra+hBA/c6HvZRcMdKXkIz+VJ5Yc+doS/WUUPkku+uU4BTM9hXTHI +Jhd76Uk2r0iu7u6GmRQkedk/SVC3PF7Jbieh+zM7qIqhJ/pWT5GOxPeiGMQmLX7iH9RTW bHy7r3IcnU1u81cO+TfqmIBS53NV2o5GMVHAGX9PVv25WPMtkAPQp0L8AeeElL/QG2imoG PQx/r6DJw79Hxn11bnk/kP2G+CLecG6d/t+fZZd78Yu7OUpfLHroVJ4VijyACg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJGDZ5H5Vzmp6 for ; Mon, 10 Aug 2026 00:42:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42e9a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 00:42:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: 6d30c183117f - stable/15 - ixgbe: supply PF transmit contexts under SR-IOV List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 6d30c183117fb5797d889fb3865e6a0b9d17ae06 Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 00:42:22 +0000 Message-Id: <6a791e6e.42e9a.2177898c@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=6d30c183117fb5797d889fb3865e6a0b9d17ae06 commit 6d30c183117fb5797d889fb3865e6a0b9d17ae06 Author: Kevin Bowling AuthorDate: 2026-08-01 12:41:22 +0000 Commit: Kevin Bowling CommitDate: 2026-08-10 00:42:12 +0000 ixgbe: supply PF transmit contexts under SR-IOV X550-family malicious-driver detection validates the transmit context selected by a data descriptor with Check Context set. ixgbe sets that bit on every transmit data descriptor, but ordinary PF packets without a VLAN or checksum offload do not create a context descriptor. The empty context then reports an invalid MAC-header length and blocks the PF queue as soon as MDD is enabled. Create the existing context descriptor for every PF packet while SR-IOV is active. This supplies the required MAC-header length and keeps MDD from mistaking normal PF traffic for a malicious-driver event. (cherry picked from commit 0787b1f5b8bdfcaed97eeee7bfbd7f14ac162b0d) --- sys/dev/ixgbe/ix_txrx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c index 76c718e2c252..3dda3270a2de 100644 --- a/sys/dev/ixgbe/ix_txrx.c +++ b/sys/dev/ixgbe/ix_txrx.c @@ -197,6 +197,7 @@ ixgbe_isc_txd_encap(void *arg, if_pkt_info_t pi) TXD = (struct ixgbe_adv_tx_context_desc *) &txr->tx_base[first]; if ((pi->ipi_csum_flags & CSUM_OFFLOAD) || (sc->feat_en & IXGBE_FEATURE_NEEDS_CTXD) || + (sc->feat_en & IXGBE_FEATURE_SRIOV) || pi->ipi_vtag) { /********************************************* * Set up the appropriate offload context From nobody Mon Aug 10 00:43: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 4hJGFl6lL9z6pMtm for ; Mon, 10 Aug 2026 00:43: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJGFl5mTzz3nyS for ; Mon, 10 Aug 2026 00:43:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786322603; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KmQGSNnS5QsjrM6w2H8Izyzn59Gl2KT9ofBMp8O5OgI=; b=q+rcL9QLW5JEr1/gGzwMIcKKZiEgSV6BiRonr43J3+EWWoWDJFxr2eDXBzPBVW8Mrc6JhY 1ABemoW7M+NMf8cBQUOfjOrYpbAgVui2oxy2PbFvX6/KrLTmMAiB5etFdaujMmxAlQPcHC GHXnTNkoZ5SVzExk+2+sl27qTxahfjczWWVwTwGzISDsXwjNNOO7aHEa7NVfzdL8cEHOgc yCzdYfXeEb/O9Cw4olS7okpSadSPOhBp4FAINjkU7bWnsdmAMAeas08U26fg82uqTQSqR0 +1fMTgJhrCwpdYgwpu1MJKAkKEebBQx4Kf+JXFEx8F9QHcxwl/nuZaS12uB3WA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786322603; a=rsa-sha256; cv=none; b=laj/yfBJDE4h8BCaPdPnKqE9/27j6fe+Za2b+i4dVYwx7y0LiUmernJDd1ZG2427N+2Lpt vdDs7Nbs4kTp1HiF05C1B/3Cn7ceGgOuLqiZJuEYcLDGkJmNpV5n0SQkqqHaYuugePIbdj GLiGNTDxOvyPPdWBcTCBR7VRyb6f80nbCuh66SW1RVYAisshScx/lke9vaQ+Pq78gzU690 2k5YZMxyT89t53ncXwqagXgQShgjILoqn1QsZ6lZg9HKQp2gTt+npCHG2WAVkN/tpTXe+3 jfC2iHlIM/Nxmzs4TwAeloB2G3SmqrBCVAXrPNfB1RXIptIP3+22GKzApH9YQA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786322603; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KmQGSNnS5QsjrM6w2H8Izyzn59Gl2KT9ofBMp8O5OgI=; b=ijRaok6oLajCy2UVyRnyKWraJnzq5Z/wqXEbpcDWXelANC71gHJ5pXg+pQ6XtlKD+AC8W8 2z3RnuFUCfH+LdR5Ho1ulQyvQsc6vzGSGt5caeEvoARy0RpSkV/c+Z6XZnSPmCRSS5FLil 2HxdgGA/yfscDSqKV9zJSet4yIdobCj8tRYbmhUKU+N7PF3H9qkIREKfCj+7aj9hnFw/Xz Z0EZo8iJ9pWxAEFY/LZhH5DgkGN6U0i5hsO9U5qkPLNQ41nx2LjUsJVn5cI04RISHHAmGa VfZcMn1N6y1RgyUeSGgU240dAtg5ifemoQLU0m+GK7yGPutebqtBYmCmBQDSlg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJGFl4CnVznBL for ; Mon, 10 Aug 2026 00:43:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43be1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 00:43:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Bowling Subject: git: e55338fc5df9 - stable/14 - ixgbe: supply PF transmit contexts under SR-IOV List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: e55338fc5df9578f259d429ce47051005aace514 Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 00:43:23 +0000 Message-Id: <6a791eab.43be1.69465367@gitrepo.freebsd.org> The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=e55338fc5df9578f259d429ce47051005aace514 commit e55338fc5df9578f259d429ce47051005aace514 Author: Kevin Bowling AuthorDate: 2026-08-01 12:41:22 +0000 Commit: Kevin Bowling CommitDate: 2026-08-10 00:43:13 +0000 ixgbe: supply PF transmit contexts under SR-IOV X550-family malicious-driver detection validates the transmit context selected by a data descriptor with Check Context set. ixgbe sets that bit on every transmit data descriptor, but ordinary PF packets without a VLAN or checksum offload do not create a context descriptor. The empty context then reports an invalid MAC-header length and blocks the PF queue as soon as MDD is enabled. Create the existing context descriptor for every PF packet while SR-IOV is active. This supplies the required MAC-header length and keeps MDD from mistaking normal PF traffic for a malicious-driver event. (cherry picked from commit 0787b1f5b8bdfcaed97eeee7bfbd7f14ac162b0d) --- sys/dev/ixgbe/ix_txrx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c index 76c718e2c252..3dda3270a2de 100644 --- a/sys/dev/ixgbe/ix_txrx.c +++ b/sys/dev/ixgbe/ix_txrx.c @@ -197,6 +197,7 @@ ixgbe_isc_txd_encap(void *arg, if_pkt_info_t pi) TXD = (struct ixgbe_adv_tx_context_desc *) &txr->tx_base[first]; if ((pi->ipi_csum_flags & CSUM_OFFLOAD) || (sc->feat_en & IXGBE_FEATURE_NEEDS_CTXD) || + (sc->feat_en & IXGBE_FEATURE_SRIOV) || pi->ipi_vtag) { /********************************************* * Set up the appropriate offload context From nobody Mon Aug 10 16:07: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 4hJfmZ330pz6p0W5 for ; Mon, 10 Aug 2026 16:07: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmZ0kGJz3q7s for ; Mon, 10 Aug 2026 16:07:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7grpupylvpgQQNZTj9r604dlpKg/My+90hUOOBMuVk=; b=XBTrVrnhzGBo1Je1/iBMgWCADvaP0/E5nacfoEsHb7eqwISC5ZMJCzxcI4XMyptih1AObj 8Cli3KFFuBQdF6OCTGK6hB00gDGKurjiiunMi59uwInVWESnaGZAXRxF7l26fRAQxTscOT bhww9HA2S+EGkHy1b0qSKoyjBt6Bj/pA5yaltfDabkbh4O66LvYW7GsIufJ7aWQRpAIEcw g4/eXaSRTBUGTu0ikyCQ9sppdnKCRoA87vFx9YaXW4CLH02gZJDIHS+TVS0ItwGQB/X8kc Pn10MlTKxl4iLNkrr4mEwA9648IV6p5ZCYX3q0pw/hvYx9+SQU4nM2IC3b1XTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378078; a=rsa-sha256; cv=none; b=nGGcI1nlLm1yAMlKXMfL1kZoPuMB+jvzrcyNGpShnyDO8XZuoTMDl7iOim3VItVv5qt6VG EL6cFrdZCkJBmjSm0fG/Rjx5JNY9dpJNV3Xo5BXkxproD0OfI6Dsn21+Qxxj2p2v/nvDzP KAlAC2w22n32Gj79++HfU7CE7/sj2Y/zERDz6HNEi5RETn90lP/khxlZeUf2MSK2QSOAxx degqjBecBAqOP55jqRTWVOb4aP5nHjVtxfsqHacS9vn3qJA6IlX/HI1ASeQjg0NsNnci7e hDMT/5GxdORAShJj6QXImXrIoU5577c+NtO/8f8/HJXFOkfQzFo4VYsbSMw4JQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7grpupylvpgQQNZTj9r604dlpKg/My+90hUOOBMuVk=; b=X3iX5R2cdRFcureCA7AdUfZ8eriyO6MyNDzMogQieEVPhTYffLKsIl/ucd44E/J1rcHHfh uQVK51Ds/qRVvseHoZAtqR/nKJADV5nsqSovqTAIMPq9rCBVj2XVYR57ZAiTjHcU+pHnec E4yK+trjbzetElBuNVgrJari+hfLepDspq3em389FJooe/hvNUQFYLc8Xgb7jf/4kTRK2p UpIfIY5bMOUQ03ASozFKxsfSW/Jf6i8CzfHcFCpFeN/NUTxaMi8EbUh4ouBcpEimBAxfQv 4Vc+T+PnM/ZUla2oaBl20o3L/lGBDssX9HbXawOAnORkWuKL1qRu61gApHrCLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmY6CKZz1Rf for ; Mon, 10 Aug 2026 16:07:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3465d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:07:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: e5d63cec57a5 - stable/15 - uart: Add support for the Intel XScale controller List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e5d63cec57a57f8403ccb09f73297877ef471175 Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:07:57 +0000 Message-Id: <6a79f75d.3465d.24e6e471@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=e5d63cec57a57f8403ccb09f73297877ef471175 commit e5d63cec57a57f8403ccb09f73297877ef471175 Author: Bojan Novković AuthorDate: 2026-06-18 02:03:55 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:04:06 +0000 uart: Add support for the Intel XScale controller The ns8250 driver avoids clearing IER bit 0x10 to account for the split "receiver time-out interrupt enable" bit, but it never sets it in `ier_rxbits` even though a comment in `ns8250_init` implies so. Fix this by setting `IER_RXTMOUT` if we've matched an XScale uart. Differential Revision: https://reviews.freebsd.org/D57629 Reviewed by: imp MFC after: 2 weeks (cherry picked from commit 1665954e508f74588108e96c30b90d1a88807faa) --- sys/dev/uart/uart_dev_ns8250.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/dev/uart/uart_dev_ns8250.c b/sys/dev/uart/uart_dev_ns8250.c index 6d8097db6581..ca024daa7c33 100644 --- a/sys/dev/uart/uart_dev_ns8250.c +++ b/sys/dev/uart/uart_dev_ns8250.c @@ -526,6 +526,7 @@ UART_ACPI_CLASS_AND_DEVICE(acpi_compat_data); static struct ofw_compat_data compat_data[] = { {"ns16550", (uintptr_t)&uart_ns8250_class}, {"ns16550a", (uintptr_t)&uart_ns8250_class}, + {"intel,xscale-uart", (uintptr_t)&uart_ns8250_class}, {NULL, (uintptr_t)NULL}, }; UART_FDT_CLASS_AND_DEVICE(compat_data); @@ -611,6 +612,12 @@ ns8250_bus_attach(struct uart_softc *sc) /* Get IER RX interrupt bits */ ivar = IER_EMSC | IER_ERLS | IER_ERXRDY; +#ifdef FDT + /* Intel XScale models won't work without IER_RXTMOUT set. */ + if (ofw_bus_is_compatible(sc->sc_dev, "intel,xscale-uart")) + ivar |= IER_RXTMOUT; +#endif + resource_int_value("uart", device_get_unit(sc->sc_dev), "ier_rxbits", &ivar); ns8250->ier_rxbits = (uint8_t)(ivar & 0xff); From nobody Mon Aug 10 16:07: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 4hJfmb5zhyz6p0W8 for ; Mon, 10 Aug 2026 16:07: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmb0y3sz3qCw for ; Mon, 10 Aug 2026 16:07:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378079; 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=Rxpah650G6Umc1SCCfGgVBlye6jJlRMArPpIcDy+OGk=; b=dQ+quWeTM2bRFHAsB3CNvT4g1Bl+vQxmSkFSy8NnTw+5gxmxnzC+ZkQ4Uo7g7s6oYc2mYp dw1t8c25ugkv2SExIPyXfE8OdcVbe8sIHy+Nld0YtINbHEGdBIR23OKJznkBCwySnpKiwl m81VSE8vwrLWInCWXyc5rX8ZOxOLAqpdDV71llb5LROieyfq9oJtIkR3QxEXyFXuQ1OcXT gtmksiOte2m/6i91hlHP4tLcVBJ8m0w9WR80kbOgZXoUHp90VUctTmajX/MgQNlIGiM7tF Z2Npu6tih4dNuijAqxD183leJ0tnnQOBsoB+teEopZZDp/m1JPY2JoEG/Z9CQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378079; a=rsa-sha256; cv=none; b=Xq1Be8QCzVS9PxrFme6vY006uksg4Xnmr+ZgZU8R64CHpYNqIU6EJ+osxVWdTiA9fJw4mp CjT/keJI1ggYGrvEHva4BIWjBOo3DZREFraUhwvpAwAFpER/tIzB/Be8KkmbUFyAUsCDSQ uLwUfogrNmUu7OB/zbQ+S/8m2lyMYVoqSl/HqlD83BhgGjCsPwqKi/lfiLitx01jloSVXa syIQN4k1lqfQD6mwE7qyZsW3LatVHfpQEJiO2Mv71nomNIuAxhpBtoI/3rN2tO7eJXjIQr fsDyP0lYujSx41q/C03TmitOcXfT7mfWIgZGcXlxMU1lwV2GIqlgVzYBgWb21g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378079; 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=Rxpah650G6Umc1SCCfGgVBlye6jJlRMArPpIcDy+OGk=; b=VGza3+HCSqMVYtxZp4NnDX2AM5O22RXEZ6rmZ6ZwHqTo2rDPPPjRfWVTVapec63jRwmqsP fN7vumjUux+CVtp4IT27fYElVUuNhniWclpmkNs17k7HsuSEYdw6Y6Nvpe7Egg7ATcdHw4 F+HjOI/jLFOq6atqXmkzWkleP7HOqi5kC0wQYzDCpm+OM8S5su/Y3PwavqPGv//kcOMINS 4PtQq5Dt0H1sz89BohsY5OUGeqO20YsyvdixODSxWKX6lOpWbyB0xmtc5wQUxqTT0YqyeL wEhMBSY1p3cc2Vn+AWIW3YrrSNvyKW6S6QoEKv4oyR28jQUdxzvjQMvQd7Sw1w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmZ6gFyz1Pj for ; Mon, 10 Aug 2026 16:07:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3720e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:07:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Antranig Vartanian From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: f760059545b1 - stable/15 - bhyve(8): allow cpu pinning using N-M:X-Y ranges List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f760059545b178313dec7bc9528016d7520bac6d Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:07:58 +0000 Message-Id: <6a79f75e.3720e.138737ad@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=f760059545b178313dec7bc9528016d7520bac6d commit f760059545b178313dec7bc9528016d7520bac6d Author: Antranig Vartanian AuthorDate: 2026-06-05 15:34:18 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:04:18 +0000 bhyve(8): allow cpu pinning using N-M:X-Y ranges bhyve's -p allows to pin guest's virtual CPU vcpu to hostcpu, however this becomes very tedious work when you have to pin more than a single CPU. This allows to pass a range to -p, e.g. -p 0-3:4-7 which will pin the cpus 0:4, 1:5, 2:6, 3:7. The ranges must be equal and the CPU numbers must be ascending. Sponsored by: Armenian Bioinformatics Institute Reviewed by: corvink, markj Tested by: bnovkov MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D54937 (cherry picked from commit 8f6c577c9f706aea6f138fa1bec27029d4ab587d) --- usr.sbin/bhyve/aarch64/bhyverun_machdep.c | 5 ++-- usr.sbin/bhyve/amd64/bhyverun_machdep.c | 5 ++-- usr.sbin/bhyve/bhyverun.c | 38 ++++++++++++++++++++++++------- usr.sbin/bhyve/riscv/bhyverun_machdep.c | 5 ++-- 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/usr.sbin/bhyve/aarch64/bhyverun_machdep.c b/usr.sbin/bhyve/aarch64/bhyverun_machdep.c index 06fe85f96e0a..b1dd906da254 100644 --- a/usr.sbin/bhyve/aarch64/bhyverun_machdep.c +++ b/usr.sbin/bhyve/aarch64/bhyverun_machdep.c @@ -100,7 +100,8 @@ bhyve_usage(int code) "Usage: %s [-CDHhSW]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-k config_file] [-m mem] [-o var=value]\n" - " %*s [-p vcpu:hostcpu] [-r file] [-s pci] [-U uuid] vmname\n" + " %*s [-p vcpuN[-vcpuM]]:hostcpuX[-hostcpuY]\n" + " %*s [-r file] [-s pci] [-U uuid] vmname\n" " -C: include guest memory in core file\n" " -c: number of CPUs and/or topology specification\n" " -D: destroy on power-off\n" @@ -115,7 +116,7 @@ bhyve_usage(int code) " -U: UUID\n" " -W: force virtio to use single-vector MSI\n", progname, (int)strlen(progname), "", (int)strlen(progname), "", - (int)strlen(progname), ""); + (int)strlen(progname), "", (int)strlen(progname), ""); exit(code); } diff --git a/usr.sbin/bhyve/amd64/bhyverun_machdep.c b/usr.sbin/bhyve/amd64/bhyverun_machdep.c index dad8f1e52e4e..a31c1512dbc3 100644 --- a/usr.sbin/bhyve/amd64/bhyverun_machdep.c +++ b/usr.sbin/bhyve/amd64/bhyverun_machdep.c @@ -78,7 +78,8 @@ bhyve_usage(int code) "Usage: %s [-aCDeHhPSuWwxY]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-G port] [-k config_file] [-l lpc] [-m mem] [-o var=value]\n" - " %*s [-p vcpu:hostcpu] [-r file] [-s pci] [-U uuid] vmname\n" + " %*s [-p vcpuN[-vcpuM]]:hostcpuX[-hostcpuY]\n" + " %*s [-r file] [-s pci] [-U uuid] vmname\n" " -a: local apic is in xAPIC mode (deprecated)\n" " -C: include guest memory in core file\n" " -c: number of CPUs and/or topology specification\n" @@ -107,7 +108,7 @@ bhyve_usage(int code) " -x: local APIC is in x2APIC mode\n" " -Y: disable MPtable generation\n", progname, (int)strlen(progname), "", (int)strlen(progname), "", - (int)strlen(progname), ""); + (int)strlen(progname), "", (int)strlen(progname), ""); exit(code); } diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c index bfc0b949a75d..d3b5de553fc7 100644 --- a/usr.sbin/bhyve/bhyverun.c +++ b/usr.sbin/bhyve/bhyverun.c @@ -355,18 +355,12 @@ calc_topology(void) guest_ncpus = ncpus; } -int -bhyve_pincpu_parse(const char *opt) +static int +bhyve_pincpu(int vcpu, int pcpu) { const char *value; char *newval; char key[16]; - int vcpu, pcpu; - - if (sscanf(opt, "%d:%d", &vcpu, &pcpu) != 2) { - fprintf(stderr, "invalid format: %s\n", opt); - return (-1); - } if (vcpu < 0) { fprintf(stderr, "invalid vcpu '%d'\n", vcpu); @@ -393,6 +387,34 @@ bhyve_pincpu_parse(const char *opt) return (0); } +int +bhyve_pincpu_parse(const char *opt) +{ + int vcpu_first, vcpu_last, pcpu_first, pcpu_last; + int vcpu, pcpu; + + if (sscanf(opt, "%d-%d:%d-%d", &vcpu_first, &vcpu_last, &pcpu_first, &pcpu_last) == 4) { + if (vcpu_first > vcpu_last || pcpu_first > pcpu_last) { + fprintf(stderr, "invalid range (must be ascending): %s\n", opt); + return (-1); + } + if ((vcpu_last - vcpu_first) != (pcpu_last - pcpu_first)) { + fprintf(stderr, "range sizes do not match: %s\n", opt); + return (-1); + } + for (vcpu = vcpu_first, pcpu = pcpu_first; vcpu <= vcpu_last; vcpu++, pcpu++) + if (bhyve_pincpu(vcpu, pcpu) != 0) + return (-1); + return (0); + } + + if (sscanf(opt, "%d:%d", &vcpu, &pcpu) == 2) + return (bhyve_pincpu(vcpu, pcpu)); + + fprintf(stderr, "invalid format: %s\n", opt); + return (-1); +} + static void parse_cpuset(int vcpu, const char *list, cpuset_t *set) { diff --git a/usr.sbin/bhyve/riscv/bhyverun_machdep.c b/usr.sbin/bhyve/riscv/bhyverun_machdep.c index 8ee505e86679..942044157bbb 100644 --- a/usr.sbin/bhyve/riscv/bhyverun_machdep.c +++ b/usr.sbin/bhyve/riscv/bhyverun_machdep.c @@ -95,7 +95,8 @@ bhyve_usage(int code) "Usage: %s [-CDHhSW]\n" " %*s [-c [[cpus=]numcpus][,sockets=n][,cores=n][,threads=n]]\n" " %*s [-k config_file] [-m mem] [-o var=value]\n" - " %*s [-p vcpu:hostcpu] [-r file] [-s pci] [-U uuid] vmname\n" + " %*s [-p vcpuN[-vcpuM]]:hostcpuX[-hostcpuY]\n" + " %*s [-r file] [-s pci] [-U uuid] vmname\n" " -C: include guest memory in core file\n" " -c: number of CPUs and/or topology specification\n" " -D: destroy on power-off\n" @@ -109,7 +110,7 @@ bhyve_usage(int code) " -U: UUID\n" " -W: force virtio to use single-vector MSI\n", progname, (int)strlen(progname), "", (int)strlen(progname), "", - (int)strlen(progname), ""); + (int)strlen(progname), "", (int)strlen(progname), ""); exit(code); } From nobody Mon Aug 10 16:08: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 4hJfmc6bfQz6p0bk for ; Mon, 10 Aug 2026 16:08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmc1x4Mz3qR8 for ; Mon, 10 Aug 2026 16:08:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rR3/GAt++wwpnZ0E9EWxlVn/O0JVo2f7G54J8ZBHYs0=; b=iqZ3dMiWe7/71WoAAAB2Qn0NpkAi1Rw7mwIfpCVFKV7A3h75G4gGudQ98isO1fzvDayL1e Tu+C3GbWO8F6EBCdZ3S4jQPcElfE9bajeTvys2MHt8YYLWEmZkH+QSE6jHW+XjS9C+3Wo9 SlkZ3KAvgGirgpiplZgujTs+YGTnfuOntOHa1bbk28NLdea9DiFGYpOifZUBsoqW7jbC6V GqXsMUEWRwvCHil6eyZEnjrMJntVHURwsLurza/JnvOW9+Y3jsrBzTbA1UZBmbko0dQ2kC J/35+qvJYGeLdB4DbenOudwqDeSZMRs2cKWYYWhAKG6/Mh4NpPTomEQEuV1Xww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378080; a=rsa-sha256; cv=none; b=b6kMab3aKlrB6m/wsjhWDWZ6D5K8itqWLdPOOq9yGhRSyJbxjXtPg6OEKWv5bBskRpivR0 gctMDNwBmTUFqSHuyJoLMJhJoDUGTrLWIi/l8mjXy9ErhX+AHJ2Ak1ySAGkO/YeCsf1UMN 3XB72f7Bbp+Y7lB8PfRMZ676mvkFrwMo/hZovG3mA9lw4tpicoEqvqQ+qDi76/cYev108c MsF++2cx50cnDhtm082Fq9KIu9e5ylWtjHUmm+IPRd9UmPbSJIS3AO0nqDr/tanxIpoABM vdOctYU0fIHq1JjdAy4G77ptH7Dog6OZJ9fGkXoUf72tNsNrpFDnqOYJOD/HsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rR3/GAt++wwpnZ0E9EWxlVn/O0JVo2f7G54J8ZBHYs0=; b=acuI2sWhx8yDMZj0a3AsqxJF9Apc9loR1s0N20335sdlwia/rG2iCc/sCOlAkHNQlWIrEp 9YDghudPw+wmQr9nIagfdDDaW3FqQDtafSAGn9DAmKrpl18HTlCLa9zxKmjMy0hCwdWcUg VExkiY66hA6tCnLcTsmIyhyFWyZdLyygXQ1jMVnliPEWEcTwo1hNajc77ZVIf8ZKBmdTNR 8YVwKXFidesTdLuiVrQ9ztf5ugqZh53ALAkMduR3rW5y7Ok/PMJPukPA8cAvTx+Nn/ltHd wFJTUe0jis0Q8w5dmNvoQWkjjWgg0uO241F0Lsajq4MAxHCIAt5a/QJdcbx+pQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmc0CVXz1Pk for ; Mon, 10 Aug 2026 16:08:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 36896 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:08:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: bb68e4ac1250 - stable/15 - bhyve: Document vCPU range pinning List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bb68e4ac1250cd764681db501db36daf6757ea9a Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:08:00 +0000 Message-Id: <6a79f760.36896.68124f3e@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=bb68e4ac1250cd764681db501db36daf6757ea9a commit bb68e4ac1250cd764681db501db36daf6757ea9a Author: Bojan Novković AuthorDate: 2026-06-05 17:31:01 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:04:23 +0000 bhyve: Document vCPU range pinning This change documents the recently introduced changes to -p that allow users to specify CPU ranges instead of having to specify each individual mapping. While we're here, move the -p examples to the EXAMPLES section. Reviewed by: bcr MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D57480 (cherry picked from commit 23c99b64918eddb6084ffe4347faf95f82661c47) --- usr.sbin/bhyve/bhyve.8 | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 4efa936f437e..5eba53b92597 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 15, 2026 +.Dd June 5, 2026 .Dt BHYVE 8 .Os .Sh NAME @@ -79,7 +79,7 @@ .Sm on .Oc .Op Fl o Ar var Ns Cm = Ns Ar value -.Op Fl p Ar vcpu Ns Cm \&: Ns Ar hostcpu +.Oo Fl p Ar vcpuN Ns Oo - Ns Ar vcpuM Oc Ns Cm \&: Ns Ar hostcpuN Ns Oo - Ns Ar hostcpuM Oc Oc .Op Fl r Ar file .Sm off .Oo Fl s\~ @@ -333,19 +333,21 @@ for configuration options. .It Fl P Force the guest virtual CPU to exit when a PAUSE instruction is detected. This option applies only to the amd64 platform. -.It Fl p Ar vcpu Ns Cm \& : Ns Ar hostcpu -Pin guest's virtual CPU -.Em vcpu +.It Fl p Ar vcpuN Ns Oo - Ns Ar vcpuM Oc Ns Cm \&: Ns Ar hostcpuN Ns Op - Ns Ar hostcpuM +Pin the guest's virtual CPUs starting from +.Em vcpuN to -.Em hostcpu . +.Em vcpuM +to the host CPUs starting from +.Em hostcpuN +to +.Em hostcpuM . Host CPUs and guest virtual CPUs are numbered starting from 0. -A -.Fl p -option is required for every guest vCPU to be pinned. -To map a 4 vCPU guest to host CPUs 12-15: -.Bd -literal --p 0:12 -p 1:13 -p 2:14 -p 3:15 -.Ed +The +.Em vcpuM +and +.Em hostcpuM +arguments may be omitted. .It Fl r Ar file Resume a guest from a snapshot. The guest memory contents are restored from @@ -1317,6 +1319,16 @@ bhyve -c 2 -w -H \\ -n id=0,size=4G,cpus=0-1,domain_policy=prefer:0 \\ numavm .Ed +To run a virtual machine with a single vCPU pinned to host CPU 12: +.Bd -literal -offset indent +bhyve -c 1 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\ + -l com1,stdio -H -P -m 1G -p 0:12 vm1 +.Ed +To run a virtual machine with 4 vCPUs pinned to host CPUs 12-15: +.Bd -literal -offset indent +bhyve -c 4 -s 0,hostbridge -s 1,lpc -s 2,virtio-blk,/my/image \\ + -l com1,stdio -H -P -m 1G -p 0-3:12-15 vm1 +.Ed .Sh SEE ALSO .Xr bhyve 4 , .Xr netgraph 4 , From nobody Mon Aug 10 16:08: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 4hJfmd3dZsz6p0SM for ; Mon, 10 Aug 2026 16:08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmd1bdfz3q9n for ; Mon, 10 Aug 2026 16:08:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378081; 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=LX2eRpqz1TynOOBp4mKj7D0M684GyFysODnaEwiqwaU=; b=LNK9DWBPy012rVzYkwiv4BwDu711tQ27VHh4+a56yUuolJIysUEgTOapZQb3zsg7y2qPOb IaviSqR4xH6K1LOY9caUCLBjOJQeDoej+q5J6pvcUFBcSP5kb90Zvyuis6Ee4diT9RlA66 7ByHFT+SA0nChY/v/Sk16e4o1GO4lL1gFkUUXyQTy1bhwYViPQ+iMW7DCU4jlArlAyLEmL EN4VfzcDXD+5M0p4q4gux8EETPr9iYhJrDRU74gnZTrmoo7tCJIseZMU/ZUp1f68VBCNFS KQNwskwFTM2GKcri+X8s31b5dq5+tMjIK1yDJr0ejo6+eDhMqIOPitHTrvCZkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378081; a=rsa-sha256; cv=none; b=rFz9n3kocs4eOgb9nLs8IcqRAeLrSqrV7jtSnHMOw4M8kl7NURWNvCaw7AWgmu7ADlSiP9 8xgIlPsilPLf2JB00xkFdtao/JXIQBr9RPC9R1+jw8LjyPXiHBow4hG77Qjfmx9QmWBHWX lMJ/5emBV9mXP0hj1iWVui8teFtaSnNVyui3FSG7gRrKIf5D/IdMG74yrR5LlJpELjNeRE 3UF7Usc9RNTMhDGgnEllNLmXeyQn2cv6na/1xTaw33hLDY/i2+jyYCoI/SWOoGrLXk7k4c HZAI1yWb69+WD/Gd/E55QsY1GFLanIcX8+Mc31Y+zie/Id94p4RP+aUwstfSPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378081; 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=LX2eRpqz1TynOOBp4mKj7D0M684GyFysODnaEwiqwaU=; b=bmotZjRdsWaf/dT2eh6QsTfh7a1sVzRZZo0PKFlaYQL/l0W86PT5BQ28jr0przFKdrqUZ0 fTdRRopOCyDmf6ONodqux28i7jJ0kkE347tLqu8mk4+mPTOJvJrXRjcFCDTGkYuCkwqlnE Y5hyYe1W5jltf6Js4MAxgjm9evKOivGHTSWDMMVyHWpu6FJSLwMvGwpwZjbYD4LVK54DWg VjNFqiENNFCe0QL1Nqxv16m+HAtlhZlspaN6/RxNnY+Ea6tF0pQIXp1AMJfuRGqTi7VBM2 CSJ9ivR5JU7smWorsrB+n8XcPdSg+hNb1mhmuaFMejrAhYBQzKJy7sjO9onEgQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmd0ZlMz1VM for ; Mon, 10 Aug 2026 16:08:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37185 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:08:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Jane Smith From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: 75d74cc26f55 - stable/15 - cat: Fix a NULL pointer dereference List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 75d74cc26f5527cba244112cfe3cfbffd31e987b Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:08:01 +0000 Message-Id: <6a79f761.37185.243b1b5c@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=75d74cc26f5527cba244112cfe3cfbffd31e987b commit 75d74cc26f5527cba244112cfe3cfbffd31e987b Author: Jane Smith AuthorDate: 2026-07-21 19:45:25 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:04:32 +0000 cat: Fix a NULL pointer dereference Check the `fdopen` return value before calling `cook_cat`. Reviewed by: markj, bnovkov Differential Revision: https://reviews.freebsd.org/D57741 MFC after: 1 week (cherry picked from commit 9724f3f8974957d2cd15f6b796c347ca50250954) --- bin/cat/cat.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/cat/cat.c b/bin/cat/cat.c index c4c04fb3fff6..8c10faf7cff9 100644 --- a/bin/cat/cat.c +++ b/bin/cat/cat.c @@ -259,7 +259,8 @@ scanfiles(char *argv[], int cooked __unused) if (fd == STDIN_FILENO) cook_cat(stdin); else { - fp = fdopen(fd, "r"); + if ((fp = fdopen(fd, "r")) == NULL) + err(1, "fdopen"); cook_cat(fp); fclose(fp); } From nobody Mon Aug 10 16:08: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 4hJfmg00RNz6p0WR for ; Mon, 10 Aug 2026 16:08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmf29RQz3qGK for ; Mon, 10 Aug 2026 16:08:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378082; 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=cxQvIL9I4fe3YngiuRyFHZleOO9GqUEZw1fdr/dFNbM=; b=D6ynphItB6FLiAD9fiB1jbPR9EzrBDuON+OwUnrGmiq6uf5gQwsl9rGzxA9+dTQ/beDhkE EFviCtarP7C9zwKvAVfkhxLUzkIADcHxeF+39EX1TcOXUHY5rI7ePKG2d8pDYHXcMQiCGn 8wYrNPpgsnN/ZGZMQSRqJfo6RxotjbP7x1uPJPwndFBMGhiM87V2YZd5t1rYqnCHo6vUo8 SysYwSAgb6gqVH7Y1Ob3OExVWx525updeMzZfMUgHOOr+HpOHNAb2ul6EzUbnT52+MLtfr V+pflWcZVRSy9uDgNW9hiK9vtyQESYa1ImvxembN2o+4jdWJJuFc28kdsz6j0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378082; a=rsa-sha256; cv=none; b=bg0up4j02dPZBXXB1iJYVT/fguZjrneMR3rrxVgSDqwkHGFcOsO+Ht8zMP5+yczobdK/u2 oGhh6HHmoOWgGKTh/y3h2KcHGUERMybI2pemHxnOsEDlrx0l1WLFV61wFuHR27KCL4eo6O FWnYRe6nHFu249yh/QmZFmqChhVRToAo0giY09r45IL20LBSKbwgKTPNAwvxyF6G3mFEif /ieEXcb2Aa9o2NvRj5tUbqIa5UAhRScgEDPeEUT5zK8i/IWn4zkfbpwcO2VpCyX/fXNIZG CC3LcvqtkdIjArzUZarKTA0Us777K81fumaWf85mmu6KtBeShslZILDQBihUzg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378082; 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=cxQvIL9I4fe3YngiuRyFHZleOO9GqUEZw1fdr/dFNbM=; b=Q+hfn9O6OYDgpcaPWLDjsCJJllYguLLoxqt0X7qrSLEdWPnhcVSYd56Pp5rql53EjGlvWE vfPd2MU4GP5CxFx8h9uKk3qjhmKOeSals36fxVtdwBhT3Sr8KNvAuGrlkfQJRHCI486WGN OwY3++J6fsXTyX79n/jWPI20mwymi3Y1E3O0RufE/UpuVE5tn3v/+cxIsiiNhB1EFMCdNk tStYl4nb9njXw2T8OKpytPySBiIsaqXrdfNYlQUSQWSJRhUKiW9vYVOMAWUCiSWUgBxOc5 hAegtK5C2hfaE6pnZzvzNQokEg4l5lKZdf6Jlb0H3LbO3FITmcKvL/oAYbz/tQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmf10FRz1kQ for ; Mon, 10 Aug 2026 16:08:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3689a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:08:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Slawa Olhovchenkov From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: 429e2c587b3a - stable/15 - bhyve: Fix some leaks in usr.sbin/bhyve/block_if.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 429e2c587b3a510e908b4833354ce66cc9a9185c Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:08:02 +0000 Message-Id: <6a79f762.3689a.1b02678f@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=429e2c587b3a510e908b4833354ce66cc9a9185c commit 429e2c587b3a510e908b4833354ce66cc9a9185c Author: Slawa Olhovchenkov AuthorDate: 2026-07-13 16:02:43 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:04:38 +0000 bhyve: Fix some leaks in usr.sbin/bhyve/block_if.c Modify `blockif_open` to properly release a partially initialized `blockif_ctxt` structure on error. Differential Revision: https://reviews.freebsd.org/D57887 Reviewed by: novel, bnovkov, glebius Tested by: bnovkov MFC after: 2 weeks (cherry picked from commit 0228338fc9c6d2243fe4fd3259286d2fbc6df786) --- usr.sbin/bhyve/block_if.c | 48 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/usr.sbin/bhyve/block_if.c b/usr.sbin/bhyve/block_if.c index 32543f9f3a18..0a4f76ae197d 100644 --- a/usr.sbin/bhyve/block_if.c +++ b/usr.sbin/bhyve/block_if.c @@ -495,6 +495,7 @@ blockif_open(nvlist_t *nvl, const char *ident) pthread_once(&blockif_once, blockif_init); + bc = NULL; fd = -1; extra = 0; ssopt = 0; @@ -650,10 +651,13 @@ blockif_open(nvlist_t *nvl, const char *ident) bc->bc_sectsz = sectsz; bc->bc_psectsz = psectsz; bc->bc_psectoff = psectoff; - pthread_mutex_init(&bc->bc_mtx, NULL); - pthread_cond_init(&bc->bc_cond, NULL); + if (pthread_mutex_init(&bc->bc_mtx, NULL) != 0) + goto err; + if (pthread_cond_init(&bc->bc_cond, NULL) != 0) + goto err; bc->bc_paused = 0; - pthread_cond_init(&bc->bc_work_done_cond, NULL); + if (pthread_cond_init(&bc->bc_work_done_cond, NULL) != 0) + goto err; TAILQ_INIT(&bc->bc_freeq); TAILQ_INIT(&bc->bc_pendq); TAILQ_INIT(&bc->bc_busyq); @@ -664,13 +668,34 @@ blockif_open(nvlist_t *nvl, const char *ident) } for (i = 0; i < BLOCKIF_NUMTHR; i++) { - pthread_create(&bc->bc_btid[i], NULL, blockif_thr, bc); + if (pthread_create(&bc->bc_btid[i], NULL, blockif_thr, bc) != 0) { + bc->bc_btid[i] = NULL; + goto err; + } snprintf(tname, sizeof(tname), "blk-%s-%d", ident, i); pthread_set_name_np(bc->bc_btid[i], tname); } return (bc); err: + if (bc != NULL) { + void *jval; + if (bc->bc_cond != NULL) { + pthread_mutex_lock(&bc->bc_mtx); + bc->bc_closing = 1; + pthread_mutex_unlock(&bc->bc_mtx); + pthread_cond_broadcast(&bc->bc_cond); + for (i = 0; i < BLOCKIF_NUMTHR; i++) + if (bc->bc_btid[i] != NULL) + pthread_join(bc->bc_btid[i], &jval); + pthread_cond_destroy(&bc->bc_cond); + } + if (bc->bc_mtx != NULL) + pthread_mutex_destroy(&bc->bc_mtx); + if (bc->bc_work_done_cond != NULL) + pthread_cond_destroy(&bc->bc_work_done_cond); + free(bc); + } if (fd >= 0) close(fd); return (NULL); @@ -806,6 +831,7 @@ blockif_delete(struct blockif_ctxt *bc, struct blockif_req *breq) int blockif_cancel(struct blockif_ctxt *bc, struct blockif_req *breq) { + struct blockif_sig_elem bse; struct blockif_elem *be; assert(bc->bc_magic == BLOCKIF_SIG); @@ -849,11 +875,10 @@ blockif_cancel(struct blockif_ctxt *bc, struct blockif_req *breq) * Interrupt the processing thread to force it return * prematurely via it's normal callback path. */ + pthread_mutex_init(&bse.bse_mtx, NULL); + pthread_cond_init(&bse.bse_cond, NULL); while (be->be_status == BST_BUSY) { - struct blockif_sig_elem bse, *old_head; - - pthread_mutex_init(&bse.bse_mtx, NULL); - pthread_cond_init(&bse.bse_cond, NULL); + struct blockif_sig_elem *old_head; bse.bse_pending = 1; @@ -872,6 +897,8 @@ blockif_cancel(struct blockif_ctxt *bc, struct blockif_req *breq) pthread_mutex_unlock(&bse.bse_mtx); } + pthread_mutex_destroy(&bse.bse_mtx); + pthread_cond_destroy(&bse.bse_cond); pthread_mutex_unlock(&bc->bc_mtx); /* @@ -895,7 +922,7 @@ blockif_close(struct blockif_ctxt *bc) pthread_mutex_lock(&bc->bc_mtx); bc->bc_closing = 1; if (bc->bc_resize_event != NULL) - mevent_disable(bc->bc_resize_event); + mevent_delete(bc->bc_resize_event); pthread_mutex_unlock(&bc->bc_mtx); pthread_cond_broadcast(&bc->bc_cond); for (i = 0; i < BLOCKIF_NUMTHR; i++) @@ -908,6 +935,9 @@ blockif_close(struct blockif_ctxt *bc) */ bc->bc_magic = 0; close(bc->bc_fd); + pthread_mutex_destroy(&bc->bc_mtx); + pthread_cond_destroy(&bc->bc_cond); + pthread_cond_destroy(&bc->bc_work_done_cond); free(bc); return (0); From nobody Mon Aug 10 16:08: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 4hJfmg6GKmz6p0WX for ; Mon, 10 Aug 2026 16:08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmg3VqBz3q9p for ; Mon, 10 Aug 2026 16:08:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378083; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e4c0Ar4gXaTfb4iy/U73hO+KDpOD189DsB4Nr/UGDN0=; b=t2MYV+piFLxs/bs1jE6pblmCZMkrzOR7vREYvZJZBpVsZqP45kdIe5/i7WG1us1Kk3b2JL wdg3+cBPF5R6O0vrig7W1Tjrmaxk+APHVE0EJwFzemH9HSHAblOePzlO+ppdT8MW/MS/do 7NJuzpVjsjGpUgDUy8G+kg+2FF4kbqkgxuxF68ibDMrOqDjlHIzfoz5SMA+VYL/ZDXGee4 7AdlgmgVXo8IrNLTwaCrG/OpR42VqTbMIssPmA2ccYJ30P20EOps3SCVXzh9YOKduzZZ5g ixeJB/YxrNINHlJ9XeZGQKks4VwH0kPT+9izi1ulnfOOfaAziTrMfn4pRZbKRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378083; a=rsa-sha256; cv=none; b=Zyp4vdCcqxOubDEuZctRPva4CnzkWKh8gD07x1BBObMFME+/E81lsqC2ITU974gR1JEY1I 5O5iuDP3tEbdGD9tXDhXN+dhlrKgcxCsuXzoblowZkG8h63w7Bp9XZ5lMRym8f7z3x4qrr gPRFK+3BGiU6ZDCG/gauIc2OO2tCN1seYI4Fg+ujgBVTBmDykilYTTBljCiGAbbjSd4QOT tdAB8MmWpSutaraqWpWcYEwnvVCvGU0v8+TfE2AhWco+EmNW5Cjcn1/ba9BR1idB+riXZ9 aFCGO1HdNzbg2pm2NIMno7NoamGMRalNLOgMhXE785F/qhI3Q7rKGx1TUw3mMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378083; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e4c0Ar4gXaTfb4iy/U73hO+KDpOD189DsB4Nr/UGDN0=; b=YqNfuk+7oGufC9GkPjKzBz8bFKxDkZzraAHrAO7owaCu6xgwR0WQkxnRBFD8QOQXovnt3Z 4ETLNICpa6LnoYWwS9ny3EOYJ0LzPvxoblL0JPaFYerf6VEkXIY+upEdXYD5zsbxbhMw9Q iR8j25g5XnZJM9cgj3uTTufR+rx1q9DrWUTvc8PXo55m3e8dLGXvE9Ug3zgQf1om2Xg+lL F/YmZ5ZdbTYSUdJFsLfsvzHssASZna32VueJNXXCg6fUE6/N5XwALFqifG0SklA9Vz+zJ7 Rd9PsrqMlRTyPMGxgNuf6KJ5/+7WC4vIQasg/76a2L/sB++dOKHO4EKNwm27bQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmg1pphz1lM for ; Mon, 10 Aug 2026 16:08:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3710a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:08:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: 803887970ab6 - stable/15 - libc/db: Remove unused hash functions in hash_func.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 803887970ab6dca9a2eab6ef5d8cddf50f8621fd Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:08:03 +0000 Message-Id: <6a79f763.3710a.257f6db2@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=803887970ab6dca9a2eab6ef5d8cddf50f8621fd commit 803887970ab6dca9a2eab6ef5d8cddf50f8621fd Author: Bojan Novković AuthorDate: 2026-03-13 11:03:26 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:06:01 +0000 libc/db: Remove unused hash functions in hash_func.c Prune unused code hidden behind 'notdef', bringing us in sync with the changes in OpenBSD. Despite the `__default_hash` function pointer having external linkage, no ABI change is expected since it was never exported. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D55842 Reviewed by: allanjude, des MFC after: 2 weeks (cherry picked from commit c09ccfc2665bef0d81d1db4e3713e4f2a0b5a064) --- lib/libc/db/hash/extern.h | 2 +- lib/libc/db/hash/hash_func.c | 107 +------------------------------------------ 2 files changed, 2 insertions(+), 107 deletions(-) diff --git a/lib/libc/db/hash/extern.h b/lib/libc/db/hash/extern.h index d3850752ad3a..690219d30606 100644 --- a/lib/libc/db/hash/extern.h +++ b/lib/libc/db/hash/extern.h @@ -54,7 +54,7 @@ void __reclaim_buf(HTAB *, BUFHEAD *); int __split_page(HTAB *, u_int32_t, u_int32_t); /* Default hash routine. */ -extern u_int32_t (*__default_hash)(const void *, size_t); +u_int32_t __default_hash(const void *, size_t); #ifdef HASH_STATISTICS extern int hash_accesses, hash_collisions, hash_expansions, hash_overflows; diff --git a/lib/libc/db/hash/hash_func.c b/lib/libc/db/hash/hash_func.c index 529180b7698d..29597a04d3c0 100644 --- a/lib/libc/db/hash/hash_func.c +++ b/lib/libc/db/hash/hash_func.c @@ -39,114 +39,9 @@ #include "page.h" #include "extern.h" -#ifdef notdef -static u_int32_t hash1(const void *, size_t) __unused; -static u_int32_t hash2(const void *, size_t) __unused; -static u_int32_t hash3(const void *, size_t) __unused; -#endif -static u_int32_t hash4(const void *, size_t); - -/* Default hash function. */ -u_int32_t (*__default_hash)(const void *, size_t) = hash4; - -#ifdef notdef -/* - * Assume that we've already split the bucket to which this key hashes, - * calculate that bucket, and check that in fact we did already split it. - * - * EJB's original hsearch hash. - */ -#define PRIME1 37 -#define PRIME2 1048583 - -u_int32_t -hash1(const void *key, size_t len) -{ - u_int32_t h; - u_int8_t *k; - - h = 0; - k = (u_int8_t *)key; - /* Convert string to integer */ - while (len--) - h = h * PRIME1 ^ (*k++ - ' '); - h %= PRIME2; - return (h); -} - -/* - * Phong Vo's linear congruential hash - */ -#define dcharhash(h, c) ((h) = 0x63c63cd9*(h) + 0x9c39c33d + (c)) - -u_int32_t -hash2(const void *key, size_t len) -{ - u_int32_t h; - u_int8_t *e, c, *k; - - k = (u_int8_t *)key; - e = k + len; - for (h = 0; k != e;) { - c = *k++; - if (!c && k > e) - break; - dcharhash(h, c); - } - return (h); -} - -/* - * This is INCREDIBLY ugly, but fast. We break the string up into 8 byte - * units. On the first time through the loop we get the "leftover bytes" - * (strlen % 8). On every other iteration, we perform 8 HASHC's so we handle - * all 8 bytes. Essentially, this saves us 7 cmp & branch instructions. If - * this routine is heavily used enough, it's worth the ugly coding. - * - * Ozan Yigit's original sdbm hash. - */ -u_int32_t -hash3(const void *key, size_t len) -{ - u_int32_t n, loop; - u_int8_t *k; - -#define HASHC n = *k++ + 65599 * n - - n = 0; - k = (u_int8_t *)key; - if (len > 0) { - loop = (len + 8 - 1) >> 3; - - switch (len & (8 - 1)) { - case 0: - do { /* All fall throughs */ - HASHC; - case 7: - HASHC; - case 6: - HASHC; - case 5: - HASHC; - case 4: - HASHC; - case 3: - HASHC; - case 2: - HASHC; - case 1: - HASHC; - } while (--loop); - } - - } - return (n); -} -#endif /* notdef */ - /* Chris Torek's hash function. */ u_int32_t -hash4(const void *key, size_t len) +__default_hash(const void *key, size_t len) { u_int32_t h, loop; const u_int8_t *k; From nobody Mon Aug 10 16:08: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 4hJfmh6j9Hz6p0SS for ; Mon, 10 Aug 2026 16:08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJfmh3vQqz3q9r for ; Mon, 10 Aug 2026 16:08:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ptM35T3ICfUMywnvdG1YG2TUa7klIrs5Pprr/rYdO6U=; b=gr28yfJy3vzMXwq+bWcpVxlosZhBy4VhYoehD/Z4LOS4Uxc4z59EAAa084Ye6Mv8g1P2zh j4kZVHoXfPITRJLfpsyRKO++R0sRdrJAv1Bp433xQicARH5D5pMjInjhDnjs13kuS9VrJo D75dZWuwdZKiopwwWdt15TrOJlm8OHN3DzPTcWiw3MDViM0Pv/b2/MHtCRO7Ail25hMaHr /APeeff6u9cwUK0/boHZiaGqz5ZX/b0YReU9BXSUoS++iC67a8Dl4zLIyuVUDF56TYa+X9 vhr8wnlF8dvAyj5NqEeex77p/dcmtFUpodETil0ztlZysprF2NmC6cSYUQHebA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786378084; a=rsa-sha256; cv=none; b=eajwP5ohz1PBu1IIu4fjqvZJIoVUK8/PUek9K1TWKHJW3PfVQWKYu4teDpv57hqE2cxpZj KxtpjtVSoiCRDRFn10I3DegrJ90gwX7Ly80plT6aV4+ILwIA1FyRkTqfN65TNBuqNgl8mQ nZLPybIETsdcUGhLDa6Itw6p5AW7HF6YBe8UVsIxdRJbZ67xMxk+UtSflJybcLXT2hx3SG YHqR7fy/+BrCpI0hQEBBtmAXiqn6c1VBktnvV6yvYYA+Y6QoroDzJTeJ/zUphPo6+Qv2ns NrZgKif+PBgGx6vc0mcGEGI9FioragR8sXrHIeHqi6smo81ED9B/RvF9PyJPKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786378084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ptM35T3ICfUMywnvdG1YG2TUa7klIrs5Pprr/rYdO6U=; b=p5tmZXCXW+ysCMmYgsjBF8MxNuKAJszu3G1DyIMxYM6nJPzVf8L1lbm0+otpgyt/Upv9k6 uaMDDpNn+yA0bK8UvHkN4dzknKAAgXAxcQwDZfeQOQLCAxuQSHRT516/g40pk6/dVq3ig+ LjGwOZ+m7c3kFQWfzkELDGcpUSsZD2a2E54Ayyd0HwuyO79WzvFuUfH8asPYwyfAMqPNQf 13vSkndFRB6cHWL4dyybRClRnTX5Q8flwdz0P/4d4wA49ley9sXuTYVcE+XZUyzZtvZ7wl JWQBA4N5jGMBBoWdHFVFreaW7Z7EqdJeWrcvWWY8SGxTRkeenGDatNOHQKQCyg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJfmh2LdHz1Yb for ; Mon, 10 Aug 2026 16:08:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 348bb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 10 Aug 2026 16:08:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Bojan Novk=?utf-8?Q?ovi=C4=87?= Subject: git: a8c598de78fd - stable/15 - mpool/mpool_get.c: Avoid clobbering 'errno' when handling 'pread' errors List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bnovkov X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a8c598de78fd9ef6724d5f9366bc4b03fd5cbf9c Auto-Submitted: auto-generated Date: Mon, 10 Aug 2026 16:08:04 +0000 Message-Id: <6a79f764.348bb.6ae7a33e@gitrepo.freebsd.org> The branch stable/15 has been updated by bnovkov: URL: https://cgit.FreeBSD.org/src/commit/?id=a8c598de78fd9ef6724d5f9366bc4b03fd5cbf9c commit a8c598de78fd9ef6724d5f9366bc4b03fd5cbf9c Author: Bojan Novković AuthorDate: 2026-02-23 15:30:26 +0000 Commit: Bojan Novković CommitDate: 2026-08-10 16:06:02 +0000 mpool/mpool_get.c: Avoid clobbering 'errno' when handling 'pread' errors POSIX.1-2024 states that the 'free' function "shall not modify errno if ptr is a null pointer or a pointer previously returned as if by malloc() and not yet deallocated". However this is a fairly recent addition and non-compliant allocators might still clobber 'errno', causing 'mpool_get' to return the wrong error code. Fix this by saving and restoring 'errno' after calling 'free'. Sponsored by: Klara, Inc. Reviewed by: obiwac Differential Revision: https://reviews.freebsd.org/D55463 MFC after: 1 week (cherry picked from commit bce0c14fe19defeef4f02cfebc018e9adf979783) --- lib/libc/db/mpool/mpool.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/libc/db/mpool/mpool.c b/lib/libc/db/mpool/mpool.c index 1bab66d73baf..0df19dc09e4d 100644 --- a/lib/libc/db/mpool/mpool.c +++ b/lib/libc/db/mpool/mpool.c @@ -214,10 +214,14 @@ mpool_get(MPOOL *mp, pgno_t pgno, /* Read in the contents. */ off = mp->pagesize * pgno; if ((nr = pread(mp->fd, bp->page, mp->pagesize, off)) != (ssize_t)mp->pagesize) { + int serrno; + switch (nr) { case -1: /* errno is set for us by pread(). */ + serrno = errno; free(bp); + errno = serrno; mp->curcache--; return (NULL); case 0: From nobody Tue Aug 11 03:07: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 4hJxPT2kKSz6n1nB for ; Tue, 11 Aug 2026 03:07: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJxPT0D2Gz3SVT for ; Tue, 11 Aug 2026 03:07:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786417645; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0kh+tE73AkTFFaqobgzdvsJpxsbe6PfIq9gsKJgB/K0=; b=WrPXGmklFv6akY3AZOGwy4q9ylN0Pqb1yghbtJXkRpm/EGw1H/cKGd6SeXmhYmsmvGRjyK iUFui9cw83iEeJF3cDZvyXa/R4aniafRZgVt5Db+OlzR4fGxpmut7c3muId0Zq9MiRVgiR WxaT/yAvi9HaLplbR9maM+hbGnZnCYbvYkcsc3qdVuzYoAFD/4JV08XKi5mxpctZ6GP2vo 8tGfcQ1/z0C0wu8LVEQWYDcF+AXJXYNYp0nNmjso25KDkFd1ZowBVD5V0j09+373Qe+umy DvGeWxWrNRF1ZLVJPqIVjXR8S+oDNm+HhCysQHBY1tJh2n7oKlm/cAiyZg4lkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786417645; a=rsa-sha256; cv=none; b=SZdno4Q/VzXjGwTloryom4hT9a6Db8Oh1aar2qFjVsRMlo/poWm6PoSrgmGmRP0AxYGzSe LT69hk+vk6un4WOPUgtZizy5uz1kxuVrpkwbrwRr4x2g8J7K5LZ8ltdGYhAP8YmnG9zUz3 /cKayLrIBfwvES5L+KmBR7tpJVb+uSvmbvAYWHMCutQxuF/NG/77Qm5BE6wOfTJMo/5fGS lzQUpzwRhd6rPZrr4IuxBJ7g4FEkGxRf+PN5S6Ah7INWQQUNXezhxkWmoDytYM3iXzT7J2 Pwes2G0OXhHlVgRgIyA1N/z8OLOme9rvKYqGBelqB8JKQGpLAmJNx2qoPXlSZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786417645; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0kh+tE73AkTFFaqobgzdvsJpxsbe6PfIq9gsKJgB/K0=; b=PByZs7pwXmmFnJY+FyjZvFCCe1U0pbXF4nmpGcW0znYZYfLA9t4X/S2TLVV7TXpTiQV80I x7EXaeus+siiULQ9qQX//QxaF6dQ7dguMI2b3NszsaNVrktSsaA08IhLGUYtBJfToBqKLm emgDPpxCJCBrSzolxuzgnBjC2dNr0+9fhbTTwT4myG1WmzHyuMqZKTD26zdUsOfqqDG5/i rS4EFGj0y0D3qC2ZCxfWLZDXu5yWI4orRjFcOxx/GEK5V2bW6ipHd3Ikj5JLLHCG5klEMd 0jLMpgHdymS/haBrnGd30l9hBP0Zy/cUq8DNH7cUucPe3xA5nCD5cclnCEMPgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJxPS65FzzdJj for ; Tue, 11 Aug 2026 03:07:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33a24 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 03:07:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: 164a5a08767e - stable/15 - release/Makefile.gce: migrate gsutil usages to gcloud CLI List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 164a5a08767e4f864164506ca5597eb42035ee1a Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 03:07:19 +0000 Message-Id: <6a7a91e7.33a24.756d8a10@gitrepo.freebsd.org> The branch stable/15 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=164a5a08767e4f864164506ca5597eb42035ee1a commit 164a5a08767e4f864164506ca5597eb42035ee1a Author: Xin LI AuthorDate: 2026-07-26 02:17:55 +0000 Commit: Xin LI CommitDate: 2026-08-11 03:06:54 +0000 release/Makefile.gce: migrate gsutil usages to gcloud CLI Google Cloud recommends migrating from gsutil to gcloud storage CLI. Update gce-do-upload target to use `gcloud storage buckets create` and `gcloud storage cp` instead of `gsutil mb` and `gsutil cp` commands. PR: conf/297016 (cherry picked from commit 4174cc2f69d36105a735b19fadc9c18497b02b1a) --- release/Makefile.gce | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/Makefile.gce b/release/Makefile.gce index f5c657c3c103..e34b82e616be 100644 --- a/release/Makefile.gce +++ b/release/Makefile.gce @@ -78,8 +78,8 @@ gce-do-package-${_FS}: gce-do-upload-${_FS}: @# Fallthrough in case the bucket already exists. - /usr/local/bin/gsutil mb gs://${GCE_BUCKET} || true - /usr/local/bin/gsutil cp ${.OBJDIR}/${GCE_TARGET_${_FS}}.tar.gz \ + /usr/local/bin/gcloud storage buckets create gs://${GCE_BUCKET} || true + /usr/local/bin/gcloud storage cp ${.OBJDIR}/${GCE_TARGET_${_FS}}.tar.gz \ gs://${GCE_BUCKET}/ /usr/local/bin/gcloud compute images create ${GCE_TARGET_${_FS}} \ --architecture=${GCE_ARCH} \ From nobody Tue Aug 11 03:08: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 4hJxQG59rTz6n1v5 for ; Tue, 11 Aug 2026 03:08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hJxQG4Ysyz3SlC for ; Tue, 11 Aug 2026 03:08:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786417686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Xm9SL68kA+g6Wuy1MrhLOhR417mSF6xUJhbnMBW8/So=; b=MXrDWvqXgwiQJ5Z+Z5RdRN12fKNrkdIfr+C7j60Dth5NSpsFRDzvaAE+EUD3BIKsRCHuMC YhITgYFZT7itCSzCBVLx8AVWmlV00XOqVrOHeBIRk7Q2Abrmh8MVbSt8bQoVL2S+8ET/LM MJyq14RGTH909/GZuAkMpawG2N7DAko9IR6gGFhFGHaYEyFxtVJvgVFjvSGX5ffXDX0Mcj /WcUT+G4Gp/rQEN2QALroAYqKOjB7h39QLq2B0zcjJIrvmyeySAxoddEqvw7mQuOcuhj1O 6i5BUOCWFkUkH5FfPeqmcoH1rMyPtrqyCTxNwBik8PTWH9v2+dXRZ/n4RUCURA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786417686; a=rsa-sha256; cv=none; b=jt7o5bECNPzj/W1WMWz2bXh+Zaolz82OpSpUVS0o+KBfDaLHp74aNFbJc7WcXJDEKkDlEK 7hTgzR9y0AXaAdMMQpelHf8lWuUqRADnb1vPV7729WOJTVnS7GbmrcHMArVCBaUEkD/ZP6 bIvJuDYHthhvxQWVvHxXGfwHWr1Insj8ys9vqJgQzDHizbAE3vRmn92G0Ts9Pm2uhhte96 qChohkxVKufb9AO/X1of+040dXfRkkOkvLUxvL8Ojy4jv/9QyIcJMyhFPvJlFrdUkeRS6M GOVsiEMYIBuvZ5k2vnrysif35tIIiovvY0U8oMGlPli0MxZBr0LG8We1bLft8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786417686; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Xm9SL68kA+g6Wuy1MrhLOhR417mSF6xUJhbnMBW8/So=; b=D8SPbCmLilwNuTvqs0uOkZgBjFJA1Sr1cG7ktO8s328xzFto+/94ilkSmxcrgoH6o9f6+p 1UqAK7mNtJQnEA/RY6PMSzITCyPG+f/AqbcAyPdnnkaWM8ebU1O1HmXgjs5nKOpdyg1hLc CPe5F2C9RrRPrA0rAzlMQ1/24L5d0UCIZ0FCqjvTGGl97uh4pF7kQmrg90vwIgVwSyfvQO 9WNM/349J49ZUZO4U1SUATfqUSjlLxEJgu9AVkIPBma3oHMaqScrcxwCcY9d6Yz7j1eCKu 0jI0MnTBolYzFKCoo9EOrwgMjek/f2wPi41jC/z9Z4E7H8cWHhhSuC70TXAn8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hJxQG3NTWzd7c for ; Tue, 11 Aug 2026 03:08:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33ab1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 03:08:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: c66a923cd12a - stable/14 - release/Makefile.gce: migrate gsutil usages to gcloud CLI List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c66a923cd12a41ab1e31f3e9522cfba19bc66d48 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 03:08:06 +0000 Message-Id: <6a7a9216.33ab1.4a6f92fb@gitrepo.freebsd.org> The branch stable/14 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=c66a923cd12a41ab1e31f3e9522cfba19bc66d48 commit c66a923cd12a41ab1e31f3e9522cfba19bc66d48 Author: Xin LI AuthorDate: 2026-07-26 02:17:55 +0000 Commit: Xin LI CommitDate: 2026-08-11 03:07:36 +0000 release/Makefile.gce: migrate gsutil usages to gcloud CLI Google Cloud recommends migrating from gsutil to gcloud storage CLI. Update gce-do-upload target to use `gcloud storage buckets create` and `gcloud storage cp` instead of `gsutil mb` and `gsutil cp` commands. PR: conf/297016 (cherry picked from commit 4174cc2f69d36105a735b19fadc9c18497b02b1a) --- release/Makefile.gce | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/Makefile.gce b/release/Makefile.gce index 22ba90c80363..7f66a9e5fc26 100644 --- a/release/Makefile.gce +++ b/release/Makefile.gce @@ -80,8 +80,8 @@ gce-do-package-${_FS}: gce-do-upload-${_FS}: @# Fallthrough in case the bucket already exists. - /usr/local/bin/gsutil mb gs://${GCE_BUCKET} || true - /usr/local/bin/gsutil cp ${.OBJDIR}/${GCE_TARGET_${_FS}}.tar.gz \ + /usr/local/bin/gcloud storage buckets create gs://${GCE_BUCKET} || true + /usr/local/bin/gcloud storage cp ${.OBJDIR}/${GCE_TARGET_${_FS}}.tar.gz \ gs://${GCE_BUCKET}/ /usr/local/bin/gcloud compute images create ${GCE_TARGET_${_FS}} \ --architecture=${GCE_ARCH} \ From nobody Tue Aug 11 08:15:39 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hK4FD468Qz6X90Q for ; Tue, 11 Aug 2026 08:15: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK4FD2yqzz3xvj for ; Tue, 11 Aug 2026 08:15:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786436144; 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=PMZW5brRuLxN1GXmkDTtbcwM183H2yJlivEE3/GgkkE=; b=KjK5caXOYLtHiizosAumDvo/HO29sVD+g2vy6y9v/k/Fumn7VGMcvfR6oQZeBXZ431T9Ff 72Aul3+mlBpHOeIBAEzF9hpLx+7YLZwLep/XL+Ov1iuIvLk382TuQx1aTGGKqkgQ8m1yMf 7gZAzxcyUJ6Vdtv80u5wfidzh8i8BICCBI4CnSXPkgvH7SARyM/RzIxIxyVI786ptu8fjH ZSP4YJ+UVCGSCUJfdLp+0oJ1AvIyUXkuZzAb/0qx5MZarh2NPo9YrgHPQriX9rGf7DFuW2 VIMEYA8Jy6M4Y2TXml80N2o0fc7v6xXagmzrV2PMp6KGTS+WeqCLoYxXlapnJg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786436144; a=rsa-sha256; cv=none; b=TNiGLCDZvjTCVfGvK7XEpOoV9tgKJH4N+n83+M3br0Sr+56Uh/h+gIrsA8BC56AYMLqLQx xVRhgbcUQI+ERH6EYizPDzflWNqGUSXbcwHpAYlX4taR0ox8rgbr2DCum/geUmjL92IF9L 22PjoqJqAGj5/xQtEUlWcbvVuqrVHBYoY/1PtPk5iOI4QRrDocbE2U7nDAgbHVINj3b/sv fSV9+b1JjSJJZgZEZysL6mBviFoetN0wYisEJtoZVYP1akiblDC5AJIQwKxCE2VQUI6Vnq oWXFMYhp0/+uorlu5y0d26GctlJcsP4cOHemd5dvYZI+MpWWCWJ/MnGRO40Rkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786436144; 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=PMZW5brRuLxN1GXmkDTtbcwM183H2yJlivEE3/GgkkE=; b=Erg9Q84joi2O9Y3FzXJsu38CNuhDpb4OuKJT0Z4BFAH/MpwZIvv3LxdZd4sx5HKafh0oB4 LJXEND+nJIp1XC0THpqICd9DUn7Gxbys/G0qLV+oyAAe+cP+JyJOQWMeW0pi9QiZUL56Hw H8KnmNNMojRS5bp/7ZLJUNrDDoWZZ66KM06bLW+40UGX7Tiwcje6v6LNr79zRqzVuGTcwJ OqjRmWgyEO1uAPtVQC53dst3FIhetjKCQA24n6y2tXqrfq3LFz7KLFeWjjhgg7iYwztnV8 2GFuBgo0H9DHxMMiqqMOcANWtMuv5porcYF3QnqdoV9BFm51mCX+YorCeGVX/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 4hK4FD1Qylzmpq for ; Tue, 11 Aug 2026 08:15:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25e1f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 08:15:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Boris Lytochkin From: Andrey V. Elsukov Subject: git: c64d42caebb7 - stable/14 - ipfw: rework 32-bit KBI detection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c64d42caebb77f927777408f5a284a7313df1fc4 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 08:15:39 +0000 Message-Id: <6a7ada2b.25e1f.260afbfb@gitrepo.freebsd.org> The branch stable/14 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=c64d42caebb77f927777408f5a284a7313df1fc4 commit c64d42caebb77f927777408f5a284a7313df1fc4 Author: Boris Lytochkin AuthorDate: 2026-08-11 08:03:16 +0000 Commit: Andrey V. Elsukov CommitDate: 2026-08-11 08:03:16 +0000 ipfw: rework 32-bit KBI detection When we run 14.X jail on 15.X host system previous implementation could not correctly detect 32-bit KBI due to jails can overwrite osreldate. Add special handling for this case and use detection using IP_FW_DUMP_SOPTCODES and IP_FW_XGET sockopts version. Reported by: Vova Grebenschikov Fixes: 704ec5e68c44 MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D56616 --- sbin/ipfw/ipfw2.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ sbin/ipfw/ipfw2.h | 1 + sbin/ipfw/main.c | 14 ++++---- 3 files changed, 110 insertions(+), 7 deletions(-) diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c index 56e5b0640135..a8a70dccf125 100644 --- a/sbin/ipfw/ipfw2.c +++ b/sbin/ipfw/ipfw2.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -5829,6 +5830,107 @@ ipfw_internal_handler(int ac, char *av[]) } } +/* + * Detect 32 bit ipfw KBI by presence of XGET v=1. + * + * 32-bit KBI was introduced in 1500034. Report 32-bit KBI for osreldate equal + * or greater than 1500034. For lower values, jailed status must be checked to + * make sure getosreldate() returned a real value as jail init can be + * instructed to override this value (see jail(8)). In case we're in a jail, + * use ipfw socket to detect 32-bit KBI using ophandler probes. + * + * Return: + * 2 - 32-bit opcode KBI detected despite of getosreldate() retval + * 1 - 32-bit opcode KBI detected + * 0 - 16-bit opcode KBI detected + * -1 - an error occurred + */ + +int +ipfw_detect_u32_kbi(void) +{ + ipfw_obj_lheader *hdr = NULL; + ipfw_sopt_info *info; + socklen_t len; + size_t need; + uint32_t i; + int s, opver, ret = -1; + + if (getosreldate() >= 1500034) + return (1); + + /* Make more checks for lower osreldate values */ + s = 0; + need = sizeof(s); + sysctlbyname("security.jail.jailed", &s, &need, NULL, 0); + + /* We're not in a jail, value from getosreldate() is real */ + if (s == 0) + return (0); + + /* + * We're in a jail, osreldate may be altered. Use ipfw socket to + * decide. + */ + s = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); + if (s < 0) + return (-1); + + /* + * ipfw code @ RELENG_15 can register 61 sockopt handlers. + * Pre-allocate enough to evade realloc() + */ + need = sizeof(ipfw_obj_lheader) + (64 * sizeof(ipfw_sopt_info)); + + opver = 0; + for (i = 4; i >= 0; i--) { + hdr = realloc(hdr, need); + memset(hdr, 0, need); + if (hdr == NULL) + break; + + hdr->opheader.opcode = IP_FW_DUMP_SOPTCODES; + hdr->opheader.version = opver; + hdr->size = need; + + /* Check DUMP_SOPTCODES v=1 existance */ + len = need; + if (getsockopt(s, IPPROTO_IP, IP_FW3, hdr, &len) != 0) { + if (errno == ENOMEM) { + need = hdr->size; + continue; + } + /* Does not exist. 32-bit KBI? */ + if (errno == EINVAL && opver == 0) { + opver = 1; + continue; + } + /* Report an error */ + ret = -1; + break; + } + /* Fetched soptcodes successfully */ + info = (ipfw_sopt_info *)(hdr + 1); + for (i = 0; i < hdr->count; i++) { + if (info[i].opcode != IP_FW_XGET) + continue; + if (info[i].version == 0) { + ret = 0; + break; + } + if (info[i].version == 1) { + ret = 2; + break; + } + } + break; + } + + free(hdr); + close(s); + return (ret); +} + static int ipfw_get_tracked_ifaces(ipfw_obj_lheader **polh) { diff --git a/sbin/ipfw/ipfw2.h b/sbin/ipfw/ipfw2.h index 2137719296f9..58b73a627bd7 100644 --- a/sbin/ipfw/ipfw2.h +++ b/sbin/ipfw/ipfw2.h @@ -454,6 +454,7 @@ int fill_ext6hdr(struct _ipfw_insn *cmd, char *av); void bp_flush(struct buf_pr *b); void fill_table(struct _ipfw_insn *cmd, char *av, uint8_t opcode, struct tidx *tstate); +int ipfw_detect_u32_kbi(void); /* tables.c */ struct _ipfw_obj_ctlv; diff --git a/sbin/ipfw/main.c b/sbin/ipfw/main.c index 3d5cfc96af46..2ad521bdbea4 100644 --- a/sbin/ipfw/main.c +++ b/sbin/ipfw/main.c @@ -18,7 +18,6 @@ * Command line interface for IP firewall facility */ -#include #include #include #include @@ -31,8 +30,6 @@ #include #include -#include - #include "ipfw2.h" static void @@ -673,6 +670,7 @@ ipfw_readfile(int ac, char *av[]) int main(int ac, char *av[]) { + int ret; #if defined(_WIN32) && defined(TCC) { WSADATA wsaData; @@ -697,17 +695,19 @@ main(int ac, char *av[]) * KBI-incompatibility detected, check for availability of ipfw/dnctl15 * binaries and run them instead */ - if (getosreldate() >= 1500000) { + ret = ipfw_detect_u32_kbi(); + if (ret > 0) { const char *releng15_progname; - int ret; if (g_co.prog == cmdline_prog_ipfw) releng15_progname = "/sbin/ipfw15"; else releng15_progname = "/sbin/dnctl15"; - printf("WARNING! KBI incompatibility for ipfw is detected," - " trying to run %s.\n", releng15_progname); + if (ret == 1) + printf("WARNING! KBI incompatibility for ipfw is" + " detected, trying to run %s.\n", + releng15_progname); if ((ret = execv(releng15_progname, av)) < 0) { printf("execv(%s) error: %s\n", releng15_progname, From nobody Tue Aug 11 08:42: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 4hK4rH62CJz6XC9t for ; Tue, 11 Aug 2026 08:42: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK4rH4XRtz43gV for ; Tue, 11 Aug 2026 08:42:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0NyhZHYBHW+Q6mdplzf6cuKDi+QB1TaGUTy/jPWfkAE=; b=AiLXIha0kHkLTmZdjmeOTVgNCgiMbDvAw4UUjqAmeNkzHtl+bfukQZAHXpSkitykarnEDp qAvfNQQ2BZU85cDwkeSvzLRo14TeYOkBM8PHyxiDUv1/STboV3gHL7mTsKDlekW1QHsqok ES8BadHPlxBGtkCZ4ehiKXUGb/8o6/klLoNRto9mMT64b/1L6STkgcY48WrVLx8fcZ49hq CO6tW3fG0QY4HrxaeaziD6k2WCqC29CPlE4avmJCQq7retamhYjT4BZ4lFxiVNOEN5vyHo DiJ8SgvK6w8h0/uX/g+gXkblb4eeZ+pST/l0imhnoIJUD81cYBZ9heP1EUxpBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786437759; a=rsa-sha256; cv=none; b=La+81KTv8az/jtpQYUVYsEYwRk/8x8D7uW7yZFhLVKOByBmHtF0yDhA0Jk941E0jMjezxW Q2x8ZWSba/OJRn3OQ82woPNXW1un8BPVkjJRVhzIWACi0IoNNLq7pBbjHFbEK36TYLB03d 6ihDIhb4XXPBRmDxtqnitDW+g9OYoriEGQi7y1D5yTuR9v6s0KJbSAVDJ14qHsaUzJdlXf cyY3iEQdODkQkcSzEkefxI1lS6W6wJj8o4FByZSd+nQBCdZ7uYl/VilJVCm7QbScvDeupB oiZOZIfhRao3LJZk9NdF9cvtGCjPzykNq008DD9AnhueX9TauwAT3VCB5K9HpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0NyhZHYBHW+Q6mdplzf6cuKDi+QB1TaGUTy/jPWfkAE=; b=BzW8Rid03UJmg3EBYcH63zuCdeBjRSNsjgAuOuNUhszWnfk9RWEas0zVX4IyPv5ybJMTVv 09fIRh1sls+/VPcwXHuSZUKWEWd2D1iNu2iR+cAcUPAT9EPycHokdUgFm/GIjXB8lSq+sH c5K04Gk03Q/3bcoRX4V6ftLsMWdqGRccNxBm1vYQzjaRwv2tZU/3xeG4+w24gRFnOWk3IX T1SBDpn0IcJBrIA1HdeEk7j7wsBVsnQgo17nJKHWjcUGEonD1BGzHt4ptYyeTrmGnHilRT vJyldqBf5CTh+v+oCB6ooJIIiS7rJyVpkKNH1s6KhG2Ua/5zYYEYuHrjiGs5wQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hK4rH2d9zzp91 for ; Tue, 11 Aug 2026 08:42:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30e47 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 08:42:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: e4e4d1b5ed7b - stable/15 - pf: check if a group has a kif before dereferencing it List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: e4e4d1b5ed7b8a7239eb33fd27e32bafc63768db Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 08:42:39 +0000 Message-Id: <6a7ae07f.30e47.2097a0b0@gitrepo.freebsd.org> The branch stable/15 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=e4e4d1b5ed7b8a7239eb33fd27e32bafc63768db commit e4e4d1b5ed7b8a7239eb33fd27e32bafc63768db Author: Kristof Provost AuthorDate: 2025-09-02 08:46:26 +0000 Commit: Kristof Provost CommitDate: 2026-08-11 08:33:56 +0000 pf: check if a group has a kif before dereferencing it It's possible for interface groups to not have had a pfi_kkif assigned to them, so before we pass that pointer to pfi_kkif_update() we must check if it's actually set. We've seen panics such as this, where we get an address update for an interface that belongs to a group without associated pfi_kkif: Tracing pid 12 tid 100034 td 0xfffff80100d2a000 kdb_enter() at kdb_enter+0x33/frame 0xfffffe0067eed340 panic() at panic+0x43/frame 0xfffffe0067eed3a0 trap_pfault() at trap_pfault+0x3c9/frame 0xfffffe0067eed3f0 calltrap() at calltrap+0x8/frame 0xfffffe0067eed3f0 --- trap 0xc, rip = 0xffffffff8102ebd5, rsp = 0xfffffe0067eed4c0, rbp = 0xfffffe0067eed500 --- pfi_kkif_update() at pfi_kkif_update+0x15/frame 0xfffffe0067eed500 pfi_kkif_update() at pfi_kkif_update+0x1fc/frame 0xfffffe0067eed550 pfi_ifaddr_event() at pfi_ifaddr_event+0x82/frame 0xfffffe0067eed5a0 srcaddr_change_event() at srcaddr_change_event+0xa7/frame 0xfffffe0067eed610 in6_update_ifa() at in6_update_ifa+0xd52/frame 0xfffffe0067eed790 in6_ifadd() at in6_ifadd+0x29a/frame 0xfffffe0067eed8b0 nd6_ra_input() at nd6_ra_input+0xf65/frame 0xfffffe0067eeda90 icmp6_input() at icmp6_input+0x3c8/frame 0xfffffe0067eedc10 ip6_input() at ip6_input+0xa15/frame 0xfffffe0067eedcf0 sppp_input() at sppp_input+0x502/frame 0xfffffe0067eedd80 pppoe_data_input() at pppoe_data_input+0x1e7/frame 0xfffffe0067eeddf0 swi_net() at swi_net+0x128/frame 0xfffffe0067eede60 ithread_loop() at ithread_loop+0x239/frame 0xfffffe0067eedef0 fork_exit() at fork_exit+0x7b/frame 0xfffffe0067eedf30 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0067eedf30 Note that pf doesn't assign pfi_kkif objects to groups created before pf has fully started (see V_pf_vnet_active check in pfi_attach_group_event()), which is one possible way for this to happen. Reported by: garga Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit dc0cf0648c8d28ab4914c798a4cff8256ae94ee5) --- sys/netpfil/pf/pf_if.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c index e2200c15c704..f3be036ef745 100644 --- a/sys/netpfil/pf/pf_if.c +++ b/sys/netpfil/pf/pf_if.c @@ -655,8 +655,10 @@ pfi_kkif_update(struct pfi_kkif *kif) /* again for all groups kif is member of */ if (kif->pfik_ifp != NULL) { CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) - pfi_kkif_update((struct pfi_kkif *) - ifgl->ifgl_group->ifg_pf_kif); + if (ifgl->ifgl_group->ifg_pf_kif) { + pfi_kkif_update((struct pfi_kkif *) + ifgl->ifgl_group->ifg_pf_kif); + } } } From nobody Tue Aug 11 08:42: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 4hK4rJ6x76z6XC9x for ; Tue, 11 Aug 2026 08:42: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK4rJ4bbtz43JP for ; Tue, 11 Aug 2026 08:42:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X+xhO4mUltwiz9kQ8QeeBLgVqQc1jM/hyqcTKn7vInM=; b=QGDHjARBsF9P9jVfhO41SMjSvEebNd+jy1+W23XJFmOblElazOZ+Ya/WG7MmMHFrMxJx3l puN4hBt/RLlAjkR6ddF/M9OkoT4wXy/Hotubssn/uq0bGpRX6RF6VEApQ2KHyh/Kc+6Ctt AFtbcM9v20oyq88tZhaRdi1SR1RpjLMgliqUm6ZZqyzHhHqx4+rUI2QPVs39evWXGZ5M3x Xt7XXJoRBre3VvcIbv28o6/8dqxQAbZ+uo2xUiW6VCTxW+Un8qg9jcvTEjkFyE06C2gOED sIYlv91kH32zDT7cZvS6bn/OyUM/In1BNpCcMLz0bGtvLc4ICHOkiMCUzzbs4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786437760; a=rsa-sha256; cv=none; b=KqmDEfYd0C0od31vM6wqPBZD1qVEcYPegEuRQx7EgSS0OK6W49GtwTha4Ma0NCmFKzsv0f uGA/HyuY5ykqP7QucMYufV7CHZwsZLbeFebNKTWa/FPjcHYId46i6r2emaNIl5WYqDXNqS 7S9nxspc2IkHQUfJg4fUHg32Grt2LsWNcNgl0XyTjGEZteTagXiOL/bFYH5v0i6Z5k7vbC tJkI9XcwYLOGbm39Zpbr1rurfTT51FUmXD3hUlBOspLufKHTzDtu32x3gOPtE6qvQ9Skjg MO9SPRCeSzZixZKNni4j1lkgAaFeHKbpoGAby9t8QaAV767cEDnrPwFbMcdJ1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437760; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X+xhO4mUltwiz9kQ8QeeBLgVqQc1jM/hyqcTKn7vInM=; b=LGBAkFqHlaQPhTIC74ny54TmSomLyGClVSSMaQC6FiM5dxllldXUzGCWhLKd+Y3y7KSVbs sKVHQbSZvIUC/+EYcjH2zbQf2H8OLVMHDIHKHsF+DyxNa4sJyvtV31Tenge4UmkB3lCr04 aOSmmQRHn5aY4OcUcT7rYWeVUBUQj2TB1PpP44NXAvkhMX9rOLigw6HA7rphgZPLSy1IfX mXt9fD2LzOtqokNETqdO/zBmj/3wmDWEWwQAMIEP0ARxmov3zbumNOiKrVlpVSJojdcBY9 pwAjvii07KVwSNF4wkpvuwebnLlL9KId6OPBfjuftlp3sPWikeceEd0tAnmg4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hK4rJ3NDzznb5 for ; Tue, 11 Aug 2026 08:42:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 317d1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 08:42:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 80d732d64099 - stable/15 - pf: attempt to handle overlapping group and interface names List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 80d732d6409907efb586c621238f5c43c77690f8 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 08:42:40 +0000 Message-Id: <6a7ae080.317d1.1d2dace2@gitrepo.freebsd.org> The branch stable/15 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=80d732d6409907efb586c621238f5c43c77690f8 commit 80d732d6409907efb586c621238f5c43c77690f8 Author: Kristof Provost AuthorDate: 2026-08-03 14:05:28 +0000 Commit: Kristof Provost CommitDate: 2026-08-11 08:33:56 +0000 pf: attempt to handle overlapping group and interface names pf assumes that network groups and network interfaces share a namespace (that is, a name is unused, a group or an interface, never both a the same time). Unfortunately this assumption was broken when interface renaming was introduced. Attempt to cope with this rather than panicking. Note that this is a band-aid, not a full solution. The correct fix is for the network stack to go back to enforcing a single namespace for groups and interfaces. PR: 297220 Reported by: Robert Morris MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit d2a5b5a86a92e86f77737273ab4b2e99da63c21d) --- sys/netpfil/pf/pf_if.c | 19 +++++++++++++------ tests/sys/netpfil/pf/names.sh | 23 +++++++++++++++++++++++ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c index f3be036ef745..5703c6712d80 100644 --- a/sys/netpfil/pf/pf_if.c +++ b/sys/netpfil/pf/pf_if.c @@ -653,12 +653,19 @@ pfi_kkif_update(struct pfi_kkif *kif) } /* again for all groups kif is member of */ - if (kif->pfik_ifp != NULL) { - CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) - if (ifgl->ifgl_group->ifg_pf_kif) { - pfi_kkif_update((struct pfi_kkif *) - ifgl->ifgl_group->ifg_pf_kif); - } + if (kif->pfik_ifp == NULL) + return; + + CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) { + if (strcmp(ifgl->ifgl_group->ifg_group, kif->pfik_name) == 0) { + printf("pf: WARNING conflicting group / interface name %s\n", + kif->pfik_name); + continue; + } + if (ifgl->ifgl_group->ifg_pf_kif) { + pfi_kkif_update((struct pfi_kkif *) + ifgl->ifgl_group->ifg_pf_kif); + } } } diff --git a/tests/sys/netpfil/pf/names.sh b/tests/sys/netpfil/pf/names.sh index c6f2a06c15f9..eb5c9a2a6ac5 100644 --- a/tests/sys/netpfil/pf/names.sh +++ b/tests/sys/netpfil/pf/names.sh @@ -134,9 +134,32 @@ start_number_cleanup() pft_cleanup } +atf_test_case "overlap" "cleanup" +overlap_head() +{ + atf_set descr 'Create a group and an interface with the same name' + atf_set require.user root +} + +overlap_body() +{ + pft_init + + epair=$(vnet_mkepair) + # Overlap with the implicit 'epair' group. + # See PR 297220, this can panic. + ifconfig ${epair}a name epair +} + +overlap_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "names" atf_add_test_case "group" atf_add_test_case "start_number" + atf_add_test_case "overlap" } From nobody Tue Aug 11 08: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 4hK4rL4nxfz6XBpd for ; Tue, 11 Aug 2026 08: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK4rL1nMcz436c for ; Tue, 11 Aug 2026 08: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=1786437762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F6f5V5RHwR5gAi7P9Ptb9A60FEzuylVrcvEjNpGvvW0=; b=nIkdfofUvehKCEEhDbzZWvbOaXXYcAMjS9asZxL/rVXNRvQg9f84kbCtfYmlTpQZc10Kfp XqodUDWFIhJ+s07Pusi5/KREKrsI+RzlYPNcUeB81dE/yrg1lvqBD6FI5I5AeO7Iv0Dqck kFxQFQRgctXQsSbhwaiv9bjrqzCfXltLy/SJq+JBjP1L4RMgrdVLhH1O1kXwc3H04FL+kj xe4JrNfc19qUxEFTNH1bvTf4+ySqfT7arxU+i/tCxsTLL5WZK+CuD1SoRJDVQqEtwNUbFF PS0vUL75SscSKLh1vvP+smOx/UrGRMYHA49IkEpspvxYSgdiR4z0nQWvDDdViw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786437762; a=rsa-sha256; cv=none; b=fNrHrRU8GqqoscppdP6OJkeJFbg9QPQxPXLSc6qwAeNEcwrZpffWBfCopBA9LglC19ioHe YN1LVltjGNPC3HY54WhCLYmAcq5ydafVLDhh3bCXWJK3LDbB19alXwAC48W8sYAbPphIvp wasq0GS5OlJfCVMbn1WjMo1XzUGaBimCvRo33m8Iu0ROmvLSfkMVxwuMfb0aVUaSBXgUfA DrHTWTU/eguSAzHy9lQe7LCY4OMvuMg5oJ+kZWcHaMobUM3wYWuCd20Li3k1z/vvBLVNtT oyNZptBlaDbOOzhORNxYcybDEbETrojV9B6ZFD3sxTPXjOAgUHZxzmxnoedVvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F6f5V5RHwR5gAi7P9Ptb9A60FEzuylVrcvEjNpGvvW0=; b=SHfbcQ+udI4mDrS/WIqFcwH/9baUdf2BTYHIJCsqW0z1AcPhiQOjmH9dytLtxgp1rVTvIC +l7AlkGs+EoiLxAOCEIaU3fwg2xBVjC4chYijq8OP1cU9xYk9ILEgDCF26yYnEgGSFSlc1 4bGoSuliMgSogpbaHQ8/j5jb8FBhn/CoEgd4rncrex0ObSfulOJ6U7ZaKTKIseq1FElHle YZ+0WHfxXQiysgVIY8kcIFw5KdkWRVzMIKla5wSljhRZC7OwpgP53a9bFR/cjRY6CFW/mL V9H50jRGTlsQWUdJg1E878UIzMbGiRVZMs7feDWKZ+Zc3xAFEs2kZGULTW2p4Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hK4rL0VlBznrW for ; Tue, 11 Aug 2026 08:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30f15 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 08:42:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 82255ae91399 - stable/14 - pf: check if a group has a kif before dereferencing it List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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/14 X-Git-Reftype: branch X-Git-Commit: 82255ae9139995c0597246b90c90ba4cf955d3ed Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 08:42:42 +0000 Message-Id: <6a7ae082.30f15.7647210a@gitrepo.freebsd.org> The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=82255ae9139995c0597246b90c90ba4cf955d3ed commit 82255ae9139995c0597246b90c90ba4cf955d3ed Author: Kristof Provost AuthorDate: 2025-09-02 08:46:26 +0000 Commit: Kristof Provost CommitDate: 2026-08-11 08:34:13 +0000 pf: check if a group has a kif before dereferencing it It's possible for interface groups to not have had a pfi_kkif assigned to them, so before we pass that pointer to pfi_kkif_update() we must check if it's actually set. We've seen panics such as this, where we get an address update for an interface that belongs to a group without associated pfi_kkif: Tracing pid 12 tid 100034 td 0xfffff80100d2a000 kdb_enter() at kdb_enter+0x33/frame 0xfffffe0067eed340 panic() at panic+0x43/frame 0xfffffe0067eed3a0 trap_pfault() at trap_pfault+0x3c9/frame 0xfffffe0067eed3f0 calltrap() at calltrap+0x8/frame 0xfffffe0067eed3f0 --- trap 0xc, rip = 0xffffffff8102ebd5, rsp = 0xfffffe0067eed4c0, rbp = 0xfffffe0067eed500 --- pfi_kkif_update() at pfi_kkif_update+0x15/frame 0xfffffe0067eed500 pfi_kkif_update() at pfi_kkif_update+0x1fc/frame 0xfffffe0067eed550 pfi_ifaddr_event() at pfi_ifaddr_event+0x82/frame 0xfffffe0067eed5a0 srcaddr_change_event() at srcaddr_change_event+0xa7/frame 0xfffffe0067eed610 in6_update_ifa() at in6_update_ifa+0xd52/frame 0xfffffe0067eed790 in6_ifadd() at in6_ifadd+0x29a/frame 0xfffffe0067eed8b0 nd6_ra_input() at nd6_ra_input+0xf65/frame 0xfffffe0067eeda90 icmp6_input() at icmp6_input+0x3c8/frame 0xfffffe0067eedc10 ip6_input() at ip6_input+0xa15/frame 0xfffffe0067eedcf0 sppp_input() at sppp_input+0x502/frame 0xfffffe0067eedd80 pppoe_data_input() at pppoe_data_input+0x1e7/frame 0xfffffe0067eeddf0 swi_net() at swi_net+0x128/frame 0xfffffe0067eede60 ithread_loop() at ithread_loop+0x239/frame 0xfffffe0067eedef0 fork_exit() at fork_exit+0x7b/frame 0xfffffe0067eedf30 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0067eedf30 Note that pf doesn't assign pfi_kkif objects to groups created before pf has fully started (see V_pf_vnet_active check in pfi_attach_group_event()), which is one possible way for this to happen. Reported by: garga Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit dc0cf0648c8d28ab4914c798a4cff8256ae94ee5) --- sys/netpfil/pf/pf_if.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c index 650a7e4db799..3c5bcc95f7cf 100644 --- a/sys/netpfil/pf/pf_if.c +++ b/sys/netpfil/pf/pf_if.c @@ -610,8 +610,10 @@ pfi_kkif_update(struct pfi_kkif *kif) /* again for all groups kif is member of */ if (kif->pfik_ifp != NULL) { CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) - pfi_kkif_update((struct pfi_kkif *) - ifgl->ifgl_group->ifg_pf_kif); + if (ifgl->ifgl_group->ifg_pf_kif) { + pfi_kkif_update((struct pfi_kkif *) + ifgl->ifgl_group->ifg_pf_kif); + } } } From nobody Tue Aug 11 08:42: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 4hK4rM5b11z6XCB4 for ; Tue, 11 Aug 2026 08:42: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK4rM2VQyz43RG for ; Tue, 11 Aug 2026 08:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M2ZkhQWLlYa769XvFpwvmMFHQVjzuVLzCIUVusievyU=; b=GslKaVmlVFI8bE2t/LGpmEiSN+CqdxDkIOlbS2KikZdxCUZkIVdEjoxMwfHn784SAc4+Bm Cd7m/DaL1yJA7xBFg7Ltjjf96YrHZT0kKFQY1s8Pt89eT4CgEYSwbRM+pMsanYGuZ2kAmF Tkdf3YKRtT1AFjxYVI/BEROCoONoyPHFqrZCarRnEa46Jdl9RV8tIWVas8AwNg+cloAI0o 9cRXudWABmuoL05+jLB9O/Hv5Q8HT42Gqhnl59NF8tebsVntkI/RhA/R508XCA25AwAH0y 2antrWpGswd3MXGgD0hGcWVPMcwMvfwaEQ6adirOhaLPIOzT9Y4QuIJS5Z0J7Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786437763; a=rsa-sha256; cv=none; b=fLMxQNKvNlFLTXyo9URM+I6qiaQwYmflOSwQpHN4ZFbwASGNXIxjVzbwQeX3EcdtVe5XYJ H77KbBS9KYbhzUUB+hhov2RIySOShDB7IVcA5RWfuJf8NYsSC4JJ78DgslcMPqg2qoELG6 YCedJFluvrufPFqL7bUG/UNTexaeVki6CqHZHUfss7UQjlVJwPEBFBrFF+Qiaoco4GdVEc 71ESX8LjDXQKcs4Do5p8mIdOs4df6Wsl0JZJ5X2eHhTyGVqMcZSboW/FwVqzRLrRHCspJq lgiu6OJ2XFr9wREXjLScLCnLFI7FXbaZl6DqHOkLNXt+P7yJadwWM+io0/5MHQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786437763; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M2ZkhQWLlYa769XvFpwvmMFHQVjzuVLzCIUVusievyU=; b=OtQOtVCEixYYiXw3CEnFT7VuHi5C5DLfMj48B80pqiQE7qxV4nNODFTDA9nNTpP7qeb+XD 5pgOiqLTPEqcb356bW1kYgQw2aQJeuPTTSXjltOa/DKZJnRzlnq7dUVpYITOr/wy7O/qty qCeWHxYyiINGK8tC+mMoXpfSs44B5v2lFpMUysOkqtRBMntzofUo79mSjLI8nYaJRGfVqr fhoa+Y7N+sk5lBf1MXhKtCPqUgiyI6DWPPD6G+aMPtka3AY7wkEcevSBYk4MulQyUNPIet hAPF0EAf4oxmIQZpwfoQck8yGydeuhrmDYrHb/mi5Fj9S+U1pkXYvywq5vsAHQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hK4rM1LVGznrX for ; Tue, 11 Aug 2026 08:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30eaf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 08:42:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 71ac7ff5d6f9 - stable/14 - pf: attempt to handle overlapping group and interface names List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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/14 X-Git-Reftype: branch X-Git-Commit: 71ac7ff5d6f97d0f49b72922bcaca191ff7677d2 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 08:42:43 +0000 Message-Id: <6a7ae083.30eaf.343d69b2@gitrepo.freebsd.org> The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=71ac7ff5d6f97d0f49b72922bcaca191ff7677d2 commit 71ac7ff5d6f97d0f49b72922bcaca191ff7677d2 Author: Kristof Provost AuthorDate: 2026-08-03 14:05:28 +0000 Commit: Kristof Provost CommitDate: 2026-08-11 08:34:13 +0000 pf: attempt to handle overlapping group and interface names pf assumes that network groups and network interfaces share a namespace (that is, a name is unused, a group or an interface, never both a the same time). Unfortunately this assumption was broken when interface renaming was introduced. Attempt to cope with this rather than panicking. Note that this is a band-aid, not a full solution. The correct fix is for the network stack to go back to enforcing a single namespace for groups and interfaces. PR: 297220 Reported by: Robert Morris MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit d2a5b5a86a92e86f77737273ab4b2e99da63c21d) --- sys/netpfil/pf/pf_if.c | 19 +++++++++++++------ tests/sys/netpfil/pf/names.sh | 23 +++++++++++++++++++++++ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/sys/netpfil/pf/pf_if.c b/sys/netpfil/pf/pf_if.c index 3c5bcc95f7cf..a5f26b5624bd 100644 --- a/sys/netpfil/pf/pf_if.c +++ b/sys/netpfil/pf/pf_if.c @@ -608,12 +608,19 @@ pfi_kkif_update(struct pfi_kkif *kif) } /* again for all groups kif is member of */ - if (kif->pfik_ifp != NULL) { - CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) - if (ifgl->ifgl_group->ifg_pf_kif) { - pfi_kkif_update((struct pfi_kkif *) - ifgl->ifgl_group->ifg_pf_kif); - } + if (kif->pfik_ifp == NULL) + return; + + CK_STAILQ_FOREACH(ifgl, &kif->pfik_ifp->if_groups, ifgl_next) { + if (strcmp(ifgl->ifgl_group->ifg_group, kif->pfik_name) == 0) { + printf("pf: WARNING conflicting group / interface name %s\n", + kif->pfik_name); + continue; + } + if (ifgl->ifgl_group->ifg_pf_kif) { + pfi_kkif_update((struct pfi_kkif *) + ifgl->ifgl_group->ifg_pf_kif); + } } } diff --git a/tests/sys/netpfil/pf/names.sh b/tests/sys/netpfil/pf/names.sh index c6f2a06c15f9..eb5c9a2a6ac5 100644 --- a/tests/sys/netpfil/pf/names.sh +++ b/tests/sys/netpfil/pf/names.sh @@ -134,9 +134,32 @@ start_number_cleanup() pft_cleanup } +atf_test_case "overlap" "cleanup" +overlap_head() +{ + atf_set descr 'Create a group and an interface with the same name' + atf_set require.user root +} + +overlap_body() +{ + pft_init + + epair=$(vnet_mkepair) + # Overlap with the implicit 'epair' group. + # See PR 297220, this can panic. + ifconfig ${epair}a name epair +} + +overlap_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "names" atf_add_test_case "group" atf_add_test_case "start_number" + atf_add_test_case "overlap" } From nobody Tue Aug 11 11:05: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 4hK81d5pyKz6k4b1 for ; Tue, 11 Aug 2026 11:05: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK81d530cz3Q3H for ; Tue, 11 Aug 2026 11:05:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786446357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RrDeD+6rgMlLUl+7HaNpAqdMKiIoDEw2q38bkyhzsH4=; b=SdKsafqsdZYWrqYJSGZK60XOPbQud++U34eCPHCiqf6q7VQYhLJU10bRhELdHVpKgzLZA8 ttX5I+hk7VgzdjopirGpg4ci95hnk00JOxCmFr4SPfoZIr2PkLAGq1/CXVLJsgTaWy+OGa vva+NWYGj3JrVWOf4JfPe0i8LsreMGOVYuXoVUibzDnHs3lzHAqcHiE+nH6k6xYHWx+QZS AjhnTwnNf4UTFld94ZNqaLkwVuFd1zi063vQDIDnyTIoaU4+yG+BIOogiqRsR3/b4LcR2Q aYQfMOkqePWZsPiiixbFFrEdg6GxX16L1eU15sp45Q58hQsytmypRYEsIzDxHA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786446357; a=rsa-sha256; cv=none; b=q/Eu11dWlo/GrbuwB4TcMdGF9m2SgTGCA4fWZCYp9HeAnkm934A4I092dt9wm/qere1IZG gEe4Dr8vjeo1/JKuYaHQZUWkyJlag1UyZGFfp5lx4K9rlTq12TK1Sbf0uob7GnrSThyyBb Z0hDnAW1w1P1u7vwOyB1Tbc7gxY7I8kcdttv2I9mALcb8Bi9JiHNrDPgCjYXx8XHgK9Iuw 4F4t+GEw26tOR2afff1h/0OckwhOysJXGfOTXd222+0bdrU6Vg29Qa0nF46Y0Ch2Oog5IP QanjlTXL80fXT8ZKp1yViNR2vwOn/OAQSMUqHfRe9cfdWJ9rd08jTrQ33T/ZAQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786446357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RrDeD+6rgMlLUl+7HaNpAqdMKiIoDEw2q38bkyhzsH4=; b=e8+0avEDsQiH1oPTyeoYTb+nFeiQvv7JQ5UmmcI6iYxxNS7IyL7CzprSBce7idi3r/i3zb fS0UbLDyzgRx8u3uDOtCG+HNy8SNPJn0qShKb1A4bO5wIwdeB+6fcpddM2X7LuTsfW9YGw Be/zlCf3BorbozWaM2SlI5osEfIp1Gl9OxVZ82cx+dVSsV1JnaCFQPStX1VAqJ0eZCS/se 787eQBBlmEtNFE8tRL7H/TKcP8bDvIR8wi+JAsn11Ru3cg6Pg1Jj9SZFdTJMppvywUr3NV FMfCaHDOJX+kzMaEVVJyfnLyU/vxVY7B7gqIwPpROTBnnd47SZMvOGcWenSosg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hK81d3jKQzsh7 for ; Tue, 11 Aug 2026 11:05:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f5a2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 11:05:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e84f15568e42 - stable/15 - autofs_lookup(): busy the mount point around autofs_trigger() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: e84f15568e42027d3452a2813200a3e1449a135a Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 11:05:57 +0000 Message-Id: <6a7b0215.3f5a2.27ed150@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e84f15568e42027d3452a2813200a3e1449a135a commit e84f15568e42027d3452a2813200a3e1449a135a Author: Konstantin Belousov AuthorDate: 2026-08-03 17:41:46 +0000 Commit: Konstantin Belousov CommitDate: 2026-08-11 11:00:02 +0000 autofs_lookup(): busy the mount point around autofs_trigger() PR: 294361 (cherry picked from commit b95a859483f1ac0671bde55c0a2fc46f4db5ba4b) --- sys/fs/autofs/autofs_vnops.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sys/fs/autofs/autofs_vnops.c b/sys/fs/autofs/autofs_vnops.c index e8e47f20166a..5505435c423c 100644 --- a/sys/fs/autofs/autofs_vnops.c +++ b/sys/fs/autofs/autofs_vnops.c @@ -136,16 +136,22 @@ autofs_trigger_vn(struct vnode *vp, const char *path, int pathlen, struct vnode **newvp) { struct autofs_node *anp; + struct mount *mp; int error, lock_flags; anp = vp->v_data; /* - * Release the vnode lock, so that other operations, in partcular - * mounting a filesystem on top of it, can proceed. Increase use - * count, to prevent the vnode from being deallocated and to prevent - * filesystem from being unmounted. + * Release the vnode lock, so that other operations, in + * particular mounting a filesystem on top of it, can proceed. + * Increase use count and busy the mount, to prevent the vnode + * from being deallocated and to prevent filesystem from being + * unmounted. */ + mp = vp->v_mount; + error = vfs_busy(mp, MBF_NOWAIT); + if (error != 0) + return (error); lock_flags = VOP_ISLOCKED(vp); vref(vp); VOP_UNLOCK(vp); @@ -165,6 +171,7 @@ mounted: sx_xunlock(&autofs_softc->sc_lock); vn_lock(vp, lock_flags | LK_RETRY); vunref(vp); + vfs_unbusy(mp); if (VN_IS_DOOMED(vp)) { AUTOFS_DEBUG("VIRF_DOOMED"); return (ENOENT); From nobody Tue Aug 11 11:05: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 4hK81g1JX5z6k4J5 for ; Tue, 11 Aug 2026 11:05: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hK81f5hY4z3Pw5 for ; Tue, 11 Aug 2026 11:05:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786446358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6yF/AHs2e3WIAjZTTHZxEcrN1Gw1NJNVKrQsjt4JW5I=; b=WwMSAFRJf8g2dIHT197GRkaeF2bPrgQ4vGvZhBTwcu05bPioXxzGYQu8+aH4gkMoj33Tou jgYKHivIDXi1K+hZHXiE/utMB8YPaBrtR4tAXJzrNeL4ZNYLioCISiD0LowYmUxXGCJzS/ 3fDW7B10sac/lID9TKjyrAP64hwHqhkV9l6Edidlu+SWTx1TVg2HcRLxhAS9zFJPjQA5dm 0whxdB99OMqKLLwfZkLEYEXih8MoH8vHTJGXWxGFizJDY7xk+QTtZiYnf/M+YboiYTAtOL eZVt6e8fA1dX7LK7a+SDcfcoV2e8eIbJBm4HObKXTLgKwQAOGDLVwztj2b6/RQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786446358; a=rsa-sha256; cv=none; b=Le1wBoOZ1aD6Tu3K+gbdukovayzVWVsy0tIueoVZuFgV/wOBli6ckUuoDBQHSc8imQzn8X i4wLxUwvJcyn+TSG1XEgnrbH1+ictewr41pmDPnlWi/w/3mRiYfDilN05s8KYNC+X72apB MKFUFgW3YwxSilIJFlgjNcaa38KLRCE6bPgziF6gaIVK6hPYShHHyKIsbA00WfRYyrZg7H sYDXCdbDZv5mwutRuI7CyRA+bpBNIM+B9+9tSztrb6grNByHnILy82RQ8xUV3WjiPLhf+Z kH1HgMaoo3RZjqctBv4FfZAmQNsXvTpblwWO71HrswlwvNOrZQnSIfBTaysujQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786446358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6yF/AHs2e3WIAjZTTHZxEcrN1Gw1NJNVKrQsjt4JW5I=; b=ZgAYPBP/ZEzNenK04DfxmQfabhxS1FjMokVRK8FKOXPR6RWg//fjfjmBVzgOH4wwQqAsCF ITJOYZUVyMWu1g5YWv6HA3KTPy3hMyGhTruJJ/Zjo6a2cNY9+l0Vynhk21hh09Igp8CR/7 lGgC6ofG9mmCkhvOed9mePQkbLqtbgQSnAVZakeDlmioeeLyj02omViQ5W4iS3lZEHEo6+ h2KZDvAfrDI71YIPq/AiQz24rJDJvv5EZa2gR4JyWcULEWLrJV55TmVgtI+eF61arDFQHC k295q2NH+cSvXxqt2zpEkq1t/I4y8knlA0K6pHYqMB75SXMWfTlAPgglu+xBpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hK81f49Cczsh9 for ; Tue, 11 Aug 2026 11:05:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fcab by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 11:05:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 0484b6a01a0e - stable/15 - autofs: try to avoid waiting for timeouts of in-flight requests for forced unmounts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 0484b6a01a0e4eab1c77f7fb7c65eb64ad5dd408 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 11:05:58 +0000 Message-Id: <6a7b0216.3fcab.836379@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0484b6a01a0e4eab1c77f7fb7c65eb64ad5dd408 commit 0484b6a01a0e4eab1c77f7fb7c65eb64ad5dd408 Author: Konstantin Belousov AuthorDate: 2026-08-04 06:26:56 +0000 Commit: Konstantin Belousov CommitDate: 2026-08-11 11:00:02 +0000 autofs: try to avoid waiting for timeouts of in-flight requests for forced unmounts (cherry picked from commit d3c3a705b5e6689798057b764713bfc0e3b69f6a) --- sys/fs/autofs/autofs_vfsops.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/sys/fs/autofs/autofs_vfsops.c b/sys/fs/autofs/autofs_vfsops.c index 473a0b2280ac..3da9909b6c3e 100644 --- a/sys/fs/autofs/autofs_vfsops.c +++ b/sys/fs/autofs/autofs_vfsops.c @@ -109,6 +109,33 @@ autofs_mount(struct mount *mp) return (0); } +/* + * Try to abort any requests currently in flight. This is not + * strictly necessary, the strong pass is done after all vnodes are + * reclaimed, and does not prevent new requests from queueing. But + * doing it now should practically avoid waiting for timeouts because + * each in-flight requests busies the mount point, which makes + * unmount() to wait for it to drain. + */ +static void +autofs_purge(struct mount *mp) +{ + struct autofs_mount *amp; + struct autofs_request *ar; + + amp = VFSTOAUTOFS(mp); + sx_xlock(&autofs_softc->sc_lock); + TAILQ_FOREACH(ar, &autofs_softc->sc_requests, ar_next) { + if (ar->ar_mount != amp) + continue; + ar->ar_error = ENXIO; + ar->ar_done = true; + ar->ar_in_progress = false; + } + sx_xunlock(&autofs_softc->sc_lock); + cv_broadcast(&autofs_softc->sc_cv); +} + static int autofs_unmount(struct mount *mp, int mntflags) { @@ -208,6 +235,7 @@ static struct vfsops autofs_vfsops = { .vfs_fhtovp = NULL, /* XXX */ .vfs_mount = autofs_mount, .vfs_unmount = autofs_unmount, + .vfs_purge = autofs_purge, .vfs_root = autofs_root, .vfs_statfs = autofs_statfs, .vfs_init = autofs_init, From nobody Tue Aug 11 18:24: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 4hKKlZ5jdnz6p74m for ; Tue, 11 Aug 2026 18:24: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKKlZ53TVz3fgN for ; Tue, 11 Aug 2026 18:24:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fy9dFAvl37SvM/Gwims3ahNcG3BdnphntFhBnh1o9mE=; b=bd7mZPP5Hsdd/NFP6ylN8ltMN3PZ76CvS29MaWEzTUDOavcSKiFFxbWqVLv4/BtpiyYK83 Wgum45rwEeSy0uc5itSt6MeTFpR7mlJKNPOELwqmuWo6ohczq53dokWSTanEeIEku+2cC4 PxuzWTEIl1zAFTBO5iPnrNCuc9gjBudoyKv3eVzJRu1clNS9eI+EAaqr75bIkw5FldKlhq SKp7CMkU6GoMoYlPwqf0PuRzIr8ZrOh9X5NJyqcz397UFSm9MdmVmXWX56Y0YcQzMFcH41 CH9WesIb8UnFh5Vf8hty9r87Vr4wWUuziXaNsiUwtItIOdP/VmjsAa87Z50R1A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786472666; a=rsa-sha256; cv=none; b=XT6zGlEkHUEwjXH0kFo9rpL5Qpl5rGKK/EgHj0kXgONxIU53NEz6ZIy3rSL7pIUgkl12Hp M4T/64tQc54CDSrQPId9OymD3XMBttx0XewG5knZrzeriK+JOpeMcTZEDju+fpf80p1Ut8 RPAEl0lhCK9aGKBhUVEyNHoaJSw4xr/PStf0avcnfg4xbEsmWE1H3bjP3u8CVobfFzxc4F ssh2e3Lh9renRYZzQn8+rSoBblOQXJ3ySsL+i/62OFCTQjZ1TBMHFOB5ykooX78Ln+8L24 Hr6FIyWw9fOrvVj/5KI2eSX8Ms2hWCarbXS25LPvMODFMG9qvm5yDccOOYXgLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Fy9dFAvl37SvM/Gwims3ahNcG3BdnphntFhBnh1o9mE=; b=vU8zBjxpXqwSwPXWz11WfoUq4MOn7qliLwtPbtoUyhuvhjvzPSvcFgBCNs58yCDOOkf8PR keHsbRNHzy8JPmLSIlOacVSo7M/XLD0TC20/T+XFo+N/FtSPUA74vtNKvmT3zHfN2bo8Lx D5yMloeW1m961actm7NoWi1elaxp4hOcxt2W98yl5Yxra7OEq4pdqpr+jKIK0xdUsvPpNh 1jEabn871KBQ1wk9ejpgECZgMsc0CjfKsVD7Sf1tMlV95t9GrI+HPjEuxpfRTko/L/km8H V/Xv/qArDmIYfemAlZFZsqurgQr5gNS8xgcpRbbnBQL91frcJvSuss1tawcyEg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKKlZ45kzz15wd for ; Tue, 11 Aug 2026 18:24:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20683 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 18:24:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 7af4af4ddf13 - stable/15 - sound: Stop using legacy u_int types List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 7af4af4ddf13b52713d163df17402d4b2423d325 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 18:24:26 +0000 Message-Id: <6a7b68da.20683.73002fe2@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=7af4af4ddf13b52713d163df17402d4b2423d325 commit 7af4af4ddf13b52713d163df17402d4b2423d325 Author: Christos Margiolis AuthorDate: 2026-07-23 21:05:42 +0000 Commit: Christos Margiolis CommitDate: 2026-08-11 18:21:37 +0000 sound: Stop using legacy u_int types No functional change intended. Sponsored by: The FreeBSD Foundation MFC after: 1 week (cherry picked from commit 95439b803fce86958e1db1927a8405bf939edda4) --- sys/dev/sound/macio/aoa.c | 26 ++--- sys/dev/sound/macio/davbus.c | 58 +++++----- sys/dev/sound/macio/i2s.c | 28 ++--- sys/dev/sound/macio/onyx.c | 10 +- sys/dev/sound/macio/snapper.c | 14 +-- sys/dev/sound/macio/tumbler.c | 14 +-- sys/dev/sound/pci/als4000.c | 92 ++++++++-------- sys/dev/sound/pci/cmi.c | 96 ++++++++--------- sys/dev/sound/pci/cs4281.c | 96 ++++++++--------- sys/dev/sound/pci/csa.c | 36 +++---- sys/dev/sound/pci/csamidi.c | 4 +- sys/dev/sound/pci/csapcm.c | 30 +++--- sys/dev/sound/pci/csareg.h | 4 +- sys/dev/sound/pci/csavar.h | 16 +-- sys/dev/sound/pci/emu10k1.c | 130 +++++++++++----------- sys/dev/sound/pci/emu10kx-pcm.c | 10 +- sys/dev/sound/pci/envy24.c | 214 ++++++++++++++++++------------------- sys/dev/sound/pci/envy24ht.c | 200 +++++++++++++++++----------------- sys/dev/sound/pci/fm801.c | 46 ++++---- sys/dev/sound/pci/hda/hdaa.c | 2 +- sys/dev/sound/pci/maestro3.c | 168 ++++++++++++++--------------- sys/dev/sound/pci/neomagic-coeff.h | 2 +- sys/dev/sound/pci/neomagic.c | 68 ++++++------ sys/dev/sound/pci/solo.c | 62 +++++------ sys/dev/sound/pci/spicds.c | 2 +- sys/dev/sound/pci/t4dwave.c | 82 +++++++------- sys/dev/sound/pci/via82c686.c | 32 +++--- sys/dev/sound/pci/vibes.c | 98 ++++++++--------- sys/dev/sound/pcm/ac97.c | 58 +++++----- sys/dev/sound/pcm/ac97.h | 18 ++-- sys/dev/sound/pcm/ac97_if.m | 6 +- sys/dev/sound/pcm/buffer.c | 22 ++-- sys/dev/sound/pcm/buffer.h | 30 +++--- sys/dev/sound/pcm/channel.c | 42 ++++---- sys/dev/sound/pcm/channel.h | 32 +++--- sys/dev/sound/pcm/channel_if.m | 28 ++--- sys/dev/sound/pcm/dsp.c | 2 +- sys/dev/sound/pcm/feeder.c | 34 +++--- sys/dev/sound/pcm/feeder.h | 8 +- sys/dev/sound/pcm/feeder_if.m | 4 +- sys/dev/sound/pcm/mixer.c | 56 +++++----- sys/dev/sound/pcm/mixer.h | 44 ++++---- sys/dev/sound/pcm/mixer_if.m | 4 +- sys/dev/sound/pcm/sound.h | 4 +- 44 files changed, 1016 insertions(+), 1016 deletions(-) diff --git a/sys/dev/sound/macio/aoa.c b/sys/dev/sound/macio/aoa.c index e0a6206c19a6..ff8f17224384 100644 --- a/sys/dev/sound/macio/aoa.c +++ b/sys/dev/sound/macio/aoa.c @@ -60,20 +60,20 @@ struct aoa_dma { bus_dma_tag_t tag; /* bus_dma tag */ struct pcm_channel *pcm; /* PCM channel */ struct snd_dbuf *buf; /* PCM buffer */ - u_int slots; /* # of slots */ - u_int slot; /* current slot */ - u_int bufsz; /* buffer size */ - u_int blksz; /* block size */ + unsigned int slots; /* # of slots */ + unsigned int slot; /* current slot */ + unsigned int bufsz; /* buffer size */ + unsigned int blksz; /* block size */ int running; }; static void aoa_dma_set_program(struct aoa_dma *dma) { - u_int32_t addr; + uint32_t addr; int i; - addr = (u_int32_t)dma->buf->buf_addr; + addr = (uint32_t)dma->buf->buf_addr; KASSERT(dma->bufsz == dma->buf->bufsize, ("bad size")); dma->slots = dma->bufsz / dma->blksz; @@ -144,8 +144,8 @@ aoa_dma_delete(struct aoa_dma *dma) free(dma, M_DEVBUF); } -static u_int32_t -aoa_chan_setblocksize(kobj_t obj, void *data, u_int32_t blocksz) +static uint32_t +aoa_chan_setblocksize(kobj_t obj, void *data, uint32_t blocksz) { struct aoa_dma *dma = data; int err, lz; @@ -188,7 +188,7 @@ aoa_chan_setblocksize(kobj_t obj, void *data, u_int32_t blocksz) } static int -aoa_chan_setformat(kobj_t obj, void *data, u_int32_t format) +aoa_chan_setformat(kobj_t obj, void *data, uint32_t format) { DPRINTF(("aoa_chan_setformat: format = %u\n", format)); @@ -198,15 +198,15 @@ aoa_chan_setformat(kobj_t obj, void *data, u_int32_t format) return (0); } -static u_int32_t -aoa_chan_setspeed(kobj_t obj, void *data, u_int32_t speed) +static uint32_t +aoa_chan_setspeed(kobj_t obj, void *data, uint32_t speed) { DPRINTF(("aoa_chan_setspeed: speed = %u\n", speed)); return (44100); } -static u_int32_t +static uint32_t aoa_chan_getptr(kobj_t obj, void *data) { struct aoa_dma *dma = data; @@ -336,7 +336,7 @@ aoa_interrupt(void *xsc) mtx_unlock(&dma->mutex); } -static u_int32_t sc_fmt[] = { +static uint32_t sc_fmt[] = { SND_FORMAT(AFMT_S16_BE, 2, 0), 0 }; diff --git a/sys/dev/sound/macio/davbus.c b/sys/dev/sound/macio/davbus.c index 8e9fe78317cb..de15806e6d5c 100644 --- a/sys/dev/sound/macio/davbus.c +++ b/sys/dev/sound/macio/davbus.c @@ -63,9 +63,9 @@ struct davbus_softc { struct resource *reg; struct mtx mutex; int device_id; - u_int output_mask; - u_int (*read_status)(struct davbus_softc *, u_int); - void (*set_outputs)(struct davbus_softc *, u_int); + unsigned int output_mask; + unsigned int (*read_status)(struct davbus_softc *, unsigned int); + void (*set_outputs)(struct davbus_softc *, unsigned int); }; static int davbus_probe(device_t); @@ -115,12 +115,12 @@ davbus_probe(device_t self) static int burgundy_init(struct snd_mixer *m); static int burgundy_uninit(struct snd_mixer *m); static int burgundy_reinit(struct snd_mixer *m); -static void burgundy_write_locked(struct davbus_softc *, u_int, u_int); -static void burgundy_set_outputs(struct davbus_softc *d, u_int mask); -static u_int burgundy_read_status(struct davbus_softc *d, u_int status); +static void burgundy_write_locked(struct davbus_softc *, unsigned int, unsigned int); +static void burgundy_set_outputs(struct davbus_softc *d, unsigned int mask); +static unsigned int burgundy_read_status(struct davbus_softc *d, unsigned int status); static int burgundy_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right); -static u_int32_t burgundy_setrecsrc(struct snd_mixer *m, u_int32_t src); +static uint32_t burgundy_setrecsrc(struct snd_mixer *m, uint32_t src); static kobj_method_t burgundy_mixer_methods[] = { KOBJMETHOD(mixer_init, burgundy_init), @@ -200,9 +200,9 @@ burgundy_reinit(struct snd_mixer *m) } static void -burgundy_write_locked(struct davbus_softc *d, u_int reg, u_int val) +burgundy_write_locked(struct davbus_softc *d, unsigned int reg, unsigned int val) { - u_int size, addr, offset, data, i; + unsigned int size, addr, offset, data, i; size = (reg & 0x00FF0000) >> 16; addr = (reg & 0x0000FF00) >> 8; @@ -226,9 +226,9 @@ burgundy_write_locked(struct davbus_softc *d, u_int reg, u_int val) /* Must be called with d->mutex held. */ static void -burgundy_set_outputs(struct davbus_softc *d, u_int mask) +burgundy_set_outputs(struct davbus_softc *d, unsigned int mask) { - u_int x = 0; + unsigned int x = 0; if (mask == d->output_mask) return; @@ -259,8 +259,8 @@ burgundy_set_outputs(struct davbus_softc *d, u_int mask) d->output_mask = mask; } -static u_int -burgundy_read_status(struct davbus_softc *d, u_int status) +static unsigned int +burgundy_read_status(struct davbus_softc *d, unsigned int status) { if (status & 0x4) return (1 << 1); @@ -298,8 +298,8 @@ burgundy_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) return (0); } -static u_int32_t -burgundy_setrecsrc(struct snd_mixer *m, u_int32_t src) +static uint32_t +burgundy_setrecsrc(struct snd_mixer *m, uint32_t src) { return (0); } @@ -311,12 +311,12 @@ burgundy_setrecsrc(struct snd_mixer *m, u_int32_t src) static int screamer_init(struct snd_mixer *m); static int screamer_uninit(struct snd_mixer *m); static int screamer_reinit(struct snd_mixer *m); -static void screamer_write_locked(struct davbus_softc *, u_int, u_int); -static void screamer_set_outputs(struct davbus_softc *d, u_int mask); -static u_int screamer_read_status(struct davbus_softc *d, u_int status); +static void screamer_write_locked(struct davbus_softc *, unsigned int, unsigned int); +static void screamer_set_outputs(struct davbus_softc *d, unsigned int mask); +static unsigned int screamer_read_status(struct davbus_softc *d, unsigned int status); static int screamer_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right); -static u_int32_t screamer_setrecsrc(struct snd_mixer *m, u_int32_t src); +static uint32_t screamer_setrecsrc(struct snd_mixer *m, uint32_t src); static kobj_method_t screamer_mixer_methods[] = { KOBJMETHOD(mixer_init, screamer_init), @@ -372,9 +372,9 @@ screamer_reinit(struct snd_mixer *m) } static void -screamer_write_locked(struct davbus_softc *d, u_int reg, u_int val) +screamer_write_locked(struct davbus_softc *d, unsigned int reg, unsigned int val) { - u_int x; + unsigned int x; KASSERT(val == (val & 0xfff), ("bad val")); @@ -392,9 +392,9 @@ screamer_write_locked(struct davbus_softc *d, u_int reg, u_int val) /* Must be called with d->mutex held. */ static void -screamer_set_outputs(struct davbus_softc *d, u_int mask) +screamer_set_outputs(struct davbus_softc *d, unsigned int mask) { - u_int x; + unsigned int x; if (mask == d->output_mask) { return; @@ -430,8 +430,8 @@ screamer_set_outputs(struct davbus_softc *d, u_int mask) d->output_mask = mask; } -static u_int -screamer_read_status(struct davbus_softc *d, u_int status) +static unsigned int +screamer_read_status(struct davbus_softc *d, unsigned int status) { int headphones; @@ -483,8 +483,8 @@ screamer_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) return (0); } -static u_int32_t -screamer_setrecsrc(struct snd_mixer *m, u_int32_t src) +static uint32_t +screamer_setrecsrc(struct snd_mixer *m, uint32_t src) { return (0); } @@ -539,7 +539,7 @@ davbus_attach(device_t self) bzero(compat, sizeof(compat)); OF_getprop(sc->soundnode, "compatible", compat, sizeof(compat)); - OF_getprop(sc->soundnode, "device-id", &sc->device_id, sizeof(u_int)); + OF_getprop(sc->soundnode, "device-id", &sc->device_id, sizeof(unsigned int)); mtx_init(&sc->mutex, "DAVbus", NULL, MTX_DEF); @@ -575,7 +575,7 @@ static void davbus_cint(void *ptr) { struct davbus_softc *d = ptr; - u_int reg, status, mask; + unsigned int reg, status, mask; mtx_lock(&d->mutex); diff --git a/sys/dev/sound/macio/i2s.c b/sys/dev/sound/macio/i2s.c index 2c134f8f97fe..327fbe5fc0bd 100644 --- a/sys/dev/sound/macio/i2s.c +++ b/sys/dev/sound/macio/i2s.c @@ -87,18 +87,18 @@ struct i2s_softc { phandle_t node; phandle_t soundnode; struct resource *reg; - u_int output_mask; + unsigned int output_mask; struct mtx port_mtx; }; static int i2s_probe(device_t); static int i2s_attach(device_t); static void i2s_postattach(void *); -static int i2s_setup(struct i2s_softc *, u_int, u_int, u_int); +static int i2s_setup(struct i2s_softc *, unsigned int, unsigned int, unsigned int); static void i2s_mute_headphone (struct i2s_softc *, int); static void i2s_mute_lineout (struct i2s_softc *, int); static void i2s_mute_speaker (struct i2s_softc *, int); -static void i2s_set_outputs(void *, u_int); +static void i2s_set_outputs(void *, unsigned int); static struct intr_config_hook *i2s_delayed_attach = NULL; @@ -425,8 +425,8 @@ aoagpio_attach(device_t gpio) /* Number of clock sources we can use. */ #define NCLKS 3 static const struct i2s_clksrc { - u_int cs_clock; - u_int cs_reg; + unsigned int cs_clock; + unsigned int cs_reg; } clksrc[NCLKS] = { {49152000, CLKSRC_49MHz}, {45158400, CLKSRC_45MHz}, @@ -440,11 +440,11 @@ static const struct i2s_clksrc { or greater to the number of bits per frame. */ static int -i2s_setup(struct i2s_softc *sc, u_int rate, u_int wordsize, u_int sclk_fs) +i2s_setup(struct i2s_softc *sc, unsigned int rate, unsigned int wordsize, unsigned int sclk_fs) { - u_int mclk, mdiv, sdiv; - u_int reg = 0, x, wordformat; - u_int i; + unsigned int mclk, mdiv, sdiv; + unsigned int reg = 0, x, wordformat; + unsigned int i; /* Make sure the settings are consistent... */ if ((wordsize * 2) > sclk_fs) @@ -592,7 +592,7 @@ of_find_firstchild_byname(phandle_t node, const char *req_name) return (-1); } -static u_int +static unsigned int gpio_read(enum gpio_ctrl ctrl) { struct aoagpio_softc *sc; @@ -604,10 +604,10 @@ gpio_read(enum gpio_ctrl ctrl) } static void -gpio_write(enum gpio_ctrl ctrl, u_int x) +gpio_write(enum gpio_ctrl ctrl, unsigned int x) { struct aoagpio_softc *sc; - u_int reg; + unsigned int reg; if ((sc = gpio_ctrls[ctrl]) == NULL) return; @@ -622,7 +622,7 @@ gpio_write(enum gpio_ctrl ctrl, u_int x) static void i2s_cint(struct i2s_softc *sc) { - u_int mask = 0; + unsigned int mask = 0; if (gpio_ctrls[HEADPHONE_DETECT] && gpio_ctrls[HEADPHONE_DETECT]->level) @@ -691,7 +691,7 @@ MUTE_CONTROL(headphone, HEADPHONE) MUTE_CONTROL(lineout, LINEOUT) static void -i2s_set_outputs(void *ptr, u_int mask) +i2s_set_outputs(void *ptr, unsigned int mask) { struct i2s_softc *sc = ptr; diff --git a/sys/dev/sound/macio/onyx.c b/sys/dev/sound/macio/onyx.c index 5ba22dd7c495..745f861790db 100644 --- a/sys/dev/sound/macio/onyx.c +++ b/sys/dev/sound/macio/onyx.c @@ -74,7 +74,7 @@ static int onyx_uninit(struct snd_mixer *m); static int onyx_reinit(struct snd_mixer *m); static int onyx_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right); -static u_int32_t onyx_setrecsrc(struct snd_mixer *m, u_int32_t src); +static uint32_t onyx_setrecsrc(struct snd_mixer *m, uint32_t src); static device_method_t onyx_methods[] = { /* Device interface. */ @@ -168,7 +168,7 @@ static const struct onyx_reg onyx_initdata = { static int onyx_write(struct onyx_softc *sc, uint8_t reg, const uint8_t value) { - u_int size; + unsigned int size; uint8_t buf[16]; struct iic_msg msg[] = { @@ -226,7 +226,7 @@ static int onyx_init(struct snd_mixer *m) { struct onyx_softc *sc; - u_int x = 0; + unsigned int x = 0; sc = device_get_softc(mix_getdevinfo(m)); @@ -289,8 +289,8 @@ onyx_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) return (0); } -static u_int32_t -onyx_setrecsrc(struct snd_mixer *m, u_int32_t src) +static uint32_t +onyx_setrecsrc(struct snd_mixer *m, uint32_t src) { return (0); } diff --git a/sys/dev/sound/macio/snapper.c b/sys/dev/sound/macio/snapper.c index ed83990d563b..c68ce20ee0b6 100644 --- a/sys/dev/sound/macio/snapper.c +++ b/sys/dev/sound/macio/snapper.c @@ -100,7 +100,7 @@ static int snapper_uninit(struct snd_mixer *m); static int snapper_reinit(struct snd_mixer *m); static int snapper_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right); -static u_int32_t snapper_setrecsrc(struct snd_mixer *m, u_int32_t src); +static uint32_t snapper_setrecsrc(struct snd_mixer *m, uint32_t src); static device_method_t snapper_methods[] = { /* Device interface. */ @@ -289,7 +289,7 @@ static const char snapper_regsize[] = { }; /* dB = 20 * log (x) table. */ -static u_int snapper_volume_table[100] = { +static unsigned int snapper_volume_table[100] = { 0x00000148, 0x0000015C, 0x00000171, 0x00000186, // -46.0, -45.5, -45.0, -44.5, 0x0000019E, 0x000001B6, 0x000001D0, 0x000001EB, // -44.0, -43.5, -43.0, -42.5, 0x00000209, 0x00000227, 0x00000248, 0x0000026B, // -42.0, -41.5, -41.0, -40.5, @@ -320,7 +320,7 @@ static u_int snapper_volume_table[100] = { static int snapper_write(struct snapper_softc *sc, uint8_t reg, const void *data) { - u_int size; + unsigned int size; uint8_t buf[16]; struct iic_msg msg[] = { @@ -381,7 +381,7 @@ static int snapper_init(struct snd_mixer *m) { struct snapper_softc *sc; - u_int x = 0; + unsigned int x = 0; sc = device_get_softc(mix_getdevinfo(m)); @@ -436,7 +436,7 @@ static int snapper_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) { struct snapper_softc *sc; - u_int l, r; + unsigned int l, r; u_char reg[6]; sc = device_get_softc(mix_getdevinfo(m)); @@ -464,8 +464,8 @@ snapper_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) return (0); } -static u_int32_t -snapper_setrecsrc(struct snd_mixer *m, u_int32_t src) +static uint32_t +snapper_setrecsrc(struct snd_mixer *m, uint32_t src) { return (0); } diff --git a/sys/dev/sound/macio/tumbler.c b/sys/dev/sound/macio/tumbler.c index 89af4434e7fe..0bb619f2fd90 100644 --- a/sys/dev/sound/macio/tumbler.c +++ b/sys/dev/sound/macio/tumbler.c @@ -100,7 +100,7 @@ static int tumbler_uninit(struct snd_mixer *m); static int tumbler_reinit(struct snd_mixer *m); static int tumbler_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right); -static u_int32_t tumbler_setrecsrc(struct snd_mixer *m, u_int32_t src); +static uint32_t tumbler_setrecsrc(struct snd_mixer *m, uint32_t src); static device_method_t tumbler_methods[] = { /* Device interface. */ @@ -250,7 +250,7 @@ const char tumbler_regsize[] = { }; /* dB = 20 * log (x) table. */ -static u_int tumbler_volume_table[100] = { +static unsigned int tumbler_volume_table[100] = { 0x00000148, 0x0000015C, 0x00000171, 0x00000186, // -46.0, -45.5, -45.0, -44.5, 0x0000019E, 0x000001B6, 0x000001D0, 0x000001EB, // -44.0, -43.5, -43.0, -42.5, 0x00000209, 0x00000227, 0x00000248, 0x0000026B, // -42.0, -41.5, -41.0, -40.5, @@ -281,7 +281,7 @@ static u_int tumbler_volume_table[100] = { static int tumbler_write(struct tumbler_softc *sc, uint8_t reg, const void *data) { - u_int size; + unsigned int size; uint8_t buf[16]; struct iic_msg msg[] = { @@ -336,7 +336,7 @@ static int tumbler_init(struct snd_mixer *m) { struct tumbler_softc *sc; - u_int x = 0; + unsigned int x = 0; sc = device_get_softc(mix_getdevinfo(m)); @@ -383,7 +383,7 @@ static int tumbler_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) { struct tumbler_softc *sc; - u_int l, r; + unsigned int l, r; u_char reg[6]; sc = device_get_softc(mix_getdevinfo(m)); @@ -411,8 +411,8 @@ tumbler_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) return (0); } -static u_int32_t -tumbler_setrecsrc(struct snd_mixer *m, u_int32_t src) +static uint32_t +tumbler_setrecsrc(struct snd_mixer *m, uint32_t src) { return (0); } diff --git a/sys/dev/sound/pci/als4000.c b/sys/dev/sound/pci/als4000.c index c6cbd61c927c..0613f3ec2b97 100644 --- a/sys/dev/sound/pci/als4000.c +++ b/sys/dev/sound/pci/als4000.c @@ -65,9 +65,9 @@ struct sc_chinfo { struct sc_info *parent; struct pcm_channel *channel; struct snd_dbuf *buffer; - u_int32_t format, speed, phys_buf, bps; - u_int32_t dma_active:1, dma_was_active:1; - u_int8_t gcr_fifo_status; + uint32_t format, speed, phys_buf, bps; + uint32_t dma_active:1, dma_was_active:1; + uint8_t gcr_fifo_status; int dir; }; @@ -87,7 +87,7 @@ struct sc_info { /* Channel caps */ -static u_int32_t als_format[] = { +static uint32_t als_format[] = { SND_FORMAT(AFMT_U8, 1, 0), SND_FORMAT(AFMT_U8, 2, 0), SND_FORMAT(AFMT_S16_LE, 1, 0), @@ -104,7 +104,7 @@ static struct pcmchan_caps als_caps = { 4000, 44100, als_format, 0 }; /* ------------------------------------------------------------------------- */ /* Register Utilities */ -static u_int32_t +static uint32_t als_gcr_rd(struct sc_info *sc, int index) { bus_space_write_1(sc->st, sc->sh, ALS_GCR_INDEX, index); @@ -118,36 +118,36 @@ als_gcr_wr(struct sc_info *sc, int index, int data) bus_space_write_4(sc->st, sc->sh, ALS_GCR_DATA, data); } -static u_int8_t +static uint8_t als_intr_rd(struct sc_info *sc) { return bus_space_read_1(sc->st, sc->sh, ALS_SB_MPU_IRQ); } static void -als_intr_wr(struct sc_info *sc, u_int8_t data) +als_intr_wr(struct sc_info *sc, uint8_t data) { bus_space_write_1(sc->st, sc->sh, ALS_SB_MPU_IRQ, data); } -static u_int8_t -als_mix_rd(struct sc_info *sc, u_int8_t index) +static uint8_t +als_mix_rd(struct sc_info *sc, uint8_t index) { bus_space_write_1(sc->st, sc->sh, ALS_MIXER_INDEX, index); return bus_space_read_1(sc->st, sc->sh, ALS_MIXER_DATA); } static void -als_mix_wr(struct sc_info *sc, u_int8_t index, u_int8_t data) +als_mix_wr(struct sc_info *sc, uint8_t index, uint8_t data) { bus_space_write_1(sc->st, sc->sh, ALS_MIXER_INDEX, index); bus_space_write_1(sc->st, sc->sh, ALS_MIXER_DATA, data); } static void -als_esp_wr(struct sc_info *sc, u_int8_t data) +als_esp_wr(struct sc_info *sc, uint8_t data) { - u_int32_t tries, v; + uint32_t tries, v; tries = 1000; do { @@ -166,7 +166,7 @@ als_esp_wr(struct sc_info *sc, u_int8_t data) static int als_esp_reset(struct sc_info *sc) { - u_int32_t tries, u, v; + uint32_t tries, u, v; bus_space_write_1(sc->st, sc->sh, ALS_ESP_RST, 1); DELAY(10); @@ -191,10 +191,10 @@ als_esp_reset(struct sc_info *sc) return 1; } -static u_int8_t -als_ack_read(struct sc_info *sc, u_int8_t addr) +static uint8_t +als_ack_read(struct sc_info *sc, uint8_t addr) { - u_int8_t r = bus_space_read_1(sc->st, sc->sh, addr); + uint8_t r = bus_space_read_1(sc->st, sc->sh, addr); return r; } @@ -232,7 +232,7 @@ alschan_init(kobj_t obj, void *devinfo, } static int -alschan_setformat(kobj_t obj, void *data, u_int32_t format) +alschan_setformat(kobj_t obj, void *data, uint32_t format) { struct sc_chinfo *ch = data; @@ -240,8 +240,8 @@ alschan_setformat(kobj_t obj, void *data, u_int32_t format) return 0; } -static u_int32_t -alschan_setspeed(kobj_t obj, void *data, u_int32_t speed) +static uint32_t +alschan_setspeed(kobj_t obj, void *data, uint32_t speed) { struct sc_chinfo *ch = data, *other; struct sc_info *sc = ch->parent; @@ -258,8 +258,8 @@ alschan_setspeed(kobj_t obj, void *data, u_int32_t speed) return speed; } -static u_int32_t -alschan_setblocksize(kobj_t obj, void *data, u_int32_t blocksize) +static uint32_t +alschan_setblocksize(kobj_t obj, void *data, uint32_t blocksize) { struct sc_chinfo *ch = data; struct sc_info *sc = ch->parent; @@ -271,7 +271,7 @@ alschan_setblocksize(kobj_t obj, void *data, u_int32_t blocksize) return blocksize; } -static u_int32_t +static uint32_t alschan_getptr(kobj_t obj, void *data) { struct sc_chinfo *ch = data; @@ -314,10 +314,10 @@ als_set_speed(struct sc_chinfo *ch) #define ALS_16BIT_CMD(x, y) { (x), (y), DSP_DMA16, DSP_CMD_DMAPAUSE_16 } struct playback_command { - u_int32_t pcm_format; /* newpcm format */ - u_int8_t format_val; /* sb16 format value */ - u_int8_t dma_prog; /* sb16 dma program */ - u_int8_t dma_stop; /* sb16 stop register */ + uint32_t pcm_format; /* newpcm format */ + uint8_t format_val; /* sb16 format value */ + uint8_t dma_prog; /* sb16 dma program */ + uint8_t dma_stop; /* sb16 stop register */ } static const playback_cmds[] = { ALS_8BIT_CMD(SND_FORMAT(AFMT_U8, 1, 0), DSP_MODE_U8MONO), ALS_8BIT_CMD(SND_FORMAT(AFMT_U8, 2, 0), DSP_MODE_U8STEREO), @@ -326,9 +326,9 @@ struct playback_command { }; static const struct playback_command* -als_get_playback_command(u_int32_t format) +als_get_playback_command(uint32_t format) { - u_int32_t i, n; + uint32_t i, n; n = sizeof(playback_cmds) / sizeof(playback_cmds[0]); for (i = 0; i < n; i++) { @@ -346,7 +346,7 @@ als_playback_start(struct sc_chinfo *ch) { const struct playback_command *p; struct sc_info *sc = ch->parent; - u_int32_t buf, bufsz, count, dma_prog; + uint32_t buf, bufsz, count, dma_prog; buf = ch->buffer->buf_addr; bufsz = ch->buffer->bufsize; @@ -377,7 +377,7 @@ als_playback_stop(struct sc_chinfo *ch) { const struct playback_command *p; struct sc_info *sc = ch->parent; - u_int32_t active; + uint32_t active; active = ch->dma_active; if (active) { @@ -428,8 +428,8 @@ CHANNEL_DECLARE(alspchan); /* ------------------------------------------------------------------------- */ /* Capture channel implementation */ -static u_int8_t -als_get_fifo_format(struct sc_info *sc, u_int32_t format) +static uint8_t +als_get_fifo_format(struct sc_info *sc, uint32_t format) { switch (format) { case SND_FORMAT(AFMT_U8, 1, 0): @@ -449,7 +449,7 @@ static void als_capture_start(struct sc_chinfo *ch) { struct sc_info *sc = ch->parent; - u_int32_t buf, bufsz, count, dma_prog; + uint32_t buf, bufsz, count, dma_prog; buf = ch->buffer->buf_addr; bufsz = ch->buffer->bufsize; @@ -477,7 +477,7 @@ static int als_capture_stop(struct sc_chinfo *ch) { struct sc_info *sc = ch->parent; - u_int32_t active; + uint32_t active; active = ch->dma_active; if (active) { @@ -528,11 +528,11 @@ CHANNEL_DECLARE(alsrchan); */ struct sb16props { - u_int8_t lreg; - u_int8_t rreg; - u_int8_t bits; - u_int8_t oselect; - u_int8_t iselect; /* left input mask */ + uint8_t lreg; + uint8_t rreg; + uint8_t bits; + uint8_t oselect; + uint8_t iselect; /* left input mask */ } static const amt[SOUND_MIXER_NRDEVICES] = { [SOUND_MIXER_VOLUME] = { 0x30, 0x31, 5, 0x00, 0x00 }, [SOUND_MIXER_PCM] = { 0x32, 0x33, 5, 0x00, 0x00 }, @@ -551,7 +551,7 @@ struct sb16props { static int alsmix_init(struct snd_mixer *m) { - u_int32_t i, v; + uint32_t i, v; for (i = v = 0; i < SOUND_MIXER_NRDEVICES; i++) { if (amt[i].bits) v |= 1 << i; @@ -569,7 +569,7 @@ static int alsmix_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) { struct sc_info *sc = mix_getdevinfo(m); - u_int32_t r, l, v, mask; + uint32_t r, l, v, mask; /* Fill upper n bits in mask with 1's */ mask = ((1 << amt[dev].bits) - 1) << (8 - amt[dev].bits); @@ -597,11 +597,11 @@ alsmix_set(struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) return 0; } -static u_int32_t -alsmix_setrecsrc(struct snd_mixer *m, u_int32_t src) +static uint32_t +alsmix_setrecsrc(struct snd_mixer *m, uint32_t src) { struct sc_info *sc = mix_getdevinfo(m); - u_int32_t i, l, r; + uint32_t i, l, r; for (i = l = r = 0; i < SOUND_MIXER_NRDEVICES; i++) { if (src & (1 << i)) { @@ -635,7 +635,7 @@ static void als_intr(void *p) { struct sc_info *sc = (struct sc_info *)p; - u_int8_t intr, sb_status; + uint8_t intr, sb_status; mtx_lock(&sc->lock); intr = als_intr_rd(sc); @@ -677,7 +677,7 @@ als_intr(void *p) static int als_init(struct sc_info *sc) { - u_int32_t i, v; + uint32_t i, v; /* Reset Chip */ if (als_esp_reset(sc)) { diff --git a/sys/dev/sound/pci/cmi.c b/sys/dev/sound/pci/cmi.c index 4ff58cb04b8e..58ab961b74e1 100644 --- a/sys/dev/sound/pci/cmi.c +++ b/sys/dev/sound/pci/cmi.c @@ -102,8 +102,8 @@ struct sc_chinfo { struct sc_info *parent; struct pcm_channel *channel; struct snd_dbuf *buffer; - u_int32_t fmt, spd, phys_buf, bps; - u_int32_t dma_active:1, dma_was_active:1; + uint32_t fmt, spd, phys_buf, bps; + uint32_t dma_active:1, dma_was_active:1; int dir; }; @@ -132,7 +132,7 @@ struct sc_info { /* Channel caps */ -static u_int32_t cmi_fmt[] = { +static uint32_t cmi_fmt[] = { SND_FORMAT(AFMT_U8, 1, 0), SND_FORMAT(AFMT_U8, 2, 0), SND_FORMAT(AFMT_S16_LE, 1, 0), @@ -145,7 +145,7 @@ static struct pcmchan_caps cmi_caps = {5512, 48000, cmi_fmt, 0}; /* ------------------------------------------------------------------------- */ /* Register Utilities */ -static u_int32_t +static uint32_t cmi_rd(struct sc_info *sc, int regno, int size) { switch (size) { @@ -162,7 +162,7 @@ cmi_rd(struct sc_info *sc, int regno, int size) } static void -cmi_wr(struct sc_info *sc, int regno, u_int32_t data, int size) +cmi_wr(struct sc_info *sc, int regno, uint32_t data, int size) { switch (size) { case 1: @@ -179,9 +179,9 @@ cmi_wr(struct sc_info *sc, int regno, u_int32_t data, int size) static void cmi_partial_wr4(struct sc_info *sc, - int reg, int shift, u_int32_t mask, u_int32_t val) + int reg, int shift, uint32_t mask, uint32_t val) { - u_int32_t r; + uint32_t r; r = cmi_rd(sc, reg, 4); r &= ~(mask << shift); @@ -190,9 +190,9 @@ cmi_partial_wr4(struct sc_info *sc, } static void -cmi_clr4(struct sc_info *sc, int reg, u_int32_t mask) +cmi_clr4(struct sc_info *sc, int reg, uint32_t mask) { - u_int32_t r; + uint32_t r; r = cmi_rd(sc, reg, 4); r &= ~mask; @@ -200,9 +200,9 @@ cmi_clr4(struct sc_info *sc, int reg, u_int32_t mask) } static void -cmi_set4(struct sc_info *sc, int reg, u_int32_t mask) +cmi_set4(struct sc_info *sc, int reg, uint32_t mask) { - u_int32_t r; + uint32_t r; r = cmi_rd(sc, reg, 4); r |= mask; @@ -219,7 +219,7 @@ static int cmi_rates[] = {5512, 8000, 11025, 16000, /* cmpci_rate_to_regvalue returns sampling freq selector for FCR1 * register - reg order is 5k,11k,22k,44k,8k,16k,32k,48k */ -static u_int32_t +static uint32_t cmpci_rate_to_regvalue(int rate) { int i, r; @@ -237,7 +237,7 @@ cmpci_rate_to_regvalue(int rate) } static int -cmpci_regvalue_to_rate(u_int32_t r) +cmpci_regvalue_to_rate(uint32_t r) { int i; @@ -251,14 +251,14 @@ cmpci_regvalue_to_rate(u_int32_t r) * playback or capture. We use ch0 for playback and ch1 for capture. */ static void -cmi_dma_prog(struct sc_info *sc, struct sc_chinfo *ch, u_int32_t base) +cmi_dma_prog(struct sc_info *sc, struct sc_chinfo *ch, uint32_t base) { - u_int32_t s, i, sz; + uint32_t s, i, sz; ch->phys_buf = ch->buffer->buf_addr; cmi_wr(sc, base, ch->phys_buf, 4); - sz = (u_int32_t)ch->buffer->bufsize; + sz = (uint32_t)ch->buffer->bufsize; s = sz / ch->bps - 1; cmi_wr(sc, base + 4, s, 2); @@ -279,10 +279,10 @@ cmi_ch0_start(struct sc_info *sc, struct sc_chinfo *ch) ch->dma_active = 1; } -static u_int32_t +static uint32_t cmi_ch0_stop(struct sc_info *sc, struct sc_chinfo *ch) { - u_int32_t r = ch->dma_active; + uint32_t r = ch->dma_active; cmi_clr4(sc, CMPCI_REG_INTR_CTRL, CMPCI_REG_CH0_INTR_ENABLE); cmi_clr4(sc, CMPCI_REG_FUNC_0, CMPCI_REG_CH0_ENABLE); @@ -304,10 +304,10 @@ cmi_ch1_start(struct sc_info *sc, struct sc_chinfo *ch) ch->dma_active = 1; } -static u_int32_t +static uint32_t cmi_ch1_stop(struct sc_info *sc, struct sc_chinfo *ch) { - u_int32_t r = ch->dma_active; + uint32_t r = ch->dma_active; cmi_clr4(sc, CMPCI_REG_INTR_CTRL, CMPCI_REG_CH1_INTR_ENABLE); cmi_clr4(sc, CMPCI_REG_FUNC_0, CMPCI_REG_CH1_ENABLE); @@ -319,7 +319,7 @@ cmi_ch1_stop(struct sc_info *sc, struct sc_chinfo *ch) static void *** 5723 LINES SKIPPED *** From nobody Tue Aug 11 18:24: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 4hKKlc0vdcz6p6tK for ; Tue, 11 Aug 2026 18:24: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKKlb5llzz3fZP for ; Tue, 11 Aug 2026 18:24:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bpHNeNsVO9NLBqwQ4yds6uynYBr0Zr1b5SIpH4nO404=; b=sIh2aVykIYisrhxdidfX+2vbACk/fJVrb8PKaRXEE9YDvSmkMPHqRAeVToARxT2iEzDWtu j5LFl7wLcnr8CYrEBcCZ5VRHcU0d9pvNmDOy6AOvJC0Kty0PmSbc2aWxacfjnu5UG6r/mv TmLE0YZWIo9Va/TFhTxJKpjJdQPrjzlElINOH1wRvO38y9Tr1iUfiIPUHUci98QRXkA36V nHGgBK542SWxEgjAKvwyvTkR7Ocd/bjhoOnIpgc3sy6/+ZwHGXvbnt5egYfAH6g0py5/+3 ae1AT6KoQV16DmXl6CO4H9c2ln9LqfDMztOFVMYE/iADI6oVTxzZeWtuMSC/oQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786472667; a=rsa-sha256; cv=none; b=kvzO2KdXyNwyjADITURkzXB5un6CuBJehUdrMiAVcu4ti5RZ0mHwiOEapFDswpuUJhqk3l OVv6smmnZkyrEp4RXNj1QtHHhMtNqp9zOqG4XBrkN37I6gS7UcHcgR0aCscH6SQhWf30EZ QvScl7yTOPF69D3opu/M611Kcja0NP1Bz5NBcXj+tQlVlyar8L51H1R+xYVmRqEP2Uitdp PVsa4OzNWnm9TBW5e8AuAigoguvhKLJToalh0/SEQ1PknIuecHhqZOYk1YFqt3dJ5WS/EE yAjCbpYDQk09UN/qUwJPi6ushVRadfhyyTZp2nJYuIPQAMWj1lBqqWXfq2Dfvg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bpHNeNsVO9NLBqwQ4yds6uynYBr0Zr1b5SIpH4nO404=; b=aaClWbCt5Ydj7r/Qjq4+pL+8DdJPrR28bjfyU6dYRTIZUAmyTa0520IyxeM8yv+lOJi0bW t0YP420X6mNj5Dq/H80osXcYdMSGGhjIOlzWRdwTU7C+Ydwc9guckko1M1BIs2h6X+xe/J Y5z3YjapNNKclDoaCf1iexme0AtNqf8vCP+FArvd7Rgdt2duCMCcVPur4JvE6hJSXdrRsa AGzAt9UQHmu2/C4s9obQxv2GMvmSwmvewAaHrKZSggpkRm9WS2mIbLNfdIgIGpTmls5S06 QhOlPWldUamBqruQxm5o4pkX/wAZK4j73ljuSx+bc2rR2P1cLYkvb2DRL7HfXg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKKlb4Vc7z15wf for ; Tue, 11 Aug 2026 18:24:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ebcc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 18:24:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: a5b10ce45d67 - stable/15 - sound: Propagate error value from dsp_make_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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: a5b10ce45d678be3c771c686cc3949db2faf55aa Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 18:24:27 +0000 Message-Id: <6a7b68db.1ebcc.720505b2@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a5b10ce45d678be3c771c686cc3949db2faf55aa commit a5b10ce45d678be3c771c686cc3949db2faf55aa Author: Christos Margiolis AuthorDate: 2026-07-27 14:31:10 +0000 Commit: Christos Margiolis CommitDate: 2026-08-11 18:24:03 +0000 sound: Propagate error value from dsp_make_dev() It is better to propagate it to pcm_register(), and later to the device drivers, than to simply ignore it and return ENXIO. Sponsored by: The FreeBSD Foundation MFC after: 1 week (cherry picked from commit a46c92aad16bf6c9d6c3967c8af3e8b3bdb59cda) --- sys/dev/sound/pcm/dsp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index e030b06d22dc..72dbbf055066 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -148,7 +148,7 @@ dsp_make_dev(device_t dev) if (err != 0) { device_printf(dev, "failed to create dsp%d: error %d", unit, err); - return (ENXIO); + return (err); } return (0); From nobody Tue Aug 11 18:24: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 4hKKld41w2z6p779 for ; Tue, 11 Aug 2026 18:24: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKKlc606tz3fcw for ; Tue, 11 Aug 2026 18:24:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472668; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=giygdnJo0KBB6SEtlnWHjdSduOGsvrcKiWkKC017OKo=; b=wo+gBmcUCo/eCAB2T2mX7DXMX799soCVC1fSFAlg9Mwr/fm7NTtYEIA7A1gWK0lPUk23uW E2t+/RzuIebH+QDPAFHj5qYokfl8TgjUW2nlChj0dCr4lvxoGvAjyGYP3CwrZjgVwCt2dV Dm02lLFW92DH8UJH6pZ7gc5hzNxvEfau7GzRQIWNUHN15nbY/dDEzhGDU27wDER7r0Vmmy av+bJ5AVL/MzDyNDNHZQs2LCfnQzeqw0X6rQwNCDCY+spJLWy6SSN7pAgzc1oE7RrfXzjS nkIBbHCbYIcxCiHHz6LJw4Qt6lK+y10Sxk950mbsKleh0Gp7kap2VyQ85b4VQw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786472668; a=rsa-sha256; cv=none; b=hUTz0/kTH5h+gGJ0pumqs1dsPMiK8hwIpy5n8NK/z3IwgZDmq2UUCG83kunfnk0o/SA8Q1 0Rr13JL+ErZLY3uNmBZ7O/uhLhuORAu2PpFdNSfJeiwgZ6bmHo3YFYTS0rLTUZRsl584rl StNoWCHA6lAhq1OXN9cS2srgDHJK49tutSq2Zv/Kmu2wsZKSUXu+nXLxaYHpQ1BU30FP0d 5cez0O++5ToA9n2D8UKK3J756p8PiOkkT0WKJpUChX8G/nhAOnGJYmhpb5vQRFEHueSIVO IJVORia0yirPv1vQSSIHTJEYPGEPUZliidJ1PB5Mwop9b7/isQU+8hq11M3PoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472668; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=giygdnJo0KBB6SEtlnWHjdSduOGsvrcKiWkKC017OKo=; b=u6PmbUwwpIaN/pvqMxu92r+lpHp5x26RoJ76TebR3d1ENH0tbcwEP56/0I7ymZmlDkzlv9 TQayPY1xDv/JwThxcjYbuHsoFbJiTg9DF6MtT5925n+wVgijgNUTAL/dNi380bOExiUUsb WiXUg//OYGjZR51JeM75aLfXlG8N8X3WrRCqavL/PUEOblyrcTh3T8uDzLVDkE9urLSb8a jJWRZVsQssz0SDYBgn9Fjxlx2h3cmUIikIEz/vQZYgry2KpgzwY/Psqaj6pWFtjKTOYSa+ eE/3k8s89KQhCS4zu/ptZ/GUyZKYQ0alw6UDoDm6BifBroVrI6so0vWn4EysBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKKlc4sjBz15S3 for ; Tue, 11 Aug 2026 18:24:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f59e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 18:24:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: cda2abf4f137 - stable/15 - sound: Add missing newline in dsp_make_dev()'s device_printf() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: cda2abf4f137f4570c940d9b2221ccb8230e0b20 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 18:24:28 +0000 Message-Id: <6a7b68dc.1f59e.169392d8@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=cda2abf4f137f4570c940d9b2221ccb8230e0b20 commit cda2abf4f137f4570c940d9b2221ccb8230e0b20 Author: Christos Margiolis AuthorDate: 2026-07-27 15:52:09 +0000 Commit: Christos Margiolis CommitDate: 2026-08-11 18:24:04 +0000 sound: Add missing newline in dsp_make_dev()'s device_printf() Sponsored by: The FreeBSD Foundation MFC after: 1 week (cherry picked from commit 2a2705a637cd67d0add7fe795fef9b7a722d76bd) --- sys/dev/sound/pcm/dsp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 72dbbf055066..2f0091f67ac1 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -146,7 +146,7 @@ dsp_make_dev(device_t dev) devargs.mda_si_drv1 = sc; err = make_dev_s(&devargs, &sc->dsp_dev, "dsp%d", unit); if (err != 0) { - device_printf(dev, "failed to create dsp%d: error %d", + device_printf(dev, "failed to create dsp%d: error %d\n", unit, err); return (err); } From nobody Tue Aug 11 18:24: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 4hKKlf638Zz6p6pF for ; Tue, 11 Aug 2026 18:24: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKKlf2jJSz3fLr for ; Tue, 11 Aug 2026 18:24:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472670; 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=4uA0TC/zGydx57tmhWhR4ipefaXc7JiwzGsx8VRtt4w=; b=YAfA2Bl0QTxQBwiRTPa+LGPIwZlKxsolrCxEHwWcnj9OFnGnbWAlQsY17VD3Iy0GQak/Dj ZNDFb5bbyJTdGDaORYv/6ZVKt8Quk/janDlrGsHF/WPSyi0mgA9IgmXfn+VsCuakIv858h BJ57x5GODSj2irvIfhWtXIInnoUm4b/pHHKpjAxGfyvimuvUu4+YjO2YIxl8v2G/X8Up2i QuuAkxDODq05QTYsvzhwOrckvvT6GFM35n7pBKhuann0rjqMM4rg/vIKLQ9fWIUai5FDjt INnI8lEYO1s3upovHZCQj51IypwlcE/qEDNteiLHPgvpjZ6BlJHiq/4fpbRauw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786472670; a=rsa-sha256; cv=none; b=QIf6Wd9ikuvDmG+kNVZ0ICkaYXUW+uszYoNt+T02S1xSgpLEw8+vbVby4fyHZvK1LyeJgA zVckWCuSgCA4c6kbeKYh8zLT/beUW64m25DrEvy4N1W2KwZlK97k1NL1m2wsQlexbbCCk/ p/865FkWS0wh0mZNlqMRjSqMfINWrE+5P7P2IcVM2aLLb4Us2eRGkjcr/yB8uRsBIv7F1G E9OOhOOj6chlDBrsvYYXvZY6z/ux0tQQWCxbBR4RfEQElWByYugaomVmdejN5lDpDPM9Qb E4Tbz0asPXmPnpq0xJST6qPyXyD6CUdkcRnCvzjNeQxORow3Zk1LWZ+bV1AgUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472670; 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=4uA0TC/zGydx57tmhWhR4ipefaXc7JiwzGsx8VRtt4w=; b=ZY8XybOrpagEEiZBOOjWDwwgwYdOosuioWTi3y2XGkwpbxLJDdig2ZH8aIuhQhutbslyYE owE5VhV/S12JMZpiwOOaDOk/EJTxXzkYPAnMnnlkfkqZzEQfuILHyhvCrstUlPd2Ve3xHm VD1Qp52x+XkKnUGG6hK1xTTJdDIL+KyTT7UGpXwwrf2bATOCsGTG2sCjlceWuPkW9cz8KG J1mHBkgWMb71XsUNgeQSZX51y7PY3ri30WnRnOW0L9sJFd4+uREIWV0NeTvZLHG6dHatzy 0pkUo8CH/3txD9lmXBWL+81dZg4pc1Xf9IYKois0gW9T2cXLqEwnp5UpK0IHmw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKKld5QVsz15wg for ; Tue, 11 Aug 2026 18:24:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1dcd6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 18:24:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: giacomo From: Christos Margiolis Subject: git: a46b8546b1c8 - stable/15 - cuse: Fix server reference leak in cuse_client_open() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: a46b8546b1c8cafc529024aa87ce82ceb7bf84cb Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 18:24:29 +0000 Message-Id: <6a7b68dd.1dcd6.1cd0a338@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a46b8546b1c8cafc529024aa87ce82ceb7bf84cb commit a46b8546b1c8cafc529024aa87ce82ceb7bf84cb Author: giacomo AuthorDate: 2026-07-15 12:10:54 +0000 Commit: Christos Margiolis CommitDate: 2026-08-11 18:24:04 +0000 cuse: Fix server reference leak in cuse_client_open() If the server is closing (or the device node is going away), or if devfs_set_cdevpriv() fails, cuse_client_open() returns with the server reference taken at the top of the function still held and the newly allocated client still linked on pcs->hcli. Since cuse_client_free() has not been registered as the cdevpriv destructor at that point, nothing ever undoes this work: every open() that races the is_closing window permanently leaks one server reference and one cuse_client. A leaked reference is fatal on server exit: cuse_server_free() busy-waits in an uninterruptible pause("W", hz) loop until pcs->refs drops to 1, which now never happens, so the exiting server process (e.g. virtual_oss(8)) is left wedged in state "D", immune to SIGKILL, cuse.ko is pinned (kldunload hangs too), and only a reboot recovers. Before 634e578ac7b0 the is_closing error path dropped the reference by calling devfs_clear_cdevpriv(), which ran the cuse_client_free() destructor. That commit moved devfs_set_cdevpriv() after the is_closing check to fix the panic paths, but left both error returns without any cleanup. Fix by calling cuse_client_free() directly on both error paths. The client is fully constructed and linked on pcs->hcli at these points, which is exactly the state cuse_client_free() expects. PR: 296291 Fixes: 634e578ac7b0 ("cuse: Fix cdevpriv bugs in cuse_client_open()") Assisted-By: Claude Opus 4.8 (claude-opus-4-8) Signed-off-by: giacomo MFC after: 2 weeks Reviewed by: christos Pull-Request: https://github.com/freebsd/freebsd-src/pull/2324 (cherry picked from commit d83e42234f76504a1ff7f4309ad629b6644bfb16) --- sys/fs/cuse/cuse.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/fs/cuse/cuse.c b/sys/fs/cuse/cuse.c index 8f67c4b5572b..ef786d125c15 100644 --- a/sys/fs/cuse/cuse.c +++ b/sys/fs/cuse/cuse.c @@ -1546,11 +1546,19 @@ cuse_client_open(struct cdev *dev, int fflags, int devtype, struct thread *td) } cuse_server_unlock(pcs); - if (error != 0) + /* + * On error, free the client and unref the server, so that the + * exiting server process does not become unkillable. + */ + if (error != 0) { + cuse_client_free(pcc); return (error); + } - if ((error = devfs_set_cdevpriv(pcc, &cuse_client_free)) != 0) + if ((error = devfs_set_cdevpriv(pcc, &cuse_client_free)) != 0) { + cuse_client_free(pcc); return (error); + } pccmd = &pcc->cmds[CUSE_CMD_OPEN]; From nobody Tue Aug 11 18:24: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 4hKKlg2dj7z6p6tR for ; Tue, 11 Aug 2026 18:24: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKKlg06Mcz3fLw for ; Tue, 11 Aug 2026 18:24:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472671; 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=gxEtXXQmqcyqv/8SmL2NGvqjpAIipyV6co/CpcTiGx4=; b=ZNMnLR70ldQhmoNE9p7LbtruBoJOchaCDN24QtVKomx2S8fnIygq/HTovRX7wRNnT5woae u9/hU3fejT7I/ZaawihlwMMWnxIzQzXjCu1ndhu0LLlsJbjI/QRhZ0nc6uuT9rMyxlvg/u A2N4/+AQasdsQyff9anMXjRiyWihrvRlryUauN18zYN9vaBze9oJppu8HS8T8JaSEudwEO o4sxEUl+iNqxnEfave0BeKbk2A+Zm3AZLf7aP0WpVYEdvYGocifcTmYBmkoBOj3Xp3b7Aa BsmcWiQfy38kv17A6mclvYWU7zSHY5LIVswDqA7akeWelaJSHL5GFWfyg1vn5Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786472671; a=rsa-sha256; cv=none; b=WqwpW0AsDrTPyhY+hisQ4IU5LusJjmpwXZgnCeF9O26ieg5dsAIaWdutzdoPRwkhWefi/O mESraXiz5Bc1An/bG72NGZqoMXHYou5i1Z2uCa2ne2Xt2aM4SEBTEBqXOcc1xxOrQetSxN m+o3RYKCzqdCzznAdIrxYuzqUePpWpUuB1RIo4RLTEY6+llmgYSeRiSiifvO4Ce/80eO2K GTtZeE6AWW/VojQzOScB7GlQ3WAo6DvfuN0Vp8nuc0qIwufONiTvxI9wgQvUMV/ANO8pDG 9Hv/0xa8rOpqe57+wncFKLoTJ8L8rW0Tjrf0XFJ0E0dpZIF7lUnDvsVUKVLlyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472671; 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=gxEtXXQmqcyqv/8SmL2NGvqjpAIipyV6co/CpcTiGx4=; b=ywguZdprOc4ZtYCzq7mH+pzLWZp9HnzTTRaqbIWNhK1becHxtF+RFEoWVVrx6dKnkQCiuP cBsBwLSZt48Mp1Ohmcfeaf6KWMvkNi397T/SK8OCUqbSBnv+UvyBbxOxYK02utIR1LIsDh 7xYfwSPMFUscVbsZLNeFhReJGeimd0Y+LZqB2xLPEAeay1LD3C6OfLMJLjseL/CfuvEUb1 kWIuNULI+9qX74nmROF9ORW+PbtT1C/Y6K786PB4y9UQuFhpDhR8pPG7AVY5VxN1ykXn8/ 0djzO2CfBSzKs7SoBISrX34GzUlefn8ZAhXC6aJYhnz8Brc3H+3bKduV5Rq67w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKKlf5Z8gz15wj for ; Tue, 11 Aug 2026 18:24:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d6f1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 18:24:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Kevin Bowling From: Christos Margiolis Subject: git: 44b054dba523 - stable/15 - sound: Scale PCM secondary buffers by byte rate List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 44b054dba523b390db9a3b54ceb71aa4af65d6db Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 18:24:25 +0000 Message-Id: <6a7b68d9.1d6f1.39cd7c37@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=44b054dba523b390db9a3b54ceb71aa4af65d6db commit 44b054dba523b390db9a3b54ceb71aa4af65d6db Author: Kevin Bowling AuthorDate: 2026-07-24 13:57:27 +0000 Commit: Christos Margiolis CommitDate: 2026-08-11 18:17:51 +0000 sound: Scale PCM secondary buffers by byte rate The fixed 128 KiB secondary buffer cap dates from stereo-sized streams. High channel-count or high sample-width OSS streams can consume most of that budget in one graph quantum, leaving too little room for capture catch-up or playback headroom. Keep 128 KiB as the low-rate floor, but derive the effective soft-ring cap from the channel byte rate, clamped to 4 MiB. Use that per-channel cap when resizing the soft buffer and when clamping SNDCTL_DSP_SETFRAGMENT requests. Also clamp SNDCTL_DSP_LOW_WATER to the current soft-buffer size so an impossible readiness threshold cannot make poll/select wait forever. MFC after: 3 weeks Reviewed by: christos Differential Revision: https://reviews.freebsd.org/D58064 (cherry picked from commit 967e86d1ef2ac8711c0ae7be353a9c08186f4e6f) --- sys/dev/sound/pcm/channel.c | 62 +++++++++++++++++++++++++++++++++------------ sys/dev/sound/pcm/channel.h | 30 +++++++++++++++++----- sys/dev/sound/pcm/dsp.c | 38 +++++++++++++++++++-------- 3 files changed, 96 insertions(+), 34 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index ff7620c772c3..21c223c61205 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1657,15 +1657,30 @@ round_pow2(u_int32_t v) return ret; } +u_int32_t +chn_2ndbufmaxsize(struct pcm_channel *c) +{ + struct snd_dbuf *bs; + uint64_t maxsize; + + CHN_LOCKASSERT(c); + + bs = c->bufsoft; + maxsize = (uint64_t)bs->align * bs->spd * CHN_2NDBUFTIME_MS / 1000; + RANGE(maxsize, CHN_2NDBUFSIZE_MIN, CHN_2NDBUFSIZE_MAX); + + return ((u_int32_t)maxsize); +} + static u_int32_t -round_blksz(u_int32_t v, int round) +round_blksz(u_int32_t v, int round, u_int32_t maxsize) { u_int32_t ret, tmp; if (round < 1) round = 1; - ret = min(round_pow2(v), CHN_2NDBUFMAXSIZE >> 1); + ret = min(round_pow2(v), maxsize >> 1); if (ret > v && (ret >> 1) > 0 && (ret >> 1) >= ((v * 3) >> 2)) ret >>= 1; @@ -1780,14 +1795,16 @@ chn_calclatency(int dir, int latency, int bps, u_int32_t datarate, if (latency < CHN_LATENCY_MIN || latency > CHN_LATENCY_MAX || bps < 1 || datarate < 1 || !(dir == PCMDIR_PLAY || dir == PCMDIR_REC)) { + if (max < CHN_2NDBUFSIZE_MIN) + max = CHN_2NDBUFSIZE_MIN; if (rblksz != NULL) - *rblksz = CHN_2NDBUFMAXSIZE >> 1; + *rblksz = max >> 1; if (rblkcnt != NULL) *rblkcnt = 2; printf("%s(): FAILED dir=%d latency=%d bps=%d " "datarate=%u max=%u\n", __func__, dir, latency, bps, datarate, max); - return CHN_2NDBUFMAXSIZE; + return max; } lprofile = chn_latency_profile; @@ -1804,7 +1821,7 @@ chn_calclatency(int dir, int latency, int bps, u_int32_t datarate, datarate)); if (bufsz > max) bufsz = max; - blksz = round_blksz(bufsz >> blkcnt, bps); + blksz = round_blksz(bufsz >> blkcnt, bps, max); if (rblksz != NULL) *rblksz = blksz; @@ -1821,6 +1838,7 @@ chn_resizebuf(struct pcm_channel *c, int latency, struct snd_dbuf *b, *bs, *pb; int sblksz, sblkcnt, hblksz, hblkcnt, limit = 0, nsblksz, nsblkcnt; int ret; + u_int32_t maxsize; CHN_LOCKASSERT(c); @@ -1843,14 +1861,15 @@ chn_resizebuf(struct pcm_channel *c, int latency, bs = c->bufsoft; b = c->bufhard; + maxsize = chn_2ndbufmaxsize(c); if (!(blksz == 0 || blkcnt == -1) && (blksz < 16 || blksz < bs->align || blkcnt < 2 || - (blksz * blkcnt) > CHN_2NDBUFMAXSIZE)) + (uint64_t)blksz * blkcnt > maxsize)) return EINVAL; chn_calclatency(c->direction, latency, bs->align, - bs->align * bs->spd, CHN_2NDBUFMAXSIZE, + bs->align * bs->spd, maxsize, &sblksz, &sblkcnt); if (blksz == 0 || blkcnt == -1) { @@ -1871,7 +1890,7 @@ chn_resizebuf(struct pcm_channel *c, int latency, * defeat the purpose of having custom control. The least * we can do is round it to the nearest ^2 and align it. */ - sblksz = round_blksz(blksz, bs->align); + sblksz = round_blksz(blksz, bs->align, maxsize); sblkcnt = round_pow2(blkcnt); } @@ -1890,18 +1909,28 @@ chn_resizebuf(struct pcm_channel *c, int latency, sndbuf_xbytes(pb->blksz, pb, bs) * 2 : 0; } } else { + /* + * The byte-rate-scaled cap applies to the secondary buffer + * only. It exists to absorb userland scheduling latency, + * which the secondary buffer alone must cover; hardware + * buffer geometry keeps the historical cap, since enlarging + * it would change fragment sizes and interrupt cadence + * visible to drivers, and remains bounded by b->maxsize + * below. + */ hblkcnt = 2; if (c->flags & CHN_F_HAS_SIZE) { hblksz = round_blksz(sndbuf_xbytes(sblksz, bs, b), - b->align); + b->align, CHN_2NDBUFSIZE_MIN); hblkcnt = round_pow2(bs->blkcnt); } else chn_calclatency(c->direction, latency, b->align, b->align * b->spd, - CHN_2NDBUFMAXSIZE, &hblksz, &hblkcnt); + CHN_2NDBUFSIZE_MIN, &hblksz, &hblkcnt); if ((hblksz << 1) > b->maxsize) - hblksz = round_blksz(b->maxsize >> 1, b->align); + hblksz = round_blksz(b->maxsize >> 1, b->align, + CHN_2NDBUFSIZE_MIN); while ((hblksz * hblkcnt) > b->maxsize) { if (hblkcnt < 4) @@ -1922,7 +1951,8 @@ chn_resizebuf(struct pcm_channel *c, int latency, if (!CHN_EMPTY(c, children)) { nsblksz = round_blksz( - sndbuf_xbytes(b->blksz, b, bs), bs->align); + sndbuf_xbytes(b->blksz, b, bs), bs->align, + maxsize); nsblkcnt = b->blkcnt; if (c->direction == PCMDIR_PLAY) { do { @@ -1938,13 +1968,13 @@ chn_resizebuf(struct pcm_channel *c, int latency, limit = sndbuf_xbytes(b->blksz, b, bs) * 2; } - if (limit > CHN_2NDBUFMAXSIZE) - limit = CHN_2NDBUFMAXSIZE; + if ((u_int32_t)limit > maxsize) + limit = maxsize; - while ((sblksz * sblkcnt) < limit) + while ((uint64_t)sblksz * sblkcnt < (uint64_t)limit) sblkcnt <<= 1; - while ((sblksz * sblkcnt) > CHN_2NDBUFMAXSIZE) { + while ((uint64_t)sblksz * sblkcnt > maxsize) { if (sblkcnt < 4) sblksz >>= 1; else diff --git a/sys/dev/sound/pcm/channel.h b/sys/dev/sound/pcm/channel.h index c7f5bf93b8e5..c78c25dac13b 100644 --- a/sys/dev/sound/pcm/channel.h +++ b/sys/dev/sound/pcm/channel.h @@ -430,15 +430,31 @@ enum { #define CHN_TIMEOUT_MIN 1 #define CHN_TIMEOUT_MAX 10 -/* - * This should be large enough to hold all pcm data between - * tsleeps in chn_{read,write} at the highest sample rate. - * (which is usually 48kHz * 16bit * stereo = 192000 bytes/sec) - */ +/* Default block size for the secondary buffer. */ #define CHN_2NDBUFBLKSIZE (2 * 1024) /* The total number of blocks per secondary bufhard. */ #define CHN_2NDBUFBLKNUM (32) -/* The size of a whole secondary bufhard. */ -#define CHN_2NDBUFMAXSIZE (131072) +/* + * The secondary buffer cap scales with the channel byte rate, targeting + * CHN_2NDBUFTIME_MS of stream so that all pcm data between tsleeps in + * chn_{read,write} fits, clamped to [CHN_2NDBUFSIZE_MIN, + * CHN_2NDBUFSIZE_MAX]. + * + * The floor is the historical secondary buffer size and preserves memory + * use for low byte-rate streams; it holds ~680 ms at the once-typical + * 48kHz * 16bit * stereo rate (192000 bytes/sec), well above the target + * (~38 KiB there). + * + * The ceiling bounds per-channel buffer memory. Buffers are allocated at + * the derived size, so only streams that actually run at high byte rates + * approach it. It holds the full target through MADI-class streams + * (64ch * 32-bit * 48kHz, ~12.3 MB/s); beyond that, coverage shrinks + * proportionally (e.g. ~85 ms at 64ch * 32-bit * 192kHz). + */ +#define CHN_2NDBUFSIZE_MIN (131072) +#define CHN_2NDBUFSIZE_MAX (4 * 1024 * 1024) +#define CHN_2NDBUFTIME_MS 200 + +u_int32_t chn_2ndbufmaxsize(struct pcm_channel *); #define CHANNEL_DECLARE(name) static DEFINE_CLASS(name, name ## _methods, sizeof(struct kobj)) diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index b78164d8a963..d7b6018cd3d9 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -109,6 +109,25 @@ static int dsp_oss_setsong(struct pcm_channel *wrch, struct pcm_channel *rdch, o static int dsp_oss_setname(struct pcm_channel *wrch, struct pcm_channel *rdch, oss_longname_t *name); #endif +static uint32_t +dsp_clamp_fragments(uint32_t maxfrags, uint32_t fragsz, uint32_t maxsize) +{ + if (maxfrags == 0) + maxfrags = maxsize / fragsz; + if (maxfrags < 2) + maxfrags = 2; + if ((uint64_t)maxfrags * fragsz > maxsize) + maxfrags = maxsize / fragsz; + return (maxfrags); +} + +static unsigned int +dsp_low_water(struct pcm_channel *ch, int lw) +{ + RANGE(lw, 1, ch->bufsoft->bufsize); + return ((unsigned int)lw); +} + int dsp_make_dev(device_t dev) { @@ -1244,18 +1263,13 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, RANGE(fragln, 4, 16); fragsz = 1 << fragln; - if (maxfrags == 0) - maxfrags = CHN_2NDBUFMAXSIZE / fragsz; - if (maxfrags < 2) - maxfrags = 2; - if (maxfrags * fragsz > CHN_2NDBUFMAXSIZE) - maxfrags = CHN_2NDBUFMAXSIZE / fragsz; - DEB(printf("SNDCTL_DSP_SETFRAGMENT %d frags, %d sz\n", maxfrags, fragsz)); PCM_ACQUIRE_QUICK(d); if (rdch) { CHN_LOCK(rdch); - ret = chn_setblocksize(rdch, maxfrags, fragsz); + ret = chn_setblocksize(rdch, + dsp_clamp_fragments(maxfrags, fragsz, + chn_2ndbufmaxsize(rdch)), fragsz); r_maxfrags = rdch->bufsoft->blkcnt; r_fragsz = rdch->bufsoft->blksz; CHN_UNLOCK(rdch); @@ -1265,7 +1279,9 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, } if (wrch && ret == 0) { CHN_LOCK(wrch); - ret = chn_setblocksize(wrch, maxfrags, fragsz); + ret = chn_setblocksize(wrch, + dsp_clamp_fragments(maxfrags, fragsz, + chn_2ndbufmaxsize(wrch)), fragsz); maxfrags = wrch->bufsoft->blkcnt; fragsz = wrch->bufsoft->blksz; CHN_UNLOCK(wrch); @@ -1653,12 +1669,12 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, */ if (wrch != NULL) { CHN_LOCK(wrch); - wrch->lw = (*arg_i > 1) ? *arg_i : 1; + wrch->lw = dsp_low_water(wrch, *arg_i); CHN_UNLOCK(wrch); } if (rdch != NULL) { CHN_LOCK(rdch); - rdch->lw = (*arg_i > 1) ? *arg_i : 1; + rdch->lw = dsp_low_water(rdch, *arg_i); CHN_UNLOCK(rdch); } break; From nobody Tue Aug 11 18:24: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 4hKKlh0PLcz6p711 for ; Tue, 11 Aug 2026 18:24: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKKlg3cf6z3fgg for ; Tue, 11 Aug 2026 18:24:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472671; 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=tSrrhbwgxIGgUzk9D4rq+YIlFsKth2zhdCwVP6TUWbA=; b=Bwob6LeCuvvYOJ6lYvd0LlP+cJUHdAn7LcZ5FVIKxtZZNcjZbVI3OilX/6PYpXWYn/F7tY jrGAABfDjJeIKI+8kKvbbCQKhoi15uhBPNaMHcBxg7U+deS7/nTCVswEFFqQh/5krU6Dgt RerImdOJjMGuQ1X8znRV4JgSIcAGlCRWAqOJXvbE7nl2Ej9XAAVckIZlcqL7Atcu7r3BIK Z3FkDEQbolilGk+H6mKZHkFlqdQjmzpgM1norEdspxkO14NeTa2D9PZch/FXLYsWn8Zfwn M/k/arkeE3gbA2GNS4SIN46+2TEI6FoQzFU8Nrre9C7Fb9O48MejUftzKWddTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786472671; a=rsa-sha256; cv=none; b=EwPxl6ZpDLIh9teozAilr4R4DR7XMLviGKeVsPbCAqY17nsA0oGuxd1VVC1pwuCSoqGCIO wpZxjnqubTLyXqBN4QJdvo0E2LYVmrU8xRjZ115Bdq+SFyeC5a0kdnVBHdcBomxUAs1T9i tokSqa29+78pNFdSPLfbx1Ld1VoSfuKcY+QRX5aqTpN7pJ9PfzWiysY1AvRV8gr4AT/iNR th77WTom6gTVp6gCxbMFLIky4Q2FxW/d+OtKriGnqZbWSHodWTBRL/CcLaPzepnZ/gWnsA 73gag5IVrVYM6ALzJbKn+bVwDfZxNxiKGNticoI8qIuC4DNXTtTGsCLJ81akpw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786472671; 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=tSrrhbwgxIGgUzk9D4rq+YIlFsKth2zhdCwVP6TUWbA=; b=AiYyzeO5DfB6P1jzz5iVONksjXbPkER3Z5B81en/gOPNrLX3NYOGdPftJZvvnPGVvkIjgZ gyPtGpq8ycSQzm2/3bdUDf5ZQQXm5SvZcf6FY7oXVXOGntCCiUPZTukWMH+kDupW5YLs6D imfDJJEqeoyNEVRVwwQDa8zgsRj4mx2LPk0LnehJpnsictQKU61ipKUy4Grez+/qUQ1ACM Ke19p644XXThON9rbB8drfngPpgCpRrUnis0HfMQ9G0JjZALnaNPLbxgVJ6KnWbej4d+DR 8Pq1RuPpr78JKle9LHvoepEdJAUnwqxpzapq6/4y9qaOZO84GQ9wjqB2iZ/ayg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKKlf5yr1z15sF for ; Tue, 11 Aug 2026 18:24:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e6e6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 11 Aug 2026 18:24:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: giacomo From: Christos Margiolis Subject: git: 6886e8a9a0aa - stable/15 - snd_uaudio: Don't let an idle stream reprogram a shared UAC2 clock List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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: 6886e8a9a0aaef8d5666933c40d5dc4a3d098b70 Auto-Submitted: auto-generated Date: Tue, 11 Aug 2026 18:24:30 +0000 Message-Id: <6a7b68de.1e6e6.50e950cb@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=6886e8a9a0aaef8d5666933c40d5dc4a3d098b70 commit 6886e8a9a0aaef8d5666933c40d5dc4a3d098b70 Author: giacomo AuthorDate: 2026-07-15 11:34:34 +0000 Commit: Christos Margiolis CommitDate: 2026-08-11 18:24:04 +0000 snd_uaudio: Don't let an idle stream reprogram a shared UAC2 clock Some UAC2 devices expose a single Clock Source entity that is shared between their playback and capture interfaces (it appears in both the output and input clock bitmaps). On such a device uaudio(4) programs the sample rate for both directions when a stream starts. If playback runs at a 44.1 kHz-family rate while the idle capture channel is left at its 48 kHz-family default, the capture SET_CUR(UA20_CS_SAM_FREQ_CONTROL) is issued after the playback one and overwrites the rate on the shared clock. The device then runs at ~48 kHz while the playback stream carries 44.1 kHz data. Consuming samples faster than they arrive, the device repeatedly runs out of data, loses sync with the playback stream, and re-locks onto it (audible dropouts, front-panel play/idle flicker). The 48 kHz family is unaffected because both directions then agree on the rate. Fix it in three parts: - Add a shared-clock guard: before issuing SET_CUR to a clock id, if that clock is shared between playback and capture and the other direction is already streaming at a different rate, skip it. The first active stream owns the clock; a later one follows it. - When the recording channel is auto-started only as a source of jitter information for asynchronous playback, align its nominal rate to the playback rate before starting it, so it neither reprograms the shared clock to a conflicting rate nor produces mismatched frame sizes. - Always submit the explicit-feedback SYNC transfer so dev.pcm.%d.feedback_rate stays live as a diagnostic even when a capture stream is present. Reproduced on an OKTO RESEARCH DAC8 STEREO (0x152a:0x88c5), whose vestigial capture interface never streams; the same device plays the 44.1 kHz family correctly under Linux's snd-usb-audio. As a side effect, this patch also fixes the sample rate bug mentioned in the BUGS section of sound(4)'s man page, where a device needs to have the same sample rate set for both playback and recording in order to work properly. PR: 295933 Assisted-By: Claude Opus 4.8 (claude-opus-4-8) Signed-off-by: giacomo MFC after: 2 weeks Reviewed by: christos Pull-Request: https://github.com/freebsd/freebsd-src/pull/2323 (cherry picked from commit 755685dd665ef209912c59da6a7d0e7f2c9f464b) --- sys/dev/sound/usb/uaudio.c | 103 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 95 insertions(+), 8 deletions(-) diff --git a/sys/dev/sound/usb/uaudio.c b/sys/dev/sound/usb/uaudio.c index 2425666f224d..12823f6de6eb 100644 --- a/sys/dev/sound/usb/uaudio.c +++ b/sys/dev/sound/usb/uaudio.c @@ -1358,6 +1358,46 @@ uaudio_max_buffer_size(struct uaudio_chan *ch, uint8_t alt) return (buf_size); } +static bool +uaudio20_clock_is_shared(struct uaudio_softc *sc, unsigned int x) +{ + /* + * A clock entity that feeds both an OUTPUT (playback) and an + * INPUT (capture) terminal shows up in both bitmaps: it is a + * sample clock shared between the two directions. + */ + return ((sc->sc_mixer_clocks.bit_output[x / 8] & (1 << (x % 8))) != 0 && + (sc->sc_mixer_clocks.bit_input[x / 8] & (1 << (x % 8))) != 0); +} + +static uint32_t +uaudio_dir_running_rate(struct uaudio_chan *chans) +{ + unsigned int i; + + for (i = 0; i != UAUDIO_MAX_CHILD; i++) { + struct uaudio_chan *ch = &chans[i]; + + if (ch->running != 0 && ch->cur_alt < ch->num_alt) + return (ch->usb_alt[ch->cur_alt].sample_rate); + } + return (0); /* nothing streaming in this direction */ +} + +static bool +uaudio_chan_match_rate(struct uaudio_chan *ch, uint32_t rate, uint8_t *p_alt) +{ + uint8_t x; + + for (x = 0; x != ch->num_alt; x++) { + if (ch->usb_alt[x].sample_rate == rate) { + *p_alt = x; + return (true); + } + } + return (false); +} + static void uaudio_configure_msg_sub(struct uaudio_softc *sc, struct uaudio_chan *chan, int dir) @@ -1455,6 +1495,35 @@ uaudio_configure_msg_sub(struct uaudio_softc *sc, } } + /* + * Shared-clock guard. If this clock entity is + * shared between the playback and capture paths, + * and the OTHER direction is already streaming at + * a different rate, do not reprogram the clock -- + * the rate that is already locked wins. This + * stops an idle or secondary stream from yanking + * the shared clock out from under an active + * stream and dropping USB stream lock. The first + * active stream owns the clock; a later one + * follows it (see uaudio_chan_start(), which + * re-aligns the jitter-info record stream to the + * playback rate before it is started). + */ + if (uaudio20_clock_is_shared(sc, x)) { + uint32_t other = (dir == PCMDIR_PLAY) ? + uaudio_dir_running_rate(sc->sc_rec_chan) : + uaudio_dir_running_rate(sc->sc_play_chan); + + if (other != 0 && + other != chan_alt->sample_rate) { + DPRINTF("shared clock ID=%u busy at " + "%u Hz; not reprogramming to " + "%u Hz\n", x, other, + chan_alt->sample_rate); + continue; + } + } + if (uaudio20_set_speed(sc->sc_udev, sc->sc_mixer_iface_no, x, chan_alt->sample_rate)) { /* @@ -2334,13 +2403,10 @@ uaudio_chan_play_sync_callback(struct usb_xfer *xfer, usb_error_t error) case USB_ST_SETUP: /* - * Check if the recording stream can be used as a - * source of jitter information to save some - * isochronous bandwidth: + * Submit the transfer even when the recording stream + * provides the jitter information, so that the feedback + * rate keeps being sampled for diagnostic purposes. */ - if (ch->priv_sc->sc_rec_chan[i].num_alt != 0 && - uaudio_debug == 0) - break; usbd_xfer_set_frames(xfer, 1); usbd_xfer_set_frame_len(xfer, 0, usbd_xfer_max_framelen(xfer)); usbd_transfer_submit(xfer); @@ -2884,12 +2950,33 @@ uaudio_chan_start(struct uaudio_chan *ch) if (uaudio_chan_need_both( &sc->sc_play_chan[i], &sc->sc_rec_chan[i])) { + struct uaudio_chan *ch_play = &sc->sc_play_chan[i]; + struct uaudio_chan *ch_rec = &sc->sc_rec_chan[i]; + uint8_t rec_alt; + + /* + * The recording channel is only being started as a + * source of jitter information for the playback + * stream. Align its nominal rate with the + * playback rate so that (a) it does not reprogram + * a sample clock shared with the playback path to + * a conflicting rate, and (b) its expected frame + * sizes match what the device actually produces, + * keeping the derived jitter information valid. + * The USB explore lock is held here, which also + * serializes against uaudio_chan_set_param_speed(). + */ + if (uaudio_chan_match_rate(ch_rec, + ch_play->usb_alt[ch_play->set_alt].sample_rate, + &rec_alt)) + ch_rec->set_alt = rec_alt; + /* * Start both endpoints because of need for * jitter information: */ - uaudio_chan_reconfigure(&sc->sc_rec_chan[i], CHAN_OP_START); - uaudio_chan_reconfigure(&sc->sc_play_chan[i], CHAN_OP_START); + uaudio_chan_reconfigure(ch_rec, CHAN_OP_START); + uaudio_chan_reconfigure(ch_play, CHAN_OP_START); } else { uaudio_chan_reconfigure(ch, CHAN_OP_START); } From nobody Wed Aug 12 12:27: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 4hKnmp131mz6X8ZR for ; Wed, 12 Aug 2026 12:27: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKnmp0C2Lz445f for ; Wed, 12 Aug 2026 12:27:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537626; 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=J8z6+rt+/E38eZPi2OKniNzDfotD0iNo7EL6/OFQkP4=; b=KZojwPUm5Xi4M7nUMKFYIstUihnIngYBwEF+oUgdsz3nMcilb3sZWUzul4SbaC5iaOx3OV RyWImj5gnpiTkK3DZY/vMORgPHI3RuGl5isP/sJB6sOtRob6de+iqZNcp2wXDMfQzQiIks 5zotKEDgg4OKqPhzpJOmT8EeD6NeIDkFNFDQnFYtdMUBnjhMoBIUqXl8x157EpWbpcHL5T G2xkwlyrepTs57CEVDc3J1UbIFSR/59UkezxQm+ui1Se6nslUitfu/x/6kSbWvuXfev8nq eGoUXqhhwzFS6h94M73kHE0lnBDZVEalX25CitrMTnrpa02cYMhzETYldAGmPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786537626; a=rsa-sha256; cv=none; b=DFZ61we49CFy+iv38JCcMxxAWyEW4oK6Q8b5qJLdQ9fv6HfSGAYqNhgK5oOxVDZAUtlCzz bpMxIFvqk3wOV5orW88hOq6H79erPhhua26P/sFO1s+UHCpMWHqK7yuDkZwwHJTcA6t0aF zE2ogl++1xyEQk/IKnW1IEt4B5/9UIwLyptbVTK5xOfEZC0E9L7mjjH565+ed7wkJP7YB7 v6dmkWkIP9wF5eEkKW8WyI6Bl/WCx13e5izcp4u9b6vDIh3XgkclRNRim8I+O5PgtCiL/F cqrXxcMyQ2h/AkNz2GjC7Wc9AFS6XnAMCqeJYmDbH3dqmL0XRhypG6wB3QwGhA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537626; 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=J8z6+rt+/E38eZPi2OKniNzDfotD0iNo7EL6/OFQkP4=; b=ClFSnVdjlW+U21N8bHtO0KvtpZ44LIwA26+2pbkStlKZTYg7v6M4Za6/wxvHfcUv3v2nNS yabgJbK2pxPnpbp/iZezV3X6JVG+hihNa1a689qA/jPSjMWewWu7igti9vdOEvaB6hcxNS yagJueruz5y/2d1/S2m+yFhBWDi5PHIk2p6Smg41zXXW1TCjkvyOatm2KfivCBKk0LQ9iq 2ID5exxis8EqUVz6/D5DenttF8eqfXAs0zCPMiOLNloB1BnJ3ryn46qTBC/WxRC+m/uX3V a33/TfIDvxv5bVMGF/VfKfkCurUrZhX0uWEk39tUAXVZn2k/SUMNoLcCkngCnQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKnmn608Tz9GN for ; Wed, 12 Aug 2026 12:27:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22b75 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 12 Aug 2026 12:27:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Maxim Konovalov From: Sergey A. Osokin Subject: git: 0192f4ad5019 - stable/15 - bsd-family-tree: add NetBSD 11.0 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0192f4ad5019e7b2b6b900b97c4c2d306713228c Auto-Submitted: auto-generated Date: Wed, 12 Aug 2026 12:27:05 +0000 Message-Id: <6a7c6699.22b75.36e2a6cf@gitrepo.freebsd.org> The branch stable/15 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=0192f4ad5019e7b2b6b900b97c4c2d306713228c commit 0192f4ad5019e7b2b6b900b97c4c2d306713228c Author: Maxim Konovalov AuthorDate: 2026-08-03 18:08:07 +0000 Commit: Sergey A. Osokin CommitDate: 2026-08-12 12:26:42 +0000 bsd-family-tree: add NetBSD 11.0 (cherry picked from commit 396e6d69955669b564cb605418e9d8025b3592bd) --- share/misc/bsd-family-tree | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index f7b75a232bea..bc636a7e0a9a 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -490,6 +490,7 @@ FreeBSD 5.2 | | | | | | | | OpenBSD 7.9 | | FreeBSD | | | | | 15.1 | | | | + | | NetBSD 11.0 | | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -941,6 +942,7 @@ FreeBSD 15.0 2025-12-02 [FBD] FreeBSD 14.4 2026-03-10 [FBD] OpenBSD 7.9 2026-05-19 [OBD] FreeBSD 15.1 2026-06-16 [FBD] +NetBSD 11.0 2026-07-30 [NBD] Bibliography ------------------------ From nobody Wed Aug 12 12:27: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 4hKnmt3Wckz6X8f0 for ; Wed, 12 Aug 2026 12:27: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKnmt0QMfz44LF for ; Wed, 12 Aug 2026 12:27:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537630; 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=cshU/M8T74+TU5gcnkljAzWQf9eNi4zaLpAOkSmlbnc=; b=QPvCwmj6xjCzMM0yLqoynnld+m9RO5jInUKXyHMQpy/SDaiYE/J4e0iJYzqYAcbXwf/rEf vpE10u6+twH2uMwKmv1kYNR25vo8QTj4TCUpYDo/HDr64DWZud4C1JPVRWRs6RxZmElRjc sRQQDB3QpBDzb59tmqun3wAX3F2Is2BBA22fJMxOQvr+l36RpsWfSh4zuU0uazCnshax+R xlN/ZhezC02cP+Xv42pZOoF+mdYVqNN9DT6fF3pGYAtYs+9MkPCTEYTl+tzGpHL7zeq14Z PfeatbMdXLxoTBYktfjm8W/L3+OtBke/nD7KXu7mYpCHE5UPZTtzkZpBc30wsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786537630; a=rsa-sha256; cv=none; b=obtMn0wrm20woIkhVp0g2ULY1SJt7XclQBgf88RP5AkTsw+Dx9W1Mc0tuHInhs9fwphEc2 l4DSrt3cZxjLfTS60SrAcHyBvVh4btgWQ8N8ptZGbo8xNvhCe0AUVIyI45lfhdtadngoVr JHELfLExpkByd+jGxKj5V8dHC9TE4RrShzfvWiqhmr74ZcwOQC+d9sxOOkHWQcvmWNzaYk HGC7spRoqYqPKoljICY87XcChQT2hIPnbnJNmiSaZQ1jf8uQvSwnkPNLgONsxu2mu3hzMF LVD5RnhnA5C9eszdiLFyqITKmKd85QAVfMVTZB7hj45+/cc3rgFH2YD70hN8Og== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537630; 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=cshU/M8T74+TU5gcnkljAzWQf9eNi4zaLpAOkSmlbnc=; b=aE3C1EWHTJMcrXNu28iJMoVXF/uQn0chiTaZPVgF98gc3LX14U07ELJxvjPvz2spS5/TtL 6Y3oNyMHvy1t2lLYJcdhC4bGc2ub1859WCzCU+E1IPpam/0/vDYtxJRQjV0lRzNqFd7jF3 wXKQbQ46+5d0eoo+TNu4IhDD4+v97qvsgBrzL8vWqxtYhrgy+pxy+JikiaF51zJmahUmiG gwe1L2QGtG3didgo9XdvKS9gSp6r41OjRDR3PKN8YBb5PVSZuG3tuMIjMgfCU2jJgsPKFz kc3tTMP9J7RvUiT/cJqGl3yE8lFkMsVSWgM1IjfGxmG1JW/pp4TnKpVFNECq9g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKnms6RFDz8TN for ; Wed, 12 Aug 2026 12:27:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 243b8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 12 Aug 2026 12:27:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Maxim Konovalov From: Sergey A. Osokin Subject: git: 76789228d089 - stable/15 - bsd-family-tree: add FreeBSD 15.1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 76789228d0890771c3ad22f2aad5b0150d86aaef Auto-Submitted: auto-generated Date: Wed, 12 Aug 2026 12:27:04 +0000 Message-Id: <6a7c6698.243b8.7708fb2a@gitrepo.freebsd.org> The branch stable/15 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=76789228d0890771c3ad22f2aad5b0150d86aaef commit 76789228d0890771c3ad22f2aad5b0150d86aaef Author: Maxim Konovalov AuthorDate: 2026-06-16 12:34:28 +0000 Commit: Sergey A. Osokin CommitDate: 2026-08-12 12:26:19 +0000 bsd-family-tree: add FreeBSD 15.1 (cherry picked from commit f8b5df434e419e00272bfce343bf7da239081276) --- share/misc/bsd-family-tree | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 1847105e5f34..f7b75a232bea 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -485,9 +485,11 @@ FreeBSD 5.2 | | | | | | | | OpenBSD 7.8 | *--FreeBSD | | | | | | 15.0 | | | | | - | FreeBSD | | | | - | 14.4 | | | | - | | | | OpenBSD 7.9 | + | | FreeBSD | | | | + | | 14.4 | | | | + | | | | OpenBSD 7.9 | + | FreeBSD | | | | + | 15.1 | | | | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -938,6 +940,7 @@ OpenBSD 7.8 2025-10-22 [OBD] FreeBSD 15.0 2025-12-02 [FBD] FreeBSD 14.4 2026-03-10 [FBD] OpenBSD 7.9 2026-05-19 [OBD] +FreeBSD 15.1 2026-06-16 [FBD] Bibliography ------------------------ From nobody Wed Aug 12 12:28:43 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hKnph1q2dz6X8kJ for ; Wed, 12 Aug 2026 12:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKnph16n4z459n for ; Wed, 12 Aug 2026 12:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537724; 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=sUNhQEI8dtJwGdf153yGg7dD6PKpZyhx6U7b/p75UaE=; b=W0+QIEspsaYqCN5tKzuBNQnL+x+MC1hRAI/nJXqrpYqvUoXV/9RxLTd7hTGLF7888Z3iOI qHzfRS0znxUBtCD5gSoU+RvO6MHbspf+NMuTmFj71fBL7x+/UR3OnNI/0YrIyletZjlVJ9 xw6C4WGw5YkLv95m1oTRYTOQOYkF3nCZiMhy7O7ZscKEG7CVsKgmmGbl/J5fv9fjIdpiYI lAYt1l9zentIFjGsr3MDOvlUAO5l/YUE7344o1ozIkNsAp7KHhiEIZeBrHYwCu/LWoVpP2 TC9WNQ8bc3/ePZHLAF/KXn4i23uBCm1sjpF8hbukduqDIvcpLYAuv17d/WoN5Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786537724; a=rsa-sha256; cv=none; b=qTcEv1rPa9kevKN1t6svMb9B67SJWSAlIPbBpGPGkRWf6iXF+pGtg9E6jizAD9oLvvVGD6 tDQTGXsl762xqYn5A8627qePe6GeyyeQob3Zpv3H8v2OHSTMxYYWVkZG30OigmKc4o8zYl WWwSqM4hIWp4EagN9+izt2j4ATJHynNeN9UI/tBvJ/CNh+WAnqxKAkpRTrUiB/z0YMRGXP vihbmZv9m178n7BYZ5bHXYx8G+2gUpwoWf2Y9aVakkZ4sK8rQvet3Z3kGxQqr+jNB1Qpum ScYZe+yOSylG331ctMNpO9oIczLtdRAbN1pSyhqRIeQpjliHbrQburzaXJRghw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537724; 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=sUNhQEI8dtJwGdf153yGg7dD6PKpZyhx6U7b/p75UaE=; b=ihDQNsL6TLdgYbTTko6EzdimMOEU+lIZMR6w35buCTXxD00CPpJS1XGCH+N4DIi+kUQTpA 0q1sSwh8X98kTIp9ad8T+7jQcU2O11PTRS6VFGoNNXGxSjkh8VeBm+1uVfcdJjvTHBo8dC LCCW1lRNTRlM1x165d65up5tJJ5VJXdGxLVCAqV9IRjQBnS8s+MP2qpwNvJl8kGxG5Pcbx i6jRZPAtjrr3qpom3Dz/77sUOM4M3OcMYdTec2ttsz1e5MXK9adp371hCn0+s4Q82qp/fd 9Y37lU5Mq07JKUmkMOaGR72YBOl6p1/zsFSjU4rRviYTUFaOihSQLjFtSZs66w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKnpg71yWz9GP for ; Wed, 12 Aug 2026 12:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22ad6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 12 Aug 2026 12:28:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Maxim Konovalov From: Sergey A. Osokin Subject: git: 42ad07230426 - stable/14 - bsd-family-tree: add FreeBSD 15.1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 42ad07230426924aafb8b2f6f90b605b4d8c0817 Auto-Submitted: auto-generated Date: Wed, 12 Aug 2026 12:28:43 +0000 Message-Id: <6a7c66fb.22ad6.1f9d1cfa@gitrepo.freebsd.org> The branch stable/14 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=42ad07230426924aafb8b2f6f90b605b4d8c0817 commit 42ad07230426924aafb8b2f6f90b605b4d8c0817 Author: Maxim Konovalov AuthorDate: 2026-06-16 12:34:28 +0000 Commit: Sergey A. Osokin CommitDate: 2026-08-12 12:28:24 +0000 bsd-family-tree: add FreeBSD 15.1 (cherry picked from commit f8b5df434e419e00272bfce343bf7da239081276) --- share/misc/bsd-family-tree | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index b5569952b9e3..460bea722d8a 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -485,9 +485,11 @@ FreeBSD 5.2 | | | | | | | | OpenBSD 7.8 | *--FreeBSD | | | | | | 15.0 | | | | | - | FreeBSD | | | | - | 14.4 | | | | - | | | | OpenBSD 7.9 | + | | FreeBSD | | | | + | | 14.4 | | | | + | | | | OpenBSD 7.9 | + | FreeBSD | | | | + | 15.1 | | | | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -939,6 +941,7 @@ OpenBSD 7.8 2025-10-22 [OBD] FreeBSD 15.0 2025-12-02 [FBD] FreeBSD 14.4 2026-03-10 [FBD] OpenBSD 7.9 2026-05-19 [OBD] +FreeBSD 15.1 2026-06-16 [FBD] Bibliography ------------------------ From nobody Wed Aug 12 12:28:45 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4hKnpj4lVkz6X8hQ for ; Wed, 12 Aug 2026 12:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hKnpj1bCQz45Bt for ; Wed, 12 Aug 2026 12:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537725; 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=UeAH4tJQzcZyYXixZdCIsrqP6x6TtiV9KHT5tR3fp0Q=; b=gdLF9ArGT92XogsHGApa3ZxsVlIQAqNlxM1O2veRzUyPi9C0cmsZInIfTWsbpgQa2RR7bs SG0t8dWcaZGNw4x/LPwoMXctX0zy4T6Gv1EH8hNIVH/x3rkfnQVhknhmxFEmm+lS1o7qDC qNRFVO8E5Y4fSfAVPvZZIAjrB9sBVtxRrZ+qcWyHGPhDcClSUWJbMs797vyhJoG+ymVHBA WhFdyEBmX0ezNwrdUmH7tcRBTebDJO+meC+ZwBUcfsU+FZla/JB8qm/WnnrJFVmr84Giqt CGyh3wOyXsCgYGuJpKC1tOUnnmFuTYtK0iVYvkeEgG5i4rtlaurCQIG5hkxwNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1786537725; a=rsa-sha256; cv=none; b=vA+D+Xka2Ik/f+s31KQg3mh8m06V9gl1ml/vS5XFElpP7FGCtZBBbaE2qXhEMd2vO5Ljcd jFc471ZEmo1YLRqw3hkx6ye6qrKrHkhIB0eOfj13LPXU5pyTX6WUvQzK6ox9bDu5PPhEOH gyI1P6FuSIEPE+e6agYZgyf3YoCSf9pNjRw0yES11zED+GekB8hkBP4w8uhXdtnf0RyALw 2sAxpG0xJw1PmVHbMXGyqAbxCnY2eIe84uQmb7x4JoqNKsukpnnvaDaLbCUJq9YvAWWPYD D0eJR0yxUI+CbB5jRt/zIQVgHgnwh/EBu8oJeRdECx9BZfs/gURi9lqwB4DuMA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1786537725; 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=UeAH4tJQzcZyYXixZdCIsrqP6x6TtiV9KHT5tR3fp0Q=; b=wmSw2oELs06rZIb4MtxAzlHrTgWUjyoMGk/QOJ0p1vEspQT/t055DLQO+jhUS4Ho5h6Ttj nf0k7sSbQB68PZ10QorCFqG41+FByRdl7TL3dXU5XORGbAxFo2LJ6KzVhQEzCE/DQhwA0F NM/nh9CmJONNMoe7W9mLuz78Dm2ePjuVhKQfWCL+KKRNXLW5qmo68nHBPudAiiMW2puwKr 9Md+nhksbIo9bugpTTlDN/YcwZYhKJKoLsJrO/6v5L0mfPajLHsbw6cZ/FGCMSaxKgwNnf /kK3MFsvXyTXJsDxrkp7YXnXIFVRu1gAVl4mdoMx3OPq/t8oyMDwfVjjW6Hv1A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4hKnpj0gnwz9NM for ; Wed, 12 Aug 2026 12:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 23b9f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 12 Aug 2026 12:28:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Maxim Konovalov From: Sergey A. Osokin Subject: git: 60539af27fda - stable/14 - bsd-family-tree: add NetBSD 11.0 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 60539af27fda620911ea0f055dea339d6c5444ba Auto-Submitted: auto-generated Date: Wed, 12 Aug 2026 12:28:45 +0000 Message-Id: <6a7c66fd.23b9f.679a4bbc@gitrepo.freebsd.org> The branch stable/14 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=60539af27fda620911ea0f055dea339d6c5444ba commit 60539af27fda620911ea0f055dea339d6c5444ba Author: Maxim Konovalov AuthorDate: 2026-08-03 18:08:07 +0000 Commit: Sergey A. Osokin CommitDate: 2026-08-12 12:28:32 +0000 bsd-family-tree: add NetBSD 11.0 (cherry picked from commit 396e6d69955669b564cb605418e9d8025b3592bd) --- share/misc/bsd-family-tree | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 460bea722d8a..871a2ee1dd52 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -490,6 +490,7 @@ FreeBSD 5.2 | | | | | | | | OpenBSD 7.9 | | FreeBSD | | | | | 15.1 | | | | + | | NetBSD 11.0 | | | | | | | FreeBSD 16 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -942,6 +943,7 @@ FreeBSD 15.0 2025-12-02 [FBD] FreeBSD 14.4 2026-03-10 [FBD] OpenBSD 7.9 2026-05-19 [OBD] FreeBSD 15.1 2026-06-16 [FBD] +NetBSD 11.0 2026-07-30 [NBD] Bibliography ------------------------