From nobody Mon Mar 3 00:46:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5g9r600Kz5Vb5y; Mon, 03 Mar 2025 00:46: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5g9r3MGwz3bs0; Mon, 03 Mar 2025 00:46:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740962800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EHuCuHHqBAQkET0sx0Zw9brZz2QqW3Bgj74TZezJoZ0=; b=SZ0GjCA2dRAV3ywsR+1cfE2gRNYvQxI60HwTVVYACIqzLChgB8xeon+6b5kS93upCM/uPc wTDwq91M1JY7WD2XMiU6IH2I2z/Q+mnKzhYERTjMJgzLjtU7WyxUZ5ZhoH73Am36qMrWde rZVfVbDayO/8XxbohqQttYZy6hr0zLHHdNf6rYHXqHWM9mJNbn0WYiuSs/S4G7LThHry49 HA5ABLA5UCoEVIbqXA7TEEj/LF5R6YePfi0Wf/Vz5XlPI1Pnl6Hvlqsb3Nl4LXfjIT+HMu zYc06ybiG2xDB6wjdOFhaSQ8ojIsFomfX6BdvLiraSq20gIVLswKPIkAksbQSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740962800; a=rsa-sha256; cv=none; b=wRWxvhsuIMdtPd2uDpbe+Cd73tp8y1JP5YsQUNGp58C213dghkeSb9Bol3544UBiEnHbyd zRwuA5n0CqvEGvv7oTvFFkMv06Q+9O4P65hlrNeN/6ycFlIz8fTiildd+Rj9zaF1OQBD8r o1pgKFCpc0+vBzx8x3anH8ojd0h5djSpwe3ovWL6NGF4VTeiDnx5nAkv0ps0vaJe1Sta8y Y10SjLo1/3VKJllibL5Za6Xnhpr4wbu0sBSLe0ykXzPyewopQQ+KWJiQgkG68bEOgtCZk0 bc34Xhi4BvkX1rwbjYOFPfSFg7uUdHlK4kqkCdIELaCmkzH3NE4b9jy51lK89A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740962800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EHuCuHHqBAQkET0sx0Zw9brZz2QqW3Bgj74TZezJoZ0=; b=Z8D1ZNR/nUg9AzVlKJ/jsYoYZcdQWxGL1BqHXV0mshQYJt6eSYWqK9vFW+pkj3H1/5mFCF WMha+tCtF+FtDBQEsb2pOUf2hIP1n1AOBf4R01IrtGa13uG8fgM1rsPTj5QKtSJT/uQrR7 Bhs7m8O4AIFHMZZ1Gh0f6YBps6OwN//heLqYIN0SZ5bu6ZNhEcEx65QN6bFWFPPvfXHCcu sTts0WagH1jirl6L0mFkVp1ozPm2Z3ytb4Uxc10chZB1Z6TPHU/TVoYI0tEKi/OlcU3tkX vI8tuZn7o0IJtpPhDZgel71sX/6EIgdkYvR632ZWdoywuTthrBAAUFOgEuXVtQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5g9r2rvkz94J; Mon, 03 Mar 2025 00:46:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5230kepF072817; Mon, 3 Mar 2025 00:46:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5230keuJ072814; Mon, 3 Mar 2025 00:46:40 GMT (envelope-from git) Date: Mon, 3 Mar 2025 00:46:40 GMT Message-Id: <202503030046.5230keuJ072814@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ravi Pokala Subject: git: 916476b149a3 - stable/14 - if_infininband: Support BPF write for broadcast frames List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rpokala X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 916476b149a3f3177d1213ae46fa3858c46ce5ad Auto-Submitted: auto-generated The branch stable/14 has been updated by rpokala: URL: https://cgit.FreeBSD.org/src/commit/?id=916476b149a3f3177d1213ae46fa3858c46ce5ad commit 916476b149a3f3177d1213ae46fa3858c46ce5ad Author: Nicholas Dance AuthorDate: 2025-02-05 23:33:20 +0000 Commit: Ravi Pokala CommitDate: 2025-03-03 00:41:29 +0000 if_infininband: Support BPF write for broadcast frames To support DHCP for IPoIB links, DHCP clients and servers require the ability to transmit link-layer broadcasts on the IB interfaces. BPF provides the mechanism for doing this. This change updates the if_infiniband driver to be capable of accepting link-layer broadcast requests via BPF using Ethernet formatted frames (the driver currently registers with BPF as DLT_EN10MB). Only Broadcast frames can reliably be interpreted using the Ethernet header format so detect unicast and multicast frames are rejected if passed in using the Ethernet format. This doesn't impact the ability to support native unicast, broadcast or multicast frames if native infiniband header support is added to BPF at a later date. Further the above, this commit also addresses an issue in the existing code that can result in separation of part of the packet header from the rest of the payload if a BPF write was attempted. This was caused by mbuf preallocation of the infiniband header length regardless of length of the prepend data. Reviewed by: rpokala; Greg Foster Tested by: Greg Foster MFC after: 1 week Sponsored by: Vdura Pull Request: https://github.com/freebsd/freebsd-src/pull/1591 (cherry picked from commit 8d079c6a9a5dfdc75adaf9bc31f2ee8111b849a1) --- sys/net/if_infiniband.c | 57 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/sys/net/if_infiniband.c b/sys/net/if_infiniband.c index 98ea87098fea..7ef22911803b 100644 --- a/sys/net/if_infiniband.c +++ b/sys/net/if_infiniband.c @@ -150,6 +150,43 @@ infiniband_bpf_mtap(struct ifnet *ifp, struct mbuf *mb) mb->m_pkthdr.len += sizeof(*ibh); } +/* + * For clients using BPF to send broadcasts. + * + * This driver binds to BPF as an EN10MB (Ethernet) device type. As such, it is + * expected BPF and BPF users will send frames with Ethernet headers, which + * we'll do our best to handle. We can't resolve non-native unicast or multicast + * link-layer addresses, but we can handle broadcast frames. + * + * phlen is populated with IB header size if ibh was populated, 0 otherwise. + */ +static int +infiniband_resolve_bpf(struct ifnet *ifp, const struct sockaddr *dst, + struct mbuf *mb, const struct route *ro, struct infiniband_header *ibh, + int *phlen) +{ + struct ether_header *eh = (struct ether_header *)ro->ro_prepend; + /* If the prepend data & address length don't have the signature of a frame + * forwarded by BPF, allow frame to passthrough. */ + if (((ro->ro_flags & RT_HAS_HEADER) == 0) || + (ro->ro_plen != ETHER_HDR_LEN)) { + *phlen = 0; + return (0); + } + + /* Looks like this frame is from BPF. Handle broadcasts, reject otherwise */ + if (!ETHER_IS_BROADCAST(eh->ether_dhost)) + return (EOPNOTSUPP); + + memcpy(ibh->ib_hwaddr, ifp->if_broadcastaddr, sizeof(ibh->ib_hwaddr)); + ibh->ib_protocol = eh->ether_type; + mb->m_flags &= ~M_MCAST; + mb->m_flags |= M_BCAST; + + *phlen = INFINIBAND_HDR_LEN; + return (0); +} + static void update_mbuf_csumflags(struct mbuf *src, struct mbuf *dst) { @@ -307,7 +344,7 @@ infiniband_output(struct ifnet *ifp, struct mbuf *m, struct llentry *lle = NULL; struct infiniband_header *ih; int error = 0; - int hlen; /* link layer header length */ + int hlen = 0; /* link layer header length */ uint32_t pflags; bool addref; @@ -317,10 +354,20 @@ infiniband_output(struct ifnet *ifp, struct mbuf *m, phdr = NULL; pflags = 0; if (ro != NULL) { - /* XXX BPF uses ro_prepend */ + /* XXX BPF and ARP use ro_prepend */ if (ro->ro_prepend != NULL) { - phdr = ro->ro_prepend; - hlen = ro->ro_plen; + ih = (struct infiniband_header *)linkhdr; + /* Assess whether frame is from BPF and handle */ + error = infiniband_resolve_bpf(ifp, dst, m, ro, ih, &hlen); + if (error != 0) + goto bad; + + if (hlen != 0) { + phdr = linkhdr; + } else { + phdr = ro->ro_prepend; + hlen = ro->ro_plen; + } } else if (!(m->m_flags & (M_BCAST | M_MCAST))) { if ((ro->ro_flags & RT_LLE_CACHE) != 0) { lle = ro->ro_lle; @@ -387,7 +434,7 @@ infiniband_output(struct ifnet *ifp, struct mbuf *m, * Add local infiniband header. If no space in first mbuf, * allocate another. */ - M_PREPEND(m, INFINIBAND_HDR_LEN, M_NOWAIT); + M_PREPEND(m, hlen, M_NOWAIT); if (m == NULL) { error = ENOBUFS; goto bad; From nobody Mon Mar 3 01:39:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5hMD4ppXz5VgQP; Mon, 03 Mar 2025 01:39:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5hMD42Llz4Kx0; Mon, 03 Mar 2025 01:39:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740965992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P1HTLqtgbnwfNOIuuus6BhRyOwJCMnwaNNuWsVBTSz8=; b=GpsfKrx5U4N4TiPMwOejfrythSfGeiKL56QlnIDt06IkhJ1j7iaB6E9azYOM/l09DQjVa5 MC/92sfRJWcJzuEnblTgEdRTC4bW2zqlVxr/Ls1BPHqyIeoPz3Hdn0VXZvoxFRMYryCBUj bmo/IgoDhyEYCB9NQMpKupihqlmM2ajj8w8/TPkdJLC9a9aNycWeK3+2ksWORs76Oe6G/3 1suzVppeXhMQj8ZjOVhGpKxUVq9fhGSK/f4LHVcUN5vGhAgGOp1mqQN4H6CZNDq+pybANR Iitr2s6+IPc34y6CJlvSZKfCT6rt7kQXL0PddJsQeska65izzufEFFMYeoSUUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740965992; a=rsa-sha256; cv=none; b=xBSHJMzQP5SVmQES10ljde8ymRCQl9zyQvZhhZkxuA5EVBH6gRKqG5BxENNiCVg/X3Ci2E Di5RzZw8DM8omAHWOqxPAvtQOehiJw3XQc/caK/120TDzobT590Q5969g0U2BXZPr6mUKv MxuQ9qtkxrIWmR+xGI4lYqBTuBFg7Sl7v38OT8Q3HrZDGpF/7uo1IYeianfMstw0c7uTqj t1Evg0ywsfAM0mH7WlRl9fdzawhNiAYUtVoHJHUn8wyCrj9/k4sUzpQllGqvXnoaCLY+kw 9tDTHAcUYNlc1v9FTP7Dim2fcPgW6TGKwWXJqa8DjlGbOotIs7su4FTZAYuDyg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740965992; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P1HTLqtgbnwfNOIuuus6BhRyOwJCMnwaNNuWsVBTSz8=; b=q+afr/3wM+1O2OYU3CAYuQrRQaXHrJsp1Cbis7aXS6vAXrzjyY+ACtHvndN6rimrVOG1BG 1iQiAc0Mn1/zSRsdQU6Z1m7Dc7apKhPQa5xJinSkRVHfhwKvvINtl2QSrdoftXUiIaLkS8 0wqCNPymkyUhMdG72VnTYFB+OqJrTM/0ooRL/QvWMfFLRENN7S1f/wvGKgek8oavxMEF8T kKaPpT20p14HAyaAP5ZfJZ0/W8ecnkDQo/KSbCUrxXwp31FVN18RdAoqGKTJmh0ng0qqG1 hkQlNtx1PvOpxuqA3/KzlDwHA5YzPUkzOHeP+Dyly6GJRoN7VF8A5oiesQFazw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5hMD38wdzBKX; Mon, 03 Mar 2025 01:39:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5231dqfi066739; Mon, 3 Mar 2025 01:39:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5231dqkb066736; Mon, 3 Mar 2025 01:39:52 GMT (envelope-from git) Date: Mon, 3 Mar 2025 01:39:52 GMT Message-Id: <202503030139.5231dqkb066736@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kevin Lo Subject: git: 42ba6765c932 - stable/13 - ixgbe: Fix a logic error in ixgbe_read_mailbox_vf() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevlo X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 42ba6765c9328dd283e76ba26c048868033c89b2 Auto-Submitted: auto-generated The branch stable/13 has been updated by kevlo: URL: https://cgit.FreeBSD.org/src/commit/?id=42ba6765c9328dd283e76ba26c048868033c89b2 commit 42ba6765c9328dd283e76ba26c048868033c89b2 Author: Kevin Lo AuthorDate: 2025-02-28 08:12:00 +0000 Commit: Kevin Lo CommitDate: 2025-03-03 01:39:28 +0000 ixgbe: Fix a logic error in ixgbe_read_mailbox_vf() Reviewed by: kbowling Differential Revision: https://reviews.freebsd.org/D49156 (cherry picked from commit 5c7087c349fc1d826807aa1a11912c9e774e3321) --- sys/dev/ixgbe/ixgbe_mbx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ixgbe/ixgbe_mbx.c b/sys/dev/ixgbe/ixgbe_mbx.c index 5f1f64e02b82..0b866e7a39af 100644 --- a/sys/dev/ixgbe/ixgbe_mbx.c +++ b/sys/dev/ixgbe/ixgbe_mbx.c @@ -297,7 +297,7 @@ static u32 ixgbe_read_mailbox_vf(struct ixgbe_hw *hw) u32 vf_mailbox = IXGBE_READ_REG(hw, IXGBE_VFMAILBOX); vf_mailbox |= hw->mbx.vf_mailbox; - hw->mbx.vf_mailbox |= vf_mailbox % IXGBE_VFMAILBOX_R2C_BITS; + hw->mbx.vf_mailbox |= vf_mailbox & IXGBE_VFMAILBOX_R2C_BITS; return vf_mailbox; } From nobody Mon Mar 3 01:55:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5hj56GyKz5VhVs; Mon, 03 Mar 2025 01:55:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5hj55LLwz3CZk; Mon, 03 Mar 2025 01:55:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740966921; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/bkljQduyE15WAaHwVjPKeiRXzoE7TNnOkE9yQXok1s=; b=g9+ab6M6Perc6cuCzguhq1N1sE29xBjv1G6r/tJ0UjbhpkUXl2mC1H4obL3oB1R1uFuXwH yBXDnWjTw+IgevLlaN/Kj9nFBcPUF92o37hoMtp2gRotsNpPdYSc0o3GGCGMpTKmsjVMy9 6CGBXq5E1TD0envoAVdDD5t4UHmz3gkw1CANDC4qLS2FvO0ZoRsyKJD0/so38cPEGqd8q8 WD2txrZcloRWpmMOkSBuFm6lUzLVmM4joxnb8++ZRwcIUPJ1f5lPcb9CIGw6zS46AdKtVM vwxJ5Jv3U/dXPmBVUekz1Z65fjYZ9Nb2mQFhGyhJUvW3jWVb827brwH9IyWdHQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740966921; a=rsa-sha256; cv=none; b=pCBFWMaFW3fd2ZTsFt8j4AYPTfbN2RqwxOhK2q/FRdbBHNogLp5azGKWIrIwLzH2ra5o7o QTV+JCmsPMxAEjv3XoPld8ARRx/oxQwIBUIqjkGwUGGLIMuHxSoTJGec64TaoX0OzsomqJ TDcQX8wnMXm0NXST6szo0y6BnOAth0N7cXvil+mBBWNJf/g8O2HaTWNr7z9wjAjOgZf2qx PeXSqbRsehAYu+/rG1bgSrHXKaVlFAf0x9mFllA69fhUD1P3pHdbp7ZX/+GJZ3R1Fj1gx7 Ui7Dhw3e/f3ROsJF9D/rX2zbLK20SgQF+6ASgyntRF8eknW0xVLM4pB28HT6Yw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740966921; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/bkljQduyE15WAaHwVjPKeiRXzoE7TNnOkE9yQXok1s=; b=rcjf9brxu6HiY/ffSrXA4G3Rl0BXqwniu43yXiMFUsVT/nVlsCu7+7CDn8wgfnk82rCLgI 9PxpCWQpsi0X+2ivR0Ubp97tb1YT11W1Qa4EJaQRFeq+PnzE2uDPBQ7H5Mo5DV8tnTeaOi r5uP5xAc1u933vO8iulxZlW63rtpUJfPXBqis4lBm0fY7bwcY/girb5/HG4CruUPkNysxI PERNsasoE11VPnqoNRlDNBswDBL7jAEatYq1E7ExeSEFF+dnqJ665FbO1WBvrF0NT+9n34 KUEQEmpbdJz5bn0wglb7TJys6/8DMYy9xDZZ6XJEeqcDBX7dER/JHBRthYcKMA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5hj54d9mzBXN; Mon, 03 Mar 2025 01:55:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5231tLaq002178; Mon, 3 Mar 2025 01:55:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5231tLSN002175; Mon, 3 Mar 2025 01:55:21 GMT (envelope-from git) Date: Mon, 3 Mar 2025 01:55:21 GMT Message-Id: <202503030155.5231tLSN002175@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 9f5457996e00 - stable/14 - nfscl: Move delegation high water variables into clientID List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9f5457996e005e12db7737bddaada55c83f55e6a Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=9f5457996e005e12db7737bddaada55c83f55e6a commit 9f5457996e005e12db7737bddaada55c83f55e6a Author: Rick Macklem AuthorDate: 2025-02-17 00:01:54 +0000 Commit: Rick Macklem CommitDate: 2025-03-03 01:54:10 +0000 nfscl: Move delegation high water variables into clientID Without this patch, the variables used to maintain a high water limit for delegations are global and apply to all mounts. This patch moves them into the clientID structure, which makes them per mount. This is needed to add support for the CB_RECALL_ANY callback in a future commit. The only effect of this patch is an increase in the total number of delegations held if there are multiple NFSv4 mounts to NFSv4 servers with delegations enabled. Since the default of NFSCLDELEGHIGHWATER is fairly small, this should not have a significant impact. (cherry picked from commit f5aff1871d3273b3cd3621ea5d3e37cdd807e66f) --- sys/fs/nfs/nfsclstate.h | 2 ++ sys/fs/nfsclient/nfs_clstate.c | 15 ++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/sys/fs/nfs/nfsclstate.h b/sys/fs/nfs/nfsclstate.h index d9f5ed13b54f..84088a2a4fd2 100644 --- a/sys/fs/nfs/nfsclstate.h +++ b/sys/fs/nfs/nfsclstate.h @@ -116,6 +116,8 @@ struct nfsclclient { struct proc *nfsc_renewthread; struct nfsmount *nfsc_nmp; time_t nfsc_expire; + int nfsc_delegcnt; + int nfsc_deleghighwater; u_int32_t nfsc_clientidrev; u_int32_t nfsc_rev; u_int32_t nfsc_renew; diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index e803c2cfb973..ad30a306c31d 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -94,8 +94,6 @@ NFSCLSTATEMUTEX; int nfscl_inited = 0; struct nfsclhead nfsclhead; /* Head of clientid list */ -static int nfscl_deleghighwater = NFSCLDELEGHIGHWATER; -static int nfscl_delegcnt = 0; static int nfscl_layoutcnt = 0; static int nfscl_getopen(struct nfsclownerhead *, struct nfsclopenhash *, u_int8_t *, int, u_int8_t *, u_int8_t *, u_int32_t, @@ -463,7 +461,7 @@ nfscl_deleg(mount_t mp, struct nfsclclient *clp, u_int8_t *nfhp, nfsdl_hash); dp->nfsdl_timestamp = NFSD_MONOSEC + 120; nfsstatsv1.cldelegates++; - nfscl_delegcnt++; + clp->nfsc_delegcnt++; } else { /* * A delegation already exists. If the new one is a Write @@ -923,6 +921,8 @@ nfscl_getcl(struct mount *mp, struct ucred *cred, NFSPROC_T *p, for (i = 0; i < NFSCLLAYOUTHASHSIZE; i++) LIST_INIT(&clp->nfsc_layouthash[i]); clp->nfsc_flags = NFSCLFLAGS_INITED; + clp->nfsc_delegcnt = 0; + clp->nfsc_deleghighwater = NFSCLDELEGHIGHWATER; clp->nfsc_clientidrev = 1; clp->nfsc_cbident = nfscl_nextcbident(); nfscl_fillclid(nmp->nm_clval, uuid, clp->nfsc_id, @@ -1755,10 +1755,10 @@ nfscl_freedeleg(struct nfscldeleghead *hdp, struct nfscldeleg *dp, bool freeit) TAILQ_REMOVE(hdp, dp, nfsdl_list); LIST_REMOVE(dp, nfsdl_hash); + dp->nfsdl_clp->nfsc_delegcnt--; if (freeit) free(dp, M_NFSCLDELEG); nfsstatsv1.cldelegates--; - nfscl_delegcnt--; } /* @@ -2868,7 +2868,7 @@ tryagain: nfsdl_list); LIST_REMOVE(dp, nfsdl_hash); TAILQ_INSERT_HEAD(&dh, dp, nfsdl_list); - nfscl_delegcnt--; + clp->nfsc_delegcnt--; nfsstatsv1.cldelegates--; } NFSLOCKCLSTATE(); @@ -2898,7 +2898,8 @@ tryagain: * The tailq list is in LRU order. */ dp = TAILQ_LAST(&clp->nfsc_deleg, nfscldeleghead); - while (nfscl_delegcnt > nfscl_deleghighwater && dp != NULL) { + while (clp->nfsc_delegcnt > clp->nfsc_deleghighwater && + dp != NULL) { ndp = TAILQ_PREV(dp, nfscldeleghead, nfsdl_list); if (dp->nfsdl_rwlock.nfslock_usecnt == 0 && dp->nfsdl_rwlock.nfslock_lock == 0 && @@ -2925,7 +2926,7 @@ tryagain: TAILQ_REMOVE(&clp->nfsc_deleg, dp, nfsdl_list); LIST_REMOVE(dp, nfsdl_hash); TAILQ_INSERT_HEAD(&dh, dp, nfsdl_list); - nfscl_delegcnt--; + clp->nfsc_delegcnt--; nfsstatsv1.cldelegates--; } } From nobody Mon Mar 3 01:56:28 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5hkN4Qj1z5VhW4; Mon, 03 Mar 2025 01:56: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5hkN3jXvz3D4M; Mon, 03 Mar 2025 01:56:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740966988; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vvEDs1B00Sl/E9H0l3nWSI5Uk8N6GVDebY38JCamzaM=; b=JwklflnZQMQWCBcU6zgbi1ybW8K/d6tix9+xXJxTmPvVP+2DZ4qvwlcsVfKVk+F9C2OXhV j7tKPowAIC1s2CslF5gZuiIZk53sfkrRCyRZ2W90VIiNfN8R1I1h8LD6JF/rOnqZvfO5cJ Q7RCCLSgE/A0go5DNJq2B9WzSpvjelyPKD5d6XmUwXt0IheoGw3o5XrlxiL/k8wIT2QakE ir3grE+s60qPMlKn3hXdMLVpxCbFWXjN1PXyG1Bq5T2dsxX49rfqgNFxc/flja0k+9plBW lFS77wZDJ2nXFpbA4C//nU+zZJk4SJzAVaf5UD7sV7hseLRD8nxV108EZ4nS8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740966988; a=rsa-sha256; cv=none; b=ImCI6b1u4qy08CQto2T5/Nx0b3ui+HB41W4rbw1rd30r2VhAGV/M/AlKJFrF42VCLQbnw0 nF5WPinUuL+z+8k1BiHrYbaW9fGZGskZsg5h3QP8sbP+iFbYH6f4eAcoVlxP3TABkI+Y/o fvGzO4cEiMPaIuRV6JAnP4IlkV8lNSOke1NlqGMGo5qC+wxU+RhCJcA5oBNZivS2aObTAw D/9KxlAka7x1J+9fTcsJu23Ras39LcjFG4RZkb7g8UHS7PBw/UnwRdi6SvuzYGQXJokYGV gk/U01QogUl6eBN5cWZEHz5X1M4vgeyJdIJoRA+ArD1bNv0LFNH9i6fYU+6iuw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740966988; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vvEDs1B00Sl/E9H0l3nWSI5Uk8N6GVDebY38JCamzaM=; b=VHI95rgfKw+wceUpjcU6ubRe4eSq0QX1aJle5329sAmAAlcvNfhgFnrmLmMpUJx7SJHHw4 lZDjuozHU/x5sz0qdEglVR3h0Hc2EThpca+19gWyk3syJ2ue24upZdggQEpn74yjg6UnE2 L66Af9YHQVzPXwreUKjl6U6gsaCwQqtXZYpLJwxPBzqz0xz1r2RoROkLBP1cvv3myBPQud 9DoxzDhOzoxwPzkW5t38QJ6IfdgHnpCyF0VWRRx1/jtsS0SEXfaZ7vQ/IFt3Se1Xuy2fiQ 1OsBis9Bw+4EgAaL4LuQgztVGcLU/djpAdYmvtHvX2ZVb9mlVDLVz0qcG7ux5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5hkN3BkKzBXP; Mon, 03 Mar 2025 01:56:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5231uS1P002621; Mon, 3 Mar 2025 01:56:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5231uSTM002618; Mon, 3 Mar 2025 01:56:28 GMT (envelope-from git) Date: Mon, 3 Mar 2025 01:56:28 GMT Message-Id: <202503030156.5231uSTM002618@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: b27900b8d9db - stable/14 - nfscl: Move layout high water variables into clientID List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b27900b8d9db139725bdb4e8e239a0d9ef308e4b Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=b27900b8d9db139725bdb4e8e239a0d9ef308e4b commit b27900b8d9db139725bdb4e8e239a0d9ef308e4b Author: Rick Macklem AuthorDate: 2025-02-17 23:41:34 +0000 Commit: Rick Macklem CommitDate: 2025-03-03 01:55:37 +0000 nfscl: Move layout high water variables into clientID Commit f5aff1871d32 moved the delegation high water variables into the clientID structure, so that they are now per mount instead of global. This patch does the same for the layout highwater variables. It happens that the layout highwater variables are not actually used. This patch changes the code to use them. This is needed to add support for the CB_RECALL_ANY callback in a future commit. This patch only affects NFSv4.1/4.2 mounts with the "pnfs" mount option. The effect on these mounts will be minimal, since layouts are returned when they are stale and this normally ensures that the highwater mark is never hit. (cherry picked from commit 7e26f1c21049b5a1a2f490d8ac1909ccb24f0db2) --- sys/fs/nfs/nfsclstate.h | 2 ++ sys/fs/nfsclient/nfs_clstate.c | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/sys/fs/nfs/nfsclstate.h b/sys/fs/nfs/nfsclstate.h index 84088a2a4fd2..92669ff8d1aa 100644 --- a/sys/fs/nfs/nfsclstate.h +++ b/sys/fs/nfs/nfsclstate.h @@ -118,6 +118,8 @@ struct nfsclclient { time_t nfsc_expire; int nfsc_delegcnt; int nfsc_deleghighwater; + int nfsc_layoutcnt; + int nfsc_layouthighwater; u_int32_t nfsc_clientidrev; u_int32_t nfsc_rev; u_int32_t nfsc_renew; diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index ad30a306c31d..12894e3dcb84 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -94,7 +94,6 @@ NFSCLSTATEMUTEX; int nfscl_inited = 0; struct nfsclhead nfsclhead; /* Head of clientid list */ -static int nfscl_layoutcnt = 0; static int nfscl_getopen(struct nfsclownerhead *, struct nfsclopenhash *, u_int8_t *, int, u_int8_t *, u_int8_t *, u_int32_t, struct nfscllockowner **, struct nfsclopen **); @@ -923,6 +922,8 @@ nfscl_getcl(struct mount *mp, struct ucred *cred, NFSPROC_T *p, clp->nfsc_flags = NFSCLFLAGS_INITED; clp->nfsc_delegcnt = 0; clp->nfsc_deleghighwater = NFSCLDELEGHIGHWATER; + clp->nfsc_layoutcnt = 0; + clp->nfsc_layouthighwater = NFSCLLAYOUTHIGHWATER; clp->nfsc_clientidrev = 1; clp->nfsc_cbident = nfscl_nextcbident(); nfscl_fillclid(nmp->nm_clval, uuid, clp->nfsc_id, @@ -2982,13 +2983,14 @@ tryagain2: lyp = TAILQ_LAST(&clp->nfsc_layout, nfscllayouthead); while (lyp != NULL) { nlyp = TAILQ_PREV(lyp, nfscllayouthead, nfsly_list); - if (lyp->nfsly_timestamp < NFSD_MONOSEC && + if ((lyp->nfsly_timestamp < NFSD_MONOSEC || + clp->nfsc_layoutcnt > clp->nfsc_layouthighwater) && (lyp->nfsly_flags & (NFSLY_RECALL | NFSLY_RETONCLOSE)) == 0 && lyp->nfsly_lock.nfslock_usecnt == 0 && lyp->nfsly_lock.nfslock_lock == 0) { NFSCL_DEBUG(4, "ret stale lay=%d\n", - nfscl_layoutcnt); + clp->nfsc_layoutcnt); recallp = malloc(sizeof(*recallp), M_NFSLAYRECALL, M_NOWAIT); if (recallp == NULL) @@ -5293,7 +5295,7 @@ nfscl_layout(struct nfsmount *nmp, vnode_t vp, u_int8_t *fhp, int fhlen, LIST_INSERT_HEAD(NFSCLLAYOUTHASH(clp, fhp, fhlen), lyp, nfsly_hash); lyp->nfsly_timestamp = NFSD_MONOSEC + 120; - nfscl_layoutcnt++; + clp->nfsc_layoutcnt++; nfsstatsv1.cllayouts++; } else { if (retonclose != 0) @@ -5668,7 +5670,7 @@ nfscl_freelayout(struct nfscllayout *layp) LIST_REMOVE(rp, nfsrecly_list); free(rp, M_NFSLAYRECALL); } - nfscl_layoutcnt--; + layp->nfsly_clp->nfsc_layoutcnt--; nfsstatsv1.cllayouts--; free(layp, M_NFSLAYOUT); } From nobody Mon Mar 3 05:32:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z5nW913jBz5nhJR; Mon, 03 Mar 2025 05:32:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z5nW90XG1z3sZt; Mon, 03 Mar 2025 05:32:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740979925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cahrw5t6PTzQYC2TIv7o5Nk6+TZpWVtyx/SuK0RXH/U=; b=PkJdVRMoQnmHvtnKCcZigI9zrgOs6Q1ZwezZ86NG58uwi7cQipOgLJKWgpPOi+DqHUdP/g HQv0vo9jmQOXErknRpbYSOQ3WXp0ndVE5nTVh2OdlLcA1O3UQbNGGUyM3DWaR8m5z3LDnN ulYC0ta/ByxDXGEY32KpYZy6oVNUZ1KLhgKsbpgjZFJtBgAcRygHFMmnwPGxuGc1OGDOmA vfVc2hl6EtHT73A/h34+K+Y6lr5cuP824Z4tp/DYCLTsrT8h8di88cx2tQLS500No4zfgY yYdTLojBLpatAlIwGRNF9k5VrDUft4R2kbrw3llgrT2KDe6vja5n26l0GpjzHw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1740979925; a=rsa-sha256; cv=none; b=hrnQ6QWF7jzKZHKl4Vm9ondwiHgJp8XAkxXGrDj5O5oNQI7Axiw144AAcFB+aomNg7otL1 LqUdVuWCSE2pf5/9AFMOCSUVW0iHddKuFiuZldgTkg5p/ht66Ja+wilZhpRd1MPoH5RZDU CNGqPFO+6O5nrZ7bOeAbAD3omPpSD/QO5iyx86N2ILKcf8sUGwQEuRBNBE1GCE6a3WLfpN ktRG2wvW//CUwHiTSJiooi2LSHifYFC34E3gfd24uNc8YXnpo78IDPab9z9haQEpnMDQnn fjYcyPVK+SRAvSr51o94bCmGU6USGhUpdrsVHQG2VahPhZWtvFbaYPnZsrq6Kg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1740979925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cahrw5t6PTzQYC2TIv7o5Nk6+TZpWVtyx/SuK0RXH/U=; b=QejS4RKEcAiS0Aeaq4iS/Z2wUZqO7sOhm8iYVvRgOybPL0RMXcC2owoeBSVgJBfRBjCkzE c4YYfbnm65C9Qr1YT5cICUtQN56XN1zD4I+9hFIodlxw/lv9P9efpZispALaKhxEacuvCl fVu7y7qfRQKCUYvmCETw2TL4i/v/HNpE/W0pgwBkTMbMJFs3KIv7hCqF31DbrqEfYjc73i SENo9N+SF8e7+ftra100DT2pp1KQ2SnCS9yqwBGEZhaZ3w8YzL/klf/QOVEpU6IJMGPO7X HqEscveiXtcVuKyiIkaOwHDc3IEFeBYhUrQi7Zc6IL2qkv5XnCx5vvvG9FojRg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z5nW907yDzbVY; Mon, 03 Mar 2025 05:32:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5235W4dk013800; Mon, 3 Mar 2025 05:32:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5235W4CK013797; Mon, 3 Mar 2025 05:32:04 GMT (envelope-from git) Date: Mon, 3 Mar 2025 05:32:04 GMT Message-Id: <202503030532.5235W4CK013797@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jose Luis Duran Subject: git: 8f652eb792ba - stable/14 - stand: Fix brand positioning on framebuffer console List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8f652eb792baf5902a367f68ea02014fdc47313d Auto-Submitted: auto-generated The branch stable/14 has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=8f652eb792baf5902a367f68ea02014fdc47313d commit 8f652eb792baf5902a367f68ea02014fdc47313d Author: Jose Luis Duran AuthorDate: 2025-02-24 14:36:10 +0000 Commit: Jose Luis Duran CommitDate: 2025-03-03 05:29:47 +0000 stand: Fix brand positioning on framebuffer console The drawer.lua script ignores the values in loader_brand_x and loader_brand_y on framebuffer consoles, always positioning the brand at (1, 1). Allow it to be positioned by accepting the x and y values just like the text version. For example: /boot/lua/gfx-nanobsd.lua: return { brand = { graphic = { "" }, requires_color = true, image = "/boot/images/freebsd-logo-rev.png" } } /boot/loader.conf.d/bootloader.conf: loader_logo="none" loader_brand="nanobsd" loader_brand_x="15" PR: 255202 Reviewed by: manu, imp Approved by: emaste (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49092 (cherry picked from commit 7d1d7f42302d80c33243501601b77323acc0717f) --- stand/lua/drawer.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stand/lua/drawer.lua b/stand/lua/drawer.lua index e55702ffee6c..8c4307220642 100644 --- a/stand/lua/drawer.lua +++ b/stand/lua/drawer.lua @@ -327,7 +327,7 @@ local function drawbrand() if core.isFramebufferConsole() and gfx.term_putimage ~= nil and branddef.image ~= nil then - if gfx.term_putimage(branddef.image, 1, 1, 0, 7, 0) + if gfx.term_putimage(branddef.image, x, y, 0, 7, 0) then return true end From nobody Mon Mar 3 14:58:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z624F2rDVz5pbtP; Mon, 03 Mar 2025 14:58:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z624F21dZz3p4S; Mon, 03 Mar 2025 14:58:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741013885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6ta1acVhpQBo77rYf/JPrm1BhUkbG/bLNl75joAInQg=; b=ZQ6ddyzrpQvxk31nZsJ8n99lU1+b1e179jgPeDq+Um9QdVlA496vJVtvibEDJrOG/hO6rx Mlp6NT7Bb1A/bR3SRlZoQnRr60X0AeoSpFfnKh9sOfG5Gkng0KN+1O+v5XhiKw0VDryVXb q9+bhDvVFn1yoJ61sbj3LEGoTAstH8MVFwcKaIL5A1bvBDj7QjqNfihcbOWbJA7HyytvDq S9mAi6gUVfRV2EdRU68Yuynw2TEZzxnWblBHIphssosHOBKu2AGz8ZgshKzJB7U7i2tz0Q stFsUttxTNxEFxoqp+RwXzfqzSbHmnUVwkCj1NjH/1io/6oFOj7Bjw/7r/aeZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741013885; a=rsa-sha256; cv=none; b=jRwprLlEQciwhfu8rRrSv4xCI3tG969s1U++Kezb00neZ0LtGNIA6qlNjXs/66h5fN/fnc WMKYKSigCRrIY0H4k7E3STEwc7mgYflT24mgBw+r3QsZsUATYeMs3gwCsoqsJgUPZBm+LW Ze7pfh6pJVtalIJd2Bdg/v3C0wzBAdc8Xw4TlCP9b+8cbp/P1PmcVnOLRRq+C4mD0yXYlk EVsXFH1PaiB8rkpfSUcYCw4j3Txt27LWj0TIhw6fTtkIJA0W0ueeS8yIL/dSULUdhBKOXL 5NpgEFthML3hL/n9YmQFtn1kJoRXLKlekIV2naVYlSuWW85ZggwypHWa4HlHLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741013885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6ta1acVhpQBo77rYf/JPrm1BhUkbG/bLNl75joAInQg=; b=PZ5rH3aDCgJz45Uso1zXm0e4JW5+NqJbk+3oJgNYqJTEe/5rUg5QrP0hZKRGyKoRKSpM0Z +UWbUV4OIaNiYvOhrbtTXPVjkPrj3fgOo/sOgkTkPqArFmXino647wtTIojnMAKpWc/6k6 4SRwyUttLnZGF6ala55mq+H7jdTEBJ99ujUXSXT2jEzfuUulgfpfvHk3Ok51u79dtYieIC 6y5u0ZgHccCTNU6n+1IwqRbwgtNoFE1KptBOvteunM/YTxUHH6w95MA/ecnNEvqS9D3U6H Grqh3F0ROqbWSU4Q13+PfE7I04bEryD0ex96jNs0IarOmIS75bCQffdjEE3aBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z624F1d4HzsQP; Mon, 03 Mar 2025 14:58:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Ew5Fj060017; Mon, 3 Mar 2025 14:58:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Ew5LA060014; Mon, 3 Mar 2025 14:58:05 GMT (envelope-from git) Date: Mon, 3 Mar 2025 14:58:05 GMT Message-Id: <202503031458.523Ew5LA060014@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 588838aa2484 - stable/14 - libkern: strdup.c, strndup.c: Prefer memcpy() over bcopy() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 588838aa2484619c93231aedb22c24e761d244da Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=588838aa2484619c93231aedb22c24e761d244da commit 588838aa2484619c93231aedb22c24e761d244da Author: Zhenlei Huang AuthorDate: 2025-02-17 15:37:59 +0000 Commit: Zhenlei Huang CommitDate: 2025-03-03 14:56:34 +0000 libkern: strdup.c, strndup.c: Prefer memcpy() over bcopy() The newly allocated memory can not overlap with the string if the string is properly null-terminated or the maxlen is a valid lengh, i.e no out of bounds reads. Prefer memcpy() over memmove(), aka bcopy(), for slight performance gain. No functional change intended. Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49026 (cherry picked from commit 90a3b6a7a4e4c8201ba1bb90fb8e2b088f3a5788) --- sys/libkern/strdup.c | 2 +- sys/libkern/strndup.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/libkern/strdup.c b/sys/libkern/strdup.c index f5685fcc554f..38f5c8f194c3 100644 --- a/sys/libkern/strdup.c +++ b/sys/libkern/strdup.c @@ -47,7 +47,7 @@ strdup_flags(const char *string, struct malloc_type *type, int flags) copy = malloc(len, type, flags); if (copy == NULL) return (NULL); - bcopy(string, copy, len); + memcpy(copy, string, len); return (copy); } diff --git a/sys/libkern/strndup.c b/sys/libkern/strndup.c index f8867c140e67..9065153d7232 100644 --- a/sys/libkern/strndup.c +++ b/sys/libkern/strndup.c @@ -43,7 +43,7 @@ strndup(const char *string, size_t maxlen, struct malloc_type *type) len = strnlen(string, maxlen) + 1; copy = malloc(len, type, M_WAITOK); - bcopy(string, copy, len); + memcpy(copy, string, len); copy[len - 1] = '\0'; return (copy); } From nobody Mon Mar 3 16:24:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64003zwVz5pkt2; Mon, 03 Mar 2025 16: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64003JPTz42jQ; Mon, 03 Mar 2025 16:24:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741019072; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TASwFqmk8TYHOZzDzYO4CumpQ48H0NoqPoi20T1xAfg=; b=H5+qzvt9Vb+GB/7Nej09eh75EoENcZnJnHClvGfknj9HeBJH1NbZuxw1sIL+kxi7icWcWy Ad4Lzqiq+zfvSK4UzbnnLVRRy9YEfWAnVscY5PhVlLnN138xvFPC2qrZ4RcsS95AYglrzA 05PFgVjm7IqLlweX2YdjcnY9DxGJ+o3F7hsMbnqw2r4FIOt5EVqOXEUWkanM/PDJsDipdk A/wxCWtAwyOGSp2s5LeczuvC/jUqX2K+kuYMIin7JRo/C9Na+puEU/X6ilKaEfge7vMMrs jgb8N5EOgt2FkzooDBRbLUM/IDau5FfPnwwDcSouH5xYtecNUBXBpl+to+1i9Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741019072; a=rsa-sha256; cv=none; b=jxafAiK+7pwZ7rKKI8FPlaA0kozJSPlV5fmbDjXkgQTRGDS5PZQVj6xYcSVGFS4gtpcYFb nhQw7GgYVWxIKk1mIoUSRI0ms7ZsZrh0XGfwdNpJ+tqkKrp3qxtlo2PMVLeGAdlHtvSmEJ s68XeriVqz0llhwt4eaL1y70XvYYMrHUt5MvgTSETpF/1OkP/LUhTFzzWJwlCCp9K3MMgB aV9dhb56MKp9IAPCZruUVdkrWF40tNn15LBBBEFQoun19cGkMuMZX4jF3mO8fMXGu6iNvM 2NxGJUNx9tnSDJMj4+xL64KZ4XYd5TsGfAE3P0aZOjnhBKyOJR/nTzKIUFz9JQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741019072; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TASwFqmk8TYHOZzDzYO4CumpQ48H0NoqPoi20T1xAfg=; b=ZPTxsVCJQY8yfDv1eVi/USmyKfZZOf5CFGi2XuES3mc9I98e7l8RhvkbBwm/L+4PBaIK2g 5nNi7+YmAFfTscyL5z3UUkqqylDQ0gXF3Yc1UDl3eEoiL9nAxOQJwiUNOC4uOBOqVX65jo XXiDBSTO1iPkH5VQDXLyosWHc1a8226lYgUc+uUws7EJssANF2vpd4w1D+HNBydGbzirC1 S5FAeRuCLMiPGzueJt6f8qqi0kzHtePGAWWHwG85hYTwHr0zMcbI0TAgPHGSqqtCb3iHWY 6hwvLEhIqFALEcBGgl6QkOqZcDaQwj3kmEpNpptzfUpTrWjSrnVmPsN3GUL0fg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64002Zcczv9K; Mon, 03 Mar 2025 16:24:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523GOW55027358; Mon, 3 Mar 2025 16:24:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GOW0I027355; Mon, 3 Mar 2025 16:24:32 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:24:32 GMT Message-Id: <202503031624.523GOW0I027355@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 7bcd307814d8 - stable/14 - Cirrus-CI: Bump image to (supported) 13.4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7bcd307814d891567155cd8c6736e2c868e8cca2 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=7bcd307814d891567155cd8c6736e2c868e8cca2 commit 7bcd307814d891567155cd8c6736e2c868e8cca2 Author: Ed Maste AuthorDate: 2025-02-21 18:07:32 +0000 Commit: Ed Maste CommitDate: 2025-03-03 16:24:21 +0000 Cirrus-CI: Bump image to (supported) 13.4 Sponsored by: The FreeBSD Foundation (cherry picked from commit 5bd7cf837c5fd30a04a45e20c1dcf18d113d98c4) --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 8daaef148ca7..5ec1a583255b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,7 +4,7 @@ compute_engine_instance: # gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images platform: freebsd image_project: freebsd-org-cloud-dev - image: freebsd-13-3-release-amd64 + image: freebsd-13-4-release-amd64 cpu: 8 memory: 8G disk: 40 From nobody Mon Mar 3 16:25:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z640g5tfJz5pkhC; Mon, 03 Mar 2025 16:25:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z640g59Pvz43H8; Mon, 03 Mar 2025 16:25:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741019107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s66Q0mR8BiDnptTmd6ahKG3pcermwi29BM05QP/A84s=; b=R+X5mWACUK6Exe55rTHRcsh6vhwCaftFu/BOqlx8pCX8U0YMmSiXjtLg3RL66Rex90b9u0 OiMFYL4zM2eyvRIMP3KKEnr+07hE6evjVWpS8OmrztA00h8ou8qvb5+xwbV0JsQO1recoI /Vm5VXoICw9oBYb2wBCY3aRYPRQltFnLerOJ95sKmMR4AXUCvkXQZMh9y+FBSMLtg5gwZB hVw5VjUhhURI4bTnKuwzsqrnK/fQvr1qBTH86jsipV9F+cR8s40KWiXaY9xT2KNlLOUzdt YJaehAj6C5k5UuvExpGwwb8tfSPWQqmP7Roy5z220C8kMLjXqYbstzMTxOK6vA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741019107; a=rsa-sha256; cv=none; b=JMgpg+8wMLJnhd+m7yzRkwluSjIkgD1GE8vMvw8KfgOO14j5Lc2MdG0kyiNaNI7hpAsmgJ m0fdg8+08Vzkqq4QdhXeLpwaRs5iXyPpp/S4zDgK1vDxAlRCS08Qlug4erBprpoX1/t4oK boS+zDZ4yEdw6UdT0q/gXg6L1bZ60lZuURcEwo10nNcDbFfaOOM8jcfQeD2ZlJdSpFpotX IQwoqYGIuh2vJwLoHsMmo40KZntHWd0NeJlG9OBLXucCnArSHEwe0WSWdSAAO5cguAK7e7 6JZBZJuCVh7nfPBd+G1WII9ThoMPKcWFeKfo4dUpnjhYh3ZkwVaXxkz/qrNCQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741019107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s66Q0mR8BiDnptTmd6ahKG3pcermwi29BM05QP/A84s=; b=b8f6yZ5zJ5EBQObR8QZHL/ffHEbdyfAIAlHFg9lvTInO9P610B/tX6jZF8YFIta3I9gw9C tnLiSRU6KK+toXSUxgkwz2Kpt6jeSdnQWNDJoYnOnhtcrGGyp5iHWC8e7W24M/fo16fRLj +TshvZ/agPjP3czaFVva+5F8gw5Z9OKpRO2x/XoeO03tj5V0A3HO9sDEp5HNZwIKVkjxAj 6Ho71O4QjLccbgrhOhV/5G6tjUJBzGZ5QrVY90NBB+OwKti+na/GnKgnYsegAz9pBXpIND nfUcl2b4bXPVLeZdgq0+m4qFJ5x7IymTAVFXFHr3JuJyu/YA7MHfWtAvlbUUVw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z640g4cz7zvqD; Mon, 03 Mar 2025 16:25:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523GP7pM027682; Mon, 3 Mar 2025 16:25:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GP770027679; Mon, 3 Mar 2025 16:25:07 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:25:07 GMT Message-Id: <202503031625.523GP770027679@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 206ed99650cf - stable/13 - Cirrus-CI: Bump image to (supported) 13.4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 206ed99650cf0fbdf31d0a1d710ba9cefe48ceae Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=206ed99650cf0fbdf31d0a1d710ba9cefe48ceae commit 206ed99650cf0fbdf31d0a1d710ba9cefe48ceae Author: Ed Maste AuthorDate: 2025-02-21 18:07:32 +0000 Commit: Ed Maste CommitDate: 2025-03-03 16:24:57 +0000 Cirrus-CI: Bump image to (supported) 13.4 Sponsored by: The FreeBSD Foundation (cherry picked from commit 5bd7cf837c5fd30a04a45e20c1dcf18d113d98c4) (cherry picked from commit 7bcd307814d891567155cd8c6736e2c868e8cca2) --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index bd4e7316a3d6..52266dd1674f 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,7 +4,7 @@ compute_engine_instance: # gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images platform: freebsd image_project: freebsd-org-cloud-dev - image: freebsd-13-3-release-amd64 + image: freebsd-13-4-release-amd64 cpu: 8 memory: 8G disk: 40 From nobody Mon Mar 3 16:56:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jJ090vz5pnPW; Mon, 03 Mar 2025 16:56:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jH61BPz465P; Mon, 03 Mar 2025 16:56:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qQ2XtcDHAxEkIdtMPRGGFvrOE7ypUTaCytpogXZBBec=; b=Mrd/YHwOAOuug+48WfnJo2qksTyqxPf4ErP8mOI0Xw9/MuU4Z28JOePTa/8a97DTLtsWFU WnhfXWzOx8KHsd0tBRH7yKHiDnLsV67T/tMSrtGxbnhMTgY/VfRKy6vJVSxxhLnZgxeiuE Z5gd3lDNReDk0Yhjx0S7CNntNFL+d5+TENbzxfsIGs3fGlMovC6HGuk0W8Dlu6kRORLVXq YaYWKHASCq9BkgnQ9C10pY8bpyOPK4kxIDLpETW6U6ISFibLggCIxfi1jKavF9buMWtyK2 uHWS7tzv24RPDX6lAIOr57wKXTc7P1IekJDnT0yvDmHEKBwP3P7yV1ZE4Wzlcg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021011; a=rsa-sha256; cv=none; b=LpdyIuUmBKkNgNmKRj04IdE60KNxf+7psgYmCHtPNZAtgKb60MmQ4/Dt5bJDuO6DPe3yBN N//lRTb1WgZ4c16fdwMkJmG+IuipXku8NUr0bDEtM5MOnSTyEvhitoa90aW2qw1GS+zvYC Pvf2OeiaZw9b0HJgv6UqrgwL0tyBcFg9vbHMreE8ouVzWc1o1VTj5VNfcUSJBy8HS+qn+k r5uQXgv91qu0hisKJuH1UfARojBYPx5oHtHlOmRnUH0gy8tRJ+6A0PhOgRHihi1g7A0e9K TSCa8bZKXEeYKcOrhNA+vlC34wc5e8EwJkMDQ2SMLDxvrDXnx0ihfUa9EhD3ZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qQ2XtcDHAxEkIdtMPRGGFvrOE7ypUTaCytpogXZBBec=; b=wCJ3+jHwAld/thKIgE/IF2Tl7nnSR+n7xJmMzK7iK/hts0kuF+P13yVa2G+DBTxrcT8a9L u9u1rty7NbdRVZAImlIoRZ31mhen7HRL97m0h8h3a6mFnQM62qml/pOWIbSck0ac36v1Pz HNaZ/45dEPIL2x+aAeJNsqGcDcdcbredCnIc6jWDlqjjwImD22FF48toPg2VOOvpcWraE1 CDLFh7UAjx6FV1lQiP/g7jZyaDo+dswktYMg0oG/tIq/ODQ4zHMzfYitz05qKCxe4sGhME rWi1k1uZgVDL8Kv5ci1uL3GeQz/+d5dmFTr6Rp7xEWL/Q+DUnTIDyR5blaKfOg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jH5Qs7zwJb; Mon, 03 Mar 2025 16:56:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523GupYC083462; Mon, 3 Mar 2025 16:56:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GupGH083459; Mon, 3 Mar 2025 16:56:51 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:51 GMT Message-Id: <202503031656.523GupGH083459@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 8e8058b7373b - stable/14 - kqueue.2: Editorial pass List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8e8058b7373b2af1e2113a303d34434579d5cb6e Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=8e8058b7373b2af1e2113a303d34434579d5cb6e commit 8e8058b7373b2af1e2113a303d34434579d5cb6e Author: John Baldwin AuthorDate: 2024-12-30 19:09:48 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 kqueue.2: Editorial pass - Use consistent language to describe user values unchanged by the kernel. - Replace passive language with active in a few places. - Add a history note for kqueuex() and kqueue1(). - Add an MLINK and synopsis for kqueue1(). - Various wording and markup tweaks. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D48203 (cherry picked from commit 9b1585384d53d0f9cc4585a6efd8cc95116407d7) --- lib/libc/sys/Makefile.inc | 1 + lib/libc/sys/kqueue.2 | 65 ++++++++++++++++++++++++++++++----------------- 2 files changed, 42 insertions(+), 24 deletions(-) diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc index 7628f121feac..f01b085f712b 100644 --- a/lib/libc/sys/Makefile.inc +++ b/lib/libc/sys/Makefile.inc @@ -443,6 +443,7 @@ MLINKS+=jail.2 jail_attach.2 \ jail.2 jail_set.2 MLINKS+=kldunload.2 kldunloadf.2 MLINKS+=kqueue.2 kevent.2 \ + kqueue.2 kqueue1.2 \ kqueue.2 kqueuex.2 \ kqueue.2 EV_SET.3 MLINKS+=link.2 linkat.2 diff --git a/lib/libc/sys/kqueue.2 b/lib/libc/sys/kqueue.2 index 066ad717111a..d6e949baa24c 100644 --- a/lib/libc/sys/kqueue.2 +++ b/lib/libc/sys/kqueue.2 @@ -38,6 +38,8 @@ .Ft int .Fn kqueuex "u_int flags" .Ft int +.Fn kqueue1 "int flags" +.Ft int .Fo kevent .Fa "int kq" .Fa "const struct kevent *changelist" @@ -92,26 +94,35 @@ which will allow sharing of the kqueue between two processes. The .Fn kqueuex system call also creates a new kernel event queue, and additionally takes -the +a .Fa flags argument, which is a bitwise-inclusive OR of the following flags: .Bl -tag -width "KQUEUE_CLOEXEC" -.It Fa KQUEUE_CLOEXEC +.It Dv KQUEUE_CLOEXEC The returned file descriptor is automatically closed on .Xr execve 2 .El +.Pp The -.Ql fd = kqueue() -call is equivalent to -.Ql fd = kqueuex(0) . +.Fn kqueue +system call is equivalent to calling +.Fn kqueuex +with +.Fa flags +set to 0. .Pp -For compatibility with -.Nx , -the +The .Fn kqueue1 -function is provided, which accepts the -.Dv O_CLOEXEC -flag with the expected semantic. +function exists for compatibility with +.Nx . +The +.Fa flags +argument accepts zero or more of the following values: +.Bl -tag -width O_CLOEXEC +.It Dv O_CLOEXEC +The returned file descriptor is automatically closed on +.Xr execve 2 +.El .Pp The .Fn kevent @@ -211,24 +222,25 @@ Filter-specific data value. Opaque user-defined value passed through the kernel unchanged. .It Fa ext Extended data passed to and from kernel. -The +The meaning of the .Fa ext[0] and .Fa ext[1] -members use is defined by the filter. -If the filter does not use them, the members are copied unchanged. +members is defined by the filter. +If a filter does not use them, +these members are passed through the kernel unchanged. The .Fa ext[2] and .Fa ext[3] -members are always passed through the kernel as-is, -making additional context available to application. +members are always passed through the kernel unchanged, +providing additional user-defined values. .El .Pp The .Va flags field can contain the following values: -.Bl -tag -width EV_DISPATCH +.Bl -tag -width EV_KEEPUDATA .It Dv EV_ADD Adds the event to the kqueue. Re-adding an existing event @@ -270,12 +282,12 @@ to hold the .Dv EV_ERROR event, then subsequent changes will not get processed. .It Dv EV_ONESHOT -Causes the event to return only the first occurrence of the filter +Return only the first occurrence of the filter being triggered. After the user retrieves the event from the kqueue, it is deleted. .It Dv EV_CLEAR -After the event is retrieved by the user, its state is reset. +Reset the state of the event after it is retrieved by the user. This is useful for filters which report state transitions instead of the current state. Note that some filters may automatically @@ -287,18 +299,16 @@ See .Sx RETURN VALUES below. .It Dv EV_KEEPUDATA -Causes -.Fn kevent -to leave unchanged any +Preserve the .Fa udata associated with an existing event. This allows other aspects of the event to be modified without requiring the caller to know the .Fa udata -value presently associated. +value previously registered with the event. This is especially useful with .Dv NOTE_TRIGGER -or flags like +or .Dv EV_ENABLE . This flag may not be used with .Dv EV_ADD . @@ -872,6 +882,13 @@ and .Fn kevent system calls first appeared in .Fx 4.1 . +The +.Fn kqueuex +system call +and +.Fn kevent1 +function first appeared in +.Fx 14.0 . .Sh AUTHORS The .Fn kqueue From nobody Mon Mar 3 16:56:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jK28DVz5pnV1; Mon, 03 Mar 2025 16:56:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jJ6d85z45xl; Mon, 03 Mar 2025 16:56:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=33J46NGIp8M1LVwXL2GRq68DQtMsttjj7voFTXjy62U=; b=QoGjsqiHwsixnRkjYxCCLVHGydt5RZLS7l1kiq7th2Kbi4jefm7OlA5MHAD4bots8NrqqM I7xizBBzRtA8Wf+4WTNAPkdDGvY+lJYA0DglC/vo2RF4SfPjHsoA2HXsFu+oF5DSMUAgeq CM8zCCaQZZflXszKdl9GIDGO3Zmnigg19fFjBBSOhA/q1AzTqVX80XS+64A2j1zoh6w5kl wOObU0X+RRDotd02y95oXDdoG0VTpE7KgJKsv/JA0opusNwOV7fFGzLs1MeGBgrc3OMfZy zeyNPTtEfYTWBuEn230OqIfLHBD9CSSkS3ceyEJMkBEzn74y88kMbp+BsYHanw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021012; a=rsa-sha256; cv=none; b=jW+GjbCZ0M391pM3gLOhOTJWVpM4VNuxdDgYMPC1RsXG9AmhjyAuhxy3iDKLqa9l+FdTuc Qr7R8xLR+XRD29Se/CWj08XlB6xbIEJMo6UIPMsV7rtm8Wh/rtztgFSANpZE8lXB3KrNxL RCVIzvEp9j5H53zWnGTDZh8qjIHXEEWV5uR7ameFoelAqMH+fGbqRKveKUwApmElrPn637 qJKQQzDXCkecgbBoLK4p/OsMXfTNwUQgiOaXiQhwSNeeeqQJz0xzbfikJbwJNgLyu9lJgK Q+YFKBLqZM5i3P0/4UQfQPsTU+hgp2y6uxO59Mw847jkRoc2hr8WnPiCU6iM0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=33J46NGIp8M1LVwXL2GRq68DQtMsttjj7voFTXjy62U=; b=NC0gQJleGph8wQqFaUctakqZ3QjEQmw0H035Lt+MeuUQ8bCHyiVZJLj7lbZlaa5sUcQZ2j /Eoe8bWM1nydlxls9Wfz2D/iSZoAgFReoFTiUHv2xT9l5Q02gL1HMZ6WGeL4I7BOza56lD UVRVt6C8YdffXv6xbqLZonVgX12EX5T6DQ5b365GRo/lphq+xV0FfHK3ywJG37OiZJPzA6 83VslsJG78RYbDcbDwGOiOS2eVdKJyXVY+T9k7nIHZ3UIhCxAPpLPCfrqBMBFRnMzc+dIk Dd69hvOr15Vv0hqcqSKIjdO2HtR0RY06UxH+bMVECF4CdP57/Zc16r00aoqMng== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jJ64R9zwc7; Mon, 03 Mar 2025 16:56:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Guqus083503; Mon, 3 Mar 2025 16:56:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Guqxk083500; Mon, 3 Mar 2025 16:56:52 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:52 GMT Message-Id: <202503031656.523Guqxk083500@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: f31e3922bd84 - stable/14 - open.2: Editorial pass List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f31e3922bd844c9f962263dfec361c769611a524 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=f31e3922bd844c9f962263dfec361c769611a524 commit f31e3922bd844c9f962263dfec361c769611a524 Author: John Baldwin AuthorDate: 2025-01-03 15:48:24 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 open.2: Editorial pass - Use a typical tagged list for the open flags instead of a literal block. This permits using markup in the flag descriptions. Also, drop the offset to avoid indenting the entire list. - Note that O_RESOLVE_BENEATH only applies to openat(2) - Use a clearer description of O_CLOEXEC (what it means, not the internal flag it sets) - Note that exactly one permission flag is required. - Split up a paragraph on various flags so that each flag gets its own paragraph. Some flags already had their own paragraph, so this is more consistent. It also makes it clearer which flag a sentence is talking about when a flag has more than one sentence. - Appease some errors from igor and man2ps - In the discussion about a returned directory descriptor opened with O_SEARCH, avoid the use of Fa fd since the descriptor in question is a return value and not an argument to open or openat. - Various and sundry markup and language tweaks Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D48253 (cherry picked from commit 826509a3c3642db6a110f8f43ae8860c40c72ad2) --- lib/libc/sys/open.2 | 184 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 123 insertions(+), 61 deletions(-) diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index 4cdceb336532..ea4bc9160da1 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 25, 2024 +.Dd January 3, 2025 .Dt OPEN 2 .Os .Sh NAME @@ -114,7 +114,8 @@ The argument to .Fn openat must be strictly relative to a file descriptor -.Fa fd . +.Fa fd ; +that is, .Fa path must not be an absolute path and must not contain ".." components which cause the path resolution to escape the directory hierarchy @@ -137,46 +138,98 @@ If the .Dv vfs.lookup_cap_dotdot_nonlocal MIB is set to zero, ".." is not allowed if found on non-local filesystem. .Pp -The flags specified are formed by +The +.Fa flags +are formed by .Em or Ns 'ing -the following values -.Pp -.Bd -literal -offset indent -compact -O_RDONLY open for reading only -O_WRONLY open for writing only -O_RDWR open for reading and writing -O_EXEC open for execute only -O_SEARCH open for search only, an alias for O_EXEC -O_NONBLOCK do not block on open -O_APPEND append on each write -O_CREAT create file if it does not exist -O_TRUNC truncate size to 0 -O_EXCL error if create and file exists -O_SHLOCK atomically obtain a shared lock -O_EXLOCK atomically obtain an exclusive lock -O_DIRECT eliminate or reduce cache effects -O_FSYNC synchronous writes (historical synonym for O_SYNC) -O_SYNC synchronous writes -O_DSYNC synchronous data writes -O_NOFOLLOW do not follow symlinks -O_NOCTTY ignored -O_TTY_INIT ignored -O_DIRECTORY error if file is not a directory -O_CLOEXEC set FD_CLOEXEC upon open -O_VERIFY verify the contents of the file -O_RESOLVE_BENEATH path resolution must not cross the fd directory -O_PATH record only the target path in the opened descriptor -O_EMPTY_PATH openat, open file referenced by fd if path is empty -.Ed +the following values: +.Pp +.Bl -tag -width O_RESOLVE_BENEATH +.It Dv O_RDONLY +open for reading only +.It Dv O_WRONLY +open for writing only +.It Dv O_RDWR +open for reading and writing +.It Dv O_EXEC +open for execute only +.It Dv O_SEARCH +open for search only +(an alias for +.Dv O_EXEC +typically used with +.Dv O_DIRECTORY ) +.It Dv O_NONBLOCK +do not block on open +.It Dv O_APPEND +set file pointer to the end of the file before each write +.It Dv O_CREAT +create file if it does not exist +.It Dv O_TRUNC +truncate size to 0 +.It Dv O_EXCL +fail if +.Dv O_CREAT +is set and the file exists +.It Dv O_SHLOCK +atomically obtain a shared lock +.It Dv O_EXLOCK +atomically obtain an exclusive lock +.It Dv O_DIRECT +read and write directly from the backing store +.It Dv O_FSYNC +synchronous data and metadata writes +.Pq historical synonym for Dv O_SYNC +.It Dv O_SYNC +synchronous data and metadata writes +.It Dv O_DSYNC +synchronous data writes +.It Dv O_NOFOLLOW +do not follow symlinks +.It Dv O_NOCTTY +ignored +.It Dv O_TTY_INIT +ignored +.It Dv O_DIRECTORY +error if file is not a directory +.It Dv O_CLOEXEC +automatically close file on +.Xr execve 2 +.It Dv O_VERIFY +verify the contents of the file with +.Xr mac_veriexec 4 +.It Dv O_RESOLVE_BENEATH +.Pq Xr openat 2 only +path resolution must not cross the +.Fa fd +directory +.It Dv O_PATH +record only the target path in the opened descriptor +.It Dv O_EMPTY_PATH +.Pq Xr openat 2 only +open file referenced by +.Fa fd +if path is empty +.El +.Pp +Exactly one of the flags +.Dv O_RDONLY , +.Dv O_WRONLY , +.Dv O_RDWR , +or +.Dv O_EXEC +must be provided. .Pp Opening a file with .Dv O_APPEND -set causes each write on the file -to be appended to the end. +set causes each write on the resulting file descriptor +to be appended to the end of the file. +.Pp If .Dv O_TRUNC is specified and the file exists, the file is truncated to zero length. +.Pp If .Dv O_EXCL is set with @@ -184,7 +237,8 @@ is set with and the file already exists, .Fn open -returns an error. +fails with +.Er EEXIST . This may be used to implement a simple exclusive access locking mechanism. If @@ -194,12 +248,13 @@ a symbolic link, .Fn open will fail even if the symbolic link points to a non-existent name. -If the +.Pp +If .Dv O_NONBLOCK -flag is specified and the +is specified and the .Fn open -system call would result -in the process being blocked for some reason (e.g., waiting for +system call would +block for some reason (for example, waiting for carrier on a dialup line), .Fn open returns immediately. @@ -245,6 +300,8 @@ The system will attempt to avoid caching the data you read or write. If it cannot avoid caching the data, it will minimize the impact the data has on the cache. Use of this flag can drastically reduce performance if not used with care. +The semantics of this flag are filesystem dependent, +and some filesystems may ignore it entirely. .Pp .Dv O_NOCTTY may be used to ensure the OS does not assign this file as the @@ -302,16 +359,14 @@ reside in the directory hierarchy beneath the starting directory. Absolute paths or even the temporal escape from beneath of the starting directory is not allowed. .Pp -When -.Fa fd +When a directory is opened with .Dv O_SEARCH , execute permissions are checked at open time. -The -.Fa fd +The returned file descriptor may not be used for any read operations like .Xr getdirentries 2 . -The primary use for this descriptor will be as the lookup descriptor for the +The primary use of this descriptor is as the lookup descriptor for the .Fn *at family of functions. If @@ -319,7 +374,9 @@ If was not requested at open time, then the .Fn *at functions use the current directory permissions for the directory referenced -by the descriptor at the time of the call. +by the descriptor at the time of the +.Fn *at +call. .Pp .Dv O_PATH returns a file descriptor that can be used as a directory file descriptor for @@ -328,9 +385,9 @@ and other system calls taking a file descriptor argument, like .Xr fstatat 2 and others. The other functionality of the returned file descriptor is limited to -the descriptor-level operations. -It can be used for -.Bl -tag -width readlinkat(2) -offset indent -compact +the following descriptor-level operations: +.Pp +.Bl -tag -width __acl_aclcheck_fd -offset indent -compact .It Xr fcntl 2 but advisory locking is not allowed .It Xr dup 2 @@ -344,12 +401,14 @@ socket using a .Dv SCM_RIGHTS message .It Xr kqueue 2 -using for +only with .Dv EVFILT_VNODE .It Xr readlinkat 2 -.It Xr __acl_get_fd 2 , Xr __acl_aclcheck_fd 2 +.It Xr __acl_get_fd 2 +.It Xr __acl_aclcheck_fd 2 .El -But operations like +.Pp +Other operations like .Xr read 2 , .Xr ftruncate 2 , and any other that operate on file and not on file descriptor (except @@ -358,18 +417,19 @@ are not allowed. .Pp A file descriptor created with the .Dv O_PATH -flag can be opened into normal (operable) file descriptor by +flag can be opened as a normal (operable) file descriptor by specifying it as the .Fa fd argument to .Fn openat -with empty +with an empty .Fa path -and flag -.Dv O_EMPTY_PATH . +and the +.Dv O_EMPTY_PATH +flag. Such an open behaves as if the current path of the file referenced by .Fa fd -is passed, except that the path walk permissions are not checked. +is passed, except that path walk permissions are not checked. See also the description of .Dv AT_EMPTY_PATH flag for @@ -380,6 +440,8 @@ If successful, .Fn open returns a non-negative integer, termed a file descriptor. It returns \-1 on failure. +The file descriptor value returned is the lowest numbered descriptor +currently not in use by the process. The file pointer used to mark the current position within the file is set to the beginning of the file. .Pp @@ -394,7 +456,7 @@ A sleeping open of a fifo (see .Xr mkfifo 2 ) is restarted as normal. .Pp -When a new file is created it is given the group of the directory +When a new file is created, it is assigned the group of the directory which contains it. .Pp Unless @@ -405,9 +467,9 @@ the new descriptor is set to remain open across system calls; see .Xr close 2 , .Xr fcntl 2 -and +and the description of the .Dv O_CLOEXEC -description. +flag. .Pp The system imposes a limit on the number of file descriptors open simultaneously by one process. @@ -511,7 +573,7 @@ or is specified but the underlying file system does not support locking. .It Bq Er EOPNOTSUPP The named file is a special file mounted through a file system that -does not support access to it (e.g.\& NFS). +does not support access to it (for example, NFS). .It Bq Er EWOULDBLOCK .Dv O_NONBLOCK and one of @@ -688,7 +750,7 @@ system call is believed to be compatible with .\" .St -p1003.1-2017 , .\" XXX: This should be replaced in the future when an appropriate argument to .\" the St macro is available: -p1003.1-2017 -.No IEEE Std 1003.1-2008, 2017 Edition (\\(LqPOSIX.1\\(Rq) , +.No IEEE Std 1003.1-2008, 2017 Edition ("POSIX.1") , which specifies that behavior for .Dv O_SEARCH , in the absence of the flag the implementation checks the current From nobody Mon Mar 3 16:56:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jL249Pz5pn7d; Mon, 03 Mar 2025 16:56:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jL0dtSz46B4; Mon, 03 Mar 2025 16:56:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ghxyJL+O+7LTOO+dXvb6evIBVu2Hzo9N2CVeXNN10aU=; b=c+CTW02N/Tv8JAqxJm8sCqloWTC6Q6iEr9sDKR6Idd51SYIQNydF/zzG/KZ2h25hK8Kwt9 JCOxvMMqlznCWVpeP6MUiv+tr7vxcaGLEz5n6QOCaoTEYdb5geyp6e4rsWzi0gvWpUEdmr JVEJRseBov9Q4gv0/P/FqfU9sgkHUdmiIvwT1A7P6eFQ+N5oq8gJhm4J/6vNn0WKVa64bl tq1M05IHAeFxfc8tUGrK0W3DAyRD3GBKn1E8wrTjhlRsBS+qMQXO586qMKgFNVqqBjImsb PHjFJySR5QTWqZ5lMFHC0kO4U+m965r/ouybmafB0Hae8hecOFfiLoNsqqKpPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021014; a=rsa-sha256; cv=none; b=ymZKVLd5NFToWVw0CvD9B83Mq59Y4wtLmUEKIuiDf/RDNcud/lM9CyNAViBFVm1FfYY7DY cZYPEAbLUUPygE78tik+7gzOckRaGJ6K51WUD9RZwoAkDaaFtBBJCGoQcqM204o6VT5vDi 4sCC0RTpbgtCjmx5rEboPgR7F4jWDy4BA38o5ao1pETKjv0S+1HNQZ1BVqs9cUiJEbS+4H vDMNETqhCbU6zYx+EsTCKKw6a4nCOMyKqNnu9MWEZNT3dc6BoJLxHcLIkKpQLEll55hYzy 78G0Y+BtpW0NlQLBKE8+N67jxPujyQl5TEcC0GjnZvhYFK28/qsLi0hvVxer1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ghxyJL+O+7LTOO+dXvb6evIBVu2Hzo9N2CVeXNN10aU=; b=uOx1K1cfPQ8keFEHqND7+rY24xF85COEiF0YDWxG2ljr/HS4KTxfQuLnL+O5IcwUPvtVqs YEtPfMOqFSI9pDAq5BnezNT3Gc7Zq34Yu+pm0uzmIFh4XM7+wAC8tdvf6umbih4IIUm0o6 L9hDzdAQuNl+OIVfxNDBJTnowdAAJpYMBiuRu60z2dDulQlc3cYs1wzLlt9eOnj14CKkwI HCZKWURVT5u5Tgbsk/6ptOEyP2Q6AexdrXAZZ6VpvZ+i8Vn2KdzmklaGeauTOktMFaacmp n87OcIkIoOyn9LubDznM3eRU7w6Jwhxd1GIucWo0eIqEH60uRDB4MHGSgimJKQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jL00CTzwZZ; Mon, 03 Mar 2025 16:56:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gur4M083544; Mon, 3 Mar 2025 16:56:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GurPS083539; Mon, 3 Mar 2025 16:56:53 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:53 GMT Message-Id: <202503031656.523GurPS083539@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 6ed9a9237d63 - stable/14 - nv.9: Editorial pass List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6ed9a9237d631a44f7e3e7b360ed353579f2a7b4 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=6ed9a9237d631a44f7e3e7b360ed353579f2a7b4 commit 6ed9a9237d631a44f7e3e7b360ed353579f2a7b4 Author: John Baldwin AuthorDate: 2025-01-03 15:51:28 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 nv.9: Editorial pass Various rewording tweaks and clarifications to some behavior (e.g. nvlist_size doesn't require calling nvlist_pack first). Reviewed by: pjd Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48256 (cherry picked from commit ae1cc4182b3fa6abe4de85ab201a198917dda73a) --- share/man/man9/cnv.9 | 36 ++-- share/man/man9/dnv.9 | 26 +-- share/man/man9/nv.9 | 482 +++++++++++++++++++++++++++++++-------------------- 3 files changed, 330 insertions(+), 214 deletions(-) diff --git a/share/man/man9/cnv.9 b/share/man/man9/cnv.9 index de37c8271eb9..fa5310e174e1 100644 --- a/share/man/man9/cnv.9 +++ b/share/man/man9/cnv.9 @@ -23,14 +23,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd June 18, 2018 +.Dd January 3, 2025 .Dt CNV 9 .Os .Sh NAME .Nm cnvlist_get , .Nm cnvlist_take , .Nm cnvlist_free -.Nd "API for managing name/value pairs by cookie." +.Nd "API for managing name/value pairs by cookie" .Sh LIBRARY .Lb libnv .Sh SYNOPSIS @@ -115,7 +115,7 @@ The .Nm libnv library permits easy management of name/value pairs and can send and receive them over sockets. -For more information, also see +For more information, see .Xr nv 9 . .Pp The concept of cookies is explained in @@ -128,25 +128,28 @@ from .Pp The .Fn cnvlist_name -function returns the name of an element associated with the given cookie. +function returns the name of an element associated with +.Fa cookie . .Pp The .Fn cnvlist_type -function returns the type of an element associated with the given cookie. +function returns the type of an element associated with +.Fa cookie . Types which can be returned are described in .Xr nv 9 . .Pp The .Nm cnvlist_get -family of functions obtains the value associated with the given cookie. +functions return the value associated with +.Fa cookie . Returned strings, nvlists, descriptors, binaries, or arrays must not be modified -by the user, since they still belong to the nvlist. +by the user since they still belong to the nvlist. The nvlist must not be in an error state. .Pp The .Nm cnvlist_take -family of functions returns the value associated with the given cookie and -removes the element from the nvlist. +functions return the value associated with the given cookie and +remove the element from the nvlist. When the value is a string, binary, or array value, the caller is responsible for freeing the returned memory with .Fn free 3 . @@ -154,18 +157,21 @@ When the value is an nvlist, the caller is responsible for destroying the returned nvlist with .Fn nvlist_destroy . When the value is a descriptor, the caller is responsible for closing the -returned descriptor with the +returned descriptor with .Fn close 2 . .Pp The .Nm cnvlist_free -family of functions removes an element of the supplied cookie and frees all -resources. -If an element of the given cookie has the wrong type or does not exist, the +functions remove the element identified by +.Fa cookie +and free any associated resources. +If the element identified by +.Fa cookie +has the wrong type or does not exist, the program -is aborted. +aborts. .Sh EXAMPLES -The following example demonstrates how to deal with cnvlist API. +The following example demonstrates how to deal with the cnvlist API. .Bd -literal int type; void *cookie, *scookie, *bcookie; diff --git a/share/man/man9/dnv.9 b/share/man/man9/dnv.9 index 8c89d6599801..16f603df8392 100644 --- a/share/man/man9/dnv.9 +++ b/share/man/man9/dnv.9 @@ -23,13 +23,13 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 26, 2016 +.Dd January 3, 2025 .Dt DNV 9 .Os .Sh NAME .Nm dnvlist_get , .Nm dnvlist_take -.Nd "API for getting name/value pairs. Nonexistent pairs do not raise an error." +.Nd "API for getting name/value pairs with a default value" .Sh LIBRARY .Lb libnv .Sh SYNOPSIS @@ -63,26 +63,32 @@ The .Nm libnv library permits easy management of name/value pairs and can send and receive them over sockets. -For more information, also see +For more information, see .Xr nv 9 . .Pp The .Nm dnvlist_get -family of functions returns the value associated with the specified name. -If an element of the specified name does not exist, the function returns the +functions return the value associated with +.Fa name . +If an element named +.Fa name +does not exist, the function returns the value provided in .Fa defval . Returned strings, nvlists, descriptors, binaries, or arrays must not be modified -by the user. -They still belong to the nvlist. +by the user since they still belong to the nvlist. If the nvlist is in an error state, attempts to use any of these functions will cause the program to abort. .Pp The .Nm dnvlist_take -family of functions returns the value associated with the specified name and -removes the element from the nvlist. -If an element of the supplied name does not exist, the value provided in +functions return the value associated with +.Fa name +and removes the associated element from +.Fa nvl . +If an element named +.Fa name +does not exist, the value provided in .Nm defval is returned. When the value is a string, binary, or array value, the caller is diff --git a/share/man/man9/nv.9 b/share/man/man9/nv.9 index 67c05247fdfb..4e4542c146ef 100644 --- a/share/man/man9/nv.9 +++ b/share/man/man9/nv.9 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 2, 2023 +.Dd January 3, 2025 .Dt NV 9 .Os .Sh NAME @@ -280,11 +280,12 @@ .Sh DESCRIPTION The .Nm libnv -library allows to easily manage name value pairs as well as send and receive +library permits creating and managing name value pairs as well as +sending and receiving them over sockets. A group (list) of name value pairs is called an .Nm nvlist . -The API supports the following data types: +The API supports the following data types for values: .Bl -ohang -offset indent .It Sy null ( NV_TYPE_NULL ) There is no data associated with the name. @@ -330,7 +331,7 @@ The .Fn nvlist_create function allocates memory and initializes an nvlist. .Pp -The following flag can be provided: +The following flags can be provided: .Pp .Bl -tag -width "NV_FLAG_IGNORE_CASE" -compact -offset indent .It Dv NV_FLAG_IGNORE_CASE @@ -342,28 +343,36 @@ Names in the nvlist do not have to be unique. The .Fn nvlist_destroy function destroys the given nvlist. -Function does nothing if -.Dv NULL -nvlist is provided. -Function never modifies the -.Va errno -global variable. +This function does nothing if +.Fa nvl +is +.Dv NULL . +This function never modifies +.Va errno . .Pp The .Fn nvlist_error -function returns any error value that the nvlist accumulated. -If the given nvlist is -.Dv NULL -the +function returns the first error set on +.Fa nvl . +If +.Fa nvl +is not in the error state, +this function returns zero. +If +.Fa nvl +is +.Dv NULL , .Er ENOMEM -error will be returned. +is returned. .Pp The .Fn nvlist_set_error -function sets an nvlist to be in the error state. +function sets an the error value for +.Fa nvl . Subsequent calls to .Fn nvlist_error -will return the given error value. +will return +.Fa error . This function cannot be used to clear the error state from an nvlist. This function does nothing if the nvlist is already in the error state. .Pp @@ -371,16 +380,24 @@ The .Fn nvlist_empty function returns .Dv true -if the given nvlist is empty and +if +.Fa nvl +is empty and .Dv false otherwise. -The nvlist must not be in error state. +The nvlist must not be in the error state. .Pp The .Fn nvlist_flags -function returns flags used to create the nvlist with the -.Fn nvlist_create -function. +function returns the flags used to create +.Fa nvl +with the +.Fn nvlist_create , +.Fn nvlist_recv , +.Fn nvlist_unpack , +or +.Fn nvlist_xfer +functions. .Pp The .Fn nvlist_in_array @@ -392,7 +409,8 @@ is part of an array that is a member of another nvlist. .Pp The .Fn nvlist_clone -functions clones the given nvlist. +function clones +.Fa nvl . The clone shares no resources with its origin. This also means that all file descriptors that are part of the nvlist will be duplicated with the @@ -401,154 +419,170 @@ system call before placing them in the clone. .Pp The .Fn nvlist_dump -dumps nvlist content for debugging purposes to the given file descriptor +function dumps nvlist content for debugging purposes to the file descriptor .Fa fd . .Pp The .Fn nvlist_fdump -dumps nvlist content for debugging purposes to the given file stream +dumps nvlist content for debugging purposes to the file stream .Fa fp . .Pp The .Fn nvlist_size -function returns the size of the given nvlist after converting it to binary -buffer with the +function returns the size of the binary buffer that would be generated by the .Fn nvlist_pack function. .Pp The .Fn nvlist_pack function converts the given nvlist to a binary buffer. -The function allocates memory for the buffer, which should be freed with the +The function allocates memory for the buffer which should be freed with the .Xr free 3 function. If the .Fa sizep argument is not .Dv NULL , -the size of the buffer will be stored there. -The function returns +the size of the buffer is stored there. +This function returns .Dv NULL in case of an error (allocation failure). If the nvlist contains any file descriptors .Dv NULL will be returned. -The nvlist must not be in error state. +The nvlist must not be in the error state. .Pp The .Fn nvlist_unpack -function converts the given buffer to the nvlist. +function converts a binary buffer to a new nvlist. The .Fa flags -argument defines what type of the top level nvlist is expected to be. -Flags are set up using the -.Fn nvlist_create -function. -If the nvlist flags do not match the flags passed to -.Fn nvlist_unpack , -the nvlist will not be returned. -Every nested nvlist list should be checked using -.Fn nvlist_flags -function. -The function returns +argument has the same meaning as the +.Fa flags +argument passed to +.Fn nvlist_create . +If +.Fa flags +do not match the flags used to create the initial nvlist before it was packed, +this function will fail. +The flags of nested nvlists are not validated by this function. +The caller is responsible for validating the flags on any nested nvlists using +.Fn nvlist_flags . +This function returns the new nvlist on success or .Dv NULL in case of an error. .Pp The .Fn nvlist_send -function sends the given nvlist over the socket given by the -.Fa sock -argument. -Note that nvlist that contains file descriptors can only be send over +function sends +.Fa nvl +over the socket +.Fa sock . +Note that nvlists that contain file descriptors can only be sent over .Xr unix 4 domain sockets. .Pp The .Fn nvlist_recv -function receives nvlist over the socket given by the -.Fa sock -argument. -The +function receives an nvlist over the socket +.Fa sock . +As with +.Fn nvlist_unpack , +the .Fa flags -argument defines what type of the top level nvlist is expected to be. -Flags are set up using the -.Fn nvlist_create -function. -If the nvlist flags do not match the flags passed to -.Fn nvlist_recv , -the nvlist will not be returned. -Every nested nvlist list should be checked using -.Fn nvlist_flags -function. +argument is used to construct the new nvlist and must match the flags used +to construct the original nvlist written to +.Fa sock +by the peer. +The flags of nested nvlists are not validated by this function. +The caller is responsible for validating the flags on any nested nvlists using +.Fn nvlist_flags . +This function returns the new nvlist on success or +.Dv NULL +in case of an error. .Pp The .Fn nvlist_xfer -function sends the given nvlist over the socket given by the +function sends +.Fa nvl +over the socket .Fa sock -argument and receives nvlist over the same socket. +argument and then receives a new nvlist over the same socket. The .Fa flags -argument defines what type of the top level nvlist is expected to be. -Flags are set up using the -.Fn nvlist_create -function. -If the nvlist flags do not match the flags passed to -.Fn nvlist_xfer , -the nvlist will not be returned. -Every nested nvlist list should be checked using -.Fn nvlist_flags -function. -The given nvlist is always destroyed. +argument applies to the new nvlist similar to +.Fn nvlist_recv . +The nvlist +.Fa nvl +is always destroyed. +This function returns the new nvlist on success or +.Dv NULL +in case of an error. .Pp The .Fn nvlist_next -function iterates over the given nvlist returning names and types of subsequent +function iterates over +.Fa nvl +returning the names and types of subsequent elements. The .Fa cookiep -argument allows the function to figure out which element should be returned -next. -The +argument determines which element is returned. +If .Va *cookiep -should be set to -.Dv NULL -for the first call and should not be changed later. -Returning +is +.Dv NULL , +the values for the first element in the list are returned. +Otherwise, +.Va *cookiep +should contain the result of a prior call to +.Fn nvlist_next +in which case values for the next element from +.Fa nvl +are returned. +This function returns .Dv NULL -means there are no more elements on the nvlist. +when there are no more elements on +.Fa nvl . The .Fa typep -argument can be NULL. -Elements may not be removed from the nvlist while traversing it. -The nvlist must not be in error state. -Note that -.Fn nvlist_next -will handle -.Va cookiep -being set to +argument can be .Dv NULL . -In this case first element is returned or -.Dv NULL -if nvlist is empty. -This behavior simplifies removing the first element from the list. +Elements may not be removed from +.Fa nvl +the nvlist while traversing it. +.Fa nvl +must not be in the error state. +Additional actions can be performed on an element identified by a cookie +via the +.Xr cnv 9 +API . .Pp The .Fn nvlist_exists function returns .Dv true -if element of the given name exists (besides of its type) or +if an element named +.Fa name +exists in +.Fa nvl +(regardless of type) or .Dv false otherwise. -The nvlist must not be in error state. +The nvlist must not be in the error state. .Pp The .Fn nvlist_exists_type function returns .Dv true -if element of the given name and the given type exists or +if an element named +.Fa name +of type +.Fa type +exists or .Dv false otherwise. -The nvlist must not be in error state. +The nvlist must not be in the error state. .Pp The .Fn nvlist_exists_null , @@ -565,11 +599,13 @@ The .Fn nvlist_exists_descriptor_array functions return .Dv true -if element of the given name and the given type determined by the function name +if element named +.Fa name +with the type determined by the function name exists or .Dv false otherwise. -The nvlist must not be in error state. +The nvlist must not be in the error state. .Pp The .Fn nvlist_add_null , @@ -586,18 +622,23 @@ The .Fn nvlist_add_string_array , .Fn nvlist_add_nvlist_array , .Fn nvlist_add_descriptor_array -functions add element to the given nvlist. -When adding string or binary buffer the functions will allocate memory -and copy the data over. -When adding nvlist, the nvlist will be cloned and clone will be added. -When adding descriptor, the descriptor will be duplicated using the +functions add an element to +.Fa nvl . +When adding a string or binary buffer, these functions allocate memory +and copy the data. +When adding an nvlist, the +.Fa value +nvlist is cloned and the clone is added to +.Fa nvl . +When adding a file descriptor, the descriptor is duplicated via the .Xr dup 2 -system call and the new descriptor will be added. -The array functions will fail if there are any +system call and the new file descriptor is added. +The array functions fail if there are any .Dv NULL elements in the array, or if the array pointer is .Dv NULL . -If an error occurs while adding new element, internal error is set which can be +If an error occurs while adding a new element, +an internal error is set which can be examined using the .Fn nvlist_error function. @@ -612,17 +653,27 @@ The .Fn nvlist_move_string_array , .Fn nvlist_move_nvlist_array , .Fn nvlist_move_descriptor_array -functions add new element to the given nvlist, but unlike +functions add an element to +.Fa nvl , +but unlike the .Fn nvlist_add_ -functions they will consume the given resource. -In the case of strings, descriptors, or nvlists every elements must be -unique, or it could cause a double free. -The array functions will fail if there are any +functions they consume the given resource. +For string, file descriptor, binary buffer, or nvlist values, +no value should be moved into an nvlist multiple times; +doing so will cause that value to be freed multiple times. +Note that strings or binary buffers must be allocated with +.Xr malloc 3 , +and the pointers will be released via +.Xr free 3 +when +.Fa nvl +is destroyed. +The array functions fail if there are any .Dv NULL elements, or if the array pointer is .Dv NULL . If an error occurs while adding new element, the resource is destroyed and -internal error is set which can be examined using the +an internal error is set which can be examined using the .Fn nvlist_error function. .Pp @@ -638,37 +689,61 @@ The .Fn nvlist_get_string_array , .Fn nvlist_get_nvlist_array , .Fn nvlist_get_descriptor_array -functions return the value that corresponds to the given key name. -In the case of strings, nvlists, descriptors, binary, or arrays, the returned -resource should not be modified - they still belong to the nvlist. -If an element of the given name does not exist, the program will be aborted. -To avoid this, the caller should check for the existence of the name before -trying to obtain the value, or use the -.Xr dnvlist 3 -extension, which can provide a default value in the case of a missing element. -The nvlist must not be in error state. +functions return the value of the first element in +.Fa nvl +named +.Fa name . +For string, nvlist, file descriptor, binary buffer, or array values, +the returned resource must not be modified - it still belongs to +.Fa nvl . +.Pp +If an element named +.Fa name +does not exist, the program aborts. +To avoid this, the caller should check for the existence of the element before +trying to obtain the value or use the +.Xr dnv 9 +extension which provides a default value in the case of a missing element. +.Pp +The nvlist must not be in the error state. .Pp The .Fn nvlist_get_parent -function returns the parent nvlist of the nested nvlist. +function returns the parent nvlist of +.Fa nvl . .Pp The .Fn nvlist_get_array_next -function returns the next element from the array or -.Dv NULL -if the nvlist is not in array or it is the last element. -Note that -.Fn nvlist_get_array_next -only works if you added the nvlist array using the -.Fn nvlist_move_nvlist_array +function returns the next element after +.Fa nvl +from an array of nvlists. +If +.Fa nvl +is not in an array of nvlists or it is the last element, +this function returns +.Dv NULL . +An nvlist is only in an nvlist array if it was added to an nvlist array using +.Fn nvlist_add_nvlist_array , +.Fn nvlist_append_nvlist_array , or -.Fn nvlist_add_nvlist_array -functions. +.Fn nvlist_move_nvlist_array . .Pp The .Fn nvlist_get_pararr -function returns the next element in the array, or if not available -the parent of the nested nvlist. +function returns the next element after +.Fn nvl +from an array of nvlists. +If +.Fn nvl +is the last element in an array of nvlists, +the parent nvlist of +.Fa nvl is +returned. +If +.Fn nvl +is not in an array of nvlists, +.Dv NULL +is returned. .Pp The .Fn nvlist_take_bool , @@ -682,42 +757,38 @@ The .Fn nvlist_take_string_array , .Fn nvlist_take_nvlist_array , .Fn nvlist_take_descriptor_array -functions return value associated with the given name and remove the element -from the nvlist. -In case of string and binary values, the caller is responsible for free returned -memory using the +functions return the value of the element named +.Fa name +and remove the element from +.Fa nvl . +For string and binary buffer values, the caller is responsible for freeing +the returned value using the .Xr free 3 function. -In case of nvlist, the caller is responsible for destroying returned nvlist +For nvlist values, the caller is responsible for destroying the returned nvlist using the .Fn nvlist_destroy function. -In case of descriptor, the caller is responsible for closing returned descriptor +For file descriptor values, the caller is responsible for closing the +returned descriptor using the .Fn close 2 system call. -If an element of the given name does not exist, the program will be aborted. -To avoid that the caller should check for the existence of the given name -before trying to obtain the value, or use the -.Xr dnvlist 3 -extension, which can provide a default value in the case of a missing element. -In the case of an array of strings or binary values, the caller is responsible -for freeing every element of the array using the -.Xr free 3 -function. -In the case of an array of nvlists, the caller is responsible for destroying -every element of array using the -.Fn nvlist_destroy -function. -In the case of descriptors, the caller is responsible for closing every -element of array using the -.Fn close 2 -system call. -In every case involving an array, the caller must also free the pointer to -the array using the +For array values, the caller is responsible for destroying every element of +the array based on the element type. +In addition, the caller must also free the pointer to the array using the .Xr free 3 function. -The nvlist must not be in error state. +.Pp +If an element named +.Fa name +does not exist, the program aborts. +To avoid this, the caller should check for the existence of the element before +trying to obtain the value or use the +.Xr dnv 9 +extension which provides a default value in the case of a missing element. +.Pp +The nvlist must not be in the error state. .Pp The .Fn nvlist_append_bool_array , @@ -725,28 +796,46 @@ The .Fn nvlist_append_string_array , .Fn nvlist_append_nvlist_array , .Fn nvlist_append_descriptor_array -functions append an element to the existing array using the same semantics -as the add functions (i.e. the element will be copied when applicable). -If the array for a given key does not exist, then it will be created +functions append an element to an existing array using the same semantics +as the add functions (that is, the element will be copied when applicable). +If the array named +.Fa name +does not exist, then it will be created as if using the .Fn nvlist_add__array function. -The internal error is set on append failure. +If an error occurs while appending a new element, +an internal error is set on +.Fa nvl . .Pp The .Fn nvlist_free -function removes element of the given name from the nvlist (besides of its type) +function removes the first element named +.Fa name +from +.Fa nvl +(regardless of type) and frees all resources associated with it. -If element of the given name does not exist, the program will be aborted. -The nvlist must not be in error state. +If no element named +.Fa name +exists, the program aborts. +The nvlist must not be in the error state. .Pp The .Fn nvlist_free_type -function removes element of the given name and the given type from the nvlist +function removes the first element named +.Fa name +of type +.Fa type +from +.Fa nvl and frees all resources associated with it. -If element of the given name and the given type does not exist, the program -will be aborted. -The nvlist must not be in error state. +If no element named +.Fa name +of type +.Fa type +exists, the program aborts. +The nvlist must not be in the error state. .Pp The .Fn nvlist_free_null , @@ -761,20 +850,31 @@ The .Fn nvlist_free_string_array , .Fn nvlist_free_nvlist_array , .Fn nvlist_free_descriptor_array -functions remove element of the given name and the given type determined by the -function name from the nvlist and free all resources associated with it. -If element of the given name and the given type does not exist, the program -will be aborted. -The nvlist must not be in error state. +functions remove the first element named +.Fa name +with the type determined by the function name from +.Fa nvl +free all resources associated with it. +If no element named +.Fa name +with the appropriate type exists, the program aborts. +The nvlist must not be in the error state. .Sh NOTES The .Fn nvlist_pack and .Fn nvlist_unpack -functions handle the byte-order conversions, so the binary buffer can be -packed/unpacked by the hosts with the different endianness. +functions handle byte-order conversions, so binary buffers can be +packed and unpacked on hosts with different endianness. +.Pp +The +.Fn nvlist_recv , +.Fn nvlist_send , +and +.Fn nvlist_xfer +functions can transfer nvlists between hosts with different endianness. .Sh EXAMPLES -The following example demonstrates how to prepare an nvlist and send it over +The following example demonstrates how to prepare an nvlist and send it over a .Xr unix 4 domain socket. .Bd -literal @@ -786,16 +886,18 @@ if (fd < 0) err(1, "open(\\"/tmp/foo\\") failed"); nvl = nvlist_create(0); + /* - * There is no need to check if nvlist_create() succeeded, + * There is no need to check if nvlist_create() succeeded * as the nvlist_add_() functions can cope. * If it failed, nvlist_send() will fail. */ nvlist_add_string(nvl, "filename", "/tmp/foo"); nvlist_add_number(nvl, "flags", O_RDONLY); + /* * We just want to send the descriptor, so we can give it - * for the nvlist to consume (that's why we use nvlist_move + * for the nvlist to consume (that is why we use nvlist_move * not nvlist_add). */ nvlist_move_descriptor(nvl, "fd", fd); @@ -806,7 +908,7 @@ if (nvlist_send(sock, nvl) < 0) { nvlist_destroy(nvl); .Ed .Pp -Receiving nvlist and getting data: +Receiving an nvlist and retrieving element values: .Bd -literal nvlist_t *nvl; const char *command; @@ -817,25 +919,27 @@ nvl = nvlist_recv(sock, 0); if (nvl == NULL) err(1, "nvlist_recv() failed"); -/* For command we take pointer to nvlist's buffer. */ +/* For command we accept a pointer to the nvlist's internal buffer. */ command = nvlist_get_string(nvl, "command"); + /* * For filename we remove it from the nvlist and take * ownership of the buffer. */ filename = nvlist_take_string(nvl, "filename"); -/* The same for the descriptor. */ + +/* The same for the file descriptor. */ fd = nvlist_take_descriptor(nvl, "fd"); printf("command=%s filename=%s fd=%d\n", command, filename, fd); +/* command is freed by nvlist_destroy() */ nvlist_destroy(nvl); free(filename); close(fd); -/* command was freed by nvlist_destroy() */ .Ed .Pp -Iterating over nvlist: +Iterating over an nvlist: .Bd -literal nvlist_t *nvl; const char *name; @@ -898,7 +1002,7 @@ nvl = nvlist_recv(sock, 0); if (nvl == null) err(1, "nvlist_recv() failed"); -cookie = null; +cookie = NULL; do { while ((name = nvlist_next(nvl, &type, &cookie)) != NULL) { if (type == NV_TYPE_NVLIST) { From nobody Mon Mar 3 16:56:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jM5gngz5pnV3; Mon, 03 Mar 2025 16:56:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jM0xrfz46DJ; Mon, 03 Mar 2025 16:56:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8eaCogNpW6/QdRfs+0F3wag/UbcM2Gsyd3vZbH549dU=; b=huJKqgJ0NEUoS2XWawfcQOskR/T+1gnj87sT2+IEIx6iC5/GoIQdAYz3axB4uIUwl7dRBY a5lDej1Pxt/AOKGfCrNVxw/qo2ebEqv1FPAko/Vh67ETt1RuYW/x4/npcHZ7OubE1SgdrH IxLBubmqq3krO1CAwLCgE/cIwx0yBB8R/1rLRU0oH+de6EZg34XgKQYmLtv4ZMAwEyVWHm rgK3FUjjr6pSeKPagWHxQzZumvOsOOcU1AC3yCOEOYjAwwBvVLSH/w7JKppB0MFpsJ+u+4 KyOaoG4WFvisHfBLPg41NX7QR42feUO99FLzDeAHMXqD2JbWd1lrS6XAcoUibw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021015; a=rsa-sha256; cv=none; b=CI5OgfarJjd4yPh822DW6deJSntySXOLqsZM0zZ1pHuHxFUgw9pd+m093cPQzO46Vu7PiF jYMh1DWx3SxRZK7SOAxU35We0MgmnpcHnxhqdtSH1v2Coi0hcJNVqu25Z3m2PPkPoiYuCz Tft7AYpVae2ZICV9igZ1xN4OmEFM3Xiw7q1pe2DRqoAn8ZfFX7BFtASm6L6p5H0aUMRkXf 8TmpefOXWzcYPlJ0RJFAD+XD2g63R5uPGeRqdhwmOnBzRCTJpjOzyiVE7+sLejp/0L4K99 l//rLDNQscrjqqjPqQw8DD1WX2IFQCW0Tbu039xr+3GjJZyb72ur7vmqer2fbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8eaCogNpW6/QdRfs+0F3wag/UbcM2Gsyd3vZbH549dU=; b=o9Q9zhPXQJQgfzQH7qasEjgyzOLGCUDtxPaKKz+K1JfIz7Ny+6kPj+3hH5aR5PAbkrq/uF 0PyM0zglekkVY2Z6kxbd0y7GS1oQmDIbNxl+1drvr0MjD0QzAiKXiR/h6nHflyho2uw5ke RUy2tbrtbxjVaecrHuIYt42wj3Hsw6CvaoalEnssuifS8UN4AH2X7ORyx8mxkeUG+YAjOa ioKxDzB4pMKtA95ZoE0sNOtOhI4ZmA7IqwUmNPWMM2Az4H4cnyjNl9GMdAya8Lx7yIl/9e /LKCxKeRQAEbHcTCy+tsfXKUhgeuMlIAHFRKideh12mAuHJA3CNplJsBlJldkg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jM0VHYzwrD; Mon, 03 Mar 2025 16:56:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523GusJS083578; Mon, 3 Mar 2025 16:56:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GusO0083575; Mon, 3 Mar 2025 16:56:54 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:54 GMT Message-Id: <202503031656.523GusO0083575@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: a088781bc36d - stable/14 - nv.9: Add a new subsection documenting kernel-specific behavior List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a088781bc36d6a4aba053c3a94f810fec9d9f899 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=a088781bc36d6a4aba053c3a94f810fec9d9f899 commit a088781bc36d6a4aba053c3a94f810fec9d9f899 Author: John Baldwin AuthorDate: 2025-01-03 15:51:51 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 nv.9: Add a new subsection documenting kernel-specific behavior Reviewed by: emaste Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48257 (cherry picked from commit ecb5fe3c5e483e09544645ba84281b4a8cba4edf) --- share/man/man9/nv.9 | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/share/man/man9/nv.9 b/share/man/man9/nv.9 index 4e4542c146ef..8c99f1d12200 100644 --- a/share/man/man9/nv.9 +++ b/share/man/man9/nv.9 @@ -859,7 +859,7 @@ If no element named .Fa name with the appropriate type exists, the program aborts. The nvlist must not be in the error state. -.Sh NOTES +.Ss Notes The .Fn nvlist_pack and @@ -873,6 +873,36 @@ The and .Fn nvlist_xfer functions can transfer nvlists between hosts with different endianness. +.Ss Kernel Considerations +The +.Nm nv , +.Nm cnv , +and +.Nm dnv +APIs can be used in the kernel with the following differences: +.Bl -bullet +.It +File descriptor and file descriptor array value types are not supported. +.It +.Fn nvlist_recv , +.Fn nvlist_send , +and +.Fn nvlist_xfer +are not supported. +.It +All memory allocations use the +.Dv M_NVLIST +memory type with +.Xr malloc 9 +and +.Xr free 9 . +As a result, any allocated buffers moved into an nvlist must be allocated with +.Dv M_NVLIST , +and buffers returned by functions such as +.Fn nvlist_pack +must be freed with +.Dv M_NVLIST . +.El .Sh EXAMPLES The following example demonstrates how to prepare an nvlist and send it over a .Xr unix 4 From nobody Mon Mar 3 16:56:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jN4R8pz5pnV6; Mon, 03 Mar 2025 16:56:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jN1zmYz45xw; Mon, 03 Mar 2025 16:56:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bDwGkA+PE3XJfr7DqXM6+FRcybSqj3O9IiJLNJzxreE=; b=Fb2oAccH4zdsCFukTQ55sfzUlIECxHPlN7qP8z3Lo7f0bxdjeDwJKSea5A7Ox0qBBC95nN RdrcOr21EoJWRkm4Yi0tYAUfSEMZt9zGLjBWqggpsQOmKF6BiqMXuhxCu+t9Ldx49BgUPD ISA1lUAmAKMdavPzxQZ/8zOACjkeoWNYEXh9W/zcLip7XGakdAaJixFCpsEeF0EOjf7/FY qAL5WD6Q4dA2ONImQs9dncsoQvwT2PpyAf6DBBEIz3cR4tElT0otX5KWeld7AIhny8O8Rq tpu6IQ5lc1FqAqiIlhZEteAD0DBb4KykAUGho8+IoA1ltLa5DWtzvJGyRy7d/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021016; a=rsa-sha256; cv=none; b=spWilObByHD9/oVMDLUnT65zCmxEEr4ULi4c6vVQrCFP4PMnWnlumh9wM4FchlUSyNbfGs 8w08g9rI71R9w5dRDzkxgU4z1aPCprEasAtY8wC0pziysALkBlWpSlEzRCXHdvG2cZT5An NZe71r8dqqPuZwJNERm0zZG3T+2e/YdnsSaYUjgLCZJKmp3MvC5kfszQ+rq3Q2n0Xkzzb+ vRujxuT3z8sHzTlXbXKobonLqsbOPyqM4zzo61UP9XflcaIWXzq46zeOsLlXylRRDUlKYj veNTWSHN0sMnOkZl2PBbLhfROi/NNGO9ClAWxbJ+Zyt8vnrENHDgWCOHx7Hipg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bDwGkA+PE3XJfr7DqXM6+FRcybSqj3O9IiJLNJzxreE=; b=TaySs2uk7D+5Rhkg/lYpdsE2t3pMB5eUtmvUk70FTzpF9n4pHGAkDfbv1YHuUo2SM1rUil 7n3xxDW44Y4cYz/pPRAlJDJ4nvQoqw+69fiy54OMDrvtH1Q5ezlwk1351lHYQKdzEXofOJ CijtgTt8SxYxn/IloLeQOXsJfje5rO6vqfiRefOA++3AxMu/hbPg5wAeZd+XQmwcpeQ+UI Z72AN4l2rLYyw0rXYT6+ca9+0UpQL73V4raiFtzxCcGZKugFdsX0EK35HHA66Zx9p7ib2n 8uSCkTt19FhrXPt/kCrSqZ4xv0k3ZoXFfI8kXvVkXdX5NMDxcKZoofUIDzTmJQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jN1TRdzwc8; Mon, 03 Mar 2025 16:56:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Guu0Y083613; Mon, 3 Mar 2025 16:56:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GuuZK083610; Mon, 3 Mar 2025 16:56:56 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:56 GMT Message-Id: <202503031656.523GuuZK083610@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: dab1feb75e3d - stable/14 - cpu_machdep.9: New manpage describing the semantics of several cpu_* List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dab1feb75e3d637c08ada1885da6f5a26563179d Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=dab1feb75e3d637c08ada1885da6f5a26563179d commit dab1feb75e3d637c08ada1885da6f5a26563179d Author: John Baldwin AuthorDate: 2025-01-03 16:02:43 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 cpu_machdep.9: New manpage describing the semantics of several cpu_* This page is not exhaustive but covers all of the MD interface functions currently declared in . Requested by: kib Reviewed by: kib Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D48022 (cherry picked from commit 9c87cbbcaaedbc4e07d5c9d0248bf76f72531f57) --- share/man/man9/Makefile | 21 +++ share/man/man9/cpu_machdep.9 | 397 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 418 insertions(+) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index abf7ba82e6b3..90aad3dcfdcd 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -67,6 +67,7 @@ MAN= accept_filter.9 \ contigmalloc.9 \ copy.9 \ counter.9 \ + cpu_machdep.9 \ cpuset.9 \ cr_bsd_visible.9 \ cr_cansee.9 \ @@ -907,6 +908,26 @@ MLINKS+=counter.9 counter_u64_alloc.9 \ counter.9 SYSCTL_ADD_COUNTER_U64.9 \ counter.9 SYSCTL_COUNTER_U64_ARRAY.9 \ counter.9 SYSCTL_ADD_COUNTER_U64_ARRAY.9 +MLINKS+=cpu_machdep.9 cpu_copy_thread.9 \ + cpu_machdep.9 cpu_exec_vmspace_reuse.9 \ + cpu_machdep.9 cpu_exit.9 \ + cpu_machdep.9 cpu_fetch_syscall_args.9 \ + cpu_machdep.9 cpu_fork.9 \ + cpu_machdep.9 cpu_fork_kthread_handler.9 \ + cpu_machdep.9 cpu_idle.9 \ + cpu_machdep.9 cpu_idle_wakeup.9 \ + cpu_machdep.9 cpu_procctl.9 \ + cpu_machdep.9 cpu_ptrace.9 \ + cpu_machdep.9 cpu_set_syscall_retval.9 \ + cpu_machdep.9 cpu_set_upcall.9 \ + cpu_machdep.9 cpu_set_user_tls.9 \ + cpu_machdep.9 cpu_switch.9 \ + cpu_machdep.9 cpu_sync_core.9 \ + cpu_machdep.9 cpu_thread_alloc.9 \ + cpu_machdep.9 cpu_thread_clean.9 \ + cpu_machdep.9 cpu_thread_exit.9 \ + cpu_machdep.9 cpu_thread_free.9 \ + cpu_machdep.9 cpu_throw.9 MLINKS+=cpuset.9 CPUSET_T_INITIALIZER.9 \ cpuset.9 CPUSET_FSET.9 \ cpuset.9 CPU_CLR.9 \ diff --git a/share/man/man9/cpu_machdep.9 b/share/man/man9/cpu_machdep.9 new file mode 100644 index 000000000000..9ab42807eac1 --- /dev/null +++ b/share/man/man9/cpu_machdep.9 @@ -0,0 +1,397 @@ +.\"- +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2024 (holder) +.\" +.\" This software was developed by SRI International, the University of +.\" Cambridge Computer Laboratory (Department of Computer Science and +.\" Technology), and Capabilities Limited under Defense Advanced Research +.\" Projects Agency (DARPA) Contract No. FA8750-24-C-B047 ("DEC"). +.\" +.Dd January 3, 2025 +.Dt cpu_machdep 9 +.Os +.Sh NAME +.Nm cpu_machdep , +.Nm cpu_copy_thread , +.Nm cpu_exec_vmspace_reuse , +.Nm cpu_exit , +.Nm cpu_fetch_syscall_args , +.Nm cpu_fork , +.Nm cpu_fork_kthread_handler , +.Nm cpu_idle , +.Nm cpu_idle_wakeup , +.Nm cpu_procctl , +.Nm cpu_set_syscall_retval , +.Nm cpu_set_upcall , +.Nm cpu_set_user_tls , +.Nm cpu_switch , +.Nm cpu_sync_core , +.Nm cpu_thread_alloc , +.Nm cpu_thread_clean , +.Nm cpu_thread_exit , +.Nm cpu_thread_free , +.Nm cpu_throw +.Nd machine-dependent interfaces to handle CPU and thread state +.Sh SYNOPSIS +.In sys/proc.h +.In sys/ptrace.h +.Ft void +.Fn cpu_copy_thread "struct thread *td" "struct thread *td0" +.Ft bool +.Fn cpu_exec_vmspace_reuse "struct proc *p" "struct vm_map *map" +.Ft void +.Fn cpu_exit "struct thread *td" +.Ft int +.Fn cpu_fetch_syscall_args "struct thread *td" +.Ft void +.Fo cpu_fork +.Fa "struct thread *td1" "struct proc *p2" "struct thread *td2" "int flags" +.Fc +.Ft void +.Fo cpu_fork_kthread_handler +.Fa "struct thread *td" "void (*func)(void *)" "void *arg" +.Fc +.Ft void +.Fn cpu_idle "int busy" +.Ft int +.Fn cpu_idle_wakeup "int cpu" +.Ft int +.Fo cpu_procctl +.Fa "struct thread *td" "int idtype" "id_t id" "int com" "void *data" +.Fc +.Ft int +.Fn cpu_ptrace "struct thread *_td" "int req" "void *addr" "int data" +.Ft void +.Fn cpu_set_syscall_retval "struct thread *td" "int error" +.Ft int +.Fo cpu_set_upcall +.Fa "struct thread *td" "void (*entry)(void *)" "void *arg" "stack_t *stack" +.Fc +.Ft int +.Fn cpu_set_user_tls "struct thread *td" "void *tls_base" +.Ft void +.Fn cpu_switch "struct thread *old" "struct thread *new" "struct mtx *mtx" +.Ft void +.Fn cpu_sync_core "void" +.Ft void +.Fn cpu_thread_alloc "struct thread *td" +.Ft void +.Fn cpu_thread_clean "struct thread *td" +.Ft void +.Fn cpu_thread_exit "struct thread *td" +.Ft void +.Fn cpu_thread_free "struct thread *td" +.Ft void +.Fn cpu_throw "struct thread *old" "struct thread *new" +.Sh DESCRIPTION +These functions provide architecture-specific implementations of +machine-independent abstractions. +.Pp +.Fn cpu_exec_vmspace_reuse +returns true if +.Fn exec_new_vmspace +can reuse an existing +.Vt struct vmspace +.Pq Fa map +for the process +.Fa p +during +.Xr execve 2 . +This is only invoked if +.Fa map +is not shared with any other consumers. +If this returns false, +.Fn exec_new_vmspace +will create a new +.Vt struct vmspace . +.Pp +.Fn cpu_exit +releases machine-dependent resources other than the address space for the +process containing +.Fa td +during process exit. +.Pp +.Fn cpu_fork +copies and updates machine-dependent state +(for example, the pcb and user registers) from the forking thread +.Fa td1 +in an existing process to the new thread +.Fa td2 +in the new process +.Fa p2 . +This function must set up the new thread's kernel stack and pcb so that +.Fa td2 +calls +.Fn fork_exit +when it begins execution passing a pointer to +.Fn fork_return +as the +.Fa callout +argument and +.Fa td2 +as the +.Fa arg +argument. +.Pp +.Fn cpu_fork_kthread_handler +adjusts a new thread's initial pcb and/or kernel stack to pass +.Fa func +and +.Fa arg +as the +.Fa callout +and +.Fa arg +arguments to +.Fn fork_exit . +This must be called before a new thread is scheduled to run and is +used to set the +.Dq main +function for kernel threads. +.Pp +.Fn cpu_copy_thread +copies machine-dependent state (for example, the pcb and user registers) from +.Fa td +to +.Fa td0 +when creating a new thread in the same process. +This function must set up the new thread's kernel stack and pcb so that +.Fa td0 +calls +.Fn fork_exit +when it begins execution passing a pointer to +.Fn fork_return +as the +.Fa callout +argument and +.Fa td0 +as the +.Fa arg +argument. +.Pp +.Fn cpu_set_upcall +updates a new thread's initial user register state to call +.Fa entry +with +.Fa arg +as the sole argument using the user stack described in +.Fa stack . +.Pp +.Fn cpu_set_user_tls +sets a new thread's initial user thread pointer register to +reference the user TLS base pointer +.Fa tls_base . +.Pp +.Fn cpu_fetch_syscall_args +fetches the current system call arguments for the native FreeBSD ABI from the +current thread's user register state and/or user stack. +The arguments are saved in the +.Fa td_sa +member of +.Fa td . +.Pp +.Fn cpu_set_syscall_retval +updates the user register state for +.Fa td +to store system call error and return values. +If +.Fa error +is 0, +indicate success and return the two values in +.Fa td_retval . +If +.Fa error +is +.Dv ERESTART, +adjust the user PC to re-invoke the current system call after returning +to user mode. +If +.Fa error +is +.Dv EJUSTRETURN , +leave the current user register state unchanged. +For any other value of +.Fa error , +indicate error and return +.Fa error +as the error code. +.Pp +.Fn cpu_idle +waits for the next interrupt to occur on the current CPU. +If an architecture supports low power idling, +this function should place the CPU into a low power state while waiting. +.Fa busy +is a hint from the scheduler. +If +.Fa busy +is non-zero, +the scheduler expects a short sleep, +so the CPU should prefer low-latency over maximum power savings. +If +.Fa busy +is zero, +the CPU should maximumize power savings including deferring unnecessary +clock interrupts via +.Fn cpu_idleclock . +.Pp +.Fn cpu_idle_wakeup +awakens the idle CPU with the ID +.Fa cpu +from a low-power state. +.Pp +.Fn cpu_procctl +handles any machine-dependent +.Xr procctl 2 +requests. +.Pp +.Fn cpu_ptrace +handles any machine-dependent +.Xr ptrace 2 +requests. +.Pp +.Fn cpu_switch +switches the current CPU between threads by swapping register state. +This function saves the current CPU register state in the pcb of +.Fa old +and loads register values from the pcb of +.Fa new +before returning. +While the pcb generally contains caller-save kernel register state, +it can also contain user registers that are not saved in the trapframe. +.Pp +After saving the current CPU register state of +.Fa old , +.Fn cpu_switch +stores +.Fa mtx +in the +.Fa td_lock +member of +.Fa old +transferring ownership of the old thread. +No data belonging to +.Fa old +can be accessed after that store. +Specifically, the old thread's kernel stack must not be accessed after +this point. +.Pp +When +.Dv SCHED_ULE +is being used, +this function must wait (via spinning) for the +.Fa td_lock +member of +.Fa new +to change to a value not equal to +.Va &blocked_lock +before loading register values from +.Fa new +or accessing its kernel stack. +.Pp +From the caller's perspective, +.Fn cpu_switch +returns when +.Fa old +is rescheduled in the future, +possibly on a different CPU. +However, the implementation of +.Fn cpu_switch +returns immediately on the same CPU into the previously-saved context of +.Fa new . +.Pp +.Fn cpu_throw +is similar to +.Fn cpu_switch +but does not save any state for +.Fa old +or write to the old thread's +.Fa td_lock +member. +.Pp +.Fn cpu_sync_core +ensures that all possible speculation and out-of-order execution is +serialized on the current CPU. +Note that this is called from an IPI handler so only has to handle +additional serialization beyond that provided by handling an IPI. +.Ss Thread Object Lifecycle +These functions support the management of machine-dependent thread +state in conjunction with a thread object's lifecycle. +.Pp +The general model is that a thread object is allocated each time a +new kernel thread is created either by system calls like +.Xr fork 2 +or +.Xr thr_new 2 +or when kernel-only threads are created via +.Xr kproc_create 9 , +.Xr kproc_kthread_add 9 , +or +.Xr kthread_add 9 . +When a kernel thread exits, +the thread object is freed. +However, there is one special case to support an optimization where each +free process object caches a thread object. +When a process exits, the last thread object is not freed but remains +attached to the process. +When the process object is later reused for a new process in +.Xr fork 2 , +the kernel recycles that last thread object and uses it as the initial +thread in the new process. +When a thread is recycled, some of the steps in the thread allocation +and free cycle are skipped as an optimization. +.Pp +.Fn cpu_thread_alloc +initializes machine-dependent fields in +.Fa td +after allocating a new kernel stack. +This function typically sets the +.Fa td_pcb +and initial +.Fa td_frame +pointers. +.Fn cpu_thread_alloc +is called both when allocating a new thread object and +when a recycled thread allocates a new kernel stack. +Note that this function is +.Em not +called if a recycled thread reuses its existing kernel stack. +.Pp +.Fn cpu_thread_clean +releases any machine-dependent resources for the last thread in a +process during +.Xr wait 2 . +The thread is a candidate for recycling so should be reset to run as a +new thread in case it is recycled by a future +.Xr fork 2 . +.Pp +.Fn cpu_thread_exit +cleans any machine-dependent state in +.Fa td +while it is exiting. +This is called by the exiting thread so cannot free state needed during +in-kernel execution. +.Pp +.Fn cpu_thread_free +releases any machine-dependent state in +.Fa td +when it is being freed. +This is called for any thread that was not the last thread in a process +once it has finished execution. +.Sh SEE ALSO +.Xr fork 2 , +.Xr procctl 2 , +.Xr ptrace 2 , +.Xr thr_new 2 , +.Xr wait 2 , +.Xr kproc_create 9 , +.Xr kproc_kthread_add 9 , +.Xr kthread_add 9 , +.Xr mi_switch 9 +.Sh AUTHORS +This manual page was +developed by SRI International, the University of Cambridge Computer +Laboratory (Department of Computer Science and Technology), and +Capabilities Limited under contract +.Pq FA8750-24-C-B047 +.Pq Do DEC Dc . From nobody Mon Mar 3 16:56:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jQ1920z5pnKG; Mon, 03 Mar 2025 16:56: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jP2rdBz45y5; Mon, 03 Mar 2025 16:56:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u5cH7t47h99mkHYth1W6eN58kGw3nGXP1tD/sVJwb50=; b=ItgPCWK/DwCGlGEiEzMqfmqmwKQgJxjUM9+GZ9MA8aKVVoTej8LQ06G9c+fX6eLipeBejZ 7k5NE+b95vVVXY0EcDwRB9p3MkMKMpmeZJLFLU/w312twka4T57tloHS+sIze+6KVjcmRW 3oXCHI9PnPN7MjMoR6Hrew+Ru7WBs0tHYi3d19i485yprF/bzcxylLGDR/EXkG03dL/4vm bVllEyCg9/KArb8HxXBrmZlstqSP39Yp/RQdI9hayfgUVFRu160XM0AMAXhF6WrKqrbnCa m9+C09+GZCrluJH1PiLVECOxXGulCCwUfoGXBETko0QaMqk21D1MF3Mi/ZCO7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021017; a=rsa-sha256; cv=none; b=ZJ8D2AQu8SKam46O+eYAPi/PeQ+oKBufzPyQDfV4rKA4RjQQMkTdRFjOEMlOgqHIg0Cvvz PLXsFMcrZROVRv/ljzvHSA/nGyZXBMhj1RN/oLU+HsUN72auo6cWj71qgILbFn1ymaQVCc pf/OGar/IfNc0TwqXzgnRUxMGXl3aKd+cSc7QMY3/XpMNuMN5H90q78WBKbptOFWoq2AnN /H3ve6RzryqVWyevLtC073D9/1mhYa1qU+Fuwl1PA5OItl4a5CU+4/VmOJzb0CmcOblZ1e seAezHSb9mznmG9C3bfkZ/Wr6ZOpwihGngV9lvd0Fm1f+03dBjR1huCMI111fw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u5cH7t47h99mkHYth1W6eN58kGw3nGXP1tD/sVJwb50=; b=vplKhRSOjxV3FRVKXgnJEg1tjLBjYZm3FjQuviMvWyDAeKN79FjGQKpHvnw/x5Ymu/vo9g RWdNzqHbsh2uY9g6Edj5ZqcchZu3yLHCxolOPHUn7aIkOQrNs3ofCOhNTSCK+VEmQtyB6H MWWnKHe9lxykCnwMyffGEIY5Ambuz+L4+ZTPXdsE/r8CvG0RedPcfVHulk9/tOODRG0Oa8 gLdeHFgoNz9uySAF2N+EUUy94nmgseDvoer4iEDG4MYBYRev0xPVrkQhvkocv3dPPlpd6w JXU3+vKIDL8dysefRH3f8v7zOQMYbdsbA2YDYGxZwBKwSLgSakoMpBJgM0A6gw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jP2QJ2zwrF; Mon, 03 Mar 2025 16:56:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Guvkv083652; Mon, 3 Mar 2025 16:56:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GuvAu083649; Mon, 3 Mar 2025 16:56:57 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:57 GMT Message-Id: <202503031656.523GuvAu083649@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 0cfebe47d9e3 - stable/14 - mi_switch.9: Remove cpu_switch, cpu_throw List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0cfebe47d9e3a41fa15a10f690697edc9eaaa83c Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=0cfebe47d9e3a41fa15a10f690697edc9eaaa83c commit 0cfebe47d9e3a41fa15a10f690697edc9eaaa83c Author: Ed Maste AuthorDate: 2025-01-07 16:04:00 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 mi_switch.9: Remove cpu_switch, cpu_throw cpu_machdep.9 was added to document cpu_*, but cpu_switch and cpu_throw were already documented in mi_switch.9, and MLINKed. cpu_machdep.9 seems like the correct place for this, so remove them from mi_switch.9. Some of the removed text was stale, although there are few notes that ought to be added to cpu_machdep.9 in a future commit. Reported by: tools/pkgbase/metalog_reader.lua Reviewed by: jhb Sponsored by: The FreeBSD Foundation Fixes: 9c87cbbcaaed ("cpu_machdep.9: New manpage describing the semantics of several cpu_*") Differential Revision: https://reviews.freebsd.org/D48360 (cherry picked from commit f73c9b5da190954a81e9e70e2caa8e9168623bfd) --- share/man/man9/Makefile | 2 -- share/man/man9/mi_switch.9 | 68 +++------------------------------------------- 2 files changed, 4 insertions(+), 66 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 90aad3dcfdcd..fdfdb2e888d9 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1592,8 +1592,6 @@ MLINKS+=microuptime.9 binuptime.9 \ microuptime.9 getsbinuptime.9 \ microuptime.9 nanouptime.9 \ microuptime.9 sbinuptime.9 -MLINKS+=mi_switch.9 cpu_switch.9 \ - mi_switch.9 cpu_throw.9 MLINKS+=mod_cc.9 CCV.9 \ mod_cc.9 DECLARE_CC_MODULE.9 MLINKS+=mtx_pool.9 mtx_pool_alloc.9 \ diff --git a/share/man/man9/mi_switch.9 b/share/man/man9/mi_switch.9 index 549ec497434c..e04c2ee35ace 100644 --- a/share/man/man9/mi_switch.9 +++ b/share/man/man9/mi_switch.9 @@ -31,23 +31,17 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 9, 2023 +.Dd January 7, 2025 .Dt MI_SWITCH 9 .Os .Sh NAME -.Nm mi_switch , -.Nm cpu_switch , -.Nm cpu_throw +.Nm mi_switch .Nd switch to another thread context .Sh SYNOPSIS .In sys/param.h .In sys/proc.h .Ft void .Fn mi_switch "int flags" -.Ft void -.Fn cpu_switch "struct thread *oldtd" "struct thread *newtd" "struct mtx *lock" -.Ft void -.Fn cpu_throw "struct thread *oldtd" "struct thread *newtd" .Sh DESCRIPTION The .Fn mi_switch @@ -168,63 +162,9 @@ running thread .Fa oldtd to the chosen thread .Fa newtd . -First, it saves the context of -.Fa oldtd -to its Process Control Block -.Po -PCB, -.Vt struct pcb -.Pc , -pointed at by -.Va oldtd->td_pcb . -The function then updates important per-CPU state such as the -.Dv curthread -variable, and activates -.Fa newtd\&'s -virtual address space using its associated -.Xr pmap 9 -structure. -Finally, it reads in the saved context from -.Fa newtd\&'s -PCB. -CPU instruction flow continues in the new thread context, on -.Fa newtd\&'s -kernel stack. -The return from -.Fn cpu_switch -can be understood as a completion of the function call initiated by -.Fa newtd -when it was previously switched out, at some point in the distant (relative to -CPU time) past. -.Pp -The -.Fa mtx -argument to -.Fn cpu_switch -is used to pass the mutex which will be stored as -.Fa oldtd\&'s -thread lock at the moment that -.Fa oldtd -is completely switched out. -This is an implementation detail of -.Fn sched_switch . -.Pp -.Fn cpu_throw -is similar to -.Fn cpu_switch -except that it does not save the context of the old thread. -This function is useful when the kernel does not have an old thread -context to save, such as when CPUs other than the boot CPU perform their -first task switch, or when the kernel does not care about the state of the -old thread, such as in -.Xr thread_exit 9 -when the kernel terminates the current thread and switches into a new -thread, -.Fa newtd . -The -.Fa oldtd -argument is unused. .Sh SEE ALSO +.Xr cpu_switch 9 , +.Xr cpu_throw 9 , .Xr critical_exit 9 , .Xr issignal 9 , .Xr kern_yield 9 , From nobody Mon Mar 3 16:56:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jR2d2qz5pnKH; Mon, 03 Mar 2025 16:56: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jQ4G2Tz46Bd; Mon, 03 Mar 2025 16:56:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ldRH4fVbBKAevMCwLuqnCl4WifpK5Y8qUfSAbZc+S6c=; b=Kwx4/Tgf8ObBIYIrIetX78n1LxHL52cLgu82G5BsYnoUES5cFuuxB1QXQ3WQFaIbXC2GoL oxs/bREMaW6720L+DH976DAMqdxggRzEyA2XwQM1kPu8QOuL/V3RkHNgBWedUhKTcUmc6w YwoZqZ4W04+buiGDn6+QcD3ByoU04g6CCebNkFGrL+bsrQF0/egRKuzYr2VaQ6WRKoq/gH KiSWZ3A55s1fL/H1MjHp4l1/dm6Gho6xrWHIwr/LnSINLX100gGzxX/CmoWUQtArv3lECX ea5O0WkDiqB0DeioEwrIjuYjstrYO6/ByMQ87J2QXYcMe2sj2HDmG3km/Yj88Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021018; a=rsa-sha256; cv=none; b=axtlTDP4GnXnnzdtibEKk/g5tRT75rO4hpiRPaLrpgz/bsVm9qxfZr/fn4iqhOO9lD8h2A WJuf38iIwDOCaxOuQBLTyXhLjCEMM/UcHATBAGZQR2MFQwOqrv42EFBEnKKk4eqcxwrGEi DVqwHXxA995ABbmXb85xTvOkfkw6W1u6RqWiO2DyHL4BFXay/fo93CJt4dWNjZ2ZkCwaD4 0gQTTGXzja0WDkhgJxYkrnh0gSXqYkbYwSM7x+fww2e9P/gaC71aVWDee0z6GPRqiq9fA4 5iNhdVtlk1JqkCEgenZttc2x580/+L/fzUNGLJh680aZ+Z93oaR548SFY8eaCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ldRH4fVbBKAevMCwLuqnCl4WifpK5Y8qUfSAbZc+S6c=; b=njPd1/t243wlkpLtF2KvE68HgFwW3otkOiOC3/OCVp4Go62+FMFYepUc1Yh36wL0y8Fz/G HKhWcqPc0nX0PDqtWfoDFUSJqscny229HPdlcZ+wdqh9axAxRsJucxFGTeEWCzXg3bKqTR KmfWxq7C0IwrOgGW5HmHkVHINf+iUKyo8tOm/WEnOWF9u/QwS3hV+Dp8POjQf/PudbwLd+ Oc6asFfeE1/cdZUtp+R+XTptt0kcdrmt+LLycfSEhYX33OyARySzPapKHt6VEccFEOX/+8 w2iL8Wujby4emU0LzQYA1eBi4hGtqgYR6zqu16kZLIuDe0mKdPkRyqispB/PDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jQ36rJzwtk; Mon, 03 Mar 2025 16:56:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Guwcq083689; Mon, 3 Mar 2025 16:56:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523GuwAQ083686; Mon, 3 Mar 2025 16:56:58 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:58 GMT Message-Id: <202503031656.523GuwAQ083686@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 939bcd2c20b4 - stable/14 - cpu_set_upcall / linux_clone_thread: Remove calls to cpu_thread_clean List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 939bcd2c20b42f550c7b89a52a105bfbbb8b5db1 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=939bcd2c20b42f550c7b89a52a105bfbbb8b5db1 commit 939bcd2c20b42f550c7b89a52a105bfbbb8b5db1 Author: John Baldwin AuthorDate: 2025-01-03 16:03:08 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 cpu_set_upcall / linux_clone_thread: Remove calls to cpu_thread_clean This is intended to clean state of a thread at the end of its lifecycle during wait(), not the beginning of its life cycle. Reviewed by: kib Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D48023 (cherry picked from commit 0e742cc77454d0872ac2f6e7fd755b6d0322b711) --- sys/amd64/amd64/vm_machdep.c | 10 ---------- sys/compat/linux/linux_fork.c | 2 -- sys/i386/i386/vm_machdep.c | 10 ---------- 3 files changed, 22 deletions(-) diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index 9e77ac7af2d7..36001bc5b5b6 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -617,16 +617,6 @@ int cpu_set_upcall(struct thread *td, void (*entry)(void *), void *arg, stack_t *stack) { - - /* - * Do any extra cleaning that needs to be done. - * The thread may have optional components - * that are not present in a fresh thread. - * This may be a recycled thread so make it look - * as though it's newly allocated. - */ - cpu_thread_clean(td); - #ifdef COMPAT_FREEBSD32 if (SV_PROC_FLAG(td->td_proc, SV_ILP32)) { /* diff --git a/sys/compat/linux/linux_fork.c b/sys/compat/linux/linux_fork.c index 4ce3bc192b4e..1c9189162a09 100644 --- a/sys/compat/linux/linux_fork.c +++ b/sys/compat/linux/linux_fork.c @@ -301,8 +301,6 @@ linux_clone_thread(struct thread *td, struct l_clone_args *args) else em->child_clear_tid = NULL; - cpu_thread_clean(newtd); - linux_set_upcall(newtd, args->stack); PROC_LOCK(p); diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index e05791967fba..d252438dc186 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -492,16 +492,6 @@ int cpu_set_upcall(struct thread *td, void (*entry)(void *), void *arg, stack_t *stack) { - - /* - * Do any extra cleaning that needs to be done. - * The thread may have optional components - * that are not present in a fresh thread. - * This may be a recycled thread so make it look - * as though it's newly allocated. - */ - cpu_thread_clean(td); - /* * Set the trap frame to point at the beginning of the entry * function. From nobody Mon Mar 3 16:57:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jT2mR0z5pnMR; Mon, 03 Mar 2025 16:57: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jS5QRXz46C0; Mon, 03 Mar 2025 16:57:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OeF2QLJYBCycuCU7plLW8V1/c0Db/iOTSafAEjZA04M=; b=K3ap9LsDWJnN6RGnJ+ICDAMUlg0g8k+IfwXKqr9AZzGr2klWmF14lBpWevYoYGW7p7Ip+z 3EIgnB+IYCH3aNVnGXVspWlicVHNpHfmCfWABWUJXWtkB2a1ChNW6zXp+KE3nxEpzwfpBs oViyOq9rCDtuLXZyavHT+k/RqU/CAbpe7TenEFMtX+qB4Oyjq285e3hLUSUybRjp8lawtp RKUlpo/MowprLnfJct/DOsyrPWChyJoAaZM5IXPtMEQFIx8jsyYLZWfacB4xu5z2yOXlvk Yp/aR6+aXje8sOPX4ZMn/QhEK8li6GZphqGyYKRZKEwPK+Py97HSryqg4YEEOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021020; a=rsa-sha256; cv=none; b=Uv85seAvMPSQ0t0+QvHLzW2GN8STqObDvbgKTp6HcBFyAjqisS9MwUAQHfBbA1m7efdNCT JBKJk8jPxiUHhOoP69H60jDEej20duL1OeASU/mKSl2n4oCqpDGbpN/svT0JaCZJDfCyKC gHPVSJJ0ghcGGgcSy2SyzJO1u4/XfH1SqY2wV4MbJUjCImHI4ULjzuHo4zWbbKPkVCZnmg jtVGSSbwuNyFwyHFZukX1ScQRCbw1DZL0N2yzNFUu/o6WnPK7y8O4/w5nNbBK5lYbPfvBv uAhjMYVqn2AKQhqAe8ecvJLDTr5lIf8AQlS+rmpBXIjQCx9WKbXyFDqsNie9dw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OeF2QLJYBCycuCU7plLW8V1/c0Db/iOTSafAEjZA04M=; b=POj+0mqhdTQk9sEqRzg+HPuaX3i5IlXPqHAf4kdRifqXLEia3vjiRxxdaWD0lSJqUWt/5d J21r77Wir00FKMt6X7nyNsOo3XjAmZ9ntPe7Mr8rt9NVEznajuE8n77aKgSHMGaL4zWPUw AK7odusQ51bU2cOWRH0kTxeGWa1IpxatOQL9E4+EfsfpZ5pdMZajybth4aC09HOoaTlnU2 RnrpnORtxlWIXcqHE3YIMdJvdzmL9OS9LQj8OrTT7Ukt+/NTJibvVyRXb+dsDqLiAhs8Zz NldQ/0sjLdVfahwqysHsi/3ifFXi9ZZOKBzkV42zTAo2sjYZyk8zbSPKN4ltcA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jS4zjzzwtl; Mon, 03 Mar 2025 16:57:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv0Sg083767; Mon, 3 Mar 2025 16:57:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv0AF083764; Mon, 3 Mar 2025 16:57:00 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:00 GMT Message-Id: <202503031657.523Gv0AF083764@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: f1ef0525f34d - stable/14 - DEVICE_IDENTIFY.9: Modernize description and use cases List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f1ef0525f34d5c21f330e60ff0366d38db509710 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=f1ef0525f34d5c21f330e60ff0366d38db509710 commit f1ef0525f34d5c21f330e60ff0366d38db509710 Author: John Baldwin AuthorDate: 2025-01-09 20:20:16 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 DEVICE_IDENTIFY.9: Modernize description and use cases Mention adding devices based on firmware tables and software-only pseudo-devices as use cases for identify methods as those are more common than reading random I/O ports to identify a legacy ISA device. Describe how device_find_chid can be used to avoid duplicates. While here, explicitly note that devices added in identify methods typically use a fixed device name. Trim the cross-references a bit. Reviewed by: ziaee, imp Differential Revision: https://reviews.freebsd.org/D48367 (cherry picked from commit ccabc7c2e556ac0b14da9b682b706ccaf251c0fe) --- share/man/man9/DEVICE_IDENTIFY.9 | 52 +++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/share/man/man9/DEVICE_IDENTIFY.9 b/share/man/man9/DEVICE_IDENTIFY.9 index 4892e66eb214..9feb18f43f18 100644 --- a/share/man/man9/DEVICE_IDENTIFY.9 +++ b/share/man/man9/DEVICE_IDENTIFY.9 @@ -26,44 +26,46 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 15, 2017 +.Dd January 9, 2025 .Dt DEVICE_IDENTIFY 9 .Os .Sh NAME .Nm DEVICE_IDENTIFY -.Nd identify a device, register it +.Nd identify new child devices and register them .Sh SYNOPSIS .In sys/param.h .In sys/bus.h .Ft void .Fn DEVICE_IDENTIFY "driver_t *driver" "device_t parent" .Sh DESCRIPTION -The identify function for a device is only needed for devices on buses -that cannot identify their children independently, e.g.\& the ISA bus. -It is used to recognize the device (usually done by accessing non-ambiguous -registers in the hardware) and to tell the kernel about it and thus -creating a new device instance. +The identify method of a device driver is used to add devices that cannot be +enumerated by the standard method on a bus device. +Devices can be enumerated in various ways including accessing non-ambiguous +device registers and parsing firmware tables. +Software-only pseudo devices are also often enumerated via identify methods. .Pp +For each newly identified device, +a new device instance should be created by invoking the .Xr BUS_ADD_CHILD 9 -is used to register the device as a child of the bus. -The device's resources (such as IRQ and I/O ports) are registered -with the kernel by calling -.Fn bus_set_resource -for each resource (refer to +method. +If the identify method is able to discover other properties about the new +device, those should also be set. +For example, device resources should be added to the device by calling .Xr bus_set_resource 9 -for more information). +for each resource. .Pp -Since the device tree and the device driver tree are disjoint, the -.Fn DEVICE_IDENTIFY -routine needs to take this into account. -If you load and unload your device driver that has the identify -routine, the child node has the potential for adding the same node -multiple times unless specific measure are taken to preclude that -possibility. +An identify method might be invoked multiple times. +If a device driver is unloaded and loaded, +the identify method will be called a second time after being reloaded. +As a result, the identify method should avoid duplicate devices. +Devices added by identify methods typically use a fixed device name +in which case +.Xr device_find_child 9 +can be used to detect existing devices. .Sh EXAMPLES The following pseudo-code shows an example of a function that probes for a piece of hardware and registers it and its resource -(an I/O port) with the kernel. +(an I/O port) with the parent bus device. .Bd -literal void foo_identify(driver_t *driver, device_t parent) @@ -72,7 +74,7 @@ foo_identify(driver_t *driver, device_t parent) retrieve_device_information; if (devices matches one of your supported devices && - not already in device tree) { + device_get_child(parent, "foo", -1) == NULL) { child = BUS_ADD_CHILD(parent, 0, "foo", -1); bus_set_resource(child, SYS_RES_IOPORT, 0, FOO_IOADDR, 1); } @@ -82,11 +84,7 @@ foo_identify(driver_t *driver, device_t parent) .Xr BUS_ADD_CHILD 9 , .Xr bus_set_resource 9 , .Xr device 9 , -.Xr device_add_child 9 , -.Xr DEVICE_ATTACH 9 , -.Xr DEVICE_DETACH 9 , -.Xr DEVICE_PROBE 9 , -.Xr DEVICE_SHUTDOWN 9 +.Xr device_find_child 9 .Sh AUTHORS This manual page was written by .An Alexander Langer Aq Mt alex@FreeBSD.org . From nobody Mon Mar 3 16:56:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jS1xWvz5pnKJ; Mon, 03 Mar 2025 16:57: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jR4zRRz463j; Mon, 03 Mar 2025 16:56:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SWHoZbjmL3gwVG3DWMseWgn2JO+BcLbStlhzU+JuanE=; b=UviTTe9wmfXb6XaJ3xkgF8E4aJQetEdPuIJBHNVCzzz6nqspKcfkLbMi/G8s9d8lK/Ccg/ jt9WFD2pLy6rJQgRpS6XFrJJlv1/EZ5kT2cGsDi93+Pqqkbxfc1qWAilFc4Mtqzskhcmef 1/1/waKr5lMEY/ouyroWPidlfc2T0j/eC4v74bU3fz4jm3hgreGwBg6k7cxMHDwPtF67iV ImGBg3lcNgd8u5mlBB7uFzFqqaQ2kwru4iXvxCk5GzJsDp4fTa2+V2sERgmA6a58uxNzTq g9Ljg7cVTTmB0HfHhF66VaQQciFrZgHKehTlnOws53mDgV8wRoh2r2s+9gVowQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021019; a=rsa-sha256; cv=none; b=m84yZt4FfUYiWIXibCKDR54vjUgek99/RyGpKZixsbwjGQpFjnU1UDEKklWElMg88AWBV7 WGEFh+gYMob2Mk/V9NNSksXFVbXVY7fO017drpDxyqs80UxgmpGBNdk20O405sXt8Nj81C Tk6zLEVUFfqCCn3Ir84qmhkYB8AaZ4D8cTp1mw6AxZJRKHsat+LTMVB7yOqauPsthZikT1 tU9A17si7G/B5J0hEgEQ1ArSk1nqGy6buIA9KHpyt1y0QUwAOGjzVOcuc4Dcqo0hxg9Nnu iWgMs+DF4I9/+qeGaHcro1IkL/E6VYxVnM3wI8ia648W/yQhsyEgHzEVd9m6qw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SWHoZbjmL3gwVG3DWMseWgn2JO+BcLbStlhzU+JuanE=; b=Eibg1tef02eQkkPrwar/x50SMLkXh3malLX4JvajlNtF3oGv5hv1Ij/mK7AMW5BjAxbzXg D2HpMf0WhmQj8ckCa+aJ2V0RX8PflbnxYCdhg9E+OK8jsEUbXgvDET03rnsVPQXM+pfl/S cX5RvzusA+oW6RqB2w5NwF6rpA1h5dWHJuNcgvVaCdxYBv+5c/P1uK2SnhkpObGaK9pJsS aYBntkfZLLDjPsmC634FtVciMtuKB85HhhxNUXwesQnO+OzDMC3/sfYnwzJb56PDsk50m9 jNT/XJxRN/X0PiXOQdPy6DOo0lM4ERVRJknyjqa+4YhInsvSK+oo/w2r8IngEQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jR4MYMzwZb; Mon, 03 Mar 2025 16:56:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Guxam083726; Mon, 3 Mar 2025 16:56:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gux0H083723; Mon, 3 Mar 2025 16:56:59 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:56:59 GMT Message-Id: <202503031656.523Gux0H083723@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 3c6989af4bfc - stable/14 - BUS_CHILD_DETACHED.9: This is also called if DEVICE_ATTACH fails List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3c6989af4bfce195e5fab85d26e00ce28b7d6d0a Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=3c6989af4bfce195e5fab85d26e00ce28b7d6d0a commit 3c6989af4bfce195e5fab85d26e00ce28b7d6d0a Author: John Baldwin AuthorDate: 2025-01-09 20:09:21 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 BUS_CHILD_DETACHED.9: This is also called if DEVICE_ATTACH fails Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D48363 (cherry picked from commit 6af088c736c2fd9e64f2ad9449b7df1a109e6241) --- share/man/man9/BUS_CHILD_DETACHED.9 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/share/man/man9/BUS_CHILD_DETACHED.9 b/share/man/man9/BUS_CHILD_DETACHED.9 index 4cc00a49465b..8b59d1362d3d 100644 --- a/share/man/man9/BUS_CHILD_DETACHED.9 +++ b/share/man/man9/BUS_CHILD_DETACHED.9 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 21, 2012 +.Dd January 9, 2025 .Dt BUS_CHILD_DETACHED 9 .Os .Sh NAME @@ -39,7 +39,10 @@ .Sh DESCRIPTION The .Fn BUS_CHILD_DETACHED -method is invoked by the new-bus framework after a device is detached. +method is invoked by the new-bus framework after a device is detached +or if a driver's attach routine +.Pq see Xr DEVICE_ATTACH 9 +fails. A bus driver can provide an implementation of this method to reclaim any resources allocated on behalf of the child or to cleanup state not properly released by a From nobody Mon Mar 3 16:57:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jV1BSyz5pnRl; Mon, 03 Mar 2025 16:57:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jT6gRQz4694; Mon, 03 Mar 2025 16:57:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=poGNCMLIo1X1T/RQRYBlFRe4veJZvDd+RhKeeKJIRqM=; b=O2bR+m0BQhesvYv1EmZKsaI6D5SgdNKdl6MNY7i6VzyJFODlFf8DqxnLDabtgceu5Mh9DX bHV4GG9iPCGaqOOkEOb7rCuSRL2RDpXfuis+P4Gi2ti6dcT0A5c20anUJh64zdZZ6UY89m IN0fNJZqWCp9+d0gN+SYxEj4wQEEYrErS91LUgeu70ygHciD4rN6J3BxCl02n8aE/uJUeL ykcSeys6pJWOdzlGyBm8a3Vc5kGl3uN8FcGEjBYwAC9mWQrnZxtbCEnr8WT8ErrUbuhnVY J010VLmWymousdXeI8wINsjVfHAjirfqA9V5nB6rrRJbGFDl7TzeLsLJk1z4Ew== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021022; a=rsa-sha256; cv=none; b=m6psRAtiKGxSPKyvH0zGCOPtO8pYqh/fA9o1iN+TMWIN2caA+SvygBQv+tb0p3dZ5wDhVp MmweqWc/ivdgvXBCI+24Ettk4uIPZ/TI8dstE71havw4L58IXWA9AOXXII+16poD8z1F2F 7dD9xPQjsff++dgahgPtqGRi4b+DXkfs3jS+IoOjYXQNuhjzrFz7jb5G0Kr425K1x/WMfQ Mcp4GQXv3+Ge/wqBqtcx4Klsim+z1AaE8RXVFj1UK6MGabiA46glbaloquHHjYx2R1v460 M3qh0PqbpoJ/wv+vyCm4g0QBLkEAr+ilnzIs6UQ8sc3rib15Beu6nTRxSNOsBw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=poGNCMLIo1X1T/RQRYBlFRe4veJZvDd+RhKeeKJIRqM=; b=auwExUbSgzQ6P0shqQXkXKY6T2TDl5Xn2y9oFhUzgetljTSWLze0nUfl3UpzcUQg3pgOr9 E4LefH6b3so4nQrImHPyTMKcqZmfedFPEdy5HxXJAS7ZjI1MG7W1ufa0dB4cnByDCvLUg+ HB6O0xmvNKgP1kKCm1IgIblGfBzStfqizdtobD+28Y3v/arV8kSyYupg+QY0JZ/k61DRV8 S5VE5sSNeM03K5QvcUP5gwFIRrTPki2hKfxQhzabjVzOMEVNoKP0wQT2EymRHJKZDcF7Ai Zkx9mlGETGqpNjd0eHp1T8m2QSQIa5lanWJhD8Kt+0UMTz7kMRd4JKrspAASUg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jT5wyMzwZc; Mon, 03 Mar 2025 16:57:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv12r083801; Mon, 3 Mar 2025 16:57:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv1bA083798; Mon, 3 Mar 2025 16:57:01 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:01 GMT Message-Id: <202503031657.523Gv1bA083798@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 0960dc0d5bf4 - stable/14 - BUS_HINTED_CHILD.9: New manpage to document this bus method List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0960dc0d5bf4f8e4c432a67a995104584bc1c940 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=0960dc0d5bf4f8e4c432a67a995104584bc1c940 commit 0960dc0d5bf4f8e4c432a67a995104584bc1c940 Author: John Baldwin AuthorDate: 2025-01-16 15:51:44 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 BUS_HINTED_CHILD.9: New manpage to document this bus method Reviewed by: ziaee, imp Differential Revision: https://reviews.freebsd.org/D48366 (cherry picked from commit 4276dfa8c4b9e75ab29f2c53a7af36c2f77ab563) --- share/man/man9/BUS_HINTED_CHILD.9 | 36 ++++++++++++++++++++++++++++++++++++ share/man/man9/Makefile | 1 + 2 files changed, 37 insertions(+) diff --git a/share/man/man9/BUS_HINTED_CHILD.9 b/share/man/man9/BUS_HINTED_CHILD.9 new file mode 100644 index 000000000000..699bb06e8dd8 --- /dev/null +++ b/share/man/man9/BUS_HINTED_CHILD.9 @@ -0,0 +1,36 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2025 John Baldwin +.Dd January 6, 2025 +.Dt BUS_HINTED_CHILD 9 +.Os +.Sh NAME +.Nm BUS_HINTED_CHILD +.Nd notify a bus device about a potential child device identified by hints +.Sh SYNOPSIS +.In sys/param.h +.In sys/bus.h +.Ft void +.Fn BUS_HINTED_CHILD "device_t dev" "const char *dname" "int dunit" +.Sh DESCRIPTION +The +.Fn BUS_HINTED_CHILD +method is invoked by the +.Xr bus_enumerate_hinted_children 9 +function for each set of named hints whose +.Dq at +hint matches the bus device +.Fa dev . +Typically, this method should determine if the set of hints for the given +device name and unit sufficiently describe a new device. +If so, a new device should be added via +.Xr BUS_ADD_CHILD 9 . +.Sh SEE ALSO +.Xr BUS_ADD_CHILD 9 , +.Xr device 9 +.Sh HISTORY +The +.Fn BUS_HINTED_CHILD +method first appeared in +.Fx 6.2 . diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index fdfdb2e888d9..7d06be6eb6a0 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -47,6 +47,7 @@ MAN= accept_filter.9 \ BUS_GET_CPUS.9 \ BUS_GET_PROPERTY.9 \ bus_get_resource.9 \ + BUS_HINTED_CHILD.9 \ bus_map_resource.9 \ BUS_NEW_PASS.9 \ BUS_PRINT_CHILD.9 \ From nobody Mon Mar 3 16:57:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jW2hpWz5pnXk; Mon, 03 Mar 2025 16:57: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jW14Hsz46CM; Mon, 03 Mar 2025 16:57:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EYmd5y21u9PBNs9JNBNGVL0oItb1LxnIB9X31jJzdkw=; b=od2TpPit2Y7CYDJoXEAyjRk9xT67Rolt4cGNbAohezE5QgCC8YYcUFm4axgXrh4Z7Tm/EA lcNG/bq8Dnrj9OKik8UkIoQX+6gLwNoaqvAGZAj0cZK0OijTSsXwdNGW3bcYqF/sRyb3xZ 5osnUN6jjmxVgwAe4gsCl+k7wgH1EHKik99o3nSOVOMNoWIRcKW7Ks15b7PvCTYuQv3YLZ Vptq3YGP7FhcSOiVPs9yxJqmupWlzh7fDyPLGkwTFc+WYpVy8UjemEtEzIoadyfjm1xVqN q3K2B3xm3CYfc97dbJDlt4xOo5OHGdYIHUh5ru24ehCduRTNMzDciwnca7CYKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021023; a=rsa-sha256; cv=none; b=ThDXMKyP4b0P89LM21bRuKsUseu9QUW5B8OJtGc7IzGJVLHEEGWZ2CMGwWbkQGUg1nUMAB lP6j9XgNrdJ9dR742pfrGODgX92dK0yRoN60zH280pryBdp6zc1gocKNXm7zGLSBwkc9I8 whmeuZ2Rj5NmjsJQ/AOZaUY4g9YnsOOm69sLs6f97OPJhjIVrstgqB+ERGbHs+Z7rtuGDb 0i8ozhtpIyWQi9IG8nep5E0cdkX5vRA8YWlOSCMdylYhMLHzg6Yi7fzG85Kp/xgB4C0bNF LsArejIvoutuPhUz/2z9UJrEO41tDZC7UVqp9CmWxfrnaGVHq/NdWnffZyX7eg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EYmd5y21u9PBNs9JNBNGVL0oItb1LxnIB9X31jJzdkw=; b=sqMlfcOVAn20psIHFDLxLZx5uAT8bIqZwE6XfIOj1zwNI2uhftHqA4iN5t+75iiTu9wd7S p83PPaX8aJiDF5c63It58kwxbPep2cj8Xk86CcBNSn1fWy/RhBpQV1RJTvD8UQTN7ZVzga d04oLtEWE2RmlaiPgQctkUZ/90U1FTjh7jQAiycSDcR8LMtIqjXzbhfZ81eEXOeEG/Zy4C u5wUf8i1Jeey9kY5NseZIeALpOgaRObl+8NXrkXCsAgwzy86hsVwP3JHFKfupS8qOApj8m dPg5R4w7bwhFjcx6HpuU1fVi3SBczeLcM4mBLTSEGVKo7mMrJgh3QGPHZXwEtQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jV6tRpzwnv; Mon, 03 Mar 2025 16:57:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv2RK083835; Mon, 3 Mar 2025 16:57:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv2w6083832; Mon, 3 Mar 2025 16:57:02 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:02 GMT Message-Id: <202503031657.523Gv2w6083832@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 4be4d213f065 - stable/14 - bus_generic_print_child.9: Add bus_print_child_{header,footer} List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4be4d213f065968c30bec62a2c9ad57710732afd Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=4be4d213f065968c30bec62a2c9ad57710732afd commit 4be4d213f065968c30bec62a2c9ad57710732afd Author: John Baldwin AuthorDate: 2025-01-16 15:55:02 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:20 +0000 bus_generic_print_child.9: Add bus_print_child_{header,footer} These functions are already described in the body, just add them in the NAME and SYNOPSIS sections along with MLINKS. Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D48370 (cherry picked from commit 2759653c8523f279cf0715d5cf641d2e029b6614) --- share/man/man9/Makefile | 2 ++ share/man/man9/bus_generic_print_child.9 | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 7d06be6eb6a0..5263f231b929 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -691,6 +691,8 @@ MLINKS+=bus_dma.9 busdma.9 \ bus_dma.9 bus_dmamem_free.9 \ bus_dma.9 bus_dma_tag_create.9 \ bus_dma.9 bus_dma_tag_destroy.9 +MLINKS+=bus_generic_print_child.9 bus_print_child_footer.9 \ + bus_generic_print_child.9 bus_print_child_header.9 MLINKS+=bus_generic_read_ivar.9 bus_generic_write_ivar.9 MLINKS+=BUS_GET_CPUS.9 bus_get_cpus.9 MLINKS+=bus_map_resource.9 bus_unmap_resource.9 \ diff --git a/share/man/man9/bus_generic_print_child.9 b/share/man/man9/bus_generic_print_child.9 index 8c3bd4b0fc71..1adca331b016 100644 --- a/share/man/man9/bus_generic_print_child.9 +++ b/share/man/man9/bus_generic_print_child.9 @@ -26,11 +26,13 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 15, 2017 +.Dd January 16, 2025 .Dt BUS_GENERIC_PRINT_CHILD 9 .Os .Sh NAME -.Nm bus_generic_print_child +.Nm bus_generic_print_child , +.Nm bus_print_child_footer , +.Nm bus_print_child_header .Nd generic implementation of .Dv DEVICE_PRINT_CHILD for buses @@ -39,6 +41,10 @@ for buses .In sys/bus.h .Ft int .Fn bus_generic_print_child "device_t dev" "device_t child" +.Ft int +.Fn bus_print_child_footer "device_t dev" "device_t child" +.Ft int +.Fn bus_print_child_header "device_t dev" "device_t child" .Sh DESCRIPTION This implementation prints out the default device announcement message. Given device 'foo0' on bus 'bar0' where foo0 has the name "FooCard 1234" the From nobody Mon Mar 3 16:57:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jZ2XMVz5pnRs; Mon, 03 Mar 2025 16:57: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jY2x1gz46Lb; Mon, 03 Mar 2025 16:57:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021025; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9qp9c9IYCPiijEJT/wQepaRuAlUR38c6GmkQ8Wzoaxc=; b=fxvu7ijKkJjHp/A47GCWsCCdTjiQVTSyZweN9RIGYAyG8YxHD4fRkAMnwbfw6J8o2hx3sK HUFIA1YnP91Tb1oBkdg7+URgqFAaYVVOKHvHhRcXMXM9pn62C9zFJ07d0WrOOYbw05sjwh DcCVUzio9gX6uILlS+7twMXlroeoG8H7/hBrXkoKLl8xQobOgGor2gW4bpmritAhcNGAev rPR7XyuSuJv7HsB0V8gUDq3f1fIsecMSMNJZWZRUc3SDq2sXA1D2uum1Tpifs9qWNbZBaK 6V8xYK+931gpSQYDR8Cv+RG8sf/DIZ1b9jCdHUcCMuK5kosE80m4IO1+6khcNw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021025; a=rsa-sha256; cv=none; b=W+NRAS1jz8o9E0e3BEw1jqgYCo9HUqbjS9kF/VCqj71A52r/o0suwqZ7RmROzVXgFgwJnk eAvbvQ1vx4PluM7G4cplw2qFV3hbV85fXo85boVOAhqMmIV+f/XVXWMygrMP4d0tHSpiHL RVlyHv//tsHPlGaRO3wayc36exJK+7bXGFaLAHuyU4wXZe8W7LcHXNGSHZwfBl/gx8kS0J ntApgnMTeqeymKfrjtbPfJKvab3AaQFlzCCur41Y8jyJfxXHQq6NBokzxK6nSMPmVRNu4V Z5cwMa/TcmvgS1MNmAnRKiwRG5imUtKgEmcKBrlgMOJEkHDKGrPnJ+gjc+9HoA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021025; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9qp9c9IYCPiijEJT/wQepaRuAlUR38c6GmkQ8Wzoaxc=; b=BtJyqKpM3wrq+drqxh4bX2w37R/bZBJm8p+Z30mIZw1nu0szu1u9q4S898w+Xsp2aoAiqF XwmhpJ2dxVXU8B2gOLNo5BKB9lkekYEOeeBq7sA+l1Fo4OYfE3eh1KhKtb5jEjbBT7Cz50 fuMGFGDXlzuwDpm6je/AJ0IhWg5ys0puyW2Od0xk6pVJ37/yYnOd3nFtGF+JjnP2Wa49L7 gINBddyS9FDqwGS4SCJSw+7fr9D+GD6ok3vdNkV3ev9IrGzVhCM9fEj7wixncJZ6oN0ClT NUsC64MVxzzIYTuIM36q1cSwVHOCDrIiogauawqCN0iPD4A6iEiqko5ora3+QA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jY1hwzzwZd; Mon, 03 Mar 2025 16:57:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv5YA083909; Mon, 3 Mar 2025 16:57:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv5Nj083906; Mon, 3 Mar 2025 16:57:05 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:05 GMT Message-Id: <202503031657.523Gv5Nj083906@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 858f3ef5a0cb - stable/14 - device_probe_and_attach.9: Document more device functions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 858f3ef5a0cb66b9f8c7ac5df7de9b0851fe57ce Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=858f3ef5a0cb66b9f8c7ac5df7de9b0851fe57ce commit 858f3ef5a0cb66b9f8c7ac5df7de9b0851fe57ce Author: John Baldwin AuthorDate: 2025-02-05 19:44:57 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:21 +0000 device_probe_and_attach.9: Document more device functions Split out separate descriptions of device_probe and device_attach and include extra details (such as the effect of a disabled hint during device_attach). Reframe device_probe_and_attach as a recommended wrapper function around device_probe and device_attach. While here, add a description of device_detach. Differential Revision: https://reviews.freebsd.org/D48364 (cherry picked from commit d7fa71dfedd6db18ded3971c6f42b3699b5627d7) --- share/man/man9/Makefile | 3 + share/man/man9/device_probe_and_attach.9 | 128 ++++++++++++++++++++++++++++--- 2 files changed, 120 insertions(+), 11 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index b4adf70ae2aa..6a8f9a9f5622 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1043,6 +1043,9 @@ MLINKS+=device_set_desc.9 device_get_desc.9 \ device_set_desc.9 device_set_descf.9 \ device_set_desc.9 device_set_desc_copy.9 MLINKS+=device_set_flags.9 device_get_flags.9 +MLINKS+=device_probe_and_attach.9 device_attach.9 \ + device_probe_and_attach.9 device_detach.9 \ + device_probe_and_attach.9 device_probe.9 MLINKS+=devstat.9 devicestat.9 \ devstat.9 devstat_new_entry.9 \ devstat.9 devstat_end_transaction.9 \ diff --git a/share/man/man9/device_probe_and_attach.9 b/share/man/man9/device_probe_and_attach.9 index 5d5de52cee66..0c438be3a483 100644 --- a/share/man/man9/device_probe_and_attach.9 +++ b/share/man/man9/device_probe_and_attach.9 @@ -26,33 +26,139 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 16, 1998 +.Dd February 5, 2025 .Dt DEVICE_PROBE_AND_ATTACH 9 .Os .Sh NAME +.Nm device_attach , +.Nm device_detach , +.Nm device_probe , .Nm device_probe_and_attach -.Nd initialise a device +.Nd manage device's connection to a device driver .Sh SYNOPSIS .In sys/param.h .In sys/bus.h .Ft int +.Fn device_attach "device_t dev" +.Ft int +.Fn device_detach "device_t dev" +.Ft int +.Fn device_probe "device_t dev" +.Ft int .Fn device_probe_and_attach "device_t dev" .Sh DESCRIPTION -This function is called during autoconfiguration to initialise the -devices in the system. -For each device, the +These functions manage the relationship between a device and device drivers. +.Pp +.Fn device_probe +invokes the .Xr DEVICE_PROBE 9 -method of each suitable driver is called and if a probe succeeds, a -description of the device is printed and the +method of each suitable driver and to find the driver with the best match for +.Fa dev . +If a matching driver is found, +.Fa dev +is set to the +.Dv DS_ALIVE +state and zero is returned. +If +.Fa dev +is already attached to a device driver or has been disabled via +.Xr device_disable 9 , +then it will not be probed and -1 is returned. +.Pp +.Fn device_attach +fully attaches a device driver to +.Fa dev . +This function prints a description of the device and invokes the +.Xr DEVICE_ATTACH 9 +method. +If the +.Xr DEVICE_ATTACH 9 +method succeeds, +.Fa dev +is set to the +.Dv DS_ATTACHED +state and zero is returned. +If the .Xr DEVICE_ATTACH 9 -method is called. -If the device is disabled using -.Xr device_disable 9 -then it will not be probed. +method fails, +.Xr BUS_CHILD_DETACHED 9 +is called and an error value is returned. +.Pp +If the device name and unit are disabled by a hint, +.Fn device_attach +disables the device, demotes it to the +.Dv DS_NOTPRESENT +state, +and returns +.Dv ENXIO . +The device retains its device name and unit and can be re-enabled via +.Xr devctl 8 . +.Pp +.Fn device_probe_and_attach +is a wrapper function around +.Fn device_probe +and +.Fn device_attach +that fully initialises a device. +If +.Fa dev +is already attached or disabled, +.Fn device_probe_and_attach +leaves the device unchanged and returns zero. +Otherwise, +.Fn device_probe +is used to identify a device driver for +.Fa dev +and +.Fn device_attach +finalizes attaching the driver to +.Fa dev . +Device drivers should generally use this function to initialize a device +rather than direct calls to +.Fn device_probe +and +.Fn device_attach . +.Pp +.Fn device_detach +detaches the device driver from +.Fa dev . +This function invokes the +.Xr DEVICE_DETACH 9 +method to tear down device driver state for +.Fa dev . +If the method fails, +its error value is returned and +.Fa dev +remains attached. +If the method succeeds, +otherwise, +.Xr BUS_CHILD_DETACHED 9 +is called, +the device is set to the +.Dv DS_NOTPRESENT +state, +and zero is returned. +If a device is busy, +.Fn device_detach +fails with +.Dv EBUSY +and leaving +.Fa dev +unchanged. .Sh RETURN VALUES Zero is returned on success, otherwise an appropriate error is returned. +In addition, +.Fn device_probe +returns -1 if +.Fa dev +is disabled or already attached. .Sh SEE ALSO +.Xr devctl 8 , +.Xr BUS_CHILD_DETACHED 9 , .Xr device 9 , +.Xr DEVICE_ATTACH 9 , +.Xr DEVICE_DETACH 9 , +.Xr DEVICE_PROBE 9 , .Xr driver 9 .Sh AUTHORS This manual page was written by From nobody Mon Mar 3 16:57:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jY065Bz5pnPm; Mon, 03 Mar 2025 16:57:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jX1Nkfz46W4; Mon, 03 Mar 2025 16:57:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ojit7FG3vU7YeBPutFSThyNwfI2iisEJ7zRwUCkXJJY=; b=x33LOdQXwzcibNIauSHWOrDRI5/vUVjKQmEGZK2TYxbfqLABiPd3AgSciJ9DKDv8utKCad tRbmoc7Yt9z9411IvojeVmK0UgPT4XH6fkkupGyyLGXtBkXGf017gOQhCpvPuZ4oro3yGP mJ1g1RsibZOcheC98AHC/YViySppZ9CWF4zlYJ6Fgbi1WZhpJrbukzBdYHCXpJYfhxAcSN 7eAncJ6o4Kk5r2UUlso1Tt8O2tQ+51khYoxCG1KqHaL2vMvBkBzZ6/94oId/cqmGAT7nd5 aNIueRiePwO2HPbji//sVU4hmXDpfkA1ImrpnNvZ5+s+z67IpQ91BMM3zwIbPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021024; a=rsa-sha256; cv=none; b=NV3kMasJpZLtHdsZsc1c1+yEKf1eOs3GPnUWZjQ5bxjrYo0u1a1cBy+0PCara5Fh4Zc/gB nrQXbhMG67ALJhhhxaI0Gf5P6mUl+iDauKkNUSC+qVmFuPwNh9BXs6gCDz223WrHvC8QyS LTf5EmXeZex3GVEOljpcPabW+YSqusN98+0OTiGwqvJlO2RSjkYJ21bIsLzuM+lTXbYtoA KKuirDDjJpy6zDxcMrwWyoOXoDOdxPfjlp7tmeP428VD1XzeAVd+SosFOmD4m2B0bjvi8J 34WJG/oqSIX4TU9wrPL5RVIbxRXvKZRJelRmwy+nDv5cMVJUw57E/qglh2XAyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ojit7FG3vU7YeBPutFSThyNwfI2iisEJ7zRwUCkXJJY=; b=mi8RVaENoAoLrErY/ZGAudq9xU1DcMyA0ual9rBr3mC5NsCU0ObEkWmcnqWeb6XzjNtRVb +GnNEceN3bv008ggMrGXRIOnVUGLA7bBXr6MYwTKOPsJZuud8MTT0q5Ds3UPZzQqWLIOsI YOghZ6wXC6Ns/oT1dWl6FFV2evujzZE98P6F6nRthJtoIoIl6wMpkPfTWcsNye15iBeMR5 1j4q/jLBWsnCfZY2cdMz21RGISUiNSe924M40+W6DWKAJaJAkr+MozRFXi7JhLnRb2IFWM gNV934O1kclBRn26WvMukQfCvRy1QLzaqyIKQbUODmzGyngP7Hq2shb5tKMQ6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jX0llHzwc9; Mon, 03 Mar 2025 16:57:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv4op083872; Mon, 3 Mar 2025 16:57:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv3HO083869; Mon, 3 Mar 2025 16:57:03 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:03 GMT Message-Id: <202503031657.523Gv3HO083869@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 7e58d899fd93 - stable/14 - BUS_CONFIG_INTR.9: Describe bus_config_intr() wrapper function List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7e58d899fd93ca35facffa8d22bf14dc71c6e05e Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=7e58d899fd93ca35facffa8d22bf14dc71c6e05e commit 7e58d899fd93ca35facffa8d22bf14dc71c6e05e Author: John Baldwin AuthorDate: 2025-01-16 15:55:20 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:21 +0000 BUS_CONFIG_INTR.9: Describe bus_config_intr() wrapper function Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D48372 (cherry picked from commit e2012b81cb87793be589cffa0a89d9b230df7c93) --- share/man/man9/BUS_CONFIG_INTR.9 | 16 +++++++++++++--- share/man/man9/Makefile | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/share/man/man9/BUS_CONFIG_INTR.9 b/share/man/man9/BUS_CONFIG_INTR.9 index cf6ecbb4b823..aaeb6c3ec089 100644 --- a/share/man/man9/BUS_CONFIG_INTR.9 +++ b/share/man/man9/BUS_CONFIG_INTR.9 @@ -23,12 +23,13 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 15, 2017 +.Dd January 16, 2025 .Dt BUS_CONFIG_INTR 9 .Os .\" .Sh NAME -.Nm BUS_CONFIG_INTR +.Nm BUS_CONFIG_INTR , +.Nm bus_config_intr .Nd "configure interrupt polarity and trigger mode" .\" .Sh SYNOPSIS @@ -36,9 +37,13 @@ .In sys/bus.h .Ft int .Fo BUS_CONFIG_INTR +.Fa "device_t bus" "device_t dev" "int irq" "enum intr_trigger trig" +.Fa "enum intr_polarity pol" +.Fc +.Ft int +.Fo bus_config_intr .Fa "device_t dev" "int irq" "enum intr_trigger trig" "enum intr_polarity pol" .Fc -.\" .Sh DESCRIPTION The .Fn BUS_CONFIG_INTR @@ -53,6 +58,11 @@ that it is called prior to .Xr BUS_SETUP_INTR 9 . .Pp The +.Fn bus_config_intr +function is a simple wrapper around +.Fn BUS_CONFIG_INTR . +.Pp +The .Fa trig argument can be one of: .Bl -tag -width ".Dv INTR_TRIGGER_CONFORM" diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 5263f231b929..b4adf70ae2aa 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -673,6 +673,7 @@ MLINKS+=buf_ring.9 buf_ring_alloc.9 \ MLINKS+=bus_activate_resource.9 bus_deactivate_resource.9 MLINKS+=bus_alloc_resource.9 bus_alloc_resource_any.9 MLINKS+=BUS_BIND_INTR.9 bus_bind_intr.9 +MLINKS+=BUS_CONFIG_INTR.9 bus_config_intr.9 MLINKS+=BUS_DESCRIBE_INTR.9 bus_describe_intr.9 MLINKS+=bus_dma.9 busdma.9 \ bus_dma.9 bus_dmamap_create.9 \ From nobody Mon Mar 3 16:57:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jc3j3Qz5pn7j; Mon, 03 Mar 2025 16:57:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jb4kmcz46Tk; Mon, 03 Mar 2025 16:57:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yFckkXVP4nk9VJuK87IC5u54a/RLmtbWcxNio1ZyJ0U=; b=sEX/cl4cc/OHjL2WvSy/919/CqvwSR3FWc8ZkEkCBXBNKjIWwUyJ8daXeah0+tm4WvlaWt XueXxFbtD4Hw9lXCcQKs0FGsqs0aiDv65vTcsj6RSZqczdLBExNo4MPpAPEU9zcu+NcVBN n8698umKpDJyr7EW/puM04y8v7jG21E4/1gmLM52WdGwk2kw4vBLbg2sjEK3ZIISsHzHRm a+gr/nUVb5z1jUpDzzJX3ht3jsMYpoY/Kk89j8gAOnqRUlNGrvPYhsmWw4oGQlvavivCin eNUGhzDx5dxgIp7YMECbBkkS87Kwjuhj2nJl2z2clCw4gnvTdvqETp8QQQiQYw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021027; a=rsa-sha256; cv=none; b=cxuDlp2b9W9Fu6CxMmmzNKKPTb2zqna9molUrmLL9dIylXYHn1lqcUxa9fz113JNsh+drL fmSFeDpziZRwSuFzLBJ44OCt1MFn9Rw4iuere8tJh2Un7BO++YSEOm+yqHiRJMcIN2Guyo MbXdoOifG4GJUreu58Hirj1axv2jC8EFXaa3BL+M3DNnviBLnDWjVvcEWk7Rh8NqyblXk5 NcSzwmlfXFjOc/+1n2g/BfJG8xkqhwX4Q0uU/zxdH2/90j5Dsxeezz48YLlw4JVQ8Ha/F0 JI1aObemMaw1Ff563arSohUrlVsNClkwd1ADbqhs1MNL//z3eFkvHYJj55sByQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yFckkXVP4nk9VJuK87IC5u54a/RLmtbWcxNio1ZyJ0U=; b=n03Fbl58QsIgFJyjhAJEGusGGMFbViOu/hUepfEORDqwaNYfNyu5JcKHx1ffbAaiPtVcaY bJXNX2EJ39Dkf6iEHCAiPQwsZr9/TJbmK72E502pY40wU0apbJKEZCrRhWLVIxBL9h/Gq4 rRRQyeadwk41ojEba95bncNaACg4Fh713RsP/V0x2c21+vSw01T+rEPjeCD45leIxa29hH 0jl5BZnnF9V/2/gvwPTgL4gnZFbuKkCZDXrCpWsOIkHnIp8sonCEit7F0YUkVPPTE6TUM/ TtUd8ta2mrkK2A9oC9KPD7QPXE9lBI+yra3UMdUi/i7z8iUX+DILKQSzaurPVw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jb3S4YzwL3; Mon, 03 Mar 2025 16:57:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv771083975; Mon, 3 Mar 2025 16:57:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv7dt083972; Mon, 3 Mar 2025 16:57:07 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:07 GMT Message-Id: <202503031657.523Gv7dt083972@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: df124faf6656 - stable/14 - bus_generic_print_child.9: Document bus_print_domain List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: df124faf665685ee5049fa044cf0f07f2a9d340c Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=df124faf665685ee5049fa044cf0f07f2a9d340c commit df124faf665685ee5049fa044cf0f07f2a9d340c Author: John Baldwin AuthorDate: 2025-02-05 19:49:01 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:21 +0000 bus_generic_print_child.9: Document bus_print_domain While here, cross-reference BUS_PRINT_CHILD (and fix a stale reference to DEVICE_PRINT_CHILD which doesn't exist) and expand the text describing the role of the helper functions. Differential Revision: https://reviews.freebsd.org/D48373 (cherry picked from commit 36ecb25e6158f16356938432defd9f9df67a1366) --- share/man/man9/Makefile | 3 +- share/man/man9/bus_generic_print_child.9 | 69 ++++++++++++++++++++++++++------ 2 files changed, 59 insertions(+), 13 deletions(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 6a8f9a9f5622..3ee1d2bb0108 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -692,7 +692,8 @@ MLINKS+=bus_dma.9 busdma.9 \ bus_dma.9 bus_dmamem_free.9 \ bus_dma.9 bus_dma_tag_create.9 \ bus_dma.9 bus_dma_tag_destroy.9 -MLINKS+=bus_generic_print_child.9 bus_print_child_footer.9 \ +MLINKS+=bus_generic_print_child.9 bus_print_child_domain.9 \ + bus_generic_print_child.9 bus_print_child_footer.9 \ bus_generic_print_child.9 bus_print_child_header.9 MLINKS+=bus_generic_read_ivar.9 bus_generic_write_ivar.9 MLINKS+=BUS_GET_CPUS.9 bus_get_cpus.9 diff --git a/share/man/man9/bus_generic_print_child.9 b/share/man/man9/bus_generic_print_child.9 index 1adca331b016..8a72c8e743ec 100644 --- a/share/man/man9/bus_generic_print_child.9 +++ b/share/man/man9/bus_generic_print_child.9 @@ -26,43 +26,88 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 16, 2025 +.Dd February 5, 2025 .Dt BUS_GENERIC_PRINT_CHILD 9 .Os .Sh NAME .Nm bus_generic_print_child , +.Nm bus_print_child_domain , .Nm bus_print_child_footer , .Nm bus_print_child_header .Nd generic implementation of -.Dv DEVICE_PRINT_CHILD -for buses +.Xr BUS_PRINT_CHILD 9 .Sh SYNOPSIS .In sys/param.h .In sys/bus.h .Ft int .Fn bus_generic_print_child "device_t dev" "device_t child" .Ft int +.Fn bus_print_child_domain "device_t dev" "device_t child" +.Ft int .Fn bus_print_child_footer "device_t dev" "device_t child" .Ft int .Fn bus_print_child_header "device_t dev" "device_t child" .Sh DESCRIPTION -This implementation prints out the default device announcement message. -Given device 'foo0' on bus 'bar0' where foo0 has the name "FooCard 1234" the +.Fn bus_generic_print_child +prints out the default device announcement message. +Given device +.Sq foo0 +on bus +.Sq bar0 +where foo0 has the description +.Dq FooCard 1234 +and is associated with the NUMA domain 1, +the following would be printed: +.Bd -literal -offset indent +foo0: numa-domain 1 on bar0 +.Ed .Pp -foo0: on bar0 -.Pp -bus_generic_print_child itself calls two functions -.Fn bus_print_child_header +.Fn bus_generic_print_child +calls the three helper functions +.Fn bus_print_child_header , +.Fn bus_print_child_domain , and .Fn bus_print_child_footer . -The former prints "foo0: " and the latter "on bar0". -These routines should be used if possible in your own code if +.Pp +.Fn bus_print_child_header +outputs the device name and unit followed by the device description +in angle brackets +.Po +.Dq foo0: +.Pc . +.Pp +.Fn bus_print_child_domain +outputs +.Dq \& numa-domain +followed by the domain number if +.Fn bus_get_domain +returns a valid domain for the device +.Po +.Dq numa-domain 1 +.Pc . +If +.Fa dev +is not associated witha valid domain, +nothing is output. +.Pp +.Fn bus_print_child_footer +outputs the string +.Dq \& on +followed by the parent device's name and unit +.Po +.Dq \& on bar0 +.Pc . +.Pp +These functions can be used to implement +.Xr BUS_PRINT_CHILD 9 +in a bus driver if .Fn bus_generic_print_child -does not completely suit your needs. +is not sufficient. .Sh RETURN VALUES The number of characters output. .Sh SEE ALSO +.Xr BUS_PRINT_CHILD 9 , .Xr device 9 .Sh AUTHORS This manual page was written by From nobody Mon Mar 3 16:57:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z64jZ6gSbz5pnXq; Mon, 03 Mar 2025 16:57: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z64jZ3PWLz46J8; Mon, 03 Mar 2025 16:57:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ldI8jR9Awq/9qaf+sTSwjX9fi+y21cceBDAvXNogqWE=; b=GlPfdq3ALaRzJqT3HYiZiTpk19dgqnKN0SjG6WWq+pd7naNKuI/ioGo2fewSWOorojPf69 gC/PJkzPfzqRZ8En//CIOb6oezzHHUf2BKnDDV4ZSJ9huyFNCS9jLmmBGxcrTGMI7EZ0mt sz3RCtu/BjFt3VuJnkc2685xDr5vGlJPK3Wgzx2A+7jQ/+MOjsxYTmC0uF2BPmBiJoEvhk fJeZsSqRt4w/twZ5O84SfXxgncMalhVCNn5iOzgqJDuXS3AoIkYBg9W62rforjMaxLeIRh ZvaJPO3U3nlyD+hDo6j2mM8D7fH1hoK8frwyngU9giDn02TBmNO2zBhnf44tOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741021026; a=rsa-sha256; cv=none; b=JPfrQE6/Lz1i9ZsQrk5VUjwm6Rf3jR+rGGwYKnpjgcqPXk03I2ohdJBef9rye71v6fGGDq KFZda+YPivHm56JDcGQhz6qO8mTyYUREf2tuTdzQcULgjE/6Qsy/74JavyBhWG/Df/85U4 JMPSOdYoNdh5u1L3+MO0vhXBGBpcNvTaF4TBFkh2u20QNZKKgkoHDzBSpf58sxF5csusvw dCoAqIlDgOXA6ThCChqcxlnd/4x1349532MH0Bzp1PeCX6F1kVpHUBXnS90a8Q4Fgk9v2K 0BfMOq3x1W5hOpmHcgero95So6Mch8uP+6gSvwyad20YfmYNIzWUKGK4Mirz3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741021026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ldI8jR9Awq/9qaf+sTSwjX9fi+y21cceBDAvXNogqWE=; b=SvfGuMncspK6iOKjVukjDYk6Z+HSzKW4R8IC+GlN6d/Vip+2BbLFsRwWi2M7qc1AOdNjCh JmYduXC6dT8F7mWq1FBttImHs5A2FO6JumLI8h2DIkJ2A8SSLk+m5Q2Fht8DoZTCiFCu9P TOy3+SXbLrTd98X8mUyfafX3Zx3jjS2a80soliM7MSoSVhyn+1zG6WAahFqtJK3d2+bbTn MKbycjClJm5X8bADDruAT3DXTVmjQ/Nu2TgUh41ke7MuyHSLT782JGUrmVxFjn5pEhFMPC CVVFnLIZoJf5XqKEV+yrcFxdBtGnw5R2Yuo82i23e6uuttYZj/YiGjGACYpTuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z64jZ2S5KzwcB; Mon, 03 Mar 2025 16:57:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 523Gv6jU083942; Mon, 3 Mar 2025 16:57:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 523Gv6Dg083939; Mon, 3 Mar 2025 16:57:06 GMT (envelope-from git) Date: Mon, 3 Mar 2025 16:57:06 GMT Message-Id: <202503031657.523Gv6Dg083939@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: d2c8377a80ad - stable/14 - device_delete_child.9: Reference device_detach.9 and BUS_CHILD_DELETED.9 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d2c8377a80ad955eb85bbfd760a327d0ed38a7e5 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=d2c8377a80ad955eb85bbfd760a327d0ed38a7e5 commit d2c8377a80ad955eb85bbfd760a327d0ed38a7e5 Author: John Baldwin AuthorDate: 2025-02-05 19:45:54 +0000 Commit: John Baldwin CommitDate: 2025-03-03 16:56:21 +0000 device_delete_child.9: Reference device_detach.9 and BUS_CHILD_DELETED.9 Refer to device_detach(9) for the description of detaching a device. Note that descendants of the child device are also deleted (though in theory a proper detach routine should have already deleted these). Finally, note that BUS_CHILD_DELETED(9) is invoked on each deleted device. Differential Revision: https://reviews.freebsd.org/D48365 (cherry picked from commit 3f93f96c26e51a42822c61e73252f4aeb6bb303a) --- share/man/man9/device_delete_child.9 | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/share/man/man9/device_delete_child.9 b/share/man/man9/device_delete_child.9 index f6c08cb52e16..819c7f5e36b9 100644 --- a/share/man/man9/device_delete_child.9 +++ b/share/man/man9/device_delete_child.9 @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 16, 1998 +.Dd February 5, 2025 .Dt DEVICE_DELETE_CHILD 9 .Os .Sh NAME @@ -41,13 +41,26 @@ The specified device is removed from .Fa dev and deleted. -If the device is currently attached, it is first detached (see -.Xr DEVICE_ATTACH 9 -and -.Xr DEVICE_DETACH 9 ) . +If the device is currently attached, it is first detached via +.Xr device_detach 9 . +If +.Fn device_detach +fails, +its error value is returned. +Otherwise, +all descendant devices of +.Fa child +are deleted and zero is returned. +.Pp +The +.Xr BUS_CHILD_DELETED 9 +method is invoked for each device that is deleted. +This permits the parent device's driver to tear down any state associated +with child devices such as ivars. .Sh RETURN VALUES Zero is returned on success, otherwise an error is returned. .Sh SEE ALSO +.Xr BUS_CHILD_DELETED 9 , .Xr device_add_child 9 .Sh AUTHORS This manual page was written by From nobody Tue Mar 4 02:21:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6KDx1gSnz5pFmw; Tue, 04 Mar 2025 02:21:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6KDw6ThZz3rGY; Tue, 04 Mar 2025 02:21:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741054897; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t86nqDKNPs1FrfhqtXa4V+960xnYfPnpDz/KFTTnS2k=; b=sqwasiJ79jPH3yRVJhJ6uqTvu5zWMk2v3AvKsesul6Kk+IfYjZY1JhEQWuv0GDzgIa1c10 Zn92jbisziGfNmb5HGv8RNHp21c36NF3vfosckd17iTaJgoRvZIbs2W4x91fxKvHjqkkX9 Xs4Fov73PBHARfTcr12i4AeBSMNbonvOfthuy6aQL+Pj4kzuUKOWcg2Kqe1sFf4MGw92tK q0y9O1E+6jPA92G1iY3zyOl/PIuZjLFDSLJ9SkPo//1cBTvc+cbp1MfAxM6+MXUTpF084y 3qouNSXOnf7TuKBA/vx2XMpvhzJzdEexOWGce2ULpqZk/1PXopiiGTysPKCc/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741054897; a=rsa-sha256; cv=none; b=Oitp3fne/HwWN9PSe+TAwxvfhbpl+/d9JEMx+lihM1zhV9HcrBArnyF6WAPfJlYvM0bKSX pHXN4s3GbBE/kmN5jKI7LPTbpSD6c29eUsd+jxbT/hcjs9U30qf33BdwDHCH2H3/qaR0YO gMcuiFZ9iQuuqQXYMfh6giElVOacEojpFzicgj3Z6BCew7jF/BjJ+vl4n/uhgbdlgvX76H Lo/OaIxsV9Q20lqJHEE3syikz7G5sCTQI03WRmG2yA7jHmUySsnzvGbWPOj/+GfQSXLsFv 69OnjNM8eSDzCxXi2gSTh94HURDbsriiXOAU6NlifX7P9w7AJAqd+dh7RIDyEw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741054896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t86nqDKNPs1FrfhqtXa4V+960xnYfPnpDz/KFTTnS2k=; b=hh/Vh6XlvWDQRBsdogTpiSFUciVGiuwtuAd+A5tEccXSeXQ/PVaaTHUdPI3HhpSNOVLqJ3 pV95RzuUXm9SC4W2i1oGmdFT9dnLoID9fiWH0KDaZfrM6Y8ExQx8GphGWEC3CzJYHCJK3o d8Eav0j77kDHWIrfUzlnx/hJHcq3AvvAtwZx7XswAxO3ROKcGAUfLt0QScZy2cCRySjiMI ecR6UUWUYc9wnLqA+A4qyT4c7LWnsHwmy++bTm+WwlWbnEDho9H7BF+cIAllGltjtrTreA jitSA9jrJ67aLV32eE7qCFVJ8h2QVhhc1BcHJBS10F0g9au+gk1X2w0lDqYeYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6KDw60grz1D37; Tue, 04 Mar 2025 02:21:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5242LaXM044479; Tue, 4 Mar 2025 02:21:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5242Lag6044476; Tue, 4 Mar 2025 02:21:36 GMT (envelope-from git) Date: Tue, 4 Mar 2025 02:21:36 GMT Message-Id: <202503040221.5242Lag6044476@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 6ff42c4fafb7 - stable/14 - nfscl: Add support for CB_RECALL_ANY to the NFSv4.1/4.2 client List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6ff42c4fafb7684805f1a756c345fcbf1a29c993 Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=6ff42c4fafb7684805f1a756c345fcbf1a29c993 commit 6ff42c4fafb7684805f1a756c345fcbf1a29c993 Author: Rick Macklem AuthorDate: 2025-02-18 22:34:12 +0000 Commit: Rick Macklem CommitDate: 2025-03-04 02:20:46 +0000 nfscl: Add support for CB_RECALL_ANY to the NFSv4.1/4.2 client Commit f5aff1871d32 and 7e26f1c21049 moved the delegation and layout high water variables into the clientID structure. This patch uses those variables to implement the CB_RECALL_ANY NFSv4.1/4.2 callback. This patch only affects NFSv4.1/4.2 mounts to non-FreeBSD NFS servers that use CB_RECALL_ANY. The Linux knfsd is one example of such a server. (cherry picked from commit 8dc0889f56dd6ac5c33ce79337a971af4b9ff127) --- sys/fs/nfs/nfsproto.h | 11 +++++++++++ sys/fs/nfsclient/nfs_clstate.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/sys/fs/nfs/nfsproto.h b/sys/fs/nfs/nfsproto.h index 323746ebbb6c..995754f42b15 100644 --- a/sys/fs/nfs/nfsproto.h +++ b/sys/fs/nfs/nfsproto.h @@ -744,6 +744,17 @@ #define NFSSECINFONONAME_CURFH 0 #define NFSSECINFONONAME_PARENT 1 +/* Bits for CB_RECALL_ANY. */ +#define NFSRCA4_RDATA_DLG 0x00000001 +#define NFSRCA4_WDATA_DLG 0x00000002 +#define NFSRCA4_DIR_DLG 0x00000004 +#define NFSRCA4_FILE_LAYOUT 0x00000008 +#define NFSRCA4_BLK_LAYOUT 0x00000010 +#define NFSRCA4_OBJ_LAYOUT_MIN 0x00000100 +#define NFSRCA4_OBJ_LAYOUT_MAX 0x00000200 +#define NFSRCA4_FF_LAYOUT_READ 0x00010000 +#define NFSRCA4_FF_LAYOUT_RW 0x00020000 + #if defined(_KERNEL) || defined(KERNEL) /* Conversion macros */ #define vtonfsv2_mode(t,m) \ diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index 12894e3dcb84..b00de78ef591 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -3959,6 +3959,40 @@ nfscl_docb(struct nfsrv_descript *nd, NFSPROC_T *p) } NFSUNLOCKCLSTATE(); break; + case NFSV4OP_CBRECALLANY: + NFSM_DISSECT(tl, uint32_t *, 2 * NFSX_UNSIGNED); + i = fxdr_unsigned(int, *tl++); + j = fxdr_unsigned(int, *tl); + if (i < 0 || j != 1) + error = NFSERR_BADXDR; + if (error == 0) { + NFSM_DISSECT(tl, uint32_t *, NFSX_UNSIGNED); + j = fxdr_unsigned(int, *tl); + if (i < 100) + i = 100; + else if (i > 100000) + i = 100000; + NFSLOCKCLSTATE(); + clp = nfscl_getclntsess(sessionid); + if (clp == NULL) + error = NFSERR_SERVERFAULT; + if (((j & NFSRCA4_RDATA_DLG) != 0 || + (j & NFSRCA4_WDATA_DLG) != 0) && + error == 0 && i < + clp->nfsc_deleghighwater) + clp->nfsc_deleghighwater = i; + if (error == 0 && + ((!NFSHASFLEXFILE(clp->nfsc_nmp) && + (j & NFSRCA4_FILE_LAYOUT) != 0 && + i < clp->nfsc_layouthighwater) || + (NFSHASFLEXFILE(clp->nfsc_nmp) && + (j & (NFSRCA4_FF_LAYOUT_READ | + NFSRCA4_FF_LAYOUT_RW)) != 0 && + i < clp->nfsc_layouthighwater))) + clp->nfsc_layouthighwater = i; + NFSUNLOCKCLSTATE(); + } + break; default: if (i == 0 && minorvers != NFSV4_MINORVERSION) error = NFSERR_OPNOTINSESS; From nobody Tue Mar 4 04:20:45 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6MtQ0JTgz5pRs1; Tue, 04 Mar 2025 04:20:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6MtP52HPz42lF; Tue, 04 Mar 2025 04:20:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741062045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k3PvC0thFRWQ5IjAlAXLaZIyad9pXFvCCSFUKBoxv7A=; b=G1EGzWOdP8BD5aWbhPE5PoYc2R+K6uFzGJJcsN9F3XeUQQXQ/QiogVhUvv0QWuxmpwaGTv maF8Hi1m0HF+zfZ70qSfLkYJpfykl82IOGHr4OYUqyn9T10RGCrx1ZzIDGp4YXvjAgf/yb SHG0uWNtS2xY1YbfxTrvGNnFzMQJ6SbJ4+sHhtb6yE6fLo7eZlIkbUiEdjI6OF6UiZ409R gVJbDJtSCqGA7MAwhz62aOAC/+cE5vLrXatBEFSDyicYQsq3KkFYMBCbMaUaxjWPzDHf9F qNQ9q7emmi31kHvb8FHY/VasUKxzaDXYub+5M8GjPiOaXoYbcCYaJKmnbAvycA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741062045; a=rsa-sha256; cv=none; b=DmatdYH1PZI+xAr4AJ1AOUbJqvueKdJX9NASQ39UzdkrpNNbAAe8FIAKHHhJ/MkR34TQk5 rCSVtSBKYwVJtu5dB2dEaeS8Bu5IAy4sVUXPNjQqaACk11dIq74G5SvKQ3gBO47B0Ati1H Wfp8y5VQ8c9MVlc6E2TUEqTQ1HGuXlE2Vi0im29caqVMGMFGOQTEqY0//Cyw76uBwpA+CA 3Z2nKw8f82598U0Iap5sgbva9SplK25UhSkLowjSDn7zoyGsc++8zzpEJ/OoHAvuW/3ERt G4mTpOR/fsfcKVfGj4D57WiCGIpZQuGYp5EbrIn8anJocM8fZZyU6KpRGPcG1w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741062045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k3PvC0thFRWQ5IjAlAXLaZIyad9pXFvCCSFUKBoxv7A=; b=Vwb4fLpg2qxV8afIA8sUIbBDmZvUNx5UBxXQzgAryycTuQE1JywBAtV6qewt3NZ3nODx3F mEvlSxmEh6RfAUUsiR7Jt+Yf+0MXkqWMYdVRNy1WoDq4w0nocmmldRxxGxu7Qcm8fjDGmQ bGMBHUr3PoMc8fufk/xXwShxv5ydNZNbgmi3EwfFc0VH53QRDOLqfpzPi30O2+WpUa2WsG g9lRSKt1UKlgtFlEkpnfAGiz3WKhyjy4Ah+7ssacyC64eP1vSJzpe5WPwT7X+a0z4uolsd uO9a+BibitYGexJHju3HS2UlGDusUO4smHezljY4N7Nz5HrWnIVY+W1AW1vTFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6MtP3fQkz1GrW; Tue, 04 Mar 2025 04:20:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5244Kj7X065892; Tue, 4 Mar 2025 04:20:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5244KjGi065889; Tue, 4 Mar 2025 04:20:45 GMT (envelope-from git) Date: Tue, 4 Mar 2025 04:20:45 GMT Message-Id: <202503040420.5244KjGi065889@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 69b6dc0b920b - stable/14 - libc/gen: split user-visible opendir()-like functions into separate source files List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 69b6dc0b920baaf7bd12b83df08ff78155052261 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=69b6dc0b920baaf7bd12b83df08ff78155052261 commit 69b6dc0b920baaf7bd12b83df08ff78155052261 Author: Konstantin Belousov AuthorDate: 2025-02-20 23:32:22 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-04 04:19:08 +0000 libc/gen: split user-visible opendir()-like functions into separate source files (cherry picked from commit d40daefca64750c1076822bdbd3c409a9519f513) --- lib/libc/gen/Makefile.inc | 2 + lib/libc/gen/fdopendir.c | 56 ++++++ lib/libc/gen/opendir.c | 312 +---------------------------- lib/libc/gen/opendir2.c | 340 ++++++++++++++++++++++++++++++++ lib/libc/gen/telldir.h | 1 + libexec/rtld-elf/rtld-libc/Makefile.inc | 2 +- 6 files changed, 401 insertions(+), 312 deletions(-) diff --git a/lib/libc/gen/Makefile.inc b/lib/libc/gen/Makefile.inc index 332edfcd6695..f9f6f3139379 100644 --- a/lib/libc/gen/Makefile.inc +++ b/lib/libc/gen/Makefile.inc @@ -54,6 +54,7 @@ SRCS+= __getosreldate.c \ exec.c \ exect.c \ fdevname.c \ + fdopendir.c \ feature_present.c \ fmtcheck.c \ fmtmsg.c \ @@ -112,6 +113,7 @@ SRCS+= __getosreldate.c \ nlist.c \ nrand48.c \ opendir.c \ + opendir2.c \ pause.c \ pmadvise.c \ popen.c \ diff --git a/lib/libc/gen/fdopendir.c b/lib/libc/gen/fdopendir.c new file mode 100644 index 000000000000..67c0766b6d83 --- /dev/null +++ b/lib/libc/gen/fdopendir.c @@ -0,0 +1,56 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "namespace.h" +#include + +#include +#include +#include +#include +#include +#include +#include "un-namespace.h" + +#include "gen-private.h" +#include "telldir.h" + +/* + * Open a directory with existing file descriptor. + */ +DIR * +fdopendir(int fd) +{ + + if (_fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) + return (NULL); + return (__opendir_common(fd, DTF_HIDEW | DTF_NODUP, true)); +} diff --git a/lib/libc/gen/opendir.c b/lib/libc/gen/opendir.c index a3864b0939fc..df288d416a2f 100644 --- a/lib/libc/gen/opendir.c +++ b/lib/libc/gen/opendir.c @@ -45,8 +45,6 @@ __SCCSID("@(#)opendir.c 8.8 (Berkeley) 5/1/95"); #include "gen-private.h" #include "telldir.h" -static DIR * __opendir_common(int, int, bool); - /* * Open a directory. */ @@ -54,313 +52,5 @@ DIR * opendir(const char *name) { - return (__opendir2(name, DTF_HIDEW|DTF_NODUP)); -} - -/* - * Open a directory with existing file descriptor. - */ -DIR * -fdopendir(int fd) -{ - - if (_fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) - return (NULL); - return (__opendir_common(fd, DTF_HIDEW|DTF_NODUP, true)); -} - -DIR * -__opendir2(const char *name, int flags) -{ - int fd; - DIR *dir; - int saved_errno; - - if ((flags & (__DTF_READALL | __DTF_SKIPREAD)) != 0) - return (NULL); - if ((fd = _open(name, - O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC)) == -1) - return (NULL); - - dir = __opendir_common(fd, flags, false); - if (dir == NULL) { - saved_errno = errno; - _close(fd); - errno = saved_errno; - } - return (dir); -} - -static int -opendir_compar(const void *p1, const void *p2) -{ - - return (strcmp((*(const struct dirent * const *)p1)->d_name, - (*(const struct dirent * const *)p2)->d_name)); -} - -/* - * For a directory at the top of a unionfs stack, the entire directory's - * contents are read and cached locally until the next call to rewinddir(). - * For the fdopendir() case, the initial seek position must be preserved. - * For rewinddir(), the full directory should always be re-read from the - * beginning. - * - * If an error occurs, the existing buffer and state of 'dirp' is left - * unchanged. - */ -bool -_filldir(DIR *dirp, bool use_current_pos) -{ - struct dirent **dpv; - char *buf, *ddptr, *ddeptr; - off_t pos; - int fd2, incr, len, n, saved_errno, space; - - len = 0; - space = 0; - buf = NULL; - ddptr = NULL; - - /* - * Use the system page size if that is a multiple of DIRBLKSIZ. - * Hopefully this can be a big win someday by allowing page - * trades to user space to be done by _getdirentries(). - */ - incr = getpagesize(); - if ((incr % DIRBLKSIZ) != 0) - incr = DIRBLKSIZ; - - /* - * The strategy here is to read all the directory - * entries into a buffer, sort the buffer, and - * remove duplicate entries by setting the inode - * number to zero. - * - * We reopen the directory because _getdirentries() - * on a MNT_UNION mount modifies the open directory, - * making it refer to the lower directory after the - * upper directory's entries are exhausted. - * This would otherwise break software that uses - * the directory descriptor for fchdir or *at - * functions, such as fts.c. - */ - if ((fd2 = _openat(dirp->dd_fd, ".", O_RDONLY | O_CLOEXEC)) == -1) - return (false); - - if (use_current_pos) { - pos = lseek(dirp->dd_fd, 0, SEEK_CUR); - if (pos == -1 || lseek(fd2, pos, SEEK_SET) == -1) { - saved_errno = errno; - _close(fd2); - errno = saved_errno; - return (false); - } - } - - do { - /* - * Always make at least DIRBLKSIZ bytes - * available to _getdirentries - */ - if (space < DIRBLKSIZ) { - space += incr; - len += incr; - buf = reallocf(buf, len); - if (buf == NULL) { - saved_errno = errno; - _close(fd2); - errno = saved_errno; - return (false); - } - ddptr = buf + (len - space); - } - - n = _getdirentries(fd2, ddptr, space, &dirp->dd_seek); - if (n > 0) { - ddptr += n; - space -= n; - } - if (n < 0) { - saved_errno = errno; - _close(fd2); - errno = saved_errno; - return (false); - } - } while (n > 0); - _close(fd2); - - ddeptr = ddptr; - - /* - * There is now a buffer full of (possibly) duplicate - * names. - */ - dirp->dd_buf = buf; - - /* - * Go round this loop twice... - * - * Scan through the buffer, counting entries. - * On the second pass, save pointers to each one. - * Then sort the pointers and remove duplicate names. - */ - for (dpv = NULL;;) { - n = 0; - ddptr = buf; - while (ddptr < ddeptr) { - struct dirent *dp; - - dp = (struct dirent *) ddptr; - if ((long)dp & 03L) - break; - if ((dp->d_reclen <= 0) || - (dp->d_reclen > (ddeptr + 1 - ddptr))) - break; - ddptr += dp->d_reclen; - if (dp->d_fileno) { - if (dpv) - dpv[n] = dp; - n++; - } - } - - if (dpv) { - struct dirent *xp; - - /* - * This sort must be stable. - */ - mergesort(dpv, n, sizeof(*dpv), opendir_compar); - - dpv[n] = NULL; - xp = NULL; - - /* - * Scan through the buffer in sort order, - * zapping the inode number of any - * duplicate names. - */ - for (n = 0; dpv[n]; n++) { - struct dirent *dp = dpv[n]; - - if ((xp == NULL) || - strcmp(dp->d_name, xp->d_name)) { - xp = dp; - } else { - dp->d_fileno = 0; - } - if (dp->d_type == DT_WHT && - (dirp->dd_flags & DTF_HIDEW)) - dp->d_fileno = 0; - } - - free(dpv); - break; - } else { - dpv = malloc((n+1) * sizeof(struct dirent *)); - if (dpv == NULL) - break; - } - } - - dirp->dd_len = len; - dirp->dd_size = ddptr - dirp->dd_buf; - return (true); -} - -static bool -is_unionstack(int fd) -{ - int unionstack; - - unionstack = _fcntl(fd, F_ISUNIONSTACK, 0); - if (unionstack != -1) - return (unionstack); - - /* - * Should not happen unless running on a kernel without the op, - * but no use rendering the system useless in such a case. - */ - return (0); -} - -/* - * Common routine for opendir(3), __opendir2(3) and fdopendir(3). - */ -static DIR * -__opendir_common(int fd, int flags, bool use_current_pos) -{ - DIR *dirp; - int incr; - int saved_errno; - bool unionstack; - - if ((dirp = malloc(sizeof(DIR) + sizeof(struct _telldir))) == NULL) - return (NULL); - - dirp->dd_buf = NULL; - dirp->dd_fd = fd; - dirp->dd_flags = flags; - dirp->dd_loc = 0; - dirp->dd_lock = NULL; - dirp->dd_td = (struct _telldir *)((char *)dirp + sizeof(DIR)); - LIST_INIT(&dirp->dd_td->td_locq); - dirp->dd_td->td_loccnt = 0; - dirp->dd_compat_de = NULL; - - /* - * Use the system page size if that is a multiple of DIRBLKSIZ. - * Hopefully this can be a big win someday by allowing page - * trades to user space to be done by _getdirentries(). - */ - incr = getpagesize(); - if ((incr % DIRBLKSIZ) != 0) - incr = DIRBLKSIZ; - - /* - * Determine whether this directory is the top of a union stack. - */ - unionstack = false; - if (flags & DTF_NODUP) { - unionstack = is_unionstack(fd); - } - - if (unionstack) { - if (!_filldir(dirp, use_current_pos)) - goto fail; - dirp->dd_flags |= __DTF_READALL; - } else { - dirp->dd_len = incr; - dirp->dd_buf = malloc(dirp->dd_len); - if (dirp->dd_buf == NULL) - goto fail; - if (use_current_pos) { - /* - * Read the first batch of directory entries - * to prime dd_seek. This also checks if the - * fd passed to fdopendir() is a directory. - */ - dirp->dd_size = _getdirentries(dirp->dd_fd, - dirp->dd_buf, dirp->dd_len, &dirp->dd_seek); - if (dirp->dd_size < 0) { - if (errno == EINVAL) - errno = ENOTDIR; - goto fail; - } - dirp->dd_flags |= __DTF_SKIPREAD; - } else { - dirp->dd_size = 0; - dirp->dd_seek = 0; - } - } - - return (dirp); - -fail: - saved_errno = errno; - free(dirp->dd_buf); - free(dirp); - errno = saved_errno; - return (NULL); + return (__opendir2(name, DTF_HIDEW | DTF_NODUP)); } diff --git a/lib/libc/gen/opendir2.c b/lib/libc/gen/opendir2.c new file mode 100644 index 000000000000..30a9030693e4 --- /dev/null +++ b/lib/libc/gen/opendir2.c @@ -0,0 +1,340 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "namespace.h" +#include + +#include +#include +#include +#include +#include +#include +#include "un-namespace.h" + +#include "gen-private.h" +#include "telldir.h" + +DIR * +__opendir2(const char *name, int flags) +{ + int fd; + DIR *dir; + int saved_errno; + + if ((flags & (__DTF_READALL | __DTF_SKIPREAD)) != 0) + return (NULL); + if ((fd = _open(name, + O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC)) == -1) + return (NULL); + + dir = __opendir_common(fd, flags, false); + if (dir == NULL) { + saved_errno = errno; + _close(fd); + errno = saved_errno; + } + return (dir); +} + +static int +opendir_compar(const void *p1, const void *p2) +{ + + return (strcmp((*(const struct dirent * const *)p1)->d_name, + (*(const struct dirent * const *)p2)->d_name)); +} + +/* + * For a directory at the top of a unionfs stack, the entire directory's + * contents are read and cached locally until the next call to rewinddir(). + * For the fdopendir() case, the initial seek position must be preserved. + * For rewinddir(), the full directory should always be re-read from the + * beginning. + * + * If an error occurs, the existing buffer and state of 'dirp' is left + * unchanged. + */ +bool +_filldir(DIR *dirp, bool use_current_pos) +{ + struct dirent **dpv; + char *buf, *ddptr, *ddeptr; + off_t pos; + int fd2, incr, len, n, saved_errno, space; + + len = 0; + space = 0; + buf = NULL; + ddptr = NULL; + + /* + * Use the system page size if that is a multiple of DIRBLKSIZ. + * Hopefully this can be a big win someday by allowing page + * trades to user space to be done by _getdirentries(). + */ + incr = getpagesize(); + if ((incr % DIRBLKSIZ) != 0) + incr = DIRBLKSIZ; + + /* + * The strategy here is to read all the directory + * entries into a buffer, sort the buffer, and + * remove duplicate entries by setting the inode + * number to zero. + * + * We reopen the directory because _getdirentries() + * on a MNT_UNION mount modifies the open directory, + * making it refer to the lower directory after the + * upper directory's entries are exhausted. + * This would otherwise break software that uses + * the directory descriptor for fchdir or *at + * functions, such as fts.c. + */ + if ((fd2 = _openat(dirp->dd_fd, ".", O_RDONLY | O_CLOEXEC)) == -1) + return (false); + + if (use_current_pos) { + pos = lseek(dirp->dd_fd, 0, SEEK_CUR); + if (pos == -1 || lseek(fd2, pos, SEEK_SET) == -1) { + saved_errno = errno; + _close(fd2); + errno = saved_errno; + return (false); + } + } + + do { + /* + * Always make at least DIRBLKSIZ bytes + * available to _getdirentries + */ + if (space < DIRBLKSIZ) { + space += incr; + len += incr; + buf = reallocf(buf, len); + if (buf == NULL) { + saved_errno = errno; + _close(fd2); + errno = saved_errno; + return (false); + } + ddptr = buf + (len - space); + } + + n = _getdirentries(fd2, ddptr, space, &dirp->dd_seek); + if (n > 0) { + ddptr += n; + space -= n; + } + if (n < 0) { + saved_errno = errno; + _close(fd2); + errno = saved_errno; + return (false); + } + } while (n > 0); + _close(fd2); + + ddeptr = ddptr; + + /* + * There is now a buffer full of (possibly) duplicate + * names. + */ + dirp->dd_buf = buf; + + /* + * Go round this loop twice... + * + * Scan through the buffer, counting entries. + * On the second pass, save pointers to each one. + * Then sort the pointers and remove duplicate names. + */ + for (dpv = NULL;;) { + n = 0; + ddptr = buf; + while (ddptr < ddeptr) { + struct dirent *dp; + + dp = (struct dirent *) ddptr; + if ((long)dp & 03L) + break; + if ((dp->d_reclen <= 0) || + (dp->d_reclen > (ddeptr + 1 - ddptr))) + break; + ddptr += dp->d_reclen; + if (dp->d_fileno) { + if (dpv) + dpv[n] = dp; + n++; + } + } + + if (dpv) { + struct dirent *xp; + + /* + * This sort must be stable. + */ + mergesort(dpv, n, sizeof(*dpv), opendir_compar); + + dpv[n] = NULL; + xp = NULL; + + /* + * Scan through the buffer in sort order, + * zapping the inode number of any + * duplicate names. + */ + for (n = 0; dpv[n]; n++) { + struct dirent *dp = dpv[n]; + + if ((xp == NULL) || + strcmp(dp->d_name, xp->d_name)) { + xp = dp; + } else { + dp->d_fileno = 0; + } + if (dp->d_type == DT_WHT && + (dirp->dd_flags & DTF_HIDEW)) + dp->d_fileno = 0; + } + + free(dpv); + break; + } else { + dpv = malloc((n+1) * sizeof(struct dirent *)); + if (dpv == NULL) + break; + } + } + + dirp->dd_len = len; + dirp->dd_size = ddptr - dirp->dd_buf; + return (true); +} + +static bool +is_unionstack(int fd) +{ + int unionstack; + + unionstack = _fcntl(fd, F_ISUNIONSTACK, 0); + if (unionstack != -1) + return (unionstack); + + /* + * Should not happen unless running on a kernel without the op, + * but no use rendering the system useless in such a case. + */ + return (0); +} + +/* + * Common routine for opendir(3), __opendir2(3) and fdopendir(3). + */ +DIR * +__opendir_common(int fd, int flags, bool use_current_pos) +{ + DIR *dirp; + int incr; + int saved_errno; + bool unionstack; + + if ((dirp = malloc(sizeof(DIR) + sizeof(struct _telldir))) == NULL) + return (NULL); + + dirp->dd_buf = NULL; + dirp->dd_fd = fd; + dirp->dd_flags = flags; + dirp->dd_loc = 0; + dirp->dd_lock = NULL; + dirp->dd_td = (struct _telldir *)((char *)dirp + sizeof(DIR)); + LIST_INIT(&dirp->dd_td->td_locq); + dirp->dd_td->td_loccnt = 0; + dirp->dd_compat_de = NULL; + + /* + * Use the system page size if that is a multiple of DIRBLKSIZ. + * Hopefully this can be a big win someday by allowing page + * trades to user space to be done by _getdirentries(). + */ + incr = getpagesize(); + if ((incr % DIRBLKSIZ) != 0) + incr = DIRBLKSIZ; + + /* + * Determine whether this directory is the top of a union stack. + */ + unionstack = false; + if (flags & DTF_NODUP) { + unionstack = is_unionstack(fd); + } + + if (unionstack) { + if (!_filldir(dirp, use_current_pos)) + goto fail; + dirp->dd_flags |= __DTF_READALL; + } else { + dirp->dd_len = incr; + dirp->dd_buf = malloc(dirp->dd_len); + if (dirp->dd_buf == NULL) + goto fail; + if (use_current_pos) { + /* + * Read the first batch of directory entries + * to prime dd_seek. This also checks if the + * fd passed to fdopendir() is a directory. + */ + dirp->dd_size = _getdirentries(dirp->dd_fd, + dirp->dd_buf, dirp->dd_len, &dirp->dd_seek); + if (dirp->dd_size < 0) { + if (errno == EINVAL) + errno = ENOTDIR; + goto fail; + } + dirp->dd_flags |= __DTF_SKIPREAD; + } else { + dirp->dd_size = 0; + dirp->dd_seek = 0; + } + } + + return (dirp); + +fail: + saved_errno = errno; + free(dirp->dd_buf); + free(dirp); + errno = saved_errno; + return (NULL); +} diff --git a/lib/libc/gen/telldir.h b/lib/libc/gen/telldir.h index aafa6ac71b1e..6d113491e819 100644 --- a/lib/libc/gen/telldir.h +++ b/lib/libc/gen/telldir.h @@ -103,6 +103,7 @@ struct dirent *_readdir_unlocked(DIR *, int); void _reclaim_telldir(DIR *); void _seekdir(DIR *, long); void _fixtelldir(DIR *dirp, long oldseek, long oldloc); +DIR *__opendir_common(int, int, bool); #define RDU_SKIP 0x0001 #define RDU_SHORT 0x0002 diff --git a/libexec/rtld-elf/rtld-libc/Makefile.inc b/libexec/rtld-elf/rtld-libc/Makefile.inc index 91eb6f5cabec..8a9480bc746e 100644 --- a/libexec/rtld-elf/rtld-libc/Makefile.inc +++ b/libexec/rtld-elf/rtld-libc/Makefile.inc @@ -17,7 +17,7 @@ CFLAGS+= -I${SRCTOP}/libexec/rtld-elf/rtld-libc # redirects all calls to interposed functions to use the non-interposed version # instead. .PATH: ${LIBC_SRCTOP}/gen -SRCS+= opendir.c closedir.c readdir.c telldir.c +SRCS+= fdopendir.c opendir.c opendir2.c closedir.c readdir.c telldir.c # Avoid further dependencies by providing simple implementations of libc # functions such as __error(), etc. From nobody Tue Mar 4 04:20:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6MtR0PwTz5pRh8; Tue, 04 Mar 2025 04:20:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6MtQ5z1Yz433D; Tue, 04 Mar 2025 04:20:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741062046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4I1VnXhqgVTUeycBizcDfh17QJvVd+Cblg8AQCpr9TI=; b=pG02bLE8PslwTOI6ggUbFh3vgoZHjQ7tav+jZ0pzRuGQI8Ad+IGnhBLd1TyyH4hAJ48Ybb hvuKEU4KcWZhdnMI1hw9TOXvIYZcC+MuZ0Ep6/SWvcmYWYtaoI7ez2cygUOB4aQGbNKB7k 5heClitzqDTJBn1ZBJxD2o1pipj27beO3gRyvd8W6acH0N2aX1oJwF4tr3qq+OfgNbkBDZ uI16kukPplzyK9quZz7BT3t/hxnFc2lpXkYh9B1K+uwfrfnMBRsWLoN8ejNKEBZwUTKHyJ LcvLBzxwL/OIso5cSubUoZj8EPJg4gRRb7c3UmsJTK8UDN+1GKD45hT5dcTD3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741062046; a=rsa-sha256; cv=none; b=g12HsknsCAO0KMM9175CGA7IecmgU0w+39xZFPdF87zXj8U7mQa0NgTWQbwJfW+dXwQ8H+ OCfudmjqJpcCNPg0XBMfviUqwBzs+NTfxuGQtQVvDowUsMtih9N5NAr7EuPIKVRHjnlI/N s8+3VUaNaYQjp7ciUy6g+hSzxaCwOOIwifXxSKC1zgEWt5/ZKPnddoGS53vGv+JwL7quKL OEdusAAnZFyx+1KdeA11hdjeB0DoiGeFc3Ur7o5l8CRrT2eQEq+bcc7ThniN9wlLUU1zLr FvSnH6SasktcB+iFwV9cLF1eRuEz414FrQYM7QDTMtn2vTBGRxC/z41tLTdQHA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741062046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4I1VnXhqgVTUeycBizcDfh17QJvVd+Cblg8AQCpr9TI=; b=FR97O7LBCjv1VMQNcfXfOzyLpmfP98lbe0Hh/WJyFE3YT+fL4wsjVrTn0bWqrK8b5mg1Uu 3BxuO7soFysEWgB1LJeMvmp9JHzmrqqst9yK6o/+/v4xTXU6sgby7zi3HeXsroF/+1VxxB 2zWJ431ypKY519uGX8qqGfkeOoEt5dHOWRHotR9i36H9pIRXI1PhHcWzWy7YLTnUrAdw0Q JFkoluBqpJcBcgm9jghoMJLVssFz2D2vJZ1nWeebpLGN6yZCWqfRYcNUrHAt4VLV0Sz3zG e0hiHwAZTWoB4vsbTfBmlxkeZQe2natQK3F12Jmyz6xaQcjo3YVtvHp9xVTcYA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6MtQ4YT1z1Gpt; Tue, 04 Mar 2025 04:20:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5244KkOS065926; Tue, 4 Mar 2025 04:20:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5244Kkrk065923; Tue, 4 Mar 2025 04:20:46 GMT (envelope-from git) Date: Tue, 4 Mar 2025 04:20:46 GMT Message-Id: <202503040420.5244Kkrk065923@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9460df357344 - stable/14 - fts(3): be less strict when automount does its job under us walking autofs mount List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9460df357344a2848f9cab07a5228cd9615800e1 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9460df357344a2848f9cab07a5228cd9615800e1 commit 9460df357344a2848f9cab07a5228cd9615800e1 Author: Konstantin Belousov AuthorDate: 2025-02-21 13:07:43 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-04 04:19:08 +0000 fts(3): be less strict when automount does its job under us walking autofs mount PR: 284914 (cherry picked from commit e59991206b1463b7e85cc8aafde7f1dc03fcedcf) --- lib/libc/gen/fts.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index ff51d2b224c2..a718c4e1e85c 100644 --- a/lib/libc/gen/fts.c +++ b/lib/libc/gen/fts.c @@ -1145,6 +1145,7 @@ fts_safe_changedir(FTS *sp, FTSENT *p, int fd, char *path) { int ret, oerrno, newfd; struct stat sb; + struct statfs sf; newfd = fd; if (ISSET(FTS_NOCHDIR)) @@ -1157,9 +1158,15 @@ fts_safe_changedir(FTS *sp, FTSENT *p, int fd, char *path) goto bail; } if (p->fts_dev != sb.st_dev || p->fts_ino != sb.st_ino) { - errno = ENOENT; /* disinformation */ - ret = -1; - goto bail; + if (_fstatfs(newfd, &sf) != 0 || + (sf.f_flags & MNT_AUTOMOUNTED) == 0) { + errno = ENOENT; /* disinformation */ + ret = -1; + goto bail; + } + /* autofs might did the mount under us, accept. */ + p->fts_dev = sb.st_dev; + p->fts_ino == sb.st_ino; } ret = fchdir(newfd); bail: From nobody Tue Mar 4 04:20:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6MtS1P57z5pRcF; Tue, 04 Mar 2025 04:20:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6MtR5wLbz4354; Tue, 04 Mar 2025 04:20:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741062047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ilymp5auoNW5B78NOOhw5hJ8lDoD8H9C9RccmG207gU=; b=pfLde9Sv7ikxIwClYCGuGhhImOlZrpCl0pNyU1pXRov7k6WRGfH73/2oDTEXvzGWBmh+7Q rdqXSIdc4A/P4yqdw9V9tG2Tmv6u2Q3f6ozF3vcM67IRu0J3uEXHgGdt4mBYXmsRt9wg+Q YDsWUuHcAozqY6BqWWqnEWjPfOrQiJvImdgwFeKaeq8xdFCfB781A2K7Nz3i15x/Keo7y9 7txuLuyHLIjYUNX6zsxFyYPgq321WeR0qX3ORN6VyYKj+5VhTbJufvFfS8B/ZoKp/UFHXc u267UbXx4DBA33KnCoC8A7q/MaOKW4J96OlC6ndiS4B9idD7TWKG7PApRbwQeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741062047; a=rsa-sha256; cv=none; b=EugOc05QExdU1uv3zEVRC1uQGctQdtwhGe3cR5iOEdIVN8V8mjCCSIK9iK26OY0VKocPmg 0pOl4LCfFKI1IpbU8JdhGRM+7GhUDEsXrwHLiiR6oKh+bhRcLKm7dsOED6IGDd/JE5Eu5B ubjkt3lpmQ6+FkQT+k6qR4r7XvOc58Oi+lwm/6Zz4WbVtsYc4cZTUqOxAy07Hey1dhXFhA +1OHpZVZm5XZlUzDDfAmd+gyxdu4+JaNJc1/Hn8In6b4TnON5PhnNVrFHD1oWxAVhovu5b LOrsmYlTOwQerahnxgr0ONxVt/FbDLzhSaDUduRGfYLAwlEDlefHgrcvcIDjZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741062047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ilymp5auoNW5B78NOOhw5hJ8lDoD8H9C9RccmG207gU=; b=Dm+gVNL2jiDVTIVrG5YTZP8mdWOubW2jXL2tTjDs6cTFDjyM893t/ZkH+cwXf0k4Edcgvg nn4qRLdRPMxM8oVAvU9wZRMEo/sIQya6Dv0XGS2iNz0H8UYBAEBA0VRB3rk6M4C1h0gRFy JYEAi22B92QQrYzro7ED0rYUZeH98Jzt3ZppxRKafSMumPFbNZZIakGQQeTAEABf+VG9UE jugrkQlbWDiXmca6N1VCpcdm60ZgtTwOK0nlzFNqZ8VF6ILKg9NmEZjJbn4ADOC4Q9xxiE rs+yYHp0aplP+3iOJZJp3CFn1CXSe1gy673gq8fTyFeFvCDioWIEwxPzz9WCjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6MtR5Vlkz1HMK; Tue, 04 Mar 2025 04:20:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5244Kl70065959; Tue, 4 Mar 2025 04:20:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5244KlLI065956; Tue, 4 Mar 2025 04:20:47 GMT (envelope-from git) Date: Tue, 4 Mar 2025 04:20:47 GMT Message-Id: <202503040420.5244KlLI065956@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 2d1b1c1aaa68 - stable/14 - libc/gen/fts.c: fix assignment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2d1b1c1aaa6883f8494846e36fc4e3a9c49d3c53 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2d1b1c1aaa6883f8494846e36fc4e3a9c49d3c53 commit 2d1b1c1aaa6883f8494846e36fc4e3a9c49d3c53 Author: Stefan Eßer AuthorDate: 2025-02-27 09:29:17 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-04 04:19:08 +0000 libc/gen/fts.c: fix assignment Fixes: e59991206b fts(3): be less strict when automount does its job under us walking autofs mount (cherry picked from commit ab6a311c720e93c860d3dd4a335264d725db7a0d) --- lib/libc/gen/fts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index a718c4e1e85c..64828ff73d60 100644 --- a/lib/libc/gen/fts.c +++ b/lib/libc/gen/fts.c @@ -1166,7 +1166,7 @@ fts_safe_changedir(FTS *sp, FTSENT *p, int fd, char *path) } /* autofs might did the mount under us, accept. */ p->fts_dev = sb.st_dev; - p->fts_ino == sb.st_ino; + p->fts_ino = sb.st_ino; } ret = fchdir(newfd); bail: From nobody Tue Mar 4 13:45:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6cQJ24Sqz5pqts; Tue, 04 Mar 2025 13:45: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6cQH6PD8z3trZ; Tue, 04 Mar 2025 13:45:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741095943; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WlbiLHKVFh0FvDl/zv8a5UUOrWEkaERBPlEufjbNY8o=; b=Ir0M7A6NNY2IbWIiLLAQe9vF8qXoHsiLfMlZqKe169yHhsNyXsxFydx3eb+kVPgLJvkUKv S69jnpskLjzHZHgqmwIw5RA0TMtCbROoN1Eht0Qs3R5ObaNnHVJ+cfj3cgOxwdRmyk8qVb wmgucEPc02h/pcINZlZOnEmVT9dDb6qGDegRkuiGjRZQmmGkvpFP+p1EH2G+NR1SdNH64f 9vE6m+7pyeVYw5nvkUSsokVrcsiMgaSYPSA+GiIBJ5ixzWmoFKcWSA13db8ngozF4LAjVf IMzZmP1gbc/ohb5ahTvxI0efKbh+MZ+rJaUAUE27KMwF5jAR7Ar9zxBA1xcbrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741095943; a=rsa-sha256; cv=none; b=GCUaQEoo8LAoqRfmiPuW06vjOXW7bwICTIeLo1OqWtnCuNp3pSIYm7BDs9hj6SgXkbgNcw /j8Yh+VhZtcZaLoq4uVcTMcWRG08YDErqoQHEaHN8bLKaQm17BSfiMVilUpWB5AnWb6dNI C2Wx8P0G/R3yxQbxVr+9aKR2AkN4X3Vzv0fTjbE0IgTXxhdZFmNimgt4BNyD2iYCHkHs7A XoyJw1ZfXKGTjlqJE4GE7HHN91VjfXAAPTgfQ0GIM3UKRTLFAbnc5N2bg/yfVE8ZsvxGKW YxF5qBldid0tKUdaO7z9g6LScK3gnt5FxJnDZcITcYFYGdO9aPsDjfk8DelSEQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741095943; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WlbiLHKVFh0FvDl/zv8a5UUOrWEkaERBPlEufjbNY8o=; b=ZUKnThTNvQJUrzn7lrHBn5SR7+F9CfwgR//iXumaB+jcmgztgA5JtEsjhQS67Li5zRxNGx uPQX9aJyDHm64sZOAXhznjwOwWPJWSRRYRm9ASoTxtPencGhONC0oDXB0rQVIXpIz7gCVp mLVTa0f7tCbWNQDm4HyC5CvTXlj9+XfcjU5dsMl2eGCYd7UFOU/w1ly4oM3FT4XEPj7kR2 bwqj4SfI50aajCnmtW1ws5qlseJXLe5nMRuIPw6Y41JQOq1DYqBMkd859Xk9Z4GzueZP+Q J5QjtGWhNAzb0U4Qcg4sMJ55wwKPJxiARCqhIdHjexkXRnBVu2FJYOJRhyFVcQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6cQH5QxKz5Mq; Tue, 04 Mar 2025 13:45:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Djhsu023757; Tue, 4 Mar 2025 13:45:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Djh60023754; Tue, 4 Mar 2025 13:45:43 GMT (envelope-from git) Date: Tue, 4 Mar 2025 13:45:43 GMT Message-Id: <202503041345.524Djh60023754@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Doug Rabson Subject: git: f60149306ccf - stable/14 - release: build OCI images with shell scripts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dfr X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f60149306ccf784ddaa517132a8be47bb523984d Auto-Submitted: auto-generated The branch stable/14 has been updated by dfr: URL: https://cgit.FreeBSD.org/src/commit/?id=f60149306ccf784ddaa517132a8be47bb523984d commit f60149306ccf784ddaa517132a8be47bb523984d Author: Doug Rabson AuthorDate: 2024-12-12 16:42:00 +0000 Commit: Doug Rabson CommitDate: 2025-03-04 09:46:03 +0000 release: build OCI images with shell scripts This avoids the need for buildah and skopeo for building releases. Reviewed by: cpersiva MFC after: 1 day Differential Revision: https://reviews.freebsd.org/D48574 (cherry picked from commit e8a5b9fd73f4f437a03c85e7644daa55652e224b) --- release/Makefile.oci | 6 +- release/release.sh | 38 ------------- release/scripts/make-oci-image.sh | 105 +++++++++++++++++++++++++++++++---- release/tools/oci-image-dynamic.conf | 2 +- release/tools/oci-image-minimal.conf | 3 +- release/tools/oci-image-static.conf | 3 +- 6 files changed, 99 insertions(+), 58 deletions(-) diff --git a/release/Makefile.oci b/release/Makefile.oci index da35156c5a95..e4b5df580055 100644 --- a/release/Makefile.oci +++ b/release/Makefile.oci @@ -26,11 +26,7 @@ OCI_TARGETS+= container-image-${_IMG}.txz container-image-${_IMG}.txz: ${OCI_DEPS_${_IMG}} # Adjust PATH so that we run pwd_mkdb from the bootstrap tools env PATH=${OBJTOP}/tmp/legacy/bin:${PATH:Q} \ - sh ${.CURDIR}/scripts/make-oci-image.sh ${.CURDIR} ${REVISION} ${BRANCH} ${TARGET_ARCH} ${_IMG} - skopeo copy \ - containers-storage:localhost/freebsd${REVISION:R}-${_IMG}:latest \ - oci-archive:${.OBJDIR}/container-image-${_IMG}.tar:freebsd${REVISION:R}-${_IMG}:${REVISION}-${BRANCH}-${TARGET_ARCH} - ${XZ_CMD} < ${.OBJDIR}/container-image-${_IMG}.tar > ${.OBJDIR}/container-image-${_IMG}.txz + sh ${.CURDIR}/scripts/make-oci-image.sh ${.CURDIR} ${REVISION} ${BRANCH} ${TARGET_ARCH} ${_IMG} container-image-${_IMG}.txz .endfor oci-release: ${OCI_TARGETS} diff --git a/release/release.sh b/release/release.sh index d6752e016994..5a6de297f7a1 100755 --- a/release/release.sh +++ b/release/release.sh @@ -292,44 +292,6 @@ extra_chroot_setup() { fi fi - if [ ! -z "${WITH_OCIIMAGES}" ]; then - # Install buildah and skopeo from ports if the ports tree is available; - # otherwise install the pkg. - if [ -d ${CHROOTDIR}/usr/ports ]; then - # Trick the ports 'run-autotools-fixup' target to do the right - # thing. - _OSVERSION=$(chroot ${CHROOTDIR} /usr/bin/uname -U) - REVISION=$(chroot ${CHROOTDIR} make -C /usr/src/release -V REVISION) - BRANCH=$(chroot ${CHROOTDIR} make -C /usr/src/release -V BRANCH) - UNAME_r=${REVISION}-${BRANCH} - GITUNSETOPTS="CONTRIB CURL CVS GITWEB GUI HTMLDOCS" - GITUNSETOPTS="${GITUNSETOPTS} ICONV NLS P4 PERL" - GITUNSETOPTS="${GITUNSETOPTS} SEND_EMAIL SUBTREE SVN" - GITUNSETOPTS="${GITUNSETOPTS} PCRE PCRE2" - PBUILD_FLAGS="OSVERSION=${_OSVERSION} BATCH=yes" - PBUILD_FLAGS="${PBUILD_FLAGS} UNAME_r=${UNAME_r}" - PBUILD_FLAGS="${PBUILD_FLAGS} OSREL=${REVISION}" - PBUILD_FLAGS="${PBUILD_FLAGS} WRKDIRPREFIX=/tmp/ports" - PBUILD_FLAGS="${PBUILD_FLAGS} DISTDIR=/tmp/distfiles" - for _PORT in sysutils/buildah sysutils/skopeo; do - eval chroot ${CHROOTDIR} env ${PBUILD_FLAGS} make -C \ - /usr/ports/${_PORT} \ - FORCE_PKG_REGISTER=1 deinstall install clean distclean - done - else - eval chroot ${CHROOTDIR} env ASSUME_ALWAYS_YES=yes \ - pkg install -y sysutils/buildah sysutils/skopeo - eval chroot ${CHROOTDIR} env ASSUME_ALWAYS_YES=yes \ - pkg clean -y - fi - # Use the vfs storage driver so that this works whether or not - # the build directory is on ZFS. The images are small so the - # performance difference is negligible. - eval chroot ${CHROOTDIR} sed -I .bak -e '/^driver/s/zfs/vfs/' /usr/local/etc/containers/storage.conf - # Remove any stray images from previous builds - eval chroot ${CHROOTDIR} buildah rmi -af - fi - if [ ! -z "${EMBEDDEDPORTS}" ]; then _OSVERSION=$(chroot ${CHROOTDIR} /usr/bin/uname -U) REVISION=$(chroot ${CHROOTDIR} make -C /usr/src/release -V REVISION) diff --git a/release/scripts/make-oci-image.sh b/release/scripts/make-oci-image.sh index 6180ed9d53b4..0fd64602b403 100644 --- a/release/scripts/make-oci-image.sh +++ b/release/scripts/make-oci-image.sh @@ -7,21 +7,23 @@ rev=$1; shift branch=$1; shift arch=$1; shift image=$1; shift +output=$1; shift major=${rev%.*} minor=${rev#*.} abi=FreeBSD:${major}:${arch} +ver=${rev}-${branch}-${arch} echo "Building OCI freebsd${major}-${image} image for ${abi}" . ${curdir}/tools/oci-image-${image}.conf -init_workdir() { +init_repo() { + local workdir=$1; shift local abi=$1; shift - local workdir=$(mktemp -d -t oci-images) - mkdir ${workdir}/repos + mkdir -p ${workdir}/repos cat > ${workdir}/repos/base.conf < ${workdir}/config.json + local config_hash=$(sha256 -q < ${workdir}/config.json) + local config_size=$(stat -f %z ${workdir}/config.json) + + echo "{\"schemaVersion\":2,\"mediaType\":\"application/vnd.oci.image.manifest.v1+json\",\"config\":{\"mediaType\":\"application/vnd.oci.image.config.v1+json\",\"digest\":\"sha256:${config_hash}\",\"size\":${config_size}},\"layers\":[{\"mediaType\":\"application/vnd.oci.image.layer.v1.tar+gzip\",\"digest\":\"sha256:${root_hash}\",\"size\":${root_size}}],\"annotations\":{}}" > ${workdir}/manifest.json + local manifest_hash=$(sha256 -q < ${workdir}/manifest.json) + local manifest_size=$(stat -f %z ${workdir}/manifest.json) + + mkdir -p ${workdir}/oci/blobs/sha256 + echo "{\"imageLayoutVersion\": \"1.0.0\"}" > ${workdir}/oci/oci-layout + echo "{\"schemaVersion\":2,\"manifests\":[{\"mediaType\":\"application/vnd.oci.image.manifest.v1+json\",\"digest\":\"sha256:${manifest_hash}\",\"size\":${manifest_size},\"annotations\":{\"org.opencontainers.image.ref.name\":\"freebsd-${image}:${ver}\"}}]}" > ${workdir}/oci/index.json + ln ${workdir}/rootfs.tar.gz ${workdir}/oci/blobs/sha256/${root_hash} + ln ${workdir}/config.json ${workdir}/oci/blobs/sha256/${config_hash} + ln ${workdir}/manifest.json ${workdir}/oci/blobs/sha256/${manifest_hash} + + tar -C ${workdir}/oci --xz --strip-components 1 --no-read-sparse -a -cf ${output} . +} + +# Prefix with "container-image-" so that we can create a unique work area under +# ${.OBJDIR}. We can assume that make has set our working directory to +# ${.OBJDIR}. +workdir=${PWD}/container-image-${image} +init_repo ${workdir} ${abi} + if [ -n "${OCI_BASE_IMAGE}" ]; then - base_image=freebsd${major}-${OCI_BASE_IMAGE} + base_workdir=${PWD}/container-image-${OCI_BASE_IMAGE} else - base_image=scratch + base_workdir= fi -c=$(buildah from --arch ${arch} ${base_image}) -m=$(buildah mount $c) +create_container ${workdir} ${base_workdir} oci_image_build -buildah unmount $c -buildah commit --rm $c freebsd${major}-${image}:latest +commit_container ${workdir} ${image} ${output} diff --git a/release/tools/oci-image-dynamic.conf b/release/tools/oci-image-dynamic.conf index b146ff2cf7c3..61cb90187764 100644 --- a/release/tools/oci-image-dynamic.conf +++ b/release/tools/oci-image-dynamic.conf @@ -7,5 +7,5 @@ OCI_BASE_IMAGE=static oci_image_build() { - install_packages ${abi} ${workdir} $m FreeBSD-clibs FreeBSD-openssl-lib + install_packages ${abi} ${workdir} FreeBSD-clibs FreeBSD-openssl-lib } diff --git a/release/tools/oci-image-minimal.conf b/release/tools/oci-image-minimal.conf index 82e2ce6a1bd3..93aad1e39250 100644 --- a/release/tools/oci-image-minimal.conf +++ b/release/tools/oci-image-minimal.conf @@ -8,7 +8,8 @@ OCI_BASE_IMAGE=dynamic oci_image_build() { - install_packages ${abi} ${workdir} $m \ + set_cmd ${workdir} /bin/sh + install_packages ${abi} ${workdir} \ FreeBSD-runtime \ FreeBSD-certctl \ FreeBSD-kerberos-lib \ diff --git a/release/tools/oci-image-static.conf b/release/tools/oci-image-static.conf index 552328e66f3c..753a03af653b 100644 --- a/release/tools/oci-image-static.conf +++ b/release/tools/oci-image-static.conf @@ -8,12 +8,13 @@ OCI_BASE_IMAGE= oci_image_build() { local srcdir=${curdir}/.. + local m=${workdir}/rootfs mtree -deU -p $m/ -f ${srcdir}/etc/mtree/BSD.root.dist > /dev/null mtree -deU -p $m/var -f ${srcdir}/etc/mtree/BSD.var.dist > /dev/null mtree -deU -p $m/usr -f ${srcdir}/etc/mtree/BSD.usr.dist > /dev/null mtree -deU -p $m/usr/include -f ${srcdir}/etc/mtree/BSD.include.dist > /dev/null mtree -deU -p $m/usr/lib -f ${srcdir}/etc/mtree/BSD.debug.dist > /dev/null - install_packages ${abi} ${workdir} $m FreeBSD-caroot FreeBSD-zoneinfo + install_packages ${abi} ${workdir} FreeBSD-caroot FreeBSD-zoneinfo cp ${srcdir}/etc/master.passwd $m/etc pwd_mkdb -p -d $m/etc $m/etc/master.passwd || return $? cp ${srcdir}/etc/group $m/etc || return $? From nobody Tue Mar 4 15:14:25 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6fNd4gyzz5qDHm; Tue, 04 Mar 2025 15:14: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6fNd40ftz3kZG; Tue, 04 Mar 2025 15:14:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741101265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZgC/7g5DW5poEicOBuRRQxmTTvvW94cwaoiYwN8AYoU=; b=yMCBzGyGGQ2CcuQE4Ue5LJqI0fvZO6UqxwLPtRMg7tM1zIlLw6pqWKdzLeXMpD33k6ze9g moPiiC59CTbUIvHRQ5P/x3CbO7Rxj2Gfao3DjaJcR4I+95eeWnMfATrx0jwtwRhNShFCzN l6Ea+CU3y/7Jl4PNOtkH0Os6QRe5I/8BCNOmBTMQBGwp8k+VMLFnJ7kmhLXXQJuqiqoT2u EoQ00xLh+69RRwKBKM6HTgS0jG/P5+ctAe1TSN+0GEDqTEbHcCVUoi3G3Y6FFkgWAgadO/ +wpY8E5ZQNuUVsozQERwLXo5wLYDm8BJlWKx3EdaH5+9S7ZgGefOXYYRNtwaIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741101265; a=rsa-sha256; cv=none; b=hu13Fr3mNjpGG1J5gQ3dGLR80B6WbbHYZaglVM1tGiivw5IlCCl76U7c9+Btots0QgWufm OMvQPB7Kt4MGcFuXUVJw/N9/TpiHZBX28jjC+fTyoNE8hZy73e7KaeB2TGvfk0L0u3tQEe MaWugeQ7G3xZ0i9jkJumkWsk5cdpQC/p/Jcbs2NLN/nE5H4nZaeakQd67Xd9lE0fwJ0Mip cCnPMagh8FU+Nck9cAAE6Wna30TAmE5OD4EcsTxh68MvbqD55AqxhaO9BvM7qZPbkqXxHh LyP6MOUpQIyjAICflZ7BD9LmNXkVC2aX5CuPn57zWvegZ10JVkxc6OM4RHTf4g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741101265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZgC/7g5DW5poEicOBuRRQxmTTvvW94cwaoiYwN8AYoU=; b=bSPDadqdNDDwYeCYOVwRLn0v9dZEoOX+FeJ9HCVE63fUBxv8dcw8F/+22dC5CWFi35AdW1 HjjnRxbniHE8L2hVNwJIeWskTGri4ELNpt3k+fPGRKawuPTzlOzRyny81GMX2LAJoHl0Dr MBFuh3RX5bGkuXgpfZ3GSaWzokvRcp6gq5PoPDbYSod3LExdTNeEreWiXgR9UuRDdLHAXL ZrzLC3xtUtshMFsI/DPmKNKI/jESnE2rFQK2w84KtQBnF9Y4YREhUEd5d5da13ybbzVYBl bBBrduhwrPLsSD6JhS6c+lg7mDCNuys+9fwQg80i7Xt11k5QLe+2brEQIDrkFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6fNd3Xtfz792; Tue, 04 Mar 2025 15:14:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FEPAQ091921; Tue, 4 Mar 2025 15:14:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524FEPZV091918; Tue, 4 Mar 2025 15:14:25 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:14:25 GMT Message-Id: <202503041514.524FEPZV091918@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: d09ec2eeb0d8 - stable/14 - armada38x: implement gateclk clkdev methods List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d09ec2eeb0d81528066fdb05db8a121f0f1e0c01 Auto-Submitted: auto-generated The branch stable/14 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=d09ec2eeb0d81528066fdb05db8a121f0f1e0c01 commit d09ec2eeb0d81528066fdb05db8a121f0f1e0c01 Author: Mitchell Horne AuthorDate: 2024-04-15 20:18:25 +0000 Commit: Mitchell Horne CommitDate: 2025-03-04 15:11:46 +0000 armada38x: implement gateclk clkdev methods Implement basic clkdev methods required by the generic clk_gate device. This should make it functional, and prevent panics when invoking the clock's CLKNODE_GET_GATE method (e.g. with `sysctl -a`). Additionally, we need to fill in other key fields of the clk_gate_def structure before registering each clk. PR: 278188 Reported by: solo_code@protonmail.com Tested by: solo_code@protonmail.com MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D48419 (cherry picked from commit 6f2775548278c76e7c33b15aaaaa759270a8dcd5) --- sys/arm/mv/clk/armada38x_gateclk.c | 99 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 5 deletions(-) diff --git a/sys/arm/mv/clk/armada38x_gateclk.c b/sys/arm/mv/clk/armada38x_gateclk.c index d00a01b0da67..1be3830cf375 100644 --- a/sys/arm/mv/clk/armada38x_gateclk.c +++ b/sys/arm/mv/clk/armada38x_gateclk.c @@ -44,11 +44,22 @@ #include "clkdev_if.h" +#define ARMADA38X_GATECLK_MAXREG 0 + +static struct resource_spec armada38x_gateclk_specs[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { -1, 0 } +}; + +#define RD4(_sc, addr) bus_read_4(_sc->res, addr) +#define WR4(_sc, addr, val) bus_write_4(_sc->res, addr, val) + struct armada38x_gateclk_softc { - struct clkdom *clkdom; - struct mtx mtx; - const char* parent; + struct resource *res; + struct clkdom *clkdom; + struct mtx mtx; + const char* parent; }; static struct clk_gate_def gateclk_nodes[] = @@ -220,10 +231,75 @@ static struct clk_gate_def gateclk_nodes[] = static int armada38x_gateclk_probe(device_t dev); static int armada38x_gateclk_attach(device_t dev); +static int +armada38x_gateclk_write_4(device_t dev, bus_addr_t addr, uint32_t val) +{ + struct armada38x_gateclk_softc *sc = device_get_softc(dev); + + if (addr > ARMADA38X_GATECLK_MAXREG) + return (EINVAL); + + WR4(sc, addr, val); + return (0); +} + +static int +armada38x_gateclk_read_4(device_t dev, bus_addr_t addr, uint32_t *val) +{ + struct armada38x_gateclk_softc *sc = device_get_softc(dev); + + if (addr > ARMADA38X_GATECLK_MAXREG) + return (EINVAL); + + *val = RD4(sc, addr); + return (0); +} + +static int +armada38x_gateclk_modify_4(device_t dev, bus_addr_t addr, uint32_t clr, + uint32_t set) +{ + struct armada38x_gateclk_softc *sc = device_get_softc(dev); + uint32_t reg; + + if (addr > ARMADA38X_GATECLK_MAXREG) + return (EINVAL); + + reg = RD4(sc, addr); + reg &= ~clr; + reg |= set; + WR4(sc, addr, reg); + + return (0); +} + +static void +armada38x_gateclk_device_lock(device_t dev) +{ + struct armada38x_gateclk_softc *sc = device_get_softc(dev); + + mtx_lock(&sc->mtx); +} + +static void +armada38x_gateclk_device_unlock(device_t dev) +{ + struct armada38x_gateclk_softc *sc = device_get_softc(dev); + + mtx_unlock(&sc->mtx); +} + static device_method_t armada38x_gateclk_methods[] = { DEVMETHOD(device_probe, armada38x_gateclk_probe), DEVMETHOD(device_attach, armada38x_gateclk_attach), + /* clkdev interface */ + DEVMETHOD(clkdev_write_4, armada38x_gateclk_write_4), + DEVMETHOD(clkdev_read_4, armada38x_gateclk_read_4), + DEVMETHOD(clkdev_modify_4, armada38x_gateclk_modify_4), + DEVMETHOD(clkdev_device_lock, armada38x_gateclk_device_lock), + DEVMETHOD(clkdev_device_unlock, armada38x_gateclk_device_unlock), + DEVMETHOD_END }; @@ -255,6 +331,7 @@ static int armada38x_gateclk_attach(device_t dev) { struct armada38x_gateclk_softc *sc; + struct clk_gate_def *defp; phandle_t node; int i, error; clk_t clock; @@ -262,6 +339,11 @@ armada38x_gateclk_attach(device_t dev) sc = device_get_softc(dev); node = ofw_bus_get_node(dev); + if (bus_alloc_resources(dev, armada38x_gateclk_specs, &sc->res) != 0) { + device_printf(dev, "Cannot allocate resources.\n"); + return (ENXIO); + } + mtx_init(&sc->mtx, device_get_nameunit(dev), NULL, MTX_DEF); sc->clkdom = clkdom_create(dev); @@ -277,8 +359,15 @@ armada38x_gateclk_attach(device_t dev) sc->parent = clk_get_name(clock); for (i = 0; i < nitems(gateclk_nodes); ++i) { - gateclk_nodes[i].clkdef.parent_names = &sc->parent; - error = clknode_gate_register(sc->clkdom, &gateclk_nodes[i]); + /* Fill clk_gate fields. */ + defp = &gateclk_nodes[i]; + defp->clkdef.parent_names = &sc->parent; + defp->offset = 0; + defp->mask = 0x1; + defp->on_value = 1; + defp->off_value = 0; + + error = clknode_gate_register(sc->clkdom, defp); if (error != 0) { device_printf(dev, "Cannot create gate nodes\n"); return (error); From nobody Tue Mar 4 15:46:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g671V6gz5qGbB; Tue, 04 Mar 2025 15:46:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6656zkz423t; Tue, 04 Mar 2025 15:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103214; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tVOTN2hwfYmZ/726dmXOOoIhpjC7RS/W4XVzKorZ7PQ=; b=Po1RbyiTIYDWP9vnhaeXMtlMGc9IhFhzsIaCS3vvUt12oStaphs1+Ebcy84ld1dI7tVrKE t1YNdx0VOGnpd0OMGV6ISnP2pGs5jhpKSJyYRriYZJzMlH0/bnvFHkhTMVpVvtRT1U8fWs K0H83GABlPU4KS5ezv389GTNP5TgJDelVTbrKzCYw9Zvn+VoPu1tLeogShcSwTHoyhL/Na dkJBDFK4QHRFcgRxgeeBitOcH63VBzoldFJys5cH+Hg86f2VD2ETBDDg5OB9tTcwe7/Z/X Qo7Gj4Bp82rW9xn4fnaGqSFO0iRM4H9G3puB8Rh9RGslPvNweTxT8QxiorbS1w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103214; a=rsa-sha256; cv=none; b=J13G9EfKjrmiT5FbFSwdS7LbcZaiO2CQkjIvEoCXpNNXAmz6iF6yrGmTKllyLLjChJZcU/ rCkin2wKje8NVI6YDV64TCzqmSwomW11+HAF8d2kkt839I6oRy4XWnRClNlGAMlDescfMH q+2SIltmEfzP92/H2FqYxD6Xrz+3WNfPfNBHxC6G42Nee5xY3Ne/O/MonihD493pQDEvPC PIq4E6k++98xmGW6MkfYfh/GLVDnUa2QWguSzHvXxf/KSgywywAxFW1V0XmJWqC0Y+Llml eO8HaIWPQ+EPonJJ2oVjkk0cZV1pbsRlCJX2vhL/bqndoFzJIHnP/cWZtnBGLQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103214; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tVOTN2hwfYmZ/726dmXOOoIhpjC7RS/W4XVzKorZ7PQ=; b=pZBgFjmi5+5B/KueSrYPVGqyVe/2CvGek1GtD4WLRgfulpGVJDPm0OilLIOmdeQx/wpb4r Ybg9quMdv6QJVnZwn7WavA38q8jvOAVzBpXb2jI4TEVQ/ypeb2c/yl1pu/3enJSrAPxLYh +UqfPsgFVqyijnz1glm4X6SJ0p0KWaoIV6DVZ3UlkmCk4HciTJ/NOBXufJUlKWALiIA9LW GOfWG8u0t/7C/k/bvQoCrcBlJbe/ecPFWB7AZzf/u1HEjQH9sdHSdki4Y1W3qX8njrEZMX IZ8RHVfuhMKLPC/wbaLoAWvdqk1+t1JhDPPWhkIAkCxsOtzH9zdoYKnY7nacYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g664jHCz85N; Tue, 04 Mar 2025 15:46:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fksaa049732; Tue, 4 Mar 2025 15:46:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fks5p049729; Tue, 4 Mar 2025 15:46:54 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:46:54 GMT Message-Id: <202503041546.524Fks5p049729@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 8233ccc3bcee - stable/14 - sound: Do not fail from vchan_destroy() if children list is empty List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8233ccc3bcee6dbe6179eca605d8a354a861cf7e Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=8233ccc3bcee6dbe6179eca605d8a354a861cf7e commit 8233ccc3bcee6dbe6179eca605d8a354a861cf7e Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:11 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:05 +0000 sound: Do not fail from vchan_destroy() if children list is empty vchan_destroy() should be able to call chn_kill() regardless of whether the channel has been added to the children list yet or not. Also remove the CHN_F_BUSY check. There is no reason we shouldn't execute the code below if the parent is not busy. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48185 (cherry picked from commit 405b1e50926d4162fb9503644073c0184a8b37d9) --- sys/dev/sound/pcm/vchan.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 4165d0712b94..ea8a50b316fe 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -838,15 +838,8 @@ vchan_destroy(struct pcm_channel *c) CHN_UNLOCK(c); - if (!(parent->flags & CHN_F_BUSY)) - return (EBUSY); - - if (CHN_EMPTY(parent, children)) - return (EINVAL); - /* remove us from our parent's children list */ CHN_REMOVE(parent, c, children); - if (CHN_EMPTY(parent, children)) { parent->flags &= ~(CHN_F_BUSY | CHN_F_HAS_VCHAN); chn_reset(parent, parent->format, parent->speed); From nobody Tue Mar 4 15:46:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g655hc0z5qG3T; Tue, 04 Mar 2025 15:46:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g654PR4z42LQ; Tue, 04 Mar 2025 15:46:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2B7C/6PzgfOqZaBVHoUI0Kyszt6PdEc1BIWr9RDVFCw=; b=ZL778sXgwo5dTm8A4qaEEI+h/KQ9AHSDjpnfPDJW4L/LpsxuNL52yICJsxRsJ0krOxrhUZ 7QoYsel62hbyUTba40/woGAqUTKuTtj7omUjEKPar1h8vkHbo0cloQ1c8MMlhV+bu/6nkk m748B3+Xt4jaaRcNd7cHFTpo1Pr4NfGDTsARcwxVQqWglFP5l2t31m5o9fmVnORKtXyptJ +EOp80WoSW9E/l0lKukzC/ey4wjem52J8AX9DVnHYEqef3Nb4y5YMdMqb4rdbHYEdWvrJX d1zlo06L8JC8xQCVm+TD7GrgqTMpYiD249eWK2A7hMobG1WMjBG/qmtob8jWNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103213; a=rsa-sha256; cv=none; b=rkVoy5GJiz0W+RPC0Egxgvmcbgbm5b/oQi/5skuLgI37PgZQPyydHi9Cm6GC/sutQSLwi9 k5gRE6Dz/DVUJc0Nn5f9jDMwIJLlfeTLAQK2+miA5UwlFiY7WHNk8BtN/FFMT5BaOvLeD9 xVjKfofOOZy/+kuevUgYZYhsf+Eb5P0j9rkClOfx2D3ILx43J6M9ZS0OWlM/qYGNrCG/XH 5w5/5EvBekWVUk9nnA1f8sNfOnQAdhzgxQmDr0HAAOhcmewwNFj/YIXxdq98k6SKOcVil7 z3Qjt8jVGniFAimmvWw+6UVYvDT++dFh04sr7f/XPAtXw1VkytpkeQJbtwhZTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103213; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2B7C/6PzgfOqZaBVHoUI0Kyszt6PdEc1BIWr9RDVFCw=; b=djzqtsG1Fx84Dj9z6aF8jbQ6Idz2HkbpKTp7i1KLfVAmqmeeWOgM8ODaj5VI+nPli0BuE3 rAX+ilysbA1N+LJ2cfQI8sypSTqkzH0LI+K5gatur6TAB3OPzEdydn31KnKNS9FD0M3vom 9xZSrXEEYdh3rMZZDNEkyJkrE8aF5jvFT/azSv+fQjGVxcxoms38U4gl7d6cCttp1O2swa B60lY1cuR6kBTeiH/NnnPKcYlmg+WmkxTSflNICpN+X39kbainhCTytWUyxoF6Mb7q19Ui f5E0fuVetRP2jLoJ0ldq4MmKXb9kU1cy6uUeFlaDcowDh5brNzsFnufOWvY2ew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g653qM4z8H4; Tue, 04 Mar 2025 15:46:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FkrSN049698; Tue, 4 Mar 2025 15:46:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fkrsq049695; Tue, 4 Mar 2025 15:46:53 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:46:53 GMT Message-Id: <202503041546.524Fkrsq049695@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: a86dfa429690 - stable/14 - sound: Do not return an error from chn_notify() if the children list is empty List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a86dfa4296907f8a6170585b2bfd208db64a884d Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a86dfa4296907f8a6170585b2bfd208db64a884d commit a86dfa4296907f8a6170585b2bfd208db64a884d Author: Christos Margiolis AuthorDate: 2025-02-25 11:42:59 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:05 +0000 sound: Do not return an error from chn_notify() if the children list is empty An empty children list does not mean that there is an error. Reported by: Florian Walpen Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48156 (cherry picked from commit 164651f16c860049a4ad2098206def8ca7a39b4a) --- sys/dev/sound/pcm/channel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 4b0ca128391b..4d275d00762a 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -2360,7 +2360,7 @@ chn_notify(struct pcm_channel *c, u_int32_t flags) CHN_LOCKASSERT(c); if (CHN_EMPTY(c, children)) - return (ENODEV); + return (0); err = 0; From nobody Tue Mar 4 15:46:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g690zlWz5qGNk; Tue, 04 Mar 2025 15:46: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g686PH9z42LY; Tue, 04 Mar 2025 15:46:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ugFB3xVQC8oUc+S9pvcRvJF9Es+TYOHguPVe9UaoKGI=; b=t7PohaDnbonkqNgHYn7c/W0a0QT/t8fio91iRtq/7VfZx6U77zJDVIh+CHe0EKlx0OMsf/ y6B+PCfJ/5omckXt7uwJDy5/lcpygg1wfQZQwc68j5gL0B8UPdxUE+GtMbzY/DLfgzzXE/ zLp+KkiYS1luUkLHcFbWLjKxkxeFgQGB3TDm54dQnS+WkrJdwth/onmdj+wDv3eB0EBPFf KzQSFgVkWYXUgNbYMZnB383LZuD7G1UiAuy1D5whw+UiuaA6uGam3iHnldrDA9a4YOT+pP mkFeVthSlmceumV120Nx49dfkRJ9zfjik+5M9NNAOiiAlA0CdyKR0p8UUslFzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103216; a=rsa-sha256; cv=none; b=cZ4aFPOffnz+VZOdvN/7sXTqC37PHqwVpaA05wKhy3FA8w/W+7UT4RyblViR57UGYY0XGF JBDXOKvAPXjs3TjwrbgBko+dPMoAG3gdyu9zZ5srCZ23UKkRWj9edDJTHH+Ybwx97/hgCJ XYfa5rm0CBENi0E+4krN1rI2/WHaGnikd0qYnXrUPjBsvJtyq5hJbkuZgHPc0xKncmhA7J pJxJ7245Tw5+utuoskZseX6vFkeFXN98xKMdEPSLdc/tKU6nX5N1/JzC+Vx2HiQXZItyHF bvYfOZJPNuM7XAOr7EuGZjwQdQI9dd4u+fz3GjVDokpP7W664wF1Z148pPnvOw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ugFB3xVQC8oUc+S9pvcRvJF9Es+TYOHguPVe9UaoKGI=; b=C02J4P/U5QWeYOmCVSL7lZv/9NeQ/wZi1KDOp34CHbNut0dF6fSOFqDY7DZqze6w1mg5N3 1Eu6nIWHsXTRoAusl1q2V/h5p7JimPoROkritAArAOijEYVL2BYNgDrSIZH06O9vVeBg4P QOvEFccg/Yg7gAkO/2dDF8z+dgePYrfID6LbZwviXRVOyKPndKhpdUXTCmRJBdbvBweeUf /QHs0JlcmHLFvEy/R7ALPJYs/9ffgvaYt8DXUl+NK3tbAb8EOGC50zxJO8UfTJecR/M9C9 ypA+/bKD10P/Eh81QlBg/xZrpOWfBAly1Jz6f6nRhBagoFRLn6wCccGLf8dMhA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g685tfRz8H5; Tue, 04 Mar 2025 15:46:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FkuNJ049805; Tue, 4 Mar 2025 15:46:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fkuap049802; Tue, 4 Mar 2025 15:46:56 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:46:56 GMT Message-Id: <202503041546.524Fkuap049802@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 8be87b77e419 - stable/14 - sound: Initialize channels with sane default rate and format List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8be87b77e419d959339f815325a763da83d24123 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=8be87b77e419d959339f815325a763da83d24123 commit 8be87b77e419d959339f815325a763da83d24123 Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:26 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:05 +0000 sound: Initialize channels with sane default rate and format There is no good reason to initialize with AFMT_U8 at 8000Hz. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48434 (cherry picked from commit e89ee05b7cf1a54d0d6ed56e4d451fdd9a10db43) --- sys/dev/sound/pcm/channel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 4d275d00762a..58315610312e 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1205,8 +1205,8 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, c->direction = direction; c->type = dir; c->unit = alloc_unr(chn_getunr(d, c->type)); - c->format = SND_FORMAT(AFMT_U8, 1, 0); - c->speed = DSP_DEFAULT_SPEED; + c->format = SND_FORMAT(AFMT_S16_LE, 2, 0); + c->speed = 48000; c->pid = -1; c->latency = -1; c->timeout = 1; From nobody Tue Mar 4 15:46:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g680wSCz5qGYC; Tue, 04 Mar 2025 15:46:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g675RXJz4223; Tue, 04 Mar 2025 15:46:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103215; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L7frXsOnyFa0yAH4EyobVwtbAIxn8LDe7ZZzn8LTjAE=; b=BOQ1Hq3AGvw+NhKfnQ6XSHwvbGSv8eETxmfYIHvDrIhI0zyG0z5ORHLn1mTAV+YvkLuYB0 6TUFrAwMly/WUSBiXqQ62XR0URUpND6dR9FtwMnepAcgeh4UTDhtDu9XHf1Pn82Q2/igv+ N5tut4CQawkOXyEXTPy0XPqYP8pyfR/ZFXg5GYwdCnxNZphM29K+ICKqD6RrwFd2nPF25K YGtxyg0nngxBzD782Ty+8um7+AJW2+GbCQeVdgkaoHFpbUeI2hFY0ioBHlWRKaosyYBR6C GuANyDgBuyhz4feyDhtR7xPXCICnXvsn5SGroY2WdzNAi+Qn60eYJNfYMQvxUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103215; a=rsa-sha256; cv=none; b=tBMvfDRjojnAntiZzYF5NPS6x6onCZlfDb5noVVN0kIrgja1RVumG6mof5oFMqXaMVAmlp mngBvXQ9qST12Pi8zV4EskWI4VeH/nbmt1eUJmBwzH2LaT/XGBcXKUckH2ALRfoml8jV+D epgEeLmY4de9anBDbvI8Zqj8zhjurtdJMHTzUYOADEb5t4HoYzreq3OEAH9tkMJAEg8aw1 KnqWNRRcJ2qK9Hcsvs4L8xPW5yWeutt5GIDBru5+2coioeRUcpSqkb2tzWTYUF+TGKzsbT NuT+Vhg8HQfsY4kNupzdCKf0Z5jmaKh49gcrmVhH7ve11i7z2wPijBogqlfc0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103215; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=L7frXsOnyFa0yAH4EyobVwtbAIxn8LDe7ZZzn8LTjAE=; b=kMfsbksl+2xHJmS0GoYvHgZ3Lfok3Of1ysnYwKlO04cXyCyAZr4O6n6vsE59nIjhSeNCqJ wE9tXKx1jw977G2j7x6nTJfUtwnu/2hr/FclV9Xi8g+015foC3lXs30P7/kmYHLNNeJrdV PjFfbnedD/VZn691U6xjTH82TAl+9J7VVEaIJdzSrJfz7YBqn4xZdcow/V1wmzIE+kiT/i m/mfTuNIJVvBeoWsehKliED/DQ/Fs2xBquU/cignh9pToy2qIIBBIc2aTZI5rh/dclYexF VB2Vq5Z/hEl+m9M//Yo9h5ZSOL3jmXjNDFFM6lmHyOQKRMGe6s+vTVD9NbuuSw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g674zCBz8Bj; Tue, 04 Mar 2025 15:46:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FktDI049770; Tue, 4 Mar 2025 15:46:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524FktwE049767; Tue, 4 Mar 2025 15:46:55 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:46:55 GMT Message-Id: <202503041546.524FktwE049767@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 5fc710ae2d78 - stable/14 - sound: Call vchan_destroy() on vchan_create() failure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5fc710ae2d78d0f8625513b04d131011bde1f7c8 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=5fc710ae2d78d0f8625513b04d131011bde1f7c8 commit 5fc710ae2d78d0f8625513b04d131011bde1f7c8 Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:19 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:05 +0000 sound: Call vchan_destroy() on vchan_create() failure Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48183 (cherry picked from commit 2546ab1b3632a9ebfe88d9d5dc55700e653bff5d) --- sys/dev/sound/pcm/vchan.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index ea8a50b316fe..4ee7e01066d3 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -811,11 +811,8 @@ vchan_create(struct pcm_channel *parent) return (ret); fail: - CHN_REMOVE(parent, ch, children); - parent->flags &= ~CHN_F_HAS_VCHAN; - CHN_UNLOCK(parent); - chn_kill(ch); - CHN_LOCK(parent); + CHN_LOCK(ch); + vchan_destroy(ch); return (ret); } From nobody Tue Mar 4 15:46:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6B4YQjz5qGVq; Tue, 04 Mar 2025 15:46: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6B0DPKz4240; Tue, 04 Mar 2025 15:46:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103218; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SPASJDxi2V8kBVvbcTrp2IgoOUCsGfCDccyeboKSK8Q=; b=CXCD0FK8oDtV8gpGWmwhmcVOptJkGlEnwDr06P5K3bY+aBvl4VAyuOZ7n6kMUNy1kSIFrV ndfxeFuWR9JqwXn+bSPOS4xzE9CU2CKK8mQkq9/wBHnFBGLvltLri9TA62Sd0KdLxHMShg G0e67nct85xkx3xi3x+yddu6pWRc1r8Gjkaz400Lm/hiUwnvMzP8bG467anHWc0goymq6F R6z/daGTyR5FWbtOcPn92NIgCOWpITgWoMlo/H0ApkXULeo5MR/Eg9+ktg6lpFFDmjqMt+ eVyXD7lv9EO1UCRs3uENdbzqd75Bl605893ZBXWdmX12RDffHV9d/U4wOLKO9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103218; a=rsa-sha256; cv=none; b=PDlmZ7Lyfk1+XlXuduk2IDoEE0jzJjuvTfaeIITCeV9snZJQRmY2u79onLPwZL+z5aLrrH 0WIm8EBflwjHUJ1gyAUHVQ4m6Fv+bTpYt45eGFGWrJk0QewxskiYQyT+mNl9uqiDKPf0O7 voQ65cZk/A8TWur6peT0dFXbtNYKEggh+CScasSF1GYNjJ0Hv59BgoZkqCZ5UD7vIT2ZhX WvYnv/TGISPFPn5eTRkdZOLZBwUMAst//czEJFY81DvJZzjJtM7DKGFjro3KDAX77VPylv NYnRMqB9TwxdPzUruT+nSQUcZekFYNCTj0b8XW09C+y8MpzRkCKe5OR93wrdew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103218; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SPASJDxi2V8kBVvbcTrp2IgoOUCsGfCDccyeboKSK8Q=; b=LebGeIXxeQHcP9SSHvspHrokE8pUwEF3N4EKNSOPKeTzT3/+EUMAt0/9m0n+hRivrCUx5w Q79SHRqu+wQ12fxWuLO0+9fYaxadf7VOoxYw1iZw0DRSqv/vg6nWWEY5BpuD5/SsvfWzlj pPXT4yKidbOJvLLd4PI1lF3MtsVwMXyWC/jNq+S1xhzhTjOrBglRgmav/xHef5peN0QHNo kW/tkIpl2k5esr5FYzqr1WHxYF71El2dOWsGqlrm4pYAiOGUmvUuksGyc02NhmN8KDlqt2 oOl+fZcx1Evh4/1g9K13TCOuXv7wYWukRg0TsNTb+aieouOVpm2UgLls8EIhrw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g696sRPz8Bk; Tue, 04 Mar 2025 15:46:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fkv5W049842; Tue, 4 Mar 2025 15:46:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fkv04049839; Tue, 4 Mar 2025 15:46:57 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:46:57 GMT Message-Id: <202503041546.524Fkv04049839@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: a8fc61770121 - stable/14 - sound: Report actual vchanrate and vchanformat in sysctl List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a8fc617701219d9d466332085381c266e9e686e3 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a8fc617701219d9d466332085381c266e9e686e3 commit a8fc617701219d9d466332085381c266e9e686e3 Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:33 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:05 +0000 sound: Report actual vchanrate and vchanformat in sysctl Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48435 (cherry picked from commit d39be38a353323d05744eeb3e08267108e55b9b1) --- sys/dev/sound/pcm/vchan.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 4ee7e01066d3..b0caec3acfec 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -497,9 +497,7 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", __func__, direction, c->direction)); - CHN_LOCK(c); - newspd = c->speed; - CHN_UNLOCK(c); + newspd = *vchanrate; ret = sysctl_handle_int(oidp, &newspd, 0, req); if (ret != 0 || req->newptr == NULL) { @@ -530,7 +528,6 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) ret = chn_reset(c, c->format, newspd); if (ret == 0) { - *vchanrate = c->speed; if (restart != 0) { CHN_FOREACH(ch, c, children.busy) { CHN_LOCK(ch); @@ -543,6 +540,7 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) } } } + *vchanrate = c->speed; CHN_UNLOCK(c); @@ -605,15 +603,11 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", __func__, direction, c->direction)); - CHN_LOCK(c); - bzero(fmtstr, sizeof(fmtstr)); - if (snd_afmt2str(c->format, fmtstr, sizeof(fmtstr)) != c->format) + if (snd_afmt2str(*vchanformat, fmtstr, sizeof(fmtstr)) != *vchanformat) strlcpy(fmtstr, "", sizeof(fmtstr)); - CHN_UNLOCK(c); - ret = sysctl_handle_string(oidp, fmtstr, sizeof(fmtstr), req); if (ret != 0 || req->newptr == NULL) { PCM_RELEASE_QUICK(d); @@ -637,7 +631,6 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) ret = chn_reset(c, newfmt, c->speed); if (ret == 0) { - *vchanformat = c->format; if (restart != 0) { CHN_FOREACH(ch, c, children.busy) { CHN_LOCK(ch); @@ -650,6 +643,7 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) } } } + *vchanformat = c->format; CHN_UNLOCK(c); From nobody Tue Mar 4 15:46:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6D1dPkz5qGSY; Tue, 04 Mar 2025 15:47: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6C0bqwz428q; Tue, 04 Mar 2025 15:46:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103219; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ktz3bEuYop93xPnEYC1RLXx3cVOQRbocN79Z0uWRi3g=; b=AbMJhp8fR83AM2CD4CYHzydlWIJ/844lcp9bm8oPKxcNV3Py9iR/Yq9z4/Bu5O5Opa9iSv MdUS69+ENDRqxnX/0gbkpJlzZyIdhsaThKUomGQZDM+bGfUOdq4lM2fAlxMj2LUHlDOCRY GNEnPgbtla4hx2YzgbEwexhn7eda7gQjE/8Ogy8wb1DR58LRDv2CoHJrpiYT3cH/TZP3KP Afz6TL3HZsQ8UN9ABwt3GcHUxg8ORYCW1gfNRHoFSApAmJrjp4yX/4RcBk3aD+fuQAu7Gy F0Ugw5WTNnVBu9lPk2wxGgenyZsVZhlakQr7U0nNQkQtopW26/u3qfg0cUAf2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103219; a=rsa-sha256; cv=none; b=Zujp/TfC0D2BJCjOB3vE+eIZfAYUl9zJuNlMnG06A7rA54Xaed2s1WQyn03GrD2iTo2kt6 8/YbZ1bCxxQ3RX7Erxc63TayYLIjVcXeJEbB6JFXKtVIrOILsdwh2N2AAtF0+yumU0TaXH fdhqcdQh6qJXo/F+W5e9nMXJpXYqMNR8zmQ4ilPHLIZTlWAPDpK6xqqgCoHFXvsJnMgePP O8tv1V7BL3uns7L98yBjtoHxgTzQJT2BLO0nNg7zvHJ1zevf2DZg54XGgFotjFdocvJFTa PoouXvho6+IcRbdp57WgMnw/Y9qsdCmT/uExMWGdCCeBsneJ+Gjzic/Pzal/sg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103219; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ktz3bEuYop93xPnEYC1RLXx3cVOQRbocN79Z0uWRi3g=; b=E9dR25b2uKJd9bGFpoeZor5j8l+K7pQDrXyRhjk9ZXqTnpMIM6xPR3Qh/4hSGUx71g/QdD MtbbqEOZEtQeOf8ChE4QqQ0D93oojddI13j+5je0Q4P3jbOChcgMi9nNPd7Ood7/i1iUim jAWbC5kl7pV526YbXzndDTRVnpD2xQUXhQz4ppNUyl8/H1NOq7eT3BH1lMQ3qwm13xBMrg PutfAEj2QP2ioVSUkFuIyC4LA7Qfdv26GxSqWuKKy5Do0ImgXdElYBco2giuTlW3yCA9DD +EsunjH66i38sSCDLM/c8epVLFktWIDEdwHQzyvR13G2uLLBqeG2asCmOtbFDg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6C0C3vz8H6; Tue, 04 Mar 2025 15:46:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FkxDc049883; Tue, 4 Mar 2025 15:46:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fkwhn049880; Tue, 4 Mar 2025 15:46:58 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:46:58 GMT Message-Id: <202503041546.524Fkwhn049880@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 960ee8094913 - stable/14 - sound: Allocate vchans on-demand List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 960ee8094913f1f96c6a432d84ae1f153b1a562c Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=960ee8094913f1f96c6a432d84ae1f153b1a562c commit 960ee8094913f1f96c6a432d84ae1f153b1a562c Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:39 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:05 +0000 sound: Allocate vchans on-demand Refactor pcm_chnalloc() and merge with parts of vchan_setnew() (now removed) and dsp_open()’s channel creation into a new dsp_chn_alloc() function. The function is responsible for either using a free HW channel (if vchans are disabled), or allocating a new vchan. Clean up allocated vchans associated with a given dsp_cdevpriv on dsp_close() instead of leaving them unused. hw.snd.vchans_enable (previously hw.snd.maxautovchans) and dev.pcm.X.{play|rec}.vchans now work as tunables to only enable/disable vchans, as opposed to setting their number and/or (de-)allocating vchans. Since these sysctls do not trigger any (de-)allocations anymore, their effect is instantaneous, whereas before we could have frozen the machine (when trying to allocate new vchans) when setting dev.pcm.X.{play|rec}.vchans to a very large value. Create a new "primary" channel sublist so that we do not waste time looping through all channels in dsp_chn_alloc(), since we are only looking for a parent channel to either use, or add a new vchan to. This guarantees a steady traversal speed, as the parent channels are most likely going to be just a handful (2). What was currently in place was a loop through the whole channel list, which meant that the traversal would take longer the more channels were added to that list. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D47917 (cherry picked from commit 02d4eeabfd73e6a827f5d42601e99aad92060b04) --- share/man/man4/pcm.4 | 23 ++-- sys/dev/sound/pcm/channel.c | 14 ++- sys/dev/sound/pcm/channel.h | 3 + sys/dev/sound/pcm/dsp.c | 233 ++++++++++++++++++++---------------- sys/dev/sound/pcm/sound.c | 70 ++--------- sys/dev/sound/pcm/sound.h | 13 +- sys/dev/sound/pcm/vchan.c | 285 +++++++++++++------------------------------- sys/dev/sound/pcm/vchan.h | 7 +- 8 files changed, 254 insertions(+), 394 deletions(-) diff --git a/share/man/man4/pcm.4 b/share/man/man4/pcm.4 index e406bd2c8343..ecaf732aad25 100644 --- a/share/man/man4/pcm.4 +++ b/share/man/man4/pcm.4 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 24, 2024 +.Dd December 4, 2024 .Dt SOUND 4 .Os .Sh NAME @@ -358,14 +358,12 @@ A value of 0 will use a low and aggressive latency profile which can result in possible underruns if the application cannot keep up with a rapid irq rate, especially during high workload. The default value is 1, which is considered a moderate/safe latency profile. -.It Va hw.snd.maxautovchans -Global VCHAN setting that only affects devices with at least one playback or -recording channel available. -The sound system will dynamically create up to this many VCHANs. -Set to -.Dq 0 -if no VCHANs are desired. -Maximum value is 256. +.It Va hw.snd.vchans_enable +Global VCHAN setting to enable (1) or disable (0) VCHANs. +This setting can be overridden for an individual device by using the +.Va dev.pcm.%d.[play|rec].vchans +tunables. +Default is enabled. .It Va hw.snd.report_soft_formats Controls the internal format conversion if it is available transparently to the application software. @@ -432,11 +430,8 @@ The recommended way to use bitperfect mode is to disable VCHANs and enable this sysctl. Default is disabled. .It Va dev.pcm.%d.[play|rec].vchans -The current number of VCHANs allocated per device. -This can be set to preallocate a certain number of VCHANs. -Setting this value to -.Dq 0 -will disable VCHANs for this device. +Enable (1) or disable (0) VCHANs. +Default is enabled. .It Va dev.pcm.%d.[play|rec].vchanformat Format for VCHAN mixing. All playback paths will be converted to this format before the mixing diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 58315610312e..17c11dc33b7a 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1172,7 +1172,7 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, struct feeder_class *fc; struct snd_dbuf *b, *bs; char buf[CHN_NAMELEN]; - int i, direction; + int err, i, direction; PCM_BUSYASSERT(d); PCM_LOCKASSERT(d); @@ -1279,8 +1279,18 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, bs->shadbuf = malloc(bs->sl, M_DEVBUF, M_WAITOK); } + if ((c->flags & CHN_F_VIRTUAL) == 0) { + CHN_LOCK(c); + err = chn_reset(c, c->format, c->speed); + CHN_UNLOCK(c); + if (err != 0) + goto fail; + } + PCM_LOCK(d); CHN_INSERT_SORT_ASCEND(d, c, channels.pcm); + if ((c->flags & CHN_F_VIRTUAL) == 0) + CHN_INSERT_SORT_ASCEND(d, c, channels.pcm.primary); switch (c->type) { case PCMDIR_PLAY: @@ -1332,6 +1342,8 @@ chn_kill(struct pcm_channel *c) PCM_LOCK(d); CHN_REMOVE(d, c, channels.pcm); + if ((c->flags & CHN_F_VIRTUAL) == 0) + CHN_REMOVE(d, c, channels.pcm.primary); switch (c->type) { case PCMDIR_PLAY: diff --git a/sys/dev/sound/pcm/channel.h b/sys/dev/sound/pcm/channel.h index 6eaad8cc2c0b..31c617a6df78 100644 --- a/sys/dev/sound/pcm/channel.h +++ b/sys/dev/sound/pcm/channel.h @@ -160,6 +160,9 @@ struct pcm_channel { struct { SLIST_ENTRY(pcm_channel) link; } opened; + struct { + SLIST_ENTRY(pcm_channel) link; + } primary; } pcm; } channels; diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index dcbdd581c82a..88e0580c5c45 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -37,6 +37,7 @@ #endif #include +#include #include #include #include @@ -158,6 +159,81 @@ dsp_unlock_chans(struct dsp_cdevpriv *priv, uint32_t prio) CHN_UNLOCK(priv->wrch); } +static int +dsp_chn_alloc(struct snddev_info *d, struct pcm_channel **ch, int direction, + int flags, struct thread *td) +{ + struct pcm_channel *c; + char *comm; + pid_t pid; + int err; + bool vdir_enabled; + + KASSERT(d != NULL && ch != NULL && + (direction == PCMDIR_PLAY || direction == PCMDIR_REC), + ("%s(): invalid d=%p ch=%p direction=%d", + __func__, d, ch, direction)); + PCM_BUSYASSERT(d); + + pid = td->td_proc->p_pid; + comm = td->td_proc->p_comm; + + vdir_enabled = (direction == PCMDIR_PLAY && d->flags & SD_F_PVCHANS) || + (direction == PCMDIR_REC && d->flags & SD_F_RVCHANS); + + *ch = NULL; + CHN_FOREACH(c, d, channels.pcm.primary) { + CHN_LOCK(c); + if (c->direction != direction) { + CHN_UNLOCK(c); + continue; + } + /* Find an available primary channel to use. */ + if ((c->flags & CHN_F_BUSY) == 0 || + (vdir_enabled && (c->flags & CHN_F_HAS_VCHAN))) + break; + CHN_UNLOCK(c); + } + if (c == NULL) + return (EBUSY); + + /* + * We can have the following cases: + * - vchans are enabled, add a new vchan to the primary channel. + * - vchans are disabled, use the primary channel directly. + */ + if (vdir_enabled && ((c->flags & CHN_F_BUSY) == 0 || + c->flags & CHN_F_HAS_VCHAN)) { + err = vchan_create(c, ch); + CHN_UNLOCK(c); + if (err != 0) + return (err); + CHN_LOCK(*ch); + } else if ((c->flags & CHN_F_BUSY) == 0) { + *ch = c; + } else { + CHN_UNLOCK(c); + return (ENODEV); + } + + (*ch)->flags |= CHN_F_BUSY; + if (flags & O_NONBLOCK) + (*ch)->flags |= CHN_F_NBIO; + if (flags & O_EXCL) + (*ch)->flags |= CHN_F_EXCLUSIVE; + (*ch)->pid = pid; + strlcpy((*ch)->comm, (comm != NULL) ? comm : CHN_COMM_UNKNOWN, + sizeof((*ch)->comm)); + + if ((err = chn_reset(*ch, (*ch)->format, (*ch)->speed)) != 0) + return (err); + chn_vpc_reset(*ch, SND_VOL_C_PCM, 0); + + CHN_UNLOCK(*ch); + + return (0); +} + #define DSP_F_VALID(x) ((x) & (FREAD | FWRITE)) #define DSP_F_DUPLEX(x) (((x) & (FREAD | FWRITE)) == (FREAD | FWRITE)) #define DSP_F_SIMPLEX(x) (!DSP_F_DUPLEX(x)) @@ -168,7 +244,7 @@ static void dsp_close(void *data) { struct dsp_cdevpriv *priv = data; - struct pcm_channel *rdch, *wrch; + struct pcm_channel *rdch, *wrch, *parent; struct snddev_info *d; int sg_ids; @@ -214,12 +290,20 @@ dsp_close(void *data) if (sg_ids != 0) free_unr(pcmsg_unrhdr, sg_ids); - CHN_LOCK(rdch); - chn_abort(rdch); /* won't sleep */ - rdch->flags &= ~(CHN_F_RUNNING | CHN_F_MMAP | - CHN_F_DEAD | CHN_F_EXCLUSIVE); - chn_reset(rdch, 0, 0); - chn_release(rdch); + if (rdch->flags & CHN_F_VIRTUAL) { + parent = rdch->parentchannel; + CHN_LOCK(parent); + CHN_LOCK(rdch); + vchan_destroy(rdch); + CHN_UNLOCK(parent); + } else { + CHN_LOCK(rdch); + chn_abort(rdch); /* won't sleep */ + rdch->flags &= ~(CHN_F_RUNNING | CHN_F_MMAP | + CHN_F_DEAD | CHN_F_EXCLUSIVE); + chn_reset(rdch, 0, 0); + chn_release(rdch); + } } if (wrch != NULL) { /* @@ -231,12 +315,20 @@ dsp_close(void *data) if (sg_ids != 0) free_unr(pcmsg_unrhdr, sg_ids); - CHN_LOCK(wrch); - chn_flush(wrch); /* may sleep */ - wrch->flags &= ~(CHN_F_RUNNING | CHN_F_MMAP | - CHN_F_DEAD | CHN_F_EXCLUSIVE); - chn_reset(wrch, 0, 0); - chn_release(wrch); + if (wrch->flags & CHN_F_VIRTUAL) { + parent = wrch->parentchannel; + CHN_LOCK(parent); + CHN_LOCK(wrch); + vchan_destroy(wrch); + CHN_UNLOCK(parent); + } else { + CHN_LOCK(wrch); + chn_flush(wrch); /* may sleep */ + wrch->flags &= ~(CHN_F_RUNNING | CHN_F_MMAP | + CHN_F_DEAD | CHN_F_EXCLUSIVE); + chn_reset(wrch, 0, 0); + chn_release(wrch); + } } PCM_LOCK(d); } @@ -254,10 +346,9 @@ static int dsp_open(struct cdev *i_dev, int flags, int mode, struct thread *td) { struct dsp_cdevpriv *priv; - struct pcm_channel *rdch, *wrch, *ch; + struct pcm_channel *ch; struct snddev_info *d; - uint32_t fmt, spd; - int error, rderror, wrerror, dir; + int error, dir; /* Kind of impossible.. */ if (i_dev == NULL || td == NULL) @@ -267,11 +358,11 @@ dsp_open(struct cdev *i_dev, int flags, int mode, struct thread *td) if (!DSP_REGISTERED(d)) return (EBADF); + if (PCM_CHANCOUNT(d) >= PCM_MAXCHANS) + return (ENOMEM); + priv = malloc(sizeof(*priv), M_DEVBUF, M_WAITOK | M_ZERO); priv->sc = d; - priv->rdch = NULL; - priv->wrch = NULL; - priv->volch = NULL; error = devfs_set_cdevpriv(priv, dsp_close); if (error != 0) @@ -334,98 +425,30 @@ dsp_open(struct cdev *i_dev, int flags, int mode, struct thread *td) PCM_ACQUIRE(d); PCM_UNLOCK(d); - fmt = SND_FORMAT(AFMT_U8, 1, 0); - spd = DSP_DEFAULT_SPEED; - - rdch = NULL; - wrch = NULL; - rderror = 0; - wrerror = 0; - - if (DSP_F_READ(flags)) { - /* open for read */ - rderror = pcm_chnalloc(d, &rdch, PCMDIR_REC, - td->td_proc->p_pid, td->td_proc->p_comm); - - if (rderror == 0 && chn_reset(rdch, fmt, spd) != 0) - rderror = ENXIO; - - if (rderror != 0) { - if (rdch != NULL) - chn_release(rdch); - if (!DSP_F_DUPLEX(flags)) { - PCM_RELEASE_QUICK(d); - PCM_GIANT_EXIT(d); - return (rderror); - } - rdch = NULL; - } else { - if (flags & O_NONBLOCK) - rdch->flags |= CHN_F_NBIO; - if (flags & O_EXCL) - rdch->flags |= CHN_F_EXCLUSIVE; - chn_vpc_reset(rdch, SND_VOL_C_PCM, 0); - CHN_UNLOCK(rdch); - } - } - if (DSP_F_WRITE(flags)) { - /* open for write */ - wrerror = pcm_chnalloc(d, &wrch, PCMDIR_PLAY, - td->td_proc->p_pid, td->td_proc->p_comm); - - if (wrerror == 0 && chn_reset(wrch, fmt, spd) != 0) - wrerror = ENXIO; - - if (wrerror != 0) { - if (wrch != NULL) - chn_release(wrch); - if (!DSP_F_DUPLEX(flags)) { - if (rdch != NULL) { - /* - * Lock, and release previously created - * record channel - */ - CHN_LOCK(rdch); - chn_release(rdch); - } - PCM_RELEASE_QUICK(d); - PCM_GIANT_EXIT(d); - return (wrerror); - } - wrch = NULL; - } else { - if (flags & O_NONBLOCK) - wrch->flags |= CHN_F_NBIO; - if (flags & O_EXCL) - wrch->flags |= CHN_F_EXCLUSIVE; - chn_vpc_reset(wrch, SND_VOL_C_PCM, 0); - CHN_UNLOCK(wrch); + error = dsp_chn_alloc(d, &priv->wrch, PCMDIR_PLAY, flags, td); + if (error != 0) { + PCM_RELEASE_QUICK(d); + PCM_GIANT_EXIT(d); + return (error); } + PCM_LOCK(d); + CHN_INSERT_HEAD(d, priv->wrch, channels.pcm.opened); + PCM_UNLOCK(d); } - - PCM_LOCK(d); - - if (wrch == NULL && rdch == NULL) { - PCM_RELEASE(d); + if (DSP_F_READ(flags)) { + error = dsp_chn_alloc(d, &priv->rdch, PCMDIR_REC, flags, td); + if (error != 0) { + PCM_RELEASE_QUICK(d); + PCM_GIANT_EXIT(d); + return (error); + } + PCM_LOCK(d); + CHN_INSERT_HEAD(d, priv->rdch, channels.pcm.opened); PCM_UNLOCK(d); - PCM_GIANT_EXIT(d); - if (wrerror != 0) - return (wrerror); - if (rderror != 0) - return (rderror); - return (EINVAL); } - if (rdch != NULL) - CHN_INSERT_HEAD(d, rdch, channels.pcm.opened); - if (wrch != NULL) - CHN_INSERT_HEAD(d, wrch, channels.pcm.opened); - priv->rdch = rdch; - priv->wrch = wrch; - - PCM_RELEASE(d); - PCM_UNLOCK(d); + PCM_RELEASE_QUICK(d); PCM_GIANT_LEAVE(d); return (0); diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index b8f4efea8789..391c8e61dc19 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -107,62 +107,6 @@ snd_setup_intr(device_t dev, struct resource *res, int flags, driver_intr_t hand return bus_setup_intr(dev, res, flags, NULL, hand, param, cookiep); } -int -pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, - pid_t pid, char *comm) -{ - struct pcm_channel *c; - int err, vchancount; - bool retry; - - KASSERT(d != NULL && ch != NULL && - (direction == PCMDIR_PLAY || direction == PCMDIR_REC), - ("%s(): invalid d=%p ch=%p direction=%d pid=%d", - __func__, d, ch, direction, pid)); - PCM_BUSYASSERT(d); - - *ch = NULL; - vchancount = (direction == PCMDIR_PLAY) ? d->pvchancount : - d->rvchancount; - retry = false; - -retry_chnalloc: - /* Scan for a free channel. */ - CHN_FOREACH(c, d, channels.pcm) { - CHN_LOCK(c); - if (c->direction != direction) { - CHN_UNLOCK(c); - continue; - } - if (!(c->flags & CHN_F_BUSY)) { - c->flags |= CHN_F_BUSY; - c->pid = pid; - strlcpy(c->comm, (comm != NULL) ? comm : - CHN_COMM_UNKNOWN, sizeof(c->comm)); - *ch = c; - - return (0); - } - CHN_UNLOCK(c); - } - /* Maybe next time... */ - if (retry) - return (EBUSY); - - /* No channel available. We also cannot create more VCHANs. */ - if (!(vchancount > 0 && vchancount < snd_maxautovchans)) - return (ENOTSUP); - - /* Increase the VCHAN count and try to get the new channel. */ - err = vchan_setnew(d, direction, vchancount + 1); - if (err == 0) { - retry = true; - goto retry_chnalloc; - } - - return (err); -} - static int sysctl_hw_snd_default_unit(SYSCTL_HANDLER_ARGS) { @@ -303,7 +247,10 @@ pcm_setstatus(device_t dev, char *str) if (d->playcount > 0 || d->reccount > 0) d->flags |= SD_F_AUTOVCHAN; - vchan_setmaxauto(d, snd_maxautovchans); + if (d->playcount > 0) + d->flags |= SD_F_PVCHANS; + if (d->reccount > 0) + d->flags |= SD_F_RVCHANS; strlcpy(d->status, str, SND_STATUSLEN); sndstat_register(dev, d->status); @@ -516,6 +463,7 @@ pcm_register(device_t dev, void *devinfo, int numplay __unused, CHN_INIT(d, channels.pcm); CHN_INIT(d, channels.pcm.busy); CHN_INIT(d, channels.pcm.opened); + CHN_INIT(d, channels.pcm.primary); return (0); } @@ -732,9 +680,7 @@ sound_global_init(void) if (snd_unit < 0) snd_unit = -1; - if (snd_maxautovchans < 0 || - snd_maxautovchans > SND_MAXVCHANS) - snd_maxautovchans = 0; + snd_vchans_enable = true; if (chn_latency < CHN_LATENCY_MIN || chn_latency > CHN_LATENCY_MAX) @@ -758,11 +704,11 @@ sound_global_init(void) feeder_rate_round = FEEDRATE_ROUNDHZ; if (bootverbose) - printf("%s: snd_unit=%d snd_maxautovchans=%d " + printf("%s: snd_unit=%d snd_vchans_enable=%d " "latency=%d " "feeder_rate_min=%d feeder_rate_max=%d " "feeder_rate_round=%d\n", - __func__, snd_unit, snd_maxautovchans, + __func__, snd_unit, snd_vchans_enable, chn_latency, feeder_rate_min, feeder_rate_max, feeder_rate_round); diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index f0dc454ac131..fddf5bfef1a8 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -99,8 +99,6 @@ struct snd_mixer; #define SOUND_PREFVER SOUND_MODVER #define SOUND_MAXVER SOUND_MODVER -#define SND_MAXVCHANS 256 - #define SD_F_SIMPLEX 0x00000001 #define SD_F_AUTOVCHAN 0x00000002 #define SD_F_SOFTPCMVOL 0x00000004 @@ -113,6 +111,8 @@ struct snd_mixer; #define SD_F_EQ_ENABLED 0x00000200 /* EQ enabled */ #define SD_F_EQ_BYPASSED 0x00000400 /* EQ bypassed */ #define SD_F_EQ_PC 0x00000800 /* EQ per-channel */ +#define SD_F_PVCHANS 0x00001000 /* Playback vchans enabled */ +#define SD_F_RVCHANS 0x00002000 /* Recording vchans enabled */ #define SD_F_EQ_DEFAULT (SD_F_EQ | SD_F_EQ_ENABLED) #define SD_F_EQ_MASK (SD_F_EQ | SD_F_EQ_ENABLED | \ @@ -134,12 +134,15 @@ struct snd_mixer; "\012EQ_ENABLED" \ "\013EQ_BYPASSED" \ "\014EQ_PC" \ + "\015PVCHANS" \ + "\016RVCHANS" \ "\035PRIO_RD" \ "\036PRIO_WR" #define PCM_ALIVE(x) ((x) != NULL && (x)->lock != NULL) #define PCM_REGISTERED(x) (PCM_ALIVE(x) && ((x)->flags & SD_F_REGISTERED)) +#define PCM_MAXCHANS 10000 #define PCM_CHANCOUNT(d) \ (d->playcount + d->pvchancount + d->reccount + d->rvchancount) @@ -168,9 +171,6 @@ extern struct unrhdr *pcmsg_unrhdr; SYSCTL_DECL(_hw_snd); -int pcm_chnalloc(struct snddev_info *d, struct pcm_channel **ch, int direction, - pid_t pid, char *comm); - int pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo); unsigned int pcm_getbuffersize(device_t dev, unsigned int minbufsz, unsigned int deflt, unsigned int maxbufsz); int pcm_register(device_t dev, void *devinfo, int numplay, int numrec); @@ -224,6 +224,9 @@ struct snddev_info { struct { SLIST_HEAD(, pcm_channel) head; } opened; + struct { + SLIST_HEAD(, pcm_channel) head; + } primary; } pcm; } channels; unsigned playcount, reccount, pvchancount, rvchancount; diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index b0caec3acfec..297120199fe7 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -61,7 +61,7 @@ struct vchan_info { int trigger; }; -int snd_maxautovchans = 16; +bool snd_vchans_enable = true; static void * vchan_init(kobj_t obj, void *devinfo, struct snd_dbuf *b, @@ -277,7 +277,7 @@ vchan_getparentchannel(struct snddev_info *d, *ch = NULL; break; } - } else if (c->flags & CHN_F_HAS_VCHAN) { + } else { /* No way!! */ if (*ch != NULL) { CHN_UNLOCK(c); @@ -299,8 +299,7 @@ static int sysctl_dev_pcm_vchans(SYSCTL_HANDLER_ARGS) { struct snddev_info *d; - int direction, vchancount; - int err, cnt; + int err, enabled, flag; d = devclass_get_softc(pcm_devclass, VCHAN_SYSCTL_UNIT(oidp->oid_arg1)); if (!PCM_REGISTERED(d) || !(d->flags & SD_F_AUTOVCHAN)) @@ -311,43 +310,44 @@ sysctl_dev_pcm_vchans(SYSCTL_HANDLER_ARGS) switch (VCHAN_SYSCTL_DIR(oidp->oid_arg1)) { case VCHAN_PLAY: - direction = PCMDIR_PLAY; - vchancount = d->pvchancount; - cnt = d->playcount; + /* Exit if we do not support this direction. */ + if (d->playcount < 1) { + PCM_UNLOCK(d); + return (ENODEV); + } + flag = SD_F_PVCHANS; break; case VCHAN_REC: - direction = PCMDIR_REC; - vchancount = d->rvchancount; - cnt = d->reccount; + if (d->reccount < 1) { + PCM_UNLOCK(d); + return (ENODEV); + } + flag = SD_F_RVCHANS; break; default: PCM_UNLOCK(d); return (EINVAL); - break; } - if (cnt < 1) { - PCM_UNLOCK(d); - return (ENODEV); - } + enabled = (d->flags & flag) != 0; PCM_ACQUIRE(d); PCM_UNLOCK(d); - cnt = vchancount; - err = sysctl_handle_int(oidp, &cnt, 0, req); - - if (err == 0 && req->newptr != NULL && vchancount != cnt) { - if (cnt < 0) - cnt = 0; - if (cnt > SND_MAXVCHANS) - cnt = SND_MAXVCHANS; - err = vchan_setnew(d, direction, cnt); + err = sysctl_handle_int(oidp, &enabled, 0, req); + if (err != 0 || req->newptr == NULL) { + PCM_RELEASE_QUICK(d); + return (err); } + if (enabled <= 0) + d->flags &= ~flag; + else + d->flags |= flag; + PCM_RELEASE_QUICK(d); - return err; + return (0); } static int @@ -368,15 +368,22 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) switch (VCHAN_SYSCTL_DIR(oidp->oid_arg1)) { case VCHAN_PLAY: + if ((d->flags & SD_F_PVCHANS) == 0) { + PCM_UNLOCK(d); + return (ENODEV); + } direction = PCMDIR_PLAY; break; case VCHAN_REC: + if ((d->flags & SD_F_RVCHANS) == 0) { + PCM_UNLOCK(d); + return (ENODEV); + } direction = PCMDIR_REC; break; default: PCM_UNLOCK(d); return (EINVAL); - break; } PCM_ACQUIRE(d); @@ -450,7 +457,7 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) struct snddev_info *d; struct pcm_channel *c, *ch; struct pcmchan_caps *caps; - int *vchanrate, vchancount, direction, ret, newspd, restart; + int *vchanrate, direction, ret, newspd, restart; d = devclass_get_softc(pcm_devclass, VCHAN_SYSCTL_UNIT(oidp->oid_arg1)); if (!PCM_REGISTERED(d) || !(d->flags & SD_F_AUTOVCHAN)) @@ -461,24 +468,24 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) switch (VCHAN_SYSCTL_DIR(oidp->oid_arg1)) { case VCHAN_PLAY: + if ((d->flags & SD_F_PVCHANS) == 0) { + PCM_UNLOCK(d); + return (ENODEV); + } direction = PCMDIR_PLAY; - vchancount = d->pvchancount; vchanrate = &d->pvchanrate; break; case VCHAN_REC: + if ((d->flags & SD_F_RVCHANS) == 0) { + PCM_UNLOCK(d); + return (ENODEV); + } direction = PCMDIR_REC; - vchancount = d->rvchancount; vchanrate = &d->rvchanrate; break; default: PCM_UNLOCK(d); return (EINVAL); - break; - } - - if (vchancount < 1) { - PCM_UNLOCK(d); - return (EINVAL); } PCM_ACQUIRE(d); @@ -555,7 +562,7 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) struct snddev_info *d; struct pcm_channel *c, *ch; uint32_t newfmt; - int *vchanformat, vchancount, direction, ret, restart; + int *vchanformat, direction, ret, restart; char fmtstr[AFMTSTR_LEN]; d = devclass_get_softc(pcm_devclass, VCHAN_SYSCTL_UNIT(oidp->oid_arg1)); @@ -567,24 +574,24 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) switch (VCHAN_SYSCTL_DIR(oidp->oid_arg1)) { case VCHAN_PLAY: + if ((d->flags & SD_F_PVCHANS) == 0) { + PCM_UNLOCK(d); + return (ENODEV); + } direction = PCMDIR_PLAY; - vchancount = d->pvchancount; vchanformat = &d->pvchanformat; break; case VCHAN_REC: + if ((d->flags & SD_F_RVCHANS) == 0) { + PCM_UNLOCK(d); + return (ENODEV); + } direction = PCMDIR_REC; - vchancount = d->rvchancount; vchanformat = &d->rvchanformat; break; default: PCM_UNLOCK(d); return (EINVAL); - break; - } - - if (vchancount < 1) { - PCM_UNLOCK(d); - return (EINVAL); } PCM_ACQUIRE(d); @@ -660,7 +667,7 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) "play.vchanrate" : "rec.vchanrate" int -vchan_create(struct pcm_channel *parent) +vchan_create(struct pcm_channel *parent, struct pcm_channel **child) { struct snddev_info *d; struct pcm_channel *ch; @@ -676,9 +683,6 @@ vchan_create(struct pcm_channel *parent) PCM_BUSYASSERT(d); CHN_LOCKASSERT(parent); - if (!(parent->flags & CHN_F_BUSY)) - return (EBUSY); - if (!(parent->direction == PCMDIR_PLAY || parent->direction == PCMDIR_REC)) return (EINVAL); @@ -713,10 +717,12 @@ vchan_create(struct pcm_channel *parent) */ CHN_INSERT_SORT_DESCEND(parent, ch, children); + *child = ch; + if (parent->flags & CHN_F_HAS_VCHAN) return (0); - parent->flags |= CHN_F_HAS_VCHAN; + parent->flags |= CHN_F_HAS_VCHAN | CHN_F_BUSY; parent_caps = chn_getcaps(parent); if (parent_caps == NULL) { @@ -807,6 +813,7 @@ vchan_create(struct pcm_channel *parent) fail: CHN_LOCK(ch); vchan_destroy(ch); + *child = NULL; return (ret); } @@ -878,166 +885,40 @@ vchan_sync(struct pcm_channel *c) return (ret); } -int -vchan_setnew(struct snddev_info *d, int direction, int newcnt) -{ - struct pcm_channel *c, *ch, *nch; - struct pcmchan_caps *caps; - int i, err, vcnt; - - PCM_BUSYASSERT(d); - - if ((direction == PCMDIR_PLAY && d->playcount < 1) || - (direction == PCMDIR_REC && d->reccount < 1)) - return (ENODEV); - - if (!(d->flags & SD_F_AUTOVCHAN)) - return (EINVAL); - - if (newcnt < 0 || newcnt > SND_MAXVCHANS) - return (E2BIG); - - if (direction == PCMDIR_PLAY) - vcnt = d->pvchancount; - else if (direction == PCMDIR_REC) - vcnt = d->rvchancount; - else - return (EINVAL); - - if (newcnt > vcnt) { - /* add new vchans - find a parent channel first */ - ch = NULL; - CHN_FOREACH(c, d, channels.pcm) { - CHN_LOCK(c); - if (c->direction == direction && - ((c->flags & CHN_F_HAS_VCHAN) || (vcnt == 0 && - !(c->flags & (CHN_F_BUSY | CHN_F_VIRTUAL))))) { - /* - * Reuse hw channel with vchans already - * created. - */ - if (c->flags & CHN_F_HAS_VCHAN) { - ch = c; - break; - } - /* - * No vchans ever created, look for - * channels with supported formats. - */ - caps = chn_getcaps(c); - if (caps == NULL) { - CHN_UNLOCK(c); - continue; - } - for (i = 0; caps->fmtlist[i] != 0; i++) { - if (caps->fmtlist[i] & AFMT_CONVERTIBLE) - break; - } - if (caps->fmtlist[i] != 0) { - ch = c; - break; - } - } - CHN_UNLOCK(c); - } - if (ch == NULL) - return (EBUSY); - ch->flags |= CHN_F_BUSY; - err = 0; - while (err == 0 && newcnt > vcnt) { - err = vchan_create(ch); - if (err == 0) - vcnt++; - else if (err == E2BIG && newcnt > vcnt) - device_printf(d->dev, - "%s: err=%d Maximum channel reached.\n", - __func__, err); - } - if (vcnt == 0) - ch->flags &= ~CHN_F_BUSY; - CHN_UNLOCK(ch); - if (err != 0) - return (err); - } else if (newcnt < vcnt) { - CHN_FOREACH(c, d, channels.pcm) { - CHN_LOCK(c); - if (c->direction != direction || - CHN_EMPTY(c, children) || - !(c->flags & CHN_F_HAS_VCHAN)) { - CHN_UNLOCK(c); - continue; - } - CHN_FOREACH_SAFE(ch, c, nch, children) { - CHN_LOCK(ch); - if (vcnt == 1 && ch->flags & CHN_F_BUSY) { - CHN_UNLOCK(ch); - break; - } - if (!(ch->flags & CHN_F_BUSY)) { - err = vchan_destroy(ch); - if (err == 0) - vcnt--; - } else - CHN_UNLOCK(ch); - if (vcnt == newcnt) - break; - } - CHN_UNLOCK(c); - break; - } *** 125 LINES SKIPPED *** From nobody Tue Mar 4 15:47:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6F2BWdz5qGQ5; Tue, 04 Mar 2025 15:47: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6D2ZhQz422N; Tue, 04 Mar 2025 15:47:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103220; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KjgTLevZb+CsnKGayMeJ4RSoBUh4xtazFd1/bXKrwWA=; b=R4vA2m2NhpMe8LDYgZjSqQi0+xsRFhjb/751FrURV8NzAqtGs/o1qruvpNZdnkZxgs+Qky ZpgXaD9szunyF8fbUL6S50pN+w1jGyj3iISaH3/mZLN0TYpQ36+lpnr/NgoSlN7jVYcgxi ZFsD7ePelRKwJxnfmsAajOf81zC6JkACBPoGBo1iKy2PLVlFMpDbFERek57kZ0TMvZ+K6k RJmVDDrgY/4zVHhgNNxcpvqxhO7BiKEOLO9vmG6OSW9mIpNro84j47RuC/5c7eiZT1Q7On RHNZeVDgqHPE+x6KSptO+e+t8b0JbtbyGmn5TC1D4IYWtZpztSpg33o187ZCAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103220; a=rsa-sha256; cv=none; b=uCLUzmvKdODmDBiLPgQJE7NJizr/vjRcdm+lcs1bEpxzkPpOE/+R1A8QHiG9VZuvHEeTv/ vpS1fjtzgas2dZmlPXeGNOrbuo+WdTcqnZrt75oca9gNKnQkGvJ9SKSi03Sb+KQiRSzVNY iCr5w1sb2wiNrz2hwFSrJDRz84IsbV5qWjREJwOdtX/s4Y/73qbB7oN1bAmObCffMAviMw y4lcl6mTI4wb0wE7ui3U+L3v+CCE/n9es9snsDf0Eb6OKbc3X0Edmaf1dIpZbMS8PdlbQY Wv2INI5Gj/LIEPbyTnkIo9nGcgP+Kj/UY1HLrSewI+e58zh6z5VXu+nh0chCIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103220; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KjgTLevZb+CsnKGayMeJ4RSoBUh4xtazFd1/bXKrwWA=; b=e4mZQnIvQkA8drFdi8uGrbXqMUXJbVJMgE4tdTgb1vSkdAHCR6KjO8B5UsyAhd+ugSo3AV IZTBgFam6CaUNERTMDuLL0+newIFY6ELRG+2/5nAl0/qoDdGgtBet+zcL1UZ3g05odJ08K SdQAq3HZSdPtHIDE0dp2MGQA3vCKlvke+GViMZbQVjwdGj40gkYC1hNm6GX1pwPiwcfkoa xIhRhoaqHvp/IUVNp12tPmXR7ezj7gvglk4AdIDFTnKQQU/xuACdN+iJ+rApN5opfey6Um k5uceRs6PtRFMMdPEvz4XFgaa8RxTVBMB72eDuHzaTbV2mno5W1N36QYra08og== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6D1NFKz8FY; Tue, 04 Mar 2025 15:47:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl0nk049924; Tue, 4 Mar 2025 15:47:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl0Iw049921; Tue, 4 Mar 2025 15:47:00 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:00 GMT Message-Id: <202503041547.524Fl0Iw049921@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 58e17fd3c455 - stable/14 - sound: Cache vchanmode List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 58e17fd3c4553f2c0db447cda237363f3017d27a Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=58e17fd3c4553f2c0db447cda237363f3017d27a commit 58e17fd3c4553f2c0db447cda237363f3017d27a Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:46 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Cache vchanmode We already cache vchanrate and vchanformat. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48335 (cherry picked from commit b50f53cf872eca6b9a174a51fa183e8c2f88d97c) --- sys/dev/sound/pcm/sound.h | 4 ++-- sys/dev/sound/pcm/vchan.c | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index fddf5bfef1a8..1cb97325572b 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -238,8 +238,8 @@ struct snddev_info { struct mtx *lock; struct cdev *mixer_dev; struct cdev *dsp_dev; - uint32_t pvchanrate, pvchanformat; - uint32_t rvchanrate, rvchanformat; + uint32_t pvchanrate, pvchanformat, pvchanmode; + uint32_t rvchanrate, rvchanformat, rvchanmode; int32_t eqpreamp; struct sysctl_ctx_list play_sysctl_ctx, rec_sysctl_ctx; struct sysctl_oid *play_sysctl_tree, *rec_sysctl_tree; diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 297120199fe7..379d647cbcf8 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -356,7 +356,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) struct snddev_info *d; struct pcm_channel *c; uint32_t dflags; - int direction, ret; + int *vchanmode, direction, ret; char dtype[16]; d = devclass_get_softc(pcm_devclass, VCHAN_SYSCTL_UNIT(oidp->oid_arg1)); @@ -373,6 +373,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) return (ENODEV); } direction = PCMDIR_PLAY; + vchanmode = &d->pvchanmode; break; case VCHAN_REC: if ((d->flags & SD_F_RVCHANS) == 0) { @@ -380,6 +381,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) return (ENODEV); } direction = PCMDIR_REC; + vchanmode = &d->rvchanmode; break; default: PCM_UNLOCK(d); @@ -402,14 +404,12 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", __func__, direction, c->direction)); - CHN_LOCK(c); - if (c->flags & CHN_F_VCHAN_PASSTHROUGH) + if (*vchanmode & CHN_F_VCHAN_PASSTHROUGH) strlcpy(dtype, "passthrough", sizeof(dtype)); - else if (c->flags & CHN_F_VCHAN_ADAPTIVE) + else if (*vchanmode & CHN_F_VCHAN_ADAPTIVE) strlcpy(dtype, "adaptive", sizeof(dtype)); else strlcpy(dtype, "fixed", sizeof(dtype)); - CHN_UNLOCK(c); ret = sysctl_handle_string(oidp, dtype, sizeof(dtype), req); if (ret == 0 && req->newptr != NULL) { @@ -436,6 +436,7 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) c->flags &= ~CHN_F_VCHAN_DYNAMIC; c->flags |= dflags; CHN_UNLOCK(c); + *vchanmode = dflags; } PCM_RELEASE_QUICK(d); From nobody Tue Mar 4 15:47:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6G1wNXz5qGVr; Tue, 04 Mar 2025 15:47:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6F3SKTz42N7; Tue, 04 Mar 2025 15:47:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103221; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wqWu0y8h7abkSVCGHL8zbDgbsBws/Gt2bBwjyccdE4w=; b=o0e8ZalkV4siYv13xARsrBRsbtB4oIiDb331fG3ZAPBbfcWH+WWT0/tQ8oCN8Do11njj5u CtyGqIupWN38Sfmt3GVH7jW1kRQph27okzoWIl2nb8BnOM0lC9zWaMQX6jnKH/m9/kGF+V o7JT82ihb3DZR4FN+Osn6DbdGxygvsFEBEoaFh/6j6pbE0K4yc45LXbfFgD9MvMXioNh6e /b9jG3iSlwa0qz75YAR3X7pVpFa5fdf8EhzUd+Un3jqSdBwZrbanhdh2I5aYA1T+mO9CZT CMzi5qPsgxTB9WHS0DQQiqKiSJ6QAw9zSq+GDafbba4/RNssRIpcJphSg5hkVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103221; a=rsa-sha256; cv=none; b=qERDdLuM6O+/CyCz8hO4TUCw7UHKEImRZLXawS3YfFLyzJmyTl5Hv+pBdVkT+NcS1j/zve A885qNFcRMPtjefHac4r6v1X5Rkanx7YxaaxP57vMFo6rcLGaitxedHhj6ncLLgQOMIz7l 9SwzhZBRP+AeeJD4cr7jjMzt7pSw4b9LadkgPueYGZ2t+88Rg+EFwMLQdMy8V3mja+ZIoL wtNXI2h/WKrFreMW7ii32m+PY8+Z2qjuTkfZpSJkMZ7lQgdi6xpRf7aNuXOKKz018/DyDH 3yAgm5nPbEwnEeKc17fiPNShlUU3OkZgSmdL80diQavu3vNcHjoc/ZOu8ojvsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103221; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wqWu0y8h7abkSVCGHL8zbDgbsBws/Gt2bBwjyccdE4w=; b=Jwb82hePi7tO8u+Ojk4NeUdgbV3UoBt2twCPYF78CZ5ckAEG+FtKU444uYHJx3EMBQDSuP l81jNhIvUvWfpGFt70rhfQVI5xnT4X6W3SHEfA1J24hmj3T5dO4j652I3NgUMzKzwZOv1E Ud91L2m9U0ggbKjrNGKdLs9MCVCF8/NGT8BsGW8dsagWHAx9PwLYhU20nepTsO9Gxgh5iQ lP57ajheVSFsBAQLZjYyrHGgNZrkUxXFgR6IooO+vrv1Tw4Ra9LmBaRHcJEtF9tRL5MkJN 9QG3V60kZbm7PGU6X3wnjICeFlvgkHiu+RdLGzoAaNHxs6KnsIuNHgmYSAiSbQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6F1vzKz7tl; Tue, 04 Mar 2025 15:47:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl1AZ049958; Tue, 4 Mar 2025 15:47:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl13O049955; Tue, 4 Mar 2025 15:47:01 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:01 GMT Message-Id: <202503041547.524Fl13O049955@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 905ae2bc6a27 - stable/14 - sound: Handle multiple primary channel cases in vchan sysctls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 905ae2bc6a27b4e94643a337908dc4a59de2283a Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=905ae2bc6a27b4e94643a337908dc4a59de2283a commit 905ae2bc6a27b4e94643a337908dc4a59de2283a Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:52 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Handle multiple primary channel cases in vchan sysctls vchan_getparentchannel() is used by various vchan sysctl functions to fetch the first primary channel. However, this assumes that all devices have only one primary channel per direction. If a device does not meet this assumption, then the sysctl functions will be applying the configurations on the first primary channel only. Since we now have the "primary" channel sublist, we can retire vchan_getparentchannel() and iterate through the "primary" list in each sysctl function and apply the settings to all primary channels. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch Differential Revision: https://reviews.freebsd.org/D48336 (cherry picked from commit 1cbafcd13796934a7896064cdb23fd4e37d58821) --- sys/dev/sound/pcm/vchan.c | 227 ++++++++++++++++------------------------------ 1 file changed, 80 insertions(+), 147 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 379d647cbcf8..45f0a8b00bd2 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -253,48 +253,6 @@ static kobj_method_t vchan_methods[] = { }; CHANNEL_DECLARE(vchan); -static void -vchan_getparentchannel(struct snddev_info *d, - struct pcm_channel **wrch, struct pcm_channel **rdch) -{ - struct pcm_channel **ch, *wch, *rch, *c; - - KASSERT(d != NULL, ("%s(): NULL snddev_info", __func__)); - - PCM_BUSYASSERT(d); - PCM_UNLOCKASSERT(d); - - wch = NULL; - rch = NULL; - - CHN_FOREACH(c, d, channels.pcm) { - CHN_LOCK(c); - ch = (c->direction == PCMDIR_PLAY) ? &wch : &rch; - if (c->flags & CHN_F_VIRTUAL) { - /* Sanity check */ - if (*ch != NULL && *ch != c->parentchannel) { - CHN_UNLOCK(c); - *ch = NULL; - break; - } - } else { - /* No way!! */ - if (*ch != NULL) { - CHN_UNLOCK(c); - *ch = NULL; - break; - } - *ch = c; - } - CHN_UNLOCK(c); - } - - if (wrch != NULL) - *wrch = wch; - if (rdch != NULL) - *rdch = rch; -} - static int sysctl_dev_pcm_vchans(SYSCTL_HANDLER_ARGS) { @@ -391,19 +349,6 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) PCM_ACQUIRE(d); PCM_UNLOCK(d); - if (direction == PCMDIR_PLAY) - vchan_getparentchannel(d, &c, NULL); - else - vchan_getparentchannel(d, NULL, &c); - - if (c == NULL) { - PCM_RELEASE_QUICK(d); - return (EINVAL); - } - - KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", - __func__, direction, c->direction)); - if (*vchanmode & CHN_F_VCHAN_PASSTHROUGH) strlcpy(dtype, "passthrough", sizeof(dtype)); else if (*vchanmode & CHN_F_VCHAN_ADAPTIVE) @@ -412,26 +357,29 @@ sysctl_dev_pcm_vchanmode(SYSCTL_HANDLER_ARGS) strlcpy(dtype, "fixed", sizeof(dtype)); ret = sysctl_handle_string(oidp, dtype, sizeof(dtype), req); - if (ret == 0 && req->newptr != NULL) { - if (strcasecmp(dtype, "passthrough") == 0 || - strcmp(dtype, "1") == 0) - dflags = CHN_F_VCHAN_PASSTHROUGH; - else if (strcasecmp(dtype, "adaptive") == 0 || - strcmp(dtype, "2") == 0) - dflags = CHN_F_VCHAN_ADAPTIVE; - else if (strcasecmp(dtype, "fixed") == 0 || - strcmp(dtype, "0") == 0) - dflags = 0; - else { - PCM_RELEASE_QUICK(d); - return (EINVAL); - } + if (ret != 0 || req->newptr == NULL) { + PCM_RELEASE_QUICK(d); + return (ret); + } + + if (strcasecmp(dtype, "passthrough") == 0 || strcmp(dtype, "1") == 0) + dflags = CHN_F_VCHAN_PASSTHROUGH; + else if (strcasecmp(dtype, "adaptive") == 0 || strcmp(dtype, "2") == 0) + dflags = CHN_F_VCHAN_ADAPTIVE; + else if (strcasecmp(dtype, "fixed") == 0 || strcmp(dtype, "0") == 0) + dflags = 0; + else { + PCM_RELEASE_QUICK(d); + return (EINVAL); + } + + CHN_FOREACH(c, d, channels.pcm.primary) { CHN_LOCK(c); - if (dflags == (c->flags & CHN_F_VCHAN_DYNAMIC) || + if (c->direction != direction || + dflags == (c->flags & CHN_F_VCHAN_DYNAMIC) || (c->flags & CHN_F_PASSTHROUGH)) { CHN_UNLOCK(c); - PCM_RELEASE_QUICK(d); - return (0); + continue; } c->flags &= ~CHN_F_VCHAN_DYNAMIC; c->flags |= dflags; @@ -492,19 +440,6 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) PCM_ACQUIRE(d); PCM_UNLOCK(d); - if (direction == PCMDIR_PLAY) - vchan_getparentchannel(d, &c, NULL); - else - vchan_getparentchannel(d, NULL, &c); - - if (c == NULL) { - PCM_RELEASE_QUICK(d); - return (EINVAL); - } - - KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", - __func__, direction, c->direction)); - newspd = *vchanrate; ret = sysctl_handle_int(oidp, &newspd, 0, req); @@ -518,39 +453,45 @@ sysctl_dev_pcm_vchanrate(SYSCTL_HANDLER_ARGS) return (EINVAL); } - CHN_LOCK(c); - - if (newspd != c->speed && VCHAN_ACCESSIBLE(c)) { - if (CHN_STARTED(c)) { - chn_abort(c); - restart = 1; - } else - restart = 0; - - if (feeder_rate_round) { - caps = chn_getcaps(c); - RANGE(newspd, caps->minspeed, caps->maxspeed); - newspd = CHANNEL_SETSPEED(c->methods, - c->devinfo, newspd); + CHN_FOREACH(c, d, channels.pcm.primary) { + CHN_LOCK(c); + if (c->direction != direction) { + CHN_UNLOCK(c); + continue; } - ret = chn_reset(c, c->format, newspd); - if (ret == 0) { - if (restart != 0) { - CHN_FOREACH(ch, c, children.busy) { - CHN_LOCK(ch); - if (VCHAN_SYNC_REQUIRED(ch)) - vchan_sync(ch); - CHN_UNLOCK(ch); + if (newspd != c->speed && VCHAN_ACCESSIBLE(c)) { + if (CHN_STARTED(c)) { + chn_abort(c); + restart = 1; + } else + restart = 0; + + if (feeder_rate_round) { + caps = chn_getcaps(c); + RANGE(newspd, caps->minspeed, caps->maxspeed); + newspd = CHANNEL_SETSPEED(c->methods, + c->devinfo, newspd); + } + + ret = chn_reset(c, c->format, newspd); + if (ret == 0) { + if (restart != 0) { + CHN_FOREACH(ch, c, children.busy) { + CHN_LOCK(ch); + if (VCHAN_SYNC_REQUIRED(ch)) + vchan_sync(ch); + CHN_UNLOCK(ch); + } + c->flags |= CHN_F_DIRTY; + ret = chn_start(c, 1); } - c->flags |= CHN_F_DIRTY; - ret = chn_start(c, 1); } } - } - *vchanrate = c->speed; + *vchanrate = c->speed; - CHN_UNLOCK(c); + CHN_UNLOCK(c); + } PCM_RELEASE_QUICK(d); @@ -598,19 +539,6 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) PCM_ACQUIRE(d); PCM_UNLOCK(d); - if (direction == PCMDIR_PLAY) - vchan_getparentchannel(d, &c, NULL); - else - vchan_getparentchannel(d, NULL, &c); - - if (c == NULL) { - PCM_RELEASE_QUICK(d); - return (EINVAL); - } - - KASSERT(direction == c->direction, ("%s(): invalid direction %d/%d", - __func__, direction, c->direction)); - bzero(fmtstr, sizeof(fmtstr)); if (snd_afmt2str(*vchanformat, fmtstr, sizeof(fmtstr)) != *vchanformat) @@ -628,32 +556,37 @@ sysctl_dev_pcm_vchanformat(SYSCTL_HANDLER_ARGS) return (EINVAL); } - CHN_LOCK(c); - - if (newfmt != c->format && VCHAN_ACCESSIBLE(c)) { - if (CHN_STARTED(c)) { - chn_abort(c); - restart = 1; - } else - restart = 0; - - ret = chn_reset(c, newfmt, c->speed); - if (ret == 0) { - if (restart != 0) { - CHN_FOREACH(ch, c, children.busy) { - CHN_LOCK(ch); - if (VCHAN_SYNC_REQUIRED(ch)) - vchan_sync(ch); - CHN_UNLOCK(ch); + CHN_FOREACH(c, d, channels.pcm.primary) { + CHN_LOCK(c); + if (c->direction != direction) { + CHN_UNLOCK(c); + continue; + } + if (newfmt != c->format && VCHAN_ACCESSIBLE(c)) { + if (CHN_STARTED(c)) { + chn_abort(c); + restart = 1; + } else + restart = 0; + + ret = chn_reset(c, newfmt, c->speed); + if (ret == 0) { + if (restart != 0) { + CHN_FOREACH(ch, c, children.busy) { + CHN_LOCK(ch); + if (VCHAN_SYNC_REQUIRED(ch)) + vchan_sync(ch); + CHN_UNLOCK(ch); + } + c->flags |= CHN_F_DIRTY; + ret = chn_start(c, 1); } - c->flags |= CHN_F_DIRTY; - ret = chn_start(c, 1); } } - } - *vchanformat = c->format; + *vchanformat = c->format; - CHN_UNLOCK(c); + CHN_UNLOCK(c); + } PCM_RELEASE_QUICK(d); From nobody Tue Mar 4 15:47:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6J6HrNz5qGVs; Tue, 04 Mar 2025 15:47: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6H4L0Fz42DT; Tue, 04 Mar 2025 15:47:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103223; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D8/homlH4ngPnz2qBuZzzmVNkvvI3aLLNj7bnq9NZHA=; b=bKY01nVd9yPYUb9kcLuYtUxM4WekFU2zrE0Gf2S0APLMCS4W5ls75IObgp1fyzCrFSK2tD C88PV2pmlL7Akx20oxZ25f85RCRrTgQTCvLaSkCALXsTh81XmfFpQtGEkWSIAQL/ZfW1BJ 422T9s3TChFSZ+h8veocvnHY+zxAkAus2V497Yk+M8kJbftcMREKa4n+mlQP8NE0hvoX24 HunXLDN7vmBc10TVZae3vz5us02TFelUw1jMfRY8/8se8IhOApKg8R4h0BqdFi3l2xhFy1 8pTQaHg29AXsi71ubTL6oZeaF/oVUqBA5MLxodNKdvzS6XmNlH+MQ5xCsUmZUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103223; a=rsa-sha256; cv=none; b=FDUTzqc7aZ6oC/RKyqbRTtUv3QTYGxO9TbDtXUOPf8nOoKL41lVX8v0Qy2UAq3kyT7EwKc /G/QycKOxErusDY5hSw/dY5pk/SgYxoZMT73XLMMZ9C+veEQl2mxwfOxBqyxOg1+3CWsg1 nL1Qy88tj3KUiOut0FXj/0FVsdf3mckNPtKfcwqboaP5OsAoSnsQYb0geD4NipuSjAAzH6 S5I+zUYCtATCHeOdC1IjYkVUrN8I9SDoqhEYUdWz+OJvjD6m+ro5BM3W++oC3ZD4TEVsQy S4xe0Nt1VBk+H4uCV5c3PmeubX11Wy+1xNvQ1mmQoqCvk4K0/DrQX/GJV7nEVw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103223; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D8/homlH4ngPnz2qBuZzzmVNkvvI3aLLNj7bnq9NZHA=; b=KUdD53UK1vbfSP4pGjddLAEOk6MuCB8wnul4zFvzE0a6nxoZYDYPFz8nBU+taAHT5uY9kI DMo26flFRgYCHyu1dp9blet9r5PuQh+2KO/onR/Bix/q6Ra+OzVBFSekX1cPpiyE+fQqY6 yJdoW2Y9bRqI7ETvjNc2EK/UgNgtE7VOAou382nhCRSSNK2sfVeOdfqcIFTDQ/P1g5tD7N EWqKHgJL8hVNiS8VTrVFyY0AgPk2j5Fy8FRt4AhhkjNy+OqqlEDFjS6e2+y5wzwq4Pg3A0 aM4CJSz9pTAYQzLn/Sr4QQpqwJLiy9B7IWpzmohei/TO6BYo77bzC5SEROL1EA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6H3ZKxz8FZ; Tue, 04 Mar 2025 15:47:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl3gC050031; Tue, 4 Mar 2025 15:47:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl37i050028; Tue, 4 Mar 2025 15:47:03 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:03 GMT Message-Id: <202503041547.524Fl37i050028@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 9091f61d2f2c - stable/14 - sound: Get rid of redundant variables in chn_setspeed() and chn_setformat() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9091f61d2f2c947a29b4f7709232070e90f5cec2 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=9091f61d2f2c947a29b4f7709232070e90f5cec2 commit 9091f61d2f2c947a29b4f7709232070e90f5cec2 Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:05 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Get rid of redundant variables in chn_setspeed() and chn_setformat() Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch, emaste Differential Revision: https://reviews.freebsd.org/D48011 (cherry picked from commit 4e1b75bebf41b6e446d72c755fa420836341ade2) --- sys/dev/sound/pcm/channel.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 17c11dc33b7a..19b2db321cee 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -2104,21 +2104,20 @@ chn_setparam(struct pcm_channel *c, uint32_t format, uint32_t speed) int chn_setspeed(struct pcm_channel *c, uint32_t speed) { - uint32_t oldformat, oldspeed, format; + uint32_t oldformat, oldspeed; int ret; oldformat = c->format; oldspeed = c->speed; - format = oldformat; - ret = chn_setparam(c, format, speed); + ret = chn_setparam(c, c->format, speed); if (ret != 0) { if (snd_verbose > 3) device_printf(c->dev, "%s(): Setting speed %d failed, " "falling back to %d\n", __func__, speed, oldspeed); - chn_setparam(c, c->format, oldspeed); + chn_setparam(c, oldformat, oldspeed); } return (ret); @@ -2127,7 +2126,7 @@ chn_setspeed(struct pcm_channel *c, uint32_t speed) int chn_setformat(struct pcm_channel *c, uint32_t format) { - uint32_t oldformat, oldspeed, speed; + uint32_t oldformat, oldspeed; int ret; /* XXX force stereo */ @@ -2138,9 +2137,8 @@ chn_setformat(struct pcm_channel *c, uint32_t format) oldformat = c->format; oldspeed = c->speed; - speed = oldspeed; - ret = chn_setparam(c, format, speed); + ret = chn_setparam(c, format, c->speed); if (ret != 0) { if (snd_verbose > 3) device_printf(c->dev, From nobody Tue Mar 4 15:47:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6J2DJ6z5qGYL; Tue, 04 Mar 2025 15:47: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6G3PfRz42DJ; Tue, 04 Mar 2025 15:47:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103222; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h5bNEsK1YaQAeaL6WannOlQbomp66rNEMeGFz9WTCtM=; b=c4jW7BRCRzEnvb1FVNt3wTA+95dwiqkSuPd9uxmXJV0xnNzjEDYXE/uY32poTawXYn4y4Q 74rKc5fbs0LAEUQ3WGK88i8s0pqa4Y4c058OxITGKC4s7RHLMoAhuPDqaJ8NGMSi0nvDg2 fLu5JAnlBnTAa/ZsHrIakZmQHU4wWTZiYJe3s+cvYg0RcRPaJF33Jwu2HrjZkU1XdcYveG /vIejgQlEa4Nz1gWdYHzLy1Sh16eoxF84bxf8JZHAG4x1qsLv9yWBIPsjbQ6ibSS0sfTri sGJPN6WIsdbzUmRiFIZhghFDX6J6kVGh0ziTSloEzthGH9AIYKpe/mJdMKJrig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103222; a=rsa-sha256; cv=none; b=gx9oqIAobSkJ/cJCGgr+aZ/bs/TOX4B38jR9rJ4MWm4HzRO0l1nMG8KPjnA/xbbfnS97Rw SpNrzLhY07bVDJPZ/lvqaFTke3vMrrTjt9x/PLOQnm90vnWTP6PHrDzxyATFT0prrV7RON r9kDBPBlnD4fGdZt7jZmbX1MnBqKuoa7OZ1eAGTvFa8j3MCV8cxaqoBtbI2Qj8I2ZdOfT/ BJnLPYQykollmtC3hLW4DHqOrsCG+4d7iDwAVMfNaMNSxvhxnslmh5ZyMw8UcyBfr8Dpzp fKy5/5Ztp42ur7hrh6VjlFOxQeJ+Ns4s9mpS3SPR3u39v92A6Mmy8MiUTFE1PA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103222; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h5bNEsK1YaQAeaL6WannOlQbomp66rNEMeGFz9WTCtM=; b=upWvIkucv9baqXeodLjk1HmbrehYxkUDqa5eDTMrCkJzoKuKPKd0xVNP/padmxJkyDz4LU 9AqHTbbHqnd9U/uKMIG/uAOCd7a1UOSzd/J7jEscvNfyG41lc2IDUWRB/LdP+nvcYZ8SFv JoFcN4oR4zf9XwFLwwkURTCLvsAraa5ClSa7ozRDUIF798RBpQCfjr14lQZKKI+r7C/may eElx3xXgC3HL0bvYF+xYBPm5T8BfTx6C8RIP6a+e0JVxHKQI06HxRZi2tL5Es6LzwOB3P1 XF8OtrmVZeX4FcmQuAASrhQg/ab/+6YnDSHPCkfulX/lT0Lnt7PA47kueDBpfw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6G2xpFz8Z3; Tue, 04 Mar 2025 15:47:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl2Zq049996; Tue, 4 Mar 2025 15:47:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl27X049993; Tue, 4 Mar 2025 15:47:02 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:02 GMT Message-Id: <202503041547.524Fl27X049993@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 5dc0c867c8ca - stable/14 - sound: Remove SNDBUF_LOCKASSERT() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5dc0c867c8cae68cf867c82432ce013d83214cc6 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=5dc0c867c8cae68cf867c82432ce013d83214cc6 commit 5dc0c867c8cae68cf867c82432ce013d83214cc6 Author: Christos Margiolis AuthorDate: 2025-02-25 11:43:59 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Remove SNDBUF_LOCKASSERT() It's a no-op. There is no lock associated with the buffer. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch, markj Differential Revision: https://reviews.freebsd.org/D48008 (cherry picked from commit 6524d2a5affd02623e6909fff0ca03ba21882a0c) --- sys/dev/sound/pcm/buffer.c | 22 ---------------------- sys/dev/sound/pcm/buffer.h | 2 -- 2 files changed, 24 deletions(-) diff --git a/sys/dev/sound/pcm/buffer.c b/sys/dev/sound/pcm/buffer.c index 8bf3631afb7a..de535ec2dcba 100644 --- a/sys/dev/sound/pcm/buffer.c +++ b/sys/dev/sound/pcm/buffer.c @@ -461,39 +461,30 @@ sndbuf_getsel(struct snd_dbuf *b) unsigned int sndbuf_getxrun(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - return b->xrun; } void sndbuf_setxrun(struct snd_dbuf *b, unsigned int xrun) { - SNDBUF_LOCKASSERT(b); - b->xrun = xrun; } unsigned int sndbuf_gethwptr(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - return b->hp; } void sndbuf_sethwptr(struct snd_dbuf *b, unsigned int ptr) { - SNDBUF_LOCKASSERT(b); - b->hp = ptr; } unsigned int sndbuf_getready(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); KASSERT((b->rl >= 0) && (b->rl <= b->bufsize), ("%s: b->rl invalid %d", __func__, b->rl)); return b->rl; @@ -502,7 +493,6 @@ sndbuf_getready(struct snd_dbuf *b) unsigned int sndbuf_getreadyptr(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); KASSERT((b->rp >= 0) && (b->rp <= b->bufsize), ("%s: b->rp invalid %d", __func__, b->rp)); return b->rp; @@ -511,7 +501,6 @@ sndbuf_getreadyptr(struct snd_dbuf *b) unsigned int sndbuf_getfree(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); KASSERT((b->rl >= 0) && (b->rl <= b->bufsize), ("%s: b->rl invalid %d", __func__, b->rl)); return b->bufsize - b->rl; @@ -520,7 +509,6 @@ sndbuf_getfree(struct snd_dbuf *b) unsigned int sndbuf_getfreeptr(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); KASSERT((b->rp >= 0) && (b->rp <= b->bufsize), ("%s: b->rp invalid %d", __func__, b->rp)); KASSERT((b->rl >= 0) && (b->rl <= b->bufsize), ("%s: b->rl invalid %d", __func__, b->rl)); @@ -530,40 +518,30 @@ sndbuf_getfreeptr(struct snd_dbuf *b) u_int64_t sndbuf_getblocks(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - return b->total / b->blksz; } u_int64_t sndbuf_getprevblocks(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - return b->prev_total / b->blksz; } u_int64_t sndbuf_gettotal(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - return b->total; } u_int64_t sndbuf_getprevtotal(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - return b->prev_total; } void sndbuf_updateprevtotal(struct snd_dbuf *b) { - SNDBUF_LOCKASSERT(b); - b->prev_total = b->total; } diff --git a/sys/dev/sound/pcm/buffer.h b/sys/dev/sound/pcm/buffer.h index 2c5d6e7c214b..ddf4083ec19f 100644 --- a/sys/dev/sound/pcm/buffer.h +++ b/sys/dev/sound/pcm/buffer.h @@ -26,8 +26,6 @@ * SUCH DAMAGE. */ -#define SNDBUF_LOCKASSERT(b) - #define SNDBUF_F_MANAGED 0x00000008 #define SNDBUF_NAMELEN 48 From nobody Tue Mar 4 15:47:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6L2nlyz5qGkf; Tue, 04 Mar 2025 15:47: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6J4cTrz42TJ; Tue, 04 Mar 2025 15:47:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kobJJfs8it/M/PRCXY36fcRhYlPFIXSai65KcIXp5VM=; b=JYzAthRtFSQJygiHgHUJWY7lXnXmS+6HM+rA56Eov5PSpwtyU3Ww93Db8LSzyDCdkQ63eY 3vJHWOhTy10BUaQnGUPfOJMnwfUw2GIqfcy+uVjMSZoFh7kqQ0nWt3HLq3Y+TY+bfRnm8c p0IY39cp2nsUE6TsT+Lp9zGUzH4U4zbeCE7UM3ysOyVbPaVamQlNHCviDXePjh5D7g1lAK w/8D2QSUPqgdS10eY8b/wAPgkC/AGnaURKWFgNmHTpYrbPAND6dsgAo0JkTE90Mn3aC26b zQ+MsYDwdq6YJ3GMOgp4q9AccswHzyy8Rg3Z6C5HaP04WKD26EjKFvnXg7C0Zg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103224; a=rsa-sha256; cv=none; b=jIpDv9Ll0v+nJCxdD+CJ7sXDnyfwvSpfwywlBldOmLTwh1DCRyBtTzAdJ60FTRrBA8qIz5 Z0BhP5jbcetwsa2ADwuicpQuPkZXmt1Sl2wYykKKVjK0C+p9fZ0gPESfvfVHy5UWIDPszO 6ZZ+mbukNfRO/fhHLN0cTEwGAjNNgogk5A9f0pFgh5ruT7xMyJ3czT/+3YsQmT0PW5mviD cHKtXwwe7HRYKbQW8m4kV+oQ6fIKKEIPfQzSd5zuV6rOjA2Wk2sUw+lhI75+8FaqnQHllc YLmHn1yDBz049prhxxOTsaXd9FcVbnzCDvhHKgkzyvoseZuOYH3HXuz2UTZ8aQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kobJJfs8it/M/PRCXY36fcRhYlPFIXSai65KcIXp5VM=; b=Lj+wgzyMUr8p+NICedOBpiC2PJjYj9+JcP4EWuNJvCoc5JWzJbQ3rCAF1IalznYQnJgoGh GsCMUSeAFU5/OvEltOY/vr1Wn3YZYHOrQ3aqn6n+MYTaAwzzn3sKT5kXmHsYjPnlxxfmMe 6uYU+0zOgz0SoAjYGcDFYAhteMFjRHuJTqhJ2NoD/MWl+iYSbqE54m6VujyWcHlxCJIQXc kFAaZYK7gEZch+61AhReW/heiKk9b/4bRD1SbZehzbYeUJDfhJCU73KBrfci5G3wYTKCIN ShNhgkoyi59nL6woLjDyPESy0DGEzG3RMwMMLV/2q9BO/6K1t8rBzdVOoA6DMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6J42Pnz8Fb; Tue, 04 Mar 2025 15:47:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl4Jn050070; Tue, 4 Mar 2025 15:47:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl4QW050067; Tue, 4 Mar 2025 15:47:04 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:04 GMT Message-Id: <202503041547.524Fl4QW050067@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 21e0d2aa35bf - stable/14 - sound: Return if the new speed/format is the same as the current one List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 21e0d2aa35bf41951f1835eac0dd58be257cbc17 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=21e0d2aa35bf41951f1835eac0dd58be257cbc17 commit 21e0d2aa35bf41951f1835eac0dd58be257cbc17 Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:12 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Return if the new speed/format is the same as the current one This gives us a slight performance boost since we do not have to go through chn_setparam() and the driver functions. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch, emaste Differential Revision: https://reviews.freebsd.org/D48012 (cherry picked from commit 40616b7e41ff96b6d7522445b00f27f26d593a85) --- sys/dev/sound/pcm/channel.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index 19b2db321cee..c3ee50d51c4b 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -2110,6 +2110,9 @@ chn_setspeed(struct pcm_channel *c, uint32_t speed) oldformat = c->format; oldspeed = c->speed; + if (c->speed == speed) + return (0); + ret = chn_setparam(c, c->format, speed); if (ret != 0) { if (snd_verbose > 3) @@ -2138,6 +2141,9 @@ chn_setformat(struct pcm_channel *c, uint32_t format) oldformat = c->format; oldspeed = c->speed; + if (c->format == format) + return (0); + ret = chn_setparam(c, format, c->speed); if (ret != 0) { if (snd_verbose > 3) From nobody Tue Mar 4 15:47:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6P2LHnz5qGh9; Tue, 04 Mar 2025 15:47:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6N09tqz42cy; Tue, 04 Mar 2025 15:47:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GCKTucyDM7QJTG+rPa0kLCMc+E4B7rBaoczZaOQK9Xk=; b=tdfcHv+LozoRXqhI5K5HaNf6Awrl1yy1KJ9NpdTpiZSFK8nELrhQhW4m+4n1NEbkT9vhN3 bzLy4LkUyPbmiSpZZ8R8r6hD1wcR6i5zSL2ouFFdbpFh8ZhEj8h9OPEgMdpQb70HJJ5h2I 8mEQkx4S+QWtZfzIUXPoFf7qRtKApnXdh6u4yI9aFkBCvngXZ4YRyWuXHkXDrw9+IVfMNt d40+vP+auytikKpXJvBHMAfW3/kIPHl0joA1jrl1cDJUhGNzqmbTO3DLD8QJRpa/7HkZsZ RUrT1ENHmeQJbDWOhhsYd+IQ3PiIZ+lTaTECOTudscQb9D2ocshK4PzJXrN+6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103228; a=rsa-sha256; cv=none; b=epJZbbnXS+ES/0lIETY0jMixARfzqeatlqQHimSa3lgMLVdYEA3scPZNPxNo0c50hS+/Y+ WkjppCf6PoS7VD/zKanLT8Nl++w6BOO0gT8PemwUsCG3Dt8aACQOQovQqALpBhYYk/vHBY O/v5YtZ18l4vxFATRvG42HwS3TppuIqFDVZAU4YfQjh0SLgUGrwqul1ZNqR3RoXybREpCq /A83V7f6j187KOY4nZ2q5O0TJ2pP7A+X/zY1x/1g5YK2ua04UlwwZedsw/Kcv62LsfVpsW Tr9WN/H7z/rheojFgTzNiww4ChugTq2fo+hmTZ/PU81RkG53h7Hhvem7n4Cm6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GCKTucyDM7QJTG+rPa0kLCMc+E4B7rBaoczZaOQK9Xk=; b=UHdKAWJ6DOOqiG2rZeiBvJuzh5g9rrw7+w3o0DerTISulLHYaNI7vdwD14tQ2/10GnvdGJ iKJjW38A8Z2bPP6RMrKktrbtJYBaNVLe5kAAcyR/rV1X+4OGplDJJHGn3fyT3rre+q6rH9 NmON21RGDiteAj1AQRvPa/LhdC4xa3G1ilrtzwS8EPP4JfYmyhagutF5tKMWsyGaU4uoBG D9GaDcj0fx8SuF8umYGOhyC2PzvW3v9O1AGkwWzmyOFgE2sWpm2Lwy0wXegnWa2snZYtwz NK7GZzcFzbGvSW4p6qKHBOGhJW1lUjreLhqHUbSTwDkdqYbCLbTgvQW5EPoGKQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6M6qdjz8H7; Tue, 04 Mar 2025 15:47:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl7s9050169; Tue, 4 Mar 2025 15:47:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl7qZ050166; Tue, 4 Mar 2025 15:47:07 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:07 GMT Message-Id: <202503041547.524Fl7qZ050166@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 127a39c54c2b - stable/14 - sound: Update comment and channel insertion in vchan_create() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 127a39c54c2bb56189bd44353d54e34c8ff220bd Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=127a39c54c2bb56189bd44353d54e34c8ff220bd commit 127a39c54c2bb56189bd44353d54e34c8ff220bd Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:30 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Update comment and channel insertion in vchan_create() The comment and rationale behind choosing CHN_INSERT_SORT_DESCEND() instead of CHN_INSERT_SORT_ASCEND() are no longer relevant as of FILLME ("sound: Allocate vchans on-demand"). Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D48962 (cherry picked from commit 2868776c9c6f5313a5676786f642b766f103d780) --- sys/dev/sound/pcm/vchan.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sys/dev/sound/pcm/vchan.c b/sys/dev/sound/pcm/vchan.c index 45f0a8b00bd2..27739fe68852 100644 --- a/sys/dev/sound/pcm/vchan.c +++ b/sys/dev/sound/pcm/vchan.c @@ -644,12 +644,7 @@ vchan_create(struct pcm_channel *parent, struct pcm_channel **child) PCM_UNLOCK(d); CHN_LOCK(parent); - /* - * Add us to our parent channel's children in reverse order - * so future destruction will pick the last (biggest number) - * channel. - */ - CHN_INSERT_SORT_DESCEND(parent, ch, children); + CHN_INSERT_SORT_ASCEND(parent, ch, children); *child = ch; From nobody Tue Mar 4 15:47:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6N2BVQz5qGdn; Tue, 04 Mar 2025 15:47:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6L6VXzz42Wj; Tue, 04 Mar 2025 15:47:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ISU8kJjHONdAaRvxW7gC8BZrcymf7F/c8W70ElsRbl0=; b=lRa3ov39FfXCQN/Askf743KUH3b5bdw+p+aIXA7dvx4UhtdcBbtfKwj3k41FirTcyGZKPr Iw4ywUfdU6mcsElpDxbZSLkHBinWtqWUEskIFLNTRK7BUdhN60HJoRtXvlBmuD9uxFs3No MT9oDUD536TZubJbvZRO2szY1zrmUdd14YUjRtZVtVuqrBd80UHI4u/MzphfwOBzrm3R9J 7rvboFAGSeb0y2oPFXcQe3lj/hky5x/kfaE3XFmhQ/qRYCfMFyTXVCfO1P3ky+IVQoHD1Y U1j2AYB70jppHprPMdecXSUhKsVkZPLQVyENaB275o2dNt1tvQs0ctkB2xtGfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103226; a=rsa-sha256; cv=none; b=I900xBpZVbeCjm3BJWxwaTMsVCUhjVhjM5CuqG3h5yw+uIyYfJUxiube0QQcgmSdZyNKcy DyNhnrm3pXucTB6Sugv9TCrvA2gA0lPNf25FqqcOpWU9UKwhMIBLc8TxJJnqUfN6iOPBJl vch/gy+RI/5WOuEKarOLS4DMcAtZRFlh9KvJMsgY/jjSFp3kfSW98X+Ja5iZ8Y7yhiBRmZ 7xAuXYD79kq2emW4IUEh/N4u76Asl1HnmUHJ7Acnwc7rzbMGdB60kSwhg0lvRx1U17SNek gkXygTsKBRAvYqawarhLqZgG/zK8r5+rnzODAztvGuVQSxaP2V1/Xdzg0C952A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ISU8kJjHONdAaRvxW7gC8BZrcymf7F/c8W70ElsRbl0=; b=I0Rt2xewoBXm0knrUNRRR11jz2KUKJTX4p4b5jqvhLpWaBgQqQrtuVYxocMDXiTfsWGZvc 39Gxdxt4HKHkUT8dkY+vlG41qF623Liw6WHsAq2OQ4/KpqA8Csu/GY7eD0fB+AslVRgirc ewVXabp8EOaBZlIYEIi8Jy9CU/N0QnTQAVK105H6G8xq2zALxpxpu+xBjRPjzE1o56VSrd X29HxTLjFpMys/gqTVLYYp4Icq5+o5/t0oumC3yyUqqx9Hoo70B7P0n+bw1QlDa4RcXYRi ndqtE2wNSNw9AcIuMus61PUNnGTNazqnTgJkyZednqapuPfCHQlfLSQEN+hcsQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6L65Rpz7xW; Tue, 04 Mar 2025 15:47:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl6nZ050136; Tue, 4 Mar 2025 15:47:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl69o050133; Tue, 4 Mar 2025 15:47:06 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:06 GMT Message-Id: <202503041547.524Fl69o050133@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: cd4615c223b3 - stable/14 - sound: Simplify locking during device creation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cd4615c223b3f4ef1c892b682f57c83eebafde1c Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=cd4615c223b3f4ef1c892b682f57c83eebafde1c commit cd4615c223b3f4ef1c892b682f57c83eebafde1c Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:24 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Simplify locking during device creation The mechanism of acquiring SD_F_BUSY in pcm_init() and releasing it in pcm_register() is a leftover from the previous device creation scheme, where pcm_init() (previously pcm_register()) would create the sysctl nodes, as well as the device node. In this scenario, acquiring SD_F_BUSY was necessary, in order to avoid races in case the device was accessed before it was ready for use. Commit 66f3eb14e955 ("sound: Move sysctl and /dev/dspX creation to pcm_setstatus()") fixed this issue, so we can simplify things now. Only acquire SD_F_BUSY in pcm_addchan(), because chn_init() expects to be called with SD_F_BUSY acquired. While here, move the sndstat_register() call further down to be more robust. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D48482 (cherry picked from commit fd906e47b18f53b09524647bf8431dc6170b8dfd) --- sys/dev/sound/pcm/sound.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index 391c8e61dc19..9459b207bba0 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -136,9 +136,9 @@ pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo) struct snddev_info *d = device_get_softc(dev); struct pcm_channel *ch; - PCM_BUSYASSERT(d); - PCM_LOCK(d); + PCM_WAIT(d); + PCM_ACQUIRE(d); ch = chn_init(d, NULL, cls, dir, devinfo); if (!ch) { device_printf(d->dev, "chn_init(%s, %d, %p) failed\n", @@ -146,6 +146,7 @@ pcm_addchan(device_t dev, int dir, kobj_class_t cls, void *devinfo) PCM_UNLOCK(d); return (ENODEV); } + PCM_RELEASE(d); PCM_UNLOCK(d); return (0); @@ -239,8 +240,6 @@ pcm_setstatus(device_t dev, char *str) if (d->flags & SD_F_REGISTERED) return (EINVAL); - PCM_BUSYASSERT(d); - if (d->playcount == 0 || d->reccount == 0) d->flags |= SD_F_SIMPLEX; @@ -253,17 +252,10 @@ pcm_setstatus(device_t dev, char *str) d->flags |= SD_F_RVCHANS; strlcpy(d->status, str, SND_STATUSLEN); - sndstat_register(dev, d->status); - - PCM_LOCK(d); /* Done, we're ready.. */ d->flags |= SD_F_REGISTERED; - PCM_RELEASE(d); - - PCM_UNLOCK(d); - /* * Create all sysctls once SD_F_REGISTERED is set else * tunable sysctls won't work: @@ -277,6 +269,8 @@ pcm_setstatus(device_t dev, char *str) else if (snd_unit_auto == 1) snd_unit = pcm_best_unit(snd_unit); + sndstat_register(dev, d->status); + return (dsp_make_dev(dev)); } @@ -435,7 +429,6 @@ pcm_register(device_t dev, void *devinfo, int numplay __unused, d->dev = dev; d->lock = snd_mtxcreate(device_get_nameunit(dev), "sound cdev"); cv_init(&d->cv, device_get_nameunit(dev)); - PCM_ACQUIRE_QUICK(d); i = 0; if (resource_int_value(device_get_name(dev), device_get_unit(dev), From nobody Tue Mar 4 15:47:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6P3KRCz5qGdq; Tue, 04 Mar 2025 15:47:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6P1G4Vz42d7; Tue, 04 Mar 2025 15:47:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103229; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XRc33ompDDMEkqZRDzeQ6Wn8/t4qNUI5kzib74H0dUI=; b=GCP9b1Ic2ib1JEPcFBnTMhCU/cd6t7iVyaqlPJdkRQACredeHD2U6eO975rorZjoFs2I2Y saG2z+rZxGGmKQrveDbqdaomvh2/rJ0e/Hgagvz9KQrL0gsuOsttgveiny2875ayTOdwME kEJppErTpE/pAMUyUmmnajRgDFkztjVkDN52ae9j624ftUU1273dpKSOhdSWSZxzjsElfV 7ub9T61TpTxjjI5jZziJIHOWwus43Eu1NlhIDBqLpwJ1sOPPUxLk7FvgS5d6s7ERuApza3 jgPrVXhyEQYoxAbrlJdCtD7TWCMxxU6LBv/T+VdL/lrvEY+auoxGoV69iFgrdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103229; a=rsa-sha256; cv=none; b=wm80+s6Zq7ktQUjCWeurmh5nUywDfB8NY5Q9h4hujSdb6fIrNpheStzNkkxXQbYA2BUiTS SNjS5vp9KIln58LdeZ5nZT1nHDDAM3aSPmoc8zepKLq92XeXtJnyy6mx9dSR6KAt/HX83W KJyWYX3JZK9KFgy+Ky+zRuMaskdqw2pKmHE+BLvsXi08ZQSaYaD8DL/1/GTrpSWJkpjckR VEKFp6Lk4OUdQZzJ2CoH28Bo168A06cLLDNov1ir5zTGOASpm99jwQoq9EUI70lmGgRvEg nhLmvwkzu2p2GrcvuOy+NKQpMfv0I6MOFGubofAE86hz5qr/GXAf/fWHI+TLQw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103229; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XRc33ompDDMEkqZRDzeQ6Wn8/t4qNUI5kzib74H0dUI=; b=hiK6+2cM5cpC7ICskYFeIgrwXw9dvWklUm9to802UvZ5HmKW5fqLR5Un1DuBBQ07HDE+4Y E+bVB0X4Parc0mDKQMk9rwttTKl0h7hLi0EJEeJEPOxzoPs5/EX6jBiZB5UFNkjDzVIcb9 +TNCpH6PiyxYyYItq4vnjqA1H3XzDZxZC8Hxnw/9/ac+vnc2HIPKstQwzLm36zUlFXIxpX GiyFlmBsFrB/UnniOjb3dk1q+BbXJv907j3fPUPQwg7RiarpAvH7D9v6xcKK/SFyEGsits K0WOapH63ElX3dwqHjfcmWo6dRoUgOmGqEZNpmU+EfTSTSRHjPlm0cAxZ5/8oA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6P0bvXz8XK; Tue, 04 Mar 2025 15:47:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl94g050201; Tue, 4 Mar 2025 15:47:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl9mR050198; Tue, 4 Mar 2025 15:47:09 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:09 GMT Message-Id: <202503041547.524Fl9mR050198@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 858504a1d89f - stable/14 - sound: Call chn_kill() in chn_init() failure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 858504a1d89f3e1cb89f6126b3b59e80716fb3df Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=858504a1d89f3e1cb89f6126b3b59e80716fb3df commit 858504a1d89f3e1cb89f6126b3b59e80716fb3df Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:37 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 sound: Call chn_kill() in chn_init() failure Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D48966 (cherry picked from commit bc7e65e950154572d8c9a04dc033075bf37aae40) --- sys/dev/sound/pcm/channel.c | 50 ++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 35 deletions(-) diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c index c3ee50d51c4b..0a0059411399 100644 --- a/sys/dev/sound/pcm/channel.c +++ b/sys/dev/sound/pcm/channel.c @@ -1179,11 +1179,19 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, switch (dir) { case PCMDIR_PLAY: + d->playcount++; + /* FALLTHROUGH */ case PCMDIR_PLAY_VIRTUAL: + if (dir == PCMDIR_PLAY_VIRTUAL) + d->pvchancount++; direction = PCMDIR_PLAY; break; case PCMDIR_REC: + d->reccount++; + /* FALLTHROUGH */ case PCMDIR_REC_VIRTUAL: + if (dir == PCMDIR_REC_VIRTUAL) + d->rvchancount++; direction = PCMDIR_REC; break; default: @@ -1292,40 +1300,10 @@ chn_init(struct snddev_info *d, struct pcm_channel *parent, kobj_class_t cls, if ((c->flags & CHN_F_VIRTUAL) == 0) CHN_INSERT_SORT_ASCEND(d, c, channels.pcm.primary); - switch (c->type) { - case PCMDIR_PLAY: - d->playcount++; - break; - case PCMDIR_PLAY_VIRTUAL: - d->pvchancount++; - break; - case PCMDIR_REC: - d->reccount++; - break; - case PCMDIR_REC_VIRTUAL: - d->rvchancount++; - break; - default: - __assert_unreachable(); - } - return (c); fail: - free_unr(chn_getunr(d, c->type), c->unit); - feeder_remove(c); - if (c->devinfo && CHANNEL_FREE(c->methods, c->devinfo)) - sndbuf_free(b); - if (bs) - sndbuf_destroy(bs); - if (b) - sndbuf_destroy(b); - CHN_LOCK(c); - chn_lockdestroy(c); - - kobj_delete(c->methods, M_DEVBUF); - free(c, M_DEVBUF); - + chn_kill(c); PCM_LOCK(d); return (NULL); @@ -1368,12 +1346,14 @@ chn_kill(struct pcm_channel *c) chn_trigger(c, PCMTRIG_ABORT); CHN_UNLOCK(c); } - free_unr(chn_getunr(c->parentsnddev, c->type), c->unit); + free_unr(chn_getunr(d, c->type), c->unit); feeder_remove(c); - if (CHANNEL_FREE(c->methods, c->devinfo)) + if (c->devinfo && CHANNEL_FREE(c->methods, c->devinfo)) sndbuf_free(b); - sndbuf_destroy(bs); - sndbuf_destroy(b); + if (bs) + sndbuf_destroy(bs); + if (b) + sndbuf_destroy(b); CHN_LOCK(c); c->flags |= CHN_F_DEAD; chn_lockdestroy(c); From nobody Tue Mar 4 15:47:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6M246Hz5qGdm; Tue, 04 Mar 2025 15:47:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6K5cHxz429s; Tue, 04 Mar 2025 15:47:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103225; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GbVAZAlLFO8BpVn8KpraqpCktVoWd3NlEgDJ7B6pHw4=; b=EcjzXcO1uL2mWEN+0OyjQ93QmhMGd6F1GGDRItn9C6eGyTHjaFZgNx8V70s3s2of2z3TD0 gwstHNNFXmbljt89EXPKAQbJf3MNjcUzJWUFqZXOCbdKtMW/srxwp/QpW7vukpQtgKPfVh zmbxTM/rdWzxFFjCDLGqQU1KNL5O9ODOJfqU6/d35V5kiFw/98N/BajsKmMZoj1toZGCG0 8g/rn05CHnkDlYTxU8nHGF+iERLONmEf2zCP7xA9DpWFihlK67MWZmWcoVifSd0i3ui/Gd G6o69TQrnNqQQ4YDxfJgPWHoYqwj9Y08BiipcZN6fAMWuuEwz0bFvqgqBCdycQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103225; a=rsa-sha256; cv=none; b=FWDhayhgI2I/JwyAg66tyB7fmE3AEbQ9/223+skegWw/6Cp6UjJB/yPEunZScIupv6YoYY bhGQNpkGPYP7VT8qBpcuELsUrJcvx4ixxLD5j26B4CswcaHuxJWU4ecp0njW+///jPLUvD B2WIdyNjI9rg8o0PEF1MaNutfFj4rn5xAA7a/cbRZjZHwWHwuLZuU+BYBSXngJBJuCl50x ojhROvahCeeGkBdsu7XZ4buHmIsdjkTO6t1eVFFpY+wkrrNyuSCGe2dogh5XBc6etYm0xh 5J3fyXTdAX+KW+3XJz69qwov6hnKWo0gMKeuSKI23Xy31tvl+Q0jYqbvzvGXHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103225; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GbVAZAlLFO8BpVn8KpraqpCktVoWd3NlEgDJ7B6pHw4=; b=WCN1kZaDQju9zOA3HTHEvCiu4S8lD/eJa5v2/3BbNYnsCkrj/wXdoVB2gUgpfFdR4n4Slz bvDETiR+6mAiClDFt7inalkGCYw4iAnWiDd4Pk9Ti6GcJxUpCCh0EL6xG14jPUABdpwsoI aIRKaLqWguBaCIZYERRz0HtnAsKZaSjuUoOphTezX16OK8pmjrjBUPnOi10vZbZVnROBgI 6eO4w/Zw/OmLsNZMmdRfMHn6zEdOwZUmcw0UbknFHYe+Gm/erSWAHchTTGbeqcD1zkFnWz Q4r8KZZW4lpyxNnIUhZhUWbxBrg99JcY7KqdLvhjo2y6LUSc71JlJvPPWTY18Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6K563Pz8XJ; Tue, 04 Mar 2025 15:47:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Fl5kI050103; Tue, 4 Mar 2025 15:47:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524Fl5ms050100; Tue, 4 Mar 2025 15:47:05 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:05 GMT Message-Id: <202503041547.524Fl5ms050100@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: bd9a9c001951 - stable/14 - snd_uaudio: Remove undefined functions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bd9a9c0019517bb1433172e59c9df3c0cb171eb8 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=bd9a9c0019517bb1433172e59c9df3c0cb171eb8 commit bd9a9c0019517bb1433172e59c9df3c0cb171eb8 Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:18 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:06 +0000 snd_uaudio: Remove undefined functions Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: dev_submerge.ch, markj, emaste Differential Revision: https://reviews.freebsd.org/D48424 (cherry picked from commit 352aa9ad1d77a8ea8e4afef66691dc1a06344618) --- sys/dev/sound/usb/uaudio.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sys/dev/sound/usb/uaudio.h b/sys/dev/sound/usb/uaudio.h index 08144701efe5..54b31a4e7bd2 100644 --- a/sys/dev/sound/usb/uaudio.h +++ b/sys/dev/sound/usb/uaudio.h @@ -64,8 +64,4 @@ extern void uaudio_mixer_set(struct uaudio_softc *, struct snd_mixer *, extern uint32_t uaudio_mixer_setrecsrc(struct uaudio_softc *, struct snd_mixer *, uint32_t src); -int uaudio_get_vendor(device_t dev); -int uaudio_get_product(device_t dev); -int uaudio_get_release(device_t dev); - #endif /* _UAUDIO_H_ */ From nobody Tue Mar 4 15:47:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6Q6krbz5qGYY; Tue, 04 Mar 2025 15:47: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6Q2Hyfz42S4; Tue, 04 Mar 2025 15:47:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103230; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7wNhIVMmZ+ynnN1WKBhdqS0vTa/EqOodmeVHX9uZuHw=; b=k3BjX2X3CzKFjcZ9rik+bF7eYcacDiJpOnkxkAKvg6EJUkvNudXJGzQM/I/CtT29NmZ/UB nLkKHX4T5jRNjHW6UUIHIysOpE+8axAg2JQJ33Gl+lyiX+t+j1Nrk0g3KbRvVJbH1XuYO4 TVVDCyy+iV1H0NBu8B2f5+T7YppSgmz87FbBSTmzqUr6VRPHNbFS8P0rSNAS8ofdxMIT4x qMDvY8Ddh9GnyXJp2Z7xCw4tcnGGA59gViwqlhu0l2kawjKoZDIrcX5ARdNKXlTVryA7th 9F56Ts+GJ/p5K9kAhP976L1j1/87+PBCWrcXtcUoi5OrljGdPEMLeMxaBbTvQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103230; a=rsa-sha256; cv=none; b=hgVefaM5ZaWgs61yCLDbwTdOcDH0FhdS3McU+fd+KNC7OlGuQ9/jhop1NfbAHxnzE99EKl dZFhmg0eMRsVYSlbS4cJoiIgE+7E8vDp1O9jC8UJmne/YdLURJSlUSt93EJZ1EoIykOQck /OCIq38kBtY9DPAAt7O11kzkbLcbCZX8P81IDKGva8DiFT0MpVHKLXNYRWuGSa4Bn0UitT xHtMX/XLg+mJP9dnHxMew/A4Jm3YB2AN4HE48M/zQoVpbZBzubaGXdYISsrEIH7VqP5nS7 ZuAc8EGktd4MGEoWwncQkVfoVauiRHcuyYGnDpE5XC3i1WBk9r2NUJ0tRUwQdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103230; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7wNhIVMmZ+ynnN1WKBhdqS0vTa/EqOodmeVHX9uZuHw=; b=x9AtM9b98+vSNcU92hb07L1kOKN+r/8AVsrZNWPuDOpeTA4raY2ZNHFqvV03RYT7ecHL5R 7K0SwKNWf+2IXbKjcu1hT8OKQ1ZYuP4OACnfciM1mkxsLQs3O8OsGsqgDpkJbPeAonJ91u qMARzwSmipreF/ZywCrF3mjjF90fH+4Jo0AmVdO2rEL66ndp5zON2pSedIQYHRknf6XKuR Lyx6GWb6g6sudp20YMH+09j4xinLw8OnAiXXicOi5oj1TVYfepXzB4b6oCyT6MkpGZ7DEj f4/fGeW5Hb4BAqtR1kLHAvbruxQeNvBUt8Av6xKbe8evR9sOsuuitoRpvd09xA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6Q1syxz8H8; Tue, 04 Mar 2025 15:47:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FlAdf050238; Tue, 4 Mar 2025 15:47:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524FlADP050235; Tue, 4 Mar 2025 15:47:10 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:10 GMT Message-Id: <202503041547.524FlADP050235@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 0a309ec1b802 - stable/14 - snd_uaudio.4: Move non-uaudio-specific BUGS paragraph to pcm.4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0a309ec1b80251afd69923a0a8e9692094533e05 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=0a309ec1b80251afd69923a0a8e9692094533e05 commit 0a309ec1b80251afd69923a0a8e9692094533e05 Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:43 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:07 +0000 snd_uaudio.4: Move non-uaudio-specific BUGS paragraph to pcm.4 Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49019 (cherry picked from commit cfdee707fb18a0fde4bed4e85414f8803461249d) --- share/man/man4/pcm.4 | 9 ++++++++- share/man/man4/snd_uaudio.4 | 9 +-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/share/man/man4/pcm.4 b/share/man/man4/pcm.4 index ecaf732aad25..181dbf0aade9 100644 --- a/share/man/man4/pcm.4 +++ b/share/man/man4/pcm.4 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 4, 2024 +.Dd February 15, 2025 .Dt SOUND 4 .Os .Sh NAME @@ -670,3 +670,10 @@ It was then rewritten for .Sh BUGS Some features of your sound card (e.g., global volume control) might not be supported on all devices. +.Pp +Some audio devices might refuse to work properly unless the sample rate is +configured the same for both recording and playback, even if only simplex is +used. +See the +.Va dev.pcm.%d.[play|rec].vchanrate +sysctls. diff --git a/share/man/man4/snd_uaudio.4 b/share/man/man4/snd_uaudio.4 index 6e2509b8f2ac..00329a6d8e40 100644 --- a/share/man/man4/snd_uaudio.4 +++ b/share/man/man4/snd_uaudio.4 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd March 26, 2024 +.Dd February 15, 2025 .Dt SND_UAUDIO 4 .Os .Sh NAME @@ -156,13 +156,6 @@ and modified for by .An Hiten Pandya Aq Mt hmp@FreeBSD.org . .Sh BUGS -Some USB audio devices might refuse to work properly unless the sample -rate is configured the same for both recording and playback, even if -only simplex is used. -See the -.Va dev.pcm.%d.[play|rec].vchanrate -sysctls. -.Pp The PCM framework in .Fx currently does not support the full set of USB audio mixer controls. From nobody Tue Mar 4 15:47:11 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6S1Lh3z5qGYc; Tue, 04 Mar 2025 15:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6R3pS7z42h2; Tue, 04 Mar 2025 15:47:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103231; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=21PZLXJGtbmNmpN5RfEbMOyX0sA37zEswmd8V+MF4kg=; b=BGpMZEwSConnL6z4VzOpD08/FmdfdcxxGW27Yw0LimPoiuOKrDstkoKyoOPtmqcP2TupC1 VOZ3tvJImJZUac8bSr88dp/8XMbUP3Xk6UpDJWtfmxh5yEZoOXe6afogIAgyX/N34Rvqir K8YBS0Kg3mcJCgFl9pzRHoOX/dyuixiHmOOtzx9hPEVv5KBRGu5axgSR/kJ9N+44r65kv3 uhIsN7UMix3SsbrrNbMCcSGqohWaJ3tSWin27s0Oq9XxKhIITC/Fy1eL3pAob1CdA4bVr3 d6iXqwA64Vbd9SiDCcO5CmunOmW/gyZdSqsEewHNDi753LvcAPv5MiGaMh51gw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103231; a=rsa-sha256; cv=none; b=yH/IB/mDVR/9WDAIzF/WFY2yi4IUCAJ7lAs5WX/gvb+TBjpn5DxtEGO2ecrL+NjXGwC8aG EHPaqPukDedmnYxJKzONzZ5DS1qgO2MIRLxUHbyTC+JNvSxdI4hFiQYjyS+aD0zIV6FaXg w2BljrQiT48TjqKV+Bq33Csc/fEnL24MOvWoyYpgAM89Urm75AioyDDecMlh7nB0KJpfP1 4D2y0LRxxhfeHYgWvEvg+o5J59QZPlmkJdEfahYZG/OiD2q8JxJiXzjJGpYLTIfn4vJ+Fc bzGErO7EAByU/JYfUyETpXDIfmHNphCT2qE8ARSWdjEGVEzqc5dnjRL0N35YgQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103231; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=21PZLXJGtbmNmpN5RfEbMOyX0sA37zEswmd8V+MF4kg=; b=ADwVP++niOhvwvG3+D6TaUSGHfUWXkZ40C7LWfO1kh1si8ZAAvt0/SlKfmuNX5isBA9MY3 Qok8HEGdFt3g39ea3KKwPpcH+zJsABAqR+wc1SJ4jMY2cvYL5pywSmeFu7YNDdcbuNO1hT yrUV3S+cICc7aJ3sj6VE90ap1WNKiJ3WgHSL6K+KWGAod0mFyFfU/g+Y1BOVkUJk24K2Xd MWw+w8cKpIaYf14Fr5FxeRfxZP/cgDziORbVCRwhPQnikNXAGXK+yexwSsj2MosflqM2NE 4agTTPY5/5XUQebLqyHNsdKKvPjxfhjfOI6iKQVm9NifNna9lhtiAhqh8OADhw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6R2lD8z8H9; Tue, 04 Mar 2025 15:47:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FlBX1050271; Tue, 4 Mar 2025 15:47:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524FlBdT050268; Tue, 4 Mar 2025 15:47:11 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:11 GMT Message-Id: <202503041547.524FlBdT050268@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 311b84540e73 - stable/14 - mixer(3): Do not skip devices with no volume control List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 311b84540e737a55d032aa46975ea2379350077a Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=311b84540e737a55d032aa46975ea2379350077a commit 311b84540e737a55d032aa46975ea2379350077a Author: Christos Margiolis AuthorDate: 2025-02-25 11:44:49 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:07 +0000 mixer(3): Do not skip devices with no volume control Some devices might not have a software volume control, but still be able to be set as recording sources. PR: 279787 Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D48730 (cherry picked from commit f121de8fbcbc8aa82f9fb59039c502406b7c88b6) --- lib/libmixer/mixer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libmixer/mixer.c b/lib/libmixer/mixer.c index 4abbed9b27d3..2be3a48eb755 100644 --- a/lib/libmixer/mixer.c +++ b/lib/libmixer/mixer.c @@ -113,14 +113,14 @@ dunit: TAILQ_INIT(&m->devs); for (i = 0; i < SOUND_MIXER_NRDEVICES; i++) { - if (!MIX_ISDEV(m, i)) + if (!MIX_ISDEV(m, i) && !MIX_ISREC(m, i)) continue; if ((dp = calloc(1, sizeof(struct mix_dev))) == NULL) goto fail; dp->parent_mixer = m; dp->devno = i; dp->nctl = 0; - if (_mixer_readvol(dp) < 0) + if (MIX_ISDEV(m, i) && _mixer_readvol(dp) < 0) goto fail; (void)strlcpy(dp->name, names[i], sizeof(dp->name)); TAILQ_INIT(&dp->ctls); From nobody Tue Mar 4 15:47:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6g6V4LM7z5qGQL; Tue, 04 Mar 2025 15:47:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6g6S4N3bz42Q9; Tue, 04 Mar 2025 15:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+XSMxeyEbPtt+YpboUvuxgcWEi6A0ixrY6BLbs0jsyg=; b=j4RwED3N0UwpYYBtWaNu8qhOOv1KeybIgP5OuG31+Tdx8vcc4xEjsMsyN7W5VG+1V88RCW mNnCuwcvuFkYIrpCc1LYTQtIUZpoA4cuTEnjH66dCoTnXR0/uVahWdXUjFy5ti8/7ocofa DZe+uvakxwFDD6t6ByuFsUwS5CooH9doyGCmGxTz6qYEYxXjkWc6UQdM/QKpCO1ZyaL8L+ fGOzNhLMSvB/n1iDkZjW+fTLwSykbb1vbL/qb5I8bC11nHdab/xuKxkYp4PrwrUKDemy7B +svBTmtLgxNeQjLqKhh2MWpZelSLcLo7Pblz8mhCwjgBW0cW9K5/pQPD1lzxJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741103232; a=rsa-sha256; cv=none; b=LehPfawQ2lhLy4y2aUcVABTV74DY6pAPcqUM27S2WLRhoaEtUK87H1bi21kCxOGkbXn6Vb 800njMq0kagF3Sr2aEFB8Sp9P6djpnAkKv6/U5HwIxDzWkw3+c1EQAYk1yUWzgcAzsB6Yf rgnz/O74LAygoEnh32FvD+IEhsYuWNPVuaEIJTkcCSmp9SHkBOQVQqj8XvDCuuTsVWStAY Bj7hGvVOguXC11KQrpbiOgyxXbjVm0KzZOrEVWsoEiTiP3a0ski5K+Qk9jmEYhRDxLV9aA qbeDlgqHAtHR3Qfo8v0DzE0gz3IWg+zTQ1PdNgPBCW0mX+PNg61soXaWk3xc6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741103232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+XSMxeyEbPtt+YpboUvuxgcWEi6A0ixrY6BLbs0jsyg=; b=QiT5yvX9iDq2yKmrfPon+9T+LMusptaGYA4HXrfuZfda6Uv4RbTsErbttq+JMFBJoBwJ2g 7drLVAoBCVgeCHgHkhKjYsjoZlP2+t/l6Hqv484FuaxOpmrgT755ETcD7t2Zqy5cUOmIja +1TEelZgdE+KfsHekSI5RIGs22u0lEqnhnBOJgqbCsKLtd1OY9F2BFcInUMHtikeFAqZYC a+nD8WUyIBId9+ttRo693uBxhZ59a1xROBNcWA6dOS4ev5jta1ut+oYCdgTRE75OHHr1s1 ijgAVvu5v+8Hwj7UCg2faDrH5/hBeDp/ayUjjObUDopOlt3w/Y5J24N9u3tlwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6g6S3gtbz85P; Tue, 04 Mar 2025 15:47:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524FlCOX050304; Tue, 4 Mar 2025 15:47:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524FlCE5050300; Tue, 4 Mar 2025 15:47:12 GMT (envelope-from git) Date: Tue, 4 Mar 2025 15:47:12 GMT Message-Id: <202503041547.524FlCE5050300@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 8278fd982926 - stable/14 - RELNOTES: Add 960ee8094913 note List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8278fd982926c3c9962ec3430723118fb99cc767 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=8278fd982926c3c9962ec3430723118fb99cc767 commit 8278fd982926c3c9962ec3430723118fb99cc767 Author: Christos Margiolis AuthorDate: 2025-03-04 15:26:25 +0000 Commit: Christos Margiolis CommitDate: 2025-03-04 15:46:29 +0000 RELNOTES: Add 960ee8094913 note Sponsored by: The FreeBSD Foundation --- RELNOTES | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/RELNOTES b/RELNOTES index 812dc613957b..97abbfcafafb 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,16 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +960ee8094913: + hw.snd.maxautovchans has been retired. The commit introduced a + hw.snd.vchans_enable sysctl, which along with + dev.pcm.X.{play|rec}.vchans, from now on work as tunables to only + enable/disable vchans, as opposed to setting their number and/or + (de-)allocating vchans. Since these sysctls do not trigger any + (de-)allocations anymore, their effect is instantaneous, whereas before + we could have frozen the machine (when trying to allocate new vchans) + when setting dev.pcm.X.{play|rec}.vchans to a very large value. + ead3cd3ef628: Add a new -a command line option to mountd(8). If this command line option is specified, when From nobody Tue Mar 4 20:58:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6p293sQpz5qhgT; Tue, 04 Mar 2025 20:58: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6p293H5Fz3k6C; Tue, 04 Mar 2025 20:58:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741121937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FJ719O/nZuqam/ImAtuD8BzGIQs5Ac5yPuL1G9IQZJ8=; b=VZfBK6Qagbs7eoN5zBfHAcPrgrPr8sk7U/lyZxA6dtwQb6n54RGM0c2tYNfkB0M9VKc9Ow J9K8iLRHeSc06X5Q8+GkChJst6fFNB57CmmqbWLqaNU3y4jjQWuRsv+B9QcLwkE0aLbG66 ndNzLXdbEFgNYqCHA2+3Vak0t+hQ8pPWVI00Fa6TmUFiZCc3HEBtdK2sDUsLixA06eGH/1 jYDtgq7bZpuSdRPoYWAwXJngiF3XTLHFqLm+qlZGKEz0BaT9nBs5Vz0BmgfEhuGQhrxLhB /1H1RCR4HMqaQARsRpL3Vak/DI4qSdLEIjAns5zL+LKk/qf5ec86KIu1VAc+QQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741121937; a=rsa-sha256; cv=none; b=w6M+3GUp1qYIMktaq1S0/ZprK/xq9y8oe1FBGu7OxROvdrZtmLmq46GAmL3UDC30fZU33Z XX1n4N4kM7YXiNLeMlJC1k/LELWLopLZdbto192m5lgNqjVJwJFRPVbt0XAkhwo2vlXbfi R9ZuPD9HNJ5u8SFEsRYwKoE1uhCKG0N9ATz2dbLijP7CfJTGsOwvbrEFbMicAj0Ki/nAil FSHbG7m8q+6jpoFNyZhe56q1pKRCabgA9G6QgIo8HgTVhfAPo8zE0ExmTo+ew6Aya0mlTZ bPoO/LUH0VgWuOcWeW8v1LGM7WRSC9HeoFzxiMP5qvqDhzt3Kd+B7T6xVVyzlw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741121937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FJ719O/nZuqam/ImAtuD8BzGIQs5Ac5yPuL1G9IQZJ8=; b=D4ckAcR+kat4bRAwC0cwLgN4Y+ubKEHBm7kTW8YZgz7R7Mq0Y3PMfN0++eYWiOSjRE2r3V 8ubQRyEk7CszHxHInMg3xqmIPohePHz+FpEFS+dnNmdqs4UjNB8fYsFNb/+hF7AvaR6ril 1ojMhYPnMPejSYoEOsivvxnFL3NbAaxh+j8HW4x2KNFZZ7FtKFCAmOdVFlnhfWEy5w3GiG j8LenmL9TSLIE1Q2749vhEny0ECAWV4elpkCg22HT2oHDhr83Bymh1C4fUoA9qycsdFnrI eGknlkO6iIxtgT4MbOhjk5sAlXdJjWhd4uw2MAuGpmDwWUTpiarUIac9SJgFwg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6p292PWCzbHW; Tue, 04 Mar 2025 20:58:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524Kwv8m030060; Tue, 4 Mar 2025 20:58:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524KwvZk030057; Tue, 4 Mar 2025 20:58:57 GMT (envelope-from git) Date: Tue, 4 Mar 2025 20:58:57 GMT Message-Id: <202503042058.524KwvZk030057@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: e4bcef6daba7 - stable/14 - makefs: Make cd9660 Rock Ridge inodes reproducible List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e4bcef6daba71546570c623e6091fdef982a596b Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e4bcef6daba71546570c623e6091fdef982a596b commit e4bcef6daba71546570c623e6091fdef982a596b Author: Ed Maste AuthorDate: 2025-02-26 16:44:12 +0000 Commit: Ed Maste CommitDate: 2025-03-04 20:57:26 +0000 makefs: Make cd9660 Rock Ridge inodes reproducible Rock Ridge extensions include an inode field: "POSIX File Serial Number" shall have the same meaning as and may be used for the st_ino field of POSIX:5.6.1. This field shall be recorded according to ISO 9660:7.3.3. Directory Records which share the value of this field are defined as links (see POSIX:2.2.2.17) and, by definition, point to the same file or directory. Previously we'd store the source file's st_ino (except that in metalog mode we'd record 0 for files with nlink = 1). This had two issues: the generated ISO image was nonreproducible due to the arbitrary inode numbers, and files without hard links would falsely be detected (by certain tools) as hard links to each other. Note that the kernel's cd9660(5) file system ignores the Rock Ridge PX File Serial Number, so this issue isn't observed by mounting such a file system. Instead of using the source inode directly, assign target inode numbers sequentially. Use a map so that files with the same source inode (hard links) still receive the same target inode number. PR: 284795 PR: 285027 Reviewed by: brooks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49141 (cherry picked from commit 518cdd344ec51584478f39b9a9cac77fc0766ce1) (cherry picked from commit 337f5e7a44c4d5ac29e0b0c0fe957bb3b9bae222) (cherry picked from commit a18be39aafc1b55fd67603ee6a6d820d0fcd877f) --- usr.sbin/makefs/cd9660.h | 13 +++++++ usr.sbin/makefs/cd9660/iso9660_rrip.c | 73 ++++++++++++++++++++++++++++++----- usr.sbin/makefs/cd9660/iso9660_rrip.h | 2 +- 3 files changed, 78 insertions(+), 10 deletions(-) diff --git a/usr.sbin/makefs/cd9660.h b/usr.sbin/makefs/cd9660.h index 2892d6d206c2..1ff37f9fa433 100644 --- a/usr.sbin/makefs/cd9660.h +++ b/usr.sbin/makefs/cd9660.h @@ -51,6 +51,7 @@ #include #include #include +#include #include "makefs.h" #include "iso.h" @@ -203,6 +204,12 @@ typedef struct _volume_descriptor struct _volume_descriptor *next; } volume_descriptor; +struct inode_map_node { + RB_ENTRY(inode_map_node) entry; + uint64_t key; + uint64_t value; +}; + typedef struct _iso9660_disk { int sectorSize; struct iso_primary_descriptor primaryDescriptor; @@ -249,7 +256,11 @@ typedef struct _iso9660_disk { unsigned rock_ridge_move_count; cd9660node *rr_moved_dir; + uint64_t rr_inode_next; + RB_HEAD(inode_map_tree, inode_map_node) rr_inode_map; + int archimedes_enabled; + int chrp_boot; /* Spec breaking options */ @@ -276,6 +287,8 @@ typedef struct _iso9660_disk { } iso9660_disk; +RB_PROTOTYPE(inode_map_tree, inode_map_node, entry, inode_map_node_cmp); + /************ FUNCTIONS **************/ int cd9660_valid_a_chars(const char *); int cd9660_valid_d_chars(const char *); diff --git a/usr.sbin/makefs/cd9660/iso9660_rrip.c b/usr.sbin/makefs/cd9660/iso9660_rrip.c index a4ce5c09b24b..31c6e38a96fe 100644 --- a/usr.sbin/makefs/cd9660/iso9660_rrip.c +++ b/usr.sbin/makefs/cd9660/iso9660_rrip.c @@ -47,7 +47,7 @@ #include "iso9660_rrip.h" #include -static void cd9660_rrip_initialize_inode(cd9660node *); +static void cd9660_rrip_initialize_inode(iso9660_disk *, cd9660node *); static int cd9660_susp_handle_continuation(iso9660_disk *, cd9660node *); static int cd9660_susp_handle_continuation_common(iso9660_disk *, cd9660node *, int); @@ -70,6 +70,11 @@ cd9660_susp_initialize(iso9660_disk *diskStructure, cd9660node *node, if (node->dot_dot_record != 0) TAILQ_INIT(&(node->dot_dot_record->head)); + if (diskStructure->rr_inode_next == 0) { + RB_INIT(&diskStructure->rr_inode_map); + diskStructure->rr_inode_next = 1; + } + /* SUSP specific entries here */ if ((r = cd9660_susp_initialize_node(diskStructure, node)) < 0) return r; @@ -101,6 +106,7 @@ int cd9660_susp_finalize(iso9660_disk *diskStructure, cd9660node *node) { cd9660node *temp; + struct inode_map_node *mapnode, *mapnodetmp; int r; assert(node != NULL); @@ -117,6 +123,16 @@ cd9660_susp_finalize(iso9660_disk *diskStructure, cd9660node *node) if ((r = cd9660_susp_finalize(diskStructure, temp)) < 0) return r; } + + if (diskStructure->rr_inode_next != 0) { + RB_FOREACH_SAFE(mapnode, inode_map_tree, + &(diskStructure->rr_inode_map), mapnodetmp) { + RB_REMOVE(inode_map_tree, + &(diskStructure->rr_inode_map), mapnode); + free(mapnode); + } + diskStructure->rr_inode_next = 0; + } return 1; } @@ -323,7 +339,7 @@ cd9660_susp_initialize_node(iso9660_disk *diskStructure, cd9660node *node) } static void -cd9660_rrip_initialize_inode(cd9660node *node) +cd9660_rrip_initialize_inode(iso9660_disk *diskStructure, cd9660node *node) { struct ISO_SUSP_ATTRIBUTES *attr; @@ -337,7 +353,7 @@ cd9660_rrip_initialize_inode(cd9660node *node) /* PX - POSIX attributes */ attr = cd9660node_susp_create_node(SUSP_TYPE_RRIP, SUSP_ENTRY_RRIP_PX, "PX", SUSP_LOC_ENTRY); - cd9660node_rrip_px(attr, node->node); + cd9660node_rrip_px(diskStructure, attr, node->node); TAILQ_INSERT_TAIL(&node->head, attr, rr_ll); @@ -390,7 +406,8 @@ cd9660_rrip_initialize_node(iso9660_disk *diskStructure, cd9660node *node, /* PX - POSIX attributes */ current = cd9660node_susp_create_node(SUSP_TYPE_RRIP, SUSP_ENTRY_RRIP_PX, "PX", SUSP_LOC_ENTRY); - cd9660node_rrip_px(current, parent->node); + cd9660node_rrip_px(diskStructure, current, + parent->node); TAILQ_INSERT_TAIL(&node->head, current, rr_ll); /* TF - timestamp */ @@ -405,7 +422,8 @@ cd9660_rrip_initialize_node(iso9660_disk *diskStructure, cd9660node *node, /* PX - POSIX attributes */ current = cd9660node_susp_create_node(SUSP_TYPE_RRIP, SUSP_ENTRY_RRIP_PX, "PX", SUSP_LOC_ENTRY); - cd9660node_rrip_px(current, grandparent->node); + cd9660node_rrip_px(diskStructure, current, + grandparent->node); TAILQ_INSERT_TAIL(&node->head, current, rr_ll); /* TF - timestamp */ @@ -422,7 +440,7 @@ cd9660_rrip_initialize_node(iso9660_disk *diskStructure, cd9660node *node, TAILQ_INSERT_TAIL(&node->head, current, rr_ll); } } else { - cd9660_rrip_initialize_inode(node); + cd9660_rrip_initialize_inode(diskStructure, node); if (node == diskStructure->rr_moved_dir) { cd9660_rrip_add_NM(node, RRIP_DEFAULT_MOVE_DIR_NAME); @@ -630,8 +648,45 @@ cd9660_createSL(cd9660node *node) } } +static int +inode_map_node_cmp(struct inode_map_node *a, struct inode_map_node *b) +{ + if (a->key < b->key) + return (-1); + if (a->key > b->key) + return (1); + return (0); +} + +RB_GENERATE(inode_map_tree, inode_map_node, entry, inode_map_node_cmp); + +static uint64_t +inode_map(iso9660_disk *diskStructure, uint64_t in) +{ + struct inode_map_node lookup = { .key = in }; + struct inode_map_node *node; + + /* + * Always assign an inode number if src inode unset. mtree mode leaves + * src inode unset for files with st_nlink == 1. + */ + if (in != 0) { + node = RB_FIND(inode_map_tree, &(diskStructure->rr_inode_map), + &lookup); + if (node != NULL) + return (node->value); + } + + node = emalloc(sizeof(struct inode_map_node)); + node->key = in; + node->value = diskStructure->rr_inode_next++; + RB_INSERT(inode_map_tree, &(diskStructure->rr_inode_map), node); + return (node->value); +} + int -cd9660node_rrip_px(struct ISO_SUSP_ATTRIBUTES *v, fsnode *pxinfo) +cd9660node_rrip_px(iso9660_disk *diskStructure, struct ISO_SUSP_ATTRIBUTES *v, + fsnode *pxinfo) { v->attr.rr_entry.PX.h.length[0] = 44; v->attr.rr_entry.PX.h.version[0] = 1; @@ -643,8 +698,8 @@ cd9660node_rrip_px(struct ISO_SUSP_ATTRIBUTES *v, fsnode *pxinfo) v->attr.rr_entry.PX.uid); cd9660_bothendian_dword(pxinfo->inode->st.st_gid, v->attr.rr_entry.PX.gid); - cd9660_bothendian_dword(pxinfo->inode->st.st_ino, - v->attr.rr_entry.PX.serial); + cd9660_bothendian_dword(inode_map(diskStructure, + pxinfo->inode->st.st_ino), v->attr.rr_entry.PX.serial); return 1; } diff --git a/usr.sbin/makefs/cd9660/iso9660_rrip.h b/usr.sbin/makefs/cd9660/iso9660_rrip.h index 5e1e8b5130f0..4c738d27ba45 100644 --- a/usr.sbin/makefs/cd9660/iso9660_rrip.h +++ b/usr.sbin/makefs/cd9660/iso9660_rrip.h @@ -224,7 +224,7 @@ int cd9660_susp_finalize_node(iso9660_disk *, cd9660node *); int cd9660_rrip_finalize_node(cd9660node *); /* POSIX File attribute */ -int cd9660node_rrip_px(struct ISO_SUSP_ATTRIBUTES *, fsnode *); +int cd9660node_rrip_px(iso9660_disk *, struct ISO_SUSP_ATTRIBUTES *, fsnode *); /* Device number */ int cd9660node_rrip_pn(struct ISO_SUSP_ATTRIBUTES *, fsnode *); From nobody Tue Mar 4 22:06:16 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6qWr3462z5qnFb; Tue, 04 Mar 2025 22:06:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6qWr2RB4z3bhk; Tue, 04 Mar 2025 22:06:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741125976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LE25L/HjHvb/89m2p29zUYzeomKV7XrFIZHaSYDoM+E=; b=AVwiVL5ovlN4bo4mls64L38dNZNgpzfunc+s2f5yeEblkJwjz3lSzeYNow5IR7NNw+CaiT BXLb0sdA0xFg4txi6x4EEvqi3b8on82s7sDlNuk6f7TpxTy+jXT8/NWNwId1DLCy0UeKBr rz8vXLEU+K1VxTnC3uLYxhfOhOJ54H255uomWvztZT+huNXAmluxv/By/zE6Zg0mlTfwiZ 93ZuoZHi+79PBzc7dJXKFtAgqrhrlBeDFEQgooVhGEbZ9H++n4pcd5ycAhm4brqdyy2HUc VvZErJ0cosX7xjTRYJMun04jaBuG5eBxy+RFdaiEV/Z1YFDHGLOalNPh14lvIg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741125976; a=rsa-sha256; cv=none; b=UeKfr/8o1slyJv+sVBt79H+A0YCxqlkXcjv1zpy10dDwgLtsdxL/Pzd13KabxSaAfauzfM Yz8VKoEoeyd5iIf8QV/PYir3KulSoS84zs1xJlKZwuYoSwgzi+wVCSVxBWnD6a6d7mYqYc 8G0GZi9LGG43Cp5d55g8PmWvNmeYitsTSMgYvI45/nWugjzmJw84jajCCuRInf8hkSfYcX gOtXxPd9BdgLEZ9fg4eazkiCCqvqkLCpxmADeBYjniDGSkU0xHx4wE2IHfjrZn1oP3f8Ff ubB3nC0xF5c9ksqJKdgMAom4w1LSSOoHlK/86ZtlHa+hMyTk6LIBD+fyy56ZDA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741125976; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LE25L/HjHvb/89m2p29zUYzeomKV7XrFIZHaSYDoM+E=; b=MQZUNSMvXv55PQEvmPSDhbzJOEsI9d6S7S+4jMQFHX/MkYNdn91ZMn2u9M2Vh1+vGtX7b9 hSwA1TdLbPvBm08Q4CuVXhLwP0iWxIHAKZ5BVj6MBY6dTKrYBooVi8IBtf5Ban/NHfixHF ySYbW3touqHkT+AWHykLSO9D2VhMPg2FQsbCbuPo1G/zuyNsFfrONEOj2AB6S+RpDuXEw4 RWP87SBSXleMY7PrwXjBwLCxBmJadJud4lu3pK7BJ6/DY6uso1WBI4OmTfvURFfPgiSoqx Tv/JQ5o9rNah2JIIjAK6IBZsZjRWCt98Wys1eDcvTUwMnMs86hRgwyAb6q46kA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6qWr1jqDzdCQ; Tue, 04 Mar 2025 22:06:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 524M6GDm061083; Tue, 4 Mar 2025 22:06:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 524M6G7X061080; Tue, 4 Mar 2025 22:06:16 GMT (envelope-from git) Date: Tue, 4 Mar 2025 22:06:16 GMT Message-Id: <202503042206.524M6G7X061080@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Igor Ostapenko Subject: git: 9383629ffc92 - stable/14 - kyua: Support require.diskspace ATF metadata List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: igoro X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9383629ffc923fe12ae031820713f68b845af838 Auto-Submitted: auto-generated The branch stable/14 has been updated by igoro: URL: https://cgit.FreeBSD.org/src/commit/?id=9383629ffc923fe12ae031820713f68b845af838 commit 9383629ffc923fe12ae031820713f68b845af838 Author: Igor Ostapenko AuthorDate: 2025-02-02 19:14:55 +0000 Commit: Igor Ostapenko CommitDate: 2025-03-04 21:09:11 +0000 kyua: Support require.diskspace ATF metadata Reviewed by: ngie MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D48333 (cherry picked from commit 6befd3511105a17decdafbf9d3f55324c83aaea1) --- contrib/kyua/doc/kyuafile.5.in | 3 ++- contrib/kyua/engine/atf_list.cpp | 2 ++ contrib/kyua/engine/atf_list_test.cpp | 23 +++++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/contrib/kyua/doc/kyuafile.5.in b/contrib/kyua/doc/kyuafile.5.in index 4fe5f12fd9b1..ae1e4fe40e32 100644 --- a/contrib/kyua/doc/kyuafile.5.in +++ b/contrib/kyua/doc/kyuafile.5.in @@ -282,7 +282,8 @@ ATF: .It Va required_disk_space Amount of available disk space that the test needs to run successfully. .Pp -ATF: not mapped +ATF: +.Va require.diskspace .It Va required_files Whitespace-separated list of paths that the test requires to exist before it can run. diff --git a/contrib/kyua/engine/atf_list.cpp b/contrib/kyua/engine/atf_list.cpp index c4f348ada2f6..f6ec20d7709a 100644 --- a/contrib/kyua/engine/atf_list.cpp +++ b/contrib/kyua/engine/atf_list.cpp @@ -129,6 +129,8 @@ engine::parse_atf_metadata(const model::properties_map& props) mdbuilder.set_string("is_exclusive", value); } else if (name == "require.config") { mdbuilder.set_string("required_configs", value); + } else if (name == "require.diskspace") { + mdbuilder.set_string("required_disk_space", value); } else if (name == "require.files") { mdbuilder.set_string("required_files", value); } else if (name == "require.machine") { diff --git a/contrib/kyua/engine/atf_list_test.cpp b/contrib/kyua/engine/atf_list_test.cpp index 7648ee2c6a80..f3a36ab864f7 100644 --- a/contrib/kyua/engine/atf_list_test.cpp +++ b/contrib/kyua/engine/atf_list_test.cpp @@ -67,6 +67,7 @@ ATF_TEST_CASE_BODY(parse_atf_metadata__override_all) properties["is.exclusive"] = "true"; properties["require.arch"] = "i386 x86_64"; properties["require.config"] = "var1 var2 var3"; + properties["require.diskspace"] = "10g"; properties["require.files"] = "/file1 /dir/file2"; properties["require.machine"] = "amd64"; properties["require.memory"] = "1m"; @@ -95,6 +96,7 @@ ATF_TEST_CASE_BODY(parse_atf_metadata__override_all) .set_description("Some text") .set_has_cleanup(true) .set_is_exclusive(true) + .set_required_disk_space(units::bytes::parse("10g")) .set_required_memory(units::bytes::parse("1m")) .set_required_user("root") .set_timeout(datetime::delta(123, 0)) @@ -293,6 +295,26 @@ ATF_TEST_CASE_BODY(parse_atf_list__is_exclusive_support) } +ATF_TEST_CASE_WITHOUT_HEAD(parse_atf_list__disk_space_support); +ATF_TEST_CASE_BODY(parse_atf_list__disk_space_support) +{ + const std::string text = + "Content-Type: application/X-atf-tp; version=\"1\"\n" + "\n" + "ident: first\n" + "require.diskspace: 123M\n"; + std::istringstream input(text); + const model::test_cases_map tests = engine::parse_atf_list(input); + + const model::test_cases_map exp_tests = model::test_cases_map_builder() + .add("first", model::metadata_builder() + .set_required_disk_space(units::bytes::parse("123M")) + .build()) + .build(); + ATF_REQUIRE_EQ(exp_tests, tests); +} + + ATF_INIT_TEST_CASES(tcs) { ATF_ADD_TEST_CASE(tcs, parse_atf_metadata__defaults); @@ -308,4 +330,5 @@ ATF_INIT_TEST_CASES(tcs) ATF_ADD_TEST_CASE(tcs, parse_atf_list__one_test_case_invalid_properties); ATF_ADD_TEST_CASE(tcs, parse_atf_list__many_test_cases); ATF_ADD_TEST_CASE(tcs, parse_atf_list__is_exclusive_support); + ATF_ADD_TEST_CASE(tcs, parse_atf_list__disk_space_support); } From nobody Wed Mar 5 00:51:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6vBq4l91z5p3nJ; Wed, 05 Mar 2025 00:51:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6vBq3R9Fz3C6k; Wed, 05 Mar 2025 00:51:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741135907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VPDfDeLnwMBeEDk26Qm5SdZ1RN/5tFcFEIGki1AAcT0=; b=mElJ/pwXpTLaxrCqP4M9LpFSBoQ0eYMV8QN0Pw86hiUKwAPnFDBPgqD9HhPS28EOsJNQjw o7uGja5Ba3Juz+S3eU0GunJ0g8FEsSNr3y4w392WaibMV45ozPnxXW5yzFWmL5vuh9FknU rHbMxIcPZmHK0DdbFepi5MLhQvCtZHuMq5m+7iu5G4ngHkIuIV9i+g7I6lVfvWxW18qjqE 3rH2rlr+0CUC5NA2FAhA7v5akaEPo9BFU+YgX/dbJS4JUukvlpUR/8ujfAgNAo3D66lYJ7 48xF+Urp22dQSMaV0k9qe0yuPsJmLNQ7I7F8NOm7aqa95iOL5iI+l/tRJELqFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741135907; a=rsa-sha256; cv=none; b=kHxFZsftdWgXqZ59dgst2bSFT8+5kZVKIeCv0h8GPWwWa1FN178tEOn18JUt5LZdijq+G5 0qIjzkiSa7UCf3xV7Lrskq5wetkAvU9nbwabwSzeSRVWhVVIcas3YbwgmUPWCtwQq17HP/ HPXsNwi72q7pUjgb0VY4F3vBSN7xlKzXNlj59QMGnUsqX03DL7XbdXopSix2IrgHCKmQrD TNPs9Fh4jRqU0PSisbNAMjGqSW2TJZFubYDGfLbd+/fCYoR7FVxI34EU5jLGBTaFs6c8Qu LBIH7kuylR7UnEGN1u7Fg9eFtjsUfRS9klMSucZ3dB7mir6kyOJdzUTgegSyhg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741135907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VPDfDeLnwMBeEDk26Qm5SdZ1RN/5tFcFEIGki1AAcT0=; b=xQFvEaEtA4WJKoo2DT/RrZMadDkoK+RSdzHAO/Mr2FRDmdUt8vbFqW3WILCmB7XDsAXrKv G583cjf/7NUYiP3ub03CdBFFVM+zk4amagvFeoageX13AyLYkbGveFs4gEQCjyL6gjCeSx yDQZanguw37bI0DSrEnVxNoSjVaTFJEaYFLqRapmQ54GNuzpAFLqXDGVlFsNOaaK900m2k ZzPTHym1SBOpU6XXBbGSYuJMxKMGLTdQ3DkDmVheo6rSRzO6uKnD4giLNjHp+JR8krX6LL pxVI6W9ozfrPeDJe1V18tmLJuFvLPFKRsRTevKdcCu4wAln2V+zoXL5xQOVZag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6vBq2sNMzj2W; Wed, 05 Mar 2025 00:51:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5250pllQ074441; Wed, 5 Mar 2025 00:51:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5250pliV074438; Wed, 5 Mar 2025 00:51:47 GMT (envelope-from git) Date: Wed, 5 Mar 2025 00:51:47 GMT Message-Id: <202503050051.5250pliV074438@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 8ebb0781f536 - stable/14 - acpidump: do not use pointer arithmetic to check for overflow List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8ebb0781f536be8805975a75bea9be1fa453f1bd Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8ebb0781f536be8805975a75bea9be1fa453f1bd commit 8ebb0781f536be8805975a75bea9be1fa453f1bd Author: Konstantin Belousov AuthorDate: 2025-02-26 05:24:30 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-05 00:51:29 +0000 acpidump: do not use pointer arithmetic to check for overflow PR: 204945 (cherry picked from commit 8c108dccd7f878ad44aaef1f5bfb5622666bd09a) --- usr.sbin/acpi/acpidump/acpi.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/usr.sbin/acpi/acpidump/acpi.c b/usr.sbin/acpi/acpidump/acpi.c index 31c3045ab6ea..385a0a3c36fd 100644 --- a/usr.sbin/acpi/acpidump/acpi.c +++ b/usr.sbin/acpi/acpidump/acpi.c @@ -1222,13 +1222,14 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp) vend = vaddr + len; while (vaddr != NULL) { - if ((vaddr + sizeof(struct TCPAevent) >= vend)|| - (vaddr + sizeof(struct TCPAevent) < vaddr)) + if ((uintptr_t)vaddr + sizeof(struct TCPAevent) >= + (uintptr_t)vend || (uintptr_t)vaddr + sizeof( + struct TCPAevent) < (uintptr_t)vaddr) break; event = (struct TCPAevent *)(void *)vaddr; - if (vaddr + event->event_size >= vend) + if ((uintptr_t)vaddr + event->event_size >= (uintptr_t)vend) break; - if (vaddr + event->event_size < vaddr) + if ((uintptr_t)vaddr + event->event_size < (uintptr_t)vaddr) break; if (event->event_type == 0 && event->event_size == 0) break; From nobody Wed Mar 5 03:31:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z6ylV5GHNz5pQt1; Wed, 05 Mar 2025 03:31:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z6ylV1nxHz465N; Wed, 05 Mar 2025 03:31:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741145510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0JMwm+hJFKKRbXQHfepuwAja5HiDgt3llg38CUKeuDk=; b=r0oyY8pOJCf3PsWw4KmiABhc7rHfYbsrGOVeyUEWHjCdGvzPxHL1htoit+ffOygiAzttyz dR8Clm4GDvRcVyijaazUR1YhDiBsjkTMJrFPSQDbWtQWpnoQ/ex9ljENl/LuNB3M37A4SA OPv+K5Pr3ncuO3Jn382vBrQqzjEKMyOhBnV5On3i0UpoVRRSkvayz0oaKXQFLH7ClhwMei a6rpDH6cqugJiWhPRJ70BZGHkDYjcghzkGvTCGghfykL9B2xvDQXHjCiZPGdw6peyKknYe haiJCXkg3hZXWcM93WtFXX16fX1M1AJCfEyjfxC+KnwZ1iMpPeV/3a3Dnyq0Tg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741145510; a=rsa-sha256; cv=none; b=Qpwfwh1nkz2Rcr5+a+kY2IeSsWdAgu7qY4RoaPG2ErNhvMZA8KWwJuWZHkjKnv/cFdR1Xk B6IyaSeTNURnRGqFbqNRwi1OeSHa7M9G2/83gtz7+hrc33wWIasHOSWXA5Gyv5bw3E4gSx DGeTiAmp0xeubAHsM5oBjrdu6sObB1Kn28n+DHxw8pq+FXMl1FhmCCL4GQpqby1tvyFE2T tJUrtBaUAs3BKpFYgT51JV/ggia6aa38BIvbCa6RKC299OBILE2XICDrGRf4JPjOvXf9QB b8NJHJLu29SJXQfOUP54gqg6djhYkhI0IlF1pvrK6NIDqosma+b1C0+vNnyXQw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741145510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0JMwm+hJFKKRbXQHfepuwAja5HiDgt3llg38CUKeuDk=; b=fJGrUDhXEbh2Uzc/7XMOq0R6Lkp5hdOrQufldLRXrirhRPAhxBxpdVTJ47jHf26ws5y6bS AAAzi1bZSQShvMhV9oCuQXFFKqEUCGIUny+cK75LU5vHE3igmgNXlEcVQdltpRiHW9CtCP vTKOuGP8tSTmodgx6JuYld8jrCvbq+42w9/v+yE0mVim9iRCzE6WiufPnRRcqRqtA+36+J wRIgbfD5qlxhzIYN6CtlazOJ0mqqaDM9Reu5OUA5R/Lj6bBBai2K76iNcaY8IuX07FmSKF cBWYWMHcVXzyhnTyAxEm4rtYoeuTIxtu086lCRWJZABQwWfv5WMwmsp/l1EmsA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z6ylV196LznbN; Wed, 05 Mar 2025 03:31:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5253VoSJ075340; Wed, 5 Mar 2025 03:31:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5253VoHI075337; Wed, 5 Mar 2025 03:31:50 GMT (envelope-from git) Date: Wed, 5 Mar 2025 03:31:50 GMT Message-Id: <202503050331.5253VoHI075337@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: 057409d0259f - stable/14 - nfscl: Return appropriate reply status for NFSv4.1 callbacks List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 057409d0259f9b3f4ae46c1eccc1e9227502c2ec Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=057409d0259f9b3f4ae46c1eccc1e9227502c2ec commit 057409d0259f9b3f4ae46c1eccc1e9227502c2ec Author: Rick Macklem AuthorDate: 2025-02-19 23:34:53 +0000 Commit: Rick Macklem CommitDate: 2025-03-05 03:30:00 +0000 nfscl: Return appropriate reply status for NFSv4.1 callbacks Certain NFSv4.1 callbacks are not currently supported/used by the FreeBSD client. Without this patch, NFS4ERR_NOTSUPP is replied for the callbacks. Since NFSv4.1 does not specify all of these callbacks as optional, I think it is preferable to reply NFS_OK or NFS4ERR_REJECT_DELEG instead of NFS4ERR_NOTSUPP. This patch changes the reply status for these unsupported callbacks, which the client has no use for. I am not aware of any NFSv4.1 servers that will perform any of these callbacks against the FreeBSD client at this time. (cherry picked from commit 56c8c19046c46cb9e89c2a3967f8cf2cd0ace428) --- sys/fs/nfsclient/nfs_clstate.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index b00de78ef591..af8297b68c0e 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -3993,6 +3993,25 @@ nfscl_docb(struct nfsrv_descript *nd, NFSPROC_T *p) NFSUNLOCKCLSTATE(); } break; + case NFSV4OP_CBNOTIFY: + case NFSV4OP_CBRECALLOBJAVAIL: + case NFSV4OP_CBNOTIFYLOCK: + /* + * These callbacks are not necessarily optional, + * so I think it is better to reply NFS_OK than + * NFSERR_NOTSUPP. + * All provide information for which the FreeBSD client + * does not currently have a use. + * I am not sure if any of these could be generated + * by a NFSv4.1/4.2 server for this client? + */ + error = 0; + NFSCL_DEBUG(1, "unsupp callback %d\n", op); + break; + case NFSV4OP_CBPUSHDELEG: + error = NFSERR_REJECTDELEG; + NFSCL_DEBUG(1, "unsupp callback %d\n", op); + break; default: if (i == 0 && minorvers != NFSV4_MINORVERSION) error = NFSERR_OPNOTINSESS; From nobody Thu Mar 6 15:39:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z7tsB4w3Sz5pnZW; Thu, 06 Mar 2025 15:39: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z7tsB4l59z3l2X; Thu, 06 Mar 2025 15:39:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0ZYryIcLkomzzL/VRemP4pwhtqUAdi9IQvzGhRmTpqk=; b=Uk3xWlbKKkzHmnoi/7N8VWVfSjZXxmixtpT/RkhpLvEsG9FA6Ik3+54MwvZeDQ8xlPxOJA APLzFXtuKDHr1pcbA2G4Ic7vDSxYZItktEzUgzLztkpBc4tHBfMufsII/lBcaRdBrnR1px 6OvtWoEDCXJvQrRoR0wqmo2UoF6yf9A9RkHR5Bwj/b6jIQLjLatoB6s2Upa3BKREik3o2p j8N62U1iLtfxOyGGOCMGpT28/Sqkykh7+EXaPIqmSzWPSWGssAFOh5T22eM8UcisYHyqqM k7TUm65+C54E/WzAK/Ahf/u3NN1w0i//QRjhovF15CynIuVdVQv8YjCbDhMXIg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741275598; a=rsa-sha256; cv=none; b=xbRy10DcEkMIYns4w02PwAfnJ9letv+uG8cHPldmANIdTfOCBo8u83wpWpl0JBu8kWguw8 boXTqgYKTFb559Iqxtf19tNo7Rs9wrXEoIFIIsdPB/JV4LYYYIB+0YAzl53CXifssKKjJe VxPXChzi04oyEy5VjRUQFVzAG7ZgX7tXZr6dhpXXjfdtulzIFhb4Lr9kGZQyNvCTcRUitO uVBHnQP8g8Tcut1Klg7GfAu02C1d98mQU/yu0+6vxs0NtZE1Lx40GId2KZEjxRgDrJGG+b Y1e+ZTAkCoCSsB4aPIlXt4btOo78icYKLPhzj0hxbBkb+Ma77OA2YYn4VEzxsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275598; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0ZYryIcLkomzzL/VRemP4pwhtqUAdi9IQvzGhRmTpqk=; b=doORLjiyRJl6RPt91AppOiKQK2Yr8kwuEMgaYFWYPpmnadZi41EFHcwB7/kGsetv171lBK rsFoVxn8GYRSBXVFkxAWufAGEcXhCd0augSuREzyTF2s/RX7/5O3dVM+GfiLjPHzBTc3GM eZF6YsvhPU8uJtBNB4IMKeoiHNLhYH3NEN1C5JSpvg1ruhJveU0NEEZTYeI7zqvFBLx0Co hWcr/JGFUNCJg/XT/56E3sZ8xI0p2UkULZ5krBySgTq69SVWKyh4Dv92ur7zRme+qQQqpF EpxOB6PUSAtN8FF9Ogbb/OKLDR8/Xp+Ug5uKUugIQ6enluA6JX0gbJ7oNh/5Dg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z7tsB3wgSzww4; Thu, 06 Mar 2025 15:39:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 526FdwU1028746; Thu, 6 Mar 2025 15:39:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 526FdwjK028743; Thu, 6 Mar 2025 15:39:58 GMT (envelope-from git) Date: Thu, 6 Mar 2025 15:39:58 GMT Message-Id: <202503061539.526FdwjK028743@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 7be3ea2e6470 - stable/14 - pkg: clean support for repositories List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7be3ea2e64707412f656b345e8d274bf4a3715a4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=7be3ea2e64707412f656b345e8d274bf4a3715a4 commit 7be3ea2e64707412f656b345e8d274bf4a3715a4 Author: Baptiste Daroussin AuthorDate: 2025-01-14 11:12:00 +0000 Commit: Baptiste Daroussin CommitDate: 2025-03-06 15:31:35 +0000 pkg: clean support for repositories Rework the way the bootstrap fetches pkg, by implementing a full support for the repositories, the boostrap will now loop over all available repo and try to fetch the full package from there. It will at the first valid package found. Fallback to packagesite (which has been deprecated for a while) if needed, by transforming it into a repo, if no repo is found. MFC After: 3 weeks (cherry picked from commit dc4581589a3256667fafd46a30c67abdfd86618f) --- usr.sbin/pkg/config.c | 158 ++++++++++++++++++++++++++++++++++++++------------ usr.sbin/pkg/config.h | 24 ++++++++ usr.sbin/pkg/pkg.c | 149 +++++++++++++++++++++++------------------------ 3 files changed, 216 insertions(+), 115 deletions(-) diff --git a/usr.sbin/pkg/config.c b/usr.sbin/pkg/config.c index ce3a11cf8c81..ce73a08d93f3 100644 --- a/usr.sbin/pkg/config.c +++ b/usr.sbin/pkg/config.c @@ -60,6 +60,8 @@ struct config_entry { bool main_only; /* Only set in pkg.conf. */ }; +static struct repositories repositories = STAILQ_HEAD_INITIALIZER(repositories); + static struct config_entry c[] = { [PACKAGESITE] = { PKG_CONFIG_STRING, @@ -212,7 +214,7 @@ boolstr_to_bool(const char *str) } static void -config_parse(const ucl_object_t *obj, pkg_conf_file_t conftype) +config_parse(const ucl_object_t *obj) { FILE *buffp; char *buf = NULL; @@ -239,29 +241,9 @@ config_parse(const ucl_object_t *obj, pkg_conf_file_t conftype) memset(buf, 0, bufsz); rewind(buffp); - if (conftype == CONFFILE_PKG) { for (j = 0; j < strlen(key); ++j) fputc(toupper(key[j]), buffp); fflush(buffp); - } else if (conftype == CONFFILE_REPO) { - if (strcasecmp(key, "url") == 0) - fputs("PACKAGESITE", buffp); - else if (strcasecmp(key, "mirror_type") == 0) - fputs("MIRROR_TYPE", buffp); - else if (strcasecmp(key, "signature_type") == 0) - fputs("SIGNATURE_TYPE", buffp); - else if (strcasecmp(key, "fingerprints") == 0) - fputs("FINGERPRINTS", buffp); - else if (strcasecmp(key, "pubkey") == 0) - fputs("PUBKEY", buffp); - else if (strcasecmp(key, "enabled") == 0) { - if ((cur->type != UCL_BOOLEAN) || - !ucl_object_toboolean(cur)) - goto cleanup; - } else - continue; - fflush(buffp); - } for (i = 0; i < CONFIG_SIZE; i++) { if (strcmp(buf, c[i].key) == 0) @@ -325,7 +307,7 @@ config_parse(const ucl_object_t *obj, pkg_conf_file_t conftype) if (c[i].envset) continue; /* Prevent overriding ABI, ASSUME_ALWAYS_YES, etc. */ - if (conftype != CONFFILE_PKG && c[i].main_only == true) + if (c[i].main_only == true) continue; switch (c[i].type) { case PKG_CONFIG_LIST: @@ -337,12 +319,91 @@ config_parse(const ucl_object_t *obj, pkg_conf_file_t conftype) } } -cleanup: free(temp_config); fclose(buffp); free(buf); } + +static void +parse_mirror_type(struct repository *r, const char *mt) +{ + if (strcasecmp(mt, "srv") == 0) + r->mirror_type = MIRROR_SRV; + r->mirror_type = MIRROR_NONE; +} + +static bool +parse_signature_type(struct repository *repo, const char *st) +{ + if (strcasecmp(st, "FINGERPRINTS") == 0) + repo->signature_type = SIGNATURE_FINGERPRINT; + else if (strcasecmp(st, "PUBKEY") == 0) + repo->signature_type = SIGNATURE_PUBKEY; + else if (strcasecmp(st, "NONE") == 0) + repo->signature_type = SIGNATURE_NONE; + else { + warnx("Signature type %s is not supported for bootstraping," + " ignoring repository %s", st, repo->name); + free(repo->url); + free(repo->name); + free(repo->fingerprints); + free(repo->pubkey); + free(repo); + return false; + } + return (true); +} + +static void +parse_repo(const ucl_object_t *o) +{ + const ucl_object_t *cur; + const char *key; + ucl_object_iter_t it = NULL; + + struct repository *repo = calloc(1, sizeof(struct repository)); + if (repo == NULL) + err(EXIT_FAILURE, "calloc"); + + repo->name = strdup(ucl_object_key(o)); + if (repo->name == NULL) + err(EXIT_FAILURE, "strdup"); + while ((cur = ucl_iterate_object(o, &it, true))) { + key = ucl_object_key(cur); + if (key == NULL) + continue; + if (strcasecmp(key, "url") == 0) { + repo->url = strdup(ucl_object_tostring(cur)); + if (repo->url == NULL) + err(EXIT_FAILURE, "strdup"); + } else if (strcasecmp(key, "mirror_type") == 0) { + parse_mirror_type(repo, ucl_object_tostring(cur)); + } else if (strcasecmp(key, "signature_type") == 0) { + if (!parse_signature_type(repo, ucl_object_tostring(cur))) + return; + } else if (strcasecmp(key, "fingerprints") == 0) { + repo->fingerprints = strdup(ucl_object_tostring(cur)); + if (repo->fingerprints == NULL) + err(EXIT_FAILURE, "strdup"); + } else if (strcasecmp(key, "pubkey") == 0) { + repo->pubkey = strdup(ucl_object_tostring(cur)); + if (repo->pubkey == NULL) + err(EXIT_FAILURE, "strdup"); + } else if (strcasecmp(key, "enabled") == 0) { + if ((cur->type != UCL_BOOLEAN) || + !ucl_object_toboolean(cur)) { + free(repo->url); + free(repo->name); + free(repo); + return; + } + } + } + STAILQ_INSERT_TAIL(&repositories, repo, next); + return; +} + /*- * Parse new repo style configs in style: * Name: @@ -368,8 +429,7 @@ parse_repo_file(ucl_object_t *obj, const char *requested_repo) if (requested_repo != NULL && strcmp(requested_repo, key) != 0) continue; - - config_parse(cur, CONFFILE_REPO); + parse_repo(cur); } } @@ -380,8 +440,12 @@ read_conf_file(const char *confpath, const char *requested_repo, { struct ucl_parser *p; ucl_object_t *obj = NULL; + const char *abi = pkg_get_myabi(); + if (abi == NULL) + errx(EXIT_FAILURE, "Fail do determine ABI"); p = ucl_parser_new(0); + ucl_parser_register_variable(p, "ABI", abi); if (!ucl_parser_add_file(p, confpath)) { if (errno != ENOENT) @@ -398,7 +462,7 @@ read_conf_file(const char *confpath, const char *requested_repo, "configuration file %s", confpath); else { if (conftype == CONFFILE_PKG) - config_parse(obj, conftype); + config_parse(obj); else if (conftype == CONFFILE_REPO) parse_repo_file(obj, requested_repo); } @@ -409,7 +473,7 @@ read_conf_file(const char *confpath, const char *requested_repo, return (0); } -static int +static void load_repositories(const char *repodir, const char *requested_repo) { struct dirent *ent; @@ -417,12 +481,9 @@ load_repositories(const char *repodir, const char *requested_repo) char *p; size_t n; char path[MAXPATHLEN]; - int ret; - - ret = 0; if ((d = opendir(repodir)) == NULL) - return (1); + return; while ((ent = readdir(d))) { /* Trim out 'repos'. */ @@ -438,7 +499,6 @@ load_repositories(const char *repodir, const char *requested_repo) continue; if (read_conf_file(path, requested_repo, CONFFILE_REPO)) { - ret = 1; goto cleanup; } } @@ -446,8 +506,6 @@ load_repositories(const char *repodir, const char *requested_repo) cleanup: closedir(d); - - return (ret); } int @@ -509,8 +567,7 @@ config_init(const char *requested_repo) } STAILQ_FOREACH(cv, c[REPOS_DIR].list, next) - if (load_repositories(cv->value, requested_repo)) - goto finalize; + load_repositories(cv->value, requested_repo); finalize: if (c[ABI].val == NULL && c[ABI].value == NULL) { @@ -521,8 +578,6 @@ finalize: c[ABI].val = abi; } - subst_packagesite(c[ABI].value != NULL ? c[ABI].value : c[ABI].val); - return (0); } @@ -561,6 +616,33 @@ config_bool(pkg_config_key k, bool *val) return (0); } +struct repositories * +config_get_repositories(void) +{ + if (STAILQ_EMPTY(&repositories)) { + /* Fall back to PACKAGESITE - deprecated - */ + struct repository *r = calloc(1, sizeof(r)); + if (r == NULL) + err(EXIT_FAILURE, "calloc"); + r->name = strdup("fallback"); + if (r->name == NULL) + err(EXIT_FAILURE, "strdup"); + subst_packagesite(c[ABI].value != NULL ? c[ABI].value : c[ABI].val); + r->url = c[PACKAGESITE].value; + if (c[SIGNATURE_TYPE].value != NULL) + if (!parse_signature_type(r, c[SIGNATURE_TYPE].value)) + exit(EXIT_FAILURE); + if (c[MIRROR_TYPE].value != NULL) + parse_mirror_type(r, c[MIRROR_TYPE].value); + if (c[PUBKEY].value != NULL) + r->pubkey = c[PUBKEY].value; + if (c[FINGERPRINTS].value != NULL) + r->fingerprints = c[FINGERPRINTS].value; + STAILQ_INSERT_TAIL(&repositories, r, next); + } + return (&repositories); +} + void config_finish(void) { int i; diff --git a/usr.sbin/pkg/config.h b/usr.sbin/pkg/config.h index 21d115e41db2..26f3ff79541b 100644 --- a/usr.sbin/pkg/config.h +++ b/usr.sbin/pkg/config.h @@ -30,6 +30,7 @@ #define _PKG_CONFIG_H #include +#include #define URL_SCHEME_PREFIX "pkg+" @@ -58,9 +59,32 @@ typedef enum { CONFFILE_REPO, } pkg_conf_file_t; +typedef enum { + SIGNATURE_NONE = 0, + SIGNATURE_FINGERPRINT, + SIGNATURE_PUBKEY, +} signature_t; + +typedef enum { + MIRROR_NONE = 0, + MIRROR_SRV, +} mirror_t; + +struct repository { + char *name; + char *url; + mirror_t mirror_type; + signature_t signature_type; + char *fingerprints; + char *pubkey; + STAILQ_ENTRY(repository) next; +}; +STAILQ_HEAD(repositories, repository); + int config_init(const char *); void config_finish(void); int config_string(pkg_config_key, const char **); int config_bool(pkg_config_key, bool *); +struct repositories *config_get_repositories(void); #endif diff --git a/usr.sbin/pkg/pkg.c b/usr.sbin/pkg/pkg.c index 9aa8d7dfe774..f19c93c6fbb5 100644 --- a/usr.sbin/pkg/pkg.c +++ b/usr.sbin/pkg/pkg.c @@ -256,7 +256,7 @@ install_pkg_static(const char *path, const char *pkgpath, bool force) } static int -fetch_to_fd(const char *url, char *path, const char *fetchOpts) +fetch_to_fd(struct repository *repo, const char *url, char *path, const char *fetchOpts) { struct url *u; struct dns_srvinfo *mirrors, *current; @@ -268,18 +268,11 @@ fetch_to_fd(const char *url, char *path, const char *fetchOpts) ssize_t r; char buf[10240]; char zone[MAXHOSTNAMELEN + 13]; - static const char *mirror_type = NULL; max_retry = 3; current = mirrors = NULL; remote = NULL; - if (mirror_type == NULL && config_string(MIRROR_TYPE, &mirror_type) - != 0) { - warnx("No MIRROR_TYPE defined"); - return (-1); - } - if ((fd = mkstemp(path)) == -1) { warn("mkstemp()"); return (-1); @@ -295,7 +288,7 @@ fetch_to_fd(const char *url, char *path, const char *fetchOpts) while (remote == NULL) { if (retry == max_retry) { if (strcmp(u->scheme, "file") != 0 && - strcasecmp(mirror_type, "srv") == 0) { + repo->mirror_type == MIRROR_SRV) { snprintf(zone, sizeof(zone), "_%s._tcp.%s", u->scheme, u->host); mirrors = dns_getsrvinfo(zone); @@ -654,23 +647,31 @@ parse_cert(int fd) { } static bool -verify_pubsignature(int fd_pkg, int fd_sig) +verify_pubsignature(int fd_pkg, int fd_sig, struct repository *r) { struct pubkey *pk; - const char *pubkey; char *data; struct pkgsign_ctx *sctx; size_t datasz; bool ret; + const char *pubkey; pk = NULL; - pubkey = NULL; sctx = NULL; data = NULL; ret = false; - if (config_string(PUBKEY, &pubkey) != 0) { - warnx("No CONFIG_PUBKEY defined"); - goto cleanup; + + if (r != NULL) { + if (r->pubkey == NULL) { + warnx("No CONFIG_PUBKEY defined for %s", r->name); + goto cleanup; + } + pubkey = r->pubkey; + } else { + if (config_string(PUBKEY, &pubkey) != 0) { + warnx("No CONFIG_PUBKEY defined for %s", r->name); + goto cleanup; + } } if ((pk = read_pubkey(fd_sig)) == NULL) { @@ -704,8 +705,8 @@ verify_pubsignature(int fd_pkg, int fd_sig) } /* Verify the signature. */ - printf("Verifying signature with public key %s... ", pubkey); - if (pkgsign_verify_data(sctx, data, datasz, pubkey, NULL, 0, pk->sig, + printf("Verifying signature with public key %s.a.. ", r->pubkey); + if (pkgsign_verify_data(sctx, data, datasz, r->pubkey, NULL, 0, pk->sig, pk->siglen) == false) { fprintf(stderr, "Signature is not valid\n"); goto cleanup; @@ -724,7 +725,7 @@ cleanup: } static bool -verify_signature(int fd_pkg, int fd_sig) +verify_signature(int fd_pkg, int fd_sig, struct repository *r) { struct fingerprint_list *trusted, *revoked; struct fingerprint *fingerprint; @@ -743,9 +744,17 @@ verify_signature(int fd_pkg, int fd_sig) ret = false; /* Read and parse fingerprints. */ - if (config_string(FINGERPRINTS, &fingerprints) != 0) { - warnx("No CONFIG_FINGERPRINTS defined"); - goto cleanup; + if (r != NULL) { + if (r->fingerprints == NULL) { + warnx("No FINGERPRINTS defined for %s", r->name); + goto cleanup; + } + fingerprints = r->fingerprints; + } else { + if (config_string(FINGERPRINTS, &fingerprints) != 0) { + warnx("No FINGERPRINTS defined"); + goto cleanup; + } } snprintf(path, MAXPATHLEN, "%s/trusted", fingerprints); @@ -834,7 +843,7 @@ cleanup: } static int -bootstrap_pkg(bool force, const char *fetchOpts) +bootstrap_pkg(bool force, const char *fetchOpts, struct repository *repo) { int fd_pkg, fd_sig; int ret; @@ -842,28 +851,18 @@ bootstrap_pkg(bool force, const char *fetchOpts) char tmppkg[MAXPATHLEN]; char tmpsig[MAXPATHLEN]; const char *packagesite; - const char *signature_type; char pkgstatic[MAXPATHLEN]; const char *bootstrap_name; fd_sig = -1; ret = -1; - if (config_string(PACKAGESITE, &packagesite) != 0) { - warnx("No PACKAGESITE defined"); - return (-1); - } - - if (config_string(SIGNATURE_TYPE, &signature_type) != 0) { - warnx("Error looking up SIGNATURE_TYPE"); - return (-1); - } - - printf("Bootstrapping pkg from %s, please wait...\n", packagesite); + printf("Bootstrapping pkg from %s, please wait...\n", repo->url); /* Support pkg+http:// for PACKAGESITE which is the new format in 1.2 to avoid confusion on why http://pkg.FreeBSD.org has no A record. */ + packagesite = repo->url; if (strncmp(URL_SCHEME_PREFIX, packagesite, strlen(URL_SCHEME_PREFIX)) == 0) packagesite += strlen(URL_SCHEME_PREFIX); @@ -874,53 +873,44 @@ bootstrap_pkg(bool force, const char *fetchOpts) snprintf(tmppkg, MAXPATHLEN, "%s/%s.XXXXXX", getenv("TMPDIR") ? getenv("TMPDIR") : _PATH_TMP, bootstrap_name); - if ((fd_pkg = fetch_to_fd(url, tmppkg, fetchOpts)) != -1) + if ((fd_pkg = fetch_to_fd(repo, url, tmppkg, fetchOpts)) != -1) break; bootstrap_name = NULL; } if (bootstrap_name == NULL) goto fetchfail; - if (signature_type != NULL && - strcasecmp(signature_type, "NONE") != 0) { - if (strcasecmp(signature_type, "FINGERPRINTS") == 0) { - - snprintf(tmpsig, MAXPATHLEN, "%s/%s.sig.XXXXXX", - getenv("TMPDIR") ? getenv("TMPDIR") : _PATH_TMP, - bootstrap_name); - snprintf(url, MAXPATHLEN, "%s/Latest/%s.sig", - packagesite, bootstrap_name); - - if ((fd_sig = fetch_to_fd(url, tmpsig, fetchOpts)) == -1) { - fprintf(stderr, "Signature for pkg not " - "available.\n"); - goto fetchfail; - } + if (repo->signature_type == SIGNATURE_FINGERPRINT) { + snprintf(tmpsig, MAXPATHLEN, "%s/%s.sig.XXXXXX", + getenv("TMPDIR") ? getenv("TMPDIR") : _PATH_TMP, + bootstrap_name); + snprintf(url, MAXPATHLEN, "%s/Latest/%s.sig", + packagesite, bootstrap_name); - if (verify_signature(fd_pkg, fd_sig) == false) - goto cleanup; - } else if (strcasecmp(signature_type, "PUBKEY") == 0) { + if ((fd_sig = fetch_to_fd(repo, url, tmpsig, fetchOpts)) == -1) { + fprintf(stderr, "Signature for pkg not " + "available.\n"); + goto fetchfail; + } - snprintf(tmpsig, MAXPATHLEN, - "%s/%s.pubkeysig.XXXXXX", - getenv("TMPDIR") ? getenv("TMPDIR") : _PATH_TMP, - bootstrap_name); - snprintf(url, MAXPATHLEN, "%s/Latest/%s.pubkeysig", - packagesite, bootstrap_name); + if (verify_signature(fd_pkg, fd_sig, repo) == false) + goto cleanup; + } else if (repo->signature_type == SIGNATURE_PUBKEY) { + snprintf(tmpsig, MAXPATHLEN, + "%s/%s.pubkeysig.XXXXXX", + getenv("TMPDIR") ? getenv("TMPDIR") : _PATH_TMP, + bootstrap_name); + snprintf(url, MAXPATHLEN, "%s/Latest/%s.pubkeysig", + repo->url, bootstrap_name); - if ((fd_sig = fetch_to_fd(url, tmpsig, fetchOpts)) == -1) { - fprintf(stderr, "Signature for pkg not " - "available.\n"); - goto fetchfail; - } + if ((fd_sig = fetch_to_fd(repo, url, tmpsig, fetchOpts)) == -1) { + fprintf(stderr, "Signature for pkg not " + "available.\n"); + goto fetchfail; + } - if (verify_pubsignature(fd_pkg, fd_sig) == false) - goto cleanup; - } else { - warnx("Signature type %s is not supported for " - "bootstrapping.", signature_type); + if (verify_pubsignature(fd_pkg, fd_sig, repo) == false) goto cleanup; - } } if ((ret = extract_pkg_static(fd_pkg, pkgstatic, MAXPATHLEN)) == 0) @@ -930,18 +920,15 @@ bootstrap_pkg(bool force, const char *fetchOpts) fetchfail: for (int j = 0; bootstrap_names[j] != NULL; j++) { - warnx("Attempted to fetch %s/Latest/%s", packagesite, + warnx("Attempted to fetch %s/Latest/%s", repo->url, bootstrap_names[j]); } warnx("Error: %s", fetchLastErrString); if (fetchLastErrCode == FETCH_RESOLV) { fprintf(stderr, "Address resolution failed for %s.\n", packagesite); - fprintf(stderr, "Consider changing PACKAGESITE.\n"); } else { fprintf(stderr, "A pre-built version of pkg could not be found for " "your system.\n"); - fprintf(stderr, "Consider changing PACKAGESITE or installing it from " - "ports: 'ports-mgmt/pkg'.\n"); } cleanup: @@ -1025,7 +1012,7 @@ bootstrap_pkg_local(const char *pkgpath, bool force) goto cleanup; } - if (verify_signature(fd_pkg, fd_sig) == false) + if (verify_signature(fd_pkg, fd_sig, NULL) == false) goto cleanup; } else if (strcasecmp(signature_type, "PUBKEY") == 0) { @@ -1038,7 +1025,7 @@ bootstrap_pkg_local(const char *pkgpath, bool force) goto cleanup; } - if (verify_pubsignature(fd_pkg, fd_sig) == false) + if (verify_pubsignature(fd_pkg, fd_sig, NULL) == false) goto cleanup; } else { @@ -1106,6 +1093,7 @@ main(int argc, char *argv[]) signed char ch; const char *fetchOpts; char *command; + struct repositories *repositories; activation_test = false; add_pkg = false; @@ -1233,6 +1221,8 @@ main(int argc, char *argv[]) fetchDebug = 1; if ((bootstrap_only && force) || access(pkgpath, X_OK) == -1) { + struct repository *repo; + int ret = 0; /* * To allow 'pkg -N' to be used as a reliable test for whether * a system is configured to use pkg, don't bootstrap pkg @@ -1273,7 +1263,12 @@ main(int argc, char *argv[]) if (pkg_query_yes_no() == 0) exit(EXIT_FAILURE); } - if (bootstrap_pkg(force, fetchOpts) != 0) + repositories = config_get_repositories(); + STAILQ_FOREACH(repo, repositories, next) { + if ((ret = bootstrap_pkg(force, fetchOpts, repo)) == 0) + break; + } + if (ret != 0) exit(EXIT_FAILURE); config_finish(); From nobody Thu Mar 6 15:39:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z7tsC6HPvz5pnPj; Thu, 06 Mar 2025 15:39: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z7tsC4jKsz3l4t; Thu, 06 Mar 2025 15:39:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275599; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ue2ViTI8+p76bOq5iJgyOGThFXtAndYGMa8TMYCnajk=; b=etvFZBB3cImdgDMhAYEHOD9xCl/fZO+LGykahRGh3hUxcdgRrVNqQxbzJ2bXKJFswZbxty pu2xI//R1ZoZUIaGTik1RkiSu3GdZOC5q3w4QcT3bZcI7bw2N5Dww0HHBUdapLJenIQr1F YCQpNVYtoW2iY2/wof1I386SBkWdpElgAW9YpYvla3ZKfLA4vffbSn57YhjcSIb1kzmB/e JhLBCICzmoRbFzdNvz3pLMT8B0WxMn9EECP3TGy2/rdb3JoHSnDRsh1bB6VvR1Z8tBVcdw tCyinyU7UH/mCEfqiGwbH0WrxA7ag2gxnRMGZ+6bQEnPAidLY4wb0mA5fqn1+Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741275599; a=rsa-sha256; cv=none; b=Ns8eebLbjjyjuabIwR3ya8N5qbCbefccrrG8xThl8PwRODph3IMjh8GgUpfTrThnQeHQbu PA2DtAuxeAw8EkFGGSDnPGleAf9XddaoAVwQepKgy7wmyPsuOu8sz1uC1F9GSDWyuQcfDG Ay6VWrvAnvcPRrWd2HfIyOOfhxMnn0SKuxxTS1BzrXsUaakQvCegG31pqkrwnH6g32AkZ5 RZxfYV2xD0ZbgVp4f2Fo7hvdHMWodmNDFJVoCJEvn8A/XMCmMGWvCjuxR4Hchm4gFn8yNo JwYnG1pceSNx9pUUEDx+AI/n/KrdxmHl01dtf+zjl2ujM6nmXfmIXYpeXkaAVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275599; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ue2ViTI8+p76bOq5iJgyOGThFXtAndYGMa8TMYCnajk=; b=HzYk1lx4YGIeuDrgeaaIIT0jQ8aPbuEXVt/O2IWaHzVnVNBLrpVdGJMFwsFTGWj3x+NWA2 W6y+OGxyKKA6f9V2V3Q2ltySsuOWNROibuKIMC4iWyvRUyHbOJAeb5jdic4yfgsrnVBcFb 8jXpbkX8dx8XR3MHUe5yLiA8IoObJVkbfttWxfuoGiThIK2X9QUUyGgtjbFxwQDP8mStxL 0LVPBhOnRaDiS/VP1l148kUXRlQ+IWu2TT+S0p5ZfB1gvgCqjnKKevpySOyB1wZXzHHTmc PYpZovdBO1T7lxmFaPW84+8SSZvz7lLoDFqp24b+r98xsJkuTQ8btonMTYTEXQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z7tsC4CVRzww5; Thu, 06 Mar 2025 15:39:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 526Fdx8J028781; Thu, 6 Mar 2025 15:39:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 526FdxOt028778; Thu, 6 Mar 2025 15:39:59 GMT (envelope-from git) Date: Thu, 6 Mar 2025 15:39:59 GMT Message-Id: <202503061539.526FdxOt028778@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: c7c3f8dbcfae - stable/14 - pkg: make sure the repositories have at least an url List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c7c3f8dbcfaeac5b4f881d329cf6cec92a8521df Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=c7c3f8dbcfaeac5b4f881d329cf6cec92a8521df commit c7c3f8dbcfaeac5b4f881d329cf6cec92a8521df Author: Baptiste Daroussin AuthorDate: 2025-01-15 08:06:55 +0000 Commit: Baptiste Daroussin CommitDate: 2025-03-06 15:37:51 +0000 pkg: make sure the repositories have at least an url While here, factorize code to free the repository structure (cherry picked from commit eccf736c3ce6e9566fa9923080b4c24ee7f9ae2a) --- usr.sbin/pkg/config.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/usr.sbin/pkg/config.c b/usr.sbin/pkg/config.c index ce73a08d93f3..521360c642d6 100644 --- a/usr.sbin/pkg/config.c +++ b/usr.sbin/pkg/config.c @@ -1,9 +1,8 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2014 Baptiste Daroussin + * Copyright (c) 2014-2025 Baptiste Daroussin * Copyright (c) 2013 Bryan Drewery - * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -333,6 +332,16 @@ parse_mirror_type(struct repository *r, const char *mt) r->mirror_type = MIRROR_NONE; } +static void +repo_free(struct repository *r) +{ + free(r->name); + free(r->url); + free(r->fingerprints); + free(r->pubkey); + free(r); +} + static bool parse_signature_type(struct repository *repo, const char *st) { @@ -345,11 +354,7 @@ parse_signature_type(struct repository *repo, const char *st) else { warnx("Signature type %s is not supported for bootstraping," " ignoring repository %s", st, repo->name); - free(repo->url); - free(repo->name); - free(repo->fingerprints); - free(repo->pubkey); - free(repo); + repo_free(repo); return false; } return (true); @@ -393,13 +398,16 @@ parse_repo(const ucl_object_t *o) } else if (strcasecmp(key, "enabled") == 0) { if ((cur->type != UCL_BOOLEAN) || !ucl_object_toboolean(cur)) { - free(repo->url); - free(repo->name); - free(repo); + repo_free(repo); return; } } } + /* At least we need an url */ + if (repo->url == NULL) { + repo_free(repo); + return; + } STAILQ_INSERT_TAIL(&repositories, repo, next); return; } From nobody Thu Mar 6 15:40:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z7tsF2dZ6z5pnZb; Thu, 06 Mar 2025 15:40: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z7tsD5BjPz3l96; Thu, 06 Mar 2025 15:40:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275600; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lKQOoiccHI8r78Tdda0IXEWyFRA2xJVcFQwJYGvPUbU=; b=vRMjj7WqaxCCHGzyvBpxzt/2nvccsAWdPPaueJQ4kKKDCXtIdCp+OfNbbkX0hdQG8KcGiZ 6Sy9cs9IMceOStXXXN9sjdm+yzElP9nKxvJwaA6fM3HEkB0VFOTFLmL8xzUJeI2NIV6Sfl 0TC2TUUEZrKApovK+SV7Ym5Os/AFEZLj0KZ/YVSCWNFLYwabV3602n9Ehg9InSg3w7c81v a5W0NAi8eLELXHiKF1+5XQWw3dc7mTAU7KbqE6EeysxtfEtMi9oUtiJytAvoMKM50RBqe8 BaF0xJ1wF6CFDKrO6mL9vJxTTfmf5eXWOPgtvIXwpUvCJ42kTWdiZEZxuuLsCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741275600; a=rsa-sha256; cv=none; b=DowBUXZqg6PLcZkMLjKcsnz4PjyOZfaPsU86H61T/9lEbbp2ViCKLLCT2VRdy3S4I9DkPE 2xBrGBBXshA/oHW00+1jDwYmK6XMOpl/JPBF9TDz82ERAHD2TztWIoCzSUA3fsDnwwOb8D 6WpG8b/6Nn3pW+pjvTgmgEcsslxKOqzcWltGITUTWnLL6iqatBQscQVdlFOdulVoImUCm+ o8Q1sl4HstGyeT/HtaEVBD913zOcbFsUyKtr6R5Kv/amE37vjNjs5fT7F2i4EgUa0HR61R 8E9P+QuuXEr7EtCrvEOnhEXUiSdcxnCAYmNlzWrT31gcPxigX8/4He+gOSayBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275600; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lKQOoiccHI8r78Tdda0IXEWyFRA2xJVcFQwJYGvPUbU=; b=NROgu4lYl69YFKDVegYjCmOQ6YOgp8fuUGhU2FbBFt+HZbE2sxcYHl+N2zBxR5e+qY1sS+ KkbVkj3pYgiV3XxxN4duquaEuV/CG1+23OLevETeulp6bWZ+E/DRzfrXCiqvxmfemYvkQz IMoqQhmCN11W1i6Hwi6CT5uxc8tjQ1J6W/1Fqflq5rbeHG2hBHt4zYU7QX2lRLbk4haQ1N 4hiCkYiOoBepr++4QpiYq3MQn/nkRbqIXr3d0605dU5baflj70D6MowPxWwZjYUB8HFdob ljStfg3FtT2LPg5Y572JoLtnXn8LjB1RvR9vesKT+lBh5P+OObwcpze8qZsj0g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z7tsD4mBwzwRr; Thu, 06 Mar 2025 15:40:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 526Fe08T029896; Thu, 6 Mar 2025 15:40:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 526Fe0qT029873; Thu, 6 Mar 2025 15:40:00 GMT (envelope-from git) Date: Thu, 6 Mar 2025 15:40:00 GMT Message-Id: <202503061540.526Fe0qT029873@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 2b8f8ede6e6b - stable/14 - pkg(7): support configuration overwrite like pkg(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2b8f8ede6e6b83805ceeb33d51f08282ab4445b4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=2b8f8ede6e6b83805ceeb33d51f08282ab4445b4 commit 2b8f8ede6e6b83805ceeb33d51f08282ab4445b4 Author: Baptiste Daroussin AuthorDate: 2025-01-15 08:18:46 +0000 Commit: Baptiste Daroussin CommitDate: 2025-03-06 15:38:16 +0000 pkg(7): support configuration overwrite like pkg(8) with pkg(8) it is possible to overwrite a configuration like adding FreeBSD { enabled: false } in /usr/local/etc/pkg/repo/overwrite.conf which allows to change any value which can have been reviously configured in anything in /etc/pkg/*.conf now the bootstrap supports the same MFC After: 3 weeks (cherry picked from commit 5c341fe5123d4aa6961066542de63dd4431d004d) --- usr.sbin/pkg/config.c | 55 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/usr.sbin/pkg/config.c b/usr.sbin/pkg/config.c index 521360c642d6..e02da1461294 100644 --- a/usr.sbin/pkg/config.c +++ b/usr.sbin/pkg/config.c @@ -354,51 +354,79 @@ parse_signature_type(struct repository *repo, const char *st) else { warnx("Signature type %s is not supported for bootstraping," " ignoring repository %s", st, repo->name); - repo_free(repo); - return false; + return (false); } return (true); } +static struct repository * +find_repository(const char *name) +{ + struct repository *repo; + STAILQ_FOREACH(repo, &repositories, next) { + if (strcmp(repo->name, name) == 0) + return (repo); + } + return (NULL); +} + static void parse_repo(const ucl_object_t *o) { const ucl_object_t *cur; - const char *key; + const char *key, *reponame; ucl_object_iter_t it = NULL; + bool newrepo = false; + struct repository *repo; + + reponame = ucl_object_key(o); + repo = find_repository(reponame); + if (repo == NULL) { + repo = calloc(1, sizeof(struct repository)); + if (repo == NULL) + err(EXIT_FAILURE, "calloc"); - struct repository *repo = calloc(1, sizeof(struct repository)); - if (repo == NULL) - err(EXIT_FAILURE, "calloc"); - - repo->name = strdup(ucl_object_key(o)); - if (repo->name == NULL) - err(EXIT_FAILURE, "strdup"); + repo->name = strdup(reponame); + if (repo->name == NULL) + err(EXIT_FAILURE, "strdup"); + newrepo = true; + } while ((cur = ucl_iterate_object(o, &it, true))) { key = ucl_object_key(cur); if (key == NULL) continue; if (strcasecmp(key, "url") == 0) { + free(repo->url); repo->url = strdup(ucl_object_tostring(cur)); if (repo->url == NULL) err(EXIT_FAILURE, "strdup"); } else if (strcasecmp(key, "mirror_type") == 0) { parse_mirror_type(repo, ucl_object_tostring(cur)); } else if (strcasecmp(key, "signature_type") == 0) { - if (!parse_signature_type(repo, ucl_object_tostring(cur))) + if (!parse_signature_type(repo, ucl_object_tostring(cur))) { + if (newrepo) + repo_free(repo); + else + STAILQ_REMOVE(&repositories, repo, repository, next); return; + } } else if (strcasecmp(key, "fingerprints") == 0) { + free(repo->fingerprints); repo->fingerprints = strdup(ucl_object_tostring(cur)); if (repo->fingerprints == NULL) err(EXIT_FAILURE, "strdup"); } else if (strcasecmp(key, "pubkey") == 0) { + free(repo->pubkey); repo->pubkey = strdup(ucl_object_tostring(cur)); if (repo->pubkey == NULL) err(EXIT_FAILURE, "strdup"); } else if (strcasecmp(key, "enabled") == 0) { if ((cur->type != UCL_BOOLEAN) || !ucl_object_toboolean(cur)) { - repo_free(repo); + if (newrepo) + repo_free(repo); + else + STAILQ_REMOVE(&repositories, repo, repository, next); return; } } @@ -408,7 +436,8 @@ parse_repo(const ucl_object_t *o) repo_free(repo); return; } - STAILQ_INSERT_TAIL(&repositories, repo, next); + if (newrepo) + STAILQ_INSERT_TAIL(&repositories, repo, next); return; } From nobody Thu Mar 6 15:40:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z7tsG1D8Bz5pnVL; Thu, 06 Mar 2025 15:40:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z7tsF5gXMz3lCQ; Thu, 06 Mar 2025 15:40:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uXIXTJ2wuQX6J+niJT4tGUc8ccw2yTPyAPJZLzfRZas=; b=tltB73p0yOgRka6w755jKxbfu5WMNVHIk0dBJWSVXi7CSha9eUYXHcGXuHBhipLlke/XzX 9A0VjPW46uNBKSDXwOwRHs3ENSEOLQw0hO9qzqPeFJwub++cr6jP3xEGIe7+t5o1oajAj4 VseUkYw9hFDQlPjGfdcIW7MGdcSoY3tv3vCT68BE3TbCsvRgj+FHSIOKqI1o67kFM1UPDu Cf8ZQUeaB/ngZ5CfhlIW4pLtnLuQuu6/T5ytt/kLORv3d/bLXgS0Jewg1TtwpI1M+Dtg0U 4LuXuA+6b2RfkWKlKwDGJzg+/UE7nbaDkPuKvr9BAss3deEnOb2U96D8E669yA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741275601; a=rsa-sha256; cv=none; b=CBjRSZNF+PLxqaFETdGJA6oGjr+I6fOH0/1WKnRhwtnpm18UEVYfe5C2HWieDICsMm9wqs MngVOxAM2fAjlHzueeeVshBlkiEqkGdVTKGYbiQDoOx+6nd8dhGvqGfowkmkpgD698M2Js hKzno68NFraZgzOTZ0P4xvp/AQqx2YlYYyl7DTjNJ3P4a00rjdxwMffLyB8Cn561LipNxf dMuZiIFJ+6T6t7Cjwvl3LP944k7ZtyJ82sZS9Ccp1Ym/vnyoxJPSA8tCUSXd5h1uaw11Ii rOLZOBMm25+7TYXSJbDkImUZbX/kAQ5jOIdomMCCRT3M7sL0NtyRy7e2zO20Uw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741275601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uXIXTJ2wuQX6J+niJT4tGUc8ccw2yTPyAPJZLzfRZas=; b=sDEclcvf6S9P/zACbGuBaqk1F8qx0ufnjmCxqsuO/EIFujGIInrkrqAYkFVSRo4lRtyUUz RyguqLTu8PW4MQvYo3Aqw/EUqWyJrd/IPvN+1e5PNSHwBFVWwDVdyrFPlUQQfdt+lHBGg4 5atA2JlZhniRx6uASG+SYHa8/OE44Pa4KnVut8dxLUAOq+PyeX5vlUg6yLvpv5AhhVDQo/ TKzceYcsnuImRFSXggg/qa3ns93xSFSosp5WcPZbHMM7h0rhGxGEFXbCWxt3mhS6tjWxT2 e2j/SJ2aUEx5sXkvkIRhTIroAykPHfh17beUCIdNdc2aEp/WwSukdoOn/ouR4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z7tsF5CsPzww6; Thu, 06 Mar 2025 15:40:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 526Fe1XO030786; Thu, 6 Mar 2025 15:40:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 526Fe1ju030782; Thu, 6 Mar 2025 15:40:01 GMT (envelope-from git) Date: Thu, 6 Mar 2025 15:40:01 GMT Message-Id: <202503061540.526Fe1ju030782@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: 0bd3f757f9cf - stable/14 - pkg(7): expand VERSION_MAJOR, VERSION_MINOR, RELEASE and OSNAME List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0bd3f757f9cff089e07688f598d70531f5ee32e3 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=0bd3f757f9cff089e07688f598d70531f5ee32e3 commit 0bd3f757f9cff089e07688f598d70531f5ee32e3 Author: Baptiste Daroussin AuthorDate: 2025-01-16 13:50:42 +0000 Commit: Baptiste Daroussin CommitDate: 2025-03-06 15:39:14 +0000 pkg(7): expand VERSION_MAJOR, VERSION_MINOR, RELEASE and OSNAME Catchup with pkg(8) by expanding more variable when parsing repositories The only missing variable now is ARCH, this will have to wait for pkg 2.0 to be the lowest supported version. (cherry picked from commit e3b4a51580fcd4a1ddf0d61feb5f325ff1de5420) --- usr.sbin/pkg/config.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/usr.sbin/pkg/config.c b/usr.sbin/pkg/config.c index e02da1461294..16f7598fc745 100644 --- a/usr.sbin/pkg/config.c +++ b/usr.sbin/pkg/config.c @@ -478,11 +478,26 @@ read_conf_file(const char *confpath, const char *requested_repo, struct ucl_parser *p; ucl_object_t *obj = NULL; const char *abi = pkg_get_myabi(); + char *major, *minor; + struct utsname uts; + + if (uname(&uts)) + err(EXIT_FAILURE, "uname"); if (abi == NULL) errx(EXIT_FAILURE, "Fail do determine ABI"); p = ucl_parser_new(0); + asprintf(&major, "%d", __FreeBSD_version/100000); + if (major == NULL) + err(EXIT_FAILURE, "asprintf"); + asprintf(&minor, "%d", (__FreeBSD_version / 1000) % 100); + if (minor == NULL) + err(EXIT_FAILURE, "asprintf"); ucl_parser_register_variable(p, "ABI", abi); + ucl_parser_register_variable(p, "OSNAME", uts.sysname); + ucl_parser_register_variable(p, "RELEASE", major); + ucl_parser_register_variable(p, "VERSION_MAJOR", major); + ucl_parser_register_variable(p, "VERSION_MINOR", minor); if (!ucl_parser_add_file(p, confpath)) { if (errno != ENOENT) @@ -506,6 +521,8 @@ read_conf_file(const char *confpath, const char *requested_repo, ucl_object_unref(obj); ucl_parser_free(p); + free(major); + free(minor); return (0); } From nobody Thu Mar 6 22:28:15 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z83wH2P2nz5qFDF; Thu, 06 Mar 2025 22:28:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z83wH1v7Tz3DHV; Thu, 06 Mar 2025 22:28:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741300095; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=INAVr3pqRWd8LzuF6W7BsQ03WbqVFKYoqfMZlmeg8uI=; b=U9ZuiTRCIpEkSTfQNCK8B7kN82+SGP2ioclWADQcOD4n3oMfBHA5EF21A9dv3xdQc4iu3G nAc13Ejff4g1Wu4xqvGiAxL9c3bHcZiV+lIMu9mAKQuwdM+KKGSCy6caVkv/ruu1Q6k1g8 k+ySpZCgzP/uBE8wPZCs9Saj+5UtIFuhFjm1EwmBq8dhfoxQxQZlD+iln+4qbSN/sZf8gb Ax1VXUnoBIWfIOymII3wRkS7P6pkyDWIgZhlySh4ERiT2kr3x2Wv5xSu4bWJ2EFLST3E/j ccymtLNBoSMzalr9Yq05Pryl2uh25sb+txJuv9gt+yIAfnAkLAOu2L3mRn/mvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741300095; a=rsa-sha256; cv=none; b=T19H4W2pGvAq6ShRN0XkUFYJYraqjuANZ0kKItrNnD8FdeDsnsksNDPspBxb3n2QmEUUBz AaswfYPjXSC34trwtIVjf150ehN/mZ8C6DrVQUR7pwInXUr3cF8Q5r0npIfeGhh4Hqk2UQ 76XDEETX0uMYtgjhWxrNCdqXviny5HLr12rEfpdLVfd8kua6Y2xTNhTz2TjWESfp6BiuoY JWF/E2MwEkCJSu4W2APT/9zutYY1+vFWoohw1txqe3RdS0527FY+o5LobDdLyA5AqMeK19 saeT9rsa7YsFtLW+cfOtmtlEO+KXSSvcZbG/dV98x/3Cy8W4Pg9+FsbOXz4Q8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741300095; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=INAVr3pqRWd8LzuF6W7BsQ03WbqVFKYoqfMZlmeg8uI=; b=ukSgT0ZmYvm2NEOR9PrcOdUeugqq/5K9XN32kWnylI+h5OJ6Pwghj9ztZJAsho5NsHUcP3 lExinJnajni3k0e2OwqhI6UoXg4vI878wfzjV+39+iixbvmPRNVcnT7Yfj4UVCWeIiFWc4 phVaAcRI7fwmcAw7pcZtQvFbCEaKY4g7lTd12YuTa27O2q150m6szhifnC8pAKi46Z1cgu 55MfInY+hQV9vP74QPeOD95ysR7z6BcAOLR3h/2+HVSh6DYMHUqu0mojTS0/BoRYLeAw+M j+tgF6CTAOeasNBqj1R2AFpAS04AJVNPfxtzF+2pe1BQOzNjl1NeLECg83VXpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z83wH1QSyz18Cw; Thu, 06 Mar 2025 22:28:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 526MSFAA096272; Thu, 6 Mar 2025 22:28:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 526MSFa3096269; Thu, 6 Mar 2025 22:28:15 GMT (envelope-from git) Date: Thu, 6 Mar 2025 22:28:15 GMT Message-Id: <202503062228.526MSFa3096269@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 79838a8d7e4a - stable/14 - stf.4: Remove spurious word List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 79838a8d7e4a0ec48c3853a663123ee039384670 Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=79838a8d7e4a0ec48c3853a663123ee039384670 commit 79838a8d7e4a0ec48c3853a663123ee039384670 Author: Matt Simerson AuthorDate: 2025-02-24 16:11:52 +0000 Commit: Alexander Ziaee CommitDate: 2025-03-06 22:26:50 +0000 stf.4: Remove spurious word Improve grammar by removing spurious word. MFC after: 3 days Approved by: emaste, carlavilla (mentor) Pull Request: https://github.com/freebsd/freebsd-src/pull/1605 (cherry picked from commit 44c70602c8a6add87a234154d005b9c3ff3e4825) --- share/man/man4/stf.4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man4/stf.4 b/share/man/man4/stf.4 index 2c0296b204d9..c93600c15e0a 100644 --- a/share/man/man4/stf.4 +++ b/share/man/man4/stf.4 @@ -201,7 +201,7 @@ The IPv4 WAN address. The prefix length of the IPv4 WAN address. .El .Pp -These can parameters are all configured through +These parameters are all configured through .Xr ifconfig 8 . .Pp The IPv6 address and prefix length can be configured like any other IPv6 address. From nobody Thu Mar 6 22:32:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z840g6LM7z5qF93; Thu, 06 Mar 2025 22:32: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z840f51Fhz3Fxn; Thu, 06 Mar 2025 22:32:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741300322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=twsUOwe8bdMwNAEV4F3FAa8v8IOYkJnvarztqFwRfP0=; b=wsWmEJDxhsiRn6XMnVTYK2xEfo8RqOg0YrLDdbP28PamaR5mrY3unsLTeIWgkTAbN+BByG ja5hFSHuzGFP7L690BA/im7YS1YFyLGK2cIlhjsYGnu1pQNVD5bRPKuGUyB8gsOWC6l1za +MseoBAEQinLaZG+XN/tDMWc9bQZzSEUoBciDWnELWomGqklcM0kpB7+xDF7w+JmBwsaFY zsMmwk5NgzilqFRWSLUgPSBG6cD7EuPlGCU3FW0g1E1h4Y/eDG64JsB5RSyDAICSnHOzJg RjaCiuk3dbUP7aZL4VkrZ01GXrkG3q2DqGBMPYFCI18/1NpmnZLm2CkykKRPCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741300322; a=rsa-sha256; cv=none; b=kXkGGPRvQiABMguS5zJeqaZCoyHC456cmf1WJxKoK3ltqw30R6cRLGl1dyt/bF1HyYYdYA ZZfLnc4WtMVrrN8+yax4bDT1WFM5tE725P7cYDqtFw8ELP87t6abBGKOapa2fXmLd2zfac dZav8zbjADG/0QnJtf8CQ2DmmLj33yNYpFoMDd1B4IeTwfZaly1VvVghhvIbm6PsCNwwWN 6/5dfOz2WPS+qPG0UpZbd0MtcAwmI5KHWf3YwryRwsyIxO8mQvq5AdIFUq2zHm39+DYeOP VwYMghVVrZSrPzG2STF3LTVwb+b6dJcuR8uQpazJoMUzMOuLsXTTIXzwi796lg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741300322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=twsUOwe8bdMwNAEV4F3FAa8v8IOYkJnvarztqFwRfP0=; b=B2HnGkanqcdLciGJAVQjq8dFpbCGKaZl5ISU4qYKUmb9MQVK7uLAwYqu+gu0GY5LsQ6qxA rpTHEuYA7AqKLCeTh4xfkozDwphV2GaTL0yCBk/5GsJXJ/cw7OyUQ42UIsVJ76i+pIjYDH wVSvmlQ5SuxpDCLo3ec4yS7HfnCcSOoBPoQfUfFT7JTlciQfaqqs/tYxivZEJYzs7KDS4h 3uQOhs7oJTnq02qIWwVxIXnTRT9i5RHRTaBORV23jJCnb2CNFuT7HKjvwPUeYDgAlMK6fi 2XmFx+C6599k+XO0HbkdxUSeq/404bNQ8byG8Eo8BkH+MZkc9hx0SYaFM0NDzQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z840f4cQwz18B3; Thu, 06 Mar 2025 22:32:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 526MW2sK010447; Thu, 6 Mar 2025 22:32:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 526MW2Pu010444; Thu, 6 Mar 2025 22:32:02 GMT (envelope-from git) Date: Thu, 6 Mar 2025 22:32:02 GMT Message-Id: <202503062232.526MW2Pu010444@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 0ba8e7f6064f - stable/14 - ports.7/history: Don't forget macOS! List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0ba8e7f6064ffdf5fd9aa1ee8efabaee93ac0e2f Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=0ba8e7f6064ffdf5fd9aa1ee8efabaee93ac0e2f commit 0ba8e7f6064ffdf5fd9aa1ee8efabaee93ac0e2f Author: Alexander Ziaee AuthorDate: 2025-03-03 14:50:53 +0000 Commit: Alexander Ziaee CommitDate: 2025-03-06 22:31:45 +0000 ports.7/history: Don't forget macOS! Jordan Hubbard, one of the original authors of the FreeBSD Ports Collection, later went on to create MacPorts, an evolution of the idea written in TCL instead of Makefiles. Further, NetBSD's pkgsrc is available natively on macOS. In either case, the idea of ports which originated here spread to macOS. Note that in the HISTORY section. MFC after: 3 days Reviewed by: carlavilla,Jessica Hawkwell on Community Discord Approved by: carlavilla (mentor) Differential Revision: https://reviews.freebsd.org/D49205 (cherry picked from commit 8a2c189e893811a44b30696a1af9b5c7800ab60b) --- share/man/man7/ports.7 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/man/man7/ports.7 b/share/man/man7/ports.7 index 911135a8b631..e25da8ebe567 100644 --- a/share/man/man7/ports.7 +++ b/share/man/man7/ports.7 @@ -744,9 +744,9 @@ The Ports Collection appeared in .Fx 1.0 . It has since spread to -.Nx -and -.Ox . +.Nx , +.Ox , +and macOS. .Sh AUTHORS .An -nosplit This manual page was originated by From nobody Fri Mar 7 00:00:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z85yC74lSz5qKxr; Fri, 07 Mar 2025 00:00: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z85yC6KgHz45XC; Fri, 07 Mar 2025 00:00:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741305603; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2QrX3iWSwInKv+QCBvIyhy1VH9/kVnOlHr9gMboEMzQ=; b=GnY6/wphJA+1+7m7Ytb0RYckHi0nUADvYUnhbU184X26PpkG0GZx6/7FYZaVl6GjMBgHYT IdOof1Seq/oZb0HLmHUcCGlcKzhYj1Zs8LMCjT9fryiTboECgj9R+n0jqDert8UdDwyusR IEmYcidTUm8CSfqtg0fC2IzJ8Js7wh3AoyptyxVBV2DmMAY0BkNtnzuGXLzjoUfBNNqQ3L hPVh4txMpegQXsmxXiAciUD283PKCMtabePnk8OnQ7iNFVHzPqCVnHwbLG64TBxzyOWfyD fRKqndgaujMwpljWwZPMn/snhKv9T96kcyBT8PWJ+gWRc3XwJm/CFGHzZHpsZQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741305603; a=rsa-sha256; cv=none; b=hDQcc274BLIppYTqveUgU2Ialhc6usLIB527Ua7UVSx/Cg8mUqvbSvjLgdCIAeDQYLmik+ teuLOy475Bgsj5pWNmF3KSIYt2VXOkwxqCStwfOXovDx9zS7Pt+6yXY4Fl/9zPqov4avle F6tku+6pmHDGrCUDmMc7pDQYuxWp1aJ90kiYpqSwyqIhXIDypV3hjQVZOnUm7w7oix+eDC b91t7AblobTVw84t4DvJ+aqXqNXHWs6mBYlYnnVDp54v76q73duM0RJnsOnxd7xFMttffY vtY7zvWqq48Ti5aJ2/lDfAQbWr1ZmQPV+Hqr0jszIEZ7q00KcpiWCcFV1tDGCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741305603; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2QrX3iWSwInKv+QCBvIyhy1VH9/kVnOlHr9gMboEMzQ=; b=ZGOY58PF9hg9J2sKplIWy89POA/AkBKX0e2fzYNFRUyJ3jr104URccdw8fahH7Qg9BXrYG ND37b/+HAeps11XkUysBKx90aVsHTNroOp/R3jWCloKWym6IzZrPmcDI/z6xKX5s4N8hsZ DL1mNaTdVpxb0vubRiUoJpi/ZIoxUw0hkInpsYWbEyHzHDleCrTexL2LI6N0oGe/rbKcRW t3mCsqLRSJFvpoCSmypsUWiyFc2n45l67sfj3ybyvjsvZCIV6YmdoOeTQ7tAKZi7Wjdw8T YPrGWtfuvj2QaBZ/eHowQzVcj1OROquQ44OPQJrm5i2Xc4MWvgpBJTk3V21eTg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z85yC5h5Yz1Bx2; Fri, 07 Mar 2025 00:00:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 527003jU067057; Fri, 7 Mar 2025 00:00:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 527003jo067052; Fri, 7 Mar 2025 00:00:03 GMT (envelope-from git) Date: Fri, 7 Mar 2025 00:00:03 GMT Message-Id: <202503070000.527003jo067052@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 882b9f3f2218 - releng/13.5 - Update in preparation for 13.5-RELEASE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.5 X-Git-Reftype: branch X-Git-Commit: 882b9f3f2218b50fc1d2d31ee71b7765c7f09f85 Auto-Submitted: auto-generated The branch releng/13.5 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=882b9f3f2218b50fc1d2d31ee71b7765c7f09f85 commit 882b9f3f2218b50fc1d2d31ee71b7765c7f09f85 Author: Colin Percival AuthorDate: 2025-03-07 00:00:00 +0000 Commit: Colin Percival CommitDate: 2025-03-07 00:00:00 +0000 Update in preparation for 13.5-RELEASE - Bump BRANCH to RELEASE - Add the anticipated RELEASE announcement date - Set a static __FreeBSD_version Approved by: re (implicit) Sponsored by: Amazon --- UPDATING | 3 +++ lib/csu/common/crtbrand.S | 2 +- sys/conf/newvers.sh | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/UPDATING b/UPDATING index a40ddb1d3670..a3a7aeef51a9 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,9 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20250311: + 13.5-RELEASE. + 20250117: The layout of NFS file handles for the cd9660 and ext2fs file systems has changed. An NFS server that exports any of these file systems will diff --git a/lib/csu/common/crtbrand.S b/lib/csu/common/crtbrand.S index 0ed86bfba2b2..3a78081f1bde 100644 --- a/lib/csu/common/crtbrand.S +++ b/lib/csu/common/crtbrand.S @@ -43,7 +43,7 @@ .4byte NT_FREEBSD_ABI_TAG 1: .asciz NOTE_FREEBSD_VENDOR 2: .p2align 2 -3: .4byte __FreeBSD_version +3: .4byte 1305000 4: .section .note.GNU-stack,"",%progbits diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 7d74035f3adf..6273ec61f520 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="13.5" -BRANCH="RC1" +BRANCH="RELEASE" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Fri Mar 7 00:00:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z85yJ5MQdz5qKxs; Fri, 07 Mar 2025 00:00:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z85yH5n52z45XL; Fri, 07 Mar 2025 00:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741305607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J3C/r4k5dxm48TU2fL8ga4WGWxRHcWGublUM4liMm7U=; b=uBVduzmxuTZ6zOybuZdfwi2RqvguPHWDk6IQvkNVP2sdvonYadUuvBQq+oLWmJZ9fB6av7 r0eRDZf2eIKxsLyRlT4PkUW5zp2wJfpSdxjFh62C/Zm64jimBqU4PeEI8Oez1v2BtdSRee Vi9N5engZ/IEqt5x9caDMXuD6GmsmmKVeCzAd0Twv9auinT2al/fbNrfrqC/nNSXnYWPek oO37QrowWuiNi7CA6zG2A1/Mx7OUSzSLI4qKGrzDqUCMFOJMnf04QS/HwedR3vGUpFLg7S /VS/VOjcS9gcJ8Vlc97Gs0zaAYrx/5/7FxGtiafk/mh75U+r2gIT9b2z9JlShQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741305607; a=rsa-sha256; cv=none; b=LhfLpymhBR5tn4d0fD6vcomLb3drW6+Tf8tct0LQ0e2hc2aufKHG2M7xV5SzTEH8KI8hsS uSxNXT8g3yY6tMCQhZhZM8ZFBh0NlygXqU5lZA6bLQCJZjKBbt6Htrylqwct7pgBqlCW3N mwrPephBgRGULbzbL6UiUNAX1XP7j6P8XeiwR2yMgfoKCAcAts8VgyXJ34G0yJ3casTd5L a2hSaXjv5CKokPUYjx5xMwaZTCEz9dY4HojP8DtWPn//v1KgEuK9qKnVgl4SByiXuO1Gzv CRK1ox4nZzn+WLKsP5SWsSuS2UzjjyBm0VhOnHq8BTUUiE+P82I8O7ep580+HQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741305607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J3C/r4k5dxm48TU2fL8ga4WGWxRHcWGublUM4liMm7U=; b=XBd78zuHjaFOHYMmS8JYT7LPk4shhdqcJUvBbRgh2kzpm8XUgFnGlHhgPcMCpKmJhQ6buv QsHmD2+3jT1BCkBtevg9E4WRxzhlKyEcwsx1v1l1STLuoO2EtBFOY+zz8/niElxNbabdNE tN5NwouW3PrTd0Zb2kCafKWqk6R5P6gNhQ68beenmSwxyfPtVubfe3eVyOWGWGf+uS2ftS JLbOski36y8sAhFJ3iLNfS7mHAgGSD1K5ivD4x5GZ2zIaxjoq+JbRkNvu6uWtOyc4MckTW dex6dCG9IxERNbNUVUPIjrc0q3fc2TRFBDSotTxjfoPbNMXe2FC9RbTYxbwlvQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z85yH4sd7z1C0N; Fri, 07 Mar 2025 00:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 527007da068008; Fri, 7 Mar 2025 00:00:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5270077C068005; Fri, 7 Mar 2025 00:00:07 GMT (envelope-from git) Date: Fri, 7 Mar 2025 00:00:07 GMT Message-Id: <202503070000.5270077C068005@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 6cab10b07f3f - Create tag release/13.5.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 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/tags/release/13.5.0 X-Git-Reftype: annotated tag X-Git-Commit: 6cab10b07f3f241d647603730ae148fd44b7d3dd Auto-Submitted: auto-generated The annotated tag release/13.5.0 has been created by cperciva: URL: https://cgit.FreeBSD.org/src/tag/?h=release/13.5.0 tag release/13.5.0 Tagger: Colin Percival TaggerDate: 2025-03-07 00:00:00 +0000 Tag 13.5-RELEASE from 882b9f3f2218 -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEglY7hNBiDtwN+4ZBOJfy4i5lrT8FAmfJ4+kACgkQOJfy4i5l rT+zdRAAmejMGlQviNxYT2gltPERAn8VJZEt3obAkRGgmnL2YyIwggho9mOtki7i jAxU3HX7ERJRYz+5XyDVI1VJNtvw3Agy1UTxZ2HsnlIqY8hcjhyjN3WN3atuysCK BxIRYrw/Hg1TIfXltukwh1nonvP5zUSr22chBeWWFC397avtzLyJQBTRNgIKhNmI pSZVqsK5U1IIgjVPPnif+1ZP+Zb/AaVdj11dhzS1QtsqzlOmhwCTizNDyq6ywQjz qMmj0xLJJwNhUOfdxCkOIthzAgVJSirMwURpbD4rjxtOuoJY3txMfercTm8D6pYu V3DemRm8sT/9fm7Eo5Q32o4LQN8C1RM5/tLkWxuTwHo8zUInqfxkIWLN0Kg9JTNh NF/jyZeCsP6CM6VjOHpLmHv7ivQZq2g9AWO+pV79oU/ZkWre6mtEfbJBHctoeyBR tgUzvn84wNsFfwS2ugwFB1mlewv3aGgCP65AlMIiEXUmmhjBb/O0xQ/7uaYT/QIX +Uk8fe/Uw7B7BOYItj5YiVh07FNJLLH6cnEsfNrmuZUomOrnc6/l+Z8SA69YsDa1 v30wYvilqbGKfnjJF3O3V4autkRkyUneB+MnjPNbpTyv+K67qw20Av/1PmGllcbH Sm+ykPs5b1MwZFnPanskeTN8K2pI3ImeiSgROf9xbIG9rvXpeOk= =byqC -----END PGP SIGNATURE----- commit 882b9f3f2218b50fc1d2d31ee71b7765c7f09f85 Author: Colin Percival AuthorDate: 2025-03-07 00:00:00 +0000 Commit: Colin Percival CommitDate: 2025-03-07 00:00:00 +0000 Update in preparation for 13.5-RELEASE - Bump BRANCH to RELEASE - Add the anticipated RELEASE announcement date - Set a static __FreeBSD_version Approved by: re (implicit) Sponsored by: Amazon From nobody Fri Mar 7 00:33:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z86jH29LSz5qMvj; Fri, 07 Mar 2025 00:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z86jG51yrz4Pr1; Fri, 07 Mar 2025 00:33:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307634; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VArXX722IsPgzav/1JxiNMep1P7k4OuDYU2+EfvAMS0=; b=o+5EPzb4AbifuIwfkxGRZ+b3+B2Wr2FfXS2nsOFEwxmUSotUfaDsbopfs+5zjXpqZbrxgk cGYfjnhxUe12J9ZzGoMmpefklkVyViwTebCcqh7N+UUNNXgbzAtTyxu/l/mTsAU6Oo6KDt Fn4etLSyF0rqF8lD2iuIRQi1B/vv4Dc+6loYu2YLzZU5EUAsMiCyBfgq9fINxcbLeLaAta lcLDo8FYgk3UZ9e0tx6E1mCKcvNu38hHl7qmSo/H7kmh4oJhaJe0yQ4DFNp3Jhy6UuK9eu IaWKwKCMhw5Bfb+CjHLVHwG2fA4KMCkHU/nOBw2MG2wbCzu2vOM1GlQ+1CfBjQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741307634; a=rsa-sha256; cv=none; b=MCf6QL2U5De3Hbw9eE3d57s1B8G6EZS4EQCJoB2lNHMCCmuYeWYErPIRMMb/FE/1HSbUhw Cpcx6kxgDSGtoy9ITBigRfCfNhzdlXsl9cS9Ny+p6c5z6bvq12B0+iMli3Z7FtSjiCbSso GVBpZce8ANhY0ts0AVXcMzMNUDhNj5z0npITsAI0VSPVW9X/21jv4mlBrIdCEAo9UVjHEZ 0hMtp9MESpMrdhk7DCNYTfHgn90Rl5CPFRzSw5Ajj3OfvOKj5FZ9anOAThfINjkuvXe/T3 XcBlpWjRM8DBVrBuCnJgyxz+4Y2sYVfFaGkDElRrt5WdK2rpamjz24Nl9CEkqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307634; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VArXX722IsPgzav/1JxiNMep1P7k4OuDYU2+EfvAMS0=; b=kyKiFlk6EM7vWHksPmYMv9MezCMbBUYHV1aNvkF64254kEwT1Q9Ln/cLtg9qXx8Q55lV4C RSCBdciFbu3a38yj2bRFnDYFhNLFA5b2vYXdIcSIYGSXqgWsTBL+tlQbwPYhZTM08pvCWq K4vskKE2eYBSdPvBn0/uIeINW4asFV1FfPiTR5Uc9zUCs3Yy26H5dWNW4MIh7GtS8dW+7F vNBW0nGuH60prhePKKx4Xq7tkV1K1bmiB7uh924kqA3xiQC9/rxAP7TN987hRPRQNM//Vq +fcnRkA26bEIQni4aP31YiIt9KIwptPb1KDdLilIIJzcMnX18a8UtZoD80TIWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z86jG4Mt6z1CVt; Fri, 07 Mar 2025 00:33:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5270XsNj036650; Fri, 7 Mar 2025 00:33:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5270XsvL036647; Fri, 7 Mar 2025 00:33:54 GMT (envelope-from git) Date: Fri, 7 Mar 2025 00:33:54 GMT Message-Id: <202503070033.5270XsvL036647@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 23ad1f4bb737 - stable/14 - var_run: Clean up style List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 23ad1f4bb73778c1e01600be76a4a85edcc6c330 Auto-Submitted: auto-generated The branch stable/14 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=23ad1f4bb73778c1e01600be76a4a85edcc6c330 commit 23ad1f4bb73778c1e01600be76a4a85edcc6c330 Author: Cy Schubert AuthorDate: 2024-11-26 15:16:22 +0000 Commit: Cy Schubert CommitDate: 2025-03-07 00:32:53 +0000 var_run: Clean up style Clean up style and make more consistent. Replace test with if-then-else to make the script more legible. Replace the call to dirname with the shell %/* operator avoiding a fork & exec. Reorder the test for $var_run_autosave before the test for /var/run on tmpfs. This avoids gratuitously scanning the mount table for a tmpfs /var/run. Initial concept by and in discussion with: Harry Schmalzbauer No functional change intended. Differnential revision: https://reviews.freebsd.org/D47773 (cherry picked from commit ed9712f8943573136fa92a0e61c8e7c10952eeb0) --- libexec/rc/rc.d/var_run | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/libexec/rc/rc.d/var_run b/libexec/rc/rc.d/var_run index 9f0f7fcf37fd..6d54aedd7421 100755 --- a/libexec/rc/rc.d/var_run +++ b/libexec/rc/rc.d/var_run @@ -18,26 +18,30 @@ stop_cmd="_var_run_stop" load_rc_config $name _var_run_load() { - test -f ${var_run_mtree} && - mtree -U -i -q -f ${var_run_mtree} -p /var/run > /dev/null + if [ -f "${var_run_mtree}" ] ; then + mtree -U -i -q -f "${var_run_mtree}" -p /var/run > /dev/null + fi } _var_run_save() { - if [ ! -d $(dirname ${var_run_mtree}) ]; then - mkdir -p $(dirname ${var_run_mtree}) + if ! [ -d "${var_run_mtree%/*}" ]; then + mkdir -p "${var_run_mtree%/*}" fi - mtree -dcbj -p /var/run > ${var_run_mtree} + mtree -dcbj -p /var/run > "${var_run_mtree}" } _var_run_start() { - df -ttmpfs /var/run > /dev/null 2>&1 && + if df -ttmpfs /var/run > /dev/null 2>&1; then _var_run_load + fi } _var_run_stop() { - df -ttmpfs /var/run > /dev/null 2>&1 && - checkyesno var_run_autosave && + if checkyesno var_run_autosave; then + if df -ttmpfs /var/run > /dev/null 2>&1; then _var_run_save + fi + fi } run_rc_command "$1" From nobody Fri Mar 7 00:33:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z86jJ2wyqz5qMsL; Fri, 07 Mar 2025 00:33:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z86jH5mMtz4Q23; Fri, 07 Mar 2025 00:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IGKTxwKzni/NndYdE2UXW9HovFTs8xd4UHei06zoWrU=; b=w+n+rHIJr6vRq4jR89nux9kblR2RfTmexMtSrYhi5sJfFoPt9hrcWSoqmrBKSec3gPe1lT 1IkYbL/+3GECTU1J46rw6irCXsVGXv8FbUJwTHfTrBH/FjzII2QW0wu9Bw4/FpAA2pGvo2 9JzMjycs9ZkM8ZIe794gdrq2dYCY8xMIA6yj61sQaHxg88E4jpSPkDVydk0XXDtpAPYdBf H5XBu753KFPCvhWAH8G/L7PzDXGN0v9eTSuQ8VIQI5R5QHDunr1xPC5PMovpzPBXUNKJNz +kXo02cTa3Jm5Gp/5XGF4FrKODWx+K69WyAoqhVGXQOUDDaWgHL2iBbVKSctTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741307635; a=rsa-sha256; cv=none; b=n6a8BBJ5Ss/TyEIUWiJ7/AN6KbfJ5HSxi1ZbWysMXu6iOoc4xpZr8Cu2fCp8F3vlPQYOYf tj1o9pZ/dfii/7tWoC0MphfMZI4E8Xj7nQUURBkbuzQCOM00oc9hN2B83JjRHfXL4ZZ1Qx DRBwrXwCwe2RrcNvgsS1dQ/RguBGW+YCSg4raNkFGl0aKMwt/AIp7yMV/i6j4QJ+ZcBjsv iERr3V+QPNP3DVY5y0mvvhVT0bmJxTHIXwdf6MXeJrT8UsC2uE2oEmxHCWEesVEAi8Jl2s WAjPtMjvFBNS/iQk5H5sEOfN0ncCul1u9G63NotCBAlaJ04MKg1YfJ0RaILF/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IGKTxwKzni/NndYdE2UXW9HovFTs8xd4UHei06zoWrU=; b=C3VBCDxbXhq/IKVaN8qvLFh5VVbBOixqqJ2SyP7x6reb+kifGLUKUh6Mke0YZ0kPlP8eGP SLAw4nFcWUUZxeJd9PvSJdFwQaf+PVGbiIbuZ5c7KWOntu8hg1eNLM6kPtAFi2HBN0L/Ui WUJSr2BYFDrIiGl559Wysjsx7x74G1UrTpuhnGfkF6zquhFIsS5tJkvhj8FtqW6Zi369Qo qm8ld5JdujzjOo0zl0C780fJqfc/l3YYrDbTRY6lx7Crt9xcmbEJEZPpzoe0M8hGy1+oHT 6QxoBfzUSY913JVEOof6SK/5hszb7Oh8Ddj2VuE+YiY8N2E5r53ODofRQMVu7A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z86jH5KZFz1Cqk; Fri, 07 Mar 2025 00:33:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5270Xt7Y036685; Fri, 7 Mar 2025 00:33:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5270XtFo036682; Fri, 7 Mar 2025 00:33:55 GMT (envelope-from git) Date: Fri, 7 Mar 2025 00:33:55 GMT Message-Id: <202503070033.5270XtFo036682@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 8f7be9c63c10 - stable/14 - ipf: Correct ippool.5 man page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8f7be9c63c10fd8b168266facb57f38f96394606 Auto-Submitted: auto-generated The branch stable/14 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=8f7be9c63c10fd8b168266facb57f38f96394606 commit 8f7be9c63c10fd8b168266facb57f38f96394606 Author: Cy Schubert AuthorDate: 2025-03-04 20:37:20 +0000 Commit: Cy Schubert CommitDate: 2025-03-07 00:33:01 +0000 ipf: Correct ippool.5 man page The file URL must be enclosed in quotes. (cherry picked from commit 278a726eec5a49284df1f54a586be0fe0ce2e0cf) --- sbin/ipf/ippool/ippool.5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/ipf/ippool/ippool.5 b/sbin/ipf/ippool/ippool.5 index 6ead9f7fbf3f..1adda3822422 100644 --- a/sbin/ipf/ippool/ippool.5 +++ b/sbin/ipf/ippool/ippool.5 @@ -124,7 +124,7 @@ addresses from. To do this simply use a "file://" URL where you would specify an actual IP address. .PP .nf -pool ipf/tree (name rfc1918;) { file:///etc/ipf/rfc1918; }; +pool ipf/tree (name rfc1918;) { "file:///etc/ipf/rfc1918;" }; .fi .PP The contents of the file might look something like this: From nobody Fri Mar 7 00:34:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z86jS3vH8z5qMvn; Fri, 07 Mar 2025 00:34: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z86jS1K74z4Q5g; Fri, 07 Mar 2025 00:34:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307644; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S80rGVKzm55blNaPPw1Lhm4uAeqO3/RP76SigrbEz5c=; b=T49vcGvjxUE2YahGqrKa84hYzqbw5bHRQCr+WaCLCOBish+Zt/bmpOIII/LguTJgO9RIsR 07bQvmISbWF0gEI9rSVbnIAeZM8bW8uQWbi/y55CpDvuMA4LAYIKvYCKrr+AOVEkxdx6Ap OG1U6POQwPtHI4EhDDXVzEQNBl7lqKq1k2wNH35WvIZ96q4MQ39zrzqdZiZTZP+aoHkppP EtK1i8min/brhQgjkyg21fpo7YanEp8wpPRIGG6/eb/5RpLThcYYitUcm/wDGAhIvXPe6u 65g1FvPX81e9NnxFAyTXOFu490p7o0FI4n3YgnestHHEfoRAoJ5uvgLBtKgdaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741307644; a=rsa-sha256; cv=none; b=tFlHSt+6LWWf5qIgh7JnXARFLuF2187t1yFNr4cGVAECP0Iktik7PRRN2Hosxsq2Xs9dBQ 9eFQBcag+i4BifHnjOp9iODU3i/LrAFZZn4py/M8FSeNVfVsl7vExoNTzvYyo5TUh2HrZt 3qSRCvSFCSj9E4mGNnK/W6/fwQVJv8ktj5mGbQj94JXiRKdvlWV2lNCtRciBp93zov6uh8 zfQgH5z92aHCIGsZ7Dpw9jP7mgBJGW4fjtfpGgEZlGTxSZGE4BYhNfT+XbyaVDWI53/Aw0 ShSfBlLOp2emhzq8TB3ANaDsIxMypsjh7gtzAMfnUCB7toPAJEHmAgQhJvFVbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307644; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=S80rGVKzm55blNaPPw1Lhm4uAeqO3/RP76SigrbEz5c=; b=y3XnzF65iPRqlRbbQVHWh5H5UYooaJCinldsyIK2OEhr353RdRzD2MQe27CcbZWLxzjvB2 d0uVSknQVi5ojmbAlMX+WemFQE/BjlOt3FJqt+feROmlzO0sZ3vmtZS9LWn9z7TK1chPXS G6dtnWk1ZsQHY9n1yHkx53vwK/Asvs8n+ovUsSxZdF210UQZoQiXUHzQgVdg5J3HL/vh9L M94gbRoZN2nvMWGAaykjMFCvymp9k3ab7kRekezTPWs8wbq0kaPsxMKuM169R9B2UwEM2f dG+la8OQCHPiwK7tTYXnadWjmPa61HWB21cnu4jbInWck9XLNQP4vIeCeQ7lig== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z86jR5XvGz1Cql; Fri, 07 Mar 2025 00:34:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5270Y3EC036862; Fri, 7 Mar 2025 00:34:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5270Y355036859; Fri, 7 Mar 2025 00:34:03 GMT (envelope-from git) Date: Fri, 7 Mar 2025 00:34:03 GMT Message-Id: <202503070034.5270Y355036859@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 2fae556f6a8b - stable/13 - var_run: Clean up style List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2fae556f6a8b10bdef22eba0d83b0880e3669496 Auto-Submitted: auto-generated The branch stable/13 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=2fae556f6a8b10bdef22eba0d83b0880e3669496 commit 2fae556f6a8b10bdef22eba0d83b0880e3669496 Author: Cy Schubert AuthorDate: 2024-11-26 15:16:22 +0000 Commit: Cy Schubert CommitDate: 2025-03-05 04:46:14 +0000 var_run: Clean up style Clean up style and make more consistent. Replace test with if-then-else to make the script more legible. Replace the call to dirname with the shell %/* operator avoiding a fork & exec. Reorder the test for $var_run_autosave before the test for /var/run on tmpfs. This avoids gratuitously scanning the mount table for a tmpfs /var/run. Initial concept by and in discussion with: Harry Schmalzbauer No functional change intended. MFC after: 2 weeks Differnential revision: https://reviews.freebsd.org/D47773 (cherry picked from commit ed9712f8943573136fa92a0e61c8e7c10952eeb0) --- libexec/rc/rc.d/var_run | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/libexec/rc/rc.d/var_run b/libexec/rc/rc.d/var_run index eb9cdbd59305..71f84d23cb3d 100755 --- a/libexec/rc/rc.d/var_run +++ b/libexec/rc/rc.d/var_run @@ -23,26 +23,30 @@ load_rc_config $name : ${var_run_autosave:="YES"} _var_run_load() { - test -f ${var_run_mtree} && - mtree -U -i -q -f ${var_run_mtree} -p /var/run > /dev/null + if [ -f "${var_run_mtree}" ] ; then + mtree -U -i -q -f "${var_run_mtree}" -p /var/run > /dev/null + fi } _var_run_save() { - if [ ! -d $(dirname ${var_run_mtree}) ]; then - mkdir -p $(dirname ${var_run_mtree}) + if ! [ -d "${var_run_mtree%/*}" ]; then + mkdir -p "${var_run_mtree%/*}" fi - mtree -dcbj -p /var/run > ${var_run_mtree} + mtree -dcbj -p /var/run > "${var_run_mtree}" } _var_run_start() { - df -ttmpfs /var/run > /dev/null 2>&1 && + if df -ttmpfs /var/run > /dev/null 2>&1; then _var_run_load + fi } _var_run_stop() { - df -ttmpfs /var/run > /dev/null 2>&1 && - checkyesno var_run_autosave && + if checkyesno var_run_autosave; then + if df -ttmpfs /var/run > /dev/null 2>&1; then _var_run_save + fi + fi } run_rc_command "$1" From nobody Fri Mar 7 00:34:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z86jT2gRHz5qMxp; Fri, 07 Mar 2025 00:34:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z86jT0Xkrz4Q9k; Fri, 07 Mar 2025 00:34:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307645; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PezzYUYJ/YxOfy2Htrw7jJPSzeNsobuitaKJ7k2NGVY=; b=BrxOjPOSVgp0glSR83JD7+Qztp7dVoBT+7hwHg3hmpPHn4wCoLmvYGomJBhfhztyas5Ep+ DYnWKK9lOz1mee0LmSSik05897ASGuuPn1J+POlGeBjI1Vc0OJ9kfhPNjf7zBjICy5j6Qw 98XofMEzMxTwYYaIE16HaPiVw1ig27gj/WaSMbMBlp0q8521Uni9sKAuBLPgrOwbI+BLYw iXBySfYpBVpoDCKpTb1DhvCQxTK6Ml7Akltb3j7evadhQYE/x0YXddaMEnYjvGLnTzOt/v k4m6ipdUo/l6QTQ24F/f2Bcw6RWkWAepK3aKVRQR0bgmTqVTeSK6aJ68lXVk+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741307645; a=rsa-sha256; cv=none; b=vBD083eo7b0ohw5CzlpUTscQ5dEsvvcaPtQ4wy/yEidpGpwLa8HyJf9YBJYZuFZGufGBYH 6CrZoNqSPZqnDlNb2ahwZwZiqbCxlW+/Tg0C4QdiVApeQ2XoWGE8bWF2GxevJn+nqWuqcy tSa0JSx+3UoGalTjun79xsBx69u1j2m4TcC8bynlEW1D73eG98ZXELopILXgdq19FQ1/Tz 924slqTYkuEyb5AD6GwONKbdaAiNhF5PHhQXO2KHfsdGdIB89xBNbP1zB0cGqcPrZtgvoo Jch5Uo3bMzsIL9Lb28RQQ788RXGNvgyBGMiDZEQrOUilzZnl/pcjV5pPnqaYxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741307645; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PezzYUYJ/YxOfy2Htrw7jJPSzeNsobuitaKJ7k2NGVY=; b=G/eGkfntOO5r5MyVPJIbUoir/L09grh8royvWEy+9v8loCkukOZaO1aqLYU4k88wv9FT6V DAu2q5ACuJNZMW/EXRoFWriPoatBJEo1X+RSsxI/9otlgoW0ZqXJaxLNQRDBNjxp4IWVXJ hkxDy/XGK0vceBH5F855ztwBW0mPZi47326dYAHSM8vR1k9G5ZeX2wE6IAKcB7mGVOtxei vtL6FafaC6mqJ8cdVVLl/eUetshdgCjOrnc9HcpUdlm3JNEaHiy5aRq2PcuSXa7AKJqRik kLrheaIMW+Ex583uDqh7rPwf0wfG/hLxpS9apkFDYe+Pm2Axue2F1CatJkDavw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z86jS6TXpz1CGs; Fri, 07 Mar 2025 00:34:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5270Y4pq036896; Fri, 7 Mar 2025 00:34:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5270Y4Jh036893; Fri, 7 Mar 2025 00:34:04 GMT (envelope-from git) Date: Fri, 7 Mar 2025 00:34:04 GMT Message-Id: <202503070034.5270Y4Jh036893@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: d2011755f36c - stable/13 - ipf: Correct ippool.5 man page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d2011755f36c61d29f33c2f2bb51e4869db3a4f9 Auto-Submitted: auto-generated The branch stable/13 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=d2011755f36c61d29f33c2f2bb51e4869db3a4f9 commit d2011755f36c61d29f33c2f2bb51e4869db3a4f9 Author: Cy Schubert AuthorDate: 2025-03-04 20:37:20 +0000 Commit: Cy Schubert CommitDate: 2025-03-07 00:33:41 +0000 ipf: Correct ippool.5 man page The file URL must be enclosed in quotes. MFC after: 3 days (cherry picked from commit 278a726eec5a49284df1f54a586be0fe0ce2e0cf) --- sbin/ipf/ippool/ippool.5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/ipf/ippool/ippool.5 b/sbin/ipf/ippool/ippool.5 index 6ead9f7fbf3f..1adda3822422 100644 --- a/sbin/ipf/ippool/ippool.5 +++ b/sbin/ipf/ippool/ippool.5 @@ -124,7 +124,7 @@ addresses from. To do this simply use a "file://" URL where you would specify an actual IP address. .PP .nf -pool ipf/tree (name rfc1918;) { file:///etc/ipf/rfc1918; }; +pool ipf/tree (name rfc1918;) { "file:///etc/ipf/rfc1918;" }; .fi .PP The contents of the file might look something like this: From nobody Fri Mar 7 04:03:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8CLv3Hs2z5qZsY; Fri, 07 Mar 2025 04:03:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8CLv2g6Wz3xt6; Fri, 07 Mar 2025 04:03:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hgftDIdWzU3w+yjteAskvoDTcUuP7ktGvxzNWhFkwbk=; b=by+YkkdJF4tZoF6Ksm7bQs6ahRMDiyWjGqe0waMF8i4mN3XRVdUBVwHwtjw9BmUQpZ+Aqe 1NqZSINDyAwwq1C2m04BVnve3UqcyrSifwsByHswNHaBVfWarXMCeCiQO2uA/Enw/NDpsi PSlUGn0XkIwYWkEVIISWSZQrOjkwgP+cbj7/w+W5w+i7phySmsS+r/SwJDjfsIvu9K6GT8 GLiXTNfCw3ORKCdUsl+o46l9FNH2iDYWZVvRyp42vidPEg3XIwj+TGHFnzM3cxka0r6zll UjSclLhfY7Pj3+dsmttWEIO3ZZ39KkvQqr6pb3woFYQR5KKYaOkEL3To51S68A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741320199; a=rsa-sha256; cv=none; b=bA+jYW1WGrnHMNIyHaRzM9HJrl1fxDnGbNEIMyK33Y5akwqYEkeLGTiFtjOI/NMDfQTpx4 nzVkdoBxC5/cP4oIExryYRO3TfiSHYcGVvMIzNg7ZK7gW60yk5EKPjVkDU0985O7qSgnMt cl45uAqOmIoN2RfJAXtdpMq+u1xh9c1p+7ejc9aWEfoZdsQcPi6COealZhUuaZvGfoFcsZ fGI0LbMC/I6A2sEHUc8p3WWqkHf2sJReQV3yhMc+iqwM9Xxs+d/EGKsba8SrKXSPHP27iK jf3GyKt2pYXrSrKCidtUWLuui0eUzyBViX/EvDk7KADBN0ZvK3v9E10zCRwwRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hgftDIdWzU3w+yjteAskvoDTcUuP7ktGvxzNWhFkwbk=; b=Pr4XwXveWmpsFqUfwqOy0KDUHunmXGoreTgM1BM8wAj/327soF9134QM0syao5gsZ03dSG HZ81ckE8m0MdUxyIcp8OpihSPszWfpJJ/4H9Ws4FOfT2qC8HEtd/AJJ5dkFZwiFQR9XJQF GxmOeltoTJpOK4eFglr+KiNlaMy95J7vTgBDHxCRpkXIDxL54VC17xo6Lp3O4zpPYZwhVc ARWCTrazPOZiAhF6hc4xOHqzT2SWuZvHOLj5jnNPh7QkY4n4HJSRSO/4txH64NY1KxgefE eKILIYAp8S6Wey5rBzSbeneUWzwm19tD0TGVcnlD/rSHvIg1fqIMB5QOxXy1lg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8CLv27KYz52p; Fri, 07 Mar 2025 04:03:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52743JWD030274; Fri, 7 Mar 2025 04:03:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52743Jg3030271; Fri, 7 Mar 2025 04:03:19 GMT (envelope-from git) Date: Fri, 7 Mar 2025 04:03:19 GMT Message-Id: <202503070403.52743Jg3030271@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 1b2715c0581e - stable/14 - netinet: Make in_localaddr() return bool List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1b2715c0581ec725968131b2ca8d2238df2d2287 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=1b2715c0581ec725968131b2ca8d2238df2d2287 commit 1b2715c0581ec725968131b2ca8d2238df2d2287 Author: Zhenlei Huang AuthorDate: 2025-02-27 15:58:20 +0000 Commit: Zhenlei Huang CommitDate: 2025-03-07 04:02:40 +0000 netinet: Make in_localaddr() return bool It is used as a boolean function everywhere. No functional change intended. MFC after: 1 week (cherry picked from commit 69beb162848b15c967d3b45ac56501dbd8b94e91) --- sys/netinet/in.c | 8 ++++---- sys/netinet/in.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index de6224ad9ebc..664dffb4e6cc 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -129,10 +129,10 @@ static struct sx in_control_sx; SX_SYSINIT(in_control_sx, &in_control_sx, "in_control"); /* - * Return 1 if an internet address is for a ``local'' host + * Return true if an internet address is for a ``local'' host * (one to which we have a connection). */ -int +bool in_localaddr(struct in_addr in) { u_long i = ntohl(in.s_addr); @@ -142,10 +142,10 @@ in_localaddr(struct in_addr in) CK_STAILQ_FOREACH(ia, &V_in_ifaddrhead, ia_link) { if ((i & ia->ia_subnetmask) == ia->ia_subnet) - return (1); + return (true); } - return (0); + return (false); } /* diff --git a/sys/netinet/in.h b/sys/netinet/in.h index 80c872367f93..db36962aadb1 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -677,7 +677,7 @@ struct in_ifaddr; int in_broadcast(struct in_addr, struct ifnet *); int in_ifaddr_broadcast(struct in_addr, struct in_ifaddr *); int in_canforward(struct in_addr); -int in_localaddr(struct in_addr); +bool in_localaddr(struct in_addr); bool in_localip(struct in_addr); bool in_localip_fib(struct in_addr, uint16_t); int in_ifhasaddr(struct ifnet *, struct in_addr); From nobody Fri Mar 7 04:03:20 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8CLw684Fz5qb1G; Fri, 07 Mar 2025 04:03:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8CLw3b56z3xnD; Fri, 07 Mar 2025 04:03:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hiDRygSyiup/w2+z8kgCBpEERN209b5rmdmO9F8C/EA=; b=D4baBkehHaxaQgxRfaXyGfAt0HJn1v5qXLe3Pzl46G4ywcDR290e8RSqFoovPMNPq1sM1h ptx5rllrmoeJ1kYF1wWZdYN8IB8zaxXFYLLaEBBskyAia1gzaYIgN3WiUeVjvXpjOeQCbw lj7i2jouktjCAa6ZTwFcDUF/GyDd8OBZ2kjgXk0OVNz/yYwLaVScG/c3bmiX66nbQThu6L y1WM6yGd4KU3vJfolSIIpLOX6WlTKdvIhqrnJ+dE5KgkTudYt8xoTRh4H72S3sc4+uF26p pwpQZv9utb2ZaREb6q5MRw8+fk9RySvsSMEGFf+ZpIk6zza63hNmw7oneqf1hw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741320200; a=rsa-sha256; cv=none; b=NjnvQxeit8tXJRoWC2fvN5iRyguErxwEfRmkYjRb524a2QEs4JihpbBnHVjTvClB1rveYj /wMEZ9wJ4dEv21KIfKdQOOvhGvozPdwnR0N1JX6xLOJUU/cOEMlr3fD/yUvkoGBWxR1Emz OATQVSElAbmTm1s6KSHicvx3uLGxc6+QXtU4+iHUlaBZFLwbCa4bdzTKu8P+TbeDZhLtO+ FBjS42yJEBE7rSVjzMlej2L0RIXjYNYInZ3xwMOJK7wgpQpu6cJQBnl7ikTuy5aW/aHg4G 3dkzjP5YJLKYdjhKqCEh1F56hgwBz2WKi/PixFIh1aC6i6HElcxhOGIuGL5gig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320200; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hiDRygSyiup/w2+z8kgCBpEERN209b5rmdmO9F8C/EA=; b=uWcdNZvF1+CYZmrp/7Gjp5DfoB3QBsYbk4jxZb7fukXhO+HnW6sQ1EK05cm+QMYU9EaYem Bz2xts47yPiqVlYPYCqXj99j3dvx6MTcNSmDBVhnJ7WFXaDrFOTalFoEHApJaE5rFbZ2UE yQJxJX19spddrqeITuumSQAGc8dJyUOSM8RHxPS2iawwB4gSLxtKAJmAPabIRYTC+fGFBZ baEYLecFV2e9gHYRFpv0sb8ibiBkFYo9KA6i5eN6Zmcl055yNdmQQFESk1QZtCUFj653o5 JyRCVbuvtWk6W8vZVxawyQpA3RyKw6kolzOCxlcsLigLKCOByNl0/4vliDCojw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8CLw37LTz50B; Fri, 07 Mar 2025 04:03:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52743KBu030307; Fri, 7 Mar 2025 04:03:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52743KoF030304; Fri, 7 Mar 2025 04:03:20 GMT (envelope-from git) Date: Fri, 7 Mar 2025 04:03:20 GMT Message-Id: <202503070403.52743KoF030304@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 841c38b5a028 - stable/14 - netinet: Make in_ifhasaddr() return bool List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 841c38b5a028cd812a056092a410c0028d010761 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=841c38b5a028cd812a056092a410c0028d010761 commit 841c38b5a028cd812a056092a410c0028d010761 Author: Zhenlei Huang AuthorDate: 2025-02-27 15:58:20 +0000 Commit: Zhenlei Huang CommitDate: 2025-03-07 04:02:40 +0000 netinet: Make in_ifhasaddr() return bool No functional change intended. MFC after: 1 week (cherry picked from commit 97309cec6f31f1f4f7a76f9ec5c7dd359c56de02) --- sys/netinet/in.c | 8 ++++---- sys/netinet/in.h | 2 +- sys/netinet/udp_usrreq.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 664dffb4e6cc..e30f63e5bec9 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -187,9 +187,9 @@ in_localip_fib(struct in_addr in, uint16_t fib) } /* - * Return 1 if an internet address is configured on an interface. + * Return true if an internet address is configured on an interface. */ -int +bool in_ifhasaddr(struct ifnet *ifp, struct in_addr in) { struct ifaddr *ifa; @@ -202,10 +202,10 @@ in_ifhasaddr(struct ifnet *ifp, struct in_addr in) continue; ia = (struct in_ifaddr *)ifa; if (ia->ia_addr.sin_addr.s_addr == in.s_addr) - return (1); + return (true); } - return (0); + return (false); } /* diff --git a/sys/netinet/in.h b/sys/netinet/in.h index db36962aadb1..8e7e3548c6ad 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -680,7 +680,7 @@ int in_canforward(struct in_addr); bool in_localaddr(struct in_addr); bool in_localip(struct in_addr); bool in_localip_fib(struct in_addr, uint16_t); -int in_ifhasaddr(struct ifnet *, struct in_addr); +bool in_ifhasaddr(struct ifnet *, struct in_addr); struct in_ifaddr *in_findlocal(uint32_t, bool); int inet_aton(const char *, struct in_addr *); /* in libkern */ char *inet_ntoa_r(struct in_addr ina, char *buf); /* in libkern */ diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 9a3d9a810481..0ea065f15ce4 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -1048,7 +1048,7 @@ udp_v4mapped_pktinfo(struct cmsghdr *cm, struct sockaddr_in * src, ifp = NULL; if (ifp != NULL && !IN6_IS_ADDR_UNSPECIFIED(&pktinfo->ipi6_addr)) { ia.s_addr = pktinfo->ipi6_addr.s6_addr32[3]; - if (in_ifhasaddr(ifp, ia) == 0) + if (!in_ifhasaddr(ifp, ia)) return (EADDRNOTAVAIL); } From nobody Fri Mar 7 04:03:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8CLx6R2hz5qbHD; Fri, 07 Mar 2025 04:03:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8CLx55Qsz3xg0; Fri, 07 Mar 2025 04:03:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320201; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1p4dOAJkaCuFZ9lP7lbJcMpehXmcfH8MX3WR48G+HwU=; b=V6RIfL1wpk4jL/7FH4Ex0RpyXQq+TWYEWT7wMHvrh9d7GJO8R5x4DFABeFLNOD9OXV09t/ KYbwJb0BEZ7jJ51Hnl5WR2+Ttx1WJQytyYcxw/x5rNR1FLgPNfH1fE5tnlTLdxxm/Y+3J5 rr+qOuLc1/68umv5Uwf++GpHiYn+Ho4k/7AQUmSEHciO6uoeweYcrHdYZKjQlQXvQAzfPP WXBkmbL32Z1pOZbOtmEPSkrX31mZEECkd5z92wkt9m73LQeIvogchTMk8pq/ZPg/aIqm8g N0csWulB6BHZmMT9qC21bUfegWQ0OwxUg2X4G8toaBvzvhqGs7CIwRZO1ajTJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741320201; a=rsa-sha256; cv=none; b=BUMIJSUHRTm4JZ6BZspr/69/9VUDaorpA6LttYbGV+Dk0MnipplAIhelIlgIYMkQgEjx57 TcPatjoMF9AkKwTHN3nWHkqfISnxl4ArkkA80m/6Go+0ymfo94a5x6VRS6WMbzHz5mj6sR jEkZYCPOEzWSZLX1jFDWvKTx+ZxTPTykQQXbwKpiJ1IQdza1NwCsTBP/3sTAdGK87HsHNN yK1fzDsf+Pa7kpuUPOtjlu0NEPyjfEBlE6ei12qzAhFP1mSnyoZVTkMjPySpXe6g5xAYdE r8P/IFAxNYLvSW5ong6+rsA6XRQQiyOREGShjqxpzN+eNOvMaGDnPWq9gAbtfA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320201; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1p4dOAJkaCuFZ9lP7lbJcMpehXmcfH8MX3WR48G+HwU=; b=WLuiqk4W1vz+ss4cJ4ZVFLTxfqDroYeO4DTwIFv6j6jBjEVvvgbjpMgMdFUW6RX7AveyXf nkQFK0LODnZP5L+BMWfakzJ2lW0eItRAlLqPBqVBo0iRuu0X7Hhy/xtDqz2goeKz/P9nuE owzCSk5lp4hTCWafWbZfDFWHPqhRbhObnAZq9IZ1BrKl67u5nFGcfXWeHUpmQAGwYbqsWI /6Tdjdq9gppOWmbyQRaXJLUZBDT8a3VZUEjrsQXY1oX3kRRmlgf9r21APJuvkKR4Yu74ZJ 3ohqbp4xd4XsOp6WlEWtZh6wevhDwNITi6bmjwk9fVVVEUAwYE04QMwRtwRm9w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8CLx44Yrz5g8; Fri, 07 Mar 2025 04:03:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52743Lxu030340; Fri, 7 Mar 2025 04:03:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52743LDS030337; Fri, 7 Mar 2025 04:03:21 GMT (envelope-from git) Date: Fri, 7 Mar 2025 04:03:21 GMT Message-Id: <202503070403.52743LDS030337@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 9406d7e32da7 - stable/14 - netinet: Do not forward or ICMP response to INADDR_ANY List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9406d7e32da718dce31e36190be308c61f87604e Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=9406d7e32da718dce31e36190be308c61f87604e commit 9406d7e32da718dce31e36190be308c61f87604e Author: Zhenlei Huang AuthorDate: 2025-03-02 15:00:42 +0000 Commit: Zhenlei Huang CommitDate: 2025-03-07 04:02:41 +0000 netinet: Do not forward or ICMP response to INADDR_ANY The section 4 in the draft proposal [1] explicitly states that 0.0.0.0, aka INADDR_ANY, retains its existing special meanings. [1] https://datatracker.ietf.org/doc/draft-schoen-intarea-unicast-0 Reviewed by: glebius Fixes: efe58855f3ea IPv4: experimental changes to allow net 0/8, 240/4, part of 127/8 MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D49157 (cherry picked from commit f7174eb2b4c45573bb9e836edad2b179a445a88f) --- sys/netinet/in.c | 3 ++- sys/netinet/ip_icmp.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index e30f63e5bec9..bb36ef18d3e2 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -278,7 +278,8 @@ in_canforward(struct in_addr in) { u_long i = ntohl(in.s_addr); - if (IN_MULTICAST(i) || IN_LINKLOCAL(i) || IN_LOOPBACK(i)) + if (IN_MULTICAST(i) || IN_LINKLOCAL(i) || IN_LOOPBACK(i) || + in_nullhost(in)) return (0); if (IN_EXPERIMENTAL(i) && !V_ip_allow_net240) return (0); diff --git a/sys/netinet/ip_icmp.c b/sys/netinet/ip_icmp.c index 26ee6e5c1245..122293a36a15 100644 --- a/sys/netinet/ip_icmp.c +++ b/sys/netinet/ip_icmp.c @@ -790,10 +790,11 @@ icmp_reflect(struct mbuf *m) if (IN_MULTICAST(ntohl(ip->ip_src.s_addr)) || (IN_EXPERIMENTAL(ntohl(ip->ip_src.s_addr)) && !V_ip_allow_net240) || - (IN_ZERONET(ntohl(ip->ip_src.s_addr)) && !V_ip_allow_net0) ) { + (IN_ZERONET(ntohl(ip->ip_src.s_addr)) && !V_ip_allow_net0) || + in_nullhost(ip->ip_src) ) { m_freem(m); /* Bad return address */ ICMPSTAT_INC(icps_badaddr); - goto done; /* Ip_output() will check for broadcast */ + goto done; /* ip_output() will check for broadcast */ } t = ip->ip_dst; From nobody Fri Mar 7 04:03:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8CLz15yPz5qb1K; Fri, 07 Mar 2025 04:03: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8CLy5d7bz3xqj; Fri, 07 Mar 2025 04:03:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320202; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JSlET4/JT+En+BeMSx04HyomGx0b3LLc7A0LVbgKHW0=; b=QNaXBIz/q4CCLUHWjb4TFISbCSPwSv4//omGBrKsULkac+62oy9LVSptJi9SkvbU5rUARj srwtVNpX4Pl86y38VQDbpV94/LWxPt50SjcgFyl9m9Gjf77zFD/wFS+eqI3ZQIPK/+b/Qr 2iBSipKLQqc3TXdU32VblLf7CpsYa6mdGUOrxrsSjlh0xhvutSKNsbnyhpEBBUB3Wx8d/G Wj8uW8A9taW876HOEu3HTvayIkAAvbZUgFuon9qJMQ9DMIjaW4WbDLEJteQpa5rVVi270E oqBhJzNRnsytAocGoHl/ZQXxWK2Hc3UR9GjfVJBC8okOrT5bnBHfldYLz3n3aA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741320202; a=rsa-sha256; cv=none; b=Yi3IyBW6cTXnnck2CC5c5ezCqj1qSVTKgOcIKLPgu0G/mCFQCzkf3XLJ7DMegdTFBg9vSo qjAogNqrbgBuYBi5Q8YlZEwwoaD2Dt4sR8tb7TR3729qvCX6u5edWaPFv5EHsZ+LUsJ96Y 3HFK8g2GQXnfev9I8dNjrRA4yTnuBW2fEhbihPVgU6tpsHCcSkBPT/XZKz+5BJ7EglVCiU AHnVTB1HilEExjJRou22sjAPToL+ajxQ0e35oUlzqHnWMRyu3Sa9Y3e+xc8aufFOrkTzX/ 9ULlaiWOBwExuvEO0vrzkoODdYztLoSobrdnpvYYYkQ6svmkbKYnfmEARiLNhw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741320202; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JSlET4/JT+En+BeMSx04HyomGx0b3LLc7A0LVbgKHW0=; b=dsm2TZfYmT7Re+oyg0VbiTvWfXbJpka97hpviv+ZTfoTp20rLNm53SZxAnvp9IJ+sJVoka WTxJqiL03ed3hHkCTqdJmFeOaDbmFFq4ob4GywxySlH9evn/3XeYhdYjavGJYfZ+w14+EA lr0ROBCI5u0O9fJnNEt/AhTpiHVJBko1+FwJX8ax2MhLKY7feq0iqp3Bx1FBCo6j7T4PBo ewfe3UcmS5jW3VNn0W6sjpG5av/ekS2A4kCToJ5qEPWSsEVsPNOUS2zVmx14jDrnXSkKck 8IUTpSgJRcB3Ep73fIYOxzJRJRstdGZTn8T2x9ZVVRNHRnQrNJzgy43ArULUDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8CLy5B8Nz52q; Fri, 07 Mar 2025 04:03:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52743MCn030381; Fri, 7 Mar 2025 04:03:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52743MsU030377; Fri, 7 Mar 2025 04:03:22 GMT (envelope-from git) Date: Fri, 7 Mar 2025 04:03:22 GMT Message-Id: <202503070403.52743MsU030377@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 70831490663b - stable/14 - netinet: Make in_canforward() return bool List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 70831490663b7509203ff3f87beff1c8eda806a9 Auto-Submitted: auto-generated The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=70831490663b7509203ff3f87beff1c8eda806a9 commit 70831490663b7509203ff3f87beff1c8eda806a9 Author: Zhenlei Huang AuthorDate: 2025-03-02 15:00:42 +0000 Commit: Zhenlei Huang CommitDate: 2025-03-07 04:02:41 +0000 netinet: Make in_canforward() return bool No functional change intended. MFC after: 5 days (cherry picked from commit 3ae7c763540afc0bc5320eb45f2661d315370eb8) --- sys/netinet/in.c | 10 +++++----- sys/netinet/in.h | 2 +- sys/netinet/ip_input.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/netinet/in.c b/sys/netinet/in.c index bb36ef18d3e2..bafd1b549848 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -273,19 +273,19 @@ in_findlocal(uint32_t fibnum, bool loopback_ok) * that may not be forwarded, or whether datagrams to that destination * may be forwarded. */ -int +bool in_canforward(struct in_addr in) { u_long i = ntohl(in.s_addr); if (IN_MULTICAST(i) || IN_LINKLOCAL(i) || IN_LOOPBACK(i) || in_nullhost(in)) - return (0); + return (false); if (IN_EXPERIMENTAL(i) && !V_ip_allow_net240) - return (0); + return (false); if (IN_ZERONET(i) && !V_ip_allow_net0) - return (0); - return (1); + return (false); + return (true); } /* diff --git a/sys/netinet/in.h b/sys/netinet/in.h index 8e7e3548c6ad..5c781d39d33e 100644 --- a/sys/netinet/in.h +++ b/sys/netinet/in.h @@ -676,7 +676,7 @@ struct in_ifaddr; int in_broadcast(struct in_addr, struct ifnet *); int in_ifaddr_broadcast(struct in_addr, struct in_ifaddr *); -int in_canforward(struct in_addr); +bool in_canforward(struct in_addr); bool in_localaddr(struct in_addr); bool in_localip(struct in_addr); bool in_localip_fib(struct in_addr, uint16_t); diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index 6d8165003950..7c01c4959841 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -932,7 +932,7 @@ ip_forward(struct mbuf *m, int srcrt) NET_EPOCH_ASSERT(); - if (m->m_flags & (M_BCAST|M_MCAST) || in_canforward(ip->ip_dst) == 0) { + if (m->m_flags & (M_BCAST|M_MCAST) || !in_canforward(ip->ip_dst)) { IPSTAT_INC(ips_cantforward); m_freem(m); return; From nobody Fri Mar 7 05:24:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8F8F19QbzsyXP; Fri, 07 Mar 2025 05:24:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8F8D4Y73z3lyM; Fri, 07 Mar 2025 05:24:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741325052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q8QyexcbUGjfO+fK5M6O6xyGv2dgAmkZBzjttk240no=; b=PSIJSojUEP0hXrPfjibt8V+P6KOKCvJnglHg+4xxxfnyc1x3NTnJVO/bPom8w87m+1/pqM rFFtyoR/dO8mww8M64TErVjoB0xxZliTVnxjE/+PHCNjVocwhpl9GwEkrBpht6oW37dNYW +M5mRyPHpLXB/cTurS4sEttXcJJ1f1AUDMwfLWm/bjEo+gxjiu1ZbQBTw02al4d99QPWxS eI6MJZeIyv+MnT1rdK61rrcXvyOmjbsd3Mb1zGaO17aj8n/cHoLcj2I+wJaCndbJtlwE3I HMFHWrhrYbGeMjJE4qdz7GjZnPtEAmFFb0vC2qnF1zCBkpMhIIiyMkCZYIePIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741325052; a=rsa-sha256; cv=none; b=Vqy1Ee9p58aM+LvLQj8B9ZI1dw7xufAuVCRdSfQLIP0pAemBv6PX7/qeqezlPg3mtb3tNT M+8RsGbaqvXOYRTdbROhXTnasB637vywXGOPGaTU0bFYozi0jvyFwxli/mfmdlDG8juoSJ ReaQM8TTplWy30TSeSAhU/T8mEGsSdwNraQSmfrUeYG39wlIKGo4i6RqDRw3EPknEv86DE sRXTBOBoPZKuKFW3mO1Lft4Qkes3tFzSfdR8XLScBGzZlc6blJ5Az6iAiMrGnCrvEIwUIT WeUNvfvWTWGJh8Du4I/lbGy7Cu4hpReI1EtLvb5ay+l+ak0R3FKL/tenb7UKrQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741325052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q8QyexcbUGjfO+fK5M6O6xyGv2dgAmkZBzjttk240no=; b=NduZ7S+uNb+ulRGjnnQ5CBJ+untqE4u+wNpFEWvS4f/PWSpFjlxwi4cGuqv7cjOufU8N5/ vuiPO7wykOhl0G8HCTBRVV2zwsRaxzt246sDmW2jwR+ygFcB+iy2pEGxGUS4IJ+6lxO2z4 vLOw7XVeFqiVF/oMCRVGKMS/Ulp4WUdo69vaDjPdadSOD8YcZPkVMumy9pGlTtKSt5CyX7 ZWyfd1pPjHJmb6bkMul8Klu7XnOWmzSxU29mizlrqjGGtYAw1FcWBjTazV33ROo5NVvkWU ZtwiYazx7ICWGEA/TnUQ6foqu94i5b0WJyy0P4Ryw2HKoWhi5MvyJ3Mgi++eXg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8F8D474wz7vq; Fri, 07 Mar 2025 05:24:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5275OCGD079851; Fri, 7 Mar 2025 05:24:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5275OC4R079848; Fri, 7 Mar 2025 05:24:12 GMT (envelope-from git) Date: Fri, 7 Mar 2025 05:24:12 GMT Message-Id: <202503070524.5275OC4R079848@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 3416ed9d077f - stable/14 - open.2: add separate paragraph for O_CREAT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3416ed9d077f75b314eb98a2cb1d6fd8273cce13 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3416ed9d077f75b314eb98a2cb1d6fd8273cce13 commit 3416ed9d077f75b314eb98a2cb1d6fd8273cce13 Author: artembunichev AuthorDate: 2025-02-27 14:21:20 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-07 05:23:08 +0000 open.2: add separate paragraph for O_CREAT PR: 284353 (cherry picked from commit 8cebb0630046a8eb10c551a856397ed230e73833) --- lib/libc/sys/open.2 | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index ea4bc9160da1..e29abbb70342 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -231,16 +231,36 @@ is specified and the file exists, the file is truncated to zero length. .Pp If -.Dv O_EXCL -is set with .Dv O_CREAT -and the file already -exists, +is set, but file already exists, +this flag has no effect except when +.Dv O_EXCL +is set too, in this case .Fn open fails with .Er EEXIST . This may be used to implement a simple exclusive access locking mechanism. +In all other cases, the file is created +and the access permission bits (see +.Xr chmod 2) +of the file mode +are set to the value of the third argument taken as +.Fa "mode_t mode" +and passed through the +.Xr umask 2 . +This argument does not affect whether the file is opened +for reading, writing, or for both. +The open' request for a lock on the file, created with +.Dv O_CREAT , +will never fail +(provided that the underlying file system supports locking; +see also +.Dv O_SHLOCK +and +.Dv O_EXLOCK +below). +.Pp If .Dv O_EXCL is set and the last component of the pathname is @@ -289,10 +309,6 @@ semantics can be obtained by setting for a shared lock, or .Dv O_EXLOCK for an exclusive lock. -If creating a file with -.Dv O_CREAT , -the request for the lock will never fail -(provided that the underlying file system supports locking). .Pp .Dv O_DIRECT may be used to minimize or eliminate the cache effects of reading and writing. From nobody Fri Mar 7 05:24:13 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8F8G07ggzsyZj; Fri, 07 Mar 2025 05:24:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8F8F4xjQz3lnK; Fri, 07 Mar 2025 05:24:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741325053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jJDJ+zb9oHh3z9c2XwhUHQGWSRI5QHSmgsAXcGoXcTs=; b=BP/22xZe9Is/nIcy1rjuz9pk2RRElngWJyJIFLOSciOBpEID3JjPJb0Mfhifa57tQqlJA4 4ovzK8edA6G5mxG7yKKh0+U3gvLVCwCF5D/YtxpE1clT84paYEC0gSBpN3zIGgdUecpKKN Xe/5WEnhp05ndGxWDoCXixthMxhv4DURGFZCH4uy7UhZfVWKEKyhZiqddUi4tIRw1W000Q ivG6xxSdA8YsSMToFHc1mZ/mWBx2qur85Hi1nbzxokYZq9J9m1kjjpuBZNIgid/JQdnwsT eo0ZSngI+PeOMDRinxBSkPZrsuqirmOUiP9HX9DEwwQF2h2q+t2CcP1mnaOs3A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741325053; a=rsa-sha256; cv=none; b=tVgjYe30BcJHlqtWxpsbELzW5Hu9VZLmmnxVzL/H1eGyUDMBiBuO+NGTxGLJFGYgEmHQNc VmCC7V035hwFcUuTqriIhNWZrZvDhwG1QOwoM46aJX+H8ojfsyLbRZ3Wd/zUMOFmYVMem1 UNoLJhqaeXn4bw6RfCqRXERaZuDcBu2UvbYUrXpdDB0dYuHcDJfM2V1qVQEZLyYX4ux+F5 Dy0oF/XaAogzIPRxvDZDTVajqMOZUHWUg9ApXy8ozyerpmO/ydh9R36hf/pPpOBWv30kfY TU3z61RUZ7i+12HYBCXCyD8u7QdQ5pVUaHQSR7g17Z+sXj3qvREhF5GFgQ50dQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741325053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jJDJ+zb9oHh3z9c2XwhUHQGWSRI5QHSmgsAXcGoXcTs=; b=EZ/4jfnl+Yi4XIdF+RJHdeKP6PHlVQ5WtH2cHJ1qzMIdBNiUpijiJ+D0JZikyHExJAg7gR M5DV/XprIWzPBU+i8u+Sv2GHSTDBtpVZ3jSH6QJjy3qwypcLAu1agP0kJiT7HXXJipPMiM Fs0s7yFIgI9YiMsMq/OLjxOrOI1YRAr72iyzQRtBflYgR66ryl0niwAW1v03MM1u8WZFuT vUxOWHda8gCrZnqk1Mvp+jgeuPMykDt16eo6ZLyyEmh3ATihoeq3cKBzWfIYZ74IHlbDZj gb2Si3ei7DkYd2TnfRbai/niBmHP9wP/NJvOqGPOxvmMLrYAAGtdVJSI0zbf8Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8F8F4XfPz7g4; Fri, 07 Mar 2025 05:24:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5275ODK6079883; Fri, 7 Mar 2025 05:24:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5275ODvK079880; Fri, 7 Mar 2025 05:24:13 GMT (envelope-from git) Date: Fri, 7 Mar 2025 05:24:13 GMT Message-Id: <202503070524.5275ODvK079880@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 0f78d6433410 - stable/14 - open.2: minor editing List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0f78d64334105f74b9a7feb71f017edd3f898169 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0f78d64334105f74b9a7feb71f017edd3f898169 commit 0f78d64334105f74b9a7feb71f017edd3f898169 Author: Konstantin Belousov AuthorDate: 2025-02-28 23:40:32 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-07 05:23:08 +0000 open.2: minor editing (cherry picked from commit e2dd73cf45a6a8d97131bdbe512ab1ff63121d85) --- lib/libc/sys/open.2 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2 index e29abbb70342..7a760df7cf2f 100644 --- a/lib/libc/sys/open.2 +++ b/lib/libc/sys/open.2 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 3, 2025 +.Dd February 28, 2025 .Dt OPEN 2 .Os .Sh NAME @@ -254,12 +254,12 @@ for reading, writing, or for both. The open' request for a lock on the file, created with .Dv O_CREAT , will never fail -(provided that the underlying file system supports locking; +provided that the underlying file system supports locking; see also .Dv O_SHLOCK and .Dv O_EXLOCK -below). +below. .Pp If .Dv O_EXCL From nobody Fri Mar 7 09:55:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8M971QmFz2tr2p; Fri, 07 Mar 2025 09:55: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8M962qJrz3wmD; Fri, 07 Mar 2025 09:55:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741341322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QawxurF9A25bUS2iirk46V1OXMs/mnUMsWp7UPWNn2c=; b=a3I28RKkKcSaE25sxLOKzPHd0AhjpWOGjKwABJmleGf8c4444fFZaJbXEQl6mraZnLqwl2 BT0h4D1H1djFhjR4/TPoBBQwbH3JqgcA+nfbeUdra/TF2813DagtDVoat++oDnruOklM3M iHo6P1Q8DZ/rwlctSVzVu2dY7GDCjMYyo9Eu93yykIm5EOL6+9vvylrxrNJiW28JEpcIuT NurGU+hXj78e2sI7dL/a+HbUHDZMo+ofvFmQjjk9BXeBPho7EGO3fczMOmG/wP6FbAO5qG Fhh2F+Ivlbc6jXoy/BZWBjDLoiCk2r4V6eDJ9lhiC7VzHyTUTf2tmmQHy5fajw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741341322; a=rsa-sha256; cv=none; b=gSUCBE9O/56yHJCjFYGm9XeASduaW4n8VZHGWPYaVozCRtdi4CJKQIsvki5+w6JQ+RCtjC QoMs9dkKwWLoY7ZZJ/VLNUQgZHz+MJKZFQ/xDe5PRT5gFV/UNBVYR8wo2yjQ+3eseHJ5WJ tMpMKSKDIegcsQCK8bckpjPTXnQtpfsfcEnYpzYMPLV9q3UWV63MZRbUk3NIkcsAFfdvHe 3I7ukqJ7LH2JElG4Y4ZH482DJ9pOHrUplhS1MMO3qTVZVj95ViUQxuaqkBGeLrDp/eNlql 1BUrTVcdkYvvmUVjGvbzgYELqJtamXF7bjS99M36rPat2/vGEUZ2F16uMYxFog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741341322; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QawxurF9A25bUS2iirk46V1OXMs/mnUMsWp7UPWNn2c=; b=IdMJcosUwosc+lXaTd4j3ZukhjT2NIEO9hdec8TenO1s3Pcp4IrUqc6aP65lMqxQ8yv26+ GePpGBfEMLiWk14lvp6rbl7O3Ae2ng9Kiy2fDVS8rW2LB+rsOg4iKRrR0/AWqojB5pr0jz DFDYLMnhtgOdTfReR5VgBchA3iXa1sSr5ptKxoe8a9FDf1Q8WUtECP1V09Ghs2OKLjnXQ7 jL5ObuCq89Fh/3BDqTk2qIDKch8tFItFiewEFA2+FkaCkiD10cRLtrDPg6subSfKc0QzTg /88RZvh/OK1ETbl/0xEzsluBbxZXWZjlxZceYM4HXoW+piD2mbeK5xfbmNMFmw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8M962JlKzXYR; Fri, 07 Mar 2025 09:55:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5279tMO7084763; Fri, 7 Mar 2025 09:55:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5279tMkX084760; Fri, 7 Mar 2025 09:55:22 GMT (envelope-from git) Date: Fri, 7 Mar 2025 09:55:22 GMT Message-Id: <202503070955.5279tMkX084760@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Andrey V. Elsukov" Subject: git: 836c8dad4544 - stable/14 - routing: set net.route.multipath=0 when kernel doesn't have ROUTE_MPATH List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 836c8dad4544da568d50918a575ec309315300e7 Auto-Submitted: auto-generated The branch stable/14 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=836c8dad4544da568d50918a575ec309315300e7 commit 836c8dad4544da568d50918a575ec309315300e7 Author: Andrey V. Elsukov AuthorDate: 2025-02-28 14:05:47 +0000 Commit: Andrey V. Elsukov CommitDate: 2025-03-07 09:54:05 +0000 routing: set net.route.multipath=0 when kernel doesn't have ROUTE_MPATH (cherry picked from commit f2644d64b40f611fd4d4f66069ad8d6cf33f69df) --- sys/net/route/route_ctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/net/route/route_ctl.c b/sys/net/route/route_ctl.c index d7756f2a0eb6..e5ddd7782e1e 100644 --- a/sys/net/route/route_ctl.c +++ b/sys/net/route/route_ctl.c @@ -109,10 +109,11 @@ SYSCTL_DECL(_net_route); #define V_rib_route_multipath VNET(rib_route_multipath) #ifdef ROUTE_MPATH #define _MP_FLAGS CTLFLAG_RW +VNET_DEFINE(u_int, rib_route_multipath) = 1; #else #define _MP_FLAGS CTLFLAG_RD +VNET_DEFINE(u_int, rib_route_multipath) = 0; #endif -VNET_DEFINE(u_int, rib_route_multipath) = 1; SYSCTL_UINT(_net_route, OID_AUTO, multipath, _MP_FLAGS | CTLFLAG_VNET, &VNET_NAME(rib_route_multipath), 0, "Enable route multipath"); #undef _MP_FLAGS From nobody Fri Mar 7 09:56:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8MBm0TfJz2trdC; Fri, 07 Mar 2025 09:56:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8MBl6sskz3xSJ; Fri, 07 Mar 2025 09:56:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741341408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yt0S2fRBDWaduaNB3prmfJwzbDvPyCV22vdytC6jJhk=; b=A0lw/Ne/H+Rl/XFODkJY7/lf0OQRQnDdJAKSQKPOJB7Lem73S+n0OeLDz5R6PtEzblYrfN grhz6XWCy7NTBtCDLDxDWBN93Cirul/Dgh1cdqD9SNOQ8BmjWplPHRKbAGahZ4DkBjL4Mb FWo20Y5qLbc6U7dGl/6xYAFj20VFKTlY1/pbrXWFz2/Jn0/BZRiW9DL2vRyVcPvuibzOJI skOaXKI9obdAlq32KMioF20oEVW/s0KLmhpR8iuhch/HoBuod/HJN0lf7Yt2+ZKAPz0l4A dadJ0mGWNUsXqaPFteVZeegPykoHEVTfaqVyokn1QYVLJ57/HRwG2o12naMIKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741341408; a=rsa-sha256; cv=none; b=BylAgEFjWlItfZZnMidydYsqLTUWHb8EZ/WfFGeIaBJAhWqnpGfrsPpUEEi0yQqZmSwtnO uU4k/hwlpQvNxT5iw+4G557XC2IdbKno8RZVhAmXd1sDKbzUJsw1YZdtzqCUtuMWnSmjUd SuxHGDh3/p5ZaqE9wECoTyXOdoFV8XjJwUHm46UI7vyDanvzk4Te8Toavy4tf5j5Di6qv6 GyUS6qUjmCpXcXuCMmVt8XIrdaKViV6ps8iyLAQWgBuve/69960aJlXNRn+6qp3J/g3sYr sHE8qJ3Badt6Uz94D2x4hfmhJYJgZ6lKQ3s+m/hXwv2Cwzs1ul6/Am+LQ0s+0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741341408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yt0S2fRBDWaduaNB3prmfJwzbDvPyCV22vdytC6jJhk=; b=eQHAIfBr4TobrFnes9Z2LUNc9BGFCW6ydm2bJ4SxNV/HugmiusdCBGGCpNnqA0t84lMYFr Js57ocSuM6/KRd0cILfwbUGw3eetmGpNPg3jN7tnDL7Jh/fK3aV3EVebfqJ9HLGkK2LKZS YWtQrvnk3CH8G2UBi20yR81lHQIRILr/1shBWRvir5oA8BXSPwEVvWX7inZsvyQCsOJixP LnokOA9umTZwAQ+hgqFhpsQ8PtQAmituIPtzkZN4HHpA53daYfuolsFwLFrwwlsa8gJl6x XGckaH7g7n1fee1Rt6lbEHe6nHVHOl1RhAx1blkhJPk+4N1DwdNCLQeNxiItZg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8MBl6Td5zY6P; Fri, 07 Mar 2025 09:56:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5279ulxY085279; Fri, 7 Mar 2025 09:56:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5279ulrq085276; Fri, 7 Mar 2025 09:56:47 GMT (envelope-from git) Date: Fri, 7 Mar 2025 09:56:47 GMT Message-Id: <202503070956.5279ulrq085276@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Andrey V. Elsukov" Subject: git: 699ed29c4fd8 - stable/13 - routing: set net.route.multipath=0 when kernel doesn't have ROUTE_MPATH List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 699ed29c4fd8eec3bbf4883bbca7a6e6f4a0fe12 Auto-Submitted: auto-generated The branch stable/13 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=699ed29c4fd8eec3bbf4883bbca7a6e6f4a0fe12 commit 699ed29c4fd8eec3bbf4883bbca7a6e6f4a0fe12 Author: Andrey V. Elsukov AuthorDate: 2025-02-28 14:05:47 +0000 Commit: Andrey V. Elsukov CommitDate: 2025-03-07 09:56:14 +0000 routing: set net.route.multipath=0 when kernel doesn't have ROUTE_MPATH (cherry picked from commit f2644d64b40f611fd4d4f66069ad8d6cf33f69df) --- sys/net/route/route_ctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/net/route/route_ctl.c b/sys/net/route/route_ctl.c index fd09998d4a01..712e912189a5 100644 --- a/sys/net/route/route_ctl.c +++ b/sys/net/route/route_ctl.c @@ -106,10 +106,11 @@ SYSCTL_DECL(_net_route); #define V_rib_route_multipath VNET(rib_route_multipath) #ifdef ROUTE_MPATH #define _MP_FLAGS CTLFLAG_RW +VNET_DEFINE(u_int, rib_route_multipath) = 1; #else #define _MP_FLAGS CTLFLAG_RD +VNET_DEFINE(u_int, rib_route_multipath) = 0; #endif -VNET_DEFINE(u_int, rib_route_multipath) = 1; SYSCTL_UINT(_net_route, OID_AUTO, multipath, _MP_FLAGS | CTLFLAG_VNET, &VNET_NAME(rib_route_multipath), 0, "Enable route multipath"); #undef _MP_FLAGS From nobody Fri Mar 7 15:25:11 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8VTh4fFWz5pTxd; Fri, 07 Mar 2025 15:25:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8VTh1BmSz3KND; Fri, 07 Mar 2025 15:25:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741361112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j6beplug1NJ/xO32ieCqIONRHkmUp7+g1svnTZisDHU=; b=j6dYUCljv+TP4riittCd91HPPHnn+FONsyZRG2HXbrfd12xY+217oV3IBF7/sGe1Sw9ttS ow56duMgnKZyDfNJ7AnoDAk5mgU1/7a/MbYyO6TKvRRrVdYxM4hEXjN7+4XcxtbDsQF8CW kANHUXslZGJVffLY8TthGinwvy/4qjGTS6Eil3CyH6v7tT6zRQJvCXuXK2suqXuXzC73VQ qE7vD46J/hJIaAIAJanXsJVXPBR/8vOlEqRwWXjnERFpupJqVK/DzuHxe7EAdS0Gar2Vj6 9VzI6VLwY2JzIlq0XuOjBLUWxwYuNrN1u2XLGyy6j7zmmvbaU4EKXYcCGlFSiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741361112; a=rsa-sha256; cv=none; b=ksHlrer1BSqxjSW6kqT3q7m0A8/lGdrgjIT24DBysiL59CAQb6WcB+YrTij9MfZmOAQ+IF JNKSpPnyouhIkgmuhp+It/nCRnReW2G8I48lLmTr5xUW50WXrx4Hn2f1QuE7n3tzMVYTn7 9u1Wru6nTSanmbC90C2q9cjjXQ4nDSPYy2EuctGN8sQhAlvYXAqcaFRjSPZuEUP/n3PKUx GsjD+B+0KYs3+V2Tx90vqNh/qyftyqVSapJ5c/LvL8+Pry4iREuTJUavAzqxgaWhE20D+q XpaLwBzi2EavXOy9OjLPS3Nrc6H73Y+MIyFMfLvIJGJ0hWsfW9z1g9WjmBnlBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741361112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j6beplug1NJ/xO32ieCqIONRHkmUp7+g1svnTZisDHU=; b=pNrqgTlFrxzr/LUdR1f1BolPNZ6rInIHJLwKNckDGBxfLRG8n8hG160pD4qNFhY1gPbmB7 gfCwBz0ZALLiSMoq4jU2nB4yPxVN0ykliE/6iqFPgBesBOHLA38kaWQn0oRTXllVwKGsG7 Clcui1HRzSdcvhiTraLdsTxQnyTso2Ru2UeL0CwWEBqBHuRdFHQoTIU2HrmEbMm9jBVs1I LWuStFSFiMvTjdkbzeGzRy63OOEmsY4bZHiyuGz57jj0l5Ss3Y/WQHJoxcLVkdpF7ivTXf 2j+No3wy1CUuxJyeN8QYLezt3qMI9p3qyQtHnDFl+oCb2A0UKlNNB4oAKi0NfA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8VTh0Dhbzjth; Fri, 07 Mar 2025 15:25:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 527FPBTe003044; Fri, 7 Mar 2025 15:25:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 527FPBoj003041; Fri, 7 Mar 2025 15:25:11 GMT (envelope-from git) Date: Fri, 7 Mar 2025 15:25:11 GMT Message-Id: <202503071525.527FPBoj003041@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: d2e7a078ba6e - stable/14 - ssh: Remove reference to now-upstreamed patch List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d2e7a078ba6ef5ccb0c2f6149d77a0eaec5421ea Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=d2e7a078ba6ef5ccb0c2f6149d77a0eaec5421ea commit d2e7a078ba6ef5ccb0c2f6149d77a0eaec5421ea Author: Ed Maste AuthorDate: 2025-02-20 23:40:52 +0000 Commit: Ed Maste CommitDate: 2025-03-07 15:24:59 +0000 ssh: Remove reference to now-upstreamed patch Our class-based login restrictions patch was merged upstream in commit c276672fc0e9 ("Class-imposed login restrictions"). Sponsored by: The FreeBSD Foundation (cherry picked from commit 79979aa44d1b7fd5d04fd574ba8702f76c81c80c) --- crypto/openssh/FREEBSD-upgrade | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/crypto/openssh/FREEBSD-upgrade b/crypto/openssh/FREEBSD-upgrade index 2950731c7401..efea4cda77b4 100644 --- a/crypto/openssh/FREEBSD-upgrade +++ b/crypto/openssh/FREEBSD-upgrade @@ -154,29 +154,22 @@ counting; the agent will automatically exit when the last client disconnects. -7) Class-based login restrictions (27ceebbc2402) - - We've added code to auth.c to enforce the host.allow, host.deny, - times.allow and times.deny login class capabilities, based on an - upstream submission from - https://github.com/openssh/openssh-portable/pull/262. - -8) Blocklist integration +7) Blocklist integration We include blocklist (https://github.com/zoulasc/blocklist) in FreeBSD, and ssh is patched to report login failures to it. -9) Paths +8) Paths A number of paths are changed to match FreeBSD's configuration (e.g., using /usr/local/ instead of /uxr/X11R6/). -10) Retired patches +9) Retired patches We no longer have client-side VersionAddendum, but we recognize and ignore the configuration options to avoid breaking existing configurations. -11) PrintLastLog bugfix +10) PrintLastLog bugfix Upstream's autoconf sets DISABLE_LASTLOG if the system does not have lastlog.ll_line, but uses it to disable the PrintLastLog configuration From nobody Sat Mar 8 08:13:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsT3cszz5qcnL; Sat, 08 Mar 2025 08:13:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsT32SPz3klC; Sat, 08 Mar 2025 08:13:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421629; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=36N68G69tM8qrwBC2flmZXY2CnI7faulXbpmntrAnsg=; b=lxdlcuso3eBqxupKSFuEXaB2d7DZfY9DLrFkSXeeOyIJ7QVXPmZMTkEy/cCFs/YM9dGfiI lOndgeKdEu2gofkAkHagLYk+QSik9FJDuM/t8A+mLxZqe30zjigW/kJEw+oZHwliON3RoS OYPiBZfRT6YqtjwRF0wxvrIhtULFnK47HzxmEaN85/L2q0lQLixvEzUghyxojySRY5MR+d eDq/TxR0kZz2umn/4X10T/PjOOpFCqdZgahfrZ03+QzXf+YS589FKxljmGi+PMafkXyCU3 lWouFfvZUWivq52oHYKMMOiElY4CrTGp+ZTiqIBj6CClmrMQspV+gpcrnjXSTQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421629; a=rsa-sha256; cv=none; b=fqIyRU3G2mNrh6gRLVmerphHHbku9PMYmsY7wFwD4GqzrPONKW2p7ylaKChPiUjY1DiKDx wUIvZ1Bw3KKccm97S3uNMKQooFrbTtTUdotqDJNFdzzc0Gj2dktTNF4wprSXp+uLPIif6s F2isHPnj0GGB1m8OMYNIL3Ra9x7WMY6QPG0fgZm6YL10rBNOHpoY9tExDciOkDQVktb9N1 D6Jd7Txm7EJ+0hWE68oHQPrEfN3tBzLtRXpFqI24GjcZyvInwbOTTU2jLFtwWrT8IzWWfT /yUYu3L+llyNbLSP4TNFlxbm289zOS9Z+7lUdSiNYDPg9fmen42jo3lZSbwzog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421629; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=36N68G69tM8qrwBC2flmZXY2CnI7faulXbpmntrAnsg=; b=DKH+VrfE65i2jqVEWTIh+ngMf+7Xz5HQwib7jpfR4Z7yeHLFFMpyzRugIhhB4XxU5NFwne ErlZofBHPDHMab7si34Usc85l0c/o+U6kIfmwmzfX2MjuafDnE5xriXMgbQFs1pfS/Zr8s j1PKSulMHp2AYXaZfDJFX1f0VF6kznD+ejSiO7oDR/BwWCdcDJ8vMNmBjMdorjdGHseoTC JP8NOUPVCyqQ8eSxNYfxWjbCYfcbsNWTHkvnEBC21tCgxuou3k2YmFXmxmgrBrKeRj0+xl vBj0zimVBaS3mChjGsjphhYGb4iaWz9XCdgXVdl2DHh87JK8+CLFJzH9SaLa/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsT2bQ5zd9; Sat, 08 Mar 2025 08:13:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288Dnce097390; Sat, 8 Mar 2025 08:13:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288DnPJ097387; Sat, 8 Mar 2025 08:13:49 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:49 GMT Message-Id: <202503080813.5288DnPJ097387@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9d4823824d40 - stable/14 - gve: Disallow MTUs within a problematic range List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9d4823824d4073313f758dd67ba9212bfcb39306 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9d4823824d4073313f758dd67ba9212bfcb39306 commit 9d4823824d4073313f758dd67ba9212bfcb39306 Author: Jasper Tran O'Leary AuthorDate: 2025-02-14 14:57:06 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 gve: Disallow MTUs within a problematic range If hardware LRO is enabled with GVE, then setting the driver's MTU to a range of values around 8000 will cause dropped packets and drastically degraded performance. While this issue is being investigated, we need to prohibit the driver's MTU being set to a value within this range. Signed-off-by: Jasper Tran O'Leary Reviewed by: delphij, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48971 (cherry picked from commit 909e2d7b691f7418a78b1289a51d3b6c46860a9b) --- sys/dev/gve/gve_main.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index 0e40656ca928..c726177c199c 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -196,6 +196,8 @@ static int gve_set_mtu(if_t ifp, uint32_t new_mtu) { struct gve_priv *priv = if_getsoftc(ifp); + const uint32_t max_problem_range = 8227; + const uint32_t min_problem_range = 7822; int err; if ((new_mtu > priv->max_mtu) || (new_mtu < ETHERMIN)) { @@ -204,6 +206,19 @@ gve_set_mtu(if_t ifp, uint32_t new_mtu) return (EINVAL); } + /* + * When hardware LRO is enabled in DQ mode, MTUs within the range + * [7822, 8227] trigger hardware issues which cause a drastic drop + * in throughput. + */ + if (!gve_is_gqi(priv) && !gve_disable_hw_lro && + new_mtu >= min_problem_range && new_mtu <= max_problem_range) { + device_printf(priv->dev, + "Cannot set to MTU to %d within the range [%d, %d] while hardware LRO is enabled\n", + new_mtu, min_problem_range, max_problem_range); + return (EINVAL); + } + err = gve_adminq_set_mtu(priv, new_mtu); if (err == 0) { if (bootverbose) From nobody Sat Mar 8 08:13:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsW00Jcz5qd1h; Sat, 08 Mar 2025 08:13:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsV41zRz3kXX; Sat, 08 Mar 2025 08:13:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fxPOBOxnD3NR+F45MElZyyL+5tPFKPDdUgUk9jDQxio=; b=Bo2XIan9Yo8MAajKjxOUDbjy1lW5JmpknLUc/PJWBWba6v7WWCxc8kobbclnqLkvWX1q9V 6pMyJCMtL1cj8XebnBwXTaOjCTRloGj/6NY/jC4T0/88Hy6SjoIYnBD4Ta2k86cqg/5Odg irSXhv3knx2a25lqy5zrVn5SOQXYCNrZGABrm49S5dzmZG9E69bXOfTvA6qRU/9IrsUESe awipYhseYkDEYNNxX37/GaERTDoePWbGghu0SVvGt5oTq8fF9YVWqoaksXMEegQwMEXTZT EhjJDzjtu3TfYLpcAddS2uopslTq5BgLFsxD7ufV6e4z9XtpRn84nJ76+y0zAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421630; a=rsa-sha256; cv=none; b=Mnl0sobmfuoKSrJV8Q5ZKBidh4TWCJ7VoMq6dOb589L5YEk22cU0KcFWywSF9GdwduXhhR 8hBC0iQspRPMtb3m4B8zI2ZR8/QkJwXZija1xESAkuVfsQ8SWCqe/soFQZNwtH1GgNGaYc s0opM/A5owwCltm6jQbP5TXCK/NLN6PgIBYdXD/2zNUjemwmRM4JiCrSjrvpyqX4Pi/Duq nMSJuo06EstQvQqmMaLpfxRE5f3727Kut51zUb6QRPEJgV/UOuLHwZU3wc0XZmKvnzJx29 fv2isKRu+RO6QkoFhBLRF5cpgkThRvj1EZ1OOKZaLpgyMupRYh69YdexFlJtLA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fxPOBOxnD3NR+F45MElZyyL+5tPFKPDdUgUk9jDQxio=; b=NhUsyBWwc8Gzvzbc41bkfCT1rwMCwaJh5Hjw2GG7UwnflT1cJG0XmEk2p0+Ctr4euCkyeW UdVJ1B2uW19CIy9lbpYkWTxgkaVhnro2ilGyQ+4Bxh3wDLiTCqiuv8TipxcC7A3YXCB99b lSEqTneKtEMYlti2k5wl6XOWoK//YT2sW9fltf6TtuLG5yvChhMvMqFGbS6ZtCFVy92MO7 WKCyjbQVIc5FSS6ggx+x7gXToy7ZSGDJJ73ZvU5zeqA9PaWDlgub1OpNEgFwMc+C39KZ2x E7RbytRLPiHRdmCHVFXhe+pt/Zk770saiZKJt/o2T3JiwGv1gDY6EpdyJJ+mGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsV3ZGXzjC; Sat, 08 Mar 2025 08:13:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288Doxb097428; Sat, 8 Mar 2025 08:13:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288Dojq097424; Sat, 8 Mar 2025 08:13:50 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:50 GMT Message-Id: <202503080813.5288Dojq097424@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 65f5027e38eb - stable/14 - gve: Fix memory leak during reset List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 65f5027e38eb706558df634acaf54a94c0ff697f Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=65f5027e38eb706558df634acaf54a94c0ff697f commit 65f5027e38eb706558df634acaf54a94c0ff697f Author: Jasper Tran O'Leary AuthorDate: 2025-02-14 15:02:41 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 gve: Fix memory leak during reset Before this change, during reset we were allocating new memory for priv->ptype_lut_dqo, irq_db_array and the counter_array over the old memory. This change ensures we do not allocate new memory during reset and avoid memory leaks. Signed-off-by: Vee Agarwal Signed-off-by: Jasper Tran O'Leary Reviewed by: delphij, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48970 (cherry picked from commit 62b2d0c3f4add3bb87081a96412056e17eed31ea) --- sys/dev/gve/gve_main.c | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index c726177c199c..aa0866c5984b 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -517,7 +517,7 @@ abort: } static void -gve_deconfigure_resources(struct gve_priv *priv) +gve_deconfigure_and_free_device_resources(struct gve_priv *priv) { int err; @@ -543,7 +543,7 @@ gve_deconfigure_resources(struct gve_priv *priv) } static int -gve_configure_resources(struct gve_priv *priv) +gve_alloc_and_configure_device_resources(struct gve_priv *priv) { int err; @@ -584,7 +584,7 @@ gve_configure_resources(struct gve_priv *priv) return (0); abort: - gve_deconfigure_resources(priv); + gve_deconfigure_and_free_device_resources(priv); return (err); } @@ -649,7 +649,7 @@ static void gve_destroy(struct gve_priv *priv) { gve_down(priv); - gve_deconfigure_resources(priv); + gve_deconfigure_and_free_device_resources(priv); gve_release_adminq(priv); } @@ -662,9 +662,21 @@ gve_restore(struct gve_priv *priv) if (err != 0) goto abort; - err = gve_configure_resources(priv); - if (err != 0) + err = gve_adminq_configure_device_resources(priv); + if (err != 0) { + device_printf(priv->dev, "Failed to configure device resources: err=%d\n", + err); + err = (ENXIO); goto abort; + } + if (!gve_is_gqi(priv)) { + err = gve_adminq_get_ptype_map_dqo(priv, priv->ptype_lut_dqo); + if (err != 0) { + device_printf(priv->dev, "Failed to configure ptype lut: err=%d\n", + err); + goto abort; + } + } err = gve_up(priv); if (err != 0) @@ -677,6 +689,25 @@ abort: return; } +static void +gve_clear_device_resources(struct gve_priv *priv) +{ + int i; + + for (i = 0; i < priv->num_event_counters; i++) + priv->counters[i] = 0; + bus_dmamap_sync(priv->counter_array_mem.tag, priv->counter_array_mem.map, + BUS_DMASYNC_PREWRITE); + + for (i = 0; i < priv->num_queues; i++) + priv->irq_db_indices[i] = (struct gve_irq_db){}; + bus_dmamap_sync(priv->irqs_db_mem.tag, priv->irqs_db_mem.map, + BUS_DMASYNC_PREWRITE); + + if (priv->ptype_lut_dqo) + *priv->ptype_lut_dqo = (struct gve_ptype_lut){0}; +} + static void gve_handle_reset(struct gve_priv *priv) { @@ -708,6 +739,8 @@ gve_handle_reset(struct gve_priv *priv) gve_clear_state_flag(priv, GVE_STATE_FLAG_TX_RINGS_OK); gve_down(priv); + gve_clear_device_resources(priv); + gve_restore(priv); GVE_IFACE_LOCK_UNLOCK(priv->gve_iface_lock); @@ -835,7 +868,7 @@ gve_attach(device_t dev) if (err != 0) goto abort; - err = gve_configure_resources(priv); + err = gve_alloc_and_configure_device_resources(priv); if (err != 0) goto abort; @@ -864,7 +897,7 @@ gve_attach(device_t dev) abort: gve_free_rings(priv); - gve_deconfigure_resources(priv); + gve_deconfigure_and_free_device_resources(priv); gve_release_adminq(priv); gve_free_sys_res_mem(priv); GVE_IFACE_LOCK_DESTROY(priv->gve_iface_lock); From nobody Sat Mar 8 08:13:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsY2yx2z5qd6H; Sat, 08 Mar 2025 08:13:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsW4XKLz3kmh; Sat, 08 Mar 2025 08:13:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kSH7MMWWKNd7ZnZAy3DQQWkwggAuzYJ0AtdSP11M6jQ=; b=RS9d8KlfNdt7VAy6ES6S4cZCInCxg586BjDZbveXkNr+w8W2vvQSjurWt1QHrSX6dsdBkY YpjpixtxJlGmW+zseXp5o6Linrsc2Ux37fKjJqQJECGKCEp9A4NFZmlthCA838HPFGH8r+ 0+pvaV1RFGbN2ycH3UDSyJAvhlp2KFvKE5JMDrv76T9/OM6O9uMiJJbCKsMFugineU71JD x7HDTkvfnb59GO42yYc7PlzhrnlBJV1RntKPMjH+JhmpZcuJqNRC3S8hAi9SjqUW/bbEFp nobwkxWD1NzLi1/oX8OQdNdv5QqFsM0yoy9SW9F9b2ZXiV6T4GgC+gtNs0nMmQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421631; a=rsa-sha256; cv=none; b=c2iOr22qgWCixB30yFpFN87nu2GuHANKvfhC/lsFCeK0n/pHMPcOqqX+k2rg9qtyXfhluK /sIk7WFr0YdlWRSgFa48aixb56LObf/GCHKJyOA58a9hYiop8v54Yl0MU9RHLdLFCVKfvR HfjSz3FTSKP9mpT7d85FzbRXEwuUvXhz4PlnaH1HRvYePFlGsqI//IuN4+pfeOXoSH/jcP yK0DTnfAU2jB8YpWhUyWgwwnYf2uO159DKcmik/9Zqs5KeQFfWOIVWAji5IveEC6FJYYas uzwqV8N1QiyA3iEdCE8lw1lfYIJ+HbrX65UdHBISoVxOmmXt92GKREhO+nHueA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kSH7MMWWKNd7ZnZAy3DQQWkwggAuzYJ0AtdSP11M6jQ=; b=TnV9S+rLukbMK3H7e1UB6GmZKgSXyLeZ8nqLL4H6hC+BrZ/suida706QVzl/P1/37nu0zW VaXepnrg5+dsAchz+iG35bjsopUPIbJ9hHSLgdUC5/ocxRRdNdV1DbwJs8BxOv7p802+pY u2SyCtI9xDUsJ22eU0Zm8CvuR2GNBEs933RslTsU8txtvFOF1tOtdW30Y5Rbj/DJ3BTUib pd24gXWukZMf+mXk4v7GmIYCYN6TRCmab63GLF+4nL6ZsdoGI4/rf0kBrGFYNuvTlib8tH KSmaNUMtcf3B46hkr82F1sm5N8CjoVOGFwXDJ2+Ui1f4Iqbw8WSFtxTKG6WMzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsW44fFzRn; Sat, 08 Mar 2025 08:13:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288Dp19097463; Sat, 8 Mar 2025 08:13:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288DpRR097460; Sat, 8 Mar 2025 08:13:51 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:51 GMT Message-Id: <202503080813.5288DpRR097460@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 28ba212a95f2 - stable/14 - gve: Do minor cleanup and bump version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 28ba212a95f271746a8a22b891dd76ae6e3459e1 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=28ba212a95f271746a8a22b891dd76ae6e3459e1 commit 28ba212a95f271746a8a22b891dd76ae6e3459e1 Author: Jasper Tran O'Leary AuthorDate: 2025-02-14 15:04:16 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 gve: Do minor cleanup and bump version This commit fixes several minor issues: - Removes an unnecessary function pointer parameter on gve_start_tx_ring - Adds a presubmit check against style(9) - Replaces mb() and rmb() macros with native atomic_thread_fence_seq_cst() and atomic_thread_fence_acq() respectively - Fixes various typos throughout - Increments the version number to 1.3.2 Co-authored-by: Vee Agarwal Signed-off-by: Vee Agarwal Signed-off-by: Jasper Tran O'Leary Reviewed by: delphij, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48969 (cherry picked from commit 031800c786823a9ad4c4d2f79f217d42dad3f5d1) --- sys/dev/gve/gve.h | 6 +++--- sys/dev/gve/gve_desc.h | 4 ++-- sys/dev/gve/gve_main.c | 6 +++--- sys/dev/gve/gve_rx.c | 2 +- sys/dev/gve/gve_rx_dqo.c | 2 +- sys/dev/gve/gve_sysctl.c | 4 ++-- sys/dev/gve/gve_tx.c | 16 +++++++--------- sys/dev/gve/gve_tx_dqo.c | 2 +- 8 files changed, 20 insertions(+), 22 deletions(-) diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h index 92ab6838d5bb..39965c8669cf 100644 --- a/sys/dev/gve/gve.h +++ b/sys/dev/gve/gve.h @@ -303,7 +303,7 @@ struct gve_rx_ring { SLIST_HEAD(, gve_rx_buf_dqo) free_bufs; /* - * Only used in QPL mode. Pages refered to by if_input-ed mbufs + * Only used in QPL mode. Pages referred to by if_input-ed mbufs * stay parked here till their wire count comes back to 1. * Pages are moved here after there aren't any pending completions. */ @@ -450,7 +450,7 @@ struct gve_tx_ring { /* * The completion taskqueue moves pending-packet objects to this * list after freeing the mbuf. The "_prd" denotes that this is - * a producer list. The trasnmit taskqueue steals this list once + * a producer list. The transmit taskqueue steals this list once * its consumer list, with the "_csm" suffix, is depleted. */ int32_t free_pending_pkts_prd; @@ -458,7 +458,7 @@ struct gve_tx_ring { /* * The completion taskqueue moves the QPL pages corresponding to a * completed packet into this list. It is only used in QPL mode. - * The "_prd" denotes that this is a producer list. The trasnmit + * The "_prd" denotes that this is a producer list. The transmit * taskqueue steals this list once its consumer list, with the "_csm" * suffix, is depleted. * diff --git a/sys/dev/gve/gve_desc.h b/sys/dev/gve/gve_desc.h index 5f09cc8b77b8..48c4ac27596b 100644 --- a/sys/dev/gve/gve_desc.h +++ b/sys/dev/gve/gve_desc.h @@ -130,10 +130,10 @@ union gve_rx_data_slot { __be64 addr; }; -/* GVE Recive Packet Descriptor Seq No */ +/* GVE Receive Packet Descriptor Seq No */ #define GVE_SEQNO(x) (be16toh(x) & 0x7) -/* GVE Recive Packet Descriptor Flags */ +/* GVE Receive Packet Descriptor Flags */ #define GVE_RXFLG(x) htobe16(1 << (3 + (x))) #define GVE_RXF_FRAG GVE_RXFLG(3) /* IP Fragment */ #define GVE_RXF_IPV4 GVE_RXFLG(4) /* IPv4 */ diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index aa0866c5984b..8e764f9660d7 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -32,10 +32,10 @@ #include "gve_adminq.h" #include "gve_dqo.h" -#define GVE_DRIVER_VERSION "GVE-FBSD-1.3.1\n" +#define GVE_DRIVER_VERSION "GVE-FBSD-1.3.2\n" #define GVE_VERSION_MAJOR 1 #define GVE_VERSION_MINOR 3 -#define GVE_VERSION_SUB 1 +#define GVE_VERSION_SUB 2 #define GVE_DEFAULT_RX_COPYBREAK 256 @@ -391,7 +391,7 @@ gve_setup_ifnet(device_t dev, struct gve_priv *priv) /* * Set TSO limits, must match the arguments to bus_dma_tag_create * when creating tx->dqo.buf_dmatag. Only applies to the RDA mode - * because in QPL we copy the entire pakcet into the bounce buffer + * because in QPL we copy the entire packet into the bounce buffer * and thus it does not matter how fragmented the mbuf is. */ if (!gve_is_gqi(priv) && !gve_is_qpl(priv)) { diff --git a/sys/dev/gve/gve_rx.c b/sys/dev/gve/gve_rx.c index 35f22f2308f0..e540ad6f4c11 100644 --- a/sys/dev/gve/gve_rx.c +++ b/sys/dev/gve/gve_rx.c @@ -706,7 +706,7 @@ gve_rx_cleanup_tq(void *arg, int pending) * interrupt but they will still be handled by the enqueue below. * Fragments received after the barrier WILL trigger an interrupt. */ - mb(); + atomic_thread_fence_seq_cst(); if (gve_rx_work_pending(rx)) { gve_db_bar_write_4(priv, rx->com.irq_db_offset, GVE_IRQ_MASK); diff --git a/sys/dev/gve/gve_rx_dqo.c b/sys/dev/gve/gve_rx_dqo.c index 6c5d656aaa04..6ce9ddd887d0 100644 --- a/sys/dev/gve/gve_rx_dqo.c +++ b/sys/dev/gve/gve_rx_dqo.c @@ -972,7 +972,7 @@ gve_rx_cleanup_dqo(struct gve_priv *priv, struct gve_rx_ring *rx, int budget) * Prevent generation bit from being read after the rest of the * descriptor. */ - rmb(); + atomic_thread_fence_acq(); rx->cnt++; rx->dqo.tail = (rx->dqo.tail + 1) & rx->dqo.mask; diff --git a/sys/dev/gve/gve_sysctl.c b/sys/dev/gve/gve_sysctl.c index 7a091d9caa43..c96d082837a4 100644 --- a/sys/dev/gve/gve_sysctl.c +++ b/sys/dev/gve/gve_sysctl.c @@ -94,7 +94,7 @@ gve_setup_rxq_sysctl(struct sysctl_ctx_list *ctx, SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_mbuf_dmamap_err", CTLFLAG_RD, &stats->rx_mbuf_dmamap_err, - "Number of rx mbufs which couldnt be dma mapped"); + "Number of rx mbufs which could not be dma mapped"); SYSCTL_ADD_COUNTER_U64(ctx, list, OID_AUTO, "rx_mbuf_mclget_null", CTLFLAG_RD, &stats->rx_mbuf_mclget_null, @@ -170,7 +170,7 @@ gve_setup_txq_sysctl(struct sysctl_ctx_list *ctx, SYSCTL_ADD_COUNTER_U64(ctx, tx_list, OID_AUTO, "tx_mbuf_collpase", CTLFLAG_RD, &stats->tx_mbuf_collapse, - "tx mbufs that had to be collpased"); + "tx mbufs that had to be collapsed"); SYSCTL_ADD_COUNTER_U64(ctx, tx_list, OID_AUTO, "tx_mbuf_defrag", CTLFLAG_RD, &stats->tx_mbuf_defrag, diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c index e7e10e526cb9..04dde4f1a79b 100644 --- a/sys/dev/gve/gve_tx.c +++ b/sys/dev/gve/gve_tx.c @@ -240,15 +240,16 @@ gve_clear_tx_ring(struct gve_priv *priv, int i) } static void -gve_start_tx_ring(struct gve_priv *priv, int i, - void (cleanup) (void *arg, int pending)) +gve_start_tx_ring(struct gve_priv *priv, int i) { struct gve_tx_ring *tx = &priv->tx[i]; struct gve_ring_com *com = &tx->com; atomic_store_bool(&tx->stopped, false); - - NET_TASK_INIT(&com->cleanup_task, 0, cleanup, tx); + if (gve_is_gqi(priv)) + NET_TASK_INIT(&com->cleanup_task, 0, gve_tx_cleanup_tq, tx); + else + NET_TASK_INIT(&com->cleanup_task, 0, gve_tx_cleanup_tq_dqo, tx); com->cleanup_tq = taskqueue_create_fast("gve tx", M_WAITOK, taskqueue_thread_enqueue, &com->cleanup_tq); taskqueue_start_threads(&com->cleanup_tq, 1, PI_NET, "%s txq %d", @@ -297,10 +298,7 @@ gve_create_tx_rings(struct gve_priv *priv) com->db_offset = 4 * be32toh(com->q_resources->db_index); com->counter_idx = be32toh(com->q_resources->counter_index); - if (gve_is_gqi(priv)) - gve_start_tx_ring(priv, i, gve_tx_cleanup_tq); - else - gve_start_tx_ring(priv, i, gve_tx_cleanup_tq_dqo); + gve_start_tx_ring(priv, i); } gve_set_state_flag(priv, GVE_STATE_FLAG_TX_RINGS_OK); @@ -421,7 +419,7 @@ gve_tx_cleanup_tq(void *arg, int pending) * interrupt but they will still be handled by the enqueue below. * Completions born after the barrier WILL trigger an interrupt. */ - mb(); + atomic_thread_fence_seq_cst(); nic_done = gve_tx_load_event_counter(priv, tx); todo = nic_done - tx->done; diff --git a/sys/dev/gve/gve_tx_dqo.c b/sys/dev/gve/gve_tx_dqo.c index fab2d6d0f613..b4bcb1fd01c5 100644 --- a/sys/dev/gve/gve_tx_dqo.c +++ b/sys/dev/gve/gve_tx_dqo.c @@ -1031,7 +1031,7 @@ gve_tx_cleanup_dqo(struct gve_priv *priv, struct gve_tx_ring *tx, int budget) * Prevent generation bit from being read after the rest of the * descriptor. */ - rmb(); + atomic_thread_fence_acq(); type = compl_desc->type; if (type == GVE_COMPL_TYPE_DQO_DESC) { From nobody Sat Mar 8 08:13:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsY74Dlz5qcnN; Sat, 08 Mar 2025 08:13:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsX6TqBz3l1j; Sat, 08 Mar 2025 08:13:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421632; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YNni6ILoAf7XwbDEkMLPXE1dS+baBxTn7RfDkn+6BSI=; b=HwiaLcSEkdub/v+t8+MV/8zqEmkI+D80HKUH5UBugZ+piKw5oCP5LRRC/g1QKVoDhr+CjJ JxdXAtDnHY4UaJFcSku0MRrsucRvmJOg4KjzSn1U2eoBndupS4oJRy6vZ0sezDSGH3KO0C Fbu5kNv37CmUAah3MBOSxdAW+VuPWQtSQHuYRLbraCNIuEfEb5IhSDlAIyTmQPGY7/BSR5 y2/w+IvInJ6b9N1nOTloR/UNCkSW3ff3G6B403doSXqFk4bX/HYccgyxOGfmGhCi3Yt4i1 ZYNiVJ6GM4cOLkuDFj4zMdpWvPiEToduwUXdXKVLHliU2l8jT0URDKEr25MB7g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421632; a=rsa-sha256; cv=none; b=colR6FQ7gWXJU+nm+VExz8eG5vuAw2er9/0wNcOJ2rHSx9vbgjgKKOQB6Sv2SULbdqQHKB erZ62gQMF7a956oin4MywZ7Gd7Z3uqA+/HrwUFQhyGUEe5Rc7jCdiFTHVGQe6G2D+5BIpL ZDlWUw/+hAiuu4aPKEgVFFmVqpygQgTjn3Z0ndXx6Kcm9z1YQSvT1taZmZ66qZiPh8UH/d nK72EEmF3pB0rl+rB62MYg2ZTc4Xrc7JrwLa7aXW5PRns2DL/yRxoMmTjjDQ7l4GXubPls ljFz/O6sl5bfENYVa+ih9ylPkjLtck6ofqZtaBqF6dyCS4qBR/09M6zAo4rpQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421632; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YNni6ILoAf7XwbDEkMLPXE1dS+baBxTn7RfDkn+6BSI=; b=kTAS6M6Vap5ZOwKkWHNsCj3hEmt2kpbpVYXa61lL68u9f9wqA5JIrmt1RAgF3GE2IYo+sn R9riioUShWdnfaQt2oAxpd4a1o9ZTaAHjCZ2mW2EdHF4UPueZUnsng6jfEuGtIKZbkPoXd 4bBgs1NVUlGO8hhPbw/2/ScoBBqRT2Ach+GhTe+HAwkE6EdCtlqh4zMSHNpvag5188MG3/ u2bvj7fLvdm2h7EiPsHLisGHTI//d2XGhpwFNvqWAzA0amma9pTGeGIKKPCnT9VTAyet5r v2IlS0JAl7ENxVunGONX6HAfb68wHjLeI6w4mM85zTgIjJbZ2qefosohxqWfXQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsX4lXFzsv; Sat, 08 Mar 2025 08:13:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288Dqc6097498; Sat, 8 Mar 2025 08:13:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288DqpI097495; Sat, 8 Mar 2025 08:13:52 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:52 GMT Message-Id: <202503080813.5288DqpI097495@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 875ec35c0661 - stable/14 - gve: Fix qpl_buf_head being initialized improperly List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 875ec35c0661ac2dfd07c64b4ccf5860b1c08fc8 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=875ec35c0661ac2dfd07c64b4ccf5860b1c08fc8 commit 875ec35c0661ac2dfd07c64b4ccf5860b1c08fc8 Author: Jasper Tran O'Leary AuthorDate: 2025-02-14 15:05:46 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 gve: Fix qpl_buf_head being initialized improperly Currently, for DQO QPL our MPASS assertion on qpl_buf_head for available pending_pkts (i.e. not holding a packet) fails due to incorrect initialization. The MPASS fails on the first run of packets through the ring when INVARIANTS is on, and when INVARIANTS is off, things work without a bug. The MPASS guards against improper reaping of "pending_pkt" objects, and thus was failing for the first run through the ring. By correctly initializing the objects in this patch we make the MPASS not fail on the first run too. Signed-off-by: Vee Agarwal Signed-off-by: Jasper Tran O'Leary Reviewed by: delphij, markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48968 (cherry picked from commit 73c3fe4db3ebc2bd6cb732aae77ea017fd376d22) --- sys/dev/gve/gve_tx_dqo.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/sys/dev/gve/gve_tx_dqo.c b/sys/dev/gve/gve_tx_dqo.c index b4bcb1fd01c5..bf314ef95173 100644 --- a/sys/dev/gve/gve_tx_dqo.c +++ b/sys/dev/gve/gve_tx_dqo.c @@ -43,6 +43,13 @@ gve_unmap_packet(struct gve_tx_ring *tx, bus_dmamap_unload(tx->dqo.buf_dmatag, pending_pkt->dmamap); } +static void +gve_clear_qpl_pending_pkt(struct gve_tx_pending_pkt_dqo *pending_pkt) +{ + pending_pkt->qpl_buf_head = -1; + pending_pkt->num_qpl_bufs = 0; +} + static void gve_free_tx_mbufs_dqo(struct gve_tx_ring *tx) { @@ -54,10 +61,9 @@ gve_free_tx_mbufs_dqo(struct gve_tx_ring *tx) if (!pending_pkt->mbuf) continue; - if (gve_is_qpl(tx->com.priv)) { - pending_pkt->qpl_buf_head = -1; - pending_pkt->num_qpl_bufs = 0; - } else + if (gve_is_qpl(tx->com.priv)) + gve_clear_qpl_pending_pkt(pending_pkt); + else gve_unmap_packet(tx, pending_pkt); m_freem(pending_pkt->mbuf); @@ -880,8 +886,7 @@ gve_reap_qpl_bufs_dqo(struct gve_tx_ring *tx, */ atomic_add_rel_32(&tx->dqo.qpl_bufs_produced, pkt->num_qpl_bufs); - pkt->qpl_buf_head = -1; - pkt->num_qpl_bufs = 0; + gve_clear_qpl_pending_pkt(pkt); } static uint64_t @@ -981,11 +986,13 @@ gve_clear_tx_ring_dqo(struct gve_priv *priv, int i) gve_free_tx_mbufs_dqo(tx); - for (j = 0; j < tx->dqo.num_pending_pkts - 1; j++) { - tx->dqo.pending_pkts[j].next = j + 1; + for (j = 0; j < tx->dqo.num_pending_pkts; j++) { + if (gve_is_qpl(tx->com.priv)) + gve_clear_qpl_pending_pkt(&tx->dqo.pending_pkts[j]); + tx->dqo.pending_pkts[j].next = + (j == tx->dqo.num_pending_pkts - 1) ? -1 : j + 1; tx->dqo.pending_pkts[j].state = GVE_PACKET_STATE_FREE; } - tx->dqo.pending_pkts[tx->dqo.num_pending_pkts - 1].next = -1; tx->dqo.free_pending_pkts_csm = 0; atomic_store_rel_32(&tx->dqo.free_pending_pkts_prd, -1); From nobody Sat Mar 8 08:13:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsb1rnYz5qcfH; Sat, 08 Mar 2025 08:13:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsb0D3Hz3kyP; Sat, 08 Mar 2025 08:13:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6oLuYczwagcrsFCU7XrQVAXRlXAgAwjlt5YRLxkHUlw=; b=n6VC9zKrHYBq8mDlbiTboSuKZeBVD6jyFCtAE6UF2UtJ4QSO9JSXNZ0kC+IsZ1sS+d5tu/ VsWnm5d0KGjB3wKHfHcKnI8gZZDJjJ7AqzAfq6o4GoCN43i/y5vZa7LtlP16dyMV4JkHkz Fm0QSGDrMb0SYxg+yqTkHDlYgw+QXQds5jgTK7ZIYzeEuDE6IXqowjTZZWQnAfSLTgOMvB Lqhktc/Yn58/Beock7wMdZVW6//XEIrgrmTRMEIHAzx/QEP196/P3gTnS5FiQ6RFOqeyzQ HJO1gd5WHleZ3y+NHInZaqQPI4A81Dl+EoqYp1vkhYraNGEHHBNyLCMs+SpBCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421635; a=rsa-sha256; cv=none; b=EAMOB3Va52Q1KprsnjBW+3/xY9aDKzoK7KNh/3Y49Qa+LgHodgnP5g3Y7jUXuYo2+tELFE RLzXNve4cjlSOT/Re7eH13cUS0gIzjnyl4zBb8JRJvJo8g3bogKcEc5P7ci1zYJhjvVk14 1TFasRA8T2oJFB5GN9Ko1X/Ps4ARqe5rQxC7xaF3lmdeZH4bz7zOHyVao+o4zq0gWDtKwg 1QYQ5FIt81Wndj4VDJ+C/QiyBP3ogfp+vgb8P8Zoemn0X7/TifMFa90PaftK73aX8Gp150 g8ZHJhl50XLVfvWa0YZmpJu53HX3KURWH9EozLbYO7Nt3MUgQ8I3+9kVLswK5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421635; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6oLuYczwagcrsFCU7XrQVAXRlXAgAwjlt5YRLxkHUlw=; b=e59EeZlV0ZYlSNuNqNxIpIuW7nLlDyHn5FG9BTvl4q/+FqIM21TFo2tvCOger84qSG+K/+ w1hcyp9WVjbU9g55OMt8eByxeW74zBWwJVS4nyBdHOpQZDtmb7MlwLC6uDCbpYOapMvomz BVz2DqYiJQ3puX4BiCgFEcNmz6ku0TPwg04Ev2MR6MeVVqhUOYBLY6LGLrxulVZ5X5vgLe UQZnQj3Pyf4YyOyxf83Hgd9yKtMTjSF5wH5oxufUwcyaF7WUzgATfwcuR5uKygRq9KW73T oIn8C27oKRmVaO436+e44OYktD/0EttV1LE3Wxj5NZ9fQvrA6g0vaMCL7Ok2vg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsZ6Vtvzjp; Sat, 08 Mar 2025 08:13:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288DskS097574; Sat, 8 Mar 2025 08:13:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288Dsk4097571; Sat, 8 Mar 2025 08:13:54 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:54 GMT Message-Id: <202503080813.5288Dsk4097571@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0599d2a1c599 - stable/14 - limits tests: Try to fix spurious cputime test failures List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0599d2a1c5996cef4d79a3fbe753d863cdd2359b Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0599d2a1c5996cef4d79a3fbe753d863cdd2359b commit 0599d2a1c5996cef4d79a3fbe753d863cdd2359b Author: Mark Johnston AuthorDate: 2025-02-14 16:26:19 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 limits tests: Try to fix spurious cputime test failures I very occasionally see test failures caused by the total CPU time being several milliseconds under 3s. The test runs "limits -t 3 time " and verifies that the reported time elapsed is at least 3s (and not too much more). In particular, any time spent executing time(1) itself is counted against the limit but not recorded in the output. I think it makes more sense to reverse the order, so that the CPU time limit is not applied to time(1) itself. This also resolves the test failures I was seeing, which were reproducible only under load (i.e., running many tests in parallel). MFC after: 2 weeks Sponsored by: Klara, Inc. (cherry picked from commit 0f63c4af5e4761680550b0aa08cc96f52076c08c) --- usr.bin/limits/tests/limits_test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.bin/limits/tests/limits_test.sh b/usr.bin/limits/tests/limits_test.sh index 701886066ff1..fd7b50b0945a 100755 --- a/usr.bin/limits/tests/limits_test.sh +++ b/usr.bin/limits/tests/limits_test.sh @@ -57,7 +57,7 @@ cputime_hard_flag_body() atf_check -o match:'cputime[[:space:]]+3 secs' \ limits -H -t 3 limits -S atf_check -e save:time_output -s signal:sigkill \ - limits -H -t 3 $TIME -p sh -c 'while : ; do : ; done' + $TIME -p limits -H -t 3 sh -c 'while : ; do : ; done' validate_time_output time_output } cputime_hard_flag_cleanup() @@ -76,7 +76,7 @@ cputime_soft_flag_body() atf_check -o match:'cputime-cur[[:space:]]+3 secs' \ limits -S -t 3 limits -S atf_check -e save:time_output -s signal:$SIGXCPU \ - limits -S -t 3 $TIME -p sh -c 'while : ; do : ; done' + $TIME -p limits -S -t 3 sh -c 'while : ; do : ; done' validate_time_output time_output } cputime_soft_flag_cleanup() From nobody Sat Mar 8 08:13:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsZ6M47z5qcnP; Sat, 08 Mar 2025 08:13:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsY66Jdz3klb; Sat, 08 Mar 2025 08:13:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421633; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e70a3kWaTYQQXk9THXbI0oLPvkV+/f6ZVmhrVXXMOnM=; b=Z5Bczxu9qs8eQzegHLsfFX+r6rlG5mCictayeGnGBMNhHTNT6y50qPI7nUuharq0ylD/cA Oq5VdZYCamflVuSP+S617arQpd74i82c/jcxzcqvVIWQgO/8xr5zv6/Kp6Q2UaXYm4qiGM pR/DcoXpvPZLA066OL0xPDpsIoW5RD63y2Mu1U5U98wSC5570ybXEKgKjMz8qa5k4HG2VA 2E7Dhuorb2FUwWfJloH4EFsAKKCgbHLQlwC7eIy9A/RH5hzV8QNlY4A/F8vExXNVev6H8Z As0p0yU50BVP/+hL0odKlVprwa2aD3nyuq/BJu9aiOtff3tu2RVVS6ybJrUAJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421633; a=rsa-sha256; cv=none; b=cDugtxhV7fs4AHCF0y/KaMjI2W7CBGbguYh9guH5Jy1dkMBrINFKSg70uc0/n8cihTvl5x 530iLbYeASPQ7qPM7L0sneN9lhUJ1yPqEqxISjckvLq1KoE07MYD5j9AbZNZQvWan9mbZl PJy0GspugOHk+vKZhn1xoIG6YCwynlgLFlIEcT+nfnFuMsQv8MAHrryuMySQV0f0Sy0I4w YIWKgRfhj+NBNNok2zgmIZkughWIm/hDTX/tDypA5lEP9NQ7cqEsq4cmV2EqRT92a/3hiv b9Gttj9w9HJ2yZBeA5L+lbPEx86ONwOppPA41dNEHz2wDQjjFRdcG4VtE/vhsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421633; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e70a3kWaTYQQXk9THXbI0oLPvkV+/f6ZVmhrVXXMOnM=; b=Y5OaPXLuY08qXSditV0YqL9efd4H7FH6CQ9fV+10wijKH0Z5Abh9t+XO0METs6svZcKEXh eYnBtoloEANpwq2ivCOOlmOiSvY2bzowbXkBxE1rENLIb9vG6XNeTbT6yuq8W9wNeWR1u/ mF636ov3Fn9fp2WDZ+vqaK086Lyb/R6cI9i7IDEDSPmudgGK46TNxAs9gM3ryja2Wj3bKZ L6i4mCetW+ALywzuciF4z8u2pM/AZU4lkG3+qsvWjm2H154Keqeji2kKTXWNr49MFkdFhp KIz14u28gtCewi9v4qDggD6pAWgih+d2sGcbyspiO7mr8BkHbyFMs9YuFc6rMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsY5jX6zsw; Sat, 08 Mar 2025 08:13:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288Drmq097539; Sat, 8 Mar 2025 08:13:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288Drq7097536; Sat, 8 Mar 2025 08:13:53 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:53 GMT Message-Id: <202503080813.5288Drq7097536@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 14d4c1845d1b - stable/14 - queue: Add atomic variants for *_EMPTY List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 14d4c1845d1b03e29aa29eaccba1e9677aa13eb1 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=14d4c1845d1b03e29aa29eaccba1e9677aa13eb1 commit 14d4c1845d1b03e29aa29eaccba1e9677aa13eb1 Author: Mark Johnston AuthorDate: 2025-02-14 15:45:11 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 queue: Add atomic variants for *_EMPTY In some places, these macros are used without a lock, under the assumption that they are naturally atomic. After commit 34740937f7a4 ("queue: New debug macros for STAILQ"), this assumption is false. Provide *_EMPTY_ATOMIC for such cases. This lets us include extra debug checks for the non-atomic case, and gives us a way to explicitly annotate unlocked checks, which generally deserve extra scrutiny and might otherwise raise reports from KCSAN. Reviewed by: kib, olce (previous version) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D48899 (cherry picked from commit d2870b8666f2438af400269c0f6a1a48031bb71e) --- share/man/man3/queue.3 | 26 +++++++++++++++++++++++++- sys/sys/queue.h | 12 ++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index ea395d7ffe7f..9fc57a59cf11 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -27,7 +27,7 @@ .\" .\" @(#)queue.3 8.2 (Berkeley) 1/24/94 .\" -.Dd April 8, 2024 +.Dd February 10, 2025 .Dt QUEUE 3 .Os .Sh NAME @@ -35,6 +35,7 @@ .Nm SLIST_CLASS_HEAD , .Nm SLIST_CONCAT , .Nm SLIST_EMPTY , +.Nm SLIST_EMPTY_ATOMIC , .Nm SLIST_ENTRY , .Nm SLIST_FIRST , .Nm SLIST_FOREACH , @@ -55,6 +56,7 @@ .Nm STAILQ_CLASS_HEAD , .Nm STAILQ_CONCAT , .Nm STAILQ_EMPTY , +.Nm STAILQ_EMPTY_ATOMIC , .Nm STAILQ_ENTRY , .Nm STAILQ_FIRST , .Nm STAILQ_FOREACH , @@ -77,6 +79,7 @@ .Nm LIST_CLASS_HEAD , .Nm LIST_CONCAT , .Nm LIST_EMPTY , +.Nm LIST_EMPTY_ATOMIC , .Nm LIST_ENTRY , .Nm LIST_FIRST , .Nm LIST_FOREACH , @@ -98,6 +101,7 @@ .Nm TAILQ_CLASS_HEAD , .Nm TAILQ_CONCAT , .Nm TAILQ_EMPTY , +.Nm TAILQ_EMPTY_ATOMIC , .Nm TAILQ_ENTRY , .Nm TAILQ_FIRST , .Nm TAILQ_FOREACH , @@ -130,6 +134,7 @@ lists and tail queues .Fn SLIST_CLASS_HEAD "HEADNAME" "CLASSTYPE" .Fn SLIST_CONCAT "SLIST_HEAD *head1" "SLIST_HEAD *head2" "TYPE" "SLIST_ENTRY NAME" .Fn SLIST_EMPTY "SLIST_HEAD *head" +.Fn SLIST_EMPTY_ATOMIC "SLIST_HEAD *head" .Fn SLIST_ENTRY "TYPE" .Fn SLIST_FIRST "SLIST_HEAD *head" .Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" @@ -151,6 +156,7 @@ lists and tail queues .Fn STAILQ_CLASS_HEAD "HEADNAME" "CLASSTYPE" .Fn STAILQ_CONCAT "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" .Fn STAILQ_EMPTY "STAILQ_HEAD *head" +.Fn STAILQ_EMPTY_ATOMIC "STAILQ_HEAD *head" .Fn STAILQ_ENTRY "TYPE" .Fn STAILQ_FIRST "STAILQ_HEAD *head" .Fn STAILQ_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" @@ -174,6 +180,7 @@ lists and tail queues .Fn LIST_CLASS_HEAD "HEADNAME" "CLASSTYPE" .Fn LIST_CONCAT "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME" .Fn LIST_EMPTY "LIST_HEAD *head" +.Fn LIST_EMPTY_ATOMIC "LIST_HEAD *head" .Fn LIST_ENTRY "TYPE" .Fn LIST_FIRST "LIST_HEAD *head" .Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" @@ -196,6 +203,7 @@ lists and tail queues .Fn TAILQ_CLASS_HEAD "HEADNAME" "CLASSTYPE" .Fn TAILQ_CONCAT "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TAILQ_ENTRY NAME" .Fn TAILQ_EMPTY "TAILQ_HEAD *head" +.Fn TAILQ_EMPTY_ATOMIC "TAILQ_HEAD *head" .Fn TAILQ_ENTRY "TYPE" .Fn TAILQ_FIRST "TAILQ_HEAD *head" .Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" @@ -427,6 +435,10 @@ high-usage code paths or to operate on long lists. The macro .Nm SLIST_EMPTY evaluates to true if there are no elements in the list. +The +.Nm SLIST_EMPTY_ATOMIC +variant has the same behavior, but can be safely used in contexts where it is +possible that a different thread is concurrently updating the list. .Pp The macro .Nm SLIST_ENTRY @@ -635,6 +647,10 @@ removing all entries from the former. The macro .Nm STAILQ_EMPTY evaluates to true if there are no items on the tail queue. +The +.Nm STAILQ_EMPTY_ATOMIC +variant has the same behavior, but can be safely used in contexts where it is +possible that a different thread is concurrently updating the queue. .Pp The macro .Nm STAILQ_ENTRY @@ -868,6 +884,10 @@ high-usage code paths or to operate on long lists. The macro .Nm LIST_EMPTY evaluates to true if there are no elements in the list. +The +.Nm LIST_EMPTY_ATOMIC +variant has the same behavior, but can be safely used in contexts where it is +possible that a different thread is concurrently updating the list. .Pp The macro .Nm LIST_ENTRY @@ -1086,6 +1106,10 @@ removing all entries from the former. The macro .Nm TAILQ_EMPTY evaluates to true if there are no items on the tail queue. +The +.Nm TAILQ_EMPTY_ATOMIC +variant has the same behavior, but can be safely used in contexts where it is +possible that a different thread is concurrently updating the queue. .Pp The macro .Nm TAILQ_ENTRY diff --git a/sys/sys/queue.h b/sys/sys/queue.h index 38c319704cc4..dd3956d7c111 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -228,6 +228,9 @@ struct { \ #define SLIST_EMPTY(head) ((head)->slh_first == NULL) +#define SLIST_EMPTY_ATOMIC(head) \ + (atomic_load_ptr(&(head)->slh_first) == NULL) + #define SLIST_FIRST(head) ((head)->slh_first) #define SLIST_FOREACH(var, head, field) \ @@ -389,6 +392,9 @@ struct { \ STAILQ_FIRST(head) == NULL; \ }) +#define STAILQ_EMPTY_ATOMIC(head) \ + (atomic_load_ptr(&(head)->stqh_first) == NULL) + #define STAILQ_FIRST(head) ((head)->stqh_first) #define STAILQ_FOREACH(var, head, field) \ @@ -577,6 +583,9 @@ struct { \ #define LIST_EMPTY(head) ((head)->lh_first == NULL) +#define LIST_EMPTY_ATOMIC(head) \ + (atomic_load_ptr(&(head)->lh_first) == NULL) + #define LIST_FIRST(head) ((head)->lh_first) #define LIST_FOREACH(var, head, field) \ @@ -781,6 +790,9 @@ struct { \ #define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) +#define TAILQ_EMPTY_ATOMIC(head) \ + (atomic_load_ptr(&(head)->tqh_first) == NULL) + #define TAILQ_FIRST(head) ((head)->tqh_first) #define TAILQ_FOREACH(var, head, field) \ From nobody Sat Mar 8 08:13:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsd0XCkz5qcyQ; Sat, 08 Mar 2025 08:13: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsc0p47z3kwt; Sat, 08 Mar 2025 08:13:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421636; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ao9TxHY4KObzEG4skGeM0ZX7PUwZWlS+A49aOnEaD4M=; b=ljYndE4WWU7Ml5KbRrwt9ge3ZhGCcp30x3T2cfcefvYTSwlXrWme0qllh4biv8UiMw5pmI yHIYEPr8zf5jLaSss1UGDM7/5L3KJYbP5aFRALJrlW0pFKiSfOlTU+ekdmPBl7N/t5bL2q BokNmZhV4Dcl2QKisJ2G3Aw5CZq7OEkNIWNsoAVxs9Xbfq4A2yA0lVhlsIhrwtkzpnlo4H An9r8zkFPMyc2D25Nj30qtwMQFkMNsjJR7tYSjJ8sNCMyxKOTzlvgtRnBVC0+SGsv2UMf7 eK29sss29A0i1rViAiw7TJ3qjNSRE5e3QwVDZ84e1ZSHG7nApnmvJKd3hR24fQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421636; a=rsa-sha256; cv=none; b=irT7bZytvZFEfvO4maY/ysxEJRGwS5wWq8XOyIoyXUcD0z7+LWMdkr6jGnNNMH78QZSFbd bJIvnjUJDfgmkeA2YKIzxUWUKZGYob4SO95t9jprxN7+bkV26ImODcL5XE2yQsJbv4t4w1 HgcAN6U6pef6TikyydRHiBno+qukkSo4MTNv7S2NJNqhYsUeaw8UufD3oY6SjB7V1zE6Ej JVceEsKBwkgbz35PF/JBirEkm75AKeTwqXwEjXUp8C8VvHv1rLFu2n8zN0JBOZLSyF3LXC 0JBEwgIlpMhiGNKOhiFJpEVw1YZvcuk8bAZD/OywyshS0qKkT8fWZ1he0Mzizw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421636; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ao9TxHY4KObzEG4skGeM0ZX7PUwZWlS+A49aOnEaD4M=; b=aOpqATLTybVovAb194bfeml3fLw5xNBDsxKNT+GwVzWdKpJT8GsXdYu9C9y3RGc7afSJne DvDgkkECbhl+R2AQSfd12jfG6CJvLubA0MqNE7Spdatvaj6I9Egb2JR17gu4zN12ND9edL DtI9vAXe/9Zi0isNcYDlTGv3RFQMHn68dXO/TA28w55guvuYvpID0oSI4tMz+vgT/qWQbR sUEOn89A3ufQLy0Hf4qxUG6NgktQN8L48/eqUMjyUmf7C+Xw4X3sKpVwoNZyWFnYVkrrG/ qRPa0DM8UwzkbSC7PoWWEyadeVItpt5EWcz5EwvePm9DKodb/4UW0zCEzU6QDg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsc0MfHzjD; Sat, 08 Mar 2025 08:13:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288DtEk097611; Sat, 8 Mar 2025 08:13:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288DtbP097608; Sat, 8 Mar 2025 08:13:55 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:55 GMT Message-Id: <202503080813.5288DtbP097608@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: ffb4d077710a - stable/14 - ktr: Use STAILQ_EMPTY_ATOMIC when checking for records in ktr_drain() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ffb4d077710ae1a61dabc362b0963fc62642f0c9 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ffb4d077710ae1a61dabc362b0963fc62642f0c9 commit ffb4d077710ae1a61dabc362b0963fc62642f0c9 Author: Mark Johnston AuthorDate: 2025-02-14 15:49:27 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 ktr: Use STAILQ_EMPTY_ATOMIC when checking for records in ktr_drain() This is an unlocked check, and after commit 34740937f7a4 the debug checks in STAILQ_EMPTY may spuriously fail here. In particular, the per process queue is updated under the global ktrace mutex, not held in ktr_drain(). If a record is enqueued concurrently, the recording thread will schedule an AST to drain the queue again, so it should not be possible for a race to leave records in the queue indefinitely. Reviewed by: kib, olce Reported by: syzbot+d67eddd8c4923ee28bb7@syzkaller.appspotmail.com MFC after: 2 weeks Fixes: 34740937f7a4 ("queue: New debug macros for STAILQ") Differential Revision: https://reviews.freebsd.org/D48899 (cherry picked from commit 36631977d8c9264b7a54f039289918adea4d2a03) --- sys/kern/kern_ktrace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c index 2b311f2d36dc..3d3cbbd29c6f 100644 --- a/sys/kern/kern_ktrace.c +++ b/sys/kern/kern_ktrace.c @@ -396,7 +396,7 @@ ktr_drain(struct thread *td) STAILQ_INIT(&local_queue); - if (!STAILQ_EMPTY(&td->td_proc->p_ktr)) { + if (!STAILQ_EMPTY_ATOMIC(&td->td_proc->p_ktr)) { mtx_lock(&ktrace_mtx); STAILQ_CONCAT(&local_queue, &td->td_proc->p_ktr); mtx_unlock(&ktrace_mtx); From nobody Sat Mar 8 08:13:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsd4QtYz5qcyR; Sat, 08 Mar 2025 08:13: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsd1lpxz3kx7; Sat, 08 Mar 2025 08:13:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421637; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y1vefb5O9NBmhr9OnCBUzcS1KzwZwL1Cnz11wW/My8s=; b=fRK/A+Nr49ygn4Xrul3rOyj9GfBaG04jfp5X33FQpuqyKHICJswCFEVkW0EW1zHFHIdZFT +nzhlG/ddrirpA8F0rQxNVTrYuJvCI73ll0vZwbBeP0S5/mETh0CmUqldwhJB+R9bf0UFx 5vnQCgUnHPSFtMx055FJlw74WcEpsxQt2jXIc2q/+4/V/ZWMasknykXBYO9sQc3FwJLlIK 9ezvJqymXjXjgCOPp/nc7Bm8NyZCLIo0Hy/LgRxZpgPYpQRS3dgRqZcD0ZV/J0m58i4096 vSO9hrcagAAPA+T8gr+qRMOZbpEpBc+Y0VjjKtSM0a71NX9Lcx8nx+NxGy5n0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421637; a=rsa-sha256; cv=none; b=izVoPMxsyBAwENBO9mXWh7V/se2+J609VoFICzn2vzGpGs3mDW7LM/La6leSrPwOLoa7rh ets9w1t47FcxrYARZETZIxDScK1wNiKWnN0jgx/ga3T30AYAo1mBBbBsKxKgV6CrO6ldL2 o2/iwfmYOsoKWOcq/H/dcHCZ94QiAs0kuCHcl/A1jOCyrBKlTTZpZz5exJWfIpWRjbf9wg ByKDjonviaXVP9buwX58qIkmCbXsAlJX5+2LfAXyzSy76VnMUhjt3iDojdU49ed9VIjG8s Dn8SuNxJmCCS8EZNt7AZiZSqCeFpZup/8TwW/2uS5gPEgPTCbLGU5eHb2j12TA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421637; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y1vefb5O9NBmhr9OnCBUzcS1KzwZwL1Cnz11wW/My8s=; b=bjz8uzKuwpK8s31kN9FK7qOCxa1XmfNaH0r6hKyod+Tnyeem3VgZHBlKmkciNqSNOOp0sO CUmOBrBQ6blYPXBK5w9Hb9+oLRBRUm1EqCa23KtsnX69BmSWy+ydr9DfZXYOfhzH/34LdN poHCiyCpBVQdviUyTW1wjgF2j869GjGMH7gkqiv/6TwR8EaPFMC2Lo3rkPFVTupPeBQBGH S/MP+6HHgCORvuoj6DX8aqBerRnJkBrpIvGzrlyO5HYRHVoTN8KFmr/cHbIRWOiELR+FLB 4oeBHBWceyryN/qANhzG3tlskKWBfNpByPl+YOZLGcb1z1OM2X7k/5kaGCMaaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsd15w3zPl; Sat, 08 Mar 2025 08:13:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288DvEC097648; Sat, 8 Mar 2025 08:13:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288Dvh4097645; Sat, 8 Mar 2025 08:13:57 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:57 GMT Message-Id: <202503080813.5288Dvh4097645@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c813157a1541 - stable/14 - umtx: Add a helper for unlocked umtxq_busy() calls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c813157a154148d5488d841aa28aed50b3e13049 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c813157a154148d5488d841aa28aed50b3e13049 commit c813157a154148d5488d841aa28aed50b3e13049 Author: Mark Johnston AuthorDate: 2025-02-24 20:36:48 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:48 +0000 umtx: Add a helper for unlocked umtxq_busy() calls This seems like a natural complement to umtxq_unbusy_unlocked(). No functional change intended. Reviewed by: olce, kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49124 (cherry picked from commit b01495caac2eca73463f4a889936a19e4c1c5909) --- sys/compat/linux/linux_futex.c | 12 +++--------- sys/kern/kern_umtx.c | 34 +++++++++++++++------------------- sys/sys/umtxvar.h | 1 + 3 files changed, 19 insertions(+), 28 deletions(-) diff --git a/sys/compat/linux/linux_futex.c b/sys/compat/linux/linux_futex.c index ab2760859e16..37d0142bae8b 100644 --- a/sys/compat/linux/linux_futex.c +++ b/sys/compat/linux/linux_futex.c @@ -501,9 +501,7 @@ linux_futex_lock_pi(struct thread *td, bool try, struct linux_futex_args *args) if (error != 0) break; - umtxq_lock(&uq->uq_key); - umtxq_busy(&uq->uq_key); - umtxq_unlock(&uq->uq_key); + umtxq_busy_unlocked(&uq->uq_key); /* * Set the contested bit so that a release in user space knows @@ -642,9 +640,7 @@ linux_futex_wakeop(struct thread *td, struct linux_futex_args *args) umtx_key_release(&key); return (error); } - umtxq_lock(&key); - umtxq_busy(&key); - umtxq_unlock(&key); + umtxq_busy_unlocked(&key); error = futex_atomic_op(td, args->val3, args->uaddr2, &op_ret); umtxq_lock(&key); umtxq_unbusy(&key); @@ -701,9 +697,7 @@ linux_futex_requeue(struct thread *td, struct linux_futex_args *args) umtx_key_release(&key); return (error); } - umtxq_lock(&key); - umtxq_busy(&key); - umtxq_unlock(&key); + umtxq_busy_unlocked(&key); error = fueword32(args->uaddr, &uval); if (error != 0) error = EFAULT; diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index 7cfe68730e7d..f326b9aa691a 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -440,9 +440,16 @@ umtxq_unbusy(struct umtx_key *key) } void -umtxq_unbusy_unlocked(struct umtx_key *key) +umtxq_busy_unlocked(struct umtx_key *key) { + umtxq_lock(key); + umtxq_busy(key); + umtxq_unlock(key); +} +void +umtxq_unbusy_unlocked(struct umtx_key *key) +{ umtxq_lock(key); umtxq_unbusy(key); umtxq_unlock(key); @@ -2371,9 +2378,7 @@ do_lock_pi(struct thread *td, struct umutex *m, uint32_t flags, if (error != 0) break; - umtxq_lock(&uq->uq_key); - umtxq_busy(&uq->uq_key); - umtxq_unlock(&uq->uq_key); + umtxq_busy_unlocked(&uq->uq_key); /* * Set the contested bit so that a release in user space @@ -2539,9 +2544,7 @@ do_lock_pp(struct thread *td, struct umutex *m, uint32_t flags, su = (priv_check(td, PRIV_SCHED_RTPRIO) == 0); for (;;) { old_inherited_pri = uq->uq_inherited_pri; - umtxq_lock(&uq->uq_key); - umtxq_busy(&uq->uq_key); - umtxq_unlock(&uq->uq_key); + umtxq_busy_unlocked(&uq->uq_key); rv = fueword32(&m->m_ceilings[0], &ceiling); if (rv == -1) { @@ -2722,9 +2725,8 @@ do_unlock_pp(struct thread *td, struct umutex *m, uint32_t flags, bool rb) TYPE_PP_ROBUST_UMUTEX : TYPE_PP_UMUTEX, GET_SHARE(flags), &key)) != 0) return (error); - umtxq_lock(&key); - umtxq_busy(&key); - umtxq_unlock(&key); + umtxq_busy_unlocked(&key); + /* * For priority protected mutex, always set unlocked state * to UMUTEX_CONTESTED, so that userland always enters kernel @@ -2787,9 +2789,7 @@ do_set_ceiling(struct thread *td, struct umutex *m, uint32_t ceiling, &uq->uq_key)) != 0) return (error); for (;;) { - umtxq_lock(&uq->uq_key); - umtxq_busy(&uq->uq_key); - umtxq_unlock(&uq->uq_key); + umtxq_busy_unlocked(&uq->uq_key); rv = fueword32(&m->m_ceilings[0], &save_ceiling); if (rv == -1) { @@ -3139,9 +3139,7 @@ do_rw_rdlock(struct thread *td, struct urwlock *rwlock, long fflag, break; /* grab monitor lock */ - umtxq_lock(&uq->uq_key); - umtxq_busy(&uq->uq_key); - umtxq_unlock(&uq->uq_key); + umtxq_busy_unlocked(&uq->uq_key); /* * re-read the state, in case it changed between the try-lock above @@ -3332,9 +3330,7 @@ do_rw_wrlock(struct thread *td, struct urwlock *rwlock, struct _umtx_time *timeo } /* grab monitor lock */ - umtxq_lock(&uq->uq_key); - umtxq_busy(&uq->uq_key); - umtxq_unlock(&uq->uq_key); + umtxq_busy_unlocked(&uq->uq_key); /* * Re-read the state, in case it changed between the diff --git a/sys/sys/umtxvar.h b/sys/sys/umtxvar.h index 647ee2a4650c..6165d37d9195 100644 --- a/sys/sys/umtxvar.h +++ b/sys/sys/umtxvar.h @@ -206,6 +206,7 @@ int umtx_key_get(const void *, int, int, struct umtx_key *); void umtx_key_release(struct umtx_key *); struct umtx_q *umtxq_alloc(void); void umtxq_busy(struct umtx_key *); +void umtxq_busy_unlocked(struct umtx_key *); int umtxq_count(struct umtx_key *); void umtxq_free(struct umtx_q *); struct umtxq_chain *umtxq_getchain(struct umtx_key *); From nobody Sat Mar 8 08:13:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsg2MCMz5qd3n; Sat, 08 Mar 2025 08:13:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsf2YQdz3l07; Sat, 08 Mar 2025 08:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421638; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sk/RpNVcHHGN4ynVrLeGHibpFyVnJR1HzkiDC16AguQ=; b=LMVLpJtW2nwzrZtYQ7VzvkPlQiO9csg5Ra5n/6ohXS5qsDpycBroazKECpBESMrU5HdzZf phKPVElym5cMfQBw9kGHBrD0EkLqIJ397Cl8mCDNS82I4vHfyS5lpL/FzXG+UI/wyfEQEG U5l3M0mE5DadX030Xv5jkRnUhFoTUaVvdQ0jKbkA/GVASILZindVM94Puh7N1OhpuIRGhs 1Pj88V4uSWIGoZxCjxiCl0sYtdKoC+zXQ8HzIclwu185c5pQMNs9lZ5B5SzxzVZi22tbKp 86bZTLwY4ipdfVJrMKIZrwGC80b8txKwFWCK0MvQDYdwYc8UpI7BahmnL4FgfQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421638; a=rsa-sha256; cv=none; b=g7fK9GatnMdYcFeOFzIW9XB+Ps9ZoE7Y/MBKWxDCY2dNFRljTAcnHaPCAWPHlceit8FBlV CnsLzxqw1cRvNEugkKYog4HNFCBzaE+bbtedj/SvgN0WIm9XDBK0l20mpEa2/dXsR0t1FY 9mfuqUjRozBtMgeKeqnOde7zaYIVVGNmF/y2dRxCgBesC9OSUkTT69Wnekr+NKwmT+OPZZ RWtBBoNlXtXdsd9w7CXh1BVVsNt54MPnpkkLKCdGXwKkTKQAciYJRcKgqePiwvvL1L1QxR zabiDn6+GZEVf9XA0qA2OdHO5fD5hmvbC4tVKZEGj/o3PuO6LJ/3QRCkQxLL4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421638; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sk/RpNVcHHGN4ynVrLeGHibpFyVnJR1HzkiDC16AguQ=; b=Z3/TATI8JNvWvf9ORhwdfE9lBdIRvPyKuI4rTFFWoBEp3Ns7lDUGUkkVuzGP7O4GxHn1jx qSVY/jG5vAwiqe4XoPYu1YZHhi06d2uZMkVqftpJSnd++srUq5UAV2iUMsw3ivJoljYGLL xMqfmPX6l76B0hHkDB06Na/PGjDeSHucRRuVuinQqhgYgNk5rlNhZw5bAyrvEXbDC6a4dL Vgzn0EzyO5gJFcKzMHOLTtdUHOLPvWqL2WUqGOUECYgDscERb8gKKcg4ZqsZ/Ah17edfSd hBYygXLkj8Dhh/m4pvwqL9YeWw3hrcOtbSKySZCGmDqvOsdNRyKBUVVxb1xQiA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsf1nFVzjq; Sat, 08 Mar 2025 08:13:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288DwhW097686; Sat, 8 Mar 2025 08:13:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288DwrO097683; Sat, 8 Mar 2025 08:13:58 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:58 GMT Message-Id: <202503080813.5288DwrO097683@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7309434b1508 - stable/14 - dtrace: fix signature mismatch for taskqueue callbacks List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7309434b15081c99c860bb9e76c38f76f4292e0f Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7309434b15081c99c860bb9e76c38f76f4292e0f commit 7309434b15081c99c860bb9e76c38f76f4292e0f Author: SHENGYI HONG AuthorDate: 2025-02-23 17:42:41 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:49 +0000 dtrace: fix signature mismatch for taskqueue callbacks Reviewed by: markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49112 (cherry picked from commit a1452eec4768272056aa070db94ea7184ce1117c) --- sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c index 608bff1d23ae..cfd403ac1a01 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c +++ b/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c @@ -594,7 +594,8 @@ static dtrace_probe_t *dtrace_probe_lookup_id(dtrace_id_t id); static void dtrace_enabling_provide(dtrace_provider_t *); static int dtrace_enabling_match(dtrace_enabling_t *, int *); static void dtrace_enabling_matchall(void); -static void dtrace_enabling_reap(void); +static void dtrace_enabling_matchall_task(void *); +static void dtrace_enabling_reap(void *); static dtrace_state_t *dtrace_anon_grab(void); static uint64_t dtrace_helper(int, dtrace_mstate_t *, dtrace_state_t *, uint64_t, uint64_t); @@ -12991,6 +12992,12 @@ dtrace_enabling_match(dtrace_enabling_t *enab, int *nmatched) return (0); } +static void +dtrace_enabling_matchall_task(void *args __unused) +{ + dtrace_enabling_matchall(); +} + static void dtrace_enabling_matchall(void) { @@ -13118,7 +13125,7 @@ retry: * Called to reap ECBs that are attached to probes from defunct providers. */ static void -dtrace_enabling_reap(void) +dtrace_enabling_reap(void *args __unused) { dtrace_provider_t *prov; dtrace_probe_t *probe; @@ -16719,8 +16726,8 @@ dtrace_module_loaded(modctl_t *ctl) return; } - (void) taskq_dispatch(dtrace_taskq, - (task_func_t *)dtrace_enabling_matchall, NULL, TQ_SLEEP); + (void)taskq_dispatch(dtrace_taskq, + (task_func_t *)dtrace_enabling_matchall_task, NULL, TQ_SLEEP); mutex_exit(&dtrace_lock); From nobody Sat Mar 8 08:13:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsh0trqz5qcfQ; Sat, 08 Mar 2025 08:14: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsg3hkHz3l8s; Sat, 08 Mar 2025 08:13:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421639; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QSxBy5P8jxGSI/dksEYr8/TYAiCb3k6xeCYpkrNKXb0=; b=Ri9rOVNS7u4ktG6w+WbVDZCig4necV/WD/pSHmenzrLN6MlU0EjVeLzSI485sBLLh9F1LW +Ipsm5kof07Tc9Ga9Mhxjktc2HLeRau54edxtvbqFY3J3gOUsJtqv3wEncx8KNEa6gRibI qxlyENfwj5TRDxuG1bKz/n5S462DEiNicHQJ+E7SBpF6lDrig1NmLHIT5o2R26NNJy98xM RETqOcF+Qzrhz5NjK13FeJBrpMX56mElT9P0O0zIjW59uzdqowabSCP1pl+zEBdh01Tu3Q XQtE0J2i3uuptWVOdlTjoW/4/AJAWXNyIaALmDylLyVj2ekiy3gU/KlESpmsig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421639; a=rsa-sha256; cv=none; b=LY8M2ZAf4cU2MXzee/LZCUY7XVlzDw1Dd0Nlys9Kv5N4369xKnDh2EzggBRBDqUOCs7fjD GgFi0OE6zfi4z/43JdTtnPT/opCo6306dPdf79wGgi6Lyd0A+NQ9isQ/HmIYADxlOiHrKG JcTU3Xe7R6y/vVf1I6aM4HZrw2l7ZSlpnFUGc5w3hSvgJzTgRgUS9dom8JRyincSZY2d6+ uV+8zccdevMOz1GPgMSE6Y825AbqPQWN4m9qZS+cR0ANVYq80UCUvVsNt+jHedwlQADPtp JuDcuOTHKqfnDVj4eKjwoynw6VzjBYQKsK0XO/wS7ZVFH6b1slMWH7HPz0eXTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421639; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QSxBy5P8jxGSI/dksEYr8/TYAiCb3k6xeCYpkrNKXb0=; b=c7spYhq/QZlTe7qMy2Fb35YUiQTypBt4P/qaOHqaInFSB7kHufRDDJecX0f9VN5U4aYlnq OJ8j/1ViORkcWi6z4iIZ9992a377QUE0Z3l1daaPDQjgRUeVdEtJFNQiZ267vOlvX7eC+v /T5uhz88mVXNvu9FABKSdQPIeBXsgokjJob6BB4Ubjq52Zw3sn+T+PxpDStTFGv7pKi+XQ 2S2rUfGs/CoNfwBfztmNOEiXgAb3VGNX/Bv83o7V18cD32ODfmsoHv0O2JG0sYdKiQu4WA QZdUB9ZCnSMRN1ssKIikT8FQK829HOhoq7/YVZ1fwcOi9oz0y/09gCbvkpyQIg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsg32KXzdB; Sat, 08 Mar 2025 08:13:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288DxGk097725; Sat, 8 Mar 2025 08:13:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288Dxpl097722; Sat, 8 Mar 2025 08:13:59 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:13:59 GMT Message-Id: <202503080813.5288Dxpl097722@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: bec64e75a5a8 - stable/14 - bhyve: Avoid holding /dev/pci open unnecessarily List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bec64e75a5a8f0c1fa27f5d6081f52266516f393 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bec64e75a5a8f0c1fa27f5d6081f52266516f393 commit bec64e75a5a8f0c1fa27f5d6081f52266516f393 Author: Mark Johnston AuthorDate: 2025-02-14 15:25:08 +0000 Commit: Mark Johnston CommitDate: 2025-03-07 22:51:49 +0000 bhyve: Avoid holding /dev/pci open unnecessarily Some device models, LPC in particular, will call pci_host_read_config() when probing for devices. Currently this results in pcifd_init() opening /dev/pci, and thus bhyve holds the fd open even when it's not needed. Modify pci_host_{read,write}_config() to open /dev/pci independent of the global pcifd. This means that these routines can only be used during VM initialization, as capsicum will prevent further opens afterward. Introduce internal wrappers which use the global pcifd, intended for the passthru code. Reviewed by: jhb MFC after: 3 weeks Fixes: 563fd2240e13 ("bhyve: export funcs for read/write pci config") Differential Revision: https://reviews.freebsd.org/D48908 (cherry picked from commit 649a910e34b0314647d16a94f8af6de0f4cfd4b5) --- usr.sbin/bhyve/pci_passthru.c | 119 +++++++++++++++++++++++++++++------------- 1 file changed, 83 insertions(+), 36 deletions(-) diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c index 345971641f8a..8506cab24a1b 100644 --- a/usr.sbin/bhyve/pci_passthru.c +++ b/usr.sbin/bhyve/pci_passthru.c @@ -121,13 +121,24 @@ msi_caplen(int msgctrl) } static int -pcifd_init(void) +pcifd_open(void) { - pcifd = open(_PATH_DEVPCI, O_RDWR, 0); - if (pcifd < 0) { + int fd; + + fd = open(_PATH_DEVPCI, O_RDWR, 0); + if (fd < 0) { warn("failed to open %s", _PATH_DEVPCI); - return (1); + return (-1); } + return (fd); +} + +static int +pcifd_init(void) +{ + pcifd = pcifd_open(); + if (pcifd < 0) + return (1); #ifndef WITHOUT_CAPSICUM cap_rights_t pcifd_rights; @@ -144,43 +155,75 @@ pcifd_init(void) return (0); } -uint32_t -pci_host_read_config(const struct pcisel *sel, long reg, int width) +static uint32_t +host_read_config(int fd, const struct pcisel *sel, long reg, int width) { struct pci_io pi; - if (pcifd < 0 && pcifd_init()) { - return (0); - } - bzero(&pi, sizeof(pi)); pi.pi_sel = *sel; pi.pi_reg = reg; pi.pi_width = width; - if (ioctl(pcifd, PCIOCREAD, &pi) < 0) - return (0); /* XXX */ + if (ioctl(fd, PCIOCREAD, &pi) < 0) + return (0); /* XXX */ else return (pi.pi_data); } -void -pci_host_write_config(const struct pcisel *sel, long reg, int width, +static uint32_t +passthru_read_config(const struct pcisel *sel, long reg, int width) +{ + return (host_read_config(pcifd, sel, reg, width)); +} + +uint32_t +pci_host_read_config(const struct pcisel *sel, long reg, int width) +{ + uint32_t ret; + int fd; + + fd = pcifd_open(); + if (fd < 0) + return (0); + ret = host_read_config(fd, sel, reg, width); + (void)close(fd); + return (ret); +} + +static void +host_write_config(int fd, const struct pcisel *sel, long reg, int width, uint32_t data) { struct pci_io pi; - if (pcifd < 0 && pcifd_init()) { - return; - } - bzero(&pi, sizeof(pi)); pi.pi_sel = *sel; pi.pi_reg = reg; pi.pi_width = width; pi.pi_data = data; - (void)ioctl(pcifd, PCIOCWRITE, &pi); /* XXX */ + (void)ioctl(fd, PCIOCWRITE, &pi); /* XXX */ +} + +static void +passthru_write_config(const struct pcisel *sel, long reg, int width, + uint32_t data) +{ + host_write_config(pcifd, sel, reg, width, data); +} + +void +pci_host_write_config(const struct pcisel *sel, long reg, int width, + uint32_t data) +{ + int fd; + + fd = pcifd_open(); + if (fd < 0) + return; + host_write_config(fd, sel, reg, width, data); + (void)close(fd); } #ifdef LEGACY_SUPPORT @@ -225,24 +268,24 @@ cfginitmsi(struct passthru_softc *sc) * Parse the capabilities and cache the location of the MSI * and MSI-X capabilities. */ - sts = pci_host_read_config(&sel, PCIR_STATUS, 2); + sts = passthru_read_config(&sel, PCIR_STATUS, 2); if (sts & PCIM_STATUS_CAPPRESENT) { - ptr = pci_host_read_config(&sel, PCIR_CAP_PTR, 1); + ptr = passthru_read_config(&sel, PCIR_CAP_PTR, 1); while (ptr != 0 && ptr != 0xff) { - cap = pci_host_read_config(&sel, ptr + PCICAP_ID, 1); + cap = passthru_read_config(&sel, ptr + PCICAP_ID, 1); if (cap == PCIY_MSI) { /* * Copy the MSI capability into the config * space of the emulated pci device */ sc->psc_msi.capoff = ptr; - sc->psc_msi.msgctrl = pci_host_read_config(&sel, - ptr + 2, 2); + sc->psc_msi.msgctrl = + passthru_read_config(&sel, ptr + 2, 2); sc->psc_msi.emulated = 0; caplen = msi_caplen(sc->psc_msi.msgctrl); capptr = ptr; while (caplen > 0) { - u32 = pci_host_read_config(&sel, capptr, + u32 = passthru_read_config(&sel, capptr, 4); pci_set_cfgdata32(pi, capptr, u32); caplen -= 4; @@ -257,7 +300,7 @@ cfginitmsi(struct passthru_softc *sc) msixcap_ptr = (char *)&msixcap; capptr = ptr; while (caplen > 0) { - u32 = pci_host_read_config(&sel, capptr, + u32 = passthru_read_config(&sel, capptr, 4); memcpy(msixcap_ptr, &u32, 4); pci_set_cfgdata32(pi, capptr, u32); @@ -266,7 +309,7 @@ cfginitmsi(struct passthru_softc *sc) msixcap_ptr += 4; } } - ptr = pci_host_read_config(&sel, ptr + PCICAP_NEXTPTR, + ptr = passthru_read_config(&sel, ptr + PCICAP_NEXTPTR, 1); } } @@ -302,7 +345,7 @@ cfginitmsi(struct passthru_softc *sc) */ if ((sts & PCIM_STATUS_CAPPRESENT) != 0 && sc->psc_msi.capoff == 0) { int origptr, msiptr; - origptr = pci_host_read_config(&sel, PCIR_CAP_PTR, 1); + origptr = passthru_read_config(&sel, PCIR_CAP_PTR, 1); msiptr = passthru_add_msicap(pi, 1, origptr); sc->psc_msi.capoff = msiptr; sc->psc_msi.msgctrl = pci_get_cfgdata16(pi, msiptr + 2); @@ -536,6 +579,8 @@ cfginitbar(struct passthru_softc *sc) * Initialize BAR registers */ for (i = 0; i <= PCI_BARMAX; i++) { + uint8_t lobits; + bzero(&bar, sizeof(bar)); bar.pbi_sel = sc->psc_sel; bar.pbi_reg = PCIR_BAR(i); @@ -581,8 +626,8 @@ cfginitbar(struct passthru_softc *sc) return (-1); /* Use same lobits as physical bar */ - uint8_t lobits = pci_host_read_config(&sc->psc_sel, PCIR_BAR(i), - 0x01); + lobits = (uint8_t)passthru_read_config(&sc->psc_sel, + PCIR_BAR(i), 0x01); if (bartype == PCIBAR_MEM32 || bartype == PCIBAR_MEM64) { lobits &= ~PCIM_BAR_MEM_BASE; } else { @@ -629,7 +674,7 @@ cfginit(struct pci_devinst *pi, int bus, int slot, int func) intpin = pci_get_cfgdata8(pi, PCIR_INTPIN); for (int i = 0; i <= PCIR_MAXLAT; i += 4) { pci_set_cfgdata32(pi, i, - pci_host_read_config(&sc->psc_sel, i, 4)); + passthru_read_config(&sc->psc_sel, i, 4)); } pci_set_cfgdata16(pi, PCIR_COMMAND, cmd); pci_set_cfgdata8(pi, PCIR_INTLINE, intline); @@ -988,15 +1033,17 @@ passthru_cfgread_default(struct passthru_softc *sc, * device's config space. */ if (coff == PCIR_COMMAND) { + uint32_t st; + if (bytes <= 2) return (-1); - *rv = pci_host_read_config(&sc->psc_sel, PCIR_STATUS, 2) << 16 | - pci_get_cfgdata16(pi, PCIR_COMMAND); + st = passthru_read_config(&sc->psc_sel, PCIR_STATUS, 2); + *rv = (st << 16) | pci_get_cfgdata16(pi, PCIR_COMMAND); return (0); } /* Everything else just read from the device's config space */ - *rv = pci_host_read_config(&sc->psc_sel, coff, bytes); + *rv = passthru_read_config(&sc->psc_sel, coff, bytes); return (0); } @@ -1079,7 +1126,7 @@ passthru_cfgwrite_default(struct passthru_softc *sc, struct pci_devinst *pi, return (-1); /* Update the physical status register. */ - pci_host_write_config(&sc->psc_sel, PCIR_STATUS, val >> 16, 2); + passthru_write_config(&sc->psc_sel, PCIR_STATUS, val >> 16, 2); /* Update the virtual command register. */ cmd_old = pci_get_cfgdata16(pi, PCIR_COMMAND); @@ -1088,7 +1135,7 @@ passthru_cfgwrite_default(struct passthru_softc *sc, struct pci_devinst *pi, return (0); } - pci_host_write_config(&sc->psc_sel, coff, bytes, val); + passthru_write_config(&sc->psc_sel, coff, bytes, val); return (0); } From nobody Sat Mar 8 08:14:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z8wsh6xCRz5qcyZ; Sat, 08 Mar 2025 08:14: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z8wsh4Zdqz3ktl; Sat, 08 Mar 2025 08:14:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421640; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JLk1Xk4bRGT0vOp6hId8RhK0M8Kmz/8tR0Uy7G2URZ0=; b=wqkY10buXQQlKvw6bXt+1sOeYN5azHGfmvg9uugwMDCxsCVZrYKZHEK0Or6D8MoBODAPK3 E20eX91e8Rqzv/Xv9wcg5EYdp8fZoJc7snFkL204Ifkunl2oHF5JhcIK+j7Igj2b7YCoYD SviN5O2UdiGwsLxxKpA0ma0UQGYSZdI6nYOJ3fY0XOslUqa/sdrUyFjOFb9ALpJvv4OfdF 6l/TsJWZXjQL8eUu4jYMr7wWKqLn26O3C8m7dXI0jpVNyukaUaUMdzQWo97NarXoiUZP8Q YUJJHRTxwrUI9XJhzGfSkPVlwDshWVl46I/hR51XHYre0n3f7qI/0V6oMS52FA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741421640; a=rsa-sha256; cv=none; b=cNCeOzz1VO7XlxlvMp3tYqAVgl1gpOLynwxoI3JEXGh0czw9u3FG7i0vC1ZJL2Vv+KIraG rL2f79yAA/SVFjrtwSk5bCn/lMdULlABdDb19HS9XG70Uzfqlge/21QlP67MhebceiwdcB 0Oc5eW2yWNnJ7k63hW0CA2fJAfJxaQ42UGroE5V9QdBbVXAOQF6j7ltpUfSe1E2+i3VYfS vppKr5U2YPD5WvWNaD5eRpamiETsU154EWoelONc+DvIb8R8vc5OD1klx5lwpvUDDU98LX r5YVisNP01W384qfwVXB9AU5IS7xQncErexAEdALD7RyTl28AblRbIQf8/9n5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741421640; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JLk1Xk4bRGT0vOp6hId8RhK0M8Kmz/8tR0Uy7G2URZ0=; b=Zz+OJahjw4o8OtHzeap74nOsL8vuYoT6AG1cMUFd6Qmb3NIfPGIBT1Oh7lcJDLfxErojKY 76RjormeVUolPwLJIVKK1t5BpV4rqnKMQC4u6XJwYt1KMI7Ep5a8M94DKr0XO3ltB+N12m 3RePg1xdjEaRt8qyOKPhtT2SX8KB+KCKkDEx6ytQpNrB/iCKN7AICsj5es+35dC74fxsxw YUAp/OFQ6y0I8tVMtgZPrzMF9vUcmyxMGbAn0ICQp5C2XvnG2AJ2Zbk4v9rvB5VpYAweXV 9uPV+mwD6je69EeOoSYs/dRvoMr09Pyd76jGQzmLizDfESJ/lwj+p68XFw2QGQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z8wsh41Ymz1CvS; Sat, 08 Mar 2025 08:14:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5288E0wc097769; Sat, 8 Mar 2025 08:14:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5288E0Wq097766; Sat, 8 Mar 2025 08:14:00 GMT (envelope-from git) Date: Sat, 8 Mar 2025 08:14:00 GMT Message-Id: <202503080814.5288E0Wq097766@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0ce82e9346a4 - stable/14 - umtx: Fix a bug in do_lock_pp() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0ce82e9346a4d5ad1d82fac73131afa3a4fc03ac Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0ce82e9346a4d5ad1d82fac73131afa3a4fc03ac commit 0ce82e9346a4d5ad1d82fac73131afa3a4fc03ac Author: Mark Johnston AuthorDate: 2025-02-22 01:23:31 +0000 Commit: Mark Johnston CommitDate: 2025-03-08 00:37:37 +0000 umtx: Fix a bug in do_lock_pp() If the lock is unowned (i.e., owner == UMUTEX_CONTESTED), we might get a spurious failure, and in that case we need to retry the loop. Otherwise, the calling thread can end up sleeping forever. The same problem exists in do_set_ceiling(), which open-codes do_lock_pp(), so fix it there too. Reviewed by: olce Reported by: Daniel King MFC after: 2 weeks Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D49031 (cherry picked from commit 4b79443927ec2c53514e73b06eb2a9d241882585) --- sys/kern/kern_umtx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c index f326b9aa691a..7c01586b4dd7 100644 --- a/sys/kern/kern_umtx.c +++ b/sys/kern/kern_umtx.c @@ -2618,6 +2618,10 @@ do_lock_pp(struct thread *td, struct umutex *m, uint32_t flags, } } else if (owner == UMUTEX_RB_NOTRECOV) { error = ENOTRECOVERABLE; + } else if (owner == UMUTEX_CONTESTED) { + /* Spurious failure, retry. */ + umtxq_unbusy_unlocked(&uq->uq_key); + continue; } if (try != 0) @@ -2824,6 +2828,10 @@ do_set_ceiling(struct thread *td, struct umutex *m, uint32_t ceiling, } else if (owner == UMUTEX_RB_NOTRECOV) { error = ENOTRECOVERABLE; break; + } else if (owner == UMUTEX_CONTESTED) { + /* Spurious failure, retry. */ + umtxq_unbusy_unlocked(&uq->uq_key); + continue; } /* From nobody Sun Mar 9 00:23:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z9LMq1Qt8z5qDcr; Sun, 09 Mar 2025 00:23:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z9LMq0y4Rz49hK; Sun, 09 Mar 2025 00:23:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741479783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IW7/7pjiRpUCYXj9mNbAYMvCimxpF6rkZBy/CdjfdGE=; b=qqPgPYIRJva5VYg0H0K5KX2zCfFSmUFZj/gBmPh/8l2F6/cE4Sif/9pcYM7gbkCVJ1Dbq3 d41f5ReoyaeHTyxIDlhd8xGZ7ldM7QDNGA/VKWXoX1OWKoovj4UuxRietmwz+LQYDJ3LCq y11FZMBVGqllwJkufEgGaw35HkE3B005nfIBjjepk05InyBXDsDqcrXmrRKPu2Gy/nM28O xJV2Ef6OnFf9yrtpKF4ygz1WdGLskNE4owu5GFeztQjK/pWYbOsWc3HIP5hzsPMuJXtY96 jb4iXPdBNn581LFGEW5kQrOq4Av6Kg5laXD+wmSwrxYUWdIAXbuwxE9m9mh6QA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741479783; a=rsa-sha256; cv=none; b=xkFzSqn1Ii8US9yZPhPHLrQwaYrmhXiPoVsTLa9rXyDwIk1EJhOcXAW9PQFE/yiZrl1tyB P8gb7koU/s2F/0XkR36FXIiH2muE6wVNf29bjA9v2ZSVvNVHJN44xYjZxdbi5ADo3gFMGl HjUyT8vTIPQYVh3aKFuILUd1eaErB+CMh3ik5VmyY34gLp87ph8+YB1JvQmeRFGa9TYKVM JbJw9D2J4vJMez5ekzDB1YYA+QrB3jVP+yHmLbSoGRDS6GL3aTQBOwG5t0Zm8bB7WliJCq H4pW0AsIE7dI3ToHy1qXwiFiiWhWk/dt42MSjTtTWwgd+qMIUpyepgVUE700zQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741479783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IW7/7pjiRpUCYXj9mNbAYMvCimxpF6rkZBy/CdjfdGE=; b=Ue7kqAHxcQW/NJz/BK9jIn8cuMKcQbbfJeejG8n4RkvRVnWk5J/0l2Y8gQnHRG+IhFDs5V xAoSXrCQGulXZuFzMScnrNsQ37vivS3BLeAvaspZm7s6vOh323VHcVhqzs5OnWfHRz09eV uxUALTDz2/4XWpBCzxS+1ku4YcVR+3iNfwucGl50WZp+XWKA+aAf6Dk2XXdjnIk7ZpUE9C lVcnpy4FxtusrqRhbe9RhlCq3MrReJryx3BanyfcxZEkOQ+DJWo3ZvPdBS/pwKUe/hfNlb BXXRQf1pmt7HFUcBNSzVf0Dtz/geNOsARoUGEkk16vKN7EJQcHaJonBRNM8+3A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z9LMp6zmszmmp; Sun, 09 Mar 2025 00:23:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5290N2H7009687; Sun, 9 Mar 2025 00:23:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5290N2G7009684; Sun, 9 Mar 2025 00:23:02 GMT (envelope-from git) Date: Sun, 9 Mar 2025 00:23:02 GMT Message-Id: <202503090023.5290N2G7009684@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 21c2ba96815c - stable/14 - amdiommu: add register definitions from IOMMU spec 48882 rev. 3.10 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 21c2ba96815cb01d6aaa8f47e267b547bbf46dbf Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=21c2ba96815cb01d6aaa8f47e267b547bbf46dbf commit 21c2ba96815cb01d6aaa8f47e267b547bbf46dbf Author: Konstantin Belousov AuthorDate: 2025-03-02 01:23:41 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-09 00:22:41 +0000 amdiommu: add register definitions from IOMMU spec 48882 rev. 3.10 (cherry picked from commit 43fa7b907e9cc5ce365afd05775349d199fc2eb4) --- sys/x86/iommu/amd_reg.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sys/x86/iommu/amd_reg.h b/sys/x86/iommu/amd_reg.h index 37375b3fa7b5..53b8b0cb42fc 100644 --- a/sys/x86/iommu/amd_reg.h +++ b/sys/x86/iommu/amd_reg.h @@ -186,6 +186,9 @@ #define AMDIOMMU_CTRL_MARC_EN 0x0000010000000000ull /* Memory Addr Routing En */ #define AMDIOMMU_CTRL_BLKSTOPMRK_EN 0x0000020000000000ull /* Block StopMark En */ #define AMDIOMMU_CTRL_PPRAUTORESPA_EN 0x0000040000000000ull /* PPR Auto Resp Always En */ +#define AMDIOMMU_CTRL_NUMINTRREMAP_MASK 0x0000180000000000ull /* Remapping MSI mode */ +#define AMDIOMMU_CTRL_NUMINTRREMAP_512 0x0000000000000000ull /* 512 max */ +#define AMDIOMMU_CTRL_NUMINTRREMAP_2048 0x0000080000000000ull /* 2048 max */ #define AMDIOMMU_CTRL_EPH_EN 0x0000200000000000ull /* Enh PPR Handling En */ #define AMDIOMMU_CTRL_HADUP_MASK 0x0000c00000000000ull /* Access and Dirty in host PT */ #define AMDIOMMU_CTRL_GDUP_DIS 0x0001000000000000ull /* Dis Dirty in guest PT */ @@ -256,6 +259,21 @@ #define AMDIOMMU_CMDEVS_PPROVRFLWEB 0x00020000 #define AMDIOMMU_CMDEVS_PPROVRFLWE 0x00040000 +/* + * IOMMU Extended Feature2 register fields. + * All currently defined bits are RO. + */ +#define AMDIOMMU_EFR2_TMPMSUP 0x0000000000000004ull /* Tired Mem Migration */ +#define AMDIOMMU_EFR2_GCR3TRPM 0x0000000000000008ull /* GPA based GCR3 pointer in DTE */ +#define AMDIOMMU_EFR2_GAPPID 0x0000000000000010ull /* masking of GAPIC PPI */ +#define AMDIOMMU_EFR2_SNPAVIC_MASK 0x00000000000000e0ull /* SNP-enabled Adv intr features */ +#define AMDIOMMU_EFR2_SNPAVIC_NO 0x0000000000000000ull /* No features supported */ +#define AMDIOMMU_EFR2_SNPAVIC_REMAPV 0x0000000000000020ull /* Intr remapping with GVAPIC */ +#define AMDIOMMU_EFR2_NUMINTRREMAP_MASK 0x0000000000000300ull /* Number of remapped intr per dev */ +#define AMDIOMMU_EFR2_NUMINTRREMAP_512 0x0000000000000000ull /* 512 */ +#define AMDIOMMU_EFR2_NUMINTRREMAP_2048 0x0000000000000100ull /* 2048 */ +#define AMDIOMMU_EFR2_HTRANGEIGN 0x0000000000000800ull /* HT range is regular GPA */ + /* * Device Table Entry (DTE) */ From nobody Sun Mar 9 00:23:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z9LMr435pz5qDNT; Sun, 09 Mar 2025 00:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z9LMr1Mqfz49Vb; Sun, 09 Mar 2025 00:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741479784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T5MQJjQd01qZ0TXIbGzMZZa1NUFxOiIxETBQylga7uk=; b=oBOJIBo4wTsOp4qVdIw3YiETK46LWqAPtz/bwHXGrKzJHHu1pkLoVsVNPCyYDGrhnWM8R9 n0H14d8Ik6rUqHZPRc0MP4gKZCtNLLm+IDdB83J+vxwS8jQ+6esTsnI69vCWUqcGZCu9R0 tzvuIFSrRNt/fBSSYcAPCkuiAFrV/mOetcuKw06+fb4ARjZmCRDWUK5dmEwjxyZ3D2euxA iVZwvBnLsUprHSC48fA6QD1mZxDKg8PZKTHgF0ZIEgNR96Qqnr+m5sv8PKaJSgdOEzBBw1 oWYz38cn/DqWHXoKalNdVTOeyqu4nIztwVwqF/ONo9cHUdcHGlt5l+LJH9Hb3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741479784; a=rsa-sha256; cv=none; b=evcle2/DIBTQSyADT6u7REXAxyXJtPwL5QOU6NnO9SVZZtJxlFjB8bnVqCPCPpVRoqCJRP aUwWFazF5lyqhVior6O/KcJmyFW6c/StpWG/WNKob0rnJzvS704SY8vjR7mz9cxQh1SU7V +sxNpMq6ecQXyeNXadj5zK8vju2wK/SErIe1kTWBwIxzI/RX06t+6PT1EtAFR/Od1bsY9Z SZZUX2aWGeJlpUUtojlDiZnSwdsjid3WFrKkhqEDyhBs2PyJ/6vMPNVKFU96uELu3HX7zy veBsuoVC6sewqBX8ngiHL5LE5+188ewh2GBQTy98KLu0jty+6jd97kRCxQsvrA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741479784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T5MQJjQd01qZ0TXIbGzMZZa1NUFxOiIxETBQylga7uk=; b=nsp9HERQQktgaFUvVTgEm9G4LsjBaLJEMGl6wVWluQSKOjODhQo7mbYu6qAwdsGpV46scf Bgv9nyxphZdeysuzlP/duG3I6JovXeHyPAQ1V+6bMveQcsdQN4JnVCm9ReeQzrEJLK1Nx9 Y1cR26sZ9oTOL1F1I8qB8+DFbTldJuEaJQtdKJasyCc3RhpKz2mazyNPMlLOdwrPd0s7eo ZXIheQ6DfzhI2SOHUSVo6+wHrcHcFEluyorg7TAiuFGJMgATIv5Yms1uWDCvvuUmaQWhPO LTYlj9yJF9QsljCOORNVc8pFUSoRswUiiLFwoKQU8ew6XVcTGhCxIii1Lp/UmA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z9LMr0r0JzmRw; Sun, 09 Mar 2025 00:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5290N42h009722; Sun, 9 Mar 2025 00:23:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5290N4wl009719; Sun, 9 Mar 2025 00:23:04 GMT (envelope-from git) Date: Sun, 9 Mar 2025 00:23:04 GMT Message-Id: <202503090023.5290N4wl009719@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 43dc3a820993 - stable/14 - amdiommu: fix typo in the bit description List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 43dc3a820993c41809521ae40f865f8b9c2c2e50 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=43dc3a820993c41809521ae40f865f8b9c2c2e50 commit 43dc3a820993c41809521ae40f865f8b9c2c2e50 Author: Konstantin Belousov AuthorDate: 2025-03-03 00:06:30 +0000 Commit: Konstantin Belousov CommitDate: 2025-03-09 00:22:41 +0000 amdiommu: fix typo in the bit description (cherry picked from commit bb9c3f5121b42eeda2972d282a54d4eff800297c) --- sys/x86/iommu/amd_reg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/x86/iommu/amd_reg.h b/sys/x86/iommu/amd_reg.h index 53b8b0cb42fc..fab6d03ea64a 100644 --- a/sys/x86/iommu/amd_reg.h +++ b/sys/x86/iommu/amd_reg.h @@ -263,7 +263,7 @@ * IOMMU Extended Feature2 register fields. * All currently defined bits are RO. */ -#define AMDIOMMU_EFR2_TMPMSUP 0x0000000000000004ull /* Tired Mem Migration */ +#define AMDIOMMU_EFR2_TMPMSUP 0x0000000000000004ull /* Tiered Mem Migration */ #define AMDIOMMU_EFR2_GCR3TRPM 0x0000000000000008ull /* GPA based GCR3 pointer in DTE */ #define AMDIOMMU_EFR2_GAPPID 0x0000000000000010ull /* masking of GAPIC PPI */ #define AMDIOMMU_EFR2_SNPAVIC_MASK 0x00000000000000e0ull /* SNP-enabled Adv intr features */ From nobody Sun Mar 9 03:44:27 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z9QrD2SY4z5qQsd; Sun, 09 Mar 2025 03:44:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z9QrD0BdFz3nwv; Sun, 09 Mar 2025 03:44:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741491868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LLpvENffPUVEUbzD1Ocq2oHL9Lyl/KsWEkEehqOuT68=; b=SO+jT2mwnJnKQCEcSloV+63eQRRUpNwavmJtRIBk7k+TT6KeG8ubdgQsVnWSE6kF3day0u g0peObUEMOy00guFm1qzrfvOqYzxbrDWOezyHjsZbHZA2PJSlZeUoITuLdhTtxwsGhY9vH 8fLdYOQguqBIIRMqaoTmFLcO/oTPjGUzYEa88Xw3slx1wawCizXPhOKX6ggFzj8G3V8k0/ BKcNxrWGg5fzQ5HOMp2+AQgNtF9U5PeJNoM4UvAb2aLjrG7AUgkEAeVwObsHgtEaVRY/NY inFP54JjRLVjDJ6Trvq3eKHvS20lOngFgJ7te7t7FYR2IOuoPdVVhS7hoX8+NQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741491868; a=rsa-sha256; cv=none; b=Io3RAmMYvfYwhC7vihIMox+dGGXZA77GTUzvhhHGsNutkX9BpLrb5+D1EJiQQZujbbOU+0 qXtSrrYsYPohCaVkUUZpimfgzhdo5vfTMKOOxHLvacvexdRSu6c1LZXR44ooJWKcToMycm fBO5Hv8h/qs2fAyNizdqw3waB7uI2RwkTNNE/i1P6o4W7mp4D8nTd/HesJGaSTj5zZZhe1 FQku3F7mhhiq21rmDchvew2Zv1NomPwOBsAmyZrYIf209d46yO7/v7tw8unLphnRsqW0mB T9QI6jyBxCWgSa+RLpkLR3D3RQfz+yhO3ZjtYvxNoVstjo9swxxuedD4pi+iTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741491868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LLpvENffPUVEUbzD1Ocq2oHL9Lyl/KsWEkEehqOuT68=; b=UvyunyEj2fuMrT5hmVJfnc5jMMe/MBzFiCCcUhMKyFnq6zt5x37Ry2amyTDb+8N1V38lvx J0Jv/DsCU7GES6dxOOkv+jhrrYdaY9Pg2KG1XkI0Pgm9LX+sE7oAdsodzWLLS3iAKRTeeB jOC42hOpaGT2KFdUplx2JC5b9bx8kL9q2hbPruK6i2FbRXf1H7D//6NDcI6otNHNDxBcJn 6THHDhsfRDhHZOwjm9+ZELIC0tvqR7hJLZX12UReTVubTjr/ifskt4ssUEK3WfuQLJT6Ro /CbNoLBWaDJf3Si0n9SCWHXQzUwT2PUc2oQO3T1tkr5SRzvVtIg5adV5v3pOkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z9QrC6NYxzsZ8; Sun, 09 Mar 2025 03:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5293iRpb084793; Sun, 9 Mar 2025 03:44:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5293iR8E084790; Sun, 9 Mar 2025 03:44:27 GMT (envelope-from git) Date: Sun, 9 Mar 2025 03:44:27 GMT Message-Id: <202503090344.5293iR8E084790@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jamie Gritton Subject: git: 0d6ed98ef318 - stable/14 - MFC jail: add jexec -d, to specify a working directory List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jamie X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0d6ed98ef318eb6b31857387a708f9da6e2fcb1d Auto-Submitted: auto-generated The branch stable/14 has been updated by jamie: URL: https://cgit.FreeBSD.org/src/commit/?id=0d6ed98ef318eb6b31857387a708f9da6e2fcb1d commit 0d6ed98ef318eb6b31857387a708f9da6e2fcb1d Author: Jamie Gritton AuthorDate: 2025-03-05 10:14:47 +0000 Commit: Jamie Gritton CommitDate: 2025-03-09 03:43:51 +0000 MFC jail: add jexec -d, to specify a working directory PR: 283170 Submitted by: DtxdF at disroot.org (cherry picked from commit d56f3b051f6135b4a675fd75ccfcef0310368781) --- usr.sbin/jexec/jexec.8 | 10 ++++++++-- usr.sbin/jexec/jexec.c | 21 ++++++++++++++------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/usr.sbin/jexec/jexec.8 b/usr.sbin/jexec/jexec.8 index 431978c4d0ae..afcc1839ef75 100644 --- a/usr.sbin/jexec/jexec.8 +++ b/usr.sbin/jexec/jexec.8 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 12, 2024 +.Dd March 5, 2025 .Dt JEXEC 8 .Os .Sh NAME @@ -32,6 +32,7 @@ .Sh SYNOPSIS .Nm .Op Fl l +.Op Fl d Ar working-directory .Op Fl u Ar username | Fl U Ar username .Ar jail Op Ar command ... .Sh DESCRIPTION @@ -48,6 +49,9 @@ is not specified then the user's shell is used. .Pp The following options are available: .Bl -tag -width indent +.It Fl d Ar working-directory +The working directory for running commands inside the jail. +The default is the jail root directory. .It Fl l Execute in a clean environment. The environment is discarded except for @@ -59,7 +63,9 @@ If a user is specified (via .Fl u or .Fl U ) , -commands are run from that (possibly jailed) user's directory. +and absent the +.Fl d +option, commands are run from that (possibly jailed) user's directory. .It Fl u Ar username The user name from host environment as whom the .Ar command diff --git a/usr.sbin/jexec/jexec.c b/usr.sbin/jexec/jexec.c index 35fd9c8d20e4..a1e443c5ba04 100644 --- a/usr.sbin/jexec/jexec.c +++ b/usr.sbin/jexec/jexec.c @@ -58,16 +58,22 @@ main(int argc, char *argv[]) { int jid; login_cap_t *lcap = NULL; - int ch, clean, uflag, Uflag; + int ch, clean, dflag, uflag, Uflag; char *cleanenv; const struct passwd *pwd = NULL; const char *username, *shell, *term; + const char *workdir; - ch = clean = uflag = Uflag = 0; + ch = clean = dflag = uflag = Uflag = 0; username = NULL; + workdir = "/"; - while ((ch = getopt(argc, argv, "lnu:U:")) != -1) { + while ((ch = getopt(argc, argv, "d:lnu:U:")) != -1) { switch (ch) { + case 'd': + workdir = optarg; + dflag = 1; + break; case 'l': clean = 1; break; @@ -102,8 +108,8 @@ main(int argc, char *argv[]) errx(1, "%s", jail_errmsg); if (jail_attach(jid) == -1) err(1, "jail_attach(%d)", jid); - if (chdir("/") == -1) - err(1, "chdir(): /"); + if (chdir(workdir) == -1) + err(1, "chdir(): %s", workdir); /* Set up user environment */ if (clean || username != NULL) { @@ -129,7 +135,7 @@ main(int argc, char *argv[]) setenv("HOME", pwd->pw_dir, 1); setenv("SHELL", *pwd->pw_shell ? pwd->pw_shell : _PATH_BSHELL, 1); - if (clean && username && chdir(pwd->pw_dir) < 0) + if (clean && username && !dflag && chdir(pwd->pw_dir) < 0) err(1, "chdir: %s", pwd->pw_dir); endpwent(); } @@ -186,6 +192,7 @@ usage(void) { fprintf(stderr, "%s\n", - "usage: jexec [-l] [-u username | -U username] jail [command ...]"); + "usage: jexec [-l] [-d working-directory] [-u username | -U username] jail\n" + " [command ...]"); exit(1); } From nobody Sun Mar 9 20:45:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z9sTm2h60z5qlP6; Sun, 09 Mar 2025 20:45: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z9sTm17ghz3Vtr; Sun, 09 Mar 2025 20:45:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741553100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7I9yEzMibsq2kMUd0uRB+xTVyhQ3kzoPry6eEA+VMEk=; b=BaC8h8Fsasa48hQE+wKGo0nnUAr1R+BfJBLZShPYEtKamLry5Yl3xEOz3pGI28yLJen/un lGqVBlJjcA4eKpb2KfAatvF6IHZ6Cvqmd0R4XBGUEv/MJLWIA0fbKsyqVhEfTAPBO6jLaO YGH1kGViMz9EbXGr/SLhEnBC1W0+d/9Khr+8mZ6uomJMLRnqHSsIuU4GJLoXAf4b6bMHCj CQszfQ5WYGraRWh+pwbu3yCsPQTrKbbfGcx7ql4QLI3EqT/34XmEkOCKqAwE9LMzAUd6ba KnBosreTCzhg4cv21oiIKXtYU9uITZJv9GZwALuA36HpNPL3tsTTeJ7078IKnA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741553100; a=rsa-sha256; cv=none; b=rh/7bQrht5jqUivI/FCyjlNJHJXVn36cPRQG1slQhEwzQ/2bNEW/asaCxCmoI4oSR8pLPp PhZSvjsDokoAHOxO3MnS0d3RDKswT8Q1mMpIE/qI2VF4q+4KdTs41m0MSNUuiAjv5ChD3v FYjJP2vgdk8Lc7W9V6swjvlDV5NOZjx7nPexAmZMaYFZmSxePFdhkuF6+71uE04+sOIRQ+ CH7D3JLvh70958K/D/HTDNn5C7VHT+nf5OjlKmmeBa6JGGAEqt+pENU3HWl0fXdX7BHOZD 1Ca4LjM4+DzA7gR2VPcEMc33QeEW1xni8HWEYLwE6p8a2q6A5jGfqPa8x9w9cw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741553100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7I9yEzMibsq2kMUd0uRB+xTVyhQ3kzoPry6eEA+VMEk=; b=R5L+d6/+mhOPzrgLGwKaKvWgu2yts/STxqfOcs1MwEBzKJxFj16pxQpma+WJe78ByFjdtR K0JbaCGk92aZEnHQxV0UIlD1BssWggLp2EPOPr2zPXK0NN/uZFmhfsIbMgR1Xtg5zN5HVG 86mVaKbxaQBbdqJLPByvI2s6lgql/AgPwsc/uVKzPJxa4CKI1TcMZOIq/Agt6O2fYBb/47 wcpf9LN3BCTk/+AleK27koACa4p2CzCOLXvm1zquB60G3OUfcpOyNg7q3nSV6dSKpe3u9W CSTK6nIqQsakIhfAtjf/Hs6hGQwkoswhoE+xvMT7q8i8bzyajkzmlSQk/ulxLw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z9sTm0lKbz1NVS; Sun, 09 Mar 2025 20:45:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 529Kj0ZA089473; Sun, 9 Mar 2025 20:45:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 529Kj0oR089466; Sun, 9 Mar 2025 20:45:00 GMT (envelope-from git) Date: Sun, 9 Mar 2025 20:45:00 GMT Message-Id: <202503092045.529Kj0oR089466@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: f05f6d93732e - stable/14 - acpi_gpiobus: assume GPIO_PIN_INPUT for interrupt pins List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f05f6d93732e7d58464352e97e2dcafbab94adc4 Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=f05f6d93732e7d58464352e97e2dcafbab94adc4 commit f05f6d93732e7d58464352e97e2dcafbab94adc4 Author: Ahmad Khalifa AuthorDate: 2025-03-07 15:59:11 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-03-09 20:42:13 +0000 acpi_gpiobus: assume GPIO_PIN_INPUT for interrupt pins Different drivers respond differently to having neither GPIO_PIN_INPUT or GPIO_PIN_OUTPUT set, this stops the unpredictable results. (cherry picked from commit 6aab381a498f1a43ba372f4ae9f57ef88b4767b5) --- sys/dev/gpio/acpi_gpiobus.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/gpio/acpi_gpiobus.c b/sys/dev/gpio/acpi_gpiobus.c index 254bb951177d..833b6984ae05 100644 --- a/sys/dev/gpio/acpi_gpiobus.c +++ b/sys/dev/gpio/acpi_gpiobus.c @@ -77,6 +77,7 @@ acpi_gpiobus_convflags(ACPI_RESOURCE_GPIO *gpio_res) break; } + flags |= GPIO_PIN_INPUT; #ifdef NOT_YET /* This is not currently implemented. */ if (gpio_res->Shareable == ACPI_SHARED) From nobody Sun Mar 9 20:45:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Z9sTn5htZz5ql4M; Sun, 09 Mar 2025 20:45: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Z9sTn1nfcz3VZq; Sun, 09 Mar 2025 20:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741553101; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Kbvt8qHUanHWuOAf+6Z7ApHg39aa2pMNpdxWpWxqs74=; b=k1KYuHO+cIDO+fZhoELo4h998119U3QYbvyb7x1SlvBX3+ywyX1VPZCwrlCWnpTUX87lmG GFnrbwqmLUPpZFYf63E95x7Wjz0Sohawzt/5EeYzovtIb1hWP45xGwBHttDgCIJhOeF7gL mtOXKQGUgHjnLwFr2ulO3OQzupZ86GbBS+I1ba3AJ5KwGfCpGWEVj01tRS5Vp/23eKHHM9 vc3tWGPmJ5cvUvJjpyjbC859PEdWkwWiuGgqcUstkGRchi8vsVm96ODwD51ndcebKHdMcy v3x/iry2BaWBmgpCwpxRTUVnZ1wOknipCMCcyFY8881BOubcd69wROfkTD6PnA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741553101; a=rsa-sha256; cv=none; b=x5DytCFDt4ZWKEsBz9EPkHlKU6EWXSNnkp/Ot/+cXQB8MMvlyHUoWnUXkzi26LA14lN/ng 3RUWiNJ32FeuOzjEOZBpYOjyOO7MbDyIltgvL8HNndbaWrrxsWYiRjZGZkHXd+POtUOa86 7+LwItyLYkU9wE02zC97ff/fcHnDh2rpyLkMAP3fqfI0S4gwpmE5kbYABkEotGnx3xgNfJ 7AWMhLhlWwVY//TUCMShy9Ikl3X53jnd2bQ+hv4KF8K3G2KkPcA40p5P2bm8Ow141dW5uq btNOXBvA1B+R1OcvVFV+cdwK186YOj72YwKHX6RF3+CuAr9oi9N+MhGoMGKLoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741553101; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Kbvt8qHUanHWuOAf+6Z7ApHg39aa2pMNpdxWpWxqs74=; b=M2zcFHR0iPBJqE9Wf/sZF7pSv4OXvNAuMMVYoSXuLUMT9dy4YZ3IzMdBSkWxoKpizra8yD R6fPdK+NyvBFuzVLumWCaNM1T33dcOrrxACRI1ODoUPMKbSTLWcfKEvx3XgY4Qtpug5xsa NBJF1es/ZP9p+09kQjiJY5zodN2/nNfyK5TliJex6bUtzkHIa2dmSyfWCpLzTeM9qvq8jJ 8y9Un2TzYvxxlTLGXXayBwA5dssDlrXB50BCWk/LftAIPku5BaWQz/KMFugcR9WLfAf6hl KdOhAqIC2QUUhxwaRenUbr8eBnIqURqXpFarxTzdchnTWQLWxGs8D9acotmVAA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Z9sTn1LSXz1NGx; Sun, 09 Mar 2025 20:45:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 529Kj14u089519; Sun, 9 Mar 2025 20:45:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 529Kj1KT089516; Sun, 9 Mar 2025 20:45:01 GMT (envelope-from git) Date: Sun, 9 Mar 2025 20:45:01 GMT Message-Id: <202503092045.529Kj1KT089516@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: e7d1f208fde8 - stable/14 - gpioaei: Add support for ACPI _EVT method List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e7d1f208fde82c85b061ce792f20a4aa178ec82f Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=e7d1f208fde82c85b061ce792f20a4aa178ec82f commit e7d1f208fde82c85b061ce792f20a4aa178ec82f Author: Vladimir Kondratyev AuthorDate: 2025-03-07 15:59:12 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-03-09 20:42:35 +0000 gpioaei: Add support for ACPI _EVT method This method is often used to process GPIO "Power on" button press on modern x86 laptops with S0ix sleep mode. Tested with patch from https://reviews.freebsd.org/D26407 Sponsored by: Future Crew LLC MFC after: 2 month (cherry picked from commit adc2c156acb50bac6e8ec66b72cadc8910ce4975) --- sys/dev/gpio/gpioaei.c | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/sys/dev/gpio/gpioaei.c b/sys/dev/gpio/gpioaei.c index 050f259a2127..f43674b53c7d 100644 --- a/sys/dev/gpio/gpioaei.c +++ b/sys/dev/gpio/gpioaei.c @@ -39,9 +39,16 @@ #include #include +enum gpio_aei_type { + ACPI_AEI_TYPE_UNKNOWN, + ACPI_AEI_TYPE_ELX, + ACPI_AEI_TYPE_EVT +}; + struct gpio_aei_softc { ACPI_HANDLE handle; - char objname[5]; /* "_EXX" or "_LXX" */ + enum gpio_aei_type type; + int pin; struct resource * intr_res; int intr_rid; void * intr_cookie; @@ -60,8 +67,11 @@ gpio_aei_intr(void * arg) { struct gpio_aei_softc * sc = arg; - /* Ask ACPI to run the appropriate _Exx or _Lxx method. */ - AcpiEvaluateObject(sc->handle, sc->objname, NULL, NULL); + /* Ask ACPI to run the appropriate _EVT, _Exx or _Lxx method. */ + if (sc->type == ACPI_AEI_TYPE_EVT) + acpi_SetInteger(sc->handle, NULL, sc->pin); + else + AcpiEvaluateObject(sc->handle, NULL, NULL, NULL); } static int @@ -69,23 +79,35 @@ gpio_aei_attach(device_t dev) { struct gpio_aei_softc * sc = device_get_softc(dev); gpio_pin_t pin; + ACPI_HANDLE handle; int err; /* This is us. */ device_set_desc(dev, "ACPI Event Information Device"); /* Store parameters needed by gpio_aei_intr. */ - sc->handle = acpi_gpiobus_get_handle(dev); + handle = acpi_gpiobus_get_handle(dev); if (gpio_pin_get_by_acpi_index(dev, 0, &pin) != 0) { device_printf(dev, "Unable to get the input pin\n"); return (ENXIO); } - sprintf(sc->objname, "_%c%02X", - (pin->flags & GPIO_INTR_EDGE_MASK) ? 'E' : 'L', pin->pin); - /* Support for GPIO pins > 255 is not implemented. */ - if (pin->pin > 255) { - device_printf(dev, "ACPI Event Information Device does not support pins > 255"); + sc->type = ACPI_AEI_TYPE_UNKNOWN; + sc->pin = pin->pin; + if (pin->pin <= 255) { + char objname[5]; /* "_EXX" or "_LXX" */ + sprintf(objname, "_%c%02X", + (pin->flags & GPIO_INTR_EDGE_MASK) ? 'E' : 'L', pin->pin); + if (ACPI_SUCCESS(AcpiGetHandle(handle, objname, &sc->handle))) + sc->type = ACPI_AEI_TYPE_ELX; + } + if (sc->type == ACPI_AEI_TYPE_UNKNOWN) { + if (ACPI_SUCCESS(AcpiGetHandle(handle, "_EVT", &sc->handle))) + sc->type = ACPI_AEI_TYPE_EVT; + } + + if (sc->type == ACPI_AEI_TYPE_UNKNOWN) { + device_printf(dev, "ACPI Event Information Device type is unknown"); return (ENOTSUP); }