From nobody Mon May 15 05:06:07 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKS4v4XFVz4B8K7; Mon, 15 May 2023 05:06: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKS4v4509z3DCv; Mon, 15 May 2023 05:06:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684127167; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8jH9r4dUEI3DsdSTPcCoBU/1yHKQ9wHqH0O60gVSOEA=; b=PDv/WFEmQtZMBd12DBqAnrV+BdVSZhbdcwUukfgkmiriq2WrnL8CWBrwoNX9EITtGzh4PL iZvNCitqxBhegt7pFz+SsC1al6bX/sZ6nng7yXR6APDwaKYJLHWQNtlzdqXb9zM73fX8Ee RY7vBdPbVTCNayVTYXvk14CrCbK2otSf04a+rKxxO6ktTsPEV1NCLQ+/nOZDIokEJkWZal VcMbkqDJNm2K4604i9W2YZP73/6lIjxSjdNvvM5JTvjqc+KSIlYKWhjNUnj63fU84c/zJ9 upO9YXj51tSU5TRDfgB+XzM/bh/QC9fy4KJSsBszbwkok0atrx9gnbzxLSZHEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684127167; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8jH9r4dUEI3DsdSTPcCoBU/1yHKQ9wHqH0O60gVSOEA=; b=lppGkv4AgQBAuC41B5Nbr3o7mlIjKme7T0bjXUOJfikFS8Nf6vy5WS0UUDdi+Tp6H/l16E gl2DFjI5/LA0UpMgM9WeyhNdegLeu2pvhTVuI83E7sqx5bPxW6XQ1bpe8L7w95kr7PGiqS BTLUKpFsh2SdNVuRFnqPvqS1mVWLmYzrgqVQTHyElVIDz3kn2xjO83Z1VEc0MBXQuHusyt bLelij52fLjBaaiAvoCbRGZM7K+iBfXiE9/dar+sAKWb9ZpRzpZXN6fUJe+g/UKrh1jRzf 6iuFNc2nop0wr6Gmoz0JVkHbWG+AbGeUfQgUcsWzjplAl+j057U23N78wL9vVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684127167; a=rsa-sha256; cv=none; b=gpjbaIdQNki8hjChT4jMA4vzmcKaoTUXZyZHt6slQD5iNz2ihpBl/eovxY3TEoBxu1v/7x fYl6hpzDNBlTsNmNP1bTOUBlwpdCRAJOLEa+nywcq0bSm71pyMAAyXIG96+uQCvYoCynkO KP1O1JaIoPeMqaB9xg4gIxJvTUqlBmmuOcADK2vOnmy8Z2kR8dOsUsV8bjN6CkCFoNiGxT PxTcVrv24AX5HSRxJmVZPf+1JCCUsqMYWNv1c17l9YVpVv3PsS4mMEIdw50Emgbm+PWv2l eaKreWO9M6ISvPWwul7vi0EiUfx6csx10U9doF1hhGhe7c5/E448EHkB+myC0Q== 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 4QKS4v3224zSXb; Mon, 15 May 2023 05:06:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34F567CZ021178; Mon, 15 May 2023 05:06:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34F567Wq021177; Mon, 15 May 2023 05:06:07 GMT (envelope-from git) Date: Mon, 15 May 2023 05:06:07 GMT Message-Id: <202305150506.34F567Wq021177@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 5cb5b368829d - stable/12 - e1000: fix VLAN 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: 5cb5b368829dd075bec55ada6c1374538ec7c6d0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=5cb5b368829dd075bec55ada6c1374538ec7c6d0 commit 5cb5b368829dd075bec55ada6c1374538ec7c6d0 Author: Kristof Provost AuthorDate: 2023-05-10 16:26:29 +0000 Commit: Kristof Provost CommitDate: 2023-05-15 04:49:51 +0000 e1000: fix VLAN 0 VLAN 0 essentially means "Treat as untagged, but with priority bits", and is used by some ISPs. On igb/em interfaces we did not receive packets with VLAN tag 0 unless vlanhwfilter was disabled. This can be fixed by explicitly listing VLAN 0 in the hardware VLAN filter (VFTA). Do this from em_setup_vlan_hw_support(), where we already (re-)write the VFTA. Reviewed by: kbowling Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D40046 (cherry picked from commit 0229fab2fe0eed843ebec98fd31b7d49bb2e8438) --- sys/dev/e1000/if_em.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 8a489c48bf85..3e41e1e0bff1 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -3671,8 +3671,10 @@ em_setup_vlan_hw_support(if_ctx_t ctx) /* * A soft reset zero's out the VFTA, so * we need to repopulate it now. + * We also insert VLAN 0 in the filter list, so we pass VLAN 0 tagged + * traffic through. This will write the entire table. */ - em_if_vlan_filter_write(sc); + em_if_vlan_register(ctx, 0); /* Enable the Filter Table */ em_if_vlan_filter_enable(sc); From nobody Mon May 15 05:06:08 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKS4w4Zspz4B8Nc; Mon, 15 May 2023 05:06: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKS4w3fzXz3DDC; Mon, 15 May 2023 05:06:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684127168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N2zTFJ8CMDD8oOQX1VD5QCLHipgXa3AdXELsWhRSHKA=; b=A1cnVPrBvXsC2p5G9R91tQFWpDKBcRGExQz1kWnnB8vYMgB3NiKMSlb93JRmluD6aHRPuG ZjbAWA2fWG6YjuEqNvIN6IxpDRgjd3J0aR/8X8PLl4yTlTMDlBrtCqr+ALjtRmsvUGjq8T CP/FYHgmwVzHUG2sazS0Pj4UngMvUKWJd/HaVt8hDecztwvTLbI9KBLFBKKyDDISuf989f Dz65pM9Bbvrpewobi0YWv6KUu42ATuOHqtfPqVNuGkFaUTsFLR7mqRk7TvLPEdk9PPh0C6 Lkr+OtEYcDZqWn40+cxu9s0noRzIfi9sv43kPaIfJ1p9umQSpIH9sw0JXLtGZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684127168; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N2zTFJ8CMDD8oOQX1VD5QCLHipgXa3AdXELsWhRSHKA=; b=VPMpl7z0LlJcdGuCLQdkSBNWNJLpLKnKcjSitfwCWUQ5y3QGn70ClbgbTWp8ksn/d/Mv6D OkGkhjahCPqtLe93iQavo8yMysJ5WXgpOOAMWXVGpAXlVYVdOeZDRSlbfsZqoGO7f92JG6 dzfnaJ6TKxzzsiqRUhmHmGXAUvrXOADYsMzTJSstw/iBcmnxdt0aRFPXg5d5Q94ZV11K9H DoEXaeaJk3GNYYDNWdq7oeT8QEmxrOifxgDBzNf8tpNR3FiscRTBjuP9pW3ecSwsBVkblE Id20cZ4MoHi3FXy+W/ixxqpe0tvvERxewXk1ZcLd6lrEd5dc69FBDAYTeWgzgg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684127168; a=rsa-sha256; cv=none; b=COMU8Fw+XZ5dKbjKEut6MvdzKBKMA2gQyIDZag8GyiecQE6ZwoLhVenw7Vzew64W5uFHwb oYAF27/vekLvO6tudtq2Heuzh6t0pYEZGIpRE3XrcqSOBjI2M/v5wmZJsl+2V8fzT77I23 Mogu2TsEdTiCmYMhuXEDFUTGnEfRTQzfNdRMNy265a/CHDDgKxzWPGPI2136BGO/TaQnLl QlYUVT9pTw/Cof8YmCO4TFazQTY+vsirXxy+08L1RYGNNYfttgwXFURxFOTAJVuoCh0tIc /9UBNqgrCKCbikaBKNPv5K/4wQD50c9fwJ3ZU14qC3kE0/atOedIVqjmOHdt4g== 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 4QKS4w2lF7zSXc; Mon, 15 May 2023 05:06:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34F568V6021260; Mon, 15 May 2023 05:06:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34F568qB021259; Mon, 15 May 2023 05:06:08 GMT (envelope-from git) Date: Mon, 15 May 2023 05:06:08 GMT Message-Id: <202305150506.34F568qB021259@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: eaa16e7edba1 - stable/13 - e1000: fix VLAN 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: eaa16e7edba1fe8de358f9379a93694537a0ce4c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=eaa16e7edba1fe8de358f9379a93694537a0ce4c commit eaa16e7edba1fe8de358f9379a93694537a0ce4c Author: Kristof Provost AuthorDate: 2023-05-10 16:26:29 +0000 Commit: Kristof Provost CommitDate: 2023-05-15 04:49:09 +0000 e1000: fix VLAN 0 VLAN 0 essentially means "Treat as untagged, but with priority bits", and is used by some ISPs. On igb/em interfaces we did not receive packets with VLAN tag 0 unless vlanhwfilter was disabled. This can be fixed by explicitly listing VLAN 0 in the hardware VLAN filter (VFTA). Do this from em_setup_vlan_hw_support(), where we already (re-)write the VFTA. Reviewed by: kbowling Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D40046 (cherry picked from commit 0229fab2fe0eed843ebec98fd31b7d49bb2e8438) --- sys/dev/e1000/if_em.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 527789622169..09a063191107 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -3683,8 +3683,10 @@ em_setup_vlan_hw_support(if_ctx_t ctx) /* * A soft reset zero's out the VFTA, so * we need to repopulate it now. + * We also insert VLAN 0 in the filter list, so we pass VLAN 0 tagged + * traffic through. This will write the entire table. */ - em_if_vlan_filter_write(sc); + em_if_vlan_register(ctx, 0); /* Enable the Filter Table */ em_if_vlan_filter_enable(sc); From nobody Mon May 15 06:16:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKTf3537Vz4BD1R; Mon, 15 May 2023 06:16:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKTf34X1pz3Jks; Mon, 15 May 2023 06:16:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684131387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qUehN2DuHGhcH8N7qY53foakyqtb1XWbHbKf7J2dTtc=; b=GDDvxHfzCBLo9/SmVmM2SQ2JjkQXhGpYdxQxOxp21o92fp1PIojXUMJ9c3bnipaS24iez+ gj+qmHudN4RWpBXBnVMAQ1Pa1UbP7W7ZQsQDBxM8JwuDWzDtgc+c8j9jmGgEbJtTtmoJhJ kI4//3YZEQtzJ41fYQwefWZdH42XoSxkLDPPtNSla/13g2iR6U0U7k1l2zFUsW1zB2/KCv r/WEd1lwrPgZ5zhO2LeBLEJsF3jOTvVE2dzDrkFklk9gGIE7YU/g3E7/sjIkM4xDiSyRkM UKIel3Z080WIuHL6wxBJT6yjpYyNT66TbPXU9MuiZRDOSvoX94MIwQ5Yf7e12g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684131387; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qUehN2DuHGhcH8N7qY53foakyqtb1XWbHbKf7J2dTtc=; b=lVT/E3ZFhx3LRX6+w+5mjq3ENfnZN7NU2fO8IemZ4/GE/Po+hFiAJxHZrJdsa9JZYaT05h 55N68BA3Wxtk4rStPSXU+HXS13XlHh3CNXuGM8MTk5v1DKM+bEDylYg0xQUo7cPtpZ/+rB TsFHR7D75P4M0CtkXpFdcfAh9SmB1KszkzGH4hso9OWU9hMYtrjumIruz2fyj/Jp73BFt+ cEEZmagw4z6DbgL+/6WqKBlRwn1nu/u2hTcVhqJj5QVdiaeEoU63l9k00aJli5YPQElg24 zqeM96S4t6MJKgftRpOWCRUgo6FpUdRfVqYC2nMfJMNfTaO/pFigKtN5tmi5WA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684131387; a=rsa-sha256; cv=none; b=GG6fdotGdCfs1KpLIHF72BMj289SgwhBEYkL99QHReihdWB2qvXYidGynCWFhF4oHHw+CY zCfZZRyoiklm9L515W1qVYvakzYd8noTtaGhj3/+505GQDk0y8DPpZz7CAiou0ZyCLAPKT vD2e5YWxp3e8rGbrwTl0m5uduGPm+B5EKGzdet432R70PoUBqoKXAuDotIXq4EemE7Pe7C VOsohiPlh3EBt6OvfNzZgVe3Skh7/f8tx4VVYy4NLQzu7scJcTDbBChXCQRSyVQAD3/ODJ RmdpeDaK7rGr1tzLk5trGvVR9s6mpkyBRlRYqlrLgUvW1/E+Nx99savrmlhFVg== 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 4QKTf33RLRzTGc; Mon, 15 May 2023 06:16:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34F6GRjw036383; Mon, 15 May 2023 06:16:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34F6GRvZ036382; Mon, 15 May 2023 06:16:27 GMT (envelope-from git) Date: Mon, 15 May 2023 06:16:27 GMT Message-Id: <202305150616.34F6GRvZ036382@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gordon Bergling Subject: git: 36fb2e26f61b - stable/13 - arm64: Fix a typo in a source code comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 36fb2e26f61b0e7928191c92d7fa4e97d1d3c5f6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=36fb2e26f61b0e7928191c92d7fa4e97d1d3c5f6 commit 36fb2e26f61b0e7928191c92d7fa4e97d1d3c5f6 Author: Gordon Bergling AuthorDate: 2023-05-12 08:45:46 +0000 Commit: Gordon Bergling CommitDate: 2023-05-15 06:16:16 +0000 arm64: Fix a typo in a source code comment - s/inferface/interface/ (cherry picked from commit cbe88c6f3c47e3d7731b6ec30bfc201970b20602) --- sys/arm64/iommu/smmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm64/iommu/smmu.c b/sys/arm64/iommu/smmu.c index 9df6bcfc4351..e3b7a14e705f 100644 --- a/sys/arm64/iommu/smmu.c +++ b/sys/arm64/iommu/smmu.c @@ -65,7 +65,7 @@ * Queues. * * Register interface and Memory-based circular buffer queues are used - * to inferface SMMU. + * to interface SMMU. * * These are a Command queue for commands to send to the SMMU and an Event * queue for event/fault reports from the SMMU. Optionally PRI queue is From nobody Mon May 15 15:45:52 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkH51YJ1z4BlrK; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkH46H99z3JDC; Mon, 15 May 2023 15:45:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dpiqbfkqg1GQ7sIZSgeyUOnfdy3GBz2QRyE9HKk9IFM=; b=eRreoseD+4v23glPjRnBT86rNv/14BZncImr/v7WW1i1gi6cexAFFfT2GfAKSI8kdM4nE0 f8Lc7R/1m6WV/KXrmBRBxk7Tz6LqT7UR88OPBUP4uYi6DB3jp96GQF2LLEwciGVw/6BMex L4AvZ1CspbJQQxYZmINlUOGdrglO3BfxrPngU97EYkUrYidJgBRJxT7fkVYwfevNUIS6wZ ZXiM2JIRL7VQPZSq08KPV8c8nAL26Niy/+1iKY/lVigXcj7rJETGjanHH0K2Wwg84Sk4KV N3rIrthnxGrcagyGDWFcxiYcUK+V6u4yHSrWnzky5Qnr3iwE/wDz01nyhQZubg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dpiqbfkqg1GQ7sIZSgeyUOnfdy3GBz2QRyE9HKk9IFM=; b=jkldF3chozQcSnLaCm5HPEB6apB0oEoBh9ynSj8YjT7/+QEVZsRMtplD9Aa9F+trAtoG+9 hGixuhfqrZ6dMA6PtyBKRm2oNclGz8jUN7DURBjNML8GBGJlG9zbOyR9uapWuNycK5sRHL 15BAnEJhowZYVKx2QHokss+qqDRG2Ns4mt3WTY9xq/o3YHwFQPbZ402QK5WFN3Np1b5jLc oWC61XEjusG6Tdw/r6cFIrQo6r/gdA8Eem/GpOCCVBOEOQXJAYHjfOfK30bEYMKCrBcTbf Ykhn0kwkkX+cjIDrSyF422nsCs2cQnWFSJ6hz9GxfwM7nemw0gLv+LQrIGo2YA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165552; a=rsa-sha256; cv=none; b=SBGoax9iZmy9ReWysdhgu6iraVY3Kb8lsqdH4XekKku1nXaXHAgZCxlPP4w2YXAZCBU8tz T3Hye51mOq4cxUbYr7YsXTjeZqKOY24E15aZcoNPww2xuW0dwaJjnBgRUDclpPnZ+LO1BZ Uczg/B1qwlUfjTEOkH4N0xis4ZxuDRs4UBOr5nmi5qZM+wsQc8/m1RCtqXdIb1Yv1eonri dTbdKsCVDuA737XyhFJSebzyaqud9C3wyCe/mmJfJu8ki7ibdqHkJKxNNJMlqdDi5rRCP8 Btwdhex/esipmchGmk6zB4rX+pHQlO0OTxaeGPhGx8jgE3zjx7nM6wVAGbfUAQ== 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 4QKkH45GVdzmPg; Mon, 15 May 2023 15:45:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjqrT073325; Mon, 15 May 2023 15:45:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjqG1073324; Mon, 15 May 2023 15:45:52 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:52 GMT Message-Id: <202305151545.34FFjqG1073324@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 6136013a16f5 - stable/13 - Disable the arm physical timer when an irq exists List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 6136013a16f55ec21ae32e068bb425eb97fca250 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=6136013a16f55ec21ae32e068bb425eb97fca250 commit 6136013a16f55ec21ae32e068bb425eb97fca250 Author: Andrew Turner AuthorDate: 2023-01-28 17:36:24 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 07:59:43 +0000 Disable the arm physical timer when an irq exists Some firmware leaves the timers enabled. Ensure they are disabled if there are any physical timer interrupt resources to ensure we don't receive any unexpected interrupts from them. (cherry picked from commit c57694ce94712ce1fe0341ae51d70446a7dbbfa2) --- sys/arm/arm/generic_timer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index 3f5f65439ddc..5b4972017c2d 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -475,7 +475,8 @@ arm_tmr_attach(device_t dev) if (sc->res[GT_VIRT] != NULL) arm_tmr_disable(false); /* And the physical */ - if (sc->physical) + if (sc->res[GT_PHYS_SECURE] != NULL || + sc->res[GT_PHYS_NONSECURE] != NULL) arm_tmr_disable(true); arm_tmr_timecount.tc_frequency = sc->clkfreq; From nobody Mon May 15 15:45:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkH63FrNz4Blm9; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkH56tH4z3JDF; Mon, 15 May 2023 15:45:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+l8iewWuIMxcrDfbvm2U3WkaFQtaH79An1EisZY+EQk=; b=tZ1yId6LNXQG3ATtMezhy4vwLdgAAnilisqp5nZs+DHokN4oUqNvfKBNTYi+qFYQ8DwduO XlpCdzTwJiq1uOMnPDdJeJpQUvD2kIBp+AMGVkg+GrOyf6BUWmKz4XkuzOnH7AOQCmKNo3 s2z0L0ciHDnCK5n60pMCpY8VqUzqQzuxd55MSPwnPS0JegrSeatK9DED5eyldajJGaYqWE JC4F8Ylwz4NlHzT5oF/sYjIDPHcLkNXdsnIPl97bDxU19X2/g2otIhFoHvr4gL/1uCcLQY A1rKxBKdinRBeuxsswEH7gRSCNBmX8QqsweDXLU1DseVvXK3wJLg02WbbxueDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+l8iewWuIMxcrDfbvm2U3WkaFQtaH79An1EisZY+EQk=; b=wbJ+OQeAyJ1fMrjpNDHyxu/Ndp78sngZ0QFNZgREuM8QXsaMCS4P2ZYDXiklWaCbE7jExp O8AS6Cdj0LgdWQhTy/Z52pc28NnyfjTQx4XhJRvxr67kGZn67cc1Tj8vkq3rcNHIHSRM5j 6QBfORJ9u0thU1TjOtFWWI0eTiqcfnkhr6NBp/J5r54Ls1hQikBo0tgmXRk4XsmJfmmbWf wDxg3cfcsLCFbHKFj/NuTUKwDCMEvmrx++PIU1qo4wMWXzCdgR1a1berv/Wjt+K4YcEG9U 4v/DN3+ti3E1J5ZjuSvPfrrueQenl4VzsalhKnlqJmCiLkslVjVtneA3lBLYmQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165554; a=rsa-sha256; cv=none; b=dGeBMCrrKL43r1vquSfncOFTb23Tx5TaYTv+kE+incpG+51UxzmbYv88BBn+7Rbs5NPux5 CJtGXRo6zOQniyz9SIqukRY0p4CT4cCHj6y/74PN/xNfYRNqd1ZcunaOxdy/fHsonkjrV7 nfoFEK3x6ICkoP03ndEhLrU/g5pAtboa7ffyo+hJ4anMQfh/A4Y0d73GaAnhS9LMZ/OohU KjaFKh1iaOAAQUBCjHUkWM3N4KcF80cy+UuXNYAiilDYh51tdHSrpHsE9CEsBiTvbEsPDE IO7jr2OCSKutF5r6qvvgG9haCDbC9gOMDKg7QexAhOdktNLQJPYkBqv1MQ5p9w== 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 4QKkH55xJhzmTb; Mon, 15 May 2023 15:45:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjr5v073351; Mon, 15 May 2023 15:45:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjrFN073350; Mon, 15 May 2023 15:45:53 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:53 GMT Message-Id: <202305151545.34FFjrFN073350@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: ed88e5b2fc75 - stable/13 - Limit where we disable the Arm generic timer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ed88e5b2fc75f18085ba7c3f1ccac3dc1c9381ce Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=ed88e5b2fc75f18085ba7c3f1ccac3dc1c9381ce commit ed88e5b2fc75f18085ba7c3f1ccac3dc1c9381ce Author: Andrew Turner AuthorDate: 2023-02-02 16:26:25 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 07:59:43 +0000 Limit where we disable the Arm generic timer Only disable the Arm generic timer on arm64 when entering the kernel through EL2. There is no guarantee it will be enabled if we are running under a hypervisor. Sponsored by: Arm Ltd (cherry picked from commit 22e4897422a055b7a15be5984fbc4bb97f432e79) --- sys/arm/arm/generic_timer.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index 5b4972017c2d..cdc60ba469a4 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -54,15 +54,13 @@ __FBSDID("$FreeBSD$"); #include #include #include + #include #include #include +#include #include -#if defined(__arm__) -#include /* For arm_set_delay */ -#endif - #ifdef FDT #include #include @@ -134,11 +132,13 @@ static struct timecounter arm_tmr_timecount = { #define get_el1(x) cp15_## x ##_get() #define set_el0(x, val) cp15_## x ##_set(val) #define set_el1(x, val) cp15_## x ##_set(val) +#define HAS_PHYS true #else /* __aarch64__ */ #define get_el0(x) READ_SPECIALREG(x ##_el0) #define get_el1(x) READ_SPECIALREG(x ##_el1) #define set_el0(x, val) WRITE_SPECIALREG(x ##_el0, val) #define set_el1(x, val) WRITE_SPECIALREG(x ##_el1, val) +#define HAS_PHYS has_hyp() #endif static int @@ -475,8 +475,8 @@ arm_tmr_attach(device_t dev) if (sc->res[GT_VIRT] != NULL) arm_tmr_disable(false); /* And the physical */ - if (sc->res[GT_PHYS_SECURE] != NULL || - sc->res[GT_PHYS_NONSECURE] != NULL) + if ((sc->res[GT_PHYS_SECURE] != NULL || + sc->res[GT_PHYS_NONSECURE] != NULL) && HAS_PHYS) arm_tmr_disable(true); arm_tmr_timecount.tc_frequency = sc->clkfreq; From nobody Mon May 15 15:45:54 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkH82GSWz4BlZL; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkH71ktCz3J4F; Mon, 15 May 2023 15:45:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EeQ806GyX7p+tiwAF3EXDpslzAfNU2siecyPqKKAtCA=; b=PvC6ZNV4faZFxJUFZXkGd0hKTo2jTSfh+wDiLuQEgQzjrO73isyMcoN4ME5Aj40TJZadv0 yuPKa32mFZqMD/0Bm9++ibftxWgT4TUef01H3W0rCu95rO40CDmCgZZm+gXM+u0/fpeJDN PSPgj5Qo0WyBJQiSSEPYY0soP3Q5cW9fDTb45Ka45Qu/+CWgwO2NWwdVe/X2ELketcEQo7 OwsPmchNZur9ryK1bSSxrn4POPkHT2iTP1liNmb7wQHiO0h/3ozxbHj7b9RzW7uq6nOABV /psqOD3JefoBrSIHjej5xYk14h7ro9ZoF01bS1QJ+2EhmyKoVmNpvIXSiAjhSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165555; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EeQ806GyX7p+tiwAF3EXDpslzAfNU2siecyPqKKAtCA=; b=oN599/4SX9yT2P0XCsZIaacBVSPcSBB2nnBXGXHXyU6Y+drehqmSCp7uxCdgRRXVW6hfzG Y4yBctgNxL+iAmzzdcFfS5XmPGeoqbJq/Vi44YnK1YMCXxDP7hDEV1X9gATmu676el/PB3 ZqUPkPMPr0Z3pHxhhlN0db53yQJY0WQcnkz+TcdgtMRS+rxLYIdvC9zuG4eXJ8omAVvEZQ F+lVOC4nDZCeuMbG0ofQEVyoKAoX7ifGL3mLPFY21U8t8iPJeuknyRIfSIdwOusKW4rkNi 2n77k8lY+fpSLgwMiCTz8uHJ7yQbY5GtLAE2VGM0y9xlGCh67mugWe7EiUjbVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165555; a=rsa-sha256; cv=none; b=icmWSc9X04ioS/NuYiwy/MxwR5mgVgFeRW+Xg8JBUY7RMo/F4zRNmgWA9N4D1O6TG6f/+2 0/132i7gaFR+cZubHa2hXYQV+3aXlUSL1aiFnX5Oaz1Ep7lbZPXBiDBEVzzVfWwnt16/v4 lJ0WYCvJn6mLY2AjTXttV20UwasGLzNqe5CEhvU83bKKlemjc+h2yBUvARQypvb1/eN+r+ yUxj4weLSQ+wX1j427KJEOmSou+iX0RZV7mpqv8olDpgBZWKml4F8/3xE2XkPYlY4rwZCM Jckod87N2Ij8qzcacU3/tX3prXcE+VUNS727WGjePGd02BkHybXrZHn+ecW6/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 4QKkH66s6yzmJ5; Mon, 15 May 2023 15:45:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjsAe073370; Mon, 15 May 2023 15:45:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjskN073369; Mon, 15 May 2023 15:45:54 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:54 GMT Message-Id: <202305151545.34FFjskN073369@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 9afca1eb3277 - stable/13 - arm: generic_timer: use interrupt-names when available List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 9afca1eb3277047de623c91e500f6ec319f82f4b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=9afca1eb3277047de623c91e500f6ec319f82f4b commit 9afca1eb3277047de623c91e500f6ec319f82f4b Author: Kyle Evans AuthorDate: 2023-03-05 00:49:04 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 07:59:43 +0000 arm: generic_timer: use interrupt-names when available Offsets for all of thse can be a bit complicated as not all interrupts will be present, only phys and virt are actually required, and sec-phys could optionally be specified before phys. Push idx/name pairs into a new config struct and maintain the old indices while still getting the correct timers. Split fdt/acpi attach out independently and allocate interrupts before we head into the common attach(). The secure physical timer is also optional there, so mark it so to avoid erroring out if we run into problems. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D38911 (cherry picked from commit 91b2da13702fb3cfb40a3219feed6e5af651039d) --- sys/arm/arm/generic_timer.c | 185 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 174 insertions(+), 11 deletions(-) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index cdc60ba469a4..cba354909100 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -75,8 +75,9 @@ __FBSDID("$FreeBSD$"); #define GT_PHYS_SECURE 0 #define GT_PHYS_NONSECURE 1 #define GT_VIRT 2 -#define GT_HYP 3 -#define GT_IRQ_COUNT 4 +#define GT_HYP_PHYS 3 +#define GT_HYP_VIRT 4 +#define GT_IRQ_COUNT 5 #define GT_CTRL_ENABLE (1 << 0) #define GT_CTRL_INT_MASK (1 << 1) @@ -103,13 +104,49 @@ struct arm_tmr_softc { static struct arm_tmr_softc *arm_tmr_sc = NULL; -static struct resource_spec timer_spec[] = { - { SYS_RES_IRQ, GT_PHYS_SECURE, RF_ACTIVE }, +#ifdef DEV_ACPI +static struct resource_spec timer_acpi_spec[] = { + { SYS_RES_IRQ, GT_PHYS_SECURE, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_IRQ, GT_PHYS_NONSECURE, RF_ACTIVE }, - { SYS_RES_IRQ, GT_VIRT, RF_ACTIVE | RF_OPTIONAL }, - { SYS_RES_IRQ, GT_HYP, RF_ACTIVE | RF_OPTIONAL }, + { SYS_RES_IRQ, GT_VIRT, RF_ACTIVE }, + { SYS_RES_IRQ, GT_HYP_PHYS, RF_ACTIVE | RF_OPTIONAL }, { -1, 0 } }; +#endif + +static const struct arm_tmr_irq_defs { + int idx; + const char *name; + int flags; +} arm_tmr_irq_defs[] = { + { + .idx = GT_PHYS_SECURE, + .name = "sec-phys", + .flags = RF_ACTIVE | RF_OPTIONAL, + }, + { + .idx = GT_PHYS_NONSECURE, + .name = "phys", + .flags = RF_ACTIVE, + }, + { + .idx = GT_VIRT, + .name = "virt", + .flags = RF_ACTIVE, + }, + { + .idx = GT_HYP_PHYS, + .name = "hyp-phys", + .flags = RF_ACTIVE | RF_OPTIONAL, + }, + { + .idx = GT_HYP_VIRT, + .name = "hyp-virt", + .flags = RF_ACTIVE | RF_OPTIONAL, + }, +}; + +static int arm_tmr_attach(device_t); static uint32_t arm_tmr_fill_vdso_timehands(struct vdso_timehands *vdso_th, struct timecounter *tc); @@ -338,6 +375,108 @@ arm_tmr_fdt_probe(device_t dev) return (ENXIO); } + +static int +arm_tmr_fdt_attach(device_t dev) +{ + struct arm_tmr_softc *sc; + const struct arm_tmr_irq_defs *irq_def; + size_t i; + phandle_t node; + int error, rid; + bool has_names; + + sc = device_get_softc(dev); + node = ofw_bus_get_node(dev); + + has_names = OF_hasprop(node, "interrupt-names"); + for (i = 0; i < nitems(arm_tmr_irq_defs); i++) { + int flags; + + /* + * If we don't have names to go off of, we assume that they're + * in the "usual" order with sec-phys first and allocate by idx. + */ + irq_def = &arm_tmr_irq_defs[i]; + rid = irq_def->idx; + flags = irq_def->flags; + if (has_names) { + error = ofw_bus_find_string_index(node, + "interrupt-names", irq_def->name, &rid); + + /* + * If we have names, missing a name means we don't + * have it. + */ + if (error != 0) { + /* + * Could be noisy on a lot of platforms for no + * good cause. + */ + if (bootverbose || (flags & RF_OPTIONAL) == 0) { + device_printf(dev, + "could not find irq for %s interrupt '%s'\n", + (flags & RF_OPTIONAL) != 0 ? + "optional" : "required", + irq_def->name); + } + + if ((flags & RF_OPTIONAL) == 0) + goto out; + + continue; + } + + /* + * Warn about failing to activate if we did actually + * have the name present. + */ + flags &= ~RF_OPTIONAL; + } + + sc->res[irq_def->idx] = bus_alloc_resource_any(dev, + SYS_RES_IRQ, &rid, flags); + + if (sc->res[irq_def->idx] == NULL) { + device_printf(dev, + "could not allocate irq for %s interrupt '%s'\n", + (flags & RF_OPTIONAL) != 0 ? "optional" : + "required", irq_def->name); + + if ((flags & RF_OPTIONAL) == 0) { + error = ENXIO; + goto out; + } + + continue; + } + + if (bootverbose) { + device_printf(dev, + "allocated irq for '%s'\n", irq_def->name); + } + } + + error = arm_tmr_attach(dev); +out: + if (error != 0) { + for (i = 0; i < GT_IRQ_COUNT; i++) { + if (sc->res[i] != NULL) { + /* + * rid may not match the index into sc->res in + * a number of cases; e.g., optional sec-phys or + * interrupt-names specifying them in a + * different order than expected. + */ + bus_release_resource(dev, SYS_RES_IRQ, + rman_get_rid(sc->res[i]), sc->res[i]); + } + } + } + + return (error); + +} #endif #ifdef DEV_ACPI @@ -390,12 +529,31 @@ arm_tmr_acpi_probe(device_t dev) device_set_desc(dev, "ARM Generic Timer"); return (BUS_PROBE_NOWILDCARD); } + +static int +arm_tmr_acpi_attach(device_t dev) +{ + struct arm_tmr_softc *sc; + int error; + + sc = device_get_softc(dev); + if (bus_alloc_resources(dev, timer_acpi_spec, sc->res)) { + device_printf(dev, "could not allocate resources\n"); + return (ENXIO); + } + + error = arm_tmr_attach(dev); + if (error != 0) + bus_release_resources(dev, timer_acpi_spec, sc->res); + return (error); +} #endif static int arm_tmr_attach(device_t dev) { struct arm_tmr_softc *sc; + const struct arm_tmr_irq_defs *irq_def; #ifdef FDT phandle_t node; pcell_t clock; @@ -436,9 +594,12 @@ arm_tmr_attach(device_t dev) return (ENXIO); } - if (bus_alloc_resources(dev, timer_spec, sc->res)) { - device_printf(dev, "could not allocate resources\n"); - return (ENXIO); + /* Confirm that non-optional irqs were allocated before coming in. */ + for (i = 0; i < nitems(arm_tmr_irq_defs); i++) { + irq_def = &arm_tmr_irq_defs[i]; + + MPASS(sc->res[irq_def->idx] != NULL || + (irq_def->flags & RF_OPTIONAL) != 0); } #ifdef __aarch64__ @@ -467,6 +628,8 @@ arm_tmr_attach(device_t dev) arm_tmr_intr, NULL, sc, &sc->ihl[i]); if (error) { device_printf(dev, "Unable to alloc int resource.\n"); + for (int j = first_timer; j < i; j++) + bus_teardown_intr(dev, sc->res[j], &sc->ihl[j]); return (ENXIO); } } @@ -504,7 +667,7 @@ arm_tmr_attach(device_t dev) #ifdef FDT static device_method_t arm_tmr_fdt_methods[] = { DEVMETHOD(device_probe, arm_tmr_fdt_probe), - DEVMETHOD(device_attach, arm_tmr_attach), + DEVMETHOD(device_attach, arm_tmr_fdt_attach), { 0, 0 } }; @@ -523,7 +686,7 @@ EARLY_DRIVER_MODULE(timer, ofwbus, arm_tmr_fdt_driver, arm_tmr_fdt_devclass, static device_method_t arm_tmr_acpi_methods[] = { DEVMETHOD(device_identify, arm_tmr_acpi_identify), DEVMETHOD(device_probe, arm_tmr_acpi_probe), - DEVMETHOD(device_attach, arm_tmr_attach), + DEVMETHOD(device_attach, arm_tmr_acpi_attach), { 0, 0 } }; From nobody Mon May 15 15:45:55 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkH941GYz4Blp3; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkH81PTLz3JBB; Mon, 15 May 2023 15:45:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O0agQZQ4wNDfb+itkftCN2QHDc82SN0YvSJOHpfloXw=; b=GTSfM+wnBRloQ9oLFl6mIDWlGW0LMBEojQfT/3GVgPXd/7M7Az9cbIBfPiUJytVjdpOgcq Im2U8WmULRrAxk5h3nSY7m+8SAGB1yvJE1zxf9RnkmauH4UcbDUdBpHXgASva+pNGMhTx8 oD4FdsoTZzck/mkGt2QJZDUoxxvrA+nHiNhS0cBqQ4t/e0T52N8JL2Jpn5PZ1v476w/Xsi YLNVxe37bJcmKT5fQ+pqam0s/5yYZIe6YdMf/a3q4seBiHGLEq4/a8Tz5EZhVUcfZaLFUF htAjGB5V1zMDLIeOg/v8j2QvKtC5lGzycUmId/iHWqYF+F/t/UbRvrXMNuvYXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O0agQZQ4wNDfb+itkftCN2QHDc82SN0YvSJOHpfloXw=; b=bCgI91s5vYcctpY/Ob4982yup4BmW3/UfDKvMBRKmljsDM8jtdHYixMwvnv5kVasHWBp7F GPWbNm7VuHWWBouZ29Lljnv4c0qb+DoPwEDlfQq8koHJGV7JjyUnk/i8dX3jOlrKIeEWZy +oI1i1vUSsRr39UdSJwhIHbEhKkCfvFjM+s5YN9Cenl7DHkoniXmB/D4Zd0hXYBez2dA+i Uhepqcoqbjb02HuXcpZ8yx5eO1LTqPfb0JtLs7nwceUGzI6gj2H/7TJZZ+G4K0A2z1GqZC Sb/o0yYT125X+qti6uTbkiv9g35tr6gwsv9lUFcpg3uGFiRe+Pe+vw+y+VC55Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165556; a=rsa-sha256; cv=none; b=pO8g2ACGIMxYcfYkUZY2OGF0OTI4UVUtuwK1A1nIyZ2YkVZniBr5TCG64+LALQk+eSaq6L Qj03O/46l0RM0zaOnnSspx0IzXY5+HmKNl5cCxbSqENon6T/pZEn8c2TytOF8hHMkKmCmo Tjf/bcCKMry7dpgw+4RxJ5CxrBhaz1zfdQL/UJRVSht8SeX8fVhV5PpyCLK34l5jnRm5W2 M7OtBmPL112S7xGiKZRb49/3aCoNYox967d9K7gnVc2KF3RzJOt1OZvhsomcFas+1Celxx 5hiqsY5MrFeHQhC38bVtWeebviPM3T37x8smObvHXuk+Z1GU1J7AoanB24oOug== 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 4QKkH80W1Vzm53; Mon, 15 May 2023 15:45:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjteA073392; Mon, 15 May 2023 15:45:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjtWI073391; Mon, 15 May 2023 15:45:55 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:55 GMT Message-Id: <202305151545.34FFjtWI073391@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 21ef40aea1d3 - stable/13 - Always enable the virtual timer for userspace List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 21ef40aea1d312910163a25a890c679814936c11 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=21ef40aea1d312910163a25a890c679814936c11 commit 21ef40aea1d312910163a25a890c679814936c11 Author: Andrew Turner AuthorDate: 2023-03-10 12:43:59 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 07:59:43 +0000 Always enable the virtual timer for userspace We always have it, some languages assume it's present, e.g. go before 1.20. Enable it by default on arm and arm64. PR: 269070 Reviewed by: kevans Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39059 (cherry picked from commit 93d574ea957decec1c95dea9bfa8bc72457cc60d) --- sys/arm/arm/generic_timer.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index cba354909100..e0ec6281e402 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -266,13 +266,12 @@ setup_user_access(void *arg __unused) cntkctl = get_el1(cntkctl); cntkctl &= ~(GT_CNTKCTL_PL0PTEN | GT_CNTKCTL_PL0VTEN | - GT_CNTKCTL_EVNTEN); + GT_CNTKCTL_EVNTEN | GT_CNTKCTL_PL0PCTEN); + /* Always enable the virtual timer */ + cntkctl |= GT_CNTKCTL_PL0VCTEN; + /* Enable the physical timer if supported */ if (arm_tmr_sc->physical) { cntkctl |= GT_CNTKCTL_PL0PCTEN; - cntkctl &= ~GT_CNTKCTL_PL0VCTEN; - } else { - cntkctl |= GT_CNTKCTL_PL0VCTEN; - cntkctl &= ~GT_CNTKCTL_PL0PCTEN; } set_el1(cntkctl, cntkctl); isb(); From nobody Mon May 15 15:45:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHB0j44z4BlmV; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkH92Jltz3JKT; Mon, 15 May 2023 15:45:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IdGAT/bOng3ZA8SvVJxFa75ORGVGiohLOR5/qbjjiU0=; b=qFo2f5D5ktejfKCseC7bdCkSyp4A6Q17p3q23nW/TqKkG5V8AUxcVmPyvIbAQQQEZ4opA9 byRREu/fUOY7J+nLbWF0wC5e+YafSIHcEoReRyJ+ehca3I2XFlmgh+oXrASLRs8Q+Tu4RV IaxlOb7tOLeqcaJQTYfFtEFJ7ZNRxzsiO0/HOXzsXl01J4hhirYTe4tLKsL8rSxp7QXXFl HRnEuTcZ6PdEriCa6t1y4nNw0qwwKYnBP+GXjTzqpc3UwYNZUMothbmo6i+anM4IeY8Ber yvQ5UtMaKPVvtvO0MxIYCH4KFuX3fdFE9AVDxfExWR4tgVyBBVAzHE/VenBiWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IdGAT/bOng3ZA8SvVJxFa75ORGVGiohLOR5/qbjjiU0=; b=f9GnOgsEXSn0ZHAv9hzM9vYm6r0A133lcXBDkM5310jh7VC6C13VW1H9kdOj2j6WjfR1rf 9i6PXbvsDLxu7u7ny1I5Ix/6wppxJaaKYl8m2kXCUoKo1Lt3DFuGcXUPcNPJn4f2Q2CkCU uVFc1jU9zCC2iFg+oiLpepWUY8XEpkqdPAlb/zwcI8rQBRxA/B7pfziVzYR1OwPcHUW9PX wlQnjURJ94V8NxqA//xt9r5i+ND3WcmTQQ+aMqosR2CqtEkKICyig8XyIPv9IVRCaaSkSb qdFy87QMtOCK3hQAMs5RqsCqbYgnvVWZWx3jkHzggN4d1TBzhLn53Q0X9zOpLw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165557; a=rsa-sha256; cv=none; b=bdM/vVCTmPQpCoQe/NtHAl2lDVShhu4n1BdKn5VRqQ3DtdCf4sL8saOw53+jNs6BR6/bKl 5eVY+x9aJBUsy8JFSHN/FJHRov8DFSXqCfgxMGfVXF+LpJfGfPcgH+kwIezdpM5Mn0bLcj iCoK1l44jDXrISljqDiM7riaUAwe1VEoOhGT8o+0M3rgIjkwJwLwUTHvN3kXkJRR3DLzDm GU6lvkFMoyEsm/AlEBSss771qYyZMIvsg45ZKBaTMlnAqqtUROA6ESb0RsakGnyWK5B28D F1LKHy9TuvhZT39tfj9ZjqrtwuOKXyWLUVZxDRaX8IEw+7Spw5QrFOLLnhP+fg== 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 4QKkH91QGWzmJ6; Mon, 15 May 2023 15:45:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjvt2073411; Mon, 15 May 2023 15:45:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjvWn073410; Mon, 15 May 2023 15:45:57 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:57 GMT Message-Id: <202305151545.34FFjvWn073410@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 79dd9ddb1d8c - stable/13 - Keep per-timer interrupt data together List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 79dd9ddb1d8c51c2de097d76875c5009668fa788 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=79dd9ddb1d8c51c2de097d76875c5009668fa788 commit 79dd9ddb1d8c51c2de097d76875c5009668fa788 Author: Andrew Turner AuthorDate: 2023-03-14 09:27:23 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 07:59:43 +0000 Keep per-timer interrupt data together Eliminate a redundant resource array allow possible use by bhyve later. Reviewed by: kevans Sponsored by: Arm Ltd Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37424 (cherry picked from commit b71ef90ec28fdb731733afde495ac74ae59d6196) --- sys/arm/arm/generic_timer.c | 118 +++++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 55 deletions(-) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index e0ec6281e402..01ec46977a4e 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -93,9 +93,16 @@ __FBSDID("$FreeBSD$"); #define GT_CNTKCTL_PL0VCTEN (1 << 1) /* PL0 CNTVCT and CNTFRQ access */ #define GT_CNTKCTL_PL0PCTEN (1 << 0) /* PL0 CNTPCT and CNTFRQ access */ +struct arm_tmr_softc; + +struct arm_tmr_irq { + struct resource *res; + void *ihl; + int rid; +}; + struct arm_tmr_softc { - struct resource *res[GT_IRQ_COUNT]; - void *ihl[GT_IRQ_COUNT]; + struct arm_tmr_irq irqs[GT_IRQ_COUNT]; uint64_t (*get_cntxct)(bool); uint32_t clkfreq; struct eventtimer et; @@ -104,16 +111,6 @@ struct arm_tmr_softc { static struct arm_tmr_softc *arm_tmr_sc = NULL; -#ifdef DEV_ACPI -static struct resource_spec timer_acpi_spec[] = { - { SYS_RES_IRQ, GT_PHYS_SECURE, RF_ACTIVE | RF_OPTIONAL }, - { SYS_RES_IRQ, GT_PHYS_NONSECURE, RF_ACTIVE }, - { SYS_RES_IRQ, GT_VIRT, RF_ACTIVE }, - { SYS_RES_IRQ, GT_HYP_PHYS, RF_ACTIVE | RF_OPTIONAL }, - { -1, 0 } -}; -#endif - static const struct arm_tmr_irq_defs { int idx; const char *name; @@ -356,6 +353,29 @@ arm_tmr_intr(void *arg) return (FILTER_HANDLED); } +static int +arm_tmr_attach_irq(device_t dev, struct arm_tmr_softc *sc, + const struct arm_tmr_irq_defs *irq_def, int rid, int flags) +{ + sc->irqs[irq_def->idx].res = bus_alloc_resource_any(dev, SYS_RES_IRQ, + &rid, flags); + if (sc->irqs[irq_def->idx].res == NULL) { + if (bootverbose || (flags & RF_OPTIONAL) == 0) { + device_printf(dev, + "could not allocate irq for %s interrupt '%s'\n", + (flags & RF_OPTIONAL) != 0 ? "optional" : + "required", irq_def->name); + } + + if ((flags & RF_OPTIONAL) == 0) + return (ENXIO); + } else if (bootverbose) { + device_printf(dev, "allocated irq for '%s'\n", irq_def->name); + } + + return (0); +} + #ifdef FDT static int arm_tmr_fdt_probe(device_t dev) @@ -433,42 +453,18 @@ arm_tmr_fdt_attach(device_t dev) flags &= ~RF_OPTIONAL; } - sc->res[irq_def->idx] = bus_alloc_resource_any(dev, - SYS_RES_IRQ, &rid, flags); - - if (sc->res[irq_def->idx] == NULL) { - device_printf(dev, - "could not allocate irq for %s interrupt '%s'\n", - (flags & RF_OPTIONAL) != 0 ? "optional" : - "required", irq_def->name); - - if ((flags & RF_OPTIONAL) == 0) { - error = ENXIO; - goto out; - } - - continue; - } - - if (bootverbose) { - device_printf(dev, - "allocated irq for '%s'\n", irq_def->name); - } + error = arm_tmr_attach_irq(dev, sc, irq_def, rid, flags); + if (error != 0) + goto out; } error = arm_tmr_attach(dev); out: if (error != 0) { for (i = 0; i < GT_IRQ_COUNT; i++) { - if (sc->res[i] != NULL) { - /* - * rid may not match the index into sc->res in - * a number of cases; e.g., optional sec-phys or - * interrupt-names specifying them in a - * different order than expected. - */ + if (sc->irqs[i].res != NULL) { bus_release_resource(dev, SYS_RES_IRQ, - rman_get_rid(sc->res[i]), sc->res[i]); + sc->irqs[i].rid, sc->irqs[i].res); } } } @@ -532,18 +528,29 @@ arm_tmr_acpi_probe(device_t dev) static int arm_tmr_acpi_attach(device_t dev) { + const struct arm_tmr_irq_defs *irq_def; struct arm_tmr_softc *sc; int error; sc = device_get_softc(dev); - if (bus_alloc_resources(dev, timer_acpi_spec, sc->res)) { - device_printf(dev, "could not allocate resources\n"); - return (ENXIO); + for (int i = 0; i < nitems(arm_tmr_irq_defs); i++) { + irq_def = &arm_tmr_irq_defs[i]; + error = arm_tmr_attach_irq(dev, sc, irq_def, irq_def->idx, + irq_def->flags); + if (error != 0) + goto out; } error = arm_tmr_attach(dev); - if (error != 0) - bus_release_resources(dev, timer_acpi_spec, sc->res); +out: + if (error != 0) { + for (int i = 0; i < GT_IRQ_COUNT; i++) { + if (sc->irqs[i].res != NULL) { + bus_release_resource(dev, SYS_RES_IRQ, + sc->irqs[i].rid, sc->irqs[i].res); + } + } + } return (error); } #endif @@ -597,13 +604,13 @@ arm_tmr_attach(device_t dev) for (i = 0; i < nitems(arm_tmr_irq_defs); i++) { irq_def = &arm_tmr_irq_defs[i]; - MPASS(sc->res[irq_def->idx] != NULL || + MPASS(sc->irqs[irq_def->idx].res != NULL || (irq_def->flags & RF_OPTIONAL) != 0); } #ifdef __aarch64__ /* Use the virtual timer if we have one. */ - if (sc->res[GT_VIRT] != NULL) { + if (sc->irqs[GT_VIRT].res != NULL) { sc->physical = false; first_timer = GT_VIRT; last_timer = GT_VIRT; @@ -621,24 +628,25 @@ arm_tmr_attach(device_t dev) /* Setup secure, non-secure and virtual IRQs handler */ for (i = first_timer; i <= last_timer; i++) { /* If we do not have the interrupt, skip it. */ - if (sc->res[i] == NULL) + if (sc->irqs[i].res == NULL) continue; - error = bus_setup_intr(dev, sc->res[i], INTR_TYPE_CLK, - arm_tmr_intr, NULL, sc, &sc->ihl[i]); + error = bus_setup_intr(dev, sc->irqs[i].res, INTR_TYPE_CLK, + arm_tmr_intr, NULL, sc, &sc->irqs[i].ihl); if (error) { device_printf(dev, "Unable to alloc int resource.\n"); for (int j = first_timer; j < i; j++) - bus_teardown_intr(dev, sc->res[j], &sc->ihl[j]); + bus_teardown_intr(dev, sc->irqs[j].res, + &sc->irqs[j].ihl); return (ENXIO); } } /* Disable the virtual timer until we are ready */ - if (sc->res[GT_VIRT] != NULL) + if (sc->irqs[GT_VIRT].res != NULL) arm_tmr_disable(false); /* And the physical */ - if ((sc->res[GT_PHYS_SECURE] != NULL || - sc->res[GT_PHYS_NONSECURE] != NULL) && HAS_PHYS) + if ((sc->irqs[GT_PHYS_SECURE].res != NULL || + sc->irqs[GT_PHYS_NONSECURE].res != NULL) && HAS_PHYS) arm_tmr_disable(true); arm_tmr_timecount.tc_frequency = sc->clkfreq; From nobody Mon May 15 15:45:58 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHB528Fz4BlZS; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkHB3DSZz3JMm; Mon, 15 May 2023 15:45:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CCLLWHQtJ96THwH4hJ+Mkyn20OyeYrLO6jC6TJGACiw=; b=jGGRx4d2Q1LjM/NB184BdNLXvHe2Ko3FnEJ613hSvfb4x7mVJlPFycwxsSZfi8J7RnqPyF AcUuugMbUGRK+iXr0Am2yUJBizxFHTvSnGq+AU11gzeEgn2WvZ/jvGEfh0m46BYoy4Zn5j 4EKp3k+vXxPf955fV5BBlaC3Xpg0RAVQz0xHL7MbanV+q2my2KqFEDp1x/FaJDiYgT9dM1 CR7XvOlq174uYWCIBb88m4L3DllR1bM75t8qQGJFB9cZ4q68lASZ8HKVjVaywzLxGwt9Z2 0H7ekWcMcpEtbCJOxw5aOKeOr/o1wA55rNM2klH9uvQXeucuztb+pEegMybF3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165558; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CCLLWHQtJ96THwH4hJ+Mkyn20OyeYrLO6jC6TJGACiw=; b=PKoLFfKQxu9xi+EiK201QJz8o8EE4aSKJdW0w1bTM1mlZ3KDTcPgpsmQguVZcdQxE7+/2G gNMShH7RMRUGLMwgtGS24hjB8l3SfRdXo+X2/KTIxrpeNefHyUu6TemMg+hT9Y/AUlxmUn atLuJItKgqs54kB7isCTPEMLA//A49rNfWeqZkw0b4UVx6M4pvURx6o1jUFzUsxhOXD0Ar XUpHeomhTEIsJnWXfYHgmNT9z3jlLWRzjh7VoPyV6PGkksr7pA9QuNRb8I4ZwrG502M0xN JimoyXhW0uG4OkoY7MzzIp2UEkVcC91RXSFJElNvEMC8jwsAgszAdT5nunxjmA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165558; a=rsa-sha256; cv=none; b=rqNmkKJ77yfTwoxA8cARX35Iho7kzkcRI/bp+lxbhayI1U5r7rDfZ/sLzXRF9HnOl2QKHr TsiPbIs+K4bpekX476Wng6kqBJ/X1n/sx2ja+oeb8NebNGpiEmu5p6yBDb9hchxbV3h0/I yEgLecQOcUCH+MKIHR6VDXuYthZLNoQKZ89v4d0N+RY/v5DY2LdA5RdrIxf0mcLflCN8oA ZB4VW4gmK4zK54JLhVS0EpBm02RuXJ1s6vKW42W15G0RGM9z1JjIVvATnRWEUT0kIIER3i opeZU6MIQ75Tq3fBZcv1WnAvJZH1VizFXUc6Aa7Rkq3mUZwZOUNu30cPZlq5EQ== 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 4QKkHB2KMBzmF0; Mon, 15 May 2023 15:45:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjw1B073430; Mon, 15 May 2023 15:45:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjwj3073429; Mon, 15 May 2023 15:45:58 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:58 GMT Message-Id: <202305151545.34FFjwj3073429@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 289967bbad82 - stable/13 - Stop using the rid as an index in the arm timer List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 289967bbad82442be4578ed148462b21f10e524c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=289967bbad82442be4578ed148462b21f10e524c commit 289967bbad82442be4578ed148462b21f10e524c Author: Andrew Turner AuthorDate: 2023-03-15 13:35:04 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 10:53:59 +0000 Stop using the rid as an index in the arm timer The order of the interrupt array doesn't matter. Store the described interrupts at the start of the array to simplify iterating over them. Reviewed by: imp, kevans Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39094 (cherry picked from commit 5c4bd8756fbc23a48ddd8976df0b8429311fba83) --- sys/arm/arm/generic_timer.c | 61 ++++++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/sys/arm/arm/generic_timer.c b/sys/arm/arm/generic_timer.c index 01ec46977a4e..d84ae3841869 100644 --- a/sys/arm/arm/generic_timer.c +++ b/sys/arm/arm/generic_timer.c @@ -99,12 +99,14 @@ struct arm_tmr_irq { struct resource *res; void *ihl; int rid; + int idx; }; struct arm_tmr_softc { struct arm_tmr_irq irqs[GT_IRQ_COUNT]; uint64_t (*get_cntxct)(bool); uint32_t clkfreq; + int irq_count; struct eventtimer et; bool physical; }; @@ -357,9 +359,12 @@ static int arm_tmr_attach_irq(device_t dev, struct arm_tmr_softc *sc, const struct arm_tmr_irq_defs *irq_def, int rid, int flags) { - sc->irqs[irq_def->idx].res = bus_alloc_resource_any(dev, SYS_RES_IRQ, + struct arm_tmr_irq *irq; + + irq = &sc->irqs[sc->irq_count]; + irq->res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, flags); - if (sc->irqs[irq_def->idx].res == NULL) { + if (irq->res == NULL) { if (bootverbose || (flags & RF_OPTIONAL) == 0) { device_printf(dev, "could not allocate irq for %s interrupt '%s'\n", @@ -369,8 +374,13 @@ arm_tmr_attach_irq(device_t dev, struct arm_tmr_softc *sc, if ((flags & RF_OPTIONAL) == 0) return (ENXIO); - } else if (bootverbose) { - device_printf(dev, "allocated irq for '%s'\n", irq_def->name); + } else { + if (bootverbose) + device_printf(dev, "allocated irq for '%s'\n", + irq_def->name); + irq->rid = rid; + irq->idx = irq_def->idx; + sc->irq_count++; } return (0); @@ -461,11 +471,9 @@ arm_tmr_fdt_attach(device_t dev) error = arm_tmr_attach(dev); out: if (error != 0) { - for (i = 0; i < GT_IRQ_COUNT; i++) { - if (sc->irqs[i].res != NULL) { - bus_release_resource(dev, SYS_RES_IRQ, - sc->irqs[i].rid, sc->irqs[i].res); - } + for (i = 0; i < sc->irq_count; i++) { + bus_release_resource(dev, SYS_RES_IRQ, sc->irqs[i].rid, + sc->irqs[i].res); } } @@ -544,11 +552,9 @@ arm_tmr_acpi_attach(device_t dev) error = arm_tmr_attach(dev); out: if (error != 0) { - for (int i = 0; i < GT_IRQ_COUNT; i++) { - if (sc->irqs[i].res != NULL) { - bus_release_resource(dev, SYS_RES_IRQ, - sc->irqs[i].rid, sc->irqs[i].res); - } + for (int i = 0; i < sc->irq_count; i++) { + bus_release_resource(dev, SYS_RES_IRQ, + sc->irqs[i].rid, sc->irqs[i].res); } } return (error); @@ -559,7 +565,9 @@ static int arm_tmr_attach(device_t dev) { struct arm_tmr_softc *sc; +#ifdef INVARIANTS const struct arm_tmr_irq_defs *irq_def; +#endif #ifdef FDT phandle_t node; pcell_t clock; @@ -600,13 +608,25 @@ arm_tmr_attach(device_t dev) return (ENXIO); } +#ifdef INVARIANTS /* Confirm that non-optional irqs were allocated before coming in. */ for (i = 0; i < nitems(arm_tmr_irq_defs); i++) { + int j; + irq_def = &arm_tmr_irq_defs[i]; - MPASS(sc->irqs[irq_def->idx].res != NULL || - (irq_def->flags & RF_OPTIONAL) != 0); + /* Skip optional interrupts */ + if ((irq_def->flags & RF_OPTIONAL) != 0) + continue; + + for (j = 0; j < sc->irq_count; j++) { + if (sc->irqs[j].idx == irq_def->idx) + break; + } + KASSERT(j < sc->irq_count, ("%s: Missing required interrupt %s", + __func__, irq_def->name)); } +#endif #ifdef __aarch64__ /* Use the virtual timer if we have one. */ @@ -626,15 +646,16 @@ arm_tmr_attach(device_t dev) arm_tmr_sc = sc; /* Setup secure, non-secure and virtual IRQs handler */ - for (i = first_timer; i <= last_timer; i++) { - /* If we do not have the interrupt, skip it. */ - if (sc->irqs[i].res == NULL) + for (i = 0; i < sc->irq_count; i++) { + /* Only enable IRQs on timers we expect to use */ + if (sc->irqs[i].idx < first_timer || + sc->irqs[i].idx > last_timer) continue; error = bus_setup_intr(dev, sc->irqs[i].res, INTR_TYPE_CLK, arm_tmr_intr, NULL, sc, &sc->irqs[i].ihl); if (error) { device_printf(dev, "Unable to alloc int resource.\n"); - for (int j = first_timer; j < i; j++) + for (int j = 0; j < i; j++) bus_teardown_intr(dev, sc->irqs[j].res, &sc->irqs[j].ihl); return (ENXIO); From nobody Mon May 15 15:45:59 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHC5mb0z4BlhZ; Mon, 15 May 2023 15:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkHC47n8z3JBm; Mon, 15 May 2023 15:45:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165559; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K44qL9TvTMp0/PikE05RtTbeke9agd7objFsvPbG6OQ=; b=DEj4mcpa8ARzopf5MqH64CcYX2pvAdhEusN/uz73/en4+WEuf3dmaJSrtzKBFby3qP4Sig t5fjksuNNrDrg3L3CqQUL11RW8f14/zj2oQjZhBFNP/O0qUm5Z+dPH2hc/cJF9iyrSUzPl mcUdROnDRzr5w4oG6DLpg6FeaotiEHvpaRxNlm35gGtVe7KGZsbm0e6C+DCwaoPwr6sDIb TGuqiq00CJ3cSxt7w/g2rgdr8gv9O058bkDt4O9WlOSoQPpp2Z9d5iypFRt2Hj8SZspQ/P p3fxLyqrenst8BZI5lbgpyhXywvyQOQFfeNNOcvLW3TxX4QI65+OS9d2ZX+RAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165559; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K44qL9TvTMp0/PikE05RtTbeke9agd7objFsvPbG6OQ=; b=bi+8Z/HPzKtctEY3WxzLi81diTJRunOvSDYodMilfNcuvN0uJNHr28lc+GL8CpavSNlN2p msL3JUsLFr7UZl9R6JaIJZwpcbfNJ0MMrkDjzFl++dkExTiCjdbZT4TGu8jHVaKmNB3ULS RSOzYuPba5XcHcTELn/G0sj+4z+xM7ZI3QcabN+wqBePabDMpVVcAXGVwm5+JyNdbau2O3 0YKxvCESs86VCfGUEYcCY6hw3+Xu8pF8omCcU7Tm3peubUb/h5PHEGEePTN0O74JD/xzm2 2jZ0BDzcTl+4j1QcXuiY48tcgv7aETXS9N7vAAAVkiXo265TtGMaQdDTgW6Kqw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165559; a=rsa-sha256; cv=none; b=T/W+aY5V+8yS91ITiF42sGjKvMw+2/WshKwuuo/EeySPmZBnq9uZhHAnOm6VREl41OztTH 1eeDU7/8tDWmZ9s+IEB0PlAubQIb9fRtBJAh25RCfHTWdWVK2QsY42tXlwLRKSyKrbwrmF KwtfaLWcSc/6fZ+64EuGnspxg4WE9ph7iAvAfkLh1l0NXDwD3HSV1/f5TTJDDg7XSuVMxe P9VQCcv5uLu5AVdrUeKklqhgDGlEMLMvqju36pLOBVs3+dXz/MpsKBXJYhfSCT7HvoNBpF p3vFrKWwBZZD2N8GVMoh/ejs12RdL5dZw5OtnF+vQaKciG/tY4gAhVXbe9xwug== 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 4QKkHC3Fv0zmTc; Mon, 15 May 2023 15:45:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFjxbr073454; Mon, 15 May 2023 15:45:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFjxh8073453; Mon, 15 May 2023 15:45:59 GMT (envelope-from git) Date: Mon, 15 May 2023 15:45:59 GMT Message-Id: <202305151545.34FFjxh8073453@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: bd011976c6cf - stable/13 - Always read the VFP regs in the arm64 fill_fpregs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: bd011976c6cf769baa04c55e48d9cda8a2ba60be Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=bd011976c6cf769baa04c55e48d9cda8a2ba60be commit bd011976c6cf769baa04c55e48d9cda8a2ba60be Author: Andrew Turner AuthorDate: 2023-01-18 09:30:20 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 10:54:21 +0000 Always read the VFP regs in the arm64 fill_fpregs The PCB_FP_STARTED is used to indicate that the current VFP context has been used since either 1. the start of the thread, or 2. exiting a kernel FP context. When case 2 was added to the kernel this could cause incorrect results to be returned when a thread exits the kernel FP context and fill_fpregs is called before it has restored the VFP state, e.g. by trappin on a userspace VFP instruction. In both of the cases the base save area is still valid so reduce the use of the PCB_FP_STARTED flag check to help decide if we need to store the current threads VFP state. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D37994 (cherry picked from commit 95dd6974b591ce76bf8d29adcc0dd01b4b281ffd) --- sys/arm64/arm64/exec_machdep.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sys/arm64/arm64/exec_machdep.c b/sys/arm64/arm64/exec_machdep.c index cc589731ae6a..a55048461682 100644 --- a/sys/arm64/arm64/exec_machdep.c +++ b/sys/arm64/arm64/exec_machdep.c @@ -147,16 +147,17 @@ fill_fpregs(struct thread *td, struct fpreg *regs) */ if (td == curthread) vfp_save_state(td, pcb); + } - KASSERT(pcb->pcb_fpusaved == &pcb->pcb_fpustate, - ("Called fill_fpregs while the kernel is using the VFP")); - memcpy(regs->fp_q, pcb->pcb_fpustate.vfp_regs, - sizeof(regs->fp_q)); - regs->fp_cr = pcb->pcb_fpustate.vfp_fpcr; - regs->fp_sr = pcb->pcb_fpustate.vfp_fpsr; - } else + KASSERT(pcb->pcb_fpusaved == &pcb->pcb_fpustate, + ("Called fill_fpregs while the kernel is using the VFP")); + memcpy(regs->fp_q, pcb->pcb_fpustate.vfp_regs, + sizeof(regs->fp_q)); + regs->fp_cr = pcb->pcb_fpustate.vfp_fpcr; + regs->fp_sr = pcb->pcb_fpustate.vfp_fpsr; +#else + memset(regs, 0, sizeof(*regs)); #endif - memset(regs, 0, sizeof(*regs)); return (0); } From nobody Mon May 15 15:46:00 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHD61Wbz4Blmn; Mon, 15 May 2023 15:46: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkHD5Fr7z3JLX; Mon, 15 May 2023 15:46:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k19arvvDpT3ODoLeOH272SSfwmX+F5BUXyhSlr+WmJY=; b=YcbNKT31lONxoWoczKgD6MM5riO0jcmrygtuGvXSe5QxEOnI09PclXwAhSP+3btUo6HxoV agW4X0v8/kjR3odNrzIa5y9r+kKz3Zz5ipzsT0rWjp3KX6Rtx/MIWV6vFWCuExdZL9OcVo 230/YMmUGMxPF0cANTXEWc+DMfywpj36BhEAc2U2endd23LiJsafTXiQVumvrwNGfA4uyH XbMFzRsWyJvZK1fZrxgAs4zNTI1LJVC2May1LlNByrM3oL+p+5gYJJJE9+C+vATsLnzDp4 E8PSlgJgwkcwLlW3S0j4rYE6UtdJ3gasRkBihx4lht33hPCu76UWN7ESOwnYdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165560; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k19arvvDpT3ODoLeOH272SSfwmX+F5BUXyhSlr+WmJY=; b=AkshlmQ3Cyz7pUV9dSSoX1jJdJ5YhtGW8xAM6fFBGNCNyVZIT0/LtZ/MFd8hn1yBVmgV2m iZBIwtbyJy98O23jyWavFX/O5ihW5bi/vDTRZdiZ92GIFjisInWkFpkV1vYbUuLTeVqRId uJgiIlP06+YWA83AzuDiAhcOyklPct4z3DxjT2aswGts4wvjzqPnK5GRKjDw8K7z8hWs6G 4p4jhNR+qgprdopvW67grJpoUkDJcC/F1PYUZ77vGXcU41PJIXBVLiOUMSVyLVC2fIZMw2 F+TAW4fbn+NWvsZJkty73G5fvmksz+ClDhi+yLw0xJvUQJtQ8iN5caVeqglBVw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165560; a=rsa-sha256; cv=none; b=uGYbSsmv2NzJS11nR7Uzab3I+cpO1geK5LSAeEONX+OC4Ek5owkMXZAScpjZieqKXoMPRf 69Tir0Jb9+x+7aGo3cX1GZyGJaAkmGvH3eBZohoq65Hw+KdX/8ozwXSiJHOzw88MVZIQxs zxS9WYbAk9aXX+EDp0zDOBNp/9by+eezb0Y2nbBQLakpc4nJbrvhfM32LwvunWjTLwIqvG uR0hJOAJpgYybhPvy1QRSTM5BDWCdnggYcJ/ff1AXkZWi18IEkdBf2CuFkmoiIHsgjJ99y 6K0qN5VF18ly7CtTjWXPARQxWt6dTpUJrZH5aDeRE36TccVAUzMN1a7aD7uxFg== 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 4QKkHD49kNzmJ7; Mon, 15 May 2023 15:46:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFk0l6073474; Mon, 15 May 2023 15:46:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFk02F073473; Mon, 15 May 2023 15:46:00 GMT (envelope-from git) Date: Mon, 15 May 2023 15:46:00 GMT Message-Id: <202305151546.34FFk02F073473@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 622875663c82 - stable/13 - Always store the arm64 VFP context List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 622875663c82c4493da3cd27870f0a3dcb21c4fb Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=622875663c82c4493da3cd27870f0a3dcb21c4fb commit 622875663c82c4493da3cd27870f0a3dcb21c4fb Author: Andrew Turner AuthorDate: 2023-01-18 09:30:32 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 10:54:40 +0000 Always store the arm64 VFP context If a thread enters a kernel FP context the PCB_FP_STARTED may be unset when calling get_fpcontext even if the VFP unit has been used by the current thread. Reduce the use of this flag to just decide when to store the VFP state. While here add an assert to check the assumption that the passed in thread is the current thread and remove the unneeded critical section. The latter is unneeded as the only place we would need it is in vfp_save_state and this already has a critical section when needed. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D37998 (cherry picked from commit 61f5462fde6c38c1f4f5c34a05fab506b6869375) --- sys/arm64/arm64/exec_machdep.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/sys/arm64/arm64/exec_machdep.c b/sys/arm64/arm64/exec_machdep.c index a55048461682..fab0ee2ba993 100644 --- a/sys/arm64/arm64/exec_machdep.c +++ b/sys/arm64/arm64/exec_machdep.c @@ -482,30 +482,27 @@ get_fpcontext(struct thread *td, mcontext_t *mcp) #ifdef VFP struct pcb *curpcb; - critical_enter(); + MPASS(td == curthread); curpcb = curthread->td_pcb; - if ((curpcb->pcb_fpflags & PCB_FP_STARTED) != 0) { /* * If we have just been running VFP instructions we will * need to save the state to memcpy it below. */ vfp_save_state(td, curpcb); - - KASSERT(curpcb->pcb_fpusaved == &curpcb->pcb_fpustate, - ("Called get_fpcontext while the kernel is using the VFP")); - KASSERT((curpcb->pcb_fpflags & ~PCB_FP_USERMASK) == 0, - ("Non-userspace FPU flags set in get_fpcontext")); - memcpy(mcp->mc_fpregs.fp_q, curpcb->pcb_fpustate.vfp_regs, - sizeof(mcp->mc_fpregs.fp_q)); - mcp->mc_fpregs.fp_cr = curpcb->pcb_fpustate.vfp_fpcr; - mcp->mc_fpregs.fp_sr = curpcb->pcb_fpustate.vfp_fpsr; - mcp->mc_fpregs.fp_flags = curpcb->pcb_fpflags; - mcp->mc_flags |= _MC_FP_VALID; } - critical_exit(); + KASSERT(curpcb->pcb_fpusaved == &curpcb->pcb_fpustate, + ("Called get_fpcontext while the kernel is using the VFP")); + KASSERT((curpcb->pcb_fpflags & ~PCB_FP_USERMASK) == 0, + ("Non-userspace FPU flags set in get_fpcontext")); + memcpy(mcp->mc_fpregs.fp_q, curpcb->pcb_fpustate.vfp_regs, + sizeof(mcp->mc_fpregs.fp_q)); + mcp->mc_fpregs.fp_cr = curpcb->pcb_fpustate.vfp_fpcr; + mcp->mc_fpregs.fp_sr = curpcb->pcb_fpustate.vfp_fpsr; + mcp->mc_fpregs.fp_flags = curpcb->pcb_fpflags; + mcp->mc_flags |= _MC_FP_VALID; #endif } From nobody Mon May 15 15:46:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHF6x5jz4Blmt; Mon, 15 May 2023 15:46: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkHF69QPz3JRh; Mon, 15 May 2023 15:46:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/AOQ188GcI+w2eCSR+xD14lbWORGk2T4K2jb7S6zvF8=; b=GYQaDx5XzIQ7Oikks/zB5151HqrwIJ1bQF93HpPBlr4p6IRvorw/hyFgVI46B4NesCMvNr kQ1oVHY8cp56GcfNlRU8eSIBX34c8vu3eDmZQzj38FqIfgU9pLW33dDLQH6FWUz6VISOS1 22mKVnR5Ki/EjcYegOx1MIWnoccEwPrYtMop08P0tM1XOFuIfW3z2tc1ZUgvqSWoj93Be3 M4NdVo8g4cxsiInO1MZ0LZiK1jEhWMQFdQOaLtiM4Cwg6suzp26Fw14rUrgcLBVzyyTGt1 gOfK6XlNc1/NGzZmcyw47ZjyrQxu6LEH53+NtLabx3ZuVWtDRdIxX9YH3uMv2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/AOQ188GcI+w2eCSR+xD14lbWORGk2T4K2jb7S6zvF8=; b=CKxqTr+/zZpHYYmp+b24ZceStqEJLk1ITkbku5r5VRGiUGF/xHI3SVxZ4Z/sjkmquZtsVj ugSwnjNfjbHIo7HN+N//51uSo+xXB7iZC1+bK59b6Kbylm2YRPVoB5dPfA9+d3//87vSEL J7WHrAhLf31PJqMICD+qUzMKLa+HGbNmFEA4FGjN5NHvaFHhT0hyFAfCTGYu90wK3/2BYx 3iY8T+hlRk8JE9dg0WrT77f8JYJYNPw0YPI2t08Om7K0b06YyqDKOtfsQIrSAB3ZqeI5nt nyoT7n1xBhqZg6uvs+LH+UlwGEQbiN8T1CXScJCZ0Vaw7WADh3JrAPIQeqKU5Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165561; a=rsa-sha256; cv=none; b=A5bqrIBVEUaGZzhnTihvheum9BbWxVwW1CgzfKEVeivv/bJao/AMApOMaVCUaSHDvXUu88 dwbU0CHKc1tXLeuFE+Hls2J4w+PfXYy8oVNab16V1z+wVllPvYITBY0TuMr5zFuIZdeB+B dGRs7lRZGKvFTxWTM/CeVp/wvNDVutPwlAe1qEezAVcF+tS/7vCo6nigvVSEDTV0i2Y1FA YP0eHINvEcZd8HOnbzboBLT7K4DtQOFQtUpgSuDJTBOdLRg5Alktf1P3TXXICXiu8rwoCI mSsn3c0Ob3202oTSLzo5u/pyWtFI/ykjr+S85HuRveqM6lF4xwAHnd3+e1B5lg== 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 4QKkHF55Fkzm27; Mon, 15 May 2023 15:46:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFk10t073493; Mon, 15 May 2023 15:46:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFk1VY073492; Mon, 15 May 2023 15:46:01 GMT (envelope-from git) Date: Mon, 15 May 2023 15:46:01 GMT Message-Id: <202305151546.34FFk1VY073492@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 0ae7446ed3fa - stable/13 - Reduce an arm64 VFP critical section List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0ae7446ed3faf51ce457178f538eca04b22774d7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=0ae7446ed3faf51ce457178f538eca04b22774d7 commit 0ae7446ed3faf51ce457178f538eca04b22774d7 Author: Andrew Turner AuthorDate: 2023-01-18 09:30:36 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 10:54:57 +0000 Reduce an arm64 VFP critical section In set_fpcontext we only need a critical section around vfp_discard. The remainder of the code can run without it. While here add an assert to check the passed in thread is the current thread as the code already this. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D38000 (cherry picked from commit a85cf421d1bfec7e753bfee781355785b00d89d4) --- sys/arm64/arm64/exec_machdep.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/arm64/arm64/exec_machdep.c b/sys/arm64/arm64/exec_machdep.c index fab0ee2ba993..21435362f3e3 100644 --- a/sys/arm64/arm64/exec_machdep.c +++ b/sys/arm64/arm64/exec_machdep.c @@ -512,8 +512,7 @@ set_fpcontext(struct thread *td, mcontext_t *mcp) #ifdef VFP struct pcb *curpcb; - critical_enter(); - + MPASS(td == curthread); if ((mcp->mc_flags & _MC_FP_VALID) != 0) { curpcb = curthread->td_pcb; @@ -521,7 +520,9 @@ set_fpcontext(struct thread *td, mcontext_t *mcp) * Discard any vfp state for the current thread, we * are about to override it. */ + critical_enter(); vfp_discard(td); + critical_exit(); KASSERT(curpcb->pcb_fpusaved == &curpcb->pcb_fpustate, ("Called set_fpcontext while the kernel is using the VFP")); @@ -531,8 +532,6 @@ set_fpcontext(struct thread *td, mcontext_t *mcp) curpcb->pcb_fpustate.vfp_fpsr = mcp->mc_fpregs.fp_sr; curpcb->pcb_fpflags = mcp->mc_fpregs.fp_flags & PCB_FP_USERMASK; } - - critical_exit(); #endif } From nobody Mon May 15 15:46:02 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHH0Q6cz4Blp9; Mon, 15 May 2023 15:46: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkHG6wq7z3JSJ; Mon, 15 May 2023 15:46:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=smaGi5mvxr8jcFScXU2/WmZ9BLK6Zl+fYgakhNHCoHQ=; b=NZkZgAasI19blsi+DP3qDwQ2tlFlPMQXosTsGzvAoV5Nuqv6T8BRKMyMNxbuf+5ue49Tsl J2ELujruA/vC2Kt5zxzcp3yMLQJGrvqkw6DigXIv2bP09G0dUABVVXHNTM5n3o491gW6pD dskliOgUc9utKqN7izEULpPmvT/5uC0E4dB2xDkeuBv5nSI0KTf3J6LNcYBzkE0xj0KAdd 4JiuajPOi5glIHXGmsbjRmW2vp08SgL9fJF/WjZQvD07xEr3BueBI6fW8PXgVNIqVesF9M I2dsIM5t2bWWwwfWVWgReZcFvBTQVWSlrgiOx7vZFpQnz+8IdAmWYRu9gHAi+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165563; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=smaGi5mvxr8jcFScXU2/WmZ9BLK6Zl+fYgakhNHCoHQ=; b=SBa3+yFs7whnisc3sRgMdZfpVwjKazWIhqCaHl9UDrACnyhskJSV382AgQ7iUwBgSu8iEi jZdv1Y0nFV5+SwKD0UNnCBZu3sjiiSR5upm2+YcETeLNV2OFcUYp6sIdjOTQfgkYVZAYU3 pgn2twFnIxPOxvXOIkH5kANDR0U3i1g5HKC4W04hG0vv+16nLqUO8uAVF2N30qMjOxX8La ae8hQE71NRSkmXwS574Ty5kNqUa3CzCQiXBsT4hT0aAFGUuV8MYLMR4hfI30ffcLzhtx0R mttzw51/qaOV+I97phO8h64qMR2TqF1fCRnwv19vLuYpP0vOSpoFPuv72yCK3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165563; a=rsa-sha256; cv=none; b=Ij9643WBRpw7p98HaBEODdNG69xDezw0cO9MZgrWHnmcM+qvYxCTr6ChgW1aCVmwPY2Zll PdXDhCT0QT/NoyWGyYQVCcblIMcbOtW2YVDKcj2KliINOIr18CJpJf4z+d6K7J68tJFQrs 72OlinMa5VXwHayw1I8NoHBu0d9Fj1/YBs62FiiqRoegNR2OVYs5hYVy4DPNPC5kCTogcR ikhWg2rdCeKKiew+nR+OYxe2iP9GGT767skfmN41Zo5o1bcdrnEdLdB4Mfp/l7UJDhVTAH bqXdgCeoMeRtMoNW0kpeBrK6jr3L+aJ95R1faW3edgKnJb8nKvII1WJcUmhEXA== 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 4QKkHG61HdzmJ8; Mon, 15 May 2023 15:46:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFk2rU073513; Mon, 15 May 2023 15:46:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFk2JK073512; Mon, 15 May 2023 15:46:02 GMT (envelope-from git) Date: Mon, 15 May 2023 15:46:02 GMT Message-Id: <202305151546.34FFk2JK073512@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 253e4c56c8a6 - stable/13 - Add the fixed memory type to the pci ecam driver List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 253e4c56c8a6d4cb0fff963d735852095580ee49 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=253e4c56c8a6d4cb0fff963d735852095580ee49 commit 253e4c56c8a6d4cb0fff963d735852095580ee49 Author: Andrew Turner AuthorDate: 2023-01-18 09:30:46 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 10:55:19 +0000 Add the fixed memory type to the pci ecam driver Add ACPI_RESOURCE_TYPE_FIXED_MEMORY32 to the PCI ECAM driver. This is used on the Microsoft Dev Kit 2023 and reportedly the Lenovo x13s. Reviewed by: Robert Clausecker (Earlier version) Tested by: Robert Clausecker (Earlier version) Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D38031 (cherry picked from commit 896f556205c8d87ef842dc844752daa7d2385336) --- sys/dev/pci/pci_host_generic_acpi.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sys/dev/pci/pci_host_generic_acpi.c b/sys/dev/pci/pci_host_generic_acpi.c index 9628517813a9..074e81be9a88 100644 --- a/sys/dev/pci/pci_host_generic_acpi.c +++ b/sys/dev/pci/pci_host_generic_acpi.c @@ -143,26 +143,43 @@ pci_host_generic_acpi_parse_resource(ACPI_RESOURCE *res, void *arg) struct generic_pcie_acpi_softc *sc; struct rman *rm; rman_res_t min, max, off; - int r; + int r, restype; rm = NULL; sc = device_get_softc(dev); r = sc->base.nranges; switch (res->Type) { case ACPI_RESOURCE_TYPE_ADDRESS16: + restype = res->Data.Address16.ResourceType; min = res->Data.Address16.Address.Minimum; max = res->Data.Address16.Address.Maximum; break; case ACPI_RESOURCE_TYPE_ADDRESS32: + restype = res->Data.Address32.ResourceType; min = res->Data.Address32.Address.Minimum; max = res->Data.Address32.Address.Maximum; off = res->Data.Address32.Address.TranslationOffset; break; case ACPI_RESOURCE_TYPE_ADDRESS64: + restype = res->Data.Address64.ResourceType; min = res->Data.Address64.Address.Minimum; max = res->Data.Address64.Address.Maximum; off = res->Data.Address64.Address.TranslationOffset; break; + case ACPI_RESOURCE_TYPE_FIXED_MEMORY32: + /* + * The Microsoft Dev Kit 2023 uses a fixed memory region + * for some PCI controllers. For this memory the + * ResourceType is ACPI_IO_RANGE meaning we create an IO + * resource. As drivers expect it to be a memory resource + * force the type here. + */ + restype = ACPI_MEMORY_RANGE; + min = res->Data.FixedMemory32.Address; + max = res->Data.FixedMemory32.Address + + res->Data.FixedMemory32.AddressLength - 1; + off = 0; + break; default: return (AE_OK); } @@ -173,9 +190,9 @@ pci_host_generic_acpi_parse_resource(ACPI_RESOURCE *res, void *arg) sc->base.ranges[r].pci_base = min; sc->base.ranges[r].phys_base = min + off; sc->base.ranges[r].size = max - min + 1; - if (res->Data.Address.ResourceType == ACPI_MEMORY_RANGE) + if (restype == ACPI_MEMORY_RANGE) sc->base.ranges[r].flags |= FLAG_TYPE_MEM; - else if (res->Data.Address.ResourceType == ACPI_IO_RANGE) + else if (restype == ACPI_IO_RANGE) sc->base.ranges[r].flags |= FLAG_TYPE_IO; sc->base.nranges++; } else if (res->Data.Address.ResourceType == ACPI_BUS_NUMBER_RANGE) { From nobody Mon May 15 15:46:03 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKkHJ264Wz4BlRk; Mon, 15 May 2023 15:46: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKkHJ0KTdz3JpM; Mon, 15 May 2023 15:46:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165564; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cqxCusGpQ9YlYNw+liVx2kdVDruQcKL0FRiTVqkhbxw=; b=gI3/6VWfbnhd6pf7HXtQFe5/XTctgTqVV+kdbrR3ooGozOOlEc/oCcDX5ulCvClWipCb89 omD5p8mROs2F8GdlOEk3eiVtCF89H6QZo5gFGePdRUcVWbdmZM9IlgHyv67c5p9sTVuETc Pmh/JHtUiQ03I0aFjeib3OMNJ9LWVhOEfTpShFkqlfYSpDbhGuTLoUIdbnpqku98Mq1CU9 iIW7953k8Vp34Pxmw6oXHm4QYCIMQ50ofQifhDYxtAqnQE5HIeefxNNflQgfnpmZxbwIEr W7Rbi7QfSakZgeatAUzuKz7g7UkeVPUcYRzc7mEZY/74mMftUwnPFT2oSAP2hw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684165564; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cqxCusGpQ9YlYNw+liVx2kdVDruQcKL0FRiTVqkhbxw=; b=wasBMUKf6ofXBiOnD2+zauMwEW3kprZ5Q5aGW39xgR4p3eObNh+WFH8GqktGni1WBgRgs/ +XzsNfvg9R78GltsHd2u33JDazS1MXGKoXqPQg3rUoFvi4QxCcxuaXvOVKYuNat6WH5pyh y9zPaJO4iq+l0ofXJ/9EnPKtEu9PMU3T/ITjuYBZNXcuPQThRkqj31rLHWUqTKi+hWxart XoHiyyEQeo4BfcU+a5U58r0ZP2r83flGkb3cQy6o4ovW/dLWZIA7038QN1iPavIsislT9K rcW5f7XRJeOIhmqA4IGCd7a0chblphufzoS2TIBkJdvjvJNMpeSYHHuknaHwXA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684165564; a=rsa-sha256; cv=none; b=Pciv3uUliq4w1P74JrH9VIwnHeJQdFMYiPHAwoIEn7w19GhVUpTk/CZbHH/X5Cbk6DqlKQ Cm+EDLvTy8RV5v9oFUcf0etIcJr756aHJc4hvA2cgTewxnuqd3mWqPs8Rz3UKAjVkDP9If YDpFTrXG9uDuywCMRWUS7qf/Ze1+ybHLpWLFDubodADNnqcq2hMEkaPzO3mjmwLbFmzR1M f6Y7QG1ju/Vj3HxYXHw7u6xn0mVHSMJEl/exB8t4Z1WdOTeTb6ksUmG27ey9JhLQ65Ii6v vjPR4kBRWglXMPyaUWvTwR/VbWLrb7SOCznDyklbriFLIsNcA5HF7MKZhKHFVA== 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 4QKkHH6WK6zmTd; Mon, 15 May 2023 15:46:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FFk36J073532; Mon, 15 May 2023 15:46:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FFk3Fk073531; Mon, 15 May 2023 15:46:03 GMT (envelope-from git) Date: Mon, 15 May 2023 15:46:03 GMT Message-Id: <202305151546.34FFk3Fk073531@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: d42fa41bc2ed - stable/13 - Make SMCCC usable by device drivers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: d42fa41bc2edfe0a6ffb49f79fcb2790a743ae4a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d42fa41bc2edfe0a6ffb49f79fcb2790a743ae4a commit d42fa41bc2edfe0a6ffb49f79fcb2790a743ae4a Author: Andrew Turner AuthorDate: 2022-06-04 11:13:51 +0000 Commit: Andrew Turner CommitDate: 2023-05-15 10:55:36 +0000 Make SMCCC usable by device drivers To allow device drivers to call into SMCCC we need to initialise it earlier. As it depends on PSCI, and that is detected via ACPI or FDT move the call to smccc_init to the PSCI driver. Add a function for drivers to read the smccc version, or 0 if smccc is not present. (cherry picked from commit 0600af1ff16041f15633b2263a8ad9525eecd2f1) (cherry picked from commit 7ca55fcc541b375c83eaf75f0658b79f250c82fd) --- sys/dev/psci/psci.c | 4 ++++ sys/dev/psci/smccc.c | 11 ++++++++--- sys/dev/psci/smccc.h | 2 ++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/sys/dev/psci/psci.c b/sys/dev/psci/psci.c index d54ee62fb328..228850ac6895 100644 --- a/sys/dev/psci/psci.c +++ b/sys/dev/psci/psci.c @@ -348,6 +348,10 @@ psci_attach(device_t dev, psci_initfn_t psci_init, int default_version) if (psci_init(dev, default_version)) return (ENXIO); +#ifdef __aarch64__ + smccc_init(); +#endif + psci_softc = sc; return (0); diff --git a/sys/dev/psci/smccc.c b/sys/dev/psci/smccc.c index 54673d431d4c..64732d58e2d4 100644 --- a/sys/dev/psci/smccc.c +++ b/sys/dev/psci/smccc.c @@ -47,8 +47,8 @@ __FBSDID("$FreeBSD$"); /* Assume 1.0 until we detect a later version */ static uint32_t smccc_version = SMCCC_VERSION_1_0; -static void -smccc_init(void *dummy) +void +smccc_init(void) { int32_t features; uint32_t ret; @@ -67,7 +67,12 @@ smccc_init(void *dummy) SMCCC_VERSION_MINOR(smccc_version)); } } -SYSINIT(smccc_start, SI_SUB_CONFIGURE, SI_ORDER_ANY, smccc_init, NULL); + +uint32_t +smccc_get_version(void) +{ + return (smccc_version); +} int32_t smccc_arch_features(uint32_t smccc_func_id) diff --git a/sys/dev/psci/smccc.h b/sys/dev/psci/smccc.h index 6bb4dbcf7076..4644ee1cc7b3 100644 --- a/sys/dev/psci/smccc.h +++ b/sys/dev/psci/smccc.h @@ -82,6 +82,8 @@ struct arm_smccc_res { #define SMCCC_RET_NOT_SUPPORTED -1 #define SMCCC_RET_NOT_REQUIRED -2 +void smccc_init(void); +uint32_t smccc_get_version(void); int32_t smccc_arch_features(uint32_t); int smccc_arch_workaround_1(void); int smccc_arch_workaround_2(int); From nobody Mon May 15 23:42:18 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKwrp6R72z4BFYl; Mon, 15 May 2023 23:42:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKwrp69jhz3LWr; Mon, 15 May 2023 23:42:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684194138; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z87ToFD+ttaj5jbCTP4dr6g0qbNEcbKn9MB+27QSd88=; b=SFI6ZlDSbxzDiY8L0ZrwVkCbsr3HpsNWHZJzo4+F9LPQxyoRo8OflOHCKj1agwP5n+yQOA Z6tUY1tU1AZE00BOWP8x1+Tkq5L5dUL50eRRO0LRGpDmKgU1AJ3H/1bwlR0TGz2ahjlOUj 4P5bCSPNGV16/a0EnzqWbhT94KBNwaulYdDUnACSAiF6CJ5ckQ+3Rx/TVCDE/JC1znHgU8 BcR0lQ5nSAlY7A/jZyJdZBuyG0EQ8iq07Nwe4mDvvthoZmlDkP8llqKRM4F7LxjhCwHWBT pTsngfHe+Dt/MzFkR+OVhnLmoQ0d7ajNjaIOFEo2b758jvBQF2Sapx/Zqv5QDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684194138; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z87ToFD+ttaj5jbCTP4dr6g0qbNEcbKn9MB+27QSd88=; b=rBCLBQ2TtSrFvFBc5mlyEZpFdoEr+4aVycdGZ23oyKGBhJuBdBnaw3HSkZL7K+mdu80fyd kWELECbFTzc6TO/hLpQAZyZmnFVdh8itUAmyhbmOIC79JoVtSzRHfX1RiYKN8KDyrafjeL 9ONt/hHn9ueORYvJ2PUkEgHlpZRgJ7CvnpN/O/hgQIvc/codxFPVSpJaf9w11TJpIa9C6h csXmmrv7m1iw2znN5g1rFXXSxGNmaQWF9Nc6iqkhQc1/lOLaq8sBrxgIgGVZ2n1lQnBqo0 1XmgJR4deSXU4IGA4SVKwarUuRP1QT54cx+A3Tdz3BDQWYzScj9P2lz3ufb7JA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684194138; a=rsa-sha256; cv=none; b=Gt28XmsoMfo7Eu3NZiHe7GitpQZ2b9fkdkX2d5/2QzcIk22MzUt+SsWuOEpGglQv3G/LKo gC7wUEZdokowXw31qeNE+JbkcUpHA8jQQQNzr31GN8JgaGiDPkbs9vf0gzmCb7Ry9PDDKo 1ne/XczpwSHfeuLMWfIXd29rgSHhd5nOUzDbw4cP1wufhD2qbdj0F9asC9J9iEvIOB1wY5 VsKNkK/AuNtKhQR18d7YvQoBAwKzabp8tjGWBclPNcrSLI7tlgJ+/U6Jah/NA2xgd/8EqS xLDbfzUKHUj4CHGN53tl6SZhavYJMLY75OiMDEWNDxrV/sxnmkLblmt2kZxe5A== 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 4QKwrp5Cqcz10dB; Mon, 15 May 2023 23:42:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FNgIkD061450; Mon, 15 May 2023 23:42:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FNgI3s061449; Mon, 15 May 2023 23:42:18 GMT (envelope-from git) Date: Mon, 15 May 2023 23:42:18 GMT Message-Id: <202305152342.34FNgI3s061449@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: b4805d577787 - stable/13 - nfsd: Prepare the NFS server code to run in a vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: b4805d5777871ee62400737ceddec5e0e5e05941 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=b4805d5777871ee62400737ceddec5e0e5e05941 commit b4805d5777871ee62400737ceddec5e0e5e05941 Author: Rick Macklem AuthorDate: 2023-02-11 23:51:19 +0000 Commit: Rick Macklem CommitDate: 2023-05-15 23:39:04 +0000 nfsd: Prepare the NFS server code to run in a vnet prison This patch defines null macros that can be used to apply the vnet macros for global variables and SYSCTL flags. It also applies these macros to many of the global variables and some of the SYSCTLs. Since the macros do nothing, these changes should not result in semantics changes, although the changes are large in number. The patch does change several global variables that were arrays or structures to pointers to same. For these variables, modified initialization and cleanup code malloc's and free's the arrays/structures. This was done so that the vnet footprint would be about 300bytes when the macros are defined as vnet macros, allowing nfsd.ko to load dynamically. I believe the comments in D37519 have been addressed, although it has never been reviewed, due in part to the large size of the patch. This is the first of a series of patches that will put D37519 in main. Once everything is in main, the macros will be defined as front end macros to the vnet ones. (cherry picked from commit 7e44856e3a6deb194c2c376e886854b256360c40) --- sys/fs/nfs/nfs_var.h | 2 +- sys/fs/nfs/nfsport.h | 14 ++ sys/fs/nfsserver/nfs_fha_new.c | 5 +- sys/fs/nfsserver/nfs_nfsdcache.c | 155 +++++++++++--------- sys/fs/nfsserver/nfs_nfsdkrpc.c | 100 ++++++++----- sys/fs/nfsserver/nfs_nfsdport.c | 292 +++++++++++++++++++++++++------------- sys/fs/nfsserver/nfs_nfsdsocket.c | 70 +++++---- sys/fs/nfsserver/nfs_nfsdstate.c | 186 +++++++++++++----------- sys/fs/nfsserver/nfs_nfsdsubs.c | 45 +++--- 9 files changed, 522 insertions(+), 347 deletions(-) diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h index 9dd3be3d5c42..ef7d0050e1a3 100644 --- a/sys/fs/nfs/nfs_var.h +++ b/sys/fs/nfs/nfs_var.h @@ -122,7 +122,7 @@ int nfsrv_delegupdate(struct nfsrv_descript *, nfsquad_t, nfsv4stateid_t *, int nfsrv_releaselckown(struct nfsstate *, nfsquad_t, NFSPROC_T *); void nfsrv_zapclient(struct nfsclient *, NFSPROC_T *); int nfssvc_idname(struct nfsd_idargs *); -void nfsrv_servertimer(void); +void nfsrv_servertimer(void * __unused); int nfsrv_getclientipaddr(struct nfsrv_descript *, struct nfsclient *); void nfsrv_setupstable(NFSPROC_T *); void nfsrv_updatestable(NFSPROC_T *); diff --git a/sys/fs/nfs/nfsport.h b/sys/fs/nfs/nfsport.h index 2955ae43de85..0a0e68787f65 100644 --- a/sys/fs/nfs/nfsport.h +++ b/sys/fs/nfs/nfsport.h @@ -181,6 +181,20 @@ */ #define NFSMUTEX_T struct mtx +/* Define the NFSD_VNET macros similar to !VIMAGE. */ +#define NFSD_VNET_NAME(n) n +#define NFSD_VNET_DECLARE(t, n) extern t n +#define NFSD_VNET_DEFINE(t, n) t n +#define NFSD_VNET_DEFINE_STATIC(t, n) static t n +#define NFSD_VNET(n) (n) + +#define CTLFLAG_NFSD_VNET 0 + +#define NFSD_CURVNET_SET(n) +#define NFSD_CURVNET_SET_QUIET(n) +#define NFSD_CURVNET_RESTORE() +#define NFSD_TD_TO_VNET(n) NULL + #endif /* _KERNEL */ /* diff --git a/sys/fs/nfsserver/nfs_fha_new.c b/sys/fs/nfsserver/nfs_fha_new.c index 1f66842da5b8..59933ef01bd4 100644 --- a/sys/fs/nfsserver/nfs_fha_new.c +++ b/sys/fs/nfsserver/nfs_fha_new.c @@ -61,7 +61,8 @@ static struct fha_params fhanew_softc; SYSCTL_DECL(_vfs_nfsd); extern int newnfs_nfsv3_procid[]; -extern SVCPOOL *nfsrvd_pool; + +NFSD_VNET_DECLARE(SVCPOOL *, nfsrvd_pool); SYSINIT(nfs_fhanew, SI_SUB_ROOT_CONF, SI_ORDER_ANY, fhanew_init, NULL); SYSUNINIT(nfs_fhanew, SI_SUB_ROOT_CONF, SI_ORDER_ANY, fhanew_uninit, NULL); @@ -79,7 +80,7 @@ fhanew_init(void *foo) snprintf(softc->server_name, sizeof(softc->server_name), FHANEW_SERVER_NAME); - softc->pool = &nfsrvd_pool; + softc->pool = &NFSD_VNET(nfsrvd_pool); /* * Initialize the sysctl context list for the fha module. diff --git a/sys/fs/nfsserver/nfs_nfsdcache.c b/sys/fs/nfsserver/nfs_nfsdcache.c index 5efcb90411e0..e94d58481286 100644 --- a/sys/fs/nfsserver/nfs_nfsdcache.c +++ b/sys/fs/nfsserver/nfs_nfsdcache.c @@ -160,11 +160,15 @@ __FBSDID("$FreeBSD$"); */ #include -extern struct nfsstatsv1 nfsstatsv1; extern struct mtx nfsrc_udpmtx; -extern struct nfsrchash_bucket nfsrchash_table[NFSRVCACHE_HASHSIZE]; -extern struct nfsrchash_bucket nfsrcahash_table[NFSRVCACHE_HASHSIZE]; -int nfsrc_floodlevel = NFSRVCACHE_FLOODLEVEL, nfsrc_tcpsavedreplies = 0; + +NFSD_VNET_DECLARE(struct nfsrvhashhead *, nfsrvudphashtbl); +NFSD_VNET_DECLARE(struct nfsrchash_bucket *, nfsrchash_table); +NFSD_VNET_DECLARE(struct nfsrchash_bucket *, nfsrcahash_table); +NFSD_VNET_DECLARE(struct nfsstatsv1 *, nfsstatsv1_p); + +NFSD_VNET_DEFINE(int, nfsrc_floodlevel) = NFSRVCACHE_FLOODLEVEL; +NFSD_VNET_DEFINE(int, nfsrc_tcpsavedreplies) = 0; SYSCTL_DECL(_vfs_nfsd); @@ -180,8 +184,8 @@ sysctl_tcphighwater(SYSCTL_HANDLER_ARGS) return (error); if (newhighwater < 0) return (EINVAL); - if (newhighwater >= nfsrc_floodlevel) - nfsrc_floodlevel = newhighwater + newhighwater / 5; + if (newhighwater >= NFSD_VNET(nfsrc_floodlevel)) + NFSD_VNET(nfsrc_floodlevel) = newhighwater + newhighwater / 5; nfsrc_tcphighwater = newhighwater; return (0); } @@ -202,9 +206,8 @@ SYSCTL_UINT(_vfs_nfsd, OID_AUTO, cachetcp, CTLFLAG_RW, &nfsrc_tcpnonidempotent, 0, "Enable the DRC for NFS over TCP"); -static int nfsrc_udpcachesize = 0; -static TAILQ_HEAD(, nfsrvcache) nfsrvudplru; -static struct nfsrvhashhead nfsrvudphashtbl[NFSRVCACHE_HASHSIZE]; +NFSD_VNET_DEFINE_STATIC(int, nfsrc_udpcachesize) = 0; +NFSD_VNET_DEFINE_STATIC(TAILQ_HEAD(, nfsrvcache), nfsrvudplru); /* * and the reverse mapping from generic to Version 2 procedure numbers @@ -236,10 +239,10 @@ static int newnfsv2_procid[NFS_V3NPROCS] = { #define nfsrc_hash(xid) (((xid) + ((xid) >> 24)) % NFSRVCACHE_HASHSIZE) #define NFSRCUDPHASH(xid) \ - (&nfsrvudphashtbl[nfsrc_hash(xid)]) + (&NFSD_VNET(nfsrvudphashtbl)[nfsrc_hash(xid)]) #define NFSRCHASH(xid) \ - (&nfsrchash_table[nfsrc_hash(xid)].tbl) -#define NFSRCAHASH(xid) (&nfsrcahash_table[nfsrc_hash(xid)]) + (&NFSD_VNET(nfsrchash_table)[nfsrc_hash(xid)].tbl) +#define NFSRCAHASH(xid) (&NFSD_VNET(nfsrcahash_table)[nfsrc_hash(xid)]) #define TRUE 1 #define FALSE 0 #define NFSRVCACHE_CHECKLEN 100 @@ -295,7 +298,7 @@ nfsrc_cachemutex(struct nfsrvcache *rp) if ((rp->rc_flag & RC_UDP) != 0) return (&nfsrc_udpmtx); - return (&nfsrchash_table[nfsrc_hash(rp->rc_xid)].mtx); + return (&NFSD_VNET(nfsrchash_table)[nfsrc_hash(rp->rc_xid)].mtx); } /* @@ -305,21 +308,27 @@ void nfsrvd_initcache(void) { int i; - static int inited = 0; - if (inited) - return; - inited = 1; + NFSD_VNET(nfsrvudphashtbl) = malloc(sizeof(struct nfsrvhashhead) * + NFSRVCACHE_HASHSIZE, M_NFSRVCACHE, M_WAITOK | M_ZERO); + NFSD_VNET(nfsrchash_table) = malloc(sizeof(struct nfsrchash_bucket) * + NFSRVCACHE_HASHSIZE, M_NFSRVCACHE, M_WAITOK | M_ZERO); + NFSD_VNET(nfsrcahash_table) = malloc(sizeof(struct nfsrchash_bucket) * + NFSRVCACHE_HASHSIZE, M_NFSRVCACHE, M_WAITOK | M_ZERO); + for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { + mtx_init(&NFSD_VNET(nfsrchash_table)[i].mtx, "nfsrtc", NULL, + MTX_DEF); + mtx_init(&NFSD_VNET(nfsrcahash_table)[i].mtx, "nfsrtca", NULL, + MTX_DEF); + } for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - LIST_INIT(&nfsrvudphashtbl[i]); - LIST_INIT(&nfsrchash_table[i].tbl); - LIST_INIT(&nfsrcahash_table[i].tbl); + LIST_INIT(&NFSD_VNET(nfsrvudphashtbl)[i]); + LIST_INIT(&NFSD_VNET(nfsrchash_table)[i].tbl); + LIST_INIT(&NFSD_VNET(nfsrcahash_table)[i].tbl); } - TAILQ_INIT(&nfsrvudplru); - nfsrc_tcpsavedreplies = 0; - nfsrc_udpcachesize = 0; - nfsstatsv1.srvcache_tcppeak = 0; - nfsstatsv1.srvcache_size = 0; + TAILQ_INIT(&NFSD_VNET(nfsrvudplru)); + NFSD_VNET(nfsrc_tcpsavedreplies) = 0; + NFSD_VNET(nfsrc_udpcachesize) = 0; } /* @@ -392,17 +401,17 @@ loop: if (rp->rc_flag == 0) panic("nfs udp cache0"); rp->rc_flag |= RC_LOCKED; - TAILQ_REMOVE(&nfsrvudplru, rp, rc_lru); - TAILQ_INSERT_TAIL(&nfsrvudplru, rp, rc_lru); + TAILQ_REMOVE(&NFSD_VNET(nfsrvudplru), rp, rc_lru); + TAILQ_INSERT_TAIL(&NFSD_VNET(nfsrvudplru), rp, rc_lru); if (rp->rc_flag & RC_INPROG) { - nfsstatsv1.srvcache_inproghits++; + nfsstatsv1_p->srvcache_inproghits++; mtx_unlock(mutex); ret = RC_DROPIT; } else if (rp->rc_flag & RC_REPSTATUS) { /* * V2 only. */ - nfsstatsv1.srvcache_nonidemdonehits++; + nfsstatsv1_p->srvcache_nonidemdonehits++; mtx_unlock(mutex); nfsrvd_rephead(nd); *(nd->nd_errp) = rp->rc_status; @@ -410,7 +419,7 @@ loop: rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_UDPTIMEOUT; } else if (rp->rc_flag & RC_REPMBUF) { - nfsstatsv1.srvcache_nonidemdonehits++; + nfsstatsv1_p->srvcache_nonidemdonehits++; mtx_unlock(mutex); nd->nd_mreq = m_copym(rp->rc_reply, 0, M_COPYALL, M_WAITOK); @@ -425,9 +434,9 @@ loop: goto out; } } - nfsstatsv1.srvcache_misses++; - atomic_add_int(&nfsstatsv1.srvcache_size, 1); - nfsrc_udpcachesize++; + nfsstatsv1_p->srvcache_misses++; + atomic_add_int(&nfsstatsv1_p->srvcache_size, 1); + NFSD_VNET(nfsrc_udpcachesize)++; newrp->rc_flag |= RC_INPROG; saddr = NFSSOCKADDR(nd->nd_nam, struct sockaddr_in *); @@ -440,7 +449,7 @@ loop: newrp->rc_flag |= RC_INETIPV6; } LIST_INSERT_HEAD(hp, newrp, rc_hash); - TAILQ_INSERT_TAIL(&nfsrvudplru, newrp, rc_lru); + TAILQ_INSERT_TAIL(&NFSD_VNET(nfsrvudplru), newrp, rc_lru); mtx_unlock(mutex); nd->nd_rp = newrp; ret = RC_DOIT; @@ -472,15 +481,15 @@ nfsrvd_updatecache(struct nfsrv_descript *nd) panic("nfsrvd_updatecache not inprog"); rp->rc_flag &= ~RC_INPROG; if (rp->rc_flag & RC_UDP) { - TAILQ_REMOVE(&nfsrvudplru, rp, rc_lru); - TAILQ_INSERT_TAIL(&nfsrvudplru, rp, rc_lru); + TAILQ_REMOVE(&NFSD_VNET(nfsrvudplru), rp, rc_lru); + TAILQ_INSERT_TAIL(&NFSD_VNET(nfsrvudplru), rp, rc_lru); } /* * Reply from cache is a special case returned by nfsrv_checkseqid(). */ if (nd->nd_repstat == NFSERR_REPLYFROMCACHE) { - nfsstatsv1.srvcache_nonidemdonehits++; + nfsstatsv1_p->srvcache_nonidemdonehits++; mtx_unlock(mutex); nd->nd_repstat = 0; if (nd->nd_mreq) @@ -503,7 +512,7 @@ nfsrvd_updatecache(struct nfsrv_descript *nd) (rp->rc_refcnt > 0 || ((nd->nd_flag & ND_SAVEREPLY) && (rp->rc_flag & RC_UDP)) || ((nd->nd_flag & ND_SAVEREPLY) && !(rp->rc_flag & RC_UDP) && - nfsrc_tcpsavedreplies <= nfsrc_floodlevel && + NFSD_VNET(nfsrc_tcpsavedreplies) <= NFSD_VNET(nfsrc_floodlevel) && nfsrc_tcpnonidempotent))) { if (rp->rc_refcnt > 0) { if (!(rp->rc_flag & RC_NFSV4)) @@ -517,11 +526,12 @@ nfsrvd_updatecache(struct nfsrv_descript *nd) mtx_unlock(mutex); } else { if (!(rp->rc_flag & RC_UDP)) { - atomic_add_int(&nfsrc_tcpsavedreplies, 1); - if (nfsrc_tcpsavedreplies > - nfsstatsv1.srvcache_tcppeak) - nfsstatsv1.srvcache_tcppeak = - nfsrc_tcpsavedreplies; + atomic_add_int(&NFSD_VNET(nfsrc_tcpsavedreplies), + 1); + if (NFSD_VNET(nfsrc_tcpsavedreplies) > + nfsstatsv1_p->srvcache_tcppeak) + nfsstatsv1_p->srvcache_tcppeak = + NFSD_VNET(nfsrc_tcpsavedreplies); } mtx_unlock(mutex); m = m_copym(nd->nd_mreq, 0, M_COPYALL, M_WAITOK); @@ -678,7 +688,7 @@ tryagain: panic("nfs tcp cache0"); rp->rc_flag |= RC_LOCKED; if (rp->rc_flag & RC_INPROG) { - nfsstatsv1.srvcache_inproghits++; + nfsstatsv1_p->srvcache_inproghits++; mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); @@ -687,7 +697,7 @@ tryagain: /* * V2 only. */ - nfsstatsv1.srvcache_nonidemdonehits++; + nfsstatsv1_p->srvcache_nonidemdonehits++; mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); @@ -696,7 +706,7 @@ tryagain: *(nd->nd_errp) = rp->rc_status; rp->rc_timestamp = NFSD_MONOSEC + nfsrc_tcptimeout; } else if (rp->rc_flag & RC_REPMBUF) { - nfsstatsv1.srvcache_nonidemdonehits++; + nfsstatsv1_p->srvcache_nonidemdonehits++; mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); @@ -711,8 +721,8 @@ tryagain: free(newrp, M_NFSRVCACHE); goto out; } - nfsstatsv1.srvcache_misses++; - atomic_add_int(&nfsstatsv1.srvcache_size, 1); + nfsstatsv1_p->srvcache_misses++; + atomic_add_int(&nfsstatsv1_p->srvcache_size, 1); /* * For TCP, multiple entries for a key are allowed, so don't @@ -785,8 +795,8 @@ nfsrc_freecache(struct nfsrvcache *rp) LIST_REMOVE(rp, rc_hash); if (rp->rc_flag & RC_UDP) { - TAILQ_REMOVE(&nfsrvudplru, rp, rc_lru); - nfsrc_udpcachesize--; + TAILQ_REMOVE(&NFSD_VNET(nfsrvudplru), rp, rc_lru); + NFSD_VNET(nfsrc_udpcachesize)--; } else if (rp->rc_acked != RC_NO_SEQ) { hbp = NFSRCAHASH(rp->rc_sockref); mtx_lock(&hbp->mtx); @@ -798,10 +808,10 @@ nfsrc_freecache(struct nfsrvcache *rp) if (rp->rc_flag & RC_REPMBUF) { m_freem(rp->rc_reply); if (!(rp->rc_flag & RC_UDP)) - atomic_add_int(&nfsrc_tcpsavedreplies, -1); + atomic_add_int(&NFSD_VNET(nfsrc_tcpsavedreplies), -1); } free(rp, M_NFSRVCACHE); - atomic_add_int(&nfsstatsv1.srvcache_size, -1); + atomic_add_int(&nfsstatsv1_p->srvcache_size, -1); } /* @@ -814,20 +824,22 @@ nfsrvd_cleancache(void) int i; for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - mtx_lock(&nfsrchash_table[i].mtx); - LIST_FOREACH_SAFE(rp, &nfsrchash_table[i].tbl, rc_hash, nextrp) + mtx_lock(&NFSD_VNET(nfsrchash_table)[i].mtx); + LIST_FOREACH_SAFE(rp, &NFSD_VNET(nfsrchash_table)[i].tbl, + rc_hash, nextrp) nfsrc_freecache(rp); - mtx_unlock(&nfsrchash_table[i].mtx); + mtx_unlock(&NFSD_VNET(nfsrchash_table)[i].mtx); } mtx_lock(&nfsrc_udpmtx); for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - LIST_FOREACH_SAFE(rp, &nfsrvudphashtbl[i], rc_hash, nextrp) { + LIST_FOREACH_SAFE(rp, &NFSD_VNET(nfsrvudphashtbl)[i], rc_hash, + nextrp) { nfsrc_freecache(rp); } } - nfsstatsv1.srvcache_size = 0; + nfsstatsv1_p->srvcache_size = 0; mtx_unlock(&nfsrc_udpmtx); - nfsrc_tcpsavedreplies = 0; + NFSD_VNET(nfsrc_tcpsavedreplies) = 0; } #define HISTSIZE 16 @@ -864,25 +876,28 @@ nfsrc_trimcache(u_int64_t sockref, uint32_t snd_una, int final) if (atomic_cmpset_acq_int(&onethread, 0, 1) == 0) return; if (NFSD_MONOSEC != udp_lasttrim || - nfsrc_udpcachesize >= (nfsrc_udphighwater + + NFSD_VNET(nfsrc_udpcachesize) >= (nfsrc_udphighwater + nfsrc_udphighwater / 2)) { mtx_lock(&nfsrc_udpmtx); udp_lasttrim = NFSD_MONOSEC; - TAILQ_FOREACH_SAFE(rp, &nfsrvudplru, rc_lru, nextrp) { + TAILQ_FOREACH_SAFE(rp, &NFSD_VNET(nfsrvudplru), rc_lru, + nextrp) { if (!(rp->rc_flag & (RC_INPROG|RC_LOCKED|RC_WANTED)) && rp->rc_refcnt == 0 && ((rp->rc_flag & RC_REFCNT) || udp_lasttrim > rp->rc_timestamp || - nfsrc_udpcachesize > nfsrc_udphighwater)) + NFSD_VNET(nfsrc_udpcachesize) > + nfsrc_udphighwater)) nfsrc_freecache(rp); } mtx_unlock(&nfsrc_udpmtx); } if (NFSD_MONOSEC != tcp_lasttrim || - nfsrc_tcpsavedreplies >= nfsrc_tcphighwater) { + NFSD_VNET(nfsrc_tcpsavedreplies) >= nfsrc_tcphighwater) { force = nfsrc_tcphighwater / 4; if (force > 0 && - nfsrc_tcpsavedreplies + force >= nfsrc_tcphighwater) { + NFSD_VNET(nfsrc_tcpsavedreplies) + force >= + nfsrc_tcphighwater) { for (i = 0; i < HISTSIZE; i++) time_histo[i] = 0; i = 0; @@ -901,8 +916,9 @@ nfsrc_trimcache(u_int64_t sockref, uint32_t snd_una, int final) tto = nfsrc_tcptimeout; tcp_lasttrim = NFSD_MONOSEC; for (; i <= lastslot; i++) { - mtx_lock(&nfsrchash_table[i].mtx); - LIST_FOREACH_SAFE(rp, &nfsrchash_table[i].tbl, rc_hash, + mtx_lock(&NFSD_VNET(nfsrchash_table)[i].mtx); + LIST_FOREACH_SAFE(rp, + &NFSD_VNET(nfsrchash_table)[i].tbl, rc_hash, nextrp) { if (!(rp->rc_flag & (RC_INPROG|RC_LOCKED|RC_WANTED)) @@ -932,7 +948,7 @@ nfsrc_trimcache(u_int64_t sockref, uint32_t snd_una, int final) time_histo[j]++; } } - mtx_unlock(&nfsrchash_table[i].mtx); + mtx_unlock(&NFSD_VNET(nfsrchash_table)[i].mtx); } if (force) { /* @@ -951,8 +967,9 @@ nfsrc_trimcache(u_int64_t sockref, uint32_t snd_una, int final) k = 1; thisstamp = tcp_lasttrim + k; for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - mtx_lock(&nfsrchash_table[i].mtx); - LIST_FOREACH_SAFE(rp, &nfsrchash_table[i].tbl, + mtx_lock(&NFSD_VNET(nfsrchash_table)[i].mtx); + LIST_FOREACH_SAFE(rp, + &NFSD_VNET(nfsrchash_table)[i].tbl, rc_hash, nextrp) { if (!(rp->rc_flag & (RC_INPROG|RC_LOCKED|RC_WANTED)) @@ -962,7 +979,7 @@ nfsrc_trimcache(u_int64_t sockref, uint32_t snd_una, int final) rp->rc_acked == RC_ACK)) nfsrc_freecache(rp); } - mtx_unlock(&nfsrchash_table[i].mtx); + mtx_unlock(&NFSD_VNET(nfsrchash_table)[i].mtx); } } } diff --git a/sys/fs/nfsserver/nfs_nfsdkrpc.c b/sys/fs/nfsserver/nfs_nfsdkrpc.c index 44f585ff0beb..7b0f84c397bc 100644 --- a/sys/fs/nfsserver/nfs_nfsdkrpc.c +++ b/sys/fs/nfsserver/nfs_nfsdkrpc.c @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); NFSDLOCKMUTEX; NFSV4ROOTLOCKMUTEX; -struct nfsv4lock nfsd_suspend_lock; char *nfsrv_zeropnfsdat = NULL; /* @@ -85,32 +84,39 @@ int newnfs_nfsv3_procid[NFS_V3NPROCS] = { SYSCTL_DECL(_vfs_nfsd); -SVCPOOL *nfsrvd_pool; - -static int nfs_privport = 0; -SYSCTL_INT(_vfs_nfsd, OID_AUTO, nfs_privport, CTLFLAG_RWTUN, - &nfs_privport, 0, +NFSD_VNET_DEFINE_STATIC(int, nfs_privport) = 0; +SYSCTL_INT(_vfs_nfsd, OID_AUTO, nfs_privport, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfs_privport), 0, "Only allow clients using a privileged port for NFSv2, 3 and 4"); -static int nfs_minvers = NFS_VER2; -SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_min_nfsvers, CTLFLAG_RWTUN, - &nfs_minvers, 0, "The lowest version of NFS handled by the server"); +NFSD_VNET_DEFINE_STATIC(int, nfs_minvers) = NFS_VER2; +SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_min_nfsvers, + CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, &NFSD_VNET_NAME(nfs_minvers), 0, + "The lowest version of NFS handled by the server"); -static int nfs_maxvers = NFS_VER4; -SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_max_nfsvers, CTLFLAG_RWTUN, - &nfs_maxvers, 0, "The highest version of NFS handled by the server"); +NFSD_VNET_DEFINE_STATIC(int, nfs_maxvers) = NFS_VER4; +SYSCTL_INT(_vfs_nfsd, OID_AUTO, server_max_nfsvers, + CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, &NFSD_VNET_NAME(nfs_maxvers), 0, + "The highest version of NFS handled by the server"); static int nfs_proc(struct nfsrv_descript *, u_int32_t, SVCXPRT *xprt, struct nfsrvcache **); extern u_long sb_max_adj; extern int newnfs_numnfsd; -extern struct proc *nfsd_master_proc; extern time_t nfsdev_time; extern int nfsrv_writerpc[NFS_NPROCS]; extern volatile int nfsrv_devidcnt; extern struct nfsv4_opflag nfsv4_opflag[NFSV42_NOPS]; +NFSD_VNET_DECLARE(struct proc *, nfsd_master_proc); + +NFSD_VNET_DEFINE(SVCPOOL *, nfsrvd_pool); +NFSD_VNET_DEFINE(int, nfsrv_numnfsd) = 0; +NFSD_VNET_DEFINE(struct nfsv4lock, nfsd_suspend_lock); + +NFSD_VNET_DEFINE_STATIC(bool, nfsrvd_inited) = false; + /* * NFS server system calls */ @@ -125,6 +131,7 @@ nfssvc_program(struct svc_req *rqst, SVCXPRT *xprt) u_int maxlen; #endif + NFSD_CURVNET_SET_QUIET(NFSD_TD_TO_VNET(curthread)); memset(&nd, 0, sizeof(nd)); if (rqst->rq_vers == NFS_VER2) { if (rqst->rq_proc > NFSV2PROC_STATFS || @@ -169,7 +176,7 @@ nfssvc_program(struct svc_req *rqst, SVCXPRT *xprt) nd.nd_mreq = NULL; nd.nd_cred = NULL; - if (nfs_privport != 0) { + if (NFSD_VNET(nfs_privport) != 0) { /* Check if source port is privileged */ u_short port; struct sockaddr *nam = nd.nd_nam; @@ -261,17 +268,17 @@ nfssvc_program(struct svc_req *rqst, SVCXPRT *xprt) * nfsv4root exports by nfsvno_v4rootexport(). */ NFSLOCKV4ROOTMUTEX(); - nfsv4_lock(&nfsd_suspend_lock, 0, NULL, NFSV4ROOTLOCKMUTEXPTR, - NULL); - nfsv4_getref(&nfsd_suspend_lock, NULL, NFSV4ROOTLOCKMUTEXPTR, - NULL); + nfsv4_lock(&NFSD_VNET(nfsd_suspend_lock), 0, NULL, + NFSV4ROOTLOCKMUTEXPTR, NULL); + nfsv4_getref(&NFSD_VNET(nfsd_suspend_lock), NULL, + NFSV4ROOTLOCKMUTEXPTR, NULL); NFSUNLOCKV4ROOTMUTEX(); if ((nd.nd_flag & ND_NFSV4) != 0) { nd.nd_repstat = nfsvno_v4rootexport(&nd); if (nd.nd_repstat != 0) { NFSLOCKV4ROOTMUTEX(); - nfsv4_relref(&nfsd_suspend_lock); + nfsv4_relref(&NFSD_VNET(nfsd_suspend_lock)); NFSUNLOCKV4ROOTMUTEX(); svcerr_weakauth(rqst); svc_freereq(rqst); @@ -287,7 +294,7 @@ nfssvc_program(struct svc_req *rqst, SVCXPRT *xprt) #endif cacherep = nfs_proc(&nd, rqst->rq_xid, xprt, &rp); NFSLOCKV4ROOTMUTEX(); - nfsv4_relref(&nfsd_suspend_lock); + nfsv4_relref(&NFSD_VNET(nfsd_suspend_lock)); NFSUNLOCKV4ROOTMUTEX(); } else { NFSMGET(nd.nd_mreq); @@ -327,6 +334,7 @@ nfssvc_program(struct svc_req *rqst, SVCXPRT *xprt) svc_freereq(rqst); out: + NFSD_CURVNET_RESTORE(); td_softdep_cleanup(curthread); NFSEXITCODE(0); } @@ -440,7 +448,9 @@ nfssvc_loss(SVCXPRT *xprt) ack = 0; SVC_ACK(xprt, &ack); + NFSD_CURVNET_SET(NFSD_TD_TO_VNET(curthread)); nfsrc_trimcache(xprt->xp_sockref, ack, 1); + NFSD_CURVNET_RESTORE(); } /* @@ -467,26 +477,28 @@ nfsrvd_addsock(struct file *fp) * unexpectedly. */ if (so->so_type == SOCK_DGRAM) - xprt = svc_dg_create(nfsrvd_pool, so, 0, 0); + xprt = svc_dg_create(NFSD_VNET(nfsrvd_pool), so, 0, 0); else - xprt = svc_vc_create(nfsrvd_pool, so, 0, 0); + xprt = svc_vc_create(NFSD_VNET(nfsrvd_pool), so, 0, 0); if (xprt) { fp->f_ops = &badfileops; fp->f_data = NULL; xprt->xp_sockref = ++sockref; - if (nfs_minvers == NFS_VER2) + if (NFSD_VNET(nfs_minvers) == NFS_VER2) svc_reg(xprt, NFS_PROG, NFS_VER2, nfssvc_program, NULL); - if (nfs_minvers <= NFS_VER3 && nfs_maxvers >= NFS_VER3) + if (NFSD_VNET(nfs_minvers) <= NFS_VER3 && + NFSD_VNET(nfs_maxvers) >= NFS_VER3) svc_reg(xprt, NFS_PROG, NFS_VER3, nfssvc_program, NULL); - if (nfs_maxvers >= NFS_VER4) + if (NFSD_VNET(nfs_maxvers) >= NFS_VER4) svc_reg(xprt, NFS_PROG, NFS_VER4, nfssvc_program, NULL); if (so->so_type == SOCK_STREAM) svc_loss_reg(xprt, nfssvc_loss); SVC_RELEASE(xprt); - } + } else + error = EPERM; out: NFSEXITCODE(error); @@ -518,13 +530,15 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args *args) * use. */ NFSD_LOCK(); - if (newnfs_numnfsd == 0) { + if (NFSD_VNET(nfsrv_numnfsd) == 0) { + nfsrvd_init(0); nfsdev_time = time_second; p = td->td_proc; PROC_LOCK(p); p->p_flag2 |= P2_AST_SU; PROC_UNLOCK(p); - newnfs_numnfsd++; + newnfs_numnfsd++; /* Total num for all vnets. */ + NFSD_VNET(nfsrv_numnfsd)++; /* Num for this vnet. */ NFSD_UNLOCK(); error = nfsrv_createdevids(args, td); @@ -542,12 +556,15 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args *args) NFS_VER4); if (!ret2 || !ret3 || !ret4) - printf( - "nfsd: can't register svc name\n"); + printf("nfsd: can't register svc " + "name %s jid:%d\n", principal, + td->td_ucred->cr_prison->pr_id); } - nfsrvd_pool->sp_minthreads = args->minthreads; - nfsrvd_pool->sp_maxthreads = args->maxthreads; + NFSD_VNET(nfsrvd_pool)->sp_minthreads = + args->minthreads; + NFSD_VNET(nfsrvd_pool)->sp_maxthreads = + args->maxthreads; /* * If this is a pNFS service, make Getattr do a @@ -558,7 +575,7 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args *args) nfsv4_opflag[NFSV4OP_GETATTR].modifyfs = 1; } - svc_run(nfsrvd_pool); + svc_run(NFSD_VNET(nfsrvd_pool)); /* Reset Getattr to not do a vn_start_write(). */ nfsrv_writerpc[NFSPROC_GETATTR] = 0; @@ -572,6 +589,7 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args *args) } NFSD_LOCK(); newnfs_numnfsd--; + NFSD_VNET(nfsrv_numnfsd)--; nfsrvd_init(1); PROC_LOCK(p); p->p_flag2 &= ~P2_AST_SU; @@ -596,21 +614,25 @@ nfsrvd_init(int terminating) NFSD_LOCK_ASSERT(); if (terminating) { - nfsd_master_proc = NULL; + NFSD_VNET(nfsd_master_proc) = NULL; NFSD_UNLOCK(); nfsrv_freealllayoutsanddevids(); nfsrv_freeallbackchannel_xprts(); - svcpool_close(nfsrvd_pool); + svcpool_close(NFSD_VNET(nfsrvd_pool)); free(nfsrv_zeropnfsdat, M_TEMP); nfsrv_zeropnfsdat = NULL; NFSD_LOCK(); } else { + /* Initialize per-vnet globals once per vnet. */ + if (NFSD_VNET(nfsrvd_inited)) + return; + NFSD_VNET(nfsrvd_inited) = true; NFSD_UNLOCK(); - nfsrvd_pool = svcpool_create("nfsd", + NFSD_VNET(nfsrvd_pool) = svcpool_create("nfsd", SYSCTL_STATIC_CHILDREN(_vfs_nfsd)); - nfsrvd_pool->sp_rcache = NULL; - nfsrvd_pool->sp_assign = fhanew_assign; - nfsrvd_pool->sp_done = fhanew_nd_complete; + NFSD_VNET(nfsrvd_pool)->sp_rcache = NULL; + NFSD_VNET(nfsrvd_pool)->sp_assign = fhanew_assign; + NFSD_VNET(nfsrvd_pool)->sp_done = fhanew_nd_complete; NFSD_LOCK(); } } diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 407987aa767f..a58df7b69420 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -59,45 +60,57 @@ FEATURE(nfsd, "NFSv4 server"); extern u_int32_t newnfs_true, newnfs_false, newnfs_xdrneg1; extern int nfsrv_useacl; extern int newnfs_numnfsd; -extern struct mount nfsv4root_mnt; -extern struct nfsrv_stablefirst nfsrv_stablefirst; -extern SVCPOOL *nfsrvd_pool; -extern struct nfsv4lock nfsd_suspend_lock; -extern struct nfsclienthashhead *nfsclienthash; -extern struct nfslockhashhead *nfslockhash; -extern struct nfssessionhash *nfssessionhash; extern int nfsrv_sessionhashsize; extern struct nfsstatsv1 nfsstatsv1; extern struct nfslayouthash *nfslayouthash; extern int nfsrv_layouthashsize; extern struct mtx nfsrv_dslock_mtx; extern int nfs_pnfsiothreads; -extern struct nfsdontlisthead nfsrv_dontlisthead; -extern volatile int nfsrv_dontlistlen; extern volatile int nfsrv_devidcnt; extern int nfsrv_maxpnfsmirror; extern uint32_t nfs_srvmaxio; extern int nfs_bufpackets; extern u_long sb_max_adj; -struct vfsoptlist nfsv4root_opt, nfsv4root_newopt; + +NFSD_VNET_DECLARE(int, nfsrv_numnfsd); +NFSD_VNET_DECLARE(struct nfsrv_stablefirst, nfsrv_stablefirst); +NFSD_VNET_DECLARE(SVCPOOL *, nfsrvd_pool); +NFSD_VNET_DECLARE(struct nfsclienthashhead *, nfsclienthash); +NFSD_VNET_DECLARE(struct nfslockhashhead *, nfslockhash); +NFSD_VNET_DECLARE(struct nfssessionhash *, nfssessionhash); +NFSD_VNET_DECLARE(struct nfsv4lock, nfsd_suspend_lock); + NFSDLOCKMUTEX; NFSSTATESPINLOCK; -struct nfsrchash_bucket nfsrchash_table[NFSRVCACHE_HASHSIZE]; -struct nfsrchash_bucket nfsrcahash_table[NFSRVCACHE_HASHSIZE]; struct mtx nfsrc_udpmtx; struct mtx nfs_v4root_mutex; struct mtx nfsrv_dontlistlock_mtx; struct mtx nfsrv_recalllock_mtx; -struct nfsrvfh nfs_rootfh, nfs_pubfh; -int nfs_pubfhset = 0, nfs_rootfhset = 0; -struct proc *nfsd_master_proc = NULL; +struct nfsrvfh nfs_pubfh; +int nfs_pubfhset = 0; int nfsd_debuglevel = 0; static pid_t nfsd_master_pid = (pid_t)-1; static char nfsd_master_comm[MAXCOMLEN + 1]; static struct timeval nfsd_master_start; static uint32_t nfsv4_sysid = 0; static fhandle_t zerofh; -struct callout nfsd_callout; +static int nfsrv_osd_jail_slot; + +NFSD_VNET_DEFINE(struct proc *, nfsd_master_proc) = NULL; +NFSD_VNET_DEFINE(struct nfsrvhashhead *, nfsrvudphashtbl); +NFSD_VNET_DEFINE(struct nfsrchash_bucket *, nfsrchash_table); +NFSD_VNET_DEFINE(struct nfsrchash_bucket *, nfsrcahash_table); +NFSD_VNET_DEFINE(struct nfsrvfh, nfs_rootfh); +NFSD_VNET_DEFINE(int, nfs_rootfhset) = 0; +NFSD_VNET_DEFINE(struct callout, nfsd_callout); +NFSD_VNET_DEFINE(struct nfsstatsv1 *, nfsstatsv1_p); +NFSD_VNET_DEFINE_STATIC(struct mount *, nfsv4root_mnt); +NFSD_VNET_DEFINE_STATIC(struct vfsoptlist, nfsv4root_opt); +NFSD_VNET_DEFINE_STATIC(struct vfsoptlist, nfsv4root_newopt); +NFSD_VNET_DEFINE_STATIC(bool, nfsrv_suspend_nfsd) = false; +NFSD_VNET_DEFINE_STATIC(bool, nfsrv_mntinited) = false; + +static void nfsrv_cleanup(struct prison *); static int nfssvc_srvcall(struct thread *, struct nfssvc_args *, struct ucred *); @@ -108,7 +121,6 @@ static int nfs_commit_blks; static int nfs_commit_miss; extern int nfsrv_issuedelegs; extern int nfsrv_dolocallocks; -extern int nfsd_enable_stringtouid; extern struct nfsdevicehead nfsrv_devidhead; static int nfsrv_createiovec(int, struct mbuf **, struct mbuf **, @@ -168,8 +180,10 @@ SYSCTL_INT(_vfs_nfsd, OID_AUTO, enable_locallocks, CTLFLAG_RW, &nfsrv_dolocallocks, 0, "Enable nfsd to acquire local locks on files"); SYSCTL_INT(_vfs_nfsd, OID_AUTO, debuglevel, CTLFLAG_RW, &nfsd_debuglevel, 0, "Debug level for NFS server"); -SYSCTL_INT(_vfs_nfsd, OID_AUTO, enable_stringtouid, CTLFLAG_RW, - &nfsd_enable_stringtouid, 0, "Enable nfsd to accept numeric owner_names"); +NFSD_VNET_DECLARE(int, nfsd_enable_stringtouid); +SYSCTL_INT(_vfs_nfsd, OID_AUTO, enable_stringtouid, + CTLFLAG_NFSD_VNET | CTLFLAG_RW, &NFSD_VNET_NAME(nfsd_enable_stringtouid), + 0, "Enable nfsd to accept numeric owner_names"); static int nfsrv_pnfsgetdsattr = 1; SYSCTL_INT(_vfs_nfsd, OID_AUTO, pnfsgetdsattr, CTLFLAG_RW, &nfsrv_pnfsgetdsattr, 0, "When set getattr gets DS attributes via RPC"); @@ -1025,7 +1039,7 @@ nfsvno_read(struct vnode *vp, off_t off, int cnt, struct ucred *cred, nh = nfsrv_sequential_heuristic(uiop, vp); ioflag |= nh->nh_seqcount << IO_SEQSHIFT; /* XXX KDM make this more systematic? */ - nfsstatsv1.srvbytes[NFSV4OP_READ] += uiop->uio_resid; + nfsstatsv1_p->srvbytes[NFSV4OP_READ] += uiop->uio_resid; error = VOP_READ(vp, uiop, IO_NODELOCKED | ioflag, cred); free(iv, M_TEMP); if (error) { @@ -1150,7 +1164,7 @@ nfsvno_write(struct vnode *vp, off_t off, int retlen, int *stable, nh = nfsrv_sequential_heuristic(uiop, vp); ioflags |= nh->nh_seqcount << IO_SEQSHIFT; /* XXX KDM make this more systematic? */ - nfsstatsv1.srvbytes[NFSV4OP_WRITE] += uiop->uio_resid; + nfsstatsv1_p->srvbytes[NFSV4OP_WRITE] += uiop->uio_resid; error = VOP_WRITE(vp, uiop, ioflags, cred); if (error == 0) nh->nh_nextoff = uiop->uio_offset; @@ -3263,7 +3277,7 @@ nfsvno_checkexp(struct mount *mp, struct sockaddr *nam, struct nfsexstuff *exp, error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, &exp->nes_numsecflavor, exp->nes_secflavors); if (error) { - if (nfs_rootfhset) { + if (NFSD_VNET(nfs_rootfhset)) { exp->nes_exflag = 0; exp->nes_numsecflavor = 0; error = 0; @@ -3298,7 +3312,7 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct sockaddr *nam, error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, &exp->nes_numsecflavor, exp->nes_secflavors); if (error) { - if (nfs_rootfhset) { + if (NFSD_VNET(nfs_rootfhset)) { exp->nes_exflag = 0; exp->nes_numsecflavor = 0; error = 0; @@ -3466,9 +3480,9 @@ nfsrv_v4rootexport(void *argp, struct ucred *cred, struct thread *p) struct nameidata nd; fhandle_t fh; - error = vfs_export(&nfsv4root_mnt, &nfsexargp->export); + error = vfs_export(NFSD_VNET(nfsv4root_mnt), &nfsexargp->export); if ((nfsexargp->export.ex_flags & MNT_DELEXPORT) != 0) - nfs_rootfhset = 0; + NFSD_VNET(nfs_rootfhset) = 0; else if (error == 0) { if (nfsexargp->fspec == NULL) { error = EPERM; @@ -3484,11 +3498,11 @@ nfsrv_v4rootexport(void *argp, struct ucred *cred, struct thread *p) error = nfsvno_getfh(nd.ni_vp, &fh, p); vrele(nd.ni_vp); if (!error) { - nfs_rootfh.nfsrvfh_len = NFSX_MYFH; + NFSD_VNET(nfs_rootfh).nfsrvfh_len = NFSX_MYFH; NFSBCOPY((caddr_t)&fh, - nfs_rootfh.nfsrvfh_data, + NFSD_VNET(nfs_rootfh).nfsrvfh_data, sizeof (fhandle_t)); - nfs_rootfhset = 1; + NFSD_VNET(nfs_rootfhset) = 1; } } @@ -3524,29 +3538,53 @@ nfsrv_mallocmget_limit(void) void nfsd_mntinit(void) { - static int inited = 0; - if (inited) + NFSD_LOCK(); + if (NFSD_VNET(nfsrv_mntinited)) { + NFSD_UNLOCK(); return; - inited = 1; - nfsv4root_mnt.mnt_flag = (MNT_RDONLY | MNT_EXPORTED); - TAILQ_INIT(&nfsv4root_mnt.mnt_nvnodelist); - TAILQ_INIT(&nfsv4root_mnt.mnt_lazyvnodelist); - nfsv4root_mnt.mnt_export = NULL; - TAILQ_INIT(&nfsv4root_opt); - TAILQ_INIT(&nfsv4root_newopt); - nfsv4root_mnt.mnt_opt = &nfsv4root_opt; - nfsv4root_mnt.mnt_optnew = &nfsv4root_newopt; - nfsv4root_mnt.mnt_nvnodelistsize = 0; - nfsv4root_mnt.mnt_lazyvnodelistsize = 0; + } + NFSD_VNET(nfsrv_mntinited) = true; + NFSD_UNLOCK(); + + if (curthread->td_ucred->cr_prison == &prison0) + NFSD_VNET(nfsstatsv1_p) = &nfsstatsv1; + else + NFSD_VNET(nfsstatsv1_p) = malloc(sizeof(struct nfsstatsv1), + M_TEMP, M_WAITOK | M_ZERO); + nfsstatsv1_p->srvcache_tcppeak = 0; + nfsstatsv1_p->srvcache_size = 0; + NFSD_VNET(nfsv4root_mnt) = malloc(sizeof(struct mount), M_TEMP, + M_WAITOK | M_ZERO); + NFSD_VNET(nfsv4root_mnt)->mnt_flag = (MNT_RDONLY | MNT_EXPORTED); + mtx_init(&NFSD_VNET(nfsv4root_mnt)->mnt_mtx, "nfs4mnt", NULL, MTX_DEF); + lockinit(&NFSD_VNET(nfsv4root_mnt)->mnt_explock, PVFS, "explock", 0, 0); + TAILQ_INIT(&NFSD_VNET(nfsv4root_mnt)->mnt_nvnodelist); + TAILQ_INIT(&NFSD_VNET(nfsv4root_mnt)->mnt_lazyvnodelist); + NFSD_VNET(nfsv4root_mnt)->mnt_export = NULL; + TAILQ_INIT(&NFSD_VNET(nfsv4root_opt)); + TAILQ_INIT(&NFSD_VNET(nfsv4root_newopt)); + NFSD_VNET(nfsv4root_mnt)->mnt_opt = &NFSD_VNET(nfsv4root_opt); + NFSD_VNET(nfsv4root_mnt)->mnt_optnew = &NFSD_VNET(nfsv4root_newopt); + NFSD_VNET(nfsv4root_mnt)->mnt_nvnodelistsize = 0; + NFSD_VNET(nfsv4root_mnt)->mnt_lazyvnodelistsize = 0; + callout_init(&NFSD_VNET(nfsd_callout), 1); + + nfsrvd_initcache(); + nfsd_init(); } static void nfsd_timer(void *arg) { - - nfsrv_servertimer(); - callout_reset_sbt(&nfsd_callout, SBT_1S, SBT_1S, nfsd_timer, NULL, 0); + struct vnet *vnetp; + + vnetp = (struct vnet *)arg; + NFSD_CURVNET_SET_QUIET(vnetp); + nfsrv_servertimer(vnetp); + callout_reset_sbt(&NFSD_VNET(nfsd_callout), SBT_1S, SBT_1S, nfsd_timer, + arg, 0); + NFSD_CURVNET_RESTORE(); } /* @@ -3628,7 +3666,7 @@ nfsvno_v4rootexport(struct nfsrv_descript *nd) int error = 0, numsecflavor, secflavors[MAXSECFLAVORS], i; uint64_t exflags; - error = vfs_stdcheckexp(&nfsv4root_mnt, nd->nd_nam, &exflags, + error = vfs_stdcheckexp(NFSD_VNET(nfsv4root_mnt), nd->nd_nam, &exflags, &credanon, &numsecflavor, secflavors); if (error) { error = NFSERR_PROGUNAVAIL; @@ -3661,6 +3699,18 @@ out: return (error); *** 1205 LINES SKIPPED *** From nobody Mon May 15 23:45:46 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKwwp4Qd1z4BFy6; Mon, 15 May 2023 23:45: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKwwp40XSz3M2g; Mon, 15 May 2023 23:45:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684194346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q/zcru2bTExZDJ9+x1bFLC/KikXZ/pGJnKhMnxuDlys=; b=jOJmGgXeo5Unk3FlgKvi5noGmeJ7vUs4TIiqNr3Qqf2gBuuJMNoFT2+q8WZ/7rH+Wls2fK 3wxdegLjaAfm0Yoqc5HPlMxBSN/3dYqjNqQbEoNdlxlKUh5OE3+81+Ymq3vBeiXfY5Dr7k kGx32ZCoos4LZGFe6dMi4bZPrclmI64CnO8liv9wlj2wYrMh2/Ye8x5RJS4iRaiNEnxwVQ 70rRaZ56YlmOWypnu9jjVU9TsnO0K3R5McYdblIaolDltK8shwwWkfV23MlRwaZw32TV5n QLrzzRYN1mfvJQeFGzNxX8+ctGBEXTASxLVX9rwd6HMRhJjKyfqQkqc21MraAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684194346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q/zcru2bTExZDJ9+x1bFLC/KikXZ/pGJnKhMnxuDlys=; b=GcKToLSFSXPFYAZwUHAoyEmJ8Ek2RmmnbFM74jB7OLgUHOK5Hf1yYKoP3qgb8GfCofBanM 75U2AxiZDzq5vvIJ/iEPKF1psL/n3OdBfvx4ZjJb7iScf1qblibBYRQbW3Kq9gxhEn7ERO SGQ7R9kGkOvk/ltR2/izUvnB1r0eZDLBB4Fzf7QcQRNT42UkJR0gSaZbs9mXDFGOwM4PLI ZopUz7z2Tm1ILJ/dQS3Nf9WuyJgKtiuQESwFrkrLkrdkpcDy5ixw4cXnqsc78cpsv7tU2A lloxVyhIqWSZJ7cjrrwCtQ2KL0kTOOG8WPfPxs53/4TL6dTwvr+qVCgG5yHTPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684194346; a=rsa-sha256; cv=none; b=PG4b9bCoCBljtrhQnKQ+f279FmfPo0IpEJyDKN1xF/yzZK5SMswp0j9cwmIC9Y5Qtxlqtj mOfRcvhH1sY77L/CpA6wlwgrqyZEUyHBnZdqJbHbVjLIZnqQrMV/xeOHzQaQLOuQPiOAl7 nwoXGG7BK1Nsv4OPJBPiViVxUUCPS+R/+8GbvK+BmR+Nrh3zvnsEiOx7PSx/2Ogpan1nHI vz3rrCSDyGU8txhnQx9yoscT55ZZuj0rtM0Y8prg+0NwJSOoYmRlAw/hCHC2+Gtzk4rwov qJBO3OZJPjSLpi7paXKSKZk9Go35olGv3rgVxWzyHS4T1VXgwilUQ2Fb0V76EA== 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 4QKwwp2n6Qz10rx; Mon, 15 May 2023 23:45:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FNjkLq063020; Mon, 15 May 2023 23:45:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FNjkj2063019; Mon, 15 May 2023 23:45:46 GMT (envelope-from git) Date: Mon, 15 May 2023 23:45:46 GMT Message-Id: <202305152345.34FNjkj2063019@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: 797b9a88c80d - stable/13 - nfsd: Delete nfsrv_prison_cleanup() until vneting enabled List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 797b9a88c80d18c53b613dff6ab478bf88022eb3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=797b9a88c80d18c53b613dff6ab478bf88022eb3 commit 797b9a88c80d18c53b613dff6ab478bf88022eb3 Author: Rick Macklem AuthorDate: 2023-02-12 02:27:59 +0000 Commit: Rick Macklem CommitDate: 2023-05-15 23:44:44 +0000 nfsd: Delete nfsrv_prison_cleanup() until vneting enabled Oops, although the vneting macros do not do anything yet, commit 7344856e3a6d enabled the prison cleanup function, that would get called and crash the system when a jail was terminated. This patch gets rid of nfsrv_prison_cleanup() for now. It can go in when the vnet macros are enabled as front ends to the vnet macros. (cherry picked from commit 4d68605f31fb536722529dc90f16cc47d964882e) --- sys/fs/nfsserver/nfs_nfsdport.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index a58df7b69420..6be29f563ec4 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -94,7 +94,6 @@ static char nfsd_master_comm[MAXCOMLEN + 1]; static struct timeval nfsd_master_start; static uint32_t nfsv4_sysid = 0; static fhandle_t zerofh; -static int nfsrv_osd_jail_slot; NFSD_VNET_DEFINE(struct proc *, nfsd_master_proc) = NULL; NFSD_VNET_DEFINE(struct nfsrvhashhead *, nfsrvudphashtbl); @@ -3699,18 +3698,6 @@ out: return (error); } -/* Osd entry for nfsrv_cleanup. */ -static int -nfsrv_prison_cleanup(void *obj, void *data __unused) -{ - struct prison *pr = obj; - - if ((pr->pr_flags & PR_VNET) == 0) - return (0); - nfsrv_cleanup(pr); - return (0); -} - /* * Nfs server pseudo system call for the nfsd's */ @@ -6918,7 +6905,7 @@ nfsrv_vnetinit(const void *unused __unused) nfsd_mntinit(); } -VNET_SYSINIT(nfsrv_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, +SYSINIT(nfsrv_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, nfsrv_vnetinit, NULL); /* @@ -6988,9 +6975,6 @@ static int nfsd_modevent(module_t mod, int type, void *data) { int error = 0, i; - osd_method_t methods[PR_MAXMETHOD] = { - [PR_METHOD_REMOVE] = nfsrv_prison_cleanup, - }; static int loaded = 0; switch (type) { @@ -7007,8 +6991,6 @@ nfsd_modevent(module_t mod, int type, void *data) vn_deleg_ops.vndeleg_disable = nfsd_disabledelegation; #endif nfsd_call_nfsd = nfssvc_nfsd; - /* XXX-BZ OSD to VNET? */ - nfsrv_osd_jail_slot = osd_jail_register(NULL, methods); loaded = 1; break; @@ -7023,7 +7005,6 @@ nfsd_modevent(module_t mod, int type, void *data) vn_deleg_ops.vndeleg_disable = NULL; #endif nfsd_call_nfsd = NULL; - osd_jail_deregister(nfsrv_osd_jail_slot); nfsrv_cleanup(&prison0); mtx_destroy(&nfsrc_udpmtx); mtx_destroy(&nfs_v4root_mutex); From nobody Mon May 15 23:47:20 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QKwyc3ncQz4BFKy; Mon, 15 May 2023 23:47: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QKwyc3HCHz3MKt; Mon, 15 May 2023 23:47:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684194440; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3+96qqdirmau7VXauBz3Bg1oKjv8NyqG7zSyerNx1Ks=; b=PclJjJKkbtZCbbdc7TOxklw/JVSiy5qQDgN6WioEWCnRpw/PkKU7hVGsIHP6UNk4IdEtQ+ Nj1ldnLt/f4lWcSZeXlTAXKcdyCYeAf5BUrOJHQQmeb6I/1fE8zrrHxUA9oxmMNQLIEd5F RDN5/1ckDwHo1Ax2Qk45D61WMZOwGOuOB4pOHxeMAz7ax1FtzjU8+f/iIzOq9/H0bMpcoh pa/ZhXEEYT0AzDuZNOO8ZUxjAO3snFHi9wsiVqgo28fpJYZ0UTFc8D3NhWFjh13e52Z/yo CabgpeAa2cEttDHA4k+vaQeeBrwHg3e5UBmHo2WK+uGmSbQnAqjoKsR/7F/MuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684194440; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3+96qqdirmau7VXauBz3Bg1oKjv8NyqG7zSyerNx1Ks=; b=NaVqWu2DKkLlj7bMRSTESE0wP9iZI9Bcsk1dfgVypQ7BgaebLz/r2z1NAyr+lBj1ed8pXN KFd9fjaQH4BECs916FFDiPR7GnS714Hz24IDEiVAOioUsv22urydUbN5lgMhAl/qR1dpsG 8GRXAQFN+Izp/PC04ROq2y9BkJ7ceTb+AJCSRAo7EUmv10UnLqbhfYbXB9dfdFY6bG8Kle 9ezqxa60D3GeszE3n2sHfl5G+jghHz6nHtZilnvsvzdI0dZkaofrae+VRPRfRYF/R18ipW 7HwYUmePj3sfd0Gr05+Y4zAEDGBKXN3ncl0aC+c2NWwS0i2gIiOS9RZI3st4aw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684194440; a=rsa-sha256; cv=none; b=bqS50NWYE+LaPHU3TyO7wCna001doFGZgkpttfT74eBwXBNFA1SMMiUtCnEFloZgwnS/JF +TFrQLtUbbpQfJYBn9/jPMiU/bpNn/211udj//MGhXnep6/mvymVYZeJj4gA/6neomnRuq HCkjj9dYS5UACHJalwg6TRcV5axFoBmet0HDO8AUBy9CBfLTi58DrUlHwpp3gVC9QZLEwU pAqfeRc9LNwTHl1hSUcdqa6JlOW+2bNk5mjXiHDJRK+zkbg/mcpH3eiJ/Qf9hySaAXf1pI KT4Hh/nK+NSFMkUtThntQ5b/Zt7yA3lTDumtyHR7w4yd1WjVWTCkpUW4m0dGjg== 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 4QKwyc2LWSz10qJ; Mon, 15 May 2023 23:47:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34FNlKOY063299; Mon, 15 May 2023 23:47:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34FNlKv3063298; Mon, 15 May 2023 23:47:20 GMT (envelope-from git) Date: Mon, 15 May 2023 23:47:20 GMT Message-Id: <202305152347.34FNlKv3063298@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: 764664aaa5d5 - stable/13 - nfsd: Fix initialization broken by 7344856e3a6d List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 764664aaa5d547b58db321c40162eced7fd4da7a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=764664aaa5d547b58db321c40162eced7fd4da7a commit 764664aaa5d547b58db321c40162eced7fd4da7a Author: Rick Macklem AuthorDate: 2023-02-12 17:16:56 +0000 Commit: Rick Macklem CommitDate: 2023-05-15 23:46:29 +0000 nfsd: Fix initialization broken by 7344856e3a6d Oops, although the vneting macros do not do anything yet, commit 7344856e3a6d did change where things are initialized and one of the initialization functions was not being called early enough. This patch moves nfsrvd_init(0) to the function called via (VNET_)SYSINIT() to fix this. (cherry picked from commit fcfdb76e12fb3cdf584e6f06e56e7c48ec475cc6) --- sys/fs/nfsserver/nfs_nfsdkrpc.c | 1 - sys/fs/nfsserver/nfs_nfsdport.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/fs/nfsserver/nfs_nfsdkrpc.c b/sys/fs/nfsserver/nfs_nfsdkrpc.c index 7b0f84c397bc..ca4d9f910562 100644 --- a/sys/fs/nfsserver/nfs_nfsdkrpc.c +++ b/sys/fs/nfsserver/nfs_nfsdkrpc.c @@ -531,7 +531,6 @@ nfsrvd_nfsd(struct thread *td, struct nfsd_nfsd_args *args) */ NFSD_LOCK(); if (NFSD_VNET(nfsrv_numnfsd) == 0) { - nfsrvd_init(0); nfsdev_time = time_second; p = td->td_proc; PROC_LOCK(p); diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 6be29f563ec4..d62c6295ccfa 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -3544,6 +3544,7 @@ nfsd_mntinit(void) return; } NFSD_VNET(nfsrv_mntinited) = true; + nfsrvd_init(0); NFSD_UNLOCK(); if (curthread->td_ucred->cr_prison == &prison0) From nobody Tue May 16 04:11:00 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QL2pr4QpZz4BVTj; Tue, 16 May 2023 04:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QL2pr3qvGz3v9T; Tue, 16 May 2023 04:11:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ctq3J7rPx9pR08C2uBPBmJQi3DsaHoFEXVV7zv/XawM=; b=lH9ikkJpqGjL21V9BeVl6TsZArt4FeaiAYJ0cMveQVkKr1fSOs9YXdwmZeo0q6c5+GdVwB jC0SBG1mSl5su0kwj9KyIPzKoIGiEmjrIbM8kM0+vD6ogM0C23YZMwL//T2Vni69F6MxpX i+sfEQ7EsouzNvHgC6X4R4osrOCJGMwOu4jsnIHQP1q3r/nC9LcDVh5Vrp6d//rIaWFPAX GeL0Brwk+LRNLQmEgsv69+FVC67CjtW3q7sUkX37yxqE6uXIXGhuWJi+DPAjdLrqlRo+3o BP5XYRlDNtVfWdUDn+N25jJylEb/ZyF4cQGYmrfx9mDgVqq4WoJphTg0aVDQOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ctq3J7rPx9pR08C2uBPBmJQi3DsaHoFEXVV7zv/XawM=; b=YS33IA7WAWdwdqFhtRNbRjXZpBE33GivCof+urGSZ2Ei6ip+/IMq6f60RGu+lfr5IknJcD Qafm3d0bkOs7rNiJwbkD4b3OzANAFEfFFd3lFyX0SsNHJiC3z9eoPU/L1h/sLCK7PFgx8L oQ7yEasBM0+VxXfhd2jeJcLYZHNCXVFcpCH7ygfTCqRZPMD4eArC4GJwAgA/ygRneq1vLy FtsCmsl922YEM3ITBu3etj7IJCcjJK/hFPsixBsdMcxtb7j+Cr/pE1zEiB2XsZ0LBqSIoD AZYSUhwoL6+49vsEagCf/u1zR7c02r+3p81CtWZMxryeIcH8of0Tq9fHcRYthg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684210260; a=rsa-sha256; cv=none; b=Rfu3HnhIrN9OtMaJ7pjSqquKbmExxkmAjbxBPYRN6A/f8SfOiugO4HgErOc6tMMNCN9C3Q +BglqI4lC2POxoe6oW0I2uZEhHSSmPCwKlnC7ft/IhyPzPX4a0Rm6gu1L58xx+jtqaJiMp U2Ge7xm4tvOEcFpd8ewxaByuD7CFiMv5+kUaQAW8t8alXllpPocaQmXpoYZONEC/iAl2K/ vaF0ozOiwxoIiW11sj0CBJYThlPrOhLvi8BmlB4M1QkyPKa4cXjHpVDcasekfxDXkBApzI +IZeVpIaI3tJSOC417urGNlpGPYY1BwMt0p/6CXpZZQOw/WhGgjm/wN5aFntTQ== 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 4QL2pr2thwz16qv; Tue, 16 May 2023 04:11:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34G4B0IE001932; Tue, 16 May 2023 04:11:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34G4B04U001931; Tue, 16 May 2023 04:11:00 GMT (envelope-from git) Date: Tue, 16 May 2023 04:11:00 GMT Message-Id: <202305160411.34G4B04U001931@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: b9ca790637fc - stable/13 - quiesce_cpus(): do not overallocate generation array List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: b9ca790637fc25b2d2a190cd925ec2e6cb0db683 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b9ca790637fc25b2d2a190cd925ec2e6cb0db683 commit b9ca790637fc25b2d2a190cd925ec2e6cb0db683 Author: Konstantin Belousov AuthorDate: 2023-05-05 20:21:38 +0000 Commit: Konstantin Belousov CommitDate: 2023-05-16 04:03:37 +0000 quiesce_cpus(): do not overallocate generation array (cherry picked from commit ccc6b87b3825a235991d978e43d29431e012461f) --- sys/kern/subr_smp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 7b250aeccc56..401d54277669 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -975,7 +975,8 @@ quiesce_cpus(cpuset_t map, const char *wmesg, int prio) error = 0; if ((prio & PDROP) == 0) { - gen = malloc(sizeof(u_int) * MAXCPU, M_TEMP, M_WAITOK); + gen = mallocarray(sizeof(u_int), mp_maxid + 1, M_TEMP, + M_WAITOK); for (cpu = 0; cpu <= mp_maxid; cpu++) { if (!CPU_ISSET(cpu, &map) || CPU_ABSENT(cpu)) continue; From nobody Tue May 16 04:11:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QL2ps73MHz4BVTn; Tue, 16 May 2023 04:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QL2ps4dF5z3vcV; Tue, 16 May 2023 04:11:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4RcbBKfPWi6LfGAe+Rfgfiuz4EGNl3WrcgoeHypKfqM=; b=y2uUW2YYbpceFifedH3wUUNFfo+AcjthaaEhUyulOMUKU5IYPyMGc5+ISwLRgbOJsnBqQF HJo2wnwBb9LQMcswZwMW1Wkpe+b24Ox4ZgnBoLhLwU91VkOhR8MqgG7UUiTGlKqgPuwitP PC4irm6zg3Jfj3sPsy20IM48EjuG4g0A1U6iCVzNpOGwWYGhIANRC4Xm00Rkz7GbEDoRcx fwYGesFcxMPPkLZ0VuUF6g/1YowKCOsmSI3dT6ZB8fpmlqriEKX+QVeEbdNXJwknnAGGRH N2zFknVgFfk6Y/FVy0r19JDL0wm5Yb74ZXaK2gXkgzk8IT0OZDAdfXprFrgXSQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4RcbBKfPWi6LfGAe+Rfgfiuz4EGNl3WrcgoeHypKfqM=; b=hlkgFNFovq+ErDmbesT0gfQLpe6zPbCWmKRYSC/cpBLFYL6JFXM8VjOVMv1ghxIf9W3oGu BaDCx2XMD8fkmE/x2wyRpW/GG+1XM/fFMH82HKp7t8exupR5sy6yC63JEUP0OSoxkBa94A JkTBzl61d/pOdW+peY2/VVZileTJYyY3Th4bvIWi3JMxxyVaFb+ZgvKxNPAhsceh+8KoN0 MRqgd7MZ+ZU72jjqCaStJsvgvg4EZyJknQXBiPxSJR4JC8RnEB5GofKbpTVSxHapWhPTF2 46s3cAHKfZFIQ/TW3SbkcDsYmPwCFTY8yyk5uJR4rIFDtmmKmWZ4HqS/ucvsjg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684210261; a=rsa-sha256; cv=none; b=UM4EdHgsCbb6Cr3u+3qyDT4eYoM8ecQo4+CielSzwjNugVAtVvuoPWMFBLIdybFWDpleC6 IAtFaZ7E6udeb9rrlp1V4xge+/UPrgtdGAjF8s4DacOoVWBPb0fzu/CyTHhkWZieBFh8mr J5hKrHOgadDi5DGoJ5Ube9FCNe94M+5Uo0oKM1qXtikZuVi2GUoN+Uq0jQtJ/tWCBd1NXa tFWzMT83urAuEcsUpGoxWFAl/bH9u8x9ndg6VHvRPYKLOhMw1+s9gTGd2pkMY4TRVH7zJP HEcU/Vn/bymn5YPxuo0R6gfpFZbxaYiCnaIx+4cMg8wbfQ6+R1gpbjO4Vjx7uw== 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 4QL2ps3V2Tz17Ft; Tue, 16 May 2023 04:11:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34G4B1tS001975; Tue, 16 May 2023 04:11:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34G4B1fQ001974; Tue, 16 May 2023 04:11:01 GMT (envelope-from git) Date: Tue, 16 May 2023 04:11:01 GMT Message-Id: <202305160411.34G4B1fQ001974@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: 5fdd2bfef42c - stable/13 - smp_topo: dynamically allocate group array List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 5fdd2bfef42c4bae197c56051c2066e499c43e4d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5fdd2bfef42c4bae197c56051c2066e499c43e4d commit 5fdd2bfef42c4bae197c56051c2066e499c43e4d Author: Konstantin Belousov AuthorDate: 2023-05-05 20:24:22 +0000 Commit: Konstantin Belousov CommitDate: 2023-05-16 04:03:37 +0000 smp_topo: dynamically allocate group array (cherry picked from commit 9801e7c275f6ec42a44b98a2e2e1a8ac4674a096) --- sys/kern/subr_smp.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 401d54277669..0ecc13251632 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -630,8 +630,6 @@ smp_rendezvous(void (* setup_func)(void *), smp_rendezvous_cpus(all_cpus, setup_func, action_func, teardown_func, arg); } -static struct cpu_group group[MAXCPU * MAX_CACHE_LEVELS + 1]; - static void smp_topo_fill(struct cpu_group *cg) { @@ -713,9 +711,14 @@ smp_topo(void) struct cpu_group * smp_topo_alloc(u_int count) { + static struct cpu_group *group = NULL; static u_int index; u_int curr; + if (group == NULL) { + group = mallocarray((mp_maxid + 1) * MAX_CACHE_LEVELS + 1, + sizeof(*group), M_DEVBUF, M_WAITOK | M_ZERO); + } curr = index; index += count; return (&group[curr]); @@ -726,7 +729,7 @@ smp_topo_none(void) { struct cpu_group *top; - top = &group[0]; + top = smp_topo_alloc(1); top->cg_parent = NULL; top->cg_child = NULL; top->cg_mask = all_cpus; @@ -780,9 +783,9 @@ smp_topo_1level(int share, int count, int flags) int i; cpu = 0; - top = &group[0]; + top = smp_topo_alloc(1); packages = mp_ncpus / count; - top->cg_child = child = &group[1]; + top->cg_child = child = top + 1; top->cg_level = CG_SHARE_NONE; for (i = 0; i < packages; i++, child++) cpu = smp_topo_addleaf(top, child, share, count, flags, cpu); @@ -801,8 +804,8 @@ smp_topo_2level(int l2share, int l2count, int l1share, int l1count, int j; cpu = 0; - top = &group[0]; - l2g = &group[1]; + top = smp_topo_alloc(1); + l2g = top + 1; top->cg_child = l2g; top->cg_level = CG_SHARE_NONE; top->cg_children = mp_ncpus / (l2count * l1count); From nobody Tue May 16 04:11:02 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QL2pv1CL6z4BVRL; Tue, 16 May 2023 04:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QL2pt5J1sz3vgF; Tue, 16 May 2023 04:11:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oB48UBhlXjAw+WLXt9uKgBdaBm4m6Ki+sZMrZjykWUg=; b=Ia2aqPSRPFN92XhI+9j91rNX8zQSm01YXEnYYZrinrHuvvpLH/t9rp0NSXt7AmXCOJwvyo BIQ+RNda/bSDg/YU7L9FkZtNk8P/lluXE/vpvVt9G+KrdabiIxg2XwDHvqTTXVhneW7ifw OswX61mhobjXb2o2TnPFoEKKcWMYG91xtqjMZ0+tuzJGkGCUtlUQ+AE9uwEtcLvDT1QhVo vKsYIPRHIh37IOOtK/zzxHakWogNXCK2xIT27Er4pHhhwOnrPOQ7l8rcT7tvaBLH3HNpTw xa3CXRiua9Y1zzj71542CwUuBFazXhhhZIU8LxN/QzkPZjmW/qtjRdqxZ7aRSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oB48UBhlXjAw+WLXt9uKgBdaBm4m6Ki+sZMrZjykWUg=; b=bCsK2pPnjkcK5VgAp/zsES0x/Y6sKJXTrl/0UDYpA8AyLu8Gebn4qqMhOBseMa11dLsV36 bNDxRmiG3SZ3G3s9TY2SDoeiHH7r1aqnWk49g+55DxtRRUV2u4emdQiNe1rw1EjLSItG8i pyU81DOMSWKrmNl4/JCq5ZsvugkC9eB7x96A+Cmak8YGfjqxvl9IYU9aFoBJbKflLyus1a lwBeUZ+vyvxYlzzuCHitWyQkc+F1dCkOU6NU/LmAXq4S/SKR17RHShfiM6r6TPVpZghStf m8I/eailJ/qqQQa3yGkMADg//lSjY01u0I/DT6/ThMPAY0GkcgRwmVGcRz/OJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684210262; a=rsa-sha256; cv=none; b=hySGkdVfr3HUKuuEuKNN373WglFyGa4muQx952100oCbZJBjm/LVjW1mD7R+NXo12el0nB 91a8psyf6CXiTUpxaLBfqQUnpIozzYStPzRhkmRHHvy7OAJr13tLN+RKkrS11TzhofYJwa 6ug1zcr+1Eay1Q4kA+lLdAYge3h6NOw6QYDLaNSUsN7Uvy4m5M96tFTIVn3h9c6ATSHpPB KJruv8VfgoQwBQJ62CX+0eppegTKwnI5imZ9nv5sfsN8xgVvB9a6OppswLyopepfy2Wfwu bIrb8P5QjhBnqd3sNwLaCflGf9Fl9H0ZCKA/xNGcnw3sQPLofH1DAejgEGH93w== 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 4QL2pt4PfVz17Fv; Tue, 16 May 2023 04:11:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34G4B2Id001996; Tue, 16 May 2023 04:11:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34G4B2MC001994; Tue, 16 May 2023 04:11:02 GMT (envelope-from git) Date: Tue, 16 May 2023 04:11:02 GMT Message-Id: <202305160411.34G4B2MC001994@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: f296166d7be4 - stable/13 - smp_topo(): make it idempotent List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: f296166d7be49b6105105344980cd45079551a9e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=f296166d7be49b6105105344980cd45079551a9e commit f296166d7be49b6105105344980cd45079551a9e Author: Konstantin Belousov AuthorDate: 2023-05-07 18:37:42 +0000 Commit: Konstantin Belousov CommitDate: 2023-05-16 04:03:37 +0000 smp_topo(): make it idempotent (cherry picked from commit d0f67f97579f7b2febf29264b1874a95056dec06) --- sys/kern/subr_smp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 0ecc13251632..8d3e398d6b54 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -645,7 +645,14 @@ struct cpu_group * smp_topo(void) { char cpusetbuf[CPUSETBUFSIZ], cpusetbuf2[CPUSETBUFSIZ]; - struct cpu_group *top; + static struct cpu_group *top = NULL; + + /* + * The first call to smp_topo() is guaranteed to occur + * during the kernel boot while we are still single-threaded. + */ + if (top != NULL) + return (top); /* * Check for a fake topology request for debugging purposes. From nobody Tue May 16 04:11:03 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QL2pw0Z3fz4BVM2; Tue, 16 May 2023 04:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QL2pv5y7Fz3vLv; Tue, 16 May 2023 04:11:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=35pBopo/9sxhlo5sqXvkCfZurbFe+j/3eQs0+IhIZmI=; b=DZCZceh+pvqfun0ovKfvZ9tUZyLb1jS9LtsQ+p8zVQy/CYQ7ZGGs/RWlpj1RZsjl5HMTxG xOF7xvI4FxZ8mRLlcPMElKrRHKCjO1pWhabihTLD+Ql8c3Gtx3Z7sBch28f1OwJoO+c01A bM8lmOyeEaL26mQypUaMUKIxmUIbtIovB0+hGUtllBIJ+SrkZwKwMO7DiyWgZ7Tq0Jie4U A6zamkpJUtOgRoXljZYejl/+g82zEY3bq79wB15RV4nApvK0bAn4QktXQ8Ecmr6TLOPvk1 /tmndGUqQ9GwIOVfHKvAuEJeO0GZTdBYpKTAaR7z6khE2fnzBgrWeiWSsr2fiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684210263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=35pBopo/9sxhlo5sqXvkCfZurbFe+j/3eQs0+IhIZmI=; b=Od1hx1uTzwpszUMEq4tnjTN5cS2K7VMvRJckD+dApYh20XYejcwvphCc6qhGfIon9got8O cftxEhHEhbjjZ54mCS5Xg3REKmK7135RQoVUKSP+PtQe9phdJ5zoXe70QtVy/aq+NR56n+ oGAva9YWPe/DgivX6RtbFs4fvSn9n4sn8ug6q8pTe/no7E3v7NoqNp5eAM0bEsw70wHQwk ItMsoXdyR4812c433ULSv+HjI1TZ9bOlv8v88RK3i8gzFlakDanOQAGufUcOPCMDJ+3Sn8 teg7+qz7I5zONjtw3rdhTCMJVB//LpFSTrmpoJAuIJ4Icfcw5TLVLNhH7lwnog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684210263; a=rsa-sha256; cv=none; b=VltEeU+tXyELoscvCLfl53AjhFXcwKfG7nyoRlTEHJHF4UC9NYXvhtM25kRMLjPCyDe3qV kyqQYrbQR++/1fv9LmHI80JvJnyjuc5JOo5diswU6aoze9jz9+xQ+3VDRguv6me5lJYCP2 JpW+d5CPIbC9GZHr3MNtLj32sk2x9GAncP+LzYAhhyZQRK608ft30W35nM2Ig4/AEWrlv3 3J5s1ab5Ogmj8coAHklzSYx7XSIE0Fe3gqVEGyh+SQj5vCb7UlO+cAqwacy10bEBZK2+uM NFZTysdQu3So6Al5kd1SSrroUmUsWHmn3HNdYF801+/wnhmZZuSsdQNE1nysSA== 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 4QL2pv54Hgz16n0; Tue, 16 May 2023 04:11:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34G4B3kM002015; Tue, 16 May 2023 04:11:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34G4B3Qg002014; Tue, 16 May 2023 04:11:03 GMT (envelope-from git) Date: Tue, 16 May 2023 04:11:03 GMT Message-Id: <202305160411.34G4B3Qg002014@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: 13e15ac4990c - stable/13 - smp_topo(): correct allocation sizes for trivial topologies List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 13e15ac4990ca2f725ea10c1d9f74398b737ccc9 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=13e15ac4990ca2f725ea10c1d9f74398b737ccc9 commit 13e15ac4990ca2f725ea10c1d9f74398b737ccc9 Author: Konstantin Belousov AuthorDate: 2023-05-09 15:08:22 +0000 Commit: Konstantin Belousov CommitDate: 2023-05-16 04:03:38 +0000 smp_topo(): correct allocation sizes for trivial topologies (cherry picked from commit 361c8f75a61832d9aa3dd4c589a0220f3467466f) --- sys/kern/subr_smp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 8d3e398d6b54..fafdc5b65cab 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -790,8 +790,8 @@ smp_topo_1level(int share, int count, int flags) int i; cpu = 0; - top = smp_topo_alloc(1); packages = mp_ncpus / count; + top = smp_topo_alloc(1 + packages); top->cg_child = child = top + 1; top->cg_level = CG_SHARE_NONE; for (i = 0; i < packages; i++, child++) @@ -811,7 +811,8 @@ smp_topo_2level(int l2share, int l2count, int l1share, int l1count, int j; cpu = 0; - top = smp_topo_alloc(1); + top = smp_topo_alloc(1 + mp_ncpus / (l2count * l1count) + + mp_ncpus / l1count); l2g = top + 1; top->cg_child = l2g; top->cg_level = CG_SHARE_NONE; From nobody Tue May 16 13:42:50 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLHVf70yVz4B3bS; Tue, 16 May 2023 13:42: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLHVf6Nxmz3jGV; Tue, 16 May 2023 13:42:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684244570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wr3FttLFacjzZUhVFArxcqoy9n7t+b2rYoSnEs8BIdk=; b=j9Sawqtzp33ibbxYuGGpljdfEuAoq9nUhGo8kJtjsKLSNRysNHGOmoSkcO2S985pQ92kXq 6+lQnPhd1oHxq33koM9sKMtcz8I8woXlJViEzhWNDfDPT67aW9hFi2vMnz0Fm0BwlEH582 GX4Q6jMfA3FsKeC/e7KSoXVHB/0e2C1M/wsEkdnurLsX/naYkeDF+S/aXopLYm5s1YxoyU LNktQ5ssetjTh+KRAf30utNp7qd3Oa7aw+W8Cu8J2W60c9TzX13vK/iOazrIt6fNQ/pz6R 3wdDb/ejK8UxpL5rkENqeahhhJ13ZAt2Yijs9wRhdTa9hJeKl2aBBJ6WdmMCjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684244570; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wr3FttLFacjzZUhVFArxcqoy9n7t+b2rYoSnEs8BIdk=; b=ozA02mk3PdWqs+IuLYTIZo4j+vDEi12mumygmG1+gKbCGrZKWIASQ7UpzOxQU6kXfl/UcS 85rLYKy0hC7L23RNcRnrZ0VrhDGqzvv/CiMTuZYeznTtjUoqmUJEYG69INcBWZP9B4jVEd atbEPKPeuCtSJ5LgEWiYOgh9ubZngg10+GQF0hJByWylX7U+3K9irxOiKvFJaGw12cFJ4r ldgZiVleaa7SqifAkBlvMqUmomhpCA/n2+oEmoniUjd/Nf18jNQU3gDpxSWqxhK1CLi0GM FwGlklkPWSdJgwTiNAK42LzqD8WPcPYnVtnzWMBzSP4msYRAe+zvIJyEkND8EQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684244570; a=rsa-sha256; cv=none; b=lMoj4F3IUDUAPQxhiJt6U9pUV7a7mCSiHyEdOZ8vFcjsuaRzozRgn7AN13bGSP/ItLFVnz ocEXySRP3cq5+Nq+RY8lw4MfTJ8PJqraypNMhvPGSM0FAHcfEevhWGzFi5hQ31QQt/U4R+ tx2jgCee4NHcNLQuC1l/k5QjV6NvUg9h5rqirXGWBuIZhCZmYTgvGJ+vfYvbLSTKKHJcyu bTn7PXdtQHELI6J7Cml36Um8Rp/gVC28FC3NZcTGa5PatJaiCLMnMbNeRhwv9/lTOQ14xG Xc4vUwKjODHeiIRQOis5qxKuqGoEtWYf2zJHuyw5FDmZl8/kJJIm/D0e76bYxA== 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 4QLHVf5SvxzPfp; Tue, 16 May 2023 13:42:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GDgoCA044651; Tue, 16 May 2023 13:42:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GDgopa044650; Tue, 16 May 2023 13:42:50 GMT (envelope-from git) Date: Tue, 16 May 2023 13:42:50 GMT Message-Id: <202305161342.34GDgopa044650@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Takanori Watanabe Subject: git: 5d261b0cc851 - stable/13 - acpi_ged: New driver to ACPI generic event device List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: takawata X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5d261b0cc851e80912cd850bf1aa3fee8d747da7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by takawata: URL: https://cgit.FreeBSD.org/src/commit/?id=5d261b0cc851e80912cd850bf1aa3fee8d747da7 commit 5d261b0cc851e80912cd850bf1aa3fee8d747da7 Author: Takanori Watanabe AuthorDate: 2022-10-18 05:41:53 +0000 Commit: Takanori Watanabe CommitDate: 2023-05-16 13:40:40 +0000 acpi_ged: New driver to ACPI generic event device New driver to ACPI generic event device, defined in ACPI spec. Some ACPI power button may not work without this. In qemu arm64 with "virt" machine, with ACPI firmware, enable devd check devd message by and invoke following command in qemu monitor (qemu) system_powerdown and make sure some power button input event appear. (setting sysctl hw.acpi.power_button_state=S5 is not work, because ACPI tree does not have \_S5 object.) Reviewed by: andrew, hrs Differential Revision: https://reviews.freebsd.org/D37032 (cherry-picked from a9880bfe1181b7a32d026339bae113f24300e5e1) acpi_ged: fix build, as module and non INTRNG case. Reviewed-by: cy Differential Revision: https://reviews.freebsd.org/D37104 (cherry-picked from 9cf5db63698b3c73edd632412bf68735d3c20d37) acpi_ged: fix build with ACPI_DEBUG (cherry-picked from ba23f762ece54a86f64b8ef62bbfc9c73c98762c) Make it compile for 13-stable. --- share/man/man4/acpi_ged.4 | 64 +++++++++ sys/conf/files | 1 + sys/dev/acpica/acpi_ged.c | 268 +++++++++++++++++++++++++++++++++++++ sys/modules/acpi/Makefile | 2 +- sys/modules/acpi/acpi_ged/Makefile | 11 ++ 5 files changed, 345 insertions(+), 1 deletion(-) diff --git a/share/man/man4/acpi_ged.4 b/share/man/man4/acpi_ged.4 new file mode 100644 index 000000000000..dd62e172ae8d --- /dev/null +++ b/share/man/man4/acpi_ged.4 @@ -0,0 +1,64 @@ +.\" Copyright (c) 2022 Takanori Watanabe +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd October 18, 2022 +.Dt ACPI_GED 4 +.Os +.Sh NAME +.Nm acpi_ged +.Nd "ACPI Generic Event Device" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device acpi_ged" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +acpi_ged_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver provides support for generic events interface. +This handles interrupts and evaluates the specific ACPI method. +This may generate optionally ACPI notify for another device. +.Sh SEE ALSO +.Xr acpi 4 +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 14.0 . +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Takanori Watanabe Aq Mt takawata@FreeBSD.org diff --git a/sys/conf/files b/sys/conf/files index 928289668166..dc776d09abf5 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -822,6 +822,7 @@ dev/acpica/acpi_button.c optional acpi dev/acpica/acpi_cmbat.c optional acpi dev/acpica/acpi_cpu.c optional acpi dev/acpica/acpi_ec.c optional acpi +dev/acpica/acpi_ged.c optional acpi_ged acpi dev/acpica/acpi_isab.c optional acpi isa dev/acpica/acpi_lid.c optional acpi dev/acpica/acpi_package.c optional acpi diff --git a/sys/dev/acpica/acpi_ged.c b/sys/dev/acpica/acpi_ged.c new file mode 100644 index 000000000000..5b946a80f06c --- /dev/null +++ b/sys/dev/acpica/acpi_ged.c @@ -0,0 +1,268 @@ +/*- + * Copyright (c) 2022 Takanori Watanabe + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_acpi.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/* Hooks for the ACPI CA debugging infrastructure */ +#define _COMPONENT ACPI_BUS +ACPI_MODULE_NAME("GED") + +static MALLOC_DEFINE(M_ACPIGED, "acpiged", "ACPI Generic event data"); + +struct acpi_ged_event { + device_t dev; + struct resource *r; + int rid; + void *cookie; + ACPI_HANDLE ah; + ACPI_OBJECT_LIST args; + ACPI_OBJECT arg1; +}; + +struct acpi_ged_softc { + int numevts; + struct acpi_ged_event *evts; +}; + +static int acpi_ged_probe(device_t dev); +static int acpi_ged_attach(device_t dev); +static int acpi_ged_detach(device_t dev); + +static char *ged_ids[] = { "ACPI0013", NULL }; + +static device_method_t acpi_ged_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, acpi_ged_probe), + DEVMETHOD(device_attach, acpi_ged_attach), + DEVMETHOD(device_detach, acpi_ged_detach), + DEVMETHOD_END +}; + +static driver_t acpi_ged_driver = { + "acpi_ged", + acpi_ged_methods, + sizeof(struct acpi_ged_softc), +}; + +static devclass_t acpi_ged_devclass; +DRIVER_MODULE(acpi_ged, acpi, acpi_ged_driver, acpi_ged_devclass, 0, 0); +MODULE_DEPEND(acpi_ged, acpi, 1, 1, 1); + +static void +acpi_ged_evt(void *arg) +{ + struct acpi_ged_event *evt = arg; + + AcpiEvaluateObject(evt->ah, NULL, &evt->args, NULL); +} + +static void +acpi_ged_intr(void *arg) +{ + AcpiOsExecute(OSL_GPE_HANDLER, acpi_ged_evt, arg); +} +static int +acpi_ged_probe(device_t dev) +{ + int rv; + + if (acpi_disabled("ged")) + return (ENXIO); + rv = ACPI_ID_PROBE(device_get_parent(dev), dev, ged_ids, NULL); + if (rv > 0) + return (ENXIO); + + device_set_desc(dev, "Generic Event Device"); + return (rv); +} + +/*this should be in acpi_resource.*/ +static int +acpi_get_trigger(ACPI_RESOURCE *res) +{ + int trig; + + switch (res->Type) { + case ACPI_RESOURCE_TYPE_IRQ: + KASSERT(res->Data.Irq.InterruptCount == 1, + ("%s: multiple interrupts", __func__)); + trig = res->Data.Irq.Triggering; + break; + case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: + KASSERT(res->Data.ExtendedIrq.InterruptCount == 1, + ("%s: multiple interrupts", __func__)); + trig = res->Data.ExtendedIrq.Triggering; + break; + default: + panic("%s: bad resource type %u", __func__, res->Type); + } + + return (trig == ACPI_EDGE_SENSITIVE) + ? INTR_TRIGGER_EDGE : INTR_TRIGGER_LEVEL; +} + +static int +acpi_ged_attach(device_t dev) +{ + struct acpi_ged_softc *sc = device_get_softc(dev); + struct resource_list *rl; + struct resource_list_entry *rle; + ACPI_RESOURCE ares; + ACPI_HANDLE evt_method; + int i; + int rawirq, trig; + char name[] = "_Xnn"; + + ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); + + if (ACPI_FAILURE(AcpiGetHandle(acpi_get_handle(dev), "_EVT", + &evt_method))) { + device_printf(dev, "_EVT not found\n"); + evt_method = NULL; + } + + rl = BUS_GET_RESOURCE_LIST(device_get_parent(dev), dev); + STAILQ_FOREACH(rle, rl, link) { + if (rle->type == SYS_RES_IRQ) { + sc->numevts++; + } + } + sc->evts = mallocarray(sc->numevts, sizeof(*sc->evts), M_ACPIGED, + M_WAITOK | M_ZERO); + for (i = 0; i < sc->numevts; i++) { + sc->evts[i].dev = dev; + sc->evts[i].rid = i; + sc->evts[i].r = bus_alloc_resource_any(dev, SYS_RES_IRQ, + &sc->evts[i].rid, RF_ACTIVE | RF_SHAREABLE); + if (sc->evts[i].r == NULL) { + device_printf(dev, "Cannot alloc %dth irq\n", i); + continue; + } +#ifdef INTRNG + { + struct intr_map_data_acpi *ima; + ima = rman_get_virtual(sc->evts[i].r); + if (ima == NULL) { + device_printf(dev, "map not found" + " non-intrng?\n"); + rawirq = rman_get_start(sc->evts[i].r); + trig = INTR_TRIGGER_LEVEL; + if (ACPI_SUCCESS(acpi_lookup_irq_resource + (dev, sc->evts[i].rid, + sc->evts[i].r, &ares))) { + trig = acpi_get_trigger(&ares); + } + } else if (ima->hdr.type == INTR_MAP_DATA_ACPI) { + device_printf(dev, "Raw IRQ %d\n", ima->irq); + rawirq = ima->irq; + trig = ima->trig; + } else { + device_printf(dev, "Not supported intr" + " type%d\n", ima->hdr.type); + continue; + } + } +#else + rawirq = rman_get_start(sc->evts[i].r); + trig = INTR_TRIGGER_LEVEL; + if (ACPI_SUCCESS(acpi_lookup_irq_resource + (dev, sc->evts[i].rid, + sc->evts[i].r, &ares))) { + trig = acpi_get_trigger(&ares); + } +#endif + if (rawirq < 0x100) { + sprintf(name, "_%c%02X", + ((trig == INTR_TRIGGER_EDGE) ? 'E' : 'L'), + rawirq); + if (ACPI_SUCCESS(AcpiGetHandle + (acpi_get_handle(dev), + name, &sc->evts[i].ah))) { + sc->evts[i].args.Count = 0; /* ensure */ + } else { + sc->evts[i].ah = NULL; /* ensure */ + } + } + + if (sc->evts[i].ah == NULL) { + if (evt_method != NULL) { + sc->evts[i].ah = evt_method; + sc->evts[i].arg1.Type = ACPI_TYPE_INTEGER; + sc->evts[i].arg1.Integer.Value = rawirq; + sc->evts[i].args.Count = 1; + sc->evts[i].args.Pointer = &sc->evts[i].arg1; + } else{ + device_printf + (dev, + "Cannot find handler method %d\n", + i); + continue; + } + } + + if (bus_setup_intr(dev, sc->evts[i].r, + INTR_TYPE_MISC | INTR_MPSAFE, NULL, acpi_ged_intr, + &sc->evts[i], &sc->evts[i].cookie) != 0) { + device_printf(dev, "Failed to setup intr %d\n", i); + } + } + + return_VALUE(0); +} + +static int +acpi_ged_detach(device_t dev) +{ + struct acpi_ged_softc *sc = device_get_softc(dev); + int i; + + for (i = 0; i < sc->numevts; i++) { + if (sc->evts[i].cookie) { + bus_teardown_intr(dev, sc->evts[i].r, + sc->evts[i].cookie); + } + if (sc->evts[i].r) { + bus_release_resource(dev, SYS_RES_IRQ, sc->evts[i].rid, + sc->evts[i].r); + } + } + free(sc->evts, M_ACPIGED); + + return (0); +} diff --git a/sys/modules/acpi/Makefile b/sys/modules/acpi/Makefile index 552c4d2cbba0..71e083fef700 100644 --- a/sys/modules/acpi/Makefile +++ b/sys/modules/acpi/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ SUBDIR= acpi_asus acpi_asus_wmi acpi_dock acpi_fujitsu acpi_hp \ - acpi_ibm acpi_panasonic acpi_sony acpi_toshiba \ + acpi_ged acpi_ibm acpi_panasonic acpi_sony acpi_toshiba \ acpi_video acpi_wmi aibs .include diff --git a/sys/modules/acpi/acpi_ged/Makefile b/sys/modules/acpi/acpi_ged/Makefile new file mode 100644 index 000000000000..87dd53b88b2b --- /dev/null +++ b/sys/modules/acpi/acpi_ged/Makefile @@ -0,0 +1,11 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/dev/acpica +.if ${MACHINE_CPUARCH} == "aarch64" +CFLAGS += -DINTRNG +.endif +KMOD= acpi_ged +SRCS= acpi_ged.c +SRCS+= opt_acpi.h opt_evdev.h acpi_if.h bus_if.h device_if.h + +.include From nobody Tue May 16 14:26:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLJTM610Dz4B5V4; Tue, 16 May 2023 14:26: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLJTM5j6Yz3lMS; Tue, 16 May 2023 14:26:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684247207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C8OGSGvGyYs3HKhv3Q2o/FI8Sqv+y7jeZ9zOXv5sBEw=; b=v7bhkd3EZ/Md90QmGXfdFEUg/UZ0PvzS/KYoxbYXmmuK3IiS8SDmpwvH74+GFvYSOe4NsY bee4dsDLKziBcP2pJ3ydG8agrvlGojPrxs0VkrUW3FLqCNmsp4fnfSNO+4yyGXJNyIeyZz R7vTx6goonuE+s+rgUvaxz1CTg1h1pATzFHB+LJFE4dy4fAicS0N6IEHKdKTDw+dTalflw zI2HuXANVCCMlUU5Nd9WjyKhnopWXFgH3HfJBcXQ6/sZPVdzjFf01NN5QsCoG7fsSybq3e MH5r5KchD/6teLTQYOuyZwvBogdMMgYpkaYMNIxzHWR0EVzQc/e32Rq+OOgppg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684247207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=C8OGSGvGyYs3HKhv3Q2o/FI8Sqv+y7jeZ9zOXv5sBEw=; b=NIPYPGnOWyeCQovtZh6igb9qmyZbE/myh7K/A2pEZIJGZtyJsNkNnffadRKvcS/F+LhQzR dKOB40f30A1NXv75EM/RzetJpsjzbjwS5mN59jl+9XN/gS9PvbqPK8BuPkKJY6OR1Tsnmg kkmCe/ZBSDQYfyvt50E8EXk4tXwUwdDJed6HFqbJz5DZJNvRJsKtizFFtQ4qo3eDaXeH0m HJWfIq7ODtAGQ0ZLVzeC+6aDnxlJpNVNCiA5kWPYsV/Ie+f0IDk20PthdEeQRAefR5D34e 10hTeDFAQ1CWrOYXQynkACBCA3vBs7f40nXBVHHaqPpc6bYELHPvbYa+07nnsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684247207; a=rsa-sha256; cv=none; b=rOdZIeK+WikTq03h3PCF7Z8AYSXUUBOJ4GYDp22jRY7mG5S2jjXQR24jOWrSzapDR7NNwr 7Abl/sGxkx2t2VkVTqyllkKG3jptfqq+a5BvgSc4g9vgUnxC7leW6nL6poekSSkGmsqii+ upYW0znCqAptCo+85CIpF0A+BTAJ5KmZbCSDOChycgMCC6jAjLRttRhPeWEHU1E0J81vDB L+n9uToPhq5NTno7yk/Nz0v4/iTQwOVcmhMkohyK9EWENVxcopn9mFrnOXsDPaO1L6VGTL 6UJB6Xrc1/GBJ2EArId+Eich0UVmiWRarXKOXuglb6m9UYGjq71KgqXd2O54XQ== 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 4QLJTM4l9BzQb0; Tue, 16 May 2023 14:26:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GEQlww011435; Tue, 16 May 2023 14:26:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GEQlFJ011434; Tue, 16 May 2023 14:26:47 GMT (envelope-from git) Date: Tue, 16 May 2023 14:26:47 GMT Message-Id: <202305161426.34GEQlFJ011434@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: 1304042bce83 - stable/13 - nfsd: Continue adding macros so nfsd can run in a vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 1304042bce8367323d6f8461cc9592c15b193b0f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=1304042bce8367323d6f8461cc9592c15b193b0f commit 1304042bce8367323d6f8461cc9592c15b193b0f Author: Rick Macklem AuthorDate: 2023-02-13 23:07:17 +0000 Commit: Rick Macklem CommitDate: 2023-05-16 14:25:15 +0000 nfsd: Continue adding macros so nfsd can run in a vnet prison Commit 7344856e3a6d added a lot of macros that will front end vnet macros so that nfsd(8) can run in vnet prison. This patch adds some more of them and also a lot of uses of nfsstatsv1_p instead of nfsstatsv1. nfsstatsv1_p points to nfsstatsv1 for prison0, but will point to a malloc'd structure for other prisons. It also puts nfsstatsv1_p in nfscommon.ko instead of nfsd.ko. (cherry picked from commit 9d329bbc9aea6b8f47df251072bc65403ac3e43e) --- sys/fs/nfs/nfs_commonkrpc.c | 15 +- sys/fs/nfs/nfs_commonport.c | 305 ++++++++++++++++++++++------------------ sys/fs/nfsserver/nfs_nfsdport.c | 12 +- 3 files changed, 177 insertions(+), 155 deletions(-) diff --git a/sys/fs/nfs/nfs_commonkrpc.c b/sys/fs/nfs/nfs_commonkrpc.c index 9badd8be47d4..bf0a9e6e53ef 100644 --- a/sys/fs/nfs/nfs_commonkrpc.c +++ b/sys/fs/nfs/nfs_commonkrpc.c @@ -92,7 +92,6 @@ NFSSTATESPINLOCK; NFSREQSPINLOCK; NFSDLOCKMUTEX; NFSCLSTATEMUTEX; -extern struct nfsstatsv1 nfsstatsv1; extern struct nfsreqhead nfsd_reqq; extern int nfscl_ticks; extern void (*ncl_call_invalcaches)(struct vnode *); @@ -100,6 +99,8 @@ extern int nfs_numnfscbd; extern int nfscl_debuglevel; extern int nfsrv_lease; +NFSD_VNET_DECLARE(struct nfsstatsv1 *, nfsstatsv1_p); + SVCPOOL *nfscbd_pool; int nfs_bufpackets = 4; static int nfsrv_gsscallbackson = 0; @@ -782,7 +783,7 @@ newnfs_request(struct nfsrv_descript *nd, struct nfsmount *nmp, procnum = NFSV4PROC_COMPOUND; if (nmp != NULL) { - NFSINCRGLOBAL(nfsstatsv1.rpcrequests); + NFSINCRGLOBAL(nfsstatsv1_p->rpcrequests); /* Map the procnum to the old NFSv2 one, as required. */ if ((nd->nd_flag & ND_NFSV2) != 0) { @@ -917,13 +918,13 @@ tryagain: if (stat == RPC_SUCCESS) { error = 0; } else if (stat == RPC_TIMEDOUT) { - NFSINCRGLOBAL(nfsstatsv1.rpctimeouts); + NFSINCRGLOBAL(nfsstatsv1_p->rpctimeouts); error = ETIMEDOUT; } else if (stat == RPC_VERSMISMATCH) { - NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); error = EOPNOTSUPP; } else if (stat == RPC_PROGVERSMISMATCH) { - NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); error = EPROTONOSUPPORT; } else if (stat == RPC_CANTSEND || stat == RPC_CANTRECV || stat == RPC_SYSTEMERROR || stat == RPC_INTR) { @@ -957,11 +958,11 @@ tryagain: if (stat == RPC_INTR) error = EINTR; else { - NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); error = ENXIO; } } else { - NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); error = EACCES; } if (error) { diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index f91cb3a8cebe..6aa52245749b 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -61,7 +61,6 @@ extern struct nfssockreq nfsrv_nfsuserdsock; extern void (*nfsd_call_recall)(struct vnode *, int, struct ucred *, struct thread *); extern int nfsrv_useacl; -struct mount nfsv4root_mnt; int newnfs_numnfsd = 0; struct nfsstatsv1 nfsstatsv1; int nfs_numnfscbd = 0; @@ -76,6 +75,8 @@ vop_advlock_t *nfs_advlock_p = NULL; vop_reclaim_t *nfs_reclaim_p = NULL; uint32_t nfs_srvmaxio = NFS_SRVMAXIO; +NFSD_VNET_DEFINE(struct nfsstatsv1 *, nfsstatsv1_p); + int nfs_pnfsio(task_fn_t *, void *); static int nfs_realign_test; @@ -149,6 +150,7 @@ struct mtx nfs_clstate_mutex; /* local functions */ static int nfssvc_call(struct thread *, struct nfssvc_args *, struct ucred *); +static void nfs_clean(struct prison *); #ifdef __NO_STRICT_ALIGNMENT /* @@ -434,7 +436,9 @@ nfssvc_nfscommon(struct thread *td, struct nfssvc_args *uap) { int error; + NFSD_CURVNET_SET(NFSD_TD_TO_VNET(td)); error = nfssvc_call(td, uap, td->td_ucred); + NFSD_CURVNET_RESTORE(); NFSEXITCODE(error); return (error); } @@ -474,87 +478,87 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred) if ((uap->flag & NFSSVC_NEWSTRUCT) == 0) { /* Copy fields to the old ext_nfsstat structure. */ oldnfsstats.attrcache_hits = - nfsstatsv1.attrcache_hits; + nfsstatsv1_p->attrcache_hits; oldnfsstats.attrcache_misses = - nfsstatsv1.attrcache_misses; + nfsstatsv1_p->attrcache_misses; oldnfsstats.lookupcache_hits = - nfsstatsv1.lookupcache_hits; + nfsstatsv1_p->lookupcache_hits; oldnfsstats.lookupcache_misses = - nfsstatsv1.lookupcache_misses; + nfsstatsv1_p->lookupcache_misses; oldnfsstats.direofcache_hits = - nfsstatsv1.direofcache_hits; + nfsstatsv1_p->direofcache_hits; oldnfsstats.direofcache_misses = - nfsstatsv1.direofcache_misses; + nfsstatsv1_p->direofcache_misses; oldnfsstats.accesscache_hits = - nfsstatsv1.accesscache_hits; + nfsstatsv1_p->accesscache_hits; oldnfsstats.accesscache_misses = - nfsstatsv1.accesscache_misses; + nfsstatsv1_p->accesscache_misses; oldnfsstats.biocache_reads = - nfsstatsv1.biocache_reads; + nfsstatsv1_p->biocache_reads; oldnfsstats.read_bios = - nfsstatsv1.read_bios; + nfsstatsv1_p->read_bios; oldnfsstats.read_physios = - nfsstatsv1.read_physios; + nfsstatsv1_p->read_physios; oldnfsstats.biocache_writes = - nfsstatsv1.biocache_writes; + nfsstatsv1_p->biocache_writes; oldnfsstats.write_bios = - nfsstatsv1.write_bios; + nfsstatsv1_p->write_bios; oldnfsstats.write_physios = - nfsstatsv1.write_physios; + nfsstatsv1_p->write_physios; oldnfsstats.biocache_readlinks = - nfsstatsv1.biocache_readlinks; + nfsstatsv1_p->biocache_readlinks; oldnfsstats.readlink_bios = - nfsstatsv1.readlink_bios; + nfsstatsv1_p->readlink_bios; oldnfsstats.biocache_readdirs = - nfsstatsv1.biocache_readdirs; + nfsstatsv1_p->biocache_readdirs; oldnfsstats.readdir_bios = - nfsstatsv1.readdir_bios; + nfsstatsv1_p->readdir_bios; for (i = 0; i < NFSV4_NPROCS; i++) - oldnfsstats.rpccnt[i] = nfsstatsv1.rpccnt[i]; - oldnfsstats.rpcretries = nfsstatsv1.rpcretries; + oldnfsstats.rpccnt[i] = nfsstatsv1_p->rpccnt[i]; + oldnfsstats.rpcretries = nfsstatsv1_p->rpcretries; for (i = 0; i < NFSV4OP_NOPS; i++) oldnfsstats.srvrpccnt[i] = - nfsstatsv1.srvrpccnt[i]; + nfsstatsv1_p->srvrpccnt[i]; for (i = NFSV42_NOPS, j = NFSV4OP_NOPS; i < NFSV42_NOPS + NFSV4OP_FAKENOPS; i++, j++) oldnfsstats.srvrpccnt[j] = - nfsstatsv1.srvrpccnt[i]; + nfsstatsv1_p->srvrpccnt[i]; oldnfsstats.reserved_0 = 0; oldnfsstats.reserved_1 = 0; - oldnfsstats.rpcrequests = nfsstatsv1.rpcrequests; - oldnfsstats.rpctimeouts = nfsstatsv1.rpctimeouts; - oldnfsstats.rpcunexpected = nfsstatsv1.rpcunexpected; - oldnfsstats.rpcinvalid = nfsstatsv1.rpcinvalid; + oldnfsstats.rpcrequests = nfsstatsv1_p->rpcrequests; + oldnfsstats.rpctimeouts = nfsstatsv1_p->rpctimeouts; + oldnfsstats.rpcunexpected = nfsstatsv1_p->rpcunexpected; + oldnfsstats.rpcinvalid = nfsstatsv1_p->rpcinvalid; oldnfsstats.srvcache_inproghits = - nfsstatsv1.srvcache_inproghits; + nfsstatsv1_p->srvcache_inproghits; oldnfsstats.reserved_2 = 0; oldnfsstats.srvcache_nonidemdonehits = - nfsstatsv1.srvcache_nonidemdonehits; + nfsstatsv1_p->srvcache_nonidemdonehits; oldnfsstats.srvcache_misses = - nfsstatsv1.srvcache_misses; + nfsstatsv1_p->srvcache_misses; oldnfsstats.srvcache_tcppeak = - nfsstatsv1.srvcache_tcppeak; - oldnfsstats.srvcache_size = nfsstatsv1.srvcache_size; - oldnfsstats.srvclients = nfsstatsv1.srvclients; - oldnfsstats.srvopenowners = nfsstatsv1.srvopenowners; - oldnfsstats.srvopens = nfsstatsv1.srvopens; - oldnfsstats.srvlockowners = nfsstatsv1.srvlockowners; - oldnfsstats.srvlocks = nfsstatsv1.srvlocks; - oldnfsstats.srvdelegates = nfsstatsv1.srvdelegates; + nfsstatsv1_p->srvcache_tcppeak; + oldnfsstats.srvcache_size = nfsstatsv1_p->srvcache_size; + oldnfsstats.srvclients = nfsstatsv1_p->srvclients; + oldnfsstats.srvopenowners = nfsstatsv1_p->srvopenowners; + oldnfsstats.srvopens = nfsstatsv1_p->srvopens; + oldnfsstats.srvlockowners = nfsstatsv1_p->srvlockowners; + oldnfsstats.srvlocks = nfsstatsv1_p->srvlocks; + oldnfsstats.srvdelegates = nfsstatsv1_p->srvdelegates; for (i = 0; i < NFSV4OP_CBNOPS; i++) oldnfsstats.cbrpccnt[i] = - nfsstatsv1.cbrpccnt[i]; - oldnfsstats.clopenowners = nfsstatsv1.clopenowners; - oldnfsstats.clopens = nfsstatsv1.clopens; - oldnfsstats.cllockowners = nfsstatsv1.cllockowners; - oldnfsstats.cllocks = nfsstatsv1.cllocks; - oldnfsstats.cldelegates = nfsstatsv1.cldelegates; + nfsstatsv1_p->cbrpccnt[i]; + oldnfsstats.clopenowners = nfsstatsv1_p->clopenowners; + oldnfsstats.clopens = nfsstatsv1_p->clopens; + oldnfsstats.cllockowners = nfsstatsv1_p->cllockowners; + oldnfsstats.cllocks = nfsstatsv1_p->cllocks; + oldnfsstats.cldelegates = nfsstatsv1_p->cldelegates; oldnfsstats.cllocalopenowners = - nfsstatsv1.cllocalopenowners; - oldnfsstats.cllocalopens = nfsstatsv1.cllocalopens; + nfsstatsv1_p->cllocalopenowners; + oldnfsstats.cllocalopens = nfsstatsv1_p->cllocalopens; oldnfsstats.cllocallockowners = - nfsstatsv1.cllocallockowners; - oldnfsstats.cllocallocks = nfsstatsv1.cllocallocks; + nfsstatsv1_p->cllocallockowners; + oldnfsstats.cllocallocks = nfsstatsv1_p->cllocallocks; error = copyout(&oldnfsstats, uap->argp, sizeof (oldnfsstats)); } else { @@ -564,128 +568,128 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred) if (nfsstatver.vers == NFSSTATS_OV1) { /* Copy nfsstatsv1 to nfsstatsov1. */ nfsstatsov1.attrcache_hits = - nfsstatsv1.attrcache_hits; + nfsstatsv1_p->attrcache_hits; nfsstatsov1.attrcache_misses = - nfsstatsv1.attrcache_misses; + nfsstatsv1_p->attrcache_misses; nfsstatsov1.lookupcache_hits = - nfsstatsv1.lookupcache_hits; + nfsstatsv1_p->lookupcache_hits; nfsstatsov1.lookupcache_misses = - nfsstatsv1.lookupcache_misses; + nfsstatsv1_p->lookupcache_misses; nfsstatsov1.direofcache_hits = - nfsstatsv1.direofcache_hits; + nfsstatsv1_p->direofcache_hits; nfsstatsov1.direofcache_misses = - nfsstatsv1.direofcache_misses; + nfsstatsv1_p->direofcache_misses; nfsstatsov1.accesscache_hits = - nfsstatsv1.accesscache_hits; + nfsstatsv1_p->accesscache_hits; nfsstatsov1.accesscache_misses = - nfsstatsv1.accesscache_misses; + nfsstatsv1_p->accesscache_misses; nfsstatsov1.biocache_reads = - nfsstatsv1.biocache_reads; + nfsstatsv1_p->biocache_reads; nfsstatsov1.read_bios = - nfsstatsv1.read_bios; + nfsstatsv1_p->read_bios; nfsstatsov1.read_physios = - nfsstatsv1.read_physios; + nfsstatsv1_p->read_physios; nfsstatsov1.biocache_writes = - nfsstatsv1.biocache_writes; + nfsstatsv1_p->biocache_writes; nfsstatsov1.write_bios = - nfsstatsv1.write_bios; + nfsstatsv1_p->write_bios; nfsstatsov1.write_physios = - nfsstatsv1.write_physios; + nfsstatsv1_p->write_physios; nfsstatsov1.biocache_readlinks = - nfsstatsv1.biocache_readlinks; + nfsstatsv1_p->biocache_readlinks; nfsstatsov1.readlink_bios = - nfsstatsv1.readlink_bios; + nfsstatsv1_p->readlink_bios; nfsstatsov1.biocache_readdirs = - nfsstatsv1.biocache_readdirs; + nfsstatsv1_p->biocache_readdirs; nfsstatsov1.readdir_bios = - nfsstatsv1.readdir_bios; + nfsstatsv1_p->readdir_bios; for (i = 0; i < NFSV42_OLDNPROCS; i++) nfsstatsov1.rpccnt[i] = - nfsstatsv1.rpccnt[i]; + nfsstatsv1_p->rpccnt[i]; nfsstatsov1.rpcretries = - nfsstatsv1.rpcretries; + nfsstatsv1_p->rpcretries; for (i = 0; i < NFSV42_PURENOPS; i++) nfsstatsov1.srvrpccnt[i] = - nfsstatsv1.srvrpccnt[i]; + nfsstatsv1_p->srvrpccnt[i]; for (i = NFSV42_NOPS, j = NFSV42_PURENOPS; i < NFSV42_NOPS + NFSV4OP_FAKENOPS; i++, j++) nfsstatsov1.srvrpccnt[j] = - nfsstatsv1.srvrpccnt[i]; + nfsstatsv1_p->srvrpccnt[i]; nfsstatsov1.reserved_0 = 0; nfsstatsov1.reserved_1 = 0; nfsstatsov1.rpcrequests = - nfsstatsv1.rpcrequests; + nfsstatsv1_p->rpcrequests; nfsstatsov1.rpctimeouts = - nfsstatsv1.rpctimeouts; + nfsstatsv1_p->rpctimeouts; nfsstatsov1.rpcunexpected = - nfsstatsv1.rpcunexpected; + nfsstatsv1_p->rpcunexpected; nfsstatsov1.rpcinvalid = - nfsstatsv1.rpcinvalid; + nfsstatsv1_p->rpcinvalid; nfsstatsov1.srvcache_inproghits = - nfsstatsv1.srvcache_inproghits; + nfsstatsv1_p->srvcache_inproghits; nfsstatsov1.reserved_2 = 0; nfsstatsov1.srvcache_nonidemdonehits = - nfsstatsv1.srvcache_nonidemdonehits; + nfsstatsv1_p->srvcache_nonidemdonehits; nfsstatsov1.srvcache_misses = - nfsstatsv1.srvcache_misses; + nfsstatsv1_p->srvcache_misses; nfsstatsov1.srvcache_tcppeak = - nfsstatsv1.srvcache_tcppeak; + nfsstatsv1_p->srvcache_tcppeak; nfsstatsov1.srvcache_size = - nfsstatsv1.srvcache_size; + nfsstatsv1_p->srvcache_size; nfsstatsov1.srvclients = - nfsstatsv1.srvclients; + nfsstatsv1_p->srvclients; nfsstatsov1.srvopenowners = - nfsstatsv1.srvopenowners; + nfsstatsv1_p->srvopenowners; nfsstatsov1.srvopens = - nfsstatsv1.srvopens; + nfsstatsv1_p->srvopens; nfsstatsov1.srvlockowners = - nfsstatsv1.srvlockowners; + nfsstatsv1_p->srvlockowners; nfsstatsov1.srvlocks = - nfsstatsv1.srvlocks; + nfsstatsv1_p->srvlocks; nfsstatsov1.srvdelegates = - nfsstatsv1.srvdelegates; + nfsstatsv1_p->srvdelegates; for (i = 0; i < NFSV42_CBNOPS; i++) nfsstatsov1.cbrpccnt[i] = - nfsstatsv1.cbrpccnt[i]; + nfsstatsv1_p->cbrpccnt[i]; nfsstatsov1.clopenowners = - nfsstatsv1.clopenowners; + nfsstatsv1_p->clopenowners; nfsstatsov1.clopens = - nfsstatsv1.clopens; + nfsstatsv1_p->clopens; nfsstatsov1.cllockowners = - nfsstatsv1.cllockowners; + nfsstatsv1_p->cllockowners; nfsstatsov1.cllocks = - nfsstatsv1.cllocks; + nfsstatsv1_p->cllocks; nfsstatsov1.cldelegates = - nfsstatsv1.cldelegates; + nfsstatsv1_p->cldelegates; nfsstatsov1.cllocalopenowners = - nfsstatsv1.cllocalopenowners; + nfsstatsv1_p->cllocalopenowners; nfsstatsov1.cllocalopens = - nfsstatsv1.cllocalopens; + nfsstatsv1_p->cllocalopens; nfsstatsov1.cllocallockowners = - nfsstatsv1.cllocallockowners; + nfsstatsv1_p->cllocallockowners; nfsstatsov1.cllocallocks = - nfsstatsv1.cllocallocks; + nfsstatsv1_p->cllocallocks; nfsstatsov1.srvstartcnt = - nfsstatsv1.srvstartcnt; + nfsstatsv1_p->srvstartcnt; nfsstatsov1.srvdonecnt = - nfsstatsv1.srvdonecnt; + nfsstatsv1_p->srvdonecnt; for (i = NFSV42_NOPS, j = NFSV42_PURENOPS; i < NFSV42_NOPS + NFSV4OP_FAKENOPS; i++, j++) { nfsstatsov1.srvbytes[j] = - nfsstatsv1.srvbytes[i]; + nfsstatsv1_p->srvbytes[i]; nfsstatsov1.srvops[j] = - nfsstatsv1.srvops[i]; + nfsstatsv1_p->srvops[i]; nfsstatsov1.srvduration[j] = - nfsstatsv1.srvduration[i]; + nfsstatsv1_p->srvduration[i]; } nfsstatsov1.busyfrom = - nfsstatsv1.busyfrom; + nfsstatsv1_p->busyfrom; nfsstatsov1.busyfrom = - nfsstatsv1.busyfrom; + nfsstatsv1_p->busyfrom; error = copyout(&nfsstatsov1, uap->argp, sizeof(nfsstatsov1)); } else if (nfsstatver.vers != NFSSTATS_V1) @@ -697,41 +701,41 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred) } if (error == 0) { if ((uap->flag & NFSSVC_ZEROCLTSTATS) != 0) { - nfsstatsv1.attrcache_hits = 0; - nfsstatsv1.attrcache_misses = 0; - nfsstatsv1.lookupcache_hits = 0; - nfsstatsv1.lookupcache_misses = 0; - nfsstatsv1.direofcache_hits = 0; - nfsstatsv1.direofcache_misses = 0; - nfsstatsv1.accesscache_hits = 0; - nfsstatsv1.accesscache_misses = 0; - nfsstatsv1.biocache_reads = 0; - nfsstatsv1.read_bios = 0; - nfsstatsv1.read_physios = 0; - nfsstatsv1.biocache_writes = 0; - nfsstatsv1.write_bios = 0; - nfsstatsv1.write_physios = 0; - nfsstatsv1.biocache_readlinks = 0; - nfsstatsv1.readlink_bios = 0; - nfsstatsv1.biocache_readdirs = 0; - nfsstatsv1.readdir_bios = 0; - nfsstatsv1.rpcretries = 0; - nfsstatsv1.rpcrequests = 0; - nfsstatsv1.rpctimeouts = 0; - nfsstatsv1.rpcunexpected = 0; - nfsstatsv1.rpcinvalid = 0; - bzero(nfsstatsv1.rpccnt, - sizeof(nfsstatsv1.rpccnt)); + nfsstatsv1_p->attrcache_hits = 0; + nfsstatsv1_p->attrcache_misses = 0; + nfsstatsv1_p->lookupcache_hits = 0; + nfsstatsv1_p->lookupcache_misses = 0; + nfsstatsv1_p->direofcache_hits = 0; + nfsstatsv1_p->direofcache_misses = 0; + nfsstatsv1_p->accesscache_hits = 0; + nfsstatsv1_p->accesscache_misses = 0; + nfsstatsv1_p->biocache_reads = 0; + nfsstatsv1_p->read_bios = 0; + nfsstatsv1_p->read_physios = 0; + nfsstatsv1_p->biocache_writes = 0; + nfsstatsv1_p->write_bios = 0; + nfsstatsv1_p->write_physios = 0; + nfsstatsv1_p->biocache_readlinks = 0; + nfsstatsv1_p->readlink_bios = 0; + nfsstatsv1_p->biocache_readdirs = 0; + nfsstatsv1_p->readdir_bios = 0; + nfsstatsv1_p->rpcretries = 0; + nfsstatsv1_p->rpcrequests = 0; + nfsstatsv1_p->rpctimeouts = 0; + nfsstatsv1_p->rpcunexpected = 0; + nfsstatsv1_p->rpcinvalid = 0; + bzero(nfsstatsv1_p->rpccnt, + sizeof(nfsstatsv1_p->rpccnt)); } if ((uap->flag & NFSSVC_ZEROSRVSTATS) != 0) { - nfsstatsv1.srvcache_inproghits = 0; - nfsstatsv1.srvcache_nonidemdonehits = 0; - nfsstatsv1.srvcache_misses = 0; - nfsstatsv1.srvcache_tcppeak = 0; - bzero(nfsstatsv1.srvrpccnt, - sizeof(nfsstatsv1.srvrpccnt)); - bzero(nfsstatsv1.cbrpccnt, - sizeof(nfsstatsv1.cbrpccnt)); + nfsstatsv1_p->srvcache_inproghits = 0; + nfsstatsv1_p->srvcache_nonidemdonehits = 0; + nfsstatsv1_p->srvcache_misses = 0; + nfsstatsv1_p->srvcache_tcppeak = 0; + bzero(nfsstatsv1_p->srvrpccnt, + sizeof(nfsstatsv1_p->srvrpccnt)); + bzero(nfsstatsv1_p->cbrpccnt, + sizeof(nfsstatsv1_p->cbrpccnt)); } } goto out; @@ -849,6 +853,34 @@ nfs_pnfsio(task_fn_t *func, void *context) return (ret); } +static void +nfs_clean(struct prison *pr) +{ + + NFSD_CURVNET_SET(pr->pr_vnet); + if (pr != &prison0) + free(NFSD_VNET(nfsstatsv1_p), M_TEMP); + /* Clean out the name<-->id cache. */ + nfsrv_cleanusergroup(); + NFSD_CURVNET_RESTORE(); +} + +/* + * Initialize everything that needs to be initialized for a vnet. + */ +static void +nfs_vnetinit(const void *unused __unused) +{ + + if (curthread->td_ucred->cr_prison == &prison0) + NFSD_VNET(nfsstatsv1_p) = &nfsstatsv1; + else + NFSD_VNET(nfsstatsv1_p) = malloc(sizeof(struct nfsstatsv1), + M_TEMP, M_WAITOK | M_ZERO); +} +SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, + nfs_vnetinit, NULL); + extern int (*nfsd_call_nfscommon)(struct thread *, struct nfssvc_args *); /* @@ -886,8 +918,7 @@ nfscommon_modevent(module_t mod, int type, void *data) } nfsd_call_nfscommon = NULL; - /* Clean out the name<-->id cache. */ - nfsrv_cleanusergroup(); + nfs_clean(&prison0); /* and get rid of the mutexes */ mtx_destroy(&nfs_nameid_mutex); mtx_destroy(&newnfsd_mtx); diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index d62c6295ccfa..72d0f166300d 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -61,7 +61,6 @@ extern u_int32_t newnfs_true, newnfs_false, newnfs_xdrneg1; extern int nfsrv_useacl; extern int newnfs_numnfsd; extern int nfsrv_sessionhashsize; -extern struct nfsstatsv1 nfsstatsv1; extern struct nfslayouthash *nfslayouthash; extern int nfsrv_layouthashsize; extern struct mtx nfsrv_dslock_mtx; @@ -79,6 +78,7 @@ NFSD_VNET_DECLARE(struct nfsclienthashhead *, nfsclienthash); NFSD_VNET_DECLARE(struct nfslockhashhead *, nfslockhash); NFSD_VNET_DECLARE(struct nfssessionhash *, nfssessionhash); NFSD_VNET_DECLARE(struct nfsv4lock, nfsd_suspend_lock); +NFSD_VNET_DECLARE(struct nfsstatsv1 *, nfsstatsv1_p); NFSDLOCKMUTEX; NFSSTATESPINLOCK; @@ -102,7 +102,6 @@ NFSD_VNET_DEFINE(struct nfsrchash_bucket *, nfsrcahash_table); NFSD_VNET_DEFINE(struct nfsrvfh, nfs_rootfh); NFSD_VNET_DEFINE(int, nfs_rootfhset) = 0; NFSD_VNET_DEFINE(struct callout, nfsd_callout); -NFSD_VNET_DEFINE(struct nfsstatsv1 *, nfsstatsv1_p); NFSD_VNET_DEFINE_STATIC(struct mount *, nfsv4root_mnt); NFSD_VNET_DEFINE_STATIC(struct vfsoptlist, nfsv4root_opt); NFSD_VNET_DEFINE_STATIC(struct vfsoptlist, nfsv4root_newopt); @@ -3547,13 +3546,6 @@ nfsd_mntinit(void) nfsrvd_init(0); NFSD_UNLOCK(); - if (curthread->td_ucred->cr_prison == &prison0) - NFSD_VNET(nfsstatsv1_p) = &nfsstatsv1; - else - NFSD_VNET(nfsstatsv1_p) = malloc(sizeof(struct nfsstatsv1), - M_TEMP, M_WAITOK | M_ZERO); - nfsstatsv1_p->srvcache_tcppeak = 0; - nfsstatsv1_p->srvcache_size = 0; NFSD_VNET(nfsv4root_mnt) = malloc(sizeof(struct mount), M_TEMP, M_WAITOK | M_ZERO); NFSD_VNET(nfsv4root_mnt)->mnt_flag = (MNT_RDONLY | MNT_EXPORTED); @@ -6962,8 +6954,6 @@ nfsrv_cleanup(struct prison *pr) free(NFSD_VNET(nfssessionhash), M_NFSDSESSION); free(NFSD_VNET(nfsv4root_mnt), M_TEMP); NFSD_VNET(nfsv4root_mnt) = NULL; - if (pr != &prison0) - free(NFSD_VNET(nfsstatsv1_p), M_TEMP); NFSD_CURVNET_RESTORE(); } From nobody Tue May 16 14:28:43 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLJWc0lXlz4B5jf; Tue, 16 May 2023 14:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLJWc00Y1z3llZ; Tue, 16 May 2023 14:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684247324; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TaSbs0QiUksz+vTQDxwFuyYTZepVzmvYIAz5S96pKew=; b=ZSbZGzTON0IXcIFJUmTQdFCIDKFGZK/SyP4jrvNtw3oOodEJu4fk3f1DTLHKVWJfwKCsI+ xI38hxrcGnxA5v4Pz7ckShSjg9yGJqN8lsxY+6/2gN6TZFvCdfc7mXrsa8LFnPD7tgI53n +EO4qcvdVJm8wJwe3p44Q0IL5IsYiJap/M8uW/dT1QnDnqh1c9zT8iouKpaUenjj5gMbUo CZOeAX+9kNacyW+d4zz7HupKnjhP3zW2eQqmu4x2lgAnh6YvMynJVyygDimWuGtlBrzEmR WUBmH2XZCUnMhN0vjljf8aS88z04tMBGIRYPjpX92VY6jLSmnCmo1KZxjFsGlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684247324; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TaSbs0QiUksz+vTQDxwFuyYTZepVzmvYIAz5S96pKew=; b=vXo0g7yvbiP81R+iLkhDK1Z8CEKXMVTxTJsifOcibOH8hjb0KMQ+IAN2Se5kV0AITBUUVC y9rLsXPN6szDsRZ7RN4u0Zu4Rb2JFGl7wfMj6/2HFfp43be1cjOKnAQGiuRygVf9EHhi8d mh6M7ytHx4KmpzERhwi96Wwh0nirZfNS0IuHtqhx42F45p/aKtaucRbYGa47Ub7uRQckh+ CPq0M1qdHhuU75aGm3z4nNPrrVxtY2w0l9DKkcCUpFG//w22iQS3pz8w+U53GH4RRRlVBq /rkV9k1zJMCx/bgMm8esr/NO7Bpb25K0u2abyzo19gY2JXx/hkZapMdbZQu37w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684247324; a=rsa-sha256; cv=none; b=tmPku4ZGKYSkBTUW5mpvcVqkTkkRJUl3LStM/4OYh6zEcergdMcBT+KEM7ERC4N8zCQXYU OZTzMQ1KlfZOOS1hVClXsqwIMbDnzQMgTYQV0zpXv9ScKQu09gTUw6zRQWARl5daILxymW 3GYKrvoUCp/2iF7/sRDAL8f+I/qwnLPxWA1byhwkXyqfdEHrO996O2WUPphSxnZkYSpuEA TmhbclTh+NEy+gMk//+9ivDlFC49jY2Xi/yFP2blRrrZVEb1BPehgKVbCr9VtxZ8O9c2CO yg0npo82C+I6jwkB5Ch4Rr2Xs+RyVJ9YitOwFP7jrnwj6emch0NgLtZdGtefgw== 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 4QLJWb5VPrzQXR; Tue, 16 May 2023 14:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GEShhq011772; Tue, 16 May 2023 14:28:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GEShWx011771; Tue, 16 May 2023 14:28:43 GMT (envelope-from git) Date: Tue, 16 May 2023 14:28:43 GMT Message-Id: <202305161428.34GEShWx011771@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: aeb27b5d12d3 - stable/13 - nfsd: Wrap nfsstatsv1_p in the NFSD_VNET() macro List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: aeb27b5d12d362570973ecc42d5c3cfe5c30f210 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=aeb27b5d12d362570973ecc42d5c3cfe5c30f210 commit aeb27b5d12d362570973ecc42d5c3cfe5c30f210 Author: Rick Macklem AuthorDate: 2023-02-16 01:39:07 +0000 Commit: Rick Macklem CommitDate: 2023-05-16 14:27:28 +0000 nfsd: Wrap nfsstatsv1_p in the NFSD_VNET() macro Commit 7344856e3a6d added a lot of macros that will front end vnet macros so that nfsd(8) can run in vnet prison. The nfsstatsv1_p variable got missed. This patch wraps all uses of nfsstatsv1_p with the NFSD_VNET() macro. The NFSD_VNET() macro is still a null macro. (cherry picked from commit b039ca0776774036a9e33aa45f50296a7f6ba547) --- sys/fs/nfs/nfs_commonkrpc.c | 12 +- sys/fs/nfs/nfs_commonport.c | 290 ++++++++++++++++++++------------------ sys/fs/nfsserver/nfs_nfsdcache.c | 30 ++-- sys/fs/nfsserver/nfs_nfsdport.c | 4 +- sys/fs/nfsserver/nfs_nfsdsocket.c | 25 ++-- sys/fs/nfsserver/nfs_nfsdstate.c | 48 +++---- 6 files changed, 214 insertions(+), 195 deletions(-) diff --git a/sys/fs/nfs/nfs_commonkrpc.c b/sys/fs/nfs/nfs_commonkrpc.c index bf0a9e6e53ef..0d2cb9ec279a 100644 --- a/sys/fs/nfs/nfs_commonkrpc.c +++ b/sys/fs/nfs/nfs_commonkrpc.c @@ -783,7 +783,7 @@ newnfs_request(struct nfsrv_descript *nd, struct nfsmount *nmp, procnum = NFSV4PROC_COMPOUND; if (nmp != NULL) { - NFSINCRGLOBAL(nfsstatsv1_p->rpcrequests); + NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcrequests); /* Map the procnum to the old NFSv2 one, as required. */ if ((nd->nd_flag & ND_NFSV2) != 0) { @@ -918,13 +918,13 @@ tryagain: if (stat == RPC_SUCCESS) { error = 0; } else if (stat == RPC_TIMEDOUT) { - NFSINCRGLOBAL(nfsstatsv1_p->rpctimeouts); + NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpctimeouts); error = ETIMEDOUT; } else if (stat == RPC_VERSMISMATCH) { - NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); + NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); error = EOPNOTSUPP; } else if (stat == RPC_PROGVERSMISMATCH) { - NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); + NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); error = EPROTONOSUPPORT; } else if (stat == RPC_CANTSEND || stat == RPC_CANTRECV || stat == RPC_SYSTEMERROR || stat == RPC_INTR) { @@ -958,11 +958,11 @@ tryagain: if (stat == RPC_INTR) error = EINTR; else { - NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); + NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); error = ENXIO; } } else { - NFSINCRGLOBAL(nfsstatsv1_p->rpcinvalid); + NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); error = EACCES; } if (error) { diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index 6aa52245749b..def18522104d 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -478,87 +478,105 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred) if ((uap->flag & NFSSVC_NEWSTRUCT) == 0) { /* Copy fields to the old ext_nfsstat structure. */ oldnfsstats.attrcache_hits = - nfsstatsv1_p->attrcache_hits; + NFSD_VNET(nfsstatsv1_p)->attrcache_hits; oldnfsstats.attrcache_misses = - nfsstatsv1_p->attrcache_misses; + NFSD_VNET(nfsstatsv1_p)->attrcache_misses; oldnfsstats.lookupcache_hits = - nfsstatsv1_p->lookupcache_hits; + NFSD_VNET(nfsstatsv1_p)->lookupcache_hits; oldnfsstats.lookupcache_misses = - nfsstatsv1_p->lookupcache_misses; + NFSD_VNET(nfsstatsv1_p)->lookupcache_misses; oldnfsstats.direofcache_hits = - nfsstatsv1_p->direofcache_hits; + NFSD_VNET(nfsstatsv1_p)->direofcache_hits; oldnfsstats.direofcache_misses = - nfsstatsv1_p->direofcache_misses; + NFSD_VNET(nfsstatsv1_p)->direofcache_misses; oldnfsstats.accesscache_hits = - nfsstatsv1_p->accesscache_hits; + NFSD_VNET(nfsstatsv1_p)->accesscache_hits; oldnfsstats.accesscache_misses = - nfsstatsv1_p->accesscache_misses; + NFSD_VNET(nfsstatsv1_p)->accesscache_misses; oldnfsstats.biocache_reads = - nfsstatsv1_p->biocache_reads; + NFSD_VNET(nfsstatsv1_p)->biocache_reads; oldnfsstats.read_bios = - nfsstatsv1_p->read_bios; + NFSD_VNET(nfsstatsv1_p)->read_bios; oldnfsstats.read_physios = - nfsstatsv1_p->read_physios; + NFSD_VNET(nfsstatsv1_p)->read_physios; oldnfsstats.biocache_writes = - nfsstatsv1_p->biocache_writes; + NFSD_VNET(nfsstatsv1_p)->biocache_writes; oldnfsstats.write_bios = - nfsstatsv1_p->write_bios; + NFSD_VNET(nfsstatsv1_p)->write_bios; oldnfsstats.write_physios = - nfsstatsv1_p->write_physios; + NFSD_VNET(nfsstatsv1_p)->write_physios; oldnfsstats.biocache_readlinks = - nfsstatsv1_p->biocache_readlinks; + NFSD_VNET(nfsstatsv1_p)->biocache_readlinks; oldnfsstats.readlink_bios = - nfsstatsv1_p->readlink_bios; + NFSD_VNET(nfsstatsv1_p)->readlink_bios; oldnfsstats.biocache_readdirs = - nfsstatsv1_p->biocache_readdirs; + NFSD_VNET(nfsstatsv1_p)->biocache_readdirs; oldnfsstats.readdir_bios = - nfsstatsv1_p->readdir_bios; + NFSD_VNET(nfsstatsv1_p)->readdir_bios; for (i = 0; i < NFSV4_NPROCS; i++) - oldnfsstats.rpccnt[i] = nfsstatsv1_p->rpccnt[i]; - oldnfsstats.rpcretries = nfsstatsv1_p->rpcretries; + oldnfsstats.rpccnt[i] = + NFSD_VNET(nfsstatsv1_p)->rpccnt[i]; + oldnfsstats.rpcretries = + NFSD_VNET(nfsstatsv1_p)->rpcretries; for (i = 0; i < NFSV4OP_NOPS; i++) oldnfsstats.srvrpccnt[i] = - nfsstatsv1_p->srvrpccnt[i]; + NFSD_VNET(nfsstatsv1_p)->srvrpccnt[i]; for (i = NFSV42_NOPS, j = NFSV4OP_NOPS; i < NFSV42_NOPS + NFSV4OP_FAKENOPS; i++, j++) oldnfsstats.srvrpccnt[j] = - nfsstatsv1_p->srvrpccnt[i]; + NFSD_VNET(nfsstatsv1_p)->srvrpccnt[i]; oldnfsstats.reserved_0 = 0; oldnfsstats.reserved_1 = 0; - oldnfsstats.rpcrequests = nfsstatsv1_p->rpcrequests; - oldnfsstats.rpctimeouts = nfsstatsv1_p->rpctimeouts; - oldnfsstats.rpcunexpected = nfsstatsv1_p->rpcunexpected; - oldnfsstats.rpcinvalid = nfsstatsv1_p->rpcinvalid; + oldnfsstats.rpcrequests = + NFSD_VNET(nfsstatsv1_p)->rpcrequests; + oldnfsstats.rpctimeouts = + NFSD_VNET(nfsstatsv1_p)->rpctimeouts; + oldnfsstats.rpcunexpected = + NFSD_VNET(nfsstatsv1_p)->rpcunexpected; + oldnfsstats.rpcinvalid = + NFSD_VNET(nfsstatsv1_p)->rpcinvalid; oldnfsstats.srvcache_inproghits = - nfsstatsv1_p->srvcache_inproghits; + NFSD_VNET(nfsstatsv1_p)->srvcache_inproghits; oldnfsstats.reserved_2 = 0; oldnfsstats.srvcache_nonidemdonehits = - nfsstatsv1_p->srvcache_nonidemdonehits; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits; oldnfsstats.srvcache_misses = - nfsstatsv1_p->srvcache_misses; + NFSD_VNET(nfsstatsv1_p)->srvcache_misses; oldnfsstats.srvcache_tcppeak = - nfsstatsv1_p->srvcache_tcppeak; - oldnfsstats.srvcache_size = nfsstatsv1_p->srvcache_size; - oldnfsstats.srvclients = nfsstatsv1_p->srvclients; - oldnfsstats.srvopenowners = nfsstatsv1_p->srvopenowners; - oldnfsstats.srvopens = nfsstatsv1_p->srvopens; - oldnfsstats.srvlockowners = nfsstatsv1_p->srvlockowners; - oldnfsstats.srvlocks = nfsstatsv1_p->srvlocks; - oldnfsstats.srvdelegates = nfsstatsv1_p->srvdelegates; + NFSD_VNET(nfsstatsv1_p)->srvcache_tcppeak; + oldnfsstats.srvcache_size = + NFSD_VNET(nfsstatsv1_p)->srvcache_size; + oldnfsstats.srvclients = + NFSD_VNET(nfsstatsv1_p)->srvclients; + oldnfsstats.srvopenowners = + NFSD_VNET(nfsstatsv1_p)->srvopenowners; + oldnfsstats.srvopens = + NFSD_VNET(nfsstatsv1_p)->srvopens; + oldnfsstats.srvlockowners = + NFSD_VNET(nfsstatsv1_p)->srvlockowners; + oldnfsstats.srvlocks = + NFSD_VNET(nfsstatsv1_p)->srvlocks; + oldnfsstats.srvdelegates = + NFSD_VNET(nfsstatsv1_p)->srvdelegates; for (i = 0; i < NFSV4OP_CBNOPS; i++) oldnfsstats.cbrpccnt[i] = - nfsstatsv1_p->cbrpccnt[i]; - oldnfsstats.clopenowners = nfsstatsv1_p->clopenowners; - oldnfsstats.clopens = nfsstatsv1_p->clopens; - oldnfsstats.cllockowners = nfsstatsv1_p->cllockowners; - oldnfsstats.cllocks = nfsstatsv1_p->cllocks; - oldnfsstats.cldelegates = nfsstatsv1_p->cldelegates; + NFSD_VNET(nfsstatsv1_p)->cbrpccnt[i]; + oldnfsstats.clopenowners = + NFSD_VNET(nfsstatsv1_p)->clopenowners; + oldnfsstats.clopens = NFSD_VNET(nfsstatsv1_p)->clopens; + oldnfsstats.cllockowners = + NFSD_VNET(nfsstatsv1_p)->cllockowners; + oldnfsstats.cllocks = NFSD_VNET(nfsstatsv1_p)->cllocks; + oldnfsstats.cldelegates = + NFSD_VNET(nfsstatsv1_p)->cldelegates; oldnfsstats.cllocalopenowners = - nfsstatsv1_p->cllocalopenowners; - oldnfsstats.cllocalopens = nfsstatsv1_p->cllocalopens; + NFSD_VNET(nfsstatsv1_p)->cllocalopenowners; + oldnfsstats.cllocalopens = + NFSD_VNET(nfsstatsv1_p)->cllocalopens; oldnfsstats.cllocallockowners = - nfsstatsv1_p->cllocallockowners; - oldnfsstats.cllocallocks = nfsstatsv1_p->cllocallocks; + NFSD_VNET(nfsstatsv1_p)->cllocallockowners; + oldnfsstats.cllocallocks = + NFSD_VNET(nfsstatsv1_p)->cllocallocks; error = copyout(&oldnfsstats, uap->argp, sizeof (oldnfsstats)); } else { @@ -568,174 +586,174 @@ nfssvc_call(struct thread *p, struct nfssvc_args *uap, struct ucred *cred) if (nfsstatver.vers == NFSSTATS_OV1) { /* Copy nfsstatsv1 to nfsstatsov1. */ nfsstatsov1.attrcache_hits = - nfsstatsv1_p->attrcache_hits; + NFSD_VNET(nfsstatsv1_p)->attrcache_hits; nfsstatsov1.attrcache_misses = - nfsstatsv1_p->attrcache_misses; + NFSD_VNET(nfsstatsv1_p)->attrcache_misses; nfsstatsov1.lookupcache_hits = - nfsstatsv1_p->lookupcache_hits; + NFSD_VNET(nfsstatsv1_p)->lookupcache_hits; nfsstatsov1.lookupcache_misses = - nfsstatsv1_p->lookupcache_misses; + NFSD_VNET(nfsstatsv1_p)->lookupcache_misses; nfsstatsov1.direofcache_hits = - nfsstatsv1_p->direofcache_hits; + NFSD_VNET(nfsstatsv1_p)->direofcache_hits; nfsstatsov1.direofcache_misses = - nfsstatsv1_p->direofcache_misses; + NFSD_VNET(nfsstatsv1_p)->direofcache_misses; nfsstatsov1.accesscache_hits = - nfsstatsv1_p->accesscache_hits; + NFSD_VNET(nfsstatsv1_p)->accesscache_hits; nfsstatsov1.accesscache_misses = - nfsstatsv1_p->accesscache_misses; + NFSD_VNET(nfsstatsv1_p)->accesscache_misses; nfsstatsov1.biocache_reads = - nfsstatsv1_p->biocache_reads; + NFSD_VNET(nfsstatsv1_p)->biocache_reads; nfsstatsov1.read_bios = - nfsstatsv1_p->read_bios; + NFSD_VNET(nfsstatsv1_p)->read_bios; nfsstatsov1.read_physios = - nfsstatsv1_p->read_physios; + NFSD_VNET(nfsstatsv1_p)->read_physios; nfsstatsov1.biocache_writes = - nfsstatsv1_p->biocache_writes; + NFSD_VNET(nfsstatsv1_p)->biocache_writes; nfsstatsov1.write_bios = - nfsstatsv1_p->write_bios; + NFSD_VNET(nfsstatsv1_p)->write_bios; nfsstatsov1.write_physios = - nfsstatsv1_p->write_physios; + NFSD_VNET(nfsstatsv1_p)->write_physios; nfsstatsov1.biocache_readlinks = - nfsstatsv1_p->biocache_readlinks; + NFSD_VNET(nfsstatsv1_p)->biocache_readlinks; nfsstatsov1.readlink_bios = - nfsstatsv1_p->readlink_bios; + NFSD_VNET(nfsstatsv1_p)->readlink_bios; nfsstatsov1.biocache_readdirs = - nfsstatsv1_p->biocache_readdirs; + NFSD_VNET(nfsstatsv1_p)->biocache_readdirs; nfsstatsov1.readdir_bios = - nfsstatsv1_p->readdir_bios; + NFSD_VNET(nfsstatsv1_p)->readdir_bios; for (i = 0; i < NFSV42_OLDNPROCS; i++) nfsstatsov1.rpccnt[i] = - nfsstatsv1_p->rpccnt[i]; + NFSD_VNET(nfsstatsv1_p)->rpccnt[i]; nfsstatsov1.rpcretries = - nfsstatsv1_p->rpcretries; + NFSD_VNET(nfsstatsv1_p)->rpcretries; for (i = 0; i < NFSV42_PURENOPS; i++) nfsstatsov1.srvrpccnt[i] = - nfsstatsv1_p->srvrpccnt[i]; + NFSD_VNET(nfsstatsv1_p)->srvrpccnt[i]; for (i = NFSV42_NOPS, j = NFSV42_PURENOPS; i < NFSV42_NOPS + NFSV4OP_FAKENOPS; i++, j++) nfsstatsov1.srvrpccnt[j] = - nfsstatsv1_p->srvrpccnt[i]; + NFSD_VNET(nfsstatsv1_p)->srvrpccnt[i]; nfsstatsov1.reserved_0 = 0; nfsstatsov1.reserved_1 = 0; nfsstatsov1.rpcrequests = - nfsstatsv1_p->rpcrequests; + NFSD_VNET(nfsstatsv1_p)->rpcrequests; nfsstatsov1.rpctimeouts = - nfsstatsv1_p->rpctimeouts; + NFSD_VNET(nfsstatsv1_p)->rpctimeouts; nfsstatsov1.rpcunexpected = - nfsstatsv1_p->rpcunexpected; + NFSD_VNET(nfsstatsv1_p)->rpcunexpected; nfsstatsov1.rpcinvalid = - nfsstatsv1_p->rpcinvalid; + NFSD_VNET(nfsstatsv1_p)->rpcinvalid; nfsstatsov1.srvcache_inproghits = - nfsstatsv1_p->srvcache_inproghits; + NFSD_VNET(nfsstatsv1_p)->srvcache_inproghits; nfsstatsov1.reserved_2 = 0; nfsstatsov1.srvcache_nonidemdonehits = - nfsstatsv1_p->srvcache_nonidemdonehits; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits; nfsstatsov1.srvcache_misses = - nfsstatsv1_p->srvcache_misses; + NFSD_VNET(nfsstatsv1_p)->srvcache_misses; nfsstatsov1.srvcache_tcppeak = - nfsstatsv1_p->srvcache_tcppeak; + NFSD_VNET(nfsstatsv1_p)->srvcache_tcppeak; nfsstatsov1.srvcache_size = - nfsstatsv1_p->srvcache_size; + NFSD_VNET(nfsstatsv1_p)->srvcache_size; nfsstatsov1.srvclients = - nfsstatsv1_p->srvclients; + NFSD_VNET(nfsstatsv1_p)->srvclients; nfsstatsov1.srvopenowners = - nfsstatsv1_p->srvopenowners; + NFSD_VNET(nfsstatsv1_p)->srvopenowners; nfsstatsov1.srvopens = - nfsstatsv1_p->srvopens; + NFSD_VNET(nfsstatsv1_p)->srvopens; nfsstatsov1.srvlockowners = - nfsstatsv1_p->srvlockowners; + NFSD_VNET(nfsstatsv1_p)->srvlockowners; nfsstatsov1.srvlocks = - nfsstatsv1_p->srvlocks; + NFSD_VNET(nfsstatsv1_p)->srvlocks; nfsstatsov1.srvdelegates = - nfsstatsv1_p->srvdelegates; + NFSD_VNET(nfsstatsv1_p)->srvdelegates; for (i = 0; i < NFSV42_CBNOPS; i++) nfsstatsov1.cbrpccnt[i] = - nfsstatsv1_p->cbrpccnt[i]; + NFSD_VNET(nfsstatsv1_p)->cbrpccnt[i]; nfsstatsov1.clopenowners = - nfsstatsv1_p->clopenowners; + NFSD_VNET(nfsstatsv1_p)->clopenowners; nfsstatsov1.clopens = - nfsstatsv1_p->clopens; + NFSD_VNET(nfsstatsv1_p)->clopens; nfsstatsov1.cllockowners = - nfsstatsv1_p->cllockowners; + NFSD_VNET(nfsstatsv1_p)->cllockowners; nfsstatsov1.cllocks = - nfsstatsv1_p->cllocks; + NFSD_VNET(nfsstatsv1_p)->cllocks; nfsstatsov1.cldelegates = - nfsstatsv1_p->cldelegates; + NFSD_VNET(nfsstatsv1_p)->cldelegates; nfsstatsov1.cllocalopenowners = - nfsstatsv1_p->cllocalopenowners; + NFSD_VNET(nfsstatsv1_p)->cllocalopenowners; nfsstatsov1.cllocalopens = - nfsstatsv1_p->cllocalopens; + NFSD_VNET(nfsstatsv1_p)->cllocalopens; nfsstatsov1.cllocallockowners = - nfsstatsv1_p->cllocallockowners; + NFSD_VNET(nfsstatsv1_p)->cllocallockowners; nfsstatsov1.cllocallocks = - nfsstatsv1_p->cllocallocks; + NFSD_VNET(nfsstatsv1_p)->cllocallocks; nfsstatsov1.srvstartcnt = - nfsstatsv1_p->srvstartcnt; + NFSD_VNET(nfsstatsv1_p)->srvstartcnt; nfsstatsov1.srvdonecnt = - nfsstatsv1_p->srvdonecnt; + NFSD_VNET(nfsstatsv1_p)->srvdonecnt; for (i = NFSV42_NOPS, j = NFSV42_PURENOPS; i < NFSV42_NOPS + NFSV4OP_FAKENOPS; i++, j++) { nfsstatsov1.srvbytes[j] = - nfsstatsv1_p->srvbytes[i]; + NFSD_VNET(nfsstatsv1_p)->srvbytes[i]; nfsstatsov1.srvops[j] = - nfsstatsv1_p->srvops[i]; + NFSD_VNET(nfsstatsv1_p)->srvops[i]; nfsstatsov1.srvduration[j] = - nfsstatsv1_p->srvduration[i]; + NFSD_VNET(nfsstatsv1_p)->srvduration[i]; } nfsstatsov1.busyfrom = - nfsstatsv1_p->busyfrom; + NFSD_VNET(nfsstatsv1_p)->busyfrom; nfsstatsov1.busyfrom = - nfsstatsv1_p->busyfrom; + NFSD_VNET(nfsstatsv1_p)->busyfrom; error = copyout(&nfsstatsov1, uap->argp, sizeof(nfsstatsov1)); } else if (nfsstatver.vers != NFSSTATS_V1) error = EPERM; else - error = copyout(&nfsstatsv1, uap->argp, - sizeof(nfsstatsv1)); + error = copyout(NFSD_VNET(nfsstatsv1_p), + uap->argp, sizeof(nfsstatsv1)); } } if (error == 0) { if ((uap->flag & NFSSVC_ZEROCLTSTATS) != 0) { - nfsstatsv1_p->attrcache_hits = 0; - nfsstatsv1_p->attrcache_misses = 0; - nfsstatsv1_p->lookupcache_hits = 0; - nfsstatsv1_p->lookupcache_misses = 0; - nfsstatsv1_p->direofcache_hits = 0; - nfsstatsv1_p->direofcache_misses = 0; - nfsstatsv1_p->accesscache_hits = 0; - nfsstatsv1_p->accesscache_misses = 0; - nfsstatsv1_p->biocache_reads = 0; - nfsstatsv1_p->read_bios = 0; - nfsstatsv1_p->read_physios = 0; - nfsstatsv1_p->biocache_writes = 0; - nfsstatsv1_p->write_bios = 0; - nfsstatsv1_p->write_physios = 0; - nfsstatsv1_p->biocache_readlinks = 0; - nfsstatsv1_p->readlink_bios = 0; - nfsstatsv1_p->biocache_readdirs = 0; - nfsstatsv1_p->readdir_bios = 0; - nfsstatsv1_p->rpcretries = 0; - nfsstatsv1_p->rpcrequests = 0; - nfsstatsv1_p->rpctimeouts = 0; - nfsstatsv1_p->rpcunexpected = 0; - nfsstatsv1_p->rpcinvalid = 0; - bzero(nfsstatsv1_p->rpccnt, - sizeof(nfsstatsv1_p->rpccnt)); + NFSD_VNET(nfsstatsv1_p)->attrcache_hits = 0; + NFSD_VNET(nfsstatsv1_p)->attrcache_misses = 0; + NFSD_VNET(nfsstatsv1_p)->lookupcache_hits = 0; + NFSD_VNET(nfsstatsv1_p)->lookupcache_misses = 0; + NFSD_VNET(nfsstatsv1_p)->direofcache_hits = 0; + NFSD_VNET(nfsstatsv1_p)->direofcache_misses = 0; + NFSD_VNET(nfsstatsv1_p)->accesscache_hits = 0; + NFSD_VNET(nfsstatsv1_p)->accesscache_misses = 0; + NFSD_VNET(nfsstatsv1_p)->biocache_reads = 0; + NFSD_VNET(nfsstatsv1_p)->read_bios = 0; + NFSD_VNET(nfsstatsv1_p)->read_physios = 0; + NFSD_VNET(nfsstatsv1_p)->biocache_writes = 0; + NFSD_VNET(nfsstatsv1_p)->write_bios = 0; + NFSD_VNET(nfsstatsv1_p)->write_physios = 0; + NFSD_VNET(nfsstatsv1_p)->biocache_readlinks = 0; + NFSD_VNET(nfsstatsv1_p)->readlink_bios = 0; + NFSD_VNET(nfsstatsv1_p)->biocache_readdirs = 0; + NFSD_VNET(nfsstatsv1_p)->readdir_bios = 0; + NFSD_VNET(nfsstatsv1_p)->rpcretries = 0; + NFSD_VNET(nfsstatsv1_p)->rpcrequests = 0; + NFSD_VNET(nfsstatsv1_p)->rpctimeouts = 0; + NFSD_VNET(nfsstatsv1_p)->rpcunexpected = 0; + NFSD_VNET(nfsstatsv1_p)->rpcinvalid = 0; + bzero(NFSD_VNET(nfsstatsv1_p)->rpccnt, + sizeof(NFSD_VNET(nfsstatsv1_p)->rpccnt)); } if ((uap->flag & NFSSVC_ZEROSRVSTATS) != 0) { - nfsstatsv1_p->srvcache_inproghits = 0; - nfsstatsv1_p->srvcache_nonidemdonehits = 0; - nfsstatsv1_p->srvcache_misses = 0; - nfsstatsv1_p->srvcache_tcppeak = 0; - bzero(nfsstatsv1_p->srvrpccnt, - sizeof(nfsstatsv1_p->srvrpccnt)); - bzero(nfsstatsv1_p->cbrpccnt, - sizeof(nfsstatsv1_p->cbrpccnt)); + NFSD_VNET(nfsstatsv1_p)->srvcache_inproghits = 0; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits = 0; + NFSD_VNET(nfsstatsv1_p)->srvcache_misses = 0; + NFSD_VNET(nfsstatsv1_p)->srvcache_tcppeak = 0; + bzero(NFSD_VNET(nfsstatsv1_p)->srvrpccnt, + sizeof(NFSD_VNET(nfsstatsv1_p)->srvrpccnt)); + bzero(NFSD_VNET(nfsstatsv1_p)->cbrpccnt, + sizeof(NFSD_VNET(nfsstatsv1_p)->cbrpccnt)); } } goto out; diff --git a/sys/fs/nfsserver/nfs_nfsdcache.c b/sys/fs/nfsserver/nfs_nfsdcache.c index e94d58481286..2629c795802f 100644 --- a/sys/fs/nfsserver/nfs_nfsdcache.c +++ b/sys/fs/nfsserver/nfs_nfsdcache.c @@ -404,14 +404,14 @@ loop: TAILQ_REMOVE(&NFSD_VNET(nfsrvudplru), rp, rc_lru); TAILQ_INSERT_TAIL(&NFSD_VNET(nfsrvudplru), rp, rc_lru); if (rp->rc_flag & RC_INPROG) { - nfsstatsv1_p->srvcache_inproghits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_inproghits++; mtx_unlock(mutex); ret = RC_DROPIT; } else if (rp->rc_flag & RC_REPSTATUS) { /* * V2 only. */ - nfsstatsv1_p->srvcache_nonidemdonehits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits++; mtx_unlock(mutex); nfsrvd_rephead(nd); *(nd->nd_errp) = rp->rc_status; @@ -419,7 +419,7 @@ loop: rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_UDPTIMEOUT; } else if (rp->rc_flag & RC_REPMBUF) { - nfsstatsv1_p->srvcache_nonidemdonehits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits++; mtx_unlock(mutex); nd->nd_mreq = m_copym(rp->rc_reply, 0, M_COPYALL, M_WAITOK); @@ -434,8 +434,8 @@ loop: goto out; } } - nfsstatsv1_p->srvcache_misses++; - atomic_add_int(&nfsstatsv1_p->srvcache_size, 1); + NFSD_VNET(nfsstatsv1_p)->srvcache_misses++; + atomic_add_int(&NFSD_VNET(nfsstatsv1_p)->srvcache_size, 1); NFSD_VNET(nfsrc_udpcachesize)++; newrp->rc_flag |= RC_INPROG; @@ -489,7 +489,7 @@ nfsrvd_updatecache(struct nfsrv_descript *nd) * Reply from cache is a special case returned by nfsrv_checkseqid(). */ if (nd->nd_repstat == NFSERR_REPLYFROMCACHE) { - nfsstatsv1_p->srvcache_nonidemdonehits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits++; mtx_unlock(mutex); nd->nd_repstat = 0; if (nd->nd_mreq) @@ -529,8 +529,8 @@ nfsrvd_updatecache(struct nfsrv_descript *nd) atomic_add_int(&NFSD_VNET(nfsrc_tcpsavedreplies), 1); if (NFSD_VNET(nfsrc_tcpsavedreplies) > - nfsstatsv1_p->srvcache_tcppeak) - nfsstatsv1_p->srvcache_tcppeak = + NFSD_VNET(nfsstatsv1_p)->srvcache_tcppeak) + NFSD_VNET(nfsstatsv1_p)->srvcache_tcppeak = NFSD_VNET(nfsrc_tcpsavedreplies); } mtx_unlock(mutex); @@ -688,7 +688,7 @@ tryagain: panic("nfs tcp cache0"); rp->rc_flag |= RC_LOCKED; if (rp->rc_flag & RC_INPROG) { - nfsstatsv1_p->srvcache_inproghits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_inproghits++; mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); @@ -697,7 +697,7 @@ tryagain: /* * V2 only. */ - nfsstatsv1_p->srvcache_nonidemdonehits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits++; mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); @@ -706,7 +706,7 @@ tryagain: *(nd->nd_errp) = rp->rc_status; rp->rc_timestamp = NFSD_MONOSEC + nfsrc_tcptimeout; } else if (rp->rc_flag & RC_REPMBUF) { - nfsstatsv1_p->srvcache_nonidemdonehits++; + NFSD_VNET(nfsstatsv1_p)->srvcache_nonidemdonehits++; mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); @@ -721,8 +721,8 @@ tryagain: free(newrp, M_NFSRVCACHE); goto out; } - nfsstatsv1_p->srvcache_misses++; - atomic_add_int(&nfsstatsv1_p->srvcache_size, 1); + NFSD_VNET(nfsstatsv1_p)->srvcache_misses++; + atomic_add_int(&NFSD_VNET(nfsstatsv1_p)->srvcache_size, 1); /* * For TCP, multiple entries for a key are allowed, so don't @@ -811,7 +811,7 @@ nfsrc_freecache(struct nfsrvcache *rp) atomic_add_int(&NFSD_VNET(nfsrc_tcpsavedreplies), -1); } free(rp, M_NFSRVCACHE); - atomic_add_int(&nfsstatsv1_p->srvcache_size, -1); + atomic_add_int(&NFSD_VNET(nfsstatsv1_p)->srvcache_size, -1); } /* @@ -837,7 +837,7 @@ nfsrvd_cleancache(void) nfsrc_freecache(rp); } } - nfsstatsv1_p->srvcache_size = 0; + NFSD_VNET(nfsstatsv1_p)->srvcache_size = 0; mtx_unlock(&nfsrc_udpmtx); NFSD_VNET(nfsrc_tcpsavedreplies) = 0; } diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 72d0f166300d..bee9388261fd 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -1037,7 +1037,7 @@ nfsvno_read(struct vnode *vp, off_t off, int cnt, struct ucred *cred, nh = nfsrv_sequential_heuristic(uiop, vp); ioflag |= nh->nh_seqcount << IO_SEQSHIFT; /* XXX KDM make this more systematic? */ - nfsstatsv1_p->srvbytes[NFSV4OP_READ] += uiop->uio_resid; + NFSD_VNET(nfsstatsv1_p)->srvbytes[NFSV4OP_READ] += uiop->uio_resid; error = VOP_READ(vp, uiop, IO_NODELOCKED | ioflag, cred); free(iv, M_TEMP); if (error) { @@ -1162,7 +1162,7 @@ nfsvno_write(struct vnode *vp, off_t off, int retlen, int *stable, nh = nfsrv_sequential_heuristic(uiop, vp); ioflags |= nh->nh_seqcount << IO_SEQSHIFT; /* XXX KDM make this more systematic? */ - nfsstatsv1_p->srvbytes[NFSV4OP_WRITE] += uiop->uio_resid; + NFSD_VNET(nfsstatsv1_p)->srvbytes[NFSV4OP_WRITE] += uiop->uio_resid; error = VOP_WRITE(vp, uiop, ioflags, cred); if (error == 0) nh->nh_nextoff = uiop->uio_offset; diff --git a/sys/fs/nfsserver/nfs_nfsdsocket.c b/sys/fs/nfsserver/nfs_nfsdsocket.c index 8dd733f2aa73..b1ca8eab9de5 100644 --- a/sys/fs/nfsserver/nfs_nfsdsocket.c +++ b/sys/fs/nfsserver/nfs_nfsdsocket.c @@ -475,15 +475,16 @@ nfsrvd_statstart(int op, struct bintime *now) } mtx_lock(&nfsrvd_statmtx); - if (nfsstatsv1_p->srvstartcnt == nfsstatsv1_p->srvdonecnt) { + if (NFSD_VNET(nfsstatsv1_p)->srvstartcnt == + NFSD_VNET(nfsstatsv1_p)->srvdonecnt) { if (now != NULL) - nfsstatsv1_p->busyfrom = *now; + NFSD_VNET(nfsstatsv1_p)->busyfrom = *now; else - binuptime(&nfsstatsv1_p->busyfrom); + binuptime(&NFSD_VNET(nfsstatsv1_p)->busyfrom); } - nfsstatsv1_p->srvrpccnt[op]++; - nfsstatsv1_p->srvstartcnt++; + NFSD_VNET(nfsstatsv1_p)->srvrpccnt[op]++; + NFSD_VNET(nfsstatsv1_p)->srvstartcnt++; mtx_unlock(&nfsrvd_statmtx); } @@ -506,21 +507,21 @@ nfsrvd_statend(int op, uint64_t bytes, struct bintime *now, mtx_lock(&nfsrvd_statmtx); - nfsstatsv1_p->srvbytes[op] += bytes; - nfsstatsv1_p->srvops[op]++; + NFSD_VNET(nfsstatsv1_p)->srvbytes[op] += bytes; + NFSD_VNET(nfsstatsv1_p)->srvops[op]++; if (then != NULL) { dt = *now; bintime_sub(&dt, then); - bintime_add(&nfsstatsv1_p->srvduration[op], &dt); + bintime_add(&NFSD_VNET(nfsstatsv1_p)->srvduration[op], &dt); } dt = *now; - bintime_sub(&dt, &nfsstatsv1_p->busyfrom); - bintime_add(&nfsstatsv1_p->busytime, &dt); - nfsstatsv1_p->busyfrom = *now; + bintime_sub(&dt, &NFSD_VNET(nfsstatsv1_p)->busyfrom); + bintime_add(&NFSD_VNET(nfsstatsv1_p)->busytime, &dt); + NFSD_VNET(nfsstatsv1_p)->busyfrom = *now; - nfsstatsv1_p->srvdonecnt++; + NFSD_VNET(nfsstatsv1_p)->srvdonecnt++; mtx_unlock(&nfsrvd_statmtx); } diff --git a/sys/fs/nfsserver/nfs_nfsdstate.c b/sys/fs/nfsserver/nfs_nfsdstate.c index 20f8b28d32fd..684dc672c421 100644 --- a/sys/fs/nfsserver/nfs_nfsdstate.c +++ b/sys/fs/nfsserver/nfs_nfsdstate.c @@ -363,7 +363,7 @@ nfsrv_setclient(struct nfsrv_descript *nd, struct nfsclient **new_clpp, LIST_INIT(&new_clp->lc_stateid[i]); LIST_INSERT_HEAD(NFSCLIENTHASH(new_clp->lc_clientid), new_clp, lc_hash); - nfsstatsv1_p->srvclients++; + NFSD_VNET(nfsstatsv1_p)->srvclients++; nfsrv_openpluslock++; nfsrv_clients++; NFSLOCKV4ROOTMUTEX(); @@ -492,7 +492,7 @@ nfsrv_setclient(struct nfsrv_descript *nd, struct nfsclient **new_clpp, LIST_INIT(&new_clp->lc_session); LIST_INSERT_HEAD(NFSCLIENTHASH(new_clp->lc_clientid), new_clp, lc_hash); - nfsstatsv1_p->srvclients++; + NFSD_VNET(nfsstatsv1_p)->srvclients++; nfsrv_openpluslock++; nfsrv_clients++; NFSLOCKV4ROOTMUTEX(); @@ -557,7 +557,7 @@ nfsrv_setclient(struct nfsrv_descript *nd, struct nfsclient **new_clpp, LIST_INIT(&new_clp->lc_session); LIST_INSERT_HEAD(NFSCLIENTHASH(new_clp->lc_clientid), new_clp, lc_hash); - nfsstatsv1_p->srvclients++; + NFSD_VNET(nfsstatsv1_p)->srvclients++; nfsrv_openpluslock++; nfsrv_clients++; } @@ -1404,7 +1404,7 @@ nfsrv_zapclient(struct nfsclient *clp, NFSPROC_T *p) free(clp->lc_stateid, M_NFSDCLIENT); free(clp, M_NFSDCLIENT); NFSLOCKSTATE(); - nfsstatsv1_p->srvclients--; + NFSD_VNET(nfsstatsv1_p)->srvclients--; nfsrv_openpluslock--; nfsrv_clients--; NFSUNLOCKSTATE(); @@ -1447,7 +1447,7 @@ nfsrv_freedeleg(struct nfsstate *stp) nfsv4_testlock(&lfp->lf_locallock_lck) == 0) nfsrv_freenfslockfile(lfp); free(stp, M_NFSDSTATE); - nfsstatsv1_p->srvdelegates--; + NFSD_VNET(nfsstatsv1_p)->srvdelegates--; nfsrv_openpluslock--; nfsrv_delegatecnt--; } @@ -1473,7 +1473,7 @@ nfsrv_freeopenowner(struct nfsstate *stp, int cansleep, NFSPROC_T *p) if (stp->ls_op) nfsrvd_derefcache(stp->ls_op); free(stp, M_NFSDSTATE); - nfsstatsv1_p->srvopenowners--; + NFSD_VNET(nfsstatsv1_p)->srvopenowners--; nfsrv_openpluslock--; } @@ -1523,7 +1523,7 @@ nfsrv_freeopen(struct nfsstate *stp, vnode_t vp, int cansleep, NFSPROC_T *p) if (cansleep != 0) NFSUNLOCKSTATE(); free(stp, M_NFSDSTATE); - nfsstatsv1_p->srvopens--; + NFSD_VNET(nfsstatsv1_p)->srvopens--; nfsrv_openpluslock--; return (ret); } @@ -1542,7 +1542,7 @@ nfsrv_freelockowner(struct nfsstate *stp, vnode_t vp, int cansleep, if (stp->ls_op) nfsrvd_derefcache(stp->ls_op); free(stp, M_NFSDSTATE); - nfsstatsv1_p->srvlockowners--; + NFSD_VNET(nfsstatsv1_p)->srvlockowners--; nfsrv_openpluslock--; } @@ -1618,7 +1618,7 @@ nfsrv_freenfslock(struct nfslock *lop) if (lop->lo_lckfile.le_prev != NULL) { LIST_REMOVE(lop, lo_lckfile); - nfsstatsv1_p->srvlocks--; + NFSD_VNET(nfsstatsv1_p)->srvlocks--; nfsrv_openpluslock--; } LIST_REMOVE(lop, lo_lckowner); @@ -2395,7 +2395,7 @@ tryagain: LIST_INSERT_HEAD(&stp->ls_open, new_stp, ls_list); *new_lopp = NULL; *new_stpp = NULL; - nfsstatsv1_p->srvlockowners++; + NFSD_VNET(nfsstatsv1_p)->srvlockowners++; nfsrv_openpluslock++; } if (filestruct_locked != 0) { @@ -3047,12 +3047,12 @@ tryagain: LIST_INSERT_HEAD(&new_stp->ls_open, new_open, ls_list); LIST_INSERT_HEAD(&clp->lc_open, new_stp, ls_list); *new_stpp = NULL; - nfsstatsv1_p->srvopenowners++; + NFSD_VNET(nfsstatsv1_p)->srvopenowners++; nfsrv_openpluslock++; } openstp = new_open; new_open = NULL; - nfsstatsv1_p->srvopens++; + NFSD_VNET(nfsstatsv1_p)->srvopens++; nfsrv_openpluslock++; break; } @@ -3113,7 +3113,7 @@ tryagain: NFSRV_V4DELEGLIMIT(nfsrv_delegatecnt) || !NFSVNO_DELEGOK(vp)) *rflagsp |= NFSV4OPEN_RECALL; - nfsstatsv1_p->srvdelegates++; + NFSD_VNET(nfsstatsv1_p)->srvdelegates++; nfsrv_openpluslock++; nfsrv_delegatecnt++; @@ -3153,12 +3153,12 @@ tryagain: LIST_INSERT_HEAD(&new_stp->ls_open, new_open, ls_list); LIST_INSERT_HEAD(&clp->lc_open, new_stp, ls_list); *new_stpp = NULL; - nfsstatsv1_p->srvopenowners++; + NFSD_VNET(nfsstatsv1_p)->srvopenowners++; nfsrv_openpluslock++; } openstp = new_open; new_open = NULL; - nfsstatsv1_p->srvopens++; + NFSD_VNET(nfsstatsv1_p)->srvopens++; nfsrv_openpluslock++; } else { error = NFSERR_RECLAIMCONFLICT; @@ -3230,7 +3230,7 @@ tryagain: new_deleg->ls_stateid), new_deleg, ls_hash); LIST_INSERT_HEAD(&clp->lc_deleg, new_deleg, ls_list); new_deleg = NULL; - nfsstatsv1_p->srvdelegates++; + NFSD_VNET(nfsstatsv1_p)->srvdelegates++; nfsrv_openpluslock++; nfsrv_delegatecnt++; } @@ -3252,7 +3252,7 @@ tryagain: new_open, ls_hash); openstp = new_open; new_open = NULL; - nfsstatsv1_p->srvopens++; + NFSD_VNET(nfsstatsv1_p)->srvopens++; nfsrv_openpluslock++; /* @@ -3300,7 +3300,7 @@ tryagain: new_deleg->ls_stateid), new_deleg, ls_hash); LIST_INSERT_HEAD(&clp->lc_deleg, new_deleg, ls_list); new_deleg = NULL; - nfsstatsv1_p->srvdelegates++; + NFSD_VNET(nfsstatsv1_p)->srvdelegates++; nfsrv_openpluslock++; nfsrv_delegatecnt++; } @@ -3381,7 +3381,7 @@ tryagain: LIST_INSERT_HEAD(&clp->lc_deleg, new_deleg, ls_list); new_deleg = NULL; - nfsstatsv1_p->srvdelegates++; + NFSD_VNET(nfsstatsv1_p)->srvdelegates++; nfsrv_openpluslock++; nfsrv_delegatecnt++; } @@ -3409,9 +3409,9 @@ tryagain: openstp = new_open; new_open = NULL; *new_stpp = NULL; - nfsstatsv1_p->srvopens++; + NFSD_VNET(nfsstatsv1_p)->srvopens++; nfsrv_openpluslock++; - nfsstatsv1_p->srvopenowners++; + NFSD_VNET(nfsstatsv1_p)->srvopenowners++; nfsrv_openpluslock++; } if (!error) { @@ -3887,7 +3887,7 @@ nfsrv_insertlock(struct nfslock *new_lop, struct nfslock *insert_lop, else LIST_INSERT_AFTER(insert_lop, new_lop, lo_lckowner); if (stp != NULL) { - nfsstatsv1_p->srvlocks++; + NFSD_VNET(nfsstatsv1_p)->srvlocks++; nfsrv_openpluslock++; } } @@ -7455,7 +7455,7 @@ nfsrv_addlayout(struct nfsrv_descript *nd, struct nfslayout **lypp, /* Insert the new layout in the lists. */ *lypp = NULL; atomic_add_int(&nfsrv_layoutcnt, 1); - nfsstatsv1_p->srvlayouts++; + NFSD_VNET(nfsstatsv1_p)->srvlayouts++; NFSBCOPY(lyp->lay_xdr, layp, lyp->lay_layoutlen); *layoutlenp = lyp->lay_layoutlen; TAILQ_INSERT_HEAD(&lhyp->list, lyp, lay_list); @@ -7548,7 +7548,7 @@ nfsrv_freelayout(struct nfslayouthead *lhp, struct nfslayout *lyp) NFSD_DEBUG(4, "Freelayout=%p\n", lyp); atomic_add_int(&nfsrv_layoutcnt, -1); - nfsstatsv1_p->srvlayouts--; + NFSD_VNET(nfsstatsv1_p)->srvlayouts--; TAILQ_REMOVE(lhp, lyp, lay_list); free(lyp, M_NFSDSTATE); } From nobody Tue May 16 14:30:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLJYl24DHz4B6Bp; Tue, 16 May 2023 14:30:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLJYl1tp8z3lkj; Tue, 16 May 2023 14:30:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684247435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MW7KuvWYhmHTGVHehWipktuaggnppdjXSYU0bH7jUPU=; b=HpacupIJlv620EqZaTjZlDir7OeuJGdApdxqvmpVZoz9hedRZvLK4LbQr1Sz+NlBWbJRSE g5YzduXIj7g4s95gbeduVKMFtk/6qD8r+Q8brR5AdcwaeTJaB/7P14oWeJQbMkIyjkqS/X YGMKpEKBMrukME7ygnYvgBS8dI7KV5xfp7c4rW1s6kAuuF2vvYzrTW59H3YUvUxL44Kme3 8YUQj05oSPo87wizm1T/ZcnCSTkUY5SnJTzKTEvr53MiaBG6ncZNIQ0Ur1RGuhR4WN+8gL lUsqybhat+e0rDvyBLoxamNt1KIDewzGt0X8C4IwxQ6lo+l+cLjPRFSkNd30og== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684247435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MW7KuvWYhmHTGVHehWipktuaggnppdjXSYU0bH7jUPU=; b=TZYnLR211mdobsOmT7MxU9jkT+k4evr9sKAKRtvl35fTn7HaKgzle1aUeEIPkwuUFDRiBJ s8xiFdTURziU9kcN4iqEGT7dP1rimFI0u2v7cxY7xEyxi4ejlIiI2j8zJcIkr6c9DjQWZ9 nHdigVCEWHh41yt0H++eL+AskJvUIZviLSIEh8ji8x5+/J9s3nn88pbNJ9Xqput2jzVJjK 4DPEN5h/1rWhEOnEH97ORiYBJK/9GjZOIc3vERQDrrZOerToAHaZwJ5+6Y41ktBQEWs2gm IpmgQJONSmQgQx5OmkW4yP6FXxLzzI+9130XcM+L6IFVSXwdXFuOD45KJHpa0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684247435; a=rsa-sha256; cv=none; b=sD5pnYaOJsuVHvUzZXfwPKgrLDtwSSGf+j3oiCD/+zIHgk/v6TVbDbXGMBUF3Zw932AQxk YOiA+DmKjHFFFMmiEtfV0jBnIsxwt3nkOKGYkr9w17Oh2JJgzUFj1hOkx+OQi+YTfSUOF4 LtKJSggvCen/+xvbQfnv1bcbcA5y7T7p1TKHc26WFLIvhVAU1yvZF/IDM7Bs9fDG6HDurn Hhr6F+DR7Zf1gn5onl1/0tY4djofAk3en9damwDZ5CB6Ra6IFi6ALqUQCuy0EEBXd7vdRy 9BsGa0WE6pxX/K7/ZP6OjNemmMbX1uBrrjzqcChXLJsFUZLV1fUjownmmLnTgw== 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 4QLJYl0xmwzPyW; Tue, 16 May 2023 14:30:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GEUZV2021881; Tue, 16 May 2023 14:30:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GEUZU8021853; Tue, 16 May 2023 14:30:35 GMT (envelope-from git) Date: Tue, 16 May 2023 14:30:35 GMT Message-Id: <202305161430.34GEUZU8021853@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: e9f9e3f4086f - stable/13 - nfsd: Continue adding macros so nfsd can run in a vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: e9f9e3f4086fe4ed15cffa1cceee454bd2995230 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=e9f9e3f4086fe4ed15cffa1cceee454bd2995230 commit e9f9e3f4086fe4ed15cffa1cceee454bd2995230 Author: Rick Macklem AuthorDate: 2023-02-14 21:33:35 +0000 Commit: Rick Macklem CommitDate: 2023-05-16 14:29:25 +0000 nfsd: Continue adding macros so nfsd can run in a vnet prison Commit 7344856e3a6d added a lot of macros that will front end vnet macros so that nfsd(8) can run in vnet prison. This patch adds some more, to allow the nfsuserd(8) daemon to run in vnet prison, once the macros map to vnet ones. This is the last commit for NFSD_VNET_xxx macros, but there are still some for KRPC_VNET_xxx and KGSS_VNET_xx to allow the rpc.tlsservd(8) and gssd(8) daemons to run in a vnet prison. (cherry picked from commit f0db2b6022dfa15f375f5fcdd278b9df21cb88f5) --- sys/fs/nfs/nfs_commonport.c | 14 ++- sys/fs/nfs/nfs_commonsubs.c | 289 ++++++++++++++++++++++++-------------------- 2 files changed, 169 insertions(+), 134 deletions(-) diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index def18522104d..7fdcdf967fff 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -56,8 +56,6 @@ __FBSDID("$FreeBSD$"); #include extern int nfscl_ticks; -extern nfsuserd_state nfsrv_nfsuserd; -extern struct nfssockreq nfsrv_nfsuserdsock; extern void (*nfsd_call_recall)(struct vnode *, int, struct ucred *, struct thread *); extern int nfsrv_useacl; @@ -77,6 +75,9 @@ uint32_t nfs_srvmaxio = NFS_SRVMAXIO; NFSD_VNET_DEFINE(struct nfsstatsv1 *, nfsstatsv1_p); +NFSD_VNET_DECLARE(struct nfssockreq, nfsrv_nfsuserdsock); +NFSD_VNET_DECLARE(nfsuserd_state, nfsrv_nfsuserd); + int nfs_pnfsio(task_fn_t *, void *); static int nfs_realign_test; @@ -876,6 +877,7 @@ nfs_clean(struct prison *pr) { NFSD_CURVNET_SET(pr->pr_vnet); + mtx_destroy(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx); if (pr != &prison0) free(NFSD_VNET(nfsstatsv1_p), M_TEMP); /* Clean out the name<-->id cache. */ @@ -895,6 +897,8 @@ nfs_vnetinit(const void *unused __unused) else NFSD_VNET(nfsstatsv1_p) = malloc(sizeof(struct nfsstatsv1), M_TEMP, M_WAITOK | M_ZERO); + mtx_init(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx, "nfsuserd", + NULL, MTX_DEF); } SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, nfs_vnetinit, NULL); @@ -919,8 +923,6 @@ nfscommon_modevent(module_t mod, int type, void *data) mtx_init(&nfs_sockl_mutex, "nfs_sockl_mutex", NULL, MTX_DEF); mtx_init(&nfs_slock_mutex, "nfs_slock_mutex", NULL, MTX_DEF); mtx_init(&nfs_req_mutex, "nfs_req_mutex", NULL, MTX_DEF); - mtx_init(&nfsrv_nfsuserdsock.nr_mtx, "nfsuserd", NULL, - MTX_DEF); mtx_init(&nfsrv_dslock_mtx, "nfs4ds", NULL, MTX_DEF); TAILQ_INIT(&nfsrv_devidhead); newnfs_init(); @@ -929,7 +931,8 @@ nfscommon_modevent(module_t mod, int type, void *data) break; case MOD_UNLOAD: - if (newnfs_numnfsd != 0 || nfsrv_nfsuserd != NOTRUNNING || + if (newnfs_numnfsd != 0 || + NFSD_VNET(nfsrv_nfsuserd) != NOTRUNNING || nfs_numnfscbd != 0) { error = EBUSY; break; @@ -945,7 +948,6 @@ nfscommon_modevent(module_t mod, int type, void *data) mtx_destroy(&nfs_sockl_mutex); mtx_destroy(&nfs_slock_mutex); mtx_destroy(&nfs_req_mutex); - mtx_destroy(&nfsrv_nfsuserdsock.nr_mtx); mtx_destroy(&nfsrv_dslock_mtx); loaded = 0; break; diff --git a/sys/fs/nfs/nfs_commonsubs.c b/sys/fs/nfs/nfs_commonsubs.c index fe961d17453f..00cc8c68e9bf 100644 --- a/sys/fs/nfs/nfs_commonsubs.c +++ b/sys/fs/nfs/nfs_commonsubs.c @@ -66,17 +66,10 @@ enum vtype nv34tov_type[8]={ VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO }; struct timeval nfsboottime; /* Copy boottime once, so it never changes */ int nfscl_ticks; int nfsrv_useacl = 1; -struct nfssockreq nfsrv_nfsuserdsock; -nfsuserd_state nfsrv_nfsuserd = NOTRUNNING; -static int nfsrv_userdupcalls = 0; struct nfsreqhead nfsd_reqq; -uid_t nfsrv_defaultuid = UID_NOBODY; -gid_t nfsrv_defaultgid = GID_NOGROUP; int nfsrv_lease = NFSRV_LEASE; int ncl_mbuf_mlen = MLEN; -int nfsd_enable_stringtouid = 0; int nfsrv_doflexfile = 0; -static int nfs_enable_uidtostring = 0; NFSNAMEIDMUTEX; NFSSOCKMUTEX; extern int nfsrv_lughashsize; @@ -87,9 +80,20 @@ extern struct nfsdevicehead nfsrv_devidhead; extern struct nfsstatsv1 nfsstatsv1; extern uint32_t nfs_srvmaxio; +NFSD_VNET_DEFINE(int, nfsd_enable_stringtouid) = 0; +NFSD_VNET_DEFINE(struct nfssockreq, nfsrv_nfsuserdsock); +NFSD_VNET_DEFINE(nfsuserd_state, nfsrv_nfsuserd) = NOTRUNNING; +NFSD_VNET_DEFINE(uid_t, nfsrv_defaultuid) = UID_NOBODY; +NFSD_VNET_DEFINE(gid_t, nfsrv_defaultgid) = GID_NOGROUP; + +NFSD_VNET_DEFINE_STATIC(int, nfsrv_userdupcalls) = 0; + SYSCTL_DECL(_vfs_nfs); -SYSCTL_INT(_vfs_nfs, OID_AUTO, enable_uidtostring, CTLFLAG_RW, - &nfs_enable_uidtostring, 0, "Make nfs always send numeric owner_names"); + +NFSD_VNET_DEFINE_STATIC(int, nfs_enable_uidtostring) = 0; +SYSCTL_INT(_vfs_nfs, OID_AUTO, enable_uidtostring, + CTLFLAG_NFSD_VNET | CTLFLAG_RW, &NFSD_VNET_NAME(nfs_enable_uidtostring), 0, + "Make nfs always send numeric owner_names"); int nfsrv_maxpnfsmirror = 1; SYSCTL_INT(_vfs_nfs, OID_AUTO, pnfsmirror, CTLFLAG_RD, @@ -192,18 +196,19 @@ struct nfsv4_opflag nfsv4_opflag[NFSV42_NOPS] = { }; static int ncl_mbuf_mhlen = MHLEN; -static int nfsrv_usercnt = 0; -static int nfsrv_dnsnamelen; -static u_char *nfsrv_dnsname = NULL; -static int nfsrv_usermax = 999999999; struct nfsrv_lughash { struct mtx mtx; struct nfsuserhashhead lughead; }; -static struct nfsrv_lughash *nfsuserhash; -static struct nfsrv_lughash *nfsusernamehash; -static struct nfsrv_lughash *nfsgrouphash; -static struct nfsrv_lughash *nfsgroupnamehash; + +NFSD_VNET_DEFINE_STATIC(int, nfsrv_usercnt) = 0; +NFSD_VNET_DEFINE_STATIC(int, nfsrv_dnsnamelen) = 0; +NFSD_VNET_DEFINE_STATIC(int, nfsrv_usermax) = 999999999; +NFSD_VNET_DEFINE_STATIC(struct nfsrv_lughash *, nfsuserhash) = NULL; +NFSD_VNET_DEFINE_STATIC(struct nfsrv_lughash *, nfsusernamehash) = NULL; +NFSD_VNET_DEFINE_STATIC(struct nfsrv_lughash *, nfsgrouphash) = NULL; +NFSD_VNET_DEFINE_STATIC(struct nfsrv_lughash *, nfsgroupnamehash) = NULL; +NFSD_VNET_DEFINE_STATIC(u_char *, nfsrv_dnsname) = NULL; /* * This static array indicates whether or not the RPC generates a large @@ -1247,6 +1252,7 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, #endif CTASSERT(sizeof(ino_t) == sizeof(uint64_t)); + NFSD_CURVNET_SET_QUIET(NFSD_TD_TO_VNET(curthread)); if (compare) { retnotsup = 0; error = nfsrv_getattrbits(nd, &attrbits, NULL, &retnotsup); @@ -1872,7 +1878,8 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, } } else if (nap != NULL) { if (nfsv4_strtouid(nd, cp, j, &uid)) - nap->na_uid = nfsrv_defaultuid; + nap->na_uid = + NFSD_VNET(nfsrv_defaultuid); else nap->na_uid = uid; } @@ -1905,7 +1912,8 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, } } else if (nap != NULL) { if (nfsv4_strtogid(nd, cp, j, &gid)) - nap->na_gid = nfsrv_defaultgid; + nap->na_gid = + NFSD_VNET(nfsrv_defaultgid); else nap->na_gid = gid; } @@ -2268,6 +2276,7 @@ nfsv4_loadattr(struct nfsrv_descript *nd, vnode_t vp, error = nfsm_advance(nd, attrsize - attrsum, -1); } nfsmout: + NFSD_CURVNET_RESTORE(); NFSEXITCODE2(error, nd); return (error); } @@ -3146,14 +3155,16 @@ nfsv4_uidtostr(uid_t uid, u_char **cpp, int *retlenp) int cnt, hasampersand, len = NFSV4_SMALLSTR, ret; struct nfsrv_lughash *hp; + NFSD_CURVNET_SET_QUIET(NFSD_TD_TO_VNET(curthread)); cnt = 0; tryagain: - if (nfsrv_dnsnamelen > 0 && !nfs_enable_uidtostring) { + if (NFSD_VNET(nfsrv_dnsnamelen) > 0 && + !NFSD_VNET(nfs_enable_uidtostring)) { /* * Always map nfsrv_defaultuid to "nobody". */ - if (uid == nfsrv_defaultuid) { - i = nfsrv_dnsnamelen + 7; + if (uid == NFSD_VNET(nfsrv_defaultuid)) { + i = NFSD_VNET(nfsrv_dnsnamelen) + 7; if (i > len) { if (len > NFSV4_SMALLSTR) free(cp, M_NFSSTRING); @@ -3165,7 +3176,9 @@ tryagain: *retlenp = i; NFSBCOPY("nobody@", cp, 7); cp += 7; - NFSBCOPY(nfsrv_dnsname, cp, nfsrv_dnsnamelen); + NFSBCOPY(NFSD_VNET(nfsrv_dnsname), cp, + NFSD_VNET(nfsrv_dnsnamelen)); + NFSD_CURVNET_RESTORE(); return; } hasampersand = 0; @@ -3189,7 +3202,7 @@ tryagain: i = usrp->lug_namelen; else i = usrp->lug_namelen + - nfsrv_dnsnamelen + 1; + NFSD_VNET(nfsrv_dnsnamelen) + 1; if (i > len) { mtx_unlock(&hp->mtx); if (len > NFSV4_SMALLSTR) @@ -3204,12 +3217,14 @@ tryagain: if (!hasampersand) { cp += usrp->lug_namelen; *cp++ = '@'; - NFSBCOPY(nfsrv_dnsname, cp, nfsrv_dnsnamelen); + NFSBCOPY(NFSD_VNET(nfsrv_dnsname), cp, + NFSD_VNET(nfsrv_dnsnamelen)); } TAILQ_REMOVE(&hp->lughead, usrp, lug_numhash); TAILQ_INSERT_TAIL(&hp->lughead, usrp, lug_numhash); mtx_unlock(&hp->mtx); + NFSD_CURVNET_RESTORE(); return; } } @@ -3237,6 +3252,7 @@ tryagain: *cp-- = '0' + (tmp % 10); tmp /= 10; } + NFSD_CURVNET_RESTORE(); return; } @@ -3257,7 +3273,7 @@ nfsrv_getgrpscred(struct ucred *oldcred) cnt = 0; uid = oldcred->cr_uid; tryagain: - if (nfsrv_dnsnamelen > 0) { + if (NFSD_VNET(nfsrv_dnsnamelen) > 0) { hp = NFSUSERHASH(uid); mtx_lock(&hp->mtx); TAILQ_FOREACH(usrp, &hp->lughead, lug_numhash) { @@ -3304,6 +3320,7 @@ nfsv4_strtouid(struct nfsrv_descript *nd, u_char *str, int len, uid_t *uidp) uid_t tuid; struct nfsrv_lughash *hp, *hp2; + NFSD_CURVNET_SET_QUIET(NFSD_TD_TO_VNET(curthread)); if (len == 0) { error = NFSERR_BADOWNER; goto out; @@ -3315,7 +3332,7 @@ nfsv4_strtouid(struct nfsrv_descript *nd, u_char *str, int len, uid_t *uidp) /* A numeric string. */ if ((nd->nd_flag & ND_KERBV) == 0 && ((nd->nd_flag & ND_NFSCL) != 0 || - nfsd_enable_stringtouid != 0)) + NFSD_VNET(nfsd_enable_stringtouid) != 0)) *uidp = tuid; else error = NFSERR_BADOWNER; @@ -3332,7 +3349,7 @@ nfsv4_strtouid(struct nfsrv_descript *nd, u_char *str, int len, uid_t *uidp) cnt = 0; tryagain: - if (nfsrv_dnsnamelen > 0) { + if (NFSD_VNET(nfsrv_dnsnamelen) > 0) { /* * If an '@' is found and the domain name matches, search for * the name with dns stripped off. @@ -3340,9 +3357,10 @@ tryagain: * all upper case will not. */ if (cnt == 0 && i < len && i > 0 && - (len - 1 - i) == nfsrv_dnsnamelen && - !nfsrv_cmpmixedcase(cp, nfsrv_dnsname, nfsrv_dnsnamelen)) { - len -= (nfsrv_dnsnamelen + 1); + (len - 1 - i) == NFSD_VNET(nfsrv_dnsnamelen) && + !nfsrv_cmpmixedcase(cp, + NFSD_VNET(nfsrv_dnsname), NFSD_VNET(nfsrv_dnsnamelen))) { + len -= (NFSD_VNET(nfsrv_dnsnamelen) + 1); *(cp - 1) = '\0'; } @@ -3350,7 +3368,7 @@ tryagain: * Check for the special case of "nobody". */ if (len == 6 && !NFSBCMP(str, "nobody", 6)) { - *uidp = nfsrv_defaultuid; + *uidp = NFSD_VNET(nfsrv_defaultuid); error = 0; goto out; } @@ -3384,6 +3402,7 @@ tryagain: error = NFSERR_BADOWNER; out: + NFSD_CURVNET_RESTORE(); NFSEXITCODE(error); return (error); } @@ -3405,14 +3424,16 @@ nfsv4_gidtostr(gid_t gid, u_char **cpp, int *retlenp) int cnt, hasampersand, len = NFSV4_SMALLSTR, ret; struct nfsrv_lughash *hp; + NFSD_CURVNET_SET_QUIET(NFSD_TD_TO_VNET(curthread)); cnt = 0; tryagain: - if (nfsrv_dnsnamelen > 0 && !nfs_enable_uidtostring) { + if (NFSD_VNET(nfsrv_dnsnamelen) > 0 && + !NFSD_VNET(nfs_enable_uidtostring)) { /* * Always map nfsrv_defaultgid to "nogroup". */ - if (gid == nfsrv_defaultgid) { - i = nfsrv_dnsnamelen + 8; + if (gid == NFSD_VNET(nfsrv_defaultgid)) { + i = NFSD_VNET(nfsrv_dnsnamelen) + 8; if (i > len) { if (len > NFSV4_SMALLSTR) free(cp, M_NFSSTRING); @@ -3424,7 +3445,9 @@ tryagain: *retlenp = i; NFSBCOPY("nogroup@", cp, 8); cp += 8; - NFSBCOPY(nfsrv_dnsname, cp, nfsrv_dnsnamelen); + NFSBCOPY(NFSD_VNET(nfsrv_dnsname), cp, + NFSD_VNET(nfsrv_dnsnamelen)); + NFSD_CURVNET_RESTORE(); return; } hasampersand = 0; @@ -3448,7 +3471,7 @@ tryagain: i = usrp->lug_namelen; else i = usrp->lug_namelen + - nfsrv_dnsnamelen + 1; + NFSD_VNET(nfsrv_dnsnamelen) + 1; if (i > len) { mtx_unlock(&hp->mtx); if (len > NFSV4_SMALLSTR) @@ -3463,12 +3486,14 @@ tryagain: if (!hasampersand) { cp += usrp->lug_namelen; *cp++ = '@'; - NFSBCOPY(nfsrv_dnsname, cp, nfsrv_dnsnamelen); + NFSBCOPY(NFSD_VNET(nfsrv_dnsname), cp, + NFSD_VNET(nfsrv_dnsnamelen)); } TAILQ_REMOVE(&hp->lughead, usrp, lug_numhash); TAILQ_INSERT_TAIL(&hp->lughead, usrp, lug_numhash); mtx_unlock(&hp->mtx); + NFSD_CURVNET_RESTORE(); return; } } @@ -3496,6 +3521,7 @@ tryagain: *cp-- = '0' + (tmp % 10); tmp /= 10; } + NFSD_CURVNET_RESTORE(); return; } @@ -3518,6 +3544,7 @@ nfsv4_strtogid(struct nfsrv_descript *nd, u_char *str, int len, gid_t *gidp) gid_t tgid; struct nfsrv_lughash *hp, *hp2; + NFSD_CURVNET_SET_QUIET(NFSD_TD_TO_VNET(curthread)); if (len == 0) { error = NFSERR_BADOWNER; goto out; @@ -3529,7 +3556,7 @@ nfsv4_strtogid(struct nfsrv_descript *nd, u_char *str, int len, gid_t *gidp) /* A numeric string. */ if ((nd->nd_flag & ND_KERBV) == 0 && ((nd->nd_flag & ND_NFSCL) != 0 || - nfsd_enable_stringtouid != 0)) + NFSD_VNET(nfsd_enable_stringtouid) != 0)) *gidp = tgid; else error = NFSERR_BADOWNER; @@ -3546,15 +3573,16 @@ nfsv4_strtogid(struct nfsrv_descript *nd, u_char *str, int len, gid_t *gidp) cnt = 0; tryagain: - if (nfsrv_dnsnamelen > 0) { + if (NFSD_VNET(nfsrv_dnsnamelen) > 0) { /* * If an '@' is found and the dns name matches, search for the * name with the dns stripped off. */ if (cnt == 0 && i < len && i > 0 && - (len - 1 - i) == nfsrv_dnsnamelen && - !nfsrv_cmpmixedcase(cp, nfsrv_dnsname, nfsrv_dnsnamelen)) { - len -= (nfsrv_dnsnamelen + 1); + (len - 1 - i) == NFSD_VNET(nfsrv_dnsnamelen) && + !nfsrv_cmpmixedcase(cp, + NFSD_VNET(nfsrv_dnsname), NFSD_VNET(nfsrv_dnsnamelen))) { + len -= (NFSD_VNET(nfsrv_dnsnamelen) + 1); *(cp - 1) = '\0'; } @@ -3562,7 +3590,7 @@ tryagain: * Check for the special case of "nogroup". */ if (len == 7 && !NFSBCMP(str, "nogroup", 7)) { - *gidp = nfsrv_defaultgid; + *gidp = NFSD_VNET(nfsrv_defaultgid); error = 0; goto out; } @@ -3596,6 +3624,7 @@ tryagain: error = NFSERR_BADOWNER; out: + NFSD_CURVNET_RESTORE(); NFSEXITCODE(error); return (error); } @@ -3646,12 +3675,12 @@ nfsrv_nfsuserdport(struct nfsuserd_args *nargs, NFSPROC_T *p) int error; NFSLOCKNAMEID(); - if (nfsrv_nfsuserd != NOTRUNNING) { + if (NFSD_VNET(nfsrv_nfsuserd) != NOTRUNNING) { NFSUNLOCKNAMEID(); error = EPERM; goto out; } - nfsrv_nfsuserd = STARTSTOP; + NFSD_VNET(nfsrv_nfsuserd) = STARTSTOP; /* * Set up the socket record and connect. * Set nr_client NULL before unlocking, just to ensure that no other @@ -3659,7 +3688,7 @@ nfsrv_nfsuserdport(struct nfsuserd_args *nargs, NFSPROC_T *p) * occur if the use of the nameid lock to protect nfsrv_nfsuserd is * broken. */ - rp = &nfsrv_nfsuserdsock; + rp = &NFSD_VNET(nfsrv_nfsuserdsock); rp->nr_client = NULL; NFSUNLOCKNAMEID(); rp->nr_sotype = SOCK_DGRAM; @@ -3700,12 +3729,12 @@ nfsrv_nfsuserdport(struct nfsuserd_args *nargs, NFSPROC_T *p) &rp->nr_client); if (error == 0) { NFSLOCKNAMEID(); - nfsrv_nfsuserd = RUNNING; + NFSD_VNET(nfsrv_nfsuserd) = RUNNING; NFSUNLOCKNAMEID(); } else { free(rp->nr_nam, M_SONAME); NFSLOCKNAMEID(); - nfsrv_nfsuserd = NOTRUNNING; + NFSD_VNET(nfsrv_nfsuserd) = NOTRUNNING; NFSUNLOCKNAMEID(); } out: @@ -3721,20 +3750,20 @@ nfsrv_nfsuserddelport(void) { NFSLOCKNAMEID(); - if (nfsrv_nfsuserd != RUNNING) { + if (NFSD_VNET(nfsrv_nfsuserd) != RUNNING) { NFSUNLOCKNAMEID(); return; } - nfsrv_nfsuserd = STARTSTOP; + NFSD_VNET(nfsrv_nfsuserd) = STARTSTOP; /* Wait for all upcalls to complete. */ - while (nfsrv_userdupcalls > 0) - msleep(&nfsrv_userdupcalls, NFSNAMEIDMUTEXPTR, PVFS, + while (NFSD_VNET(nfsrv_userdupcalls) > 0) + msleep(&NFSD_VNET(nfsrv_userdupcalls), NFSNAMEIDMUTEXPTR, PVFS, "nfsupcalls", 0); NFSUNLOCKNAMEID(); - newnfs_disconnect(NULL, &nfsrv_nfsuserdsock); - free(nfsrv_nfsuserdsock.nr_nam, M_SONAME); + newnfs_disconnect(NULL, &NFSD_VNET(nfsrv_nfsuserdsock)); + free(NFSD_VNET(nfsrv_nfsuserdsock).nr_nam, M_SONAME); NFSLOCKNAMEID(); - nfsrv_nfsuserd = NOTRUNNING; + NFSD_VNET(nfsrv_nfsuserd) = NOTRUNNING; NFSUNLOCKNAMEID(); } @@ -3754,7 +3783,7 @@ nfsrv_getuser(int procnum, uid_t uid, gid_t gid, char *name) int error; NFSLOCKNAMEID(); - if (nfsrv_nfsuserd != RUNNING) { + if (NFSD_VNET(nfsrv_nfsuserd) != RUNNING) { NFSUNLOCKNAMEID(); error = EPERM; goto out; @@ -3763,9 +3792,9 @@ nfsrv_getuser(int procnum, uid_t uid, gid_t gid, char *name) * Maintain a count of upcalls in progress, so that nfsrv_X() * can wait until no upcalls are in progress. */ - nfsrv_userdupcalls++; + NFSD_VNET(nfsrv_userdupcalls)++; NFSUNLOCKNAMEID(); - KASSERT(nfsrv_userdupcalls > 0, + KASSERT(NFSD_VNET(nfsrv_userdupcalls) > 0, ("nfsrv_getuser: non-positive upcalls")); nd = &nfsd; cred = newnfs_getcred(); @@ -3783,11 +3812,13 @@ nfsrv_getuser(int procnum, uid_t uid, gid_t gid, char *name) len = strlen(name); (void) nfsm_strtom(nd, name, len); } - error = newnfs_request(nd, NULL, NULL, &nfsrv_nfsuserdsock, NULL, NULL, - cred, RPCPROG_NFSUSERD, RPCNFSUSERD_VERS, NULL, 0, NULL, NULL); + error = newnfs_request(nd, NULL, NULL, &NFSD_VNET(nfsrv_nfsuserdsock), + NULL, NULL, cred, RPCPROG_NFSUSERD, RPCNFSUSERD_VERS, NULL, 0, + NULL, NULL); NFSLOCKNAMEID(); - if (--nfsrv_userdupcalls == 0 && nfsrv_nfsuserd == STARTSTOP) - wakeup(&nfsrv_userdupcalls); + if (--NFSD_VNET(nfsrv_userdupcalls) == 0 && + NFSD_VNET(nfsrv_nfsuserd) == STARTSTOP) + wakeup(&NFSD_VNET(nfsrv_userdupcalls)); NFSUNLOCKNAMEID(); NFSFREECRED(cred); if (!error) { @@ -3827,7 +3858,8 @@ nfssvc_idname(struct nfsd_idargs *nidp) free(cp, M_NFSSTRING); goto out; } - if (atomic_cmpset_acq_int(&nfsrv_dnsnamelen, 0, 0) == 0) { + if (atomic_cmpset_acq_int(&NFSD_VNET(nfsrv_dnsnamelen), 0, 0) == + 0) { /* * Free up all the old stuff and reinitialize hash * lists. All mutexes for both lists must be locked, @@ -3835,80 +3867,81 @@ nfssvc_idname(struct nfsd_idargs *nidp) * ones, to avoid a LOR. */ for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsusernamehash[i].mtx); + mtx_lock(&NFSD_VNET(nfsusernamehash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsuserhash[i].mtx); + mtx_lock(&NFSD_VNET(nfsuserhash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) TAILQ_FOREACH_SAFE(usrp, - &nfsuserhash[i].lughead, lug_numhash, nusrp) + &NFSD_VNET(nfsuserhash)[i].lughead, lug_numhash, nusrp) nfsrv_removeuser(usrp, 1); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsuserhash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsuserhash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsusernamehash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsusernamehash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsgroupnamehash[i].mtx); + mtx_lock(&NFSD_VNET(nfsgroupnamehash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsgrouphash[i].mtx); + mtx_lock(&NFSD_VNET(nfsgrouphash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) TAILQ_FOREACH_SAFE(usrp, - &nfsgrouphash[i].lughead, lug_numhash, + &NFSD_VNET(nfsgrouphash)[i].lughead, lug_numhash, nusrp) nfsrv_removeuser(usrp, 0); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsgrouphash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsgrouphash)[i].mtx); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsgroupnamehash[i].mtx); - free(nfsrv_dnsname, M_NFSSTRING); - nfsrv_dnsname = NULL; + mtx_unlock(&NFSD_VNET(nfsgroupnamehash)[i].mtx); + free(NFSD_VNET(nfsrv_dnsname), M_NFSSTRING); + NFSD_VNET(nfsrv_dnsname) = NULL; } - if (nfsuserhash == NULL) { + if (NFSD_VNET(nfsuserhash) == NULL) { /* Allocate the hash tables. */ - nfsuserhash = malloc(sizeof(struct nfsrv_lughash) * + NFSD_VNET(nfsuserhash) = malloc(sizeof(struct nfsrv_lughash) * nfsrv_lughashsize, M_NFSUSERGROUP, M_WAITOK | M_ZERO); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_init(&nfsuserhash[i].mtx, "nfsuidhash", + mtx_init(&NFSD_VNET(nfsuserhash)[i].mtx, "nfsuidhash", NULL, MTX_DEF | MTX_DUPOK); - nfsusernamehash = malloc(sizeof(struct nfsrv_lughash) * + NFSD_VNET(nfsusernamehash) = malloc(sizeof(struct nfsrv_lughash) * nfsrv_lughashsize, M_NFSUSERGROUP, M_WAITOK | M_ZERO); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_init(&nfsusernamehash[i].mtx, + mtx_init(&NFSD_VNET(nfsusernamehash)[i].mtx, "nfsusrhash", NULL, MTX_DEF | MTX_DUPOK); - nfsgrouphash = malloc(sizeof(struct nfsrv_lughash) * + NFSD_VNET(nfsgrouphash) = malloc(sizeof(struct nfsrv_lughash) * nfsrv_lughashsize, M_NFSUSERGROUP, M_WAITOK | M_ZERO); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_init(&nfsgrouphash[i].mtx, "nfsgidhash", + mtx_init(&NFSD_VNET(nfsgrouphash)[i].mtx, "nfsgidhash", NULL, MTX_DEF | MTX_DUPOK); - nfsgroupnamehash = malloc(sizeof(struct nfsrv_lughash) * + NFSD_VNET(nfsgroupnamehash) = malloc(sizeof(struct nfsrv_lughash) * nfsrv_lughashsize, M_NFSUSERGROUP, M_WAITOK | M_ZERO); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_init(&nfsgroupnamehash[i].mtx, + mtx_init(&NFSD_VNET(nfsgroupnamehash)[i].mtx, "nfsgrphash", NULL, MTX_DEF | MTX_DUPOK); } /* (Re)initialize the list heads. */ for (i = 0; i < nfsrv_lughashsize; i++) - TAILQ_INIT(&nfsuserhash[i].lughead); + TAILQ_INIT(&NFSD_VNET(nfsuserhash)[i].lughead); for (i = 0; i < nfsrv_lughashsize; i++) - TAILQ_INIT(&nfsusernamehash[i].lughead); + TAILQ_INIT(&NFSD_VNET(nfsusernamehash)[i].lughead); for (i = 0; i < nfsrv_lughashsize; i++) - TAILQ_INIT(&nfsgrouphash[i].lughead); + TAILQ_INIT(&NFSD_VNET(nfsgrouphash)[i].lughead); for (i = 0; i < nfsrv_lughashsize; i++) - TAILQ_INIT(&nfsgroupnamehash[i].lughead); + TAILQ_INIT(&NFSD_VNET(nfsgroupnamehash)[i].lughead); /* * Put name in "DNS" string. */ - nfsrv_dnsname = cp; - nfsrv_defaultuid = nidp->nid_uid; - nfsrv_defaultgid = nidp->nid_gid; - nfsrv_usercnt = 0; - nfsrv_usermax = nidp->nid_usermax; - atomic_store_rel_int(&nfsrv_dnsnamelen, nidp->nid_namelen); + NFSD_VNET(nfsrv_dnsname) = cp; + NFSD_VNET(nfsrv_defaultuid) = nidp->nid_uid; + NFSD_VNET(nfsrv_defaultgid) = nidp->nid_gid; + NFSD_VNET(nfsrv_usercnt) = 0; + NFSD_VNET(nfsrv_usermax) = nidp->nid_usermax; + atomic_store_rel_int(&NFSD_VNET(nfsrv_dnsnamelen), + nidp->nid_namelen); goto out; } @@ -3935,7 +3968,7 @@ nfssvc_idname(struct nfsd_idargs *nidp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = nidp->nid_uid; crsetgroups(cr, nidp->nid_ngroup, grps); cr->cr_rgid = cr->cr_svgid = cr->cr_groups[0]; - cr->cr_prison = &prison0; + cr->cr_prison = curthread->td_ucred->cr_prison; prison_hold(cr->cr_prison); #ifdef MAC mac_cred_associate_nfsd(cr); @@ -3967,7 +4000,7 @@ nfssvc_idname(struct nfsd_idargs *nidp) if (nidp->nid_flag & (NFSID_DELUID | NFSID_ADDUID)) { /* Must lock all username hash lists first, to avoid a LOR. */ for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsusernamehash[i].mtx); + mtx_lock(&NFSD_VNET(nfsusernamehash)[i].mtx); username_locked = 1; hp_idnum = NFSUSERHASH(nidp->nid_uid); mtx_lock(&hp_idnum->mtx); @@ -3996,7 +4029,7 @@ nfssvc_idname(struct nfsd_idargs *nidp) } else if (nidp->nid_flag & (NFSID_DELGID | NFSID_ADDGID)) { /* Must lock all groupname hash lists first, to avoid a LOR. */ for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsgroupnamehash[i].mtx); + mtx_lock(&NFSD_VNET(nfsgroupnamehash)[i].mtx); groupname_locked = 1; hp_idnum = NFSGROUPHASH(nidp->nid_gid); mtx_lock(&hp_idnum->mtx); @@ -4039,7 +4072,7 @@ nfssvc_idname(struct nfsd_idargs *nidp) thp = NFSUSERNAMEHASH(newusrp->lug_name, newusrp->lug_namelen); mtx_assert(&thp->mtx, MA_OWNED); TAILQ_INSERT_TAIL(&thp->lughead, newusrp, lug_namehash); - atomic_add_int(&nfsrv_usercnt, 1); + atomic_add_int(&NFSD_VNET(nfsrv_usercnt), 1); } else if (nidp->nid_flag & (NFSID_ADDGID | NFSID_ADDGROUPNAME)) { newusrp->lug_gid = nidp->nid_gid; thp = NFSGROUPHASH(newusrp->lug_gid); @@ -4048,7 +4081,7 @@ nfssvc_idname(struct nfsd_idargs *nidp) thp = NFSGROUPNAMEHASH(newusrp->lug_name, newusrp->lug_namelen); mtx_assert(&thp->mtx, MA_OWNED); TAILQ_INSERT_TAIL(&thp->lughead, newusrp, lug_namehash); - atomic_add_int(&nfsrv_usercnt, 1); + atomic_add_int(&NFSD_VNET(nfsrv_usercnt), 1); } else { if (newusrp->lug_cred != NULL) crfree(newusrp->lug_cred); @@ -4077,17 +4110,17 @@ nfssvc_idname(struct nfsd_idargs *nidp) NFSID_DELUSERNAME | NFSID_ADDUSERNAME)) != 0) { if (username_locked == 0) { for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsusernamehash[i].mtx); + mtx_lock(&NFSD_VNET(nfsusernamehash)[i].mtx); username_locked = 1; } KASSERT(user_locked == 0, ("nfssvc_idname: user_locked")); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsuserhash[i].mtx); + mtx_lock(&NFSD_VNET(nfsuserhash)[i].mtx); user_locked = 1; for (i = 0; i < nfsrv_lughashsize; i++) { TAILQ_FOREACH_SAFE(usrp, - &nfsuserhash[i].lughead, lug_numhash, + &NFSD_VNET(nfsuserhash)[i].lughead, lug_numhash, nusrp) if (usrp->lug_expiry < NFSD_MONOSEC) nfsrv_removeuser(usrp, 1); @@ -4098,26 +4131,26 @@ nfssvc_idname(struct nfsd_idargs *nidp) * algorithm. This code deletes the least * recently used entry on each hash list. */ - if (nfsrv_usercnt <= nfsrv_usermax) + if (NFSD_VNET(nfsrv_usercnt) <= NFSD_VNET(nfsrv_usermax)) break; - usrp = TAILQ_FIRST(&nfsuserhash[i].lughead); + usrp = TAILQ_FIRST(&NFSD_VNET(nfsuserhash)[i].lughead); if (usrp != NULL) nfsrv_removeuser(usrp, 1); } } else { if (groupname_locked == 0) { for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsgroupnamehash[i].mtx); + mtx_lock(&NFSD_VNET(nfsgroupnamehash)[i].mtx); groupname_locked = 1; } KASSERT(group_locked == 0, ("nfssvc_idname: group_locked")); for (i = 0; i < nfsrv_lughashsize; i++) - mtx_lock(&nfsgrouphash[i].mtx); + mtx_lock(&NFSD_VNET(nfsgrouphash)[i].mtx); group_locked = 1; for (i = 0; i < nfsrv_lughashsize; i++) { TAILQ_FOREACH_SAFE(usrp, - &nfsgrouphash[i].lughead, lug_numhash, + &NFSD_VNET(nfsgrouphash)[i].lughead, lug_numhash, nusrp) if (usrp->lug_expiry < NFSD_MONOSEC) nfsrv_removeuser(usrp, 0); @@ -4128,9 +4161,9 @@ nfssvc_idname(struct nfsd_idargs *nidp) * algorithm. This code deletes the least * recently user entry on each hash list. */ - if (nfsrv_usercnt <= nfsrv_usermax) + if (NFSD_VNET(nfsrv_usercnt) <= NFSD_VNET(nfsrv_usermax)) break; - usrp = TAILQ_FIRST(&nfsgrouphash[i].lughead); + usrp = TAILQ_FIRST(&NFSD_VNET(nfsgrouphash)[i].lughead); if (usrp != NULL) nfsrv_removeuser(usrp, 0); } @@ -4146,16 +4179,16 @@ nfssvc_idname(struct nfsd_idargs *nidp) mtx_unlock(&hp_name->mtx); if (user_locked != 0) for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsuserhash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsuserhash)[i].mtx); if (username_locked != 0) for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsusernamehash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsusernamehash)[i].mtx); if (group_locked != 0) for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsgrouphash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsgrouphash)[i].mtx); if (groupname_locked != 0) for (i = 0; i < nfsrv_lughashsize; i++) - mtx_unlock(&nfsgroupnamehash[i].mtx); + mtx_unlock(&NFSD_VNET(nfsgroupnamehash)[i].mtx); out: NFSEXITCODE(error); return (error); @@ -4184,7 +4217,7 @@ nfsrv_removeuser(struct nfsusrgrp *usrp, int isuser) mtx_assert(&hp->mtx, MA_OWNED); TAILQ_REMOVE(&hp->lughead, usrp, lug_namehash); } - atomic_add_int(&nfsrv_usercnt, -1); + atomic_add_int(&NFSD_VNET(nfsrv_usercnt), -1); if (usrp->lug_cred != NULL) crfree(usrp->lug_cred); free(usrp, M_NFSUSERGROUP); @@ -4194,7 +4227,7 @@ nfsrv_removeuser(struct nfsusrgrp *usrp, int isuser) * Free up all the allocations related to the name<-->id cache. * This function should only be called when the nfsuserd daemon isn't * running, since it doesn't do any locking. - * This function is meant to be used when the nfscommon module is unloaded. + * This function is meant to be called when a vnet jail is destroyed. */ void nfsrv_cleanusergroup(void) @@ -4203,11 +4236,11 @@ nfsrv_cleanusergroup(void) struct nfsusrgrp *nusrp, *usrp; int i; - if (nfsuserhash == NULL) + if (NFSD_VNET(nfsuserhash) == NULL) return; for (i = 0; i < nfsrv_lughashsize; i++) { - hp = &nfsuserhash[i]; + hp = &NFSD_VNET(nfsuserhash)[i]; TAILQ_FOREACH_SAFE(usrp, &hp->lughead, lug_numhash, nusrp) { TAILQ_REMOVE(&hp->lughead, usrp, lug_numhash); hp2 = NFSUSERNAMEHASH(usrp->lug_name, @@ -4217,7 +4250,7 @@ nfsrv_cleanusergroup(void) crfree(usrp->lug_cred); free(usrp, M_NFSUSERGROUP); } - hp = &nfsgrouphash[i]; + hp = &NFSD_VNET(nfsgrouphash)[i]; TAILQ_FOREACH_SAFE(usrp, &hp->lughead, lug_numhash, nusrp) { TAILQ_REMOVE(&hp->lughead, usrp, lug_numhash); hp2 = NFSGROUPNAMEHASH(usrp->lug_name, @@ -4227,16 +4260,16 @@ nfsrv_cleanusergroup(void) crfree(usrp->lug_cred); free(usrp, M_NFSUSERGROUP); } - mtx_destroy(&nfsuserhash[i].mtx); - mtx_destroy(&nfsusernamehash[i].mtx); - mtx_destroy(&nfsgroupnamehash[i].mtx); - mtx_destroy(&nfsgrouphash[i].mtx); + mtx_destroy(&NFSD_VNET(nfsuserhash)[i].mtx); + mtx_destroy(&NFSD_VNET(nfsusernamehash)[i].mtx); + mtx_destroy(&NFSD_VNET(nfsgroupnamehash)[i].mtx); + mtx_destroy(&NFSD_VNET(nfsgrouphash)[i].mtx); } - free(nfsuserhash, M_NFSUSERGROUP); - free(nfsusernamehash, M_NFSUSERGROUP); - free(nfsgrouphash, M_NFSUSERGROUP); - free(nfsgroupnamehash, M_NFSUSERGROUP); - free(nfsrv_dnsname, M_NFSSTRING); + free(NFSD_VNET(nfsuserhash), M_NFSUSERGROUP); + free(NFSD_VNET(nfsusernamehash), M_NFSUSERGROUP); + free(NFSD_VNET(nfsgrouphash), M_NFSUSERGROUP); + free(NFSD_VNET(nfsgroupnamehash), M_NFSUSERGROUP); + free(NFSD_VNET(nfsrv_dnsname), M_NFSSTRING); } /* From nobody Tue May 16 21:34:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLTyz3GsBz4BTfm; Tue, 16 May 2023 21:34:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLTyz2s8xz4P7x; Tue, 16 May 2023 21:34:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684272875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+isLXM7j54dQLM1eNyP5fz7OvO9F3eUZqkO8b6AQ7Pw=; b=c05gpxNLg5d8dnInza+Hm1cTStqB5ZJOLL/7bE2iyNSTnlKrU2KtVJhW7WhctR4jdQVQfj WZGBkW4UdHNUcXFJm56rOwypCv7wczDTqUqv76Qaq7wNeHCY5n1bD0GSDbP0sOQvDBFQus lqYmRCOZyS/Aso14Mf0gVi3xmi7uFOARLR/Sqa+5s8/ZZsUfxMaNaVrfTtsGvyXUBh2Imw yaC+QCaFF8TouIFwOL1n4sgl0XDT0wpgbMcbYh4K9acmCOaKeePr/UOmBC+A6JBc6SDgRJ uZRLuZFqpImE8pG4TWicqtH+abhP1Dxxy7qPZXa22tUSlDF9DsodAeyuWteSvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684272875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+isLXM7j54dQLM1eNyP5fz7OvO9F3eUZqkO8b6AQ7Pw=; b=SnVTreS6XWRtIf7Qz4RFsCnJKEJVm+Qm8QvXko0GwNMhnN8PliiakTWy84VvJ6JDLc4gwp dSozUA0qGBVEKvqJtxNhSUPJdcfBsAc6tUGUubH+otm0Uv9l3ykO2/iOPbt32+JMW42kfB CMLWw6Skoqjk3A/ThabHGHuKWI/5s+mQ/QA1DUotXBXnRagXsl41UbNwyLvtFYbTADhjUv t9850phFmHPP3+r2wbTjJWQaQy8EecHdEydg0oWGEx+/e4WDIKOoG9LS/tr9FCMUDhhDKO IxKCJJblOxpa7XjdNBv6RtU4U5y9sTPiIGYu4RHjXK3sG1992oB2RaL+4W9bBA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684272875; a=rsa-sha256; cv=none; b=g0sCPH70Gy/RpP1gB0XYX+UPjU0scdn7bh83cMuvEUAWKizR1bd4nY/a0DiE+bFmNgfKbe fNJoFQhQxrhdq96oxHJ4zYysfn86hasGYTnI0zSYKbkHO3nGU1c/rpe7X41CHaM2G5Oeut I8ZYfhLnIoMFUXb/kWqKfLvC7g+5SdIYgu7F0fQgBrUjL+KT09vRxlWqkmTiw8vyuTXhBW BrgTKMmiYD6zwQF9D9ITCmNPAgx0fwoLGThoAc0o33YYQOWOBrZlWUgbriTvUbmm0xEX1H iV0VGEG9SC0nnIAbGUO97P97v8kfY/JhxpY6eI1QZpsILW9qwHb2eFDUIEobMQ== 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 4QLTyz1cXNzdnc; Tue, 16 May 2023 21:34:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GLYZF6020339; Tue, 16 May 2023 21:34:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GLYZ9I020338; Tue, 16 May 2023 21:34:35 GMT (envelope-from git) Date: Tue, 16 May 2023 21:34:35 GMT Message-Id: <202305162134.34GLYZ9I020338@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: 866e5c6b3ce7 - stable/13 - freebsd-update: Fix merging already-updated 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 866e5c6b3ce7ca3e15a24180fa1a0dcbda7c4b0f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=866e5c6b3ce7ca3e15a24180fa1a0dcbda7c4b0f commit 866e5c6b3ce7ca3e15a24180fa1a0dcbda7c4b0f Author: Colin Percival AuthorDate: 2023-05-05 03:00:58 +0000 Commit: Colin Percival CommitDate: 2023-05-16 21:34:10 +0000 freebsd-update: Fix merging already-updated files When performing an "upgrade" (moving between FreeBSD releases, as opposed to "update" which merely applies security/errata updates to the installed release) FreeBSD Update: 1. Generates a list of "files needing to be merged", namely those files which don't match the version installed in the "old" release and have paths matching the MergeChanges configuration directive (by default, /boot/device.hints and everything under /etc/). and later on, 2. Compares the currently-installed files to the versions in the "new" release, removing index entries for files which "don't need to be updated because they're not changing". Unfortunately if a file falls into both of these categories -- that is to say, if a file in /etc/ is the same as the version in the new release and not the same as the version in the old release -- the resulting "merge" step saw that the file was no longer listed as being part of the new release, resulting in the file being deleted. For the first 18 years of FreeBSD Update's existence, this never happened, since $FreeBSD$ tags resulted in "new release" files always being different from any files systems would already have installed. This commit fixes this behaviour by only placing a file into the "files needing to be merged" list if it does not match the version in the old release *or* the version in the new release. Reported by: des Reviewed by: delphij (earlier version), des, emaste MFC after: 7 days X-EN-Candidate: yes Differential Revision: https://reviews.freebsd.org/D39973 (cherry picked from commit c55b7e522629cb78adeb54bd9964304481d55eab) --- usr.sbin/freebsd-update/freebsd-update.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/usr.sbin/freebsd-update/freebsd-update.sh b/usr.sbin/freebsd-update/freebsd-update.sh index 4ef44d1ad000..4f779270926d 100644 --- a/usr.sbin/freebsd-update/freebsd-update.sh +++ b/usr.sbin/freebsd-update/freebsd-update.sh @@ -1677,11 +1677,12 @@ fetch_inspect_system () { echo "done." } -# For any paths matching ${MERGECHANGES}, compare $1 and $2 and find any -# files which differ; generate $3 containing these paths and the old hashes. +# For any paths matching ${MERGECHANGES}, compare $2 against $1 and $3 and +# find any files with values unique to $2; generate $4 containing these paths +# and their corresponding hashes from $1. fetch_filter_mergechanges () { # Pull out the paths and hashes of the files matching ${MERGECHANGES}. - for F in $1 $2; do + for F in $1 $2 $3; do for X in ${MERGECHANGES}; do grep -E "^${X}" ${F} done | @@ -1689,9 +1690,10 @@ fetch_filter_mergechanges () { sort > ${F}-values done - # Any line in $2-values which doesn't appear in $1-values and is a - # file means that we should list the path in $3. - comm -13 $1-values $2-values | + # Any line in $2-values which doesn't appear in $1-values or $3-values + # and is a file means that we should list the path in $3. + sort $1-values $3-values | + comm -13 - $2-values | fgrep '|f|' | cut -f 1 -d '|' > $2-paths @@ -1703,10 +1705,10 @@ fetch_filter_mergechanges () { while read X; do look "${X}|" $1-values | head -1 - done < $2-paths > $3 + done < $2-paths > $4 # Clean up - rm $1-values $2-values $2-paths + rm $1-values $2-values $3-values $2-paths } # For any paths matching ${UPDATEIFUNMODIFIED}, remove lines from $[123] @@ -2711,7 +2713,7 @@ upgrade_run () { # Based on ${MERGECHANGES}, generate a file tomerge-old with the # paths and hashes of old versions of files to merge. - fetch_filter_mergechanges INDEX-OLD INDEX-PRESENT tomerge-old + fetch_filter_mergechanges INDEX-OLD INDEX-PRESENT INDEX-NEW tomerge-old # Based on ${UPDATEIFUNMODIFIED}, remove lines from INDEX-* which # correspond to lines in INDEX-PRESENT with hashes not appearing From nobody Tue May 16 21:37:11 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLV20269bz4BV0J; Tue, 16 May 2023 21:37: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLV201Ytcz4P9l; Tue, 16 May 2023 21:37:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684273032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xfgznpy3s5h3ic7JUcYz2i0H2sbqkH3nURtCMh2UXcU=; b=m4EOspoKZCW4vkS3TvN7vYlENGkI7EvFqaOPkdpJdvsJmStPfy0J7EsNyVxhbrIloSO2iN HL1ef/hEhRTe2VMyNh3aXSmQ9an/ALvB1Qca7o6O7z6Ry+b4Q8f8nCRkh8nAjAegSAsYzq Tsp3Ew9Ep1Gk3jvLcoSNHC+G0cLkWleZSokj67frlP8SzZUupmaOoDLC7XuqgYzfZIx/kf qZXy6+ka9/z0hQVhVjAxfZoJDb0ymnzweq18Upfqg8BQcYDevtTyIaHbZm3DZWp8WWhCid 19HFbh8Rlgx24KJPVgYN9/+a7TswzxlmWt4OWfrofdLyufTWqH1/udQm/1w7jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684273032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xfgznpy3s5h3ic7JUcYz2i0H2sbqkH3nURtCMh2UXcU=; b=dOANAtTXL1I5BQ2d/Ebr1Gd41f9JEIJueG/UnFCVVpe9onkr82X5rdU2v6NuH66uW3GIY2 p6gD0qxpJ9UR7S0DzsK5m9Py5UqNGlds8mZ8EpYzsc22bIKGO50TWH85O2OLDGoLvzbuCJ oiSqrjqOLIhEiKrpulaNHXr9+5fxYUOBeHiASZhSUjUgCSUoQcvQpUqOqkdDgCZfYaf/gG CEpmT75UT7avg6/bESiM5dprBbzXzfT8x13kr2b/pWZkTpDQtUw3d9D/x8apaI7LBaTYtM 7e2LjIN/vGQOMfbIIYlwuBHPWFuuq0Cj8fkUk4lP+elDaY1hfZsv1/Wrml6lVw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684273032; a=rsa-sha256; cv=none; b=AG9LXf2IbDkTHpTZhFMFiqGBUXQm2hEP+aWJnAwGpHARX4LK2pMxB+Dv3ubwcWiBpzYd+y /hENb3C+0q+K6B7DbAB9DsIQsP+Az/Qi8gsoFoJsH0E4ZF1yBIbYvtUg6CNb3AA8cMYc/1 8/aWK0ndS8AKGEH6AF66Bm7aLHjDX97tuj9jqHC6qj7zCh0WsNH7ZizD5l7XyjjH7ze1YP QAFxha1CpSVcHno4LRFEga2AcwyIctIW0mLZYfMfjLzErJgy6pBDx0iUiwBMIREPm3GvfW Fm1Yb9mTKwaN00PWe4rFDH5js9uakDzV0hjfJ5hfxcbJhwbA+cqb7bjyNQheCA== 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 4QLV200dXFzdRQ; Tue, 16 May 2023 21:37:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GLbBAf020769; Tue, 16 May 2023 21:37:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GLbBkl020768; Tue, 16 May 2023 21:37:11 GMT (envelope-from git) Date: Tue, 16 May 2023 21:37:11 GMT Message-Id: <202305162137.34GLbBkl020768@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: 8c6a6e8c8071 - stable/13 - nfsd: Get rid of useless "pool" field in nfs_fha_new.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 8c6a6e8c8071eb1bcd83f283d26b1aec69e9f76f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=8c6a6e8c8071eb1bcd83f283d26b1aec69e9f76f commit 8c6a6e8c8071eb1bcd83f283d26b1aec69e9f76f Author: Rick Macklem AuthorDate: 2023-02-17 15:34:40 +0000 Commit: Rick Macklem CommitDate: 2023-05-16 21:36:22 +0000 nfsd: Get rid of useless "pool" field in nfs_fha_new.c Since svcpool_create() is now called from an initialization function, the pool field of fha_params is always non-NULL, so just get rid of it and the useless check for it being NULL. (cherry picked from commit b99c419587db2ac75b929637f61ec3b845d7b5f6) --- sys/fs/nfsserver/nfs_fha_new.c | 9 --------- sys/fs/nfsserver/nfs_fha_new.h | 1 - 2 files changed, 10 deletions(-) diff --git a/sys/fs/nfsserver/nfs_fha_new.c b/sys/fs/nfsserver/nfs_fha_new.c index 59933ef01bd4..05a03bee5d1c 100644 --- a/sys/fs/nfsserver/nfs_fha_new.c +++ b/sys/fs/nfsserver/nfs_fha_new.c @@ -62,8 +62,6 @@ SYSCTL_DECL(_vfs_nfsd); extern int newnfs_nfsv3_procid[]; -NFSD_VNET_DECLARE(SVCPOOL *, nfsrvd_pool); - SYSINIT(nfs_fhanew, SI_SUB_ROOT_CONF, SI_ORDER_ANY, fhanew_init, NULL); SYSUNINIT(nfs_fhanew, SI_SUB_ROOT_CONF, SI_ORDER_ANY, fhanew_uninit, NULL); @@ -80,8 +78,6 @@ fhanew_init(void *foo) snprintf(softc->server_name, sizeof(softc->server_name), FHANEW_SERVER_NAME); - softc->pool = &NFSD_VNET(nfsrvd_pool); - /* * Initialize the sysctl context list for the fha module. */ @@ -656,11 +652,6 @@ fhenew_stats_sysctl(SYSCTL_HANDLER_ARGS) sbuf_new(&sb, NULL, 65536, SBUF_FIXEDLEN); - if (!*softc->pool) { - sbuf_printf(&sb, "NFSD not running\n"); - goto out; - } - for (i = 0; i < FHA_HASH_SIZE; i++) if (!LIST_EMPTY(&softc->fha_hash[i].list)) break; diff --git a/sys/fs/nfsserver/nfs_fha_new.h b/sys/fs/nfsserver/nfs_fha_new.h index 7d437e7a0853..08f52539450e 100644 --- a/sys/fs/nfsserver/nfs_fha_new.h +++ b/sys/fs/nfsserver/nfs_fha_new.h @@ -99,7 +99,6 @@ struct fha_params { struct sysctl_oid *sysctl_tree; struct fha_ctls ctls; char server_name[32]; - SVCPOOL **pool; }; SVCTHREAD *fhanew_assign(SVCTHREAD *this_thread, struct svc_req *req); From nobody Tue May 16 21:38:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLV3s0fHVz4BTpg; Tue, 16 May 2023 21:38: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLV3r6zM7z4PGn; Tue, 16 May 2023 21:38:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684273129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ct0uZ/O+Pf2ZIyuwzk/wlp2bX6xOlW4n/Yi69zliDNM=; b=WF+WJFYFHGI2n3HUTBUKBZNfo8a8AWv9snQqmB7Jeq3RYvGsQtT4xxL97xi72lJSG0omJT 0w3K9P3sZqzaRrX0aAKxOtNo8P+r/sDNtnDxWpyTTcAyuE3yxKcw0RAdxNjN2ScFTVO5x+ k9qRVSgR9rjjfKOMyKI9/XcDuhVFc6p0kfQshpRaNti2KHjAPmdpFMjKpg3uqee2HleLCf vyi4U31EegbhbNOf4wXOq1Mz+O9OoGE/xClcciesGI1pJPAvBmJoifz9HNFyCRafWCRShO QZS3t5Tbj4SFZEEdnZ/tMgufD3wwJLKzLjzT2LU8PMnFm5cVkZtTocTLnofgGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684273129; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ct0uZ/O+Pf2ZIyuwzk/wlp2bX6xOlW4n/Yi69zliDNM=; b=nPyLO2YXZHaSwE2AyA1fAWoyLeRzK0aZD6shRpBQbgf838X9Tuqnxw475WOrrTIYtQzrRG Gt66tALgUfYyLp4AVI1nah5HnrP05NuHtw4yeUcD9rIq24B8FcqU87nbzPCRO3AmGnQMga iz176euKr66pevW3P+YXXbnJYGYZllpwN3keVrDJFAkm0wgjF7LWiCCqbHIXwk87mAerrN Anh560ZlVB7n0mgk0gV3KZqGnnhogGeZRcUq1zXgoYKDp6VwE6KMuC2/mt7L0Heu5EfjRg rN+L6DNOSgYxFjhfqfV7xlezZkgdHnB0LZLfEljFRB4qgELIvFpTGNlMaS2o0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684273129; a=rsa-sha256; cv=none; b=uf+Ajc+DhLPyiFDyQQvmWF6JdNMQ8z5A9py2Gzvw4wFn2CkiaL9TKqQzW2FMXivS3xb7IV NXFGSljsKjKHmVegCvrU+M/A9lGs9G15QYtVrE59UTQUF4t/fVQIDgYNRV6e0qsjFuRcuO Zdw5BbG1lMVV8KXQtkFKA/KkAF1c6jfd3XF3Pv0WFqcCr8tuaWUkLyj7w4qbhGncLSNaWc K3KIsvlvFo0eC4H/ZusdKjH0KC14uiYPRIoRofjzQ13zrcs8on8PPGG/+sE2UlIEDnN3ab fLd0AczzaBoe9XnK529h7d9eOSMAX5/tRdC5hGqi27D+FMjaWDY7nfExAFbe3w== 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 4QLV3r5xXszdWP; Tue, 16 May 2023 21:38:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GLcmJ0021063; Tue, 16 May 2023 21:38:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GLcmM1021062; Tue, 16 May 2023 21:38:48 GMT (envelope-from git) Date: Tue, 16 May 2023 21:38:48 GMT Message-Id: <202305162138.34GLcmM1021062@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: 4ee3d271b74d - stable/13 - nfsd: Add NFSD_VNET() macros to nfs_fha_new.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 4ee3d271b74dbaf710adfd11432c12d3b21f2628 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=4ee3d271b74dbaf710adfd11432c12d3b21f2628 commit 4ee3d271b74dbaf710adfd11432c12d3b21f2628 Author: Rick Macklem AuthorDate: 2023-02-18 15:45:38 +0000 Commit: Rick Macklem CommitDate: 2023-05-16 21:37:39 +0000 nfsd: Add NFSD_VNET() macros to nfs_fha_new.c Although it is not 100% obvious if the affinity threads lists need to be vnet'd when nfsd runs in a prison, I think it is necessary for the unusual case where the same file system is exported in multiple prisons. For this case, the affinity code might try to assign the RPC to a svc thread that runs in a different prison. Also, it makes sense to vnet them, since there are separate svc threads for each prison running nfsd(8). This patch adds the macros for vnet'ng to nfs_fha_new.c. The macros are still null, so the only semantics change is malloc'ng the fha_param structure. (cherry picked from commit cd406ac94d8beae7f184adb14a3c94e058366b9a) --- sys/fs/nfsserver/nfs_fha_new.c | 108 +++++++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 46 deletions(-) diff --git a/sys/fs/nfsserver/nfs_fha_new.c b/sys/fs/nfsserver/nfs_fha_new.c index 05a03bee5d1c..203e98d3ac86 100644 --- a/sys/fs/nfsserver/nfs_fha_new.c +++ b/sys/fs/nfsserver/nfs_fha_new.c @@ -56,14 +56,14 @@ static int fhenew_stats_sysctl(SYSCTL_HANDLER_ARGS); static void fha_extract_info(struct svc_req *req, struct fha_info *i); -static struct fha_params fhanew_softc; +NFSD_VNET_DEFINE_STATIC(struct fha_params *, fhanew_softc); SYSCTL_DECL(_vfs_nfsd); extern int newnfs_nfsv3_procid[]; -SYSINIT(nfs_fhanew, SI_SUB_ROOT_CONF, SI_ORDER_ANY, fhanew_init, NULL); -SYSUNINIT(nfs_fhanew, SI_SUB_ROOT_CONF, SI_ORDER_ANY, fhanew_uninit, NULL); +SYSINIT(nfs_fhanew, SI_SUB_VNET_DONE, SI_ORDER_ANY, fhanew_init, NULL); +SYSUNINIT(nfs_fhanew, SI_SUB_VNET_DONE, SI_ORDER_ANY, fhanew_uninit, NULL); static void fhanew_init(void *foo) @@ -71,9 +71,9 @@ fhanew_init(void *foo) struct fha_params *softc; int i; - softc = &fhanew_softc; - - bzero(softc, sizeof(*softc)); + NFSD_VNET(fhanew_softc) = malloc(sizeof(struct fha_params), M_TEMP, + M_WAITOK | M_ZERO); + softc = NFSD_VNET(fhanew_softc); snprintf(softc->server_name, sizeof(softc->server_name), FHANEW_SERVER_NAME); @@ -82,12 +82,14 @@ fhanew_init(void *foo) * Initialize the sysctl context list for the fha module. */ sysctl_ctx_init(&softc->sysctl_ctx); - softc->sysctl_tree = SYSCTL_ADD_NODE(&softc->sysctl_ctx, - SYSCTL_STATIC_CHILDREN(_vfs_nfsd), OID_AUTO, "fha", - CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "NFS File Handle Affinity (FHA)"); - if (softc->sysctl_tree == NULL) { - printf("%s: unable to allocate sysctl tree\n", __func__); - return; + if (IS_DEFAULT_VNET(curvnet)) { + softc->sysctl_tree = SYSCTL_ADD_NODE(&softc->sysctl_ctx, + SYSCTL_STATIC_CHILDREN(_vfs_nfsd), OID_AUTO, "fha", + CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "NFS File Handle Affinity (FHA)"); + if (softc->sysctl_tree == NULL) { + printf("%s: unable to allocate sysctl tree\n", __func__); + return; + } } for (i = 0; i < FHA_HASH_SIZE; i++) @@ -106,36 +108,38 @@ fhanew_init(void *foo) /* * Add sysctls so the user can change the tuning parameters. */ - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "enable", CTLFLAG_RWTUN, - &softc->ctls.enable, 0, "Enable NFS File Handle Affinity (FHA)"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "read", CTLFLAG_RWTUN, - &softc->ctls.read, 0, "Enable NFS FHA read locality"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "write", CTLFLAG_RWTUN, - &softc->ctls.write, 0, "Enable NFS FHA write locality"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "bin_shift", CTLFLAG_RWTUN, - &softc->ctls.bin_shift, 0, - "Maximum locality distance 2^(bin_shift) bytes"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "max_nfsds_per_fh", CTLFLAG_RWTUN, - &softc->ctls.max_nfsds_per_fh, 0, "Maximum nfsd threads that " - "should be working on requests for the same file handle"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "max_reqs_per_nfsd", CTLFLAG_RWTUN, - &softc->ctls.max_reqs_per_nfsd, 0, "Maximum requests that " - "single nfsd thread should be working on at any time"); - - SYSCTL_ADD_OID(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "fhe_stats", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, - 0, 0, fhenew_stats_sysctl, "A", ""); + if (IS_DEFAULT_VNET(curvnet)) { + SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "enable", CTLFLAG_RWTUN, + &softc->ctls.enable, 0, "Enable NFS File Handle Affinity (FHA)"); + + SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "read", CTLFLAG_RWTUN, + &softc->ctls.read, 0, "Enable NFS FHA read locality"); + + SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "write", CTLFLAG_RWTUN, + &softc->ctls.write, 0, "Enable NFS FHA write locality"); + + SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "bin_shift", CTLFLAG_RWTUN, + &softc->ctls.bin_shift, 0, + "Maximum locality distance 2^(bin_shift) bytes"); + + SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "max_nfsds_per_fh", CTLFLAG_RWTUN, + &softc->ctls.max_nfsds_per_fh, 0, "Maximum nfsd threads that " + "should be working on requests for the same file handle"); + + SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "max_reqs_per_nfsd", CTLFLAG_RWTUN, + &softc->ctls.max_reqs_per_nfsd, 0, "Maximum requests that " + "single nfsd thread should be working on at any time"); + + SYSCTL_ADD_OID(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), + OID_AUTO, "fhe_stats", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + 0, 0, fhenew_stats_sysctl, "A", ""); + } } static void @@ -144,11 +148,12 @@ fhanew_uninit(void *foo) struct fha_params *softc; int i; - softc = &fhanew_softc; + softc = NFSD_VNET(fhanew_softc); sysctl_ctx_free(&softc->sysctl_ctx); for (i = 0; i < FHA_HASH_SIZE; i++) mtx_destroy(&softc->fha_hash[i].mtx); + free(softc, M_TEMP); } static rpcproc_t @@ -556,11 +561,13 @@ noloc: SVCTHREAD * fhanew_assign(SVCTHREAD *this_thread, struct svc_req *req) { - struct fha_params *softc = &fhanew_softc; + struct fha_params *softc; SVCTHREAD *thread; struct fha_info i; struct fha_hash_entry *fhe; + NFSD_CURVNET_SET(NFSD_TD_TO_VNET(curthread)); + softc = NFSD_VNET(fhanew_softc); /* Check to see whether we're enabled. */ if (softc->ctls.enable == 0) goto thist; @@ -602,9 +609,11 @@ fhanew_assign(SVCTHREAD *this_thread, struct svc_req *req) mtx_lock(&thread->st_lock); mtx_unlock(fhe->mtx); + NFSD_CURVNET_RESTORE(); return (thread); thist: req->rq_p1 = NULL; + NFSD_CURVNET_RESTORE(); mtx_lock(&this_thread->st_lock); return (this_thread); } @@ -619,12 +628,15 @@ fhanew_nd_complete(SVCTHREAD *thread, struct svc_req *req) struct fha_hash_entry *fhe = req->rq_p1; struct mtx *mtx; + NFSD_CURVNET_SET(NFSD_TD_TO_VNET(curthread)); /* * This may be called for reqs that didn't go through * fha_assign (e.g. extra NULL ops used for RPCSEC_GSS. */ - if (!fhe) + if (!fhe) { + NFSD_CURVNET_RESTORE(); return; + } mtx = fhe->mtx; mtx_lock(mtx); @@ -638,12 +650,13 @@ fhanew_nd_complete(SVCTHREAD *thread, struct svc_req *req) fha_hash_entry_remove(fhe); } mtx_unlock(mtx); + NFSD_CURVNET_RESTORE(); } static int fhenew_stats_sysctl(SYSCTL_HANDLER_ARGS) { - struct fha_params *softc = &fhanew_softc; + struct fha_params *softc; int error, i; struct sbuf sb; struct fha_hash_entry *fhe; @@ -652,6 +665,8 @@ fhenew_stats_sysctl(SYSCTL_HANDLER_ARGS) sbuf_new(&sb, NULL, 65536, SBUF_FIXEDLEN); + NFSD_CURVNET_SET(NFSD_TD_TO_VNET(curthread)); + softc = NFSD_VNET(fhanew_softc); for (i = 0; i < FHA_HASH_SIZE; i++) if (!LIST_EMPTY(&softc->fha_hash[i].list)) break; @@ -694,6 +709,7 @@ fhenew_stats_sysctl(SYSCTL_HANDLER_ARGS) } out: + NFSD_CURVNET_RESTORE(); sbuf_trim(&sb); sbuf_finish(&sb); error = sysctl_handle_string(oidp, sbuf_data(&sb), sbuf_len(&sb), req); From nobody Tue May 16 21:40:18 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLV5Z4Vyhz4BTgL; Tue, 16 May 2023 21:40:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLV5Z3jWrz4Pr6; Tue, 16 May 2023 21:40:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684273218; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZiMM0lsLPaBF0VE90QpHRkYEUTJrqQCYMz01S6+1S90=; b=jpKcWj3y1cAz18RfDeCyUVoNZLZFforUxTLtaejeC7KDEauGXpZqp6MgPdaGz3SXyLfF3A DFreVa3piapeNI3NLwS36FYELMET9OHg89VUyJYU8gmOZlOXSDF3t8pjW6cG+yaE66vRfj PPbYS2yeCOI+5JA16xGwcyyDgATCnc9ru7sjXRYyvtwxL1qasa/7lq3gV7nz2LZLKopEBH QgaeD9KgodA4wyTdYfiktHO0odCjpWTcJM9+ZvQjzCHZtnNw1zQCfxOUDEV8/LDlvBtmSQ kPW2azL6Hmizy1aOrZzCr8gLKWb/qGW52q6f6NwohRDBWDnWD75ZY7Z0b/9rhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684273218; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZiMM0lsLPaBF0VE90QpHRkYEUTJrqQCYMz01S6+1S90=; b=MleaP0pKSiyXApCkzScrzNAAsU/41s46CfBFlL0GXciSrJCqqOO26Tp3uXfkE32a/TeFNs qB7xwpjcrh3Zfy74Ob3SKPU5cBoLOHBBUHOglkXCqUjUmdqKLU6urWYeZmLlkGYNQZtjWr YfjXdcfngSXctrel2ZkGyWFHk0HzYRYORyq8RuovCPvzKTdQWuXnw1H+nTxRXK8UzM8gPo QDJiatcmGaW6Sln7eGuoyMGja+UwXHedPPzztJtEqpCvB/BrG0o0KN9/+d/J1KMX+J4zb8 IEHDAN/O7y+NHeGL5R9+hcTPu/MgSEFVW6FaaDUjHd+7nzaL3kwHzWVh3VViAA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684273218; a=rsa-sha256; cv=none; b=I+21Lx4d2XXq2P/EsE8LtG+p3pYEFkEc9+gz2yCnh31tbyRNF5QrNVg93CnbpWZy1D6X0T sLzFVxdEec/63IeZIIODRfPiIFgRcsX8JtYFsOa3L2BuUQxk18OTrLG5L07GppKrvl3Z+E 5vd4RgueMjPtd+J5QKYzMZOZSsestPIZLxvcIvXsqZLw2bQBmNrm8Mn143HE6EhVj35u7W w/QKhcGAiQzMSeASjEVOdZeQlhp3fPtRNYjnUtsnxJ5uO4gM3fPrqFgIVCWJNu6l13UBcn A6zetggvVM3msHptzGfoMd9OS7A9SNIptbRUESebtVUh4uhYVQ+DHwv4o/m7yQ== 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 4QLV5Z2jBczdSy; Tue, 16 May 2023 21:40:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34GLeIGA029798; Tue, 16 May 2023 21:40:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34GLeIf9029797; Tue, 16 May 2023 21:40:18 GMT (envelope-from git) Date: Tue, 16 May 2023 21:40:18 GMT Message-Id: <202305162140.34GLeIf9029797@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: d9ecb62798da - stable/13 - nfs_fha_new: Fix nfs_fha_new so that sysctls work in prisons List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: d9ecb62798da799c7a391b05eabeb57e3082cf97 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=d9ecb62798da799c7a391b05eabeb57e3082cf97 commit d9ecb62798da799c7a391b05eabeb57e3082cf97 Author: Rick Macklem AuthorDate: 2023-03-01 23:25:35 +0000 Commit: Rick Macklem CommitDate: 2023-05-16 21:39:27 +0000 nfs_fha_new: Fix nfs_fha_new so that sysctls work in prisons The sysctls were in "struct fha_params", making it impractical to vnet them. This patch moves the sysctls out of "struct fha_params" and vnet's them, so that they are available in vnet prisons running nfsd(8). It also avoids the IS_DEFAULT_VNET() macros in the VNET_SYSINIT() function. (cherry picked from commit a90b47abcbdbd48c68fbf7c407546293479056de) --- sys/fs/nfsserver/nfs_fha_new.c | 118 ++++++++++++++++++----------------------- sys/fs/nfsserver/nfs_fha_new.h | 3 -- 2 files changed, 53 insertions(+), 68 deletions(-) diff --git a/sys/fs/nfsserver/nfs_fha_new.c b/sys/fs/nfsserver/nfs_fha_new.c index 203e98d3ac86..3d18083f7205 100644 --- a/sys/fs/nfsserver/nfs_fha_new.c +++ b/sys/fs/nfsserver/nfs_fha_new.c @@ -57,8 +57,46 @@ static void fha_extract_info(struct svc_req *req, struct fha_info *i); NFSD_VNET_DEFINE_STATIC(struct fha_params *, fhanew_softc); +NFSD_VNET_DEFINE_STATIC(struct fha_ctls, nfsfha_ctls); SYSCTL_DECL(_vfs_nfsd); +SYSCTL_NODE(_vfs_nfsd, OID_AUTO, fha, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "NFS File Handle Affinity (FHA)"); + +SYSCTL_UINT(_vfs_nfsd_fha, + OID_AUTO, enable, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfsfha_ctls).enable, 0, + "Enable NFS File Handle Affinity (FHA)"); + +SYSCTL_UINT(_vfs_nfsd_fha, + OID_AUTO, read, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfsfha_ctls).read, 0, + "Enable NFS FHA read locality"); + +SYSCTL_UINT(_vfs_nfsd_fha, + OID_AUTO, write, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfsfha_ctls).write, 0, + "Enable NFS FHA write locality"); + +SYSCTL_UINT(_vfs_nfsd_fha, + OID_AUTO, bin_shift, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfsfha_ctls).bin_shift, 0, + "Maximum locality distance 2^(bin_shift) bytes"); + +SYSCTL_UINT(_vfs_nfsd_fha, + OID_AUTO, max_nfsds_per_fh, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfsfha_ctls).max_nfsds_per_fh, 0, + "Maximum nfsd threads that " + "should be working on requests for the same file handle"); + +SYSCTL_UINT(_vfs_nfsd_fha, + OID_AUTO, max_reqs_per_nfsd, CTLFLAG_NFSD_VNET | CTLFLAG_RWTUN, + &NFSD_VNET_NAME(nfsfha_ctls).max_reqs_per_nfsd, 0, "Maximum requests that " + "single nfsd thread should be working on at any time"); + +SYSCTL_PROC(_vfs_nfsd_fha, OID_AUTO, fhe_stats, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, 0, 0, + fhenew_stats_sysctl, "A", ""); extern int newnfs_nfsv3_procid[]; @@ -78,68 +116,19 @@ fhanew_init(void *foo) snprintf(softc->server_name, sizeof(softc->server_name), FHANEW_SERVER_NAME); - /* - * Initialize the sysctl context list for the fha module. - */ - sysctl_ctx_init(&softc->sysctl_ctx); - if (IS_DEFAULT_VNET(curvnet)) { - softc->sysctl_tree = SYSCTL_ADD_NODE(&softc->sysctl_ctx, - SYSCTL_STATIC_CHILDREN(_vfs_nfsd), OID_AUTO, "fha", - CTLFLAG_RD | CTLFLAG_MPSAFE, 0, "NFS File Handle Affinity (FHA)"); - if (softc->sysctl_tree == NULL) { - printf("%s: unable to allocate sysctl tree\n", __func__); - return; - } - } - for (i = 0; i < FHA_HASH_SIZE; i++) mtx_init(&softc->fha_hash[i].mtx, "fhalock", NULL, MTX_DEF); /* * Set the default tuning parameters. */ - softc->ctls.enable = FHA_DEF_ENABLE; - softc->ctls.read = FHA_DEF_READ; - softc->ctls.write = FHA_DEF_WRITE; - softc->ctls.bin_shift = FHA_DEF_BIN_SHIFT; - softc->ctls.max_nfsds_per_fh = FHA_DEF_MAX_NFSDS_PER_FH; - softc->ctls.max_reqs_per_nfsd = FHA_DEF_MAX_REQS_PER_NFSD; + NFSD_VNET(nfsfha_ctls).enable = FHA_DEF_ENABLE; + NFSD_VNET(nfsfha_ctls).read = FHA_DEF_READ; + NFSD_VNET(nfsfha_ctls).write = FHA_DEF_WRITE; + NFSD_VNET(nfsfha_ctls).bin_shift = FHA_DEF_BIN_SHIFT; + NFSD_VNET(nfsfha_ctls).max_nfsds_per_fh = FHA_DEF_MAX_NFSDS_PER_FH; + NFSD_VNET(nfsfha_ctls).max_reqs_per_nfsd = FHA_DEF_MAX_REQS_PER_NFSD; - /* - * Add sysctls so the user can change the tuning parameters. - */ - if (IS_DEFAULT_VNET(curvnet)) { - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "enable", CTLFLAG_RWTUN, - &softc->ctls.enable, 0, "Enable NFS File Handle Affinity (FHA)"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "read", CTLFLAG_RWTUN, - &softc->ctls.read, 0, "Enable NFS FHA read locality"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "write", CTLFLAG_RWTUN, - &softc->ctls.write, 0, "Enable NFS FHA write locality"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "bin_shift", CTLFLAG_RWTUN, - &softc->ctls.bin_shift, 0, - "Maximum locality distance 2^(bin_shift) bytes"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "max_nfsds_per_fh", CTLFLAG_RWTUN, - &softc->ctls.max_nfsds_per_fh, 0, "Maximum nfsd threads that " - "should be working on requests for the same file handle"); - - SYSCTL_ADD_UINT(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "max_reqs_per_nfsd", CTLFLAG_RWTUN, - &softc->ctls.max_reqs_per_nfsd, 0, "Maximum requests that " - "single nfsd thread should be working on at any time"); - - SYSCTL_ADD_OID(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree), - OID_AUTO, "fhe_stats", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, - 0, 0, fhenew_stats_sysctl, "A", ""); - } } static void @@ -150,7 +139,6 @@ fhanew_uninit(void *foo) softc = NFSD_VNET(fhanew_softc); - sysctl_ctx_free(&softc->sysctl_ctx); for (i = 0; i < FHA_HASH_SIZE; i++) mtx_destroy(&softc->fha_hash[i].mtx); free(softc, M_TEMP); @@ -489,8 +477,8 @@ fha_hash_entry_choose_thread(struct fha_params *softc, } /* Check whether we should consider locality. */ - if ((i->read && !softc->ctls.read) || - (i->write && !softc->ctls.write)) + if ((i->read && !NFSD_VNET(nfsfha_ctls).read) || + (i->write && !NFSD_VNET(nfsfha_ctls).write)) goto noloc; /* @@ -501,11 +489,11 @@ fha_hash_entry_choose_thread(struct fha_params *softc, offset2 = thread->st_p3; if (((offset1 >= offset2) - && ((offset1 - offset2) < (1 << softc->ctls.bin_shift))) + && ((offset1 - offset2) < (1 << NFSD_VNET(nfsfha_ctls).bin_shift))) || ((offset2 > offset1) - && ((offset2 - offset1) < (1 << softc->ctls.bin_shift)))) { - if ((softc->ctls.max_reqs_per_nfsd == 0) || - (req_count < softc->ctls.max_reqs_per_nfsd)) { + && ((offset2 - offset1) < (1 << NFSD_VNET(nfsfha_ctls).bin_shift)))) { + if ((NFSD_VNET(nfsfha_ctls).max_reqs_per_nfsd == 0) || + (req_count < NFSD_VNET(nfsfha_ctls).max_reqs_per_nfsd)) { #if 0 ITRACE_CURPROC(ITRACE_NFS, ITRACE_INFO, "fha: %p(%d)r", thread, req_count); @@ -535,8 +523,8 @@ noloc: * We didn't find a good match yet. See if we can add * a new thread to this file handle entry's thread list. */ - if ((softc->ctls.max_nfsds_per_fh == 0) || - (fhe->num_threads < softc->ctls.max_nfsds_per_fh)) { + if ((NFSD_VNET(nfsfha_ctls).max_nfsds_per_fh == 0) || + (fhe->num_threads < NFSD_VNET(nfsfha_ctls).max_nfsds_per_fh)) { thread = this_thread; #if 0 ITRACE_CURPROC(ITRACE_NFS, ITRACE_INFO, @@ -569,7 +557,7 @@ fhanew_assign(SVCTHREAD *this_thread, struct svc_req *req) NFSD_CURVNET_SET(NFSD_TD_TO_VNET(curthread)); softc = NFSD_VNET(fhanew_softc); /* Check to see whether we're enabled. */ - if (softc->ctls.enable == 0) + if (NFSD_VNET(nfsfha_ctls).enable == 0) goto thist; /* diff --git a/sys/fs/nfsserver/nfs_fha_new.h b/sys/fs/nfsserver/nfs_fha_new.h index 08f52539450e..5510fa2891f1 100644 --- a/sys/fs/nfsserver/nfs_fha_new.h +++ b/sys/fs/nfsserver/nfs_fha_new.h @@ -95,9 +95,6 @@ struct fha_info { struct fha_params { struct fha_hash_slot fha_hash[FHA_HASH_SIZE]; - struct sysctl_ctx_list sysctl_ctx; - struct sysctl_oid *sysctl_tree; - struct fha_ctls ctls; char server_name[32]; }; From nobody Wed May 17 09:59:11 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpV74cTNz49vVr; Wed, 17 May 2023 09:59:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpV73nYTz41Bn; Wed, 17 May 2023 09:59:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hp+6gCYuVmOvPKVwTcOl2KZ6p4hXCRMJJZW5KJivVow=; b=IS746WFdDqBmD6R3NrrM9ZLURzoKlCa8k3C0Qr83AZhD4FxAQc3VSx9xmQhoaPGWAvTh8b StetusNpZN3nXdteZMd2PJHDu7WHw62lYaUyZKsuudSyEWmALa9y64TfNWuLU+zohUd4RK 9zDxW6uGXDvntJvY6TFBFt+vcMBSsKGp/38Iy82RlN0vNPHXueUGCOcgj34f3AIBAyWP/w EcbxrYmHtq8/a6p9BkeOmMEN6Az+wo57KGEPOMc23Q9NhDwzMUK6O4n42qZpecvfqua8rn VdobzbhqfQDx/9bUi/RUIM0MwEHd/8R2geO74/5Z9F9ylqOylC1u+qWPir2OwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hp+6gCYuVmOvPKVwTcOl2KZ6p4hXCRMJJZW5KJivVow=; b=LiZXmb6hAoXPT3vfaKYELRSS4YoK4aiY7wIbOE7kCanikGNLYjFmrvN7rGdXR8M+UEoIiN TaYBvwE3htuIThEchWKj+Ys4VhykQMJOZMVEhOtxzKNH6jwela6xGqExALI0ZEzQ88AttO iDxxNAFhKFACZPfdj7sdvSE2xr++ieasuzv1ncs+GEoL0R27AZIwKBlKy8tOlsgn1upoRr C2r/ouV26SVCRBNR1fRkEY7DhDDG0Q7Y/lBdlvmtIQhxkbq2v91B/Cc8uRTP53x2/DSpM6 T0TNw8ooRln8n0E58vKr/o1xfmZi8FOpZR+cwedF0qNtvg/5q6blvyuNB10Rjw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317551; a=rsa-sha256; cv=none; b=fdoqiOYnLnObFcQjwAZCTf5X8xRmFemik6zscUqu+mn9M6h9PL6qjkIwJGzseRe2HJcHqQ bLQFLFCWXUZRWbDH3Oe98nOAXrvIOxamRI6sQdRGObTMhnJRbt3bwUYZ3TcJX9t22gm/2P RjLi9n3tOygEd9IoTz7DFDcMiEZDl5ajM/ori7NK8eCX+QieRYXJkd5h3rGe+KHPEB4bs5 seVJj2F5jRRwTWFZ9DEVbdzsU+yHbYpp8YrqO0UIeYyb5ajxgIcVUr9XIHmsFKCxeSyodQ kSymxal/KorbEum0rQURzk7jKzPIMZicjS7Mqw4ahtbYrqSw4fWxlk1+vooP3Q== 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 4QLpV72qPWzycY; Wed, 17 May 2023 09:59:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34H9xBIj039288; Wed, 17 May 2023 09:59:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34H9xBJr039287; Wed, 17 May 2023 09:59:11 GMT (envelope-from git) Date: Wed, 17 May 2023 09:59:11 GMT Message-Id: <202305170959.34H9xBJr039287@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: f70caf1b4524 - stable/13 - if_stf: Delete unreachable code List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f70caf1b4524c10d3a747770c69da9d7b6a56a22 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=f70caf1b4524c10d3a747770c69da9d7b6a56a22 commit f70caf1b4524c10d3a747770c69da9d7b6a56a22 Author: Zhenlei Huang AuthorDate: 2023-04-23 04:47:57 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 09:57:07 +0000 if_stf: Delete unreachable code As the flag M_WAITOK is passed to ip_encap_attach(), then the function will never return NULL, and the following code within NULL check branch will be unreachable. No functional change intended. Reviewed by: kp Fixes: 6d8fdfa9d5e7d Rework IP encapsulation handling code MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D39746 (cherry picked from commit c373e1d6adbc3785e8f1072cdc4a062733baa514) --- sys/net/if_stf.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c index d5ffdeabdf53..d0303665d478 100644 --- a/sys/net/if_stf.c +++ b/sys/net/if_stf.c @@ -249,12 +249,6 @@ stf_clone_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) ifp->if_dunit = IF_DUNIT_NONE; sc->encap_cookie = ip_encap_attach(&ipv4_encap_cfg, sc, M_WAITOK); - if (sc->encap_cookie == NULL) { - if_printf(ifp, "attach failed\n"); - free(sc, M_STF); - ifc_free_unit(ifc, unit); - return (ENOMEM); - } ifp->if_mtu = IPV6_MMTU; ifp->if_ioctl = stf_ioctl; From nobody Wed May 17 09:59:12 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpV85VWWz49vYp; Wed, 17 May 2023 09:59: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpV84d8bz41bb; Wed, 17 May 2023 09:59:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=69h2YgSGMK3XvPT4PfV9moxWXKOh2et4AIC4zG7tdL0=; b=oFTnOQHc/kZ4o6H9MqpWUC33xaScx75d/HX90KwHDABPbbRXOnhlykE7UZJhMuIiEwvGvo 3ZdeNg2qQy9lhRRIifrthI0eZ2MJcN5vxoLM2YI2Wf6Hxf4lncRXX7tGRPuDJcnFocMFCS JuxK5lv4ybrbnlwLjuwZ2W10tJfu6Hfqe/SZ+SLHFctnshMz8nvZlt7OSV3lT89DIbddDQ IwJpP+mExnh2SwPHKt+CCs1tHt9B1o4kZpwYNgUbvd6EzpLGyx+P3eNEQwmWHyr9325hEO /Mfj1ntWccEDtM9VnTyb4Pbal7vy5LOpRMIxQIk6YAZfl7yCmbW8dy4TBYA9LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=69h2YgSGMK3XvPT4PfV9moxWXKOh2et4AIC4zG7tdL0=; b=Xj1vYzL6Z9lkiO+X3ehVYoHqsYLyGYi99Sw9dw+S6sKXmMzcQajL5qBY0mDtr9esy19IrA 7XNvyyCcMMk0ZevBA+aLHXrscaejer7QxwM2M6jU7SuH2IyNeXHEuXlRD1npOf8CW7HqCO wwqBymD73E5K6V3d/wRhVzNwVxLDP+r05VoMXEACKqugj4bEGqHw0DCPdZGQtnAbtnTnvd 3u9WJJQMe6jeNEPvmw7cv+bUXpeJw2UXhjp5XLgvQZlxLaTxiY8w1DROYOxk1AyaioqMZN bQ84n6wU17aWc5XcP84V76b3FWMjHye2P8u5RLaZxp4sj09Vw09fwfl/nPvNTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317552; a=rsa-sha256; cv=none; b=hI4EdcE7x6jDW7PYKgsGzH6GLKlzP+IX43CkND4gnj83ZdkXBNY/E65OIvhZMOIRvNbEOl PtyARyp8k7W2Dej4XZvCWibdeP2+eN2BHIE8bZQyyEdjEysp7pTQNdx791MO9nYO0DIi/i NR/TZHk6dHB64d0ULPzKvJPVukPHDeieaJiBqXc5W+cd00pGVKchTsG73/fgocuEpaAorH JnNhhTkC9v6/QRElj6nZ9TpDA/0OxJfcQQvEzDEabtAm0Qo0w/xKCPmhqmljeD5fpVxkWC Nbg7NfyZ4squfNNI8Cujao8xAV6+5E0Yti26w4aYjpCbNtBYbmG7dvkuTFPNEQ== 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 4QLpV83k5TzyrY; Wed, 17 May 2023 09:59:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34H9xCkO039310; Wed, 17 May 2023 09:59:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34H9xC0S039309; Wed, 17 May 2023 09:59:12 GMT (envelope-from git) Date: Wed, 17 May 2023 09:59:12 GMT Message-Id: <202305170959.34H9xC0S039309@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: ece63e96c364 - stable/13 - ip_mroute: Delete unreachable code List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ece63e96c364679e19c124d145abe5af789d1948 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=ece63e96c364679e19c124d145abe5af789d1948 commit ece63e96c364679e19c124d145abe5af789d1948 Author: Zhenlei Huang AuthorDate: 2023-04-23 04:47:57 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 09:57:07 +0000 ip_mroute: Delete unreachable code As the flag M_WAITOK is passed to ip_encap_attach(), then the function will never return NULL, and the following code within NULL check branch will be unreachable. No functional change intended. Reviewed by: kp Fixes: 6d8fdfa9d5e7d Rework IP encapsulation handling code MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D39746 (cherry picked from commit b658c0fce10a06493dc468fc9f6699120473e17b) --- sys/netinet/ip_mroute.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 6aeea44f631c..39d2e1c26a48 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -2891,13 +2891,6 @@ ip_mroute_modevent(module_t mod, int type, void *unused) &pim_squelch_wholepkt); pim_encap_cookie = ip_encap_attach(&ipv4_encap_cfg, NULL, M_WAITOK); - if (pim_encap_cookie == NULL) { - printf("ip_mroute: unable to attach pim encap\n"); - VIF_LOCK_DESTROY(); - MFC_LOCK_DESTROY(); - MROUTER_LOCK_DESTROY(); - return (EINVAL); - } ip_mcast_src = X_ip_mcast_src; ip_mforward = X_ip_mforward; From nobody Wed May 17 09:59:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpV96CLSz49vBZ; Wed, 17 May 2023 09:59: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpV95j4Lz41NY; Wed, 17 May 2023 09:59:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=It0U/4gS/7eYMq5CuxGQyuvo//B4sE3vvaZtMIabjS0=; b=aL1wTN3SEwMM8XNLoOjEGTNnWMGw7jqPR8cGiykmsuVIGzvEAoFXAOQTHVK59naBPN7EBn av8J4ku/NQY9sHHidPX0HbTQl+KM4aHRWQsfIjgfXbvZBU1wdYIzCfjBlz9dJfzgt6yCNr w/+0/GG/mX/J66XI6I5qDvb3ajhPq3JEMIetfEKzcIhuiO6gwz2KfiIx9JdxuJeror75SS v1IPMF4Y00e1z3gCI7EHOm9xSfUZsNBt6Wl/22vk8UWMiMD2D8tslIc3IzZAYfWbXN3cDf 5dA7WYA7G7rEKBOjKz2hzWwjlWyzKFD6PE5v9Hv5y5y4KeoLUUi10bcaZea4zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=It0U/4gS/7eYMq5CuxGQyuvo//B4sE3vvaZtMIabjS0=; b=T+KIC+h9styeC7WG00gJG2d6ABZjNS+mxleiN1kZ/T2Y28lcdPTghBuc4+buZd9tmm8LAf PtUfffwOLXvwXwGj8lG6JXlSZworMEh+f9LzNIgX1D5LInKSpWIZrVv0Qmrq4XkeoGj8Ks dje8Z5CCOcMWuM3Q7tqu/auy1XhF4hwt/sk07S2mhs1NEHeEpXOp7xzDajQHYZ/djELFZG EoF81cA8U61yTwVnWDCqOq2hDG1JkWtS4Oq/R+G8h1mx4e43lawhlLmauHwMgsdcF4IaB7 tnxAYfEdW7EKCJ5Wu3OaXq8JKi7R99VNVUAqs9CB/x2YyOUcWrYLfeMLLhoikg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317553; a=rsa-sha256; cv=none; b=ObvXtNyPP7hFlfTQ5v0Um3sUal0aBs414Y+FcOn1/9q+komZ9aXFY/h6I+l/3Zva4KCrcI 3yKCmODdV/9vDpTBnMBgOdX1uBSP+Abxs9PJbZJd755H6elMHgiMq6ZPmBk6fbXd4h1Rkz EBjkb6056lOBoXN4CqNTyeSiPgx/Yy6UgcXmKXdM+66RkZcS1TpWUx11WfkUJfNE5C2A9f C5PfoRaerha4F7kCcKWzJWz/iqdJ+X4J6wXz+2un+z8GL9Tjk9L1peD1E6YpTAiWKrqEAm ryRiORs5iSVybuKE4CPF4vyhQ6tKm2c8VWULrAzV+lx9UI/XM4lPBp/4YCOL3Q== 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 4QLpV94csrzyrZ; Wed, 17 May 2023 09:59:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34H9xDJU039329; Wed, 17 May 2023 09:59:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34H9xD5o039328; Wed, 17 May 2023 09:59:13 GMT (envelope-from git) Date: Wed, 17 May 2023 09:59:13 GMT Message-Id: <202305170959.34H9xD5o039328@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: 4d7d39b0f208 - stable/13 - elf.5: Fix conjugation of holds List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4d7d39b0f20874cda49771067f92e129840976fc Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=4d7d39b0f20874cda49771067f92e129840976fc commit 4d7d39b0f20874cda49771067f92e129840976fc Author: Zhenlei Huang AuthorDate: 2023-04-25 10:21:52 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 09:57:07 +0000 elf.5: Fix conjugation of holds MFC after: 1 week (cherry picked from commit 6f96b5487f4359199ceb8339d2d7063e2249f538) --- share/man/man5/elf.5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man5/elf.5 b/share/man/man5/elf.5 index 95bc183a1f91..17922c8c0d69 100644 --- a/share/man/man5/elf.5 +++ b/share/man/man5/elf.5 @@ -1022,7 +1022,7 @@ This section is of type The attribute used is .Sy SHF_ALLOC . .It .rodata1 -This section hold read-only data that typically contributes to a +This section holds read-only data that typically contributes to a non-writable segment in the process image. This section is of type .Sy SHT_PROGBITS . From nobody Wed May 17 09:59:14 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpVC08tkz49vSP; Wed, 17 May 2023 09:59: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpVB6S8yz41cj; Wed, 17 May 2023 09:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VrgqAg1e+gMAnkODGptoAwe9R7+rA9V2kJ6OCmwRPFk=; b=xO3rpUOgjuLO07FzJy49E5cegM6wMSzZeLXdqVvxppVWdrm8V+yjyO8HbHvFKC5/gQebEQ fTvox9wS/ZDZ8UPh4Z5dKkNG/RONsU/tdzg0jHY7T0KKNebesmnFDj7DtglTPqHKi3c21y nhXzrKGdq8AQE2gGitwx/5/GpuumOq8AYpsR3dXIu++fKjsRRxig8cLpdLJrU9A6T/UFsb EfysztrhZf4UvS/jwf28FJcDD0JMK8WxQZGJzGYnNW9t6Iq2815cO+rrY34bLfS8kJdf69 991dmNoL73VqeEsYO0dkAg73hLOK3OaFSWiA+MPnKCFx9sUs1enRSWG/Teaz/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VrgqAg1e+gMAnkODGptoAwe9R7+rA9V2kJ6OCmwRPFk=; b=wKrzvQMQukUiBQ9LnqWyyWu7mHc5Q1TIxaITg8a+HQO7IoA/dtUBIvTG4NGfuwDnPGkSYF Vy8206OQ7TJ1GkpHzjMeIRoBfiEv5Zc6oAsDdWjLbTw5IG+Ka/Vt85zH6nocETB2gp/8ZQ bGHPKYOkIJXrZ4De/adIH1KG0d78Eirl/gcUOcwmk84O+ScjplrFK7w/qtElaUaig8kfLa R1ZApjzvGPagsLVDEDC0mY8etIZ7w2pSRnvizPyFgRJ2JnIceZ+YD0gybQK1AzrQEVuPIl T5weMyJTJwt4Rk471eqXwnqeUsGlHIsFOY7OvpCMoLv9Z7IeSyDTBcVaHuSwbA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317554; a=rsa-sha256; cv=none; b=FnNUPw1iDO7FC5KXgXfBz1dVAzcyES6TEhA7a6uiE/VAs8DXJVtySVXvSlXlhsA1y4ynsU Wz/K5hiBPyTtoQS2+9PPXcDWm8ADZrAmDqS8rjmB7OL3D7ZXVe+WP41vD9W+/J4Xck7mFS 8ZyMYqmneOeMkoJkBikwPbO9HBPufbSsEwDoQz0jUF0JEVp437LEAsIiAdbxg1jwsA+f9w +zhzVVc7oSQ0CkapvxXqN6JmWagz9zXRS+D8csyV8yX8MnqoIsdMBL2l6y6hlzgoq4zOQx 6Y2iOEBe3HQJhKl4Z2ESkoxdt9I/fe0Rn82pLIuPZrtQqV4o7rT5J60KevPuhA== 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 4QLpVB5Yfhz100g; Wed, 17 May 2023 09:59:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34H9xEEv039348; Wed, 17 May 2023 09:59:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34H9xE3m039347; Wed, 17 May 2023 09:59:14 GMT (envelope-from git) Date: Wed, 17 May 2023 09:59:14 GMT Message-Id: <202305170959.34H9xE3m039347@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: 1437712fd8c9 - stable/13 - ixgbe: Fix typos in source code comments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 1437712fd8c969847c339b43261a914b99b1aa05 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=1437712fd8c969847c339b43261a914b99b1aa05 commit 1437712fd8c969847c339b43261a914b99b1aa05 Author: Ian Moffett AuthorDate: 2023-04-28 10:01:58 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 09:57:07 +0000 ixgbe: Fix typos in source code comments - s/feilds/fields/ Reviewed by: zlei MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/707 (cherry picked from commit 99cb088f1a2513ad71225b9691e0aed09ba8fafe) --- sys/dev/ixgbe/ixgbe_api.c | 2 +- sys/dev/ixgbe/ixgbe_common.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/ixgbe/ixgbe_api.c b/sys/dev/ixgbe/ixgbe_api.c index 80cf1ce1925d..12fc7d9cfd4e 100644 --- a/sys/dev/ixgbe/ixgbe_api.c +++ b/sys/dev/ixgbe/ixgbe_api.c @@ -1420,7 +1420,7 @@ s32 ixgbe_bypass_rw(struct ixgbe_hw *hw, u32 cmd, u32 *status) * ixgbe_bypass_valid_rd - Verify valid return from bit-bang. * * If we send a write we can't be sure it took until we can read back - * that same register. It can be a problem as some of the feilds may + * that same register. It can be a problem as some of the fields may * for valid reasons change inbetween the time wrote the register and * we read it again to verify. So this function check everything we * can check and then assumes it worked. diff --git a/sys/dev/ixgbe/ixgbe_common.c b/sys/dev/ixgbe/ixgbe_common.c index 86301dab80ed..9c13b1b2663d 100644 --- a/sys/dev/ixgbe/ixgbe_common.c +++ b/sys/dev/ixgbe/ixgbe_common.c @@ -5151,7 +5151,7 @@ s32 ixgbe_bypass_rw_generic(struct ixgbe_hw *hw, u32 cmd, u32 *status) * ixgbe_bypass_valid_rd_generic - Verify valid return from bit-bang. * * If we send a write we can't be sure it took until we can read back - * that same register. It can be a problem as some of the feilds may + * that same register. It can be a problem as some of the fields may * for valid reasons change inbetween the time wrote the register and * we read it again to verify. So this function check everything we * can check and then assumes it worked. From nobody Wed May 17 09:59:15 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpVD0jgkz49vYs; Wed, 17 May 2023 09:59: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpVD0GQyz41k2; Wed, 17 May 2023 09:59:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+blMh+wUn6mlkYh75y1gyLpLkv1bSMnUkspIvL3P8aI=; b=G3+5pZZBVQXnuDLr7g9mUzLhmAE9ZyCBKE1fisteLpg+xut/T1lO/hQlr6i0mgHfYnoWN2 1XKxhDg+53Z5v/7fwC9/GYdOxBak3X7vOk5yQHc43uXRX78g3yQPMjTYegV+nu8ucbD0Tn qb5lKV5S9Rykb9ftKVGsbGDrBaxlAJYrszOlwaP7N8BPbr/FmRtfanBEqaBfGjJgYd7T/h /QskVHBMcakE8soR+iH4CfB2mK8MZHuWcg+IdRVVc1ZbXZ7luTF6AM7TYDIATzOEGLQhcX va/G/T/yQ8gtk+2kJHEpcbb7dMzpsYmRESwK3wYcbFlIXGfaOHG5tQSlarrJ3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317556; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+blMh+wUn6mlkYh75y1gyLpLkv1bSMnUkspIvL3P8aI=; b=jsbHEEwyhlithQM8Atg7NVZ4mti/zRZnmhiK2ig0/j3iuH/I+kCe7kyfpuqeXpaFHhbCyW FjPaldvkdA3xcGRsHzjy50WTR0+Kmrwxw/tvdCC6Q2qnH207L3JB7zWts1a40acgGU2Nlq mmDzAax2fkF2CxQxfHZypRXijMPr/uINOy6YnWrCbOq5XhIOCZ/dBPV87m8DvFZhwZme/1 hpPLiO678L7BJm5/YHuYqHgmfWVMoMb8TWGXYOfb2TJwEKLPAQVgYIfsdnfkG7ZYSQZ+5n EzYCY03Ntl9RMyjqaK1+rkKEycmcPs4tZ3qVZZApna+SS9K5MqIEPIdRwKgcAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317556; a=rsa-sha256; cv=none; b=f4ujIDaYByPiHNVQEBP/neHgRLv7YEuwduj1ofrF18kX/oY963OtZrlPAazzplMkdAnxjJ rjRHYq46jA7uG0fgvG995M+GZQ3jR8v8ai4v/BwbJtMx9LhiBgFZZtpc52bGBVFp2Nek7z hm+U0BZtm8i+ia5E/rPv3yOLlRwE13KzeMe2R2i8Q9eHA9pHViXp1j+rLyBAn4fEPHXVw3 0TbFTMiD9Z0qxB5DdTU8LO27dDthM1jYUnXUiRPmljdD4EDa7EVLOFitZsIIoDcpDXHfRJ fa5+LUR4T4esQJBqcMFgHcUDuVUhDjWwfb5pTQLhNYf1VvFbwmyFqt69ClC4pg== 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 4QLpVC6Twmz102n; Wed, 17 May 2023 09:59:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34H9xF30039370; Wed, 17 May 2023 09:59:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34H9xFXd039369; Wed, 17 May 2023 09:59:15 GMT (envelope-from git) Date: Wed, 17 May 2023 09:59:15 GMT Message-Id: <202305170959.34H9xFXd039369@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: 3056dfbdf815 - stable/13 - mps: Fix a typo in a source code comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3056dfbdf815d0536ab045b1aa3d600260a19e95 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=3056dfbdf815d0536ab045b1aa3d600260a19e95 commit 3056dfbdf815d0536ab045b1aa3d600260a19e95 Author: Zhenlei Huang AuthorDate: 2023-04-28 10:01:58 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 09:57:08 +0000 mps: Fix a typo in a source code comment - s/feild/field/ MFC after: 3 days (cherry picked from commit 5bcbdb0b2eb4c14ef0a8671c996337acdefb7f72) --- sys/dev/mps/mps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mps/mps.c b/sys/dev/mps/mps.c index 956a0301e70a..7ff596d66085 100644 --- a/sys/dev/mps/mps.c +++ b/sys/dev/mps/mps.c @@ -2722,7 +2722,7 @@ mps_add_chain(struct mps_command *cm) * sgc->Flags = ( MPI2_SGE_FLAGS_CHAIN_ELEMENT | MPI2_SGE_FLAGS_64_BIT_ADDRESSING | * MPI2_SGE_FLAGS_SYSTEM_ADDRESS) << MPI2_SGE_FLAGS_SHIFT * This is fine.. because we are not using simple element. In case of - * MPI2_SGE_CHAIN32, we have separate Length and Flags feild. + * MPI2_SGE_CHAIN32, we have separate Length and Flags field. */ sgc->Flags = MPI2_SGE_FLAGS_CHAIN_ELEMENT; sgc->Address = htole32(chain->chain_busaddr); From nobody Wed May 17 09:59:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpVF1cyDz49vBh; Wed, 17 May 2023 09:59:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpVF14vjz41qK; Wed, 17 May 2023 09:59:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3pho7oEpSvPxLi8Hkm0Bao3TWJS3D55PHh/ofkIgjsQ=; b=LwjiZb1N9HLdnx9BkDCGaIhy9pJuM1MuBKgXtgLBW4mlsFjrXn5E81hVUsqpVuKSb6CKWT rROWBk8BE0O4WmqiF9i4bFxZfYBpEFCHLfbMAX/sN5+SfdPRmhe4bVw6gKHuU80GfNj2Y4 urCidMqq02nffFfsKUyW2anbZ9wkOBiDL1AyEYmcnh/aZxcxSbmnx/kpuL92FLUqkot4OX AqUGFdM/jMfJbXQ3WURa+nD68MBCrXVCsrjuaZoxkIL/OC+ulk55TVjHWtUWGtGl6Bda8S ovNy7/4ubfpPS3XmkSyXi1jzWwzCDgAOzbOVaHzghPHD4LnWFViZ1Gl4jbHZEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317557; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3pho7oEpSvPxLi8Hkm0Bao3TWJS3D55PHh/ofkIgjsQ=; b=qeoWjvUMSUmcRRup7g/aGOtjeFo0dJ8G+ZKdwhr6doWG6kZ5wbv+cknoXm+InvoPbA5k+/ meZ0CCl6r2Qxt/vQ/k0LKtHMwi8T96rPoU0EjfTWNT9BdFayhpCT1C0b8GRC02pGU/zz+1 l1CNMR9Fi3lB3BzZxUjEku/d08l9mlaOpaOnIg3gVITONOjG/p4kXBE6c8WtgMtIxc1RjS EIa2GiEkk40sWPUKcFFowMKAnWEwgTchoAWX+DaAW0IeJfHnTQb3y9rAlJ4//k7ZrLWoRk NaMVE6rgFMLA/LFpll8Eja/MH8Kg0zhafL+EStHw/AdpZNdRzyGujjugHZubOg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317557; a=rsa-sha256; cv=none; b=jMQi2JDEttaIasggg+Qs4DqJbJMtKCSw1PpkFNDpQW8lBR/Wm56inlr+Q9s++jCrPJ2HvY rVc3x1dnwTvOzAqs/YLBaTQICYO9Xy8zItHdR+7WZt7uPJ8iueyqGJRtb0IuvNE8yqdzVk 7qyG0PDH0G9jajSe1YSpGrtfAKhtFjKtxzPdY4Estwigwi9dG1g4fcY1JNLmGgHfIMbnIJ J/HYMnZQJX+vNFIAHmI5JkWNgx1YzSHARn0k1XZLokFT70+eKs91RRQskr6XYCswcZHLFF e090FNi9OMIQaS887nKS06rhA22neinfZVk9x/QaYn2PgpCkNZKZO4Gzm3ggTQ== 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 4QLpVF0808z102p; Wed, 17 May 2023 09:59:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34H9xGZ4039391; Wed, 17 May 2023 09:59:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34H9xG7o039390; Wed, 17 May 2023 09:59:16 GMT (envelope-from git) Date: Wed, 17 May 2023 09:59:16 GMT Message-Id: <202305170959.34H9xG7o039390@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: 62af5091a4f7 - stable/13 - mrsas: Fix a typo in a source code comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 62af5091a4f757b2c356a1dbf8edf40548b0a724 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=62af5091a4f757b2c356a1dbf8edf40548b0a724 commit 62af5091a4f757b2c356a1dbf8edf40548b0a724 Author: Zhenlei Huang AuthorDate: 2023-04-28 10:01:58 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 09:57:08 +0000 mrsas: Fix a typo in a source code comment - s/feild/field/ MFC after: 3 days (cherry picked from commit bbfb244724e25933d7c7cf68b943e0c2a7d6e381) --- sys/dev/mrsas/mrsas.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mrsas/mrsas.h b/sys/dev/mrsas/mrsas.h index 069db02fadff..44f247352f0b 100644 --- a/sys/dev/mrsas/mrsas.h +++ b/sys/dev/mrsas/mrsas.h @@ -998,7 +998,7 @@ typedef struct _MR_FW_RAID_MAP_EXT { typedef struct _MR_DRV_RAID_MAP { /* - * Total size of this structure, including this field. This feild + * Total size of this structure, including this field. This field * will be manupulated by driver for ext raid map, else pick the * value from firmware raid map. */ From nobody Wed May 17 10:05:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpdR1wRPz49w0H; Wed, 17 May 2023 10:05:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpdR0tL4z43d6; Wed, 17 May 2023 10:05:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wzVHSBZckoOifXMSolCYuLkJPnz694K1K0DBc4CCYKA=; b=DPZQ3P92kY84kh8VKi40PWAXjzBpGJc/cE4KiK7yvLdjTRBdiAM+5QdL/xo3I9I2P17get UlfJ93ZZ91jT/+fLPhD9fTsQsu+WTZSYflVQ0kYwF5Mqr12E6SEs3I8DQLFD13ssKGEO+y NSmuPu78+FoX8xM7hPtJzyJBfv9ztYG+DE0vZvw6FzGqtm7Rs+SH4epMU9TGd/UcXv2hcz QmjMdQTh4KXhPQ6J45ZjWHd0f4tCDY/XuAjWtg4gIsVPZSusSIwAVBuqSFnUowIg7Dmkye ge5p+Z1ADoZ3fmtfTj0GnSM95SuF71u/e4elW9Fe7iAIJNvpRYgG8EcFN+yp1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wzVHSBZckoOifXMSolCYuLkJPnz694K1K0DBc4CCYKA=; b=Pw0oLrAVZtWjoqFji4/rmOJAXks6CyheKV76j8NKPzqhhF6Z1fG/c6RqXovz3EUi92vCDF emmnv43/ukQ3pwLhXtFLgPhwCvn/8WjdVmmLolMSLdI0myqU7IEKcEOVe8sv4gyeinnabG 0nGDSUctC4oyEvGu+lvlbjAhlLKhrzgqdbeC+GgfSZmk8Qc7+F+8qBHo2wAAMWJC5U73KH 1bVawhnfYxEZXCmDYAWeGOfQrKuinG/Zj1vWYNrWe1j/e1VItfwpPPpRx42qaIl0D8Qtyw Npa5NqF5OUANNheufDJSzz0IGdOivaDDPjtipp85R3XmjF3zvYzAMko5K9jLfQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317931; a=rsa-sha256; cv=none; b=XP+R+1TG7AUjB/IbhzK0c807xvR17PhF62Uc4HbaMuEE89+7FC2+1KPLqPUqw6PHqrWoZx CNPK8vaPyjC4K5YhojKlc/EHycycBRp+iAqRBDYxLTKWs/C867oj+T8C5/YpOZdPfkgzMF bJj7PRiJhBJfx3kADLGCY0kbQ15V9+mwUE1b2LaCxaTAdEokfJbSUJf2KYncteEW4L9XoH of7IgFu+gU3nsJbdpmNBuKNLBHiec4A4BzTiFKruAQnwSeqD2GOnEoWDdzGV1NvDSzni3S rOSC4iSo7dWYQWW9M+452MA3yPjU4Dv7pm3PQeEs9NetFlbRWGFigkocDWeu4g== 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 4QLpdQ739vz10Gg; Wed, 17 May 2023 10:05:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HA5Uun056886; Wed, 17 May 2023 10:05:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HA5UVk056885; Wed, 17 May 2023 10:05:30 GMT (envelope-from git) Date: Wed, 17 May 2023 10:05:30 GMT Message-Id: <202305171005.34HA5UVk056885@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: 1ff44a05d6bc - stable/12 - if_stf: Delete unreachable code List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 1ff44a05d6bc9ada7ee9691c3a52f6a60438d0b5 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=1ff44a05d6bc9ada7ee9691c3a52f6a60438d0b5 commit 1ff44a05d6bc9ada7ee9691c3a52f6a60438d0b5 Author: Zhenlei Huang AuthorDate: 2023-04-23 04:47:57 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 10:02:12 +0000 if_stf: Delete unreachable code As the flag M_WAITOK is passed to ip_encap_attach(), then the function will never return NULL, and the following code within NULL check branch will be unreachable. No functional change intended. Reviewed by: kp Fixes: 6d8fdfa9d5e7d Rework IP encapsulation handling code MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D39746 (cherry picked from commit c373e1d6adbc3785e8f1072cdc4a062733baa514) (cherry picked from commit f70caf1b4524c10d3a747770c69da9d7b6a56a22) --- sys/net/if_stf.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c index 098099052264..bdba588d2522 100644 --- a/sys/net/if_stf.c +++ b/sys/net/if_stf.c @@ -247,12 +247,6 @@ stf_clone_create(struct if_clone *ifc, char *name, size_t len, caddr_t params) ifp->if_dunit = IF_DUNIT_NONE; sc->encap_cookie = ip_encap_attach(&ipv4_encap_cfg, sc, M_WAITOK); - if (sc->encap_cookie == NULL) { - if_printf(ifp, "attach failed\n"); - free(sc, M_STF); - ifc_free_unit(ifc, unit); - return (ENOMEM); - } ifp->if_mtu = IPV6_MMTU; ifp->if_ioctl = stf_ioctl; From nobody Wed May 17 10:05:32 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpdS2rblz49w2p; Wed, 17 May 2023 10:05: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpdS1pdXz43dT; Wed, 17 May 2023 10:05:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b4uYzuhVYY7Db/G7ZWvgD1QBNtHzqMYHMEYZxhENj2o=; b=TtIfnFS1XGaEYkX2ujzMWkSbqeOBvhcoKWKuDCmHw3spPd/l/uxbKPs8Z7HGyondLKAXo5 O/egMzM+GrnqrMlHrR79P1aSy/txhDfwKsQgSYEtje5BpB7+RLY+4zfhatu/UIalxpUH5V +M6WDyW73tO3fzNejmOUl9eOZL7GrkItif2vgA/vgfS9o6PBdR9AVmVtvP6yzAkVIsqmNU 7Vc/wd+G3nt3kbgmpbJidAi+Ktj1OEVjiRBw3LZf20hAjErrdAd4gUrAI0Svux87rvr3BA wY5ImwSsxJyjl1e9y8i6hINqYcl6khNtjdC6XgKFPdi2rEVpjM0lTpPPnzO38A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b4uYzuhVYY7Db/G7ZWvgD1QBNtHzqMYHMEYZxhENj2o=; b=xWjrDA0Q7uQrF7xAUDtSJVhaZ7uvuwrCTCaUI5laatxg9HI/4RXtLLepnclRwnj/QB2GEZ mE/9J6WufK7yyLO+Yd7Ae9azmkSQiwdMzRwnMq4PKMnZQobM3QH/9j9xmuv2phAHNQd9FQ gMt1zApM7sNvCD2Uq7SnOIDLh2jbewTch1CMTPo6WktYLS6t6twL8oEAeTDK9cZYwAWFfx PbDWBEafPwz4vCevF1ZpaXBDcWCHb488aSYq2aWklZWhlJTITYHBs66nq0MucM5lc8F/cY ff3fMe6TMIV1QGpYj08W1Km+6zwtnfWc6AjbOUSqz+0MoV57kqJ0Bac9pghy7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317932; a=rsa-sha256; cv=none; b=B5qOQQwPbRDqVBy0ZG+evHTpjBvBOx/WvDBXkcnrhkm6mVlgEIwv03gfZeoCq+O7Cqvtst xX7xUoQLNFVJjzbLxnVmRUn23u8+dtcGEP0GtcpUnf0P08d+6Jd+t7J/knd3p8Y3S/ngrn KVdn9CtDBXuMc/gSHDifRVuNRIGXKqfE0OQ1k+IWQX3AobVBuboMYny+o0B2kCaUMGbjRC Js+uXlLWkiPTjbwH7Txbw4n/e5cV9LIvdUyieUE5bEvrdDu2GBvWtf5FFqTrfYWzOaSKh3 MRx70HfgObl7vsRSe7flFCcUg8Mu8rTmPSv38/KADJY20J7FmEes6m1CHqiltA== 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 4QLpdS0rBzz10DH; Wed, 17 May 2023 10:05:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HA5Wa4056905; Wed, 17 May 2023 10:05:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HA5Wck056904; Wed, 17 May 2023 10:05:32 GMT (envelope-from git) Date: Wed, 17 May 2023 10:05:32 GMT Message-Id: <202305171005.34HA5Wck056904@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: 2a3147f96241 - stable/12 - ip_mroute: Delete unreachable code List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 2a3147f962419e07e3eea69d74fece46c526dee2 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=2a3147f962419e07e3eea69d74fece46c526dee2 commit 2a3147f962419e07e3eea69d74fece46c526dee2 Author: Zhenlei Huang AuthorDate: 2023-04-23 04:47:57 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 10:02:29 +0000 ip_mroute: Delete unreachable code As the flag M_WAITOK is passed to ip_encap_attach(), then the function will never return NULL, and the following code within NULL check branch will be unreachable. No functional change intended. Reviewed by: kp Fixes: 6d8fdfa9d5e7d Rework IP encapsulation handling code MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D39746 (cherry picked from commit b658c0fce10a06493dc468fc9f6699120473e17b) (cherry picked from commit ece63e96c364679e19c124d145abe5af789d1948) --- sys/netinet/ip_mroute.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 60b18cdbd35c..92074670cf60 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -2889,13 +2889,6 @@ ip_mroute_modevent(module_t mod, int type, void *unused) &pim_squelch_wholepkt); pim_encap_cookie = ip_encap_attach(&ipv4_encap_cfg, NULL, M_WAITOK); - if (pim_encap_cookie == NULL) { - printf("ip_mroute: unable to attach pim encap\n"); - VIF_LOCK_DESTROY(); - MFC_LOCK_DESTROY(); - MROUTER_LOCK_DESTROY(); - return (EINVAL); - } ip_mcast_src = X_ip_mcast_src; ip_mforward = X_ip_mforward; From nobody Wed May 17 10:05:33 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpdT3VKrz49vx1; Wed, 17 May 2023 10:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpdT2TQkz43k1; Wed, 17 May 2023 10:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=itCZBwY/Nt7FfkhumvlQsO85CEW+tF8vrtHfohqq9aA=; b=HsEAPOGrO07BZz9CKkIP+pRsnsRCBtpzuNQncT6CHcR+rhLfTitBD0DH4x/ZbqC/TQfGGF BtJFYRb8/173xCETfjMMobwpee5c4mSMtZ4JrG8W+INgejOU20ifEEnRDm/uUBtnKw7Bj3 m3QmpuMao04C/XWwTGml1MZQ83Ogjry/i21tvjZ/+8Qb1KbEKmrEOZ6NiYKicixdGWfy5R YgQNO+nbrpMxzva366MCwo5Qp74OYhotXzihXi/qR3aGvu9SLZWUM6g+8Jkpxrx6vp2mNK dZSgxjtQQJ20l3nIWoFAAYamxkbNzZYWhQUS1875uj0lQZOvpVvTNnOWCKsY5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=itCZBwY/Nt7FfkhumvlQsO85CEW+tF8vrtHfohqq9aA=; b=Wdc2GKNEoa4ceSmMW27Q7ZvBwXOjlP1DxEoJpbGAk8pZIBWmWhHeOYmghWn25XSZmgVLpl o9gDuBs58nm9z+Q+KLA0fR9zMBI5TdIX+xv0JcGLHboS4bc1l1GL2uMw1M3LxS4zUCWzdM Zn37d5dL9BmOadNhx5S7IHxDh9AgupxYmmy/3LQGW8lFYS4Q4TxJeUaS8JAC3SeUmthnTN AHbgf1QajRyDmDcRqXWtAn7b28i0uuebao0mVErF/bbcgEd5Q7p4shm67ofGUUFXMEWFQ4 2quvKH3llHOhrgZHjEGx4AB8WPWllI6OtY66W8gLGR3ATA7wWEJuJsoI/8QRog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317933; a=rsa-sha256; cv=none; b=m2vMwhk98zMCM9fJrclAzJnUzpxzTrvC0Bu+B5lZFXtbTtXxyx4lMHcAhAK0rTYHFN0yyx nutJ8wFYZ9q8s4sas+wcqxxmD1SXjVPaJDAWVgFJdQs0+ARXyTkzELFtUqpfd0Pkf/wATt 3ho1m7CZWNtoYZHOegi3lSnW0Sggr2+/uj6w1YuKdQmqPN33XrD6TIb3WROA4QDXN3KNhX AThVAed1A/X/AhdR+77Qi+nYRf3lc0qB+w35eA4BRvCSFIZxTtrpHQT7MtbaqcmCSFHU7M 9xPUvWToWMwlmSswBeTqhGFWPJNBZnVRKoerD6iPFlcXq3ZUs+egZzTYkUuFFw== 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 4QLpdT1ZMMz10Sx; Wed, 17 May 2023 10:05:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HA5Xc4056931; Wed, 17 May 2023 10:05:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HA5Xs1056930; Wed, 17 May 2023 10:05:33 GMT (envelope-from git) Date: Wed, 17 May 2023 10:05:33 GMT Message-Id: <202305171005.34HA5Xs1056930@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: c0612a203c92 - stable/12 - elf.5: Fix conjugation of holds List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: c0612a203c92604d96cdac256b88d386cbe4bea7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=c0612a203c92604d96cdac256b88d386cbe4bea7 commit c0612a203c92604d96cdac256b88d386cbe4bea7 Author: Zhenlei Huang AuthorDate: 2023-04-25 10:21:52 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 10:02:49 +0000 elf.5: Fix conjugation of holds MFC after: 1 week (cherry picked from commit 6f96b5487f4359199ceb8339d2d7063e2249f538) (cherry picked from commit 4d7d39b0f20874cda49771067f92e129840976fc) --- share/man/man5/elf.5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man5/elf.5 b/share/man/man5/elf.5 index df051adbf873..dad4fd79e87a 100644 --- a/share/man/man5/elf.5 +++ b/share/man/man5/elf.5 @@ -1020,7 +1020,7 @@ This section is of type The attribute used is .Sy SHF_ALLOC . .It .rodata1 -This section hold read-only data that typically contributes to a +This section holds read-only data that typically contributes to a non-writable segment in the process image. This section is of type .Sy SHT_PROGBITS . From nobody Wed May 17 10:05:34 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpdV60mWz49vvw; Wed, 17 May 2023 10:05:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpdV3Bjdz43kM; Wed, 17 May 2023 10:05:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317934; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IHP3r4vuEeU8zAU6IouyWtswBcLcOMAkqIQSjdPqJdA=; b=IC7XD5C9pdbLjZhRhEoXwenB43IMGmGOUS/cDZLdbDUN2+SRZELox5tujMRNT+dpPafF+D iG+MtYbTgClAF2QUYc0gecqQJ7KVlMEt80ZkjxZOr1HcJu64Y5i/5xKh1k2Zz9t2oDkSj1 Sv9Eqj/xObONpJFb09fdwG+xEjw09gHQBTc7zxYEq41hO4wVrDEQbY3kz/pTDj2SQNSd5T /TnQaaEq3ZEDyEfKSNPPW86wPcOaBy2v4tV6E1RDZwhr1pSynwtlprEpm+iNoz9kTzSoh3 rgu+rfHTzOS2b12WIe3u+pDCSX35+BNRIwWQWrG+KRemBsILpt7oVwtIp9JnJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317934; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IHP3r4vuEeU8zAU6IouyWtswBcLcOMAkqIQSjdPqJdA=; b=pKd8vQVMLchx8vdQsD1ctIRWgN1jGN7RTybeX22slrNIYrGhX+5ySqTonf55Z9k5BQjt8t W8mFOJGoMtc08mtXKSd0+u4nKVg2VpOcFYAzJ25bXbhO+opGCXHqNNKsrSAwVem3b6eGYt TBExfnYYyVw++y4Jnz5d3pkLBVAeKtbR/aEktlgJH+y+bk3f05BTIyK72O1TZQoss18y7r YwsTd0q46o9yo7JvWRoSGlWZgPpB/MHIrm/ebY7OPtfqFUDDzzq68+wiDpimmByO8ZEJZy cTPzFU9JmqumpFbnhzy6yQ002Sry9Ba/4w1TiYlO7U1FNb6E5sNPSSNK/VOkug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317934; a=rsa-sha256; cv=none; b=yr0VLNAd+CQ9wNsZGEbwlwMv4BWMaJFb43NNMjSv51MovTGkhGwrdIwJjB7O0fSRbDTbH5 ilu3mF40syuczKnvUXXGqsmjFxbK29FJkdUXK/DKLqb2JpurrpEdIuczUn11jBWDIruRng E1kJJZ7LMWzBZ15MpTOeMlr7/aV4erg05BnSkbHgfFhk2E12r5qbuQRSUa/LVKxH4Sh5ZK K8Vty2/ICRMNsFuQn+XiR8fGZnHZCx1UimxOiacvHKM5f0zENAFe6EDaiuEJsUxd6FQSLM IQfgHiMRtEC0s1d04tZpF4Uo5tNJHOrfJeGdZ+qnokYRr6tC9oy6U0bMlZKDpw== 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 4QLpdV2Jdqz10Gh; Wed, 17 May 2023 10:05:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HA5Ygs056950; Wed, 17 May 2023 10:05:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HA5YkQ056949; Wed, 17 May 2023 10:05:34 GMT (envelope-from git) Date: Wed, 17 May 2023 10:05:34 GMT Message-Id: <202305171005.34HA5YkQ056949@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: b23360fe1355 - stable/12 - ixgbe: Fix typos in source code comments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: b23360fe1355935921be3cdde346279760b3db55 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=b23360fe1355935921be3cdde346279760b3db55 commit b23360fe1355935921be3cdde346279760b3db55 Author: Ian Moffett AuthorDate: 2023-04-28 10:01:58 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 10:03:03 +0000 ixgbe: Fix typos in source code comments - s/feilds/fields/ Reviewed by: zlei MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/707 (cherry picked from commit 99cb088f1a2513ad71225b9691e0aed09ba8fafe) (cherry picked from commit 1437712fd8c969847c339b43261a914b99b1aa05) --- sys/dev/ixgbe/ixgbe_api.c | 2 +- sys/dev/ixgbe/ixgbe_common.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/ixgbe/ixgbe_api.c b/sys/dev/ixgbe/ixgbe_api.c index 80cf1ce1925d..12fc7d9cfd4e 100644 --- a/sys/dev/ixgbe/ixgbe_api.c +++ b/sys/dev/ixgbe/ixgbe_api.c @@ -1420,7 +1420,7 @@ s32 ixgbe_bypass_rw(struct ixgbe_hw *hw, u32 cmd, u32 *status) * ixgbe_bypass_valid_rd - Verify valid return from bit-bang. * * If we send a write we can't be sure it took until we can read back - * that same register. It can be a problem as some of the feilds may + * that same register. It can be a problem as some of the fields may * for valid reasons change inbetween the time wrote the register and * we read it again to verify. So this function check everything we * can check and then assumes it worked. diff --git a/sys/dev/ixgbe/ixgbe_common.c b/sys/dev/ixgbe/ixgbe_common.c index 3f38f5e27123..a3a1cb564948 100644 --- a/sys/dev/ixgbe/ixgbe_common.c +++ b/sys/dev/ixgbe/ixgbe_common.c @@ -5136,7 +5136,7 @@ s32 ixgbe_bypass_rw_generic(struct ixgbe_hw *hw, u32 cmd, u32 *status) * ixgbe_bypass_valid_rd_generic - Verify valid return from bit-bang. * * If we send a write we can't be sure it took until we can read back - * that same register. It can be a problem as some of the feilds may + * that same register. It can be a problem as some of the fields may * for valid reasons change inbetween the time wrote the register and * we read it again to verify. So this function check everything we * can check and then assumes it worked. From nobody Wed May 17 10:05:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpdW4jVVz49vLZ; Wed, 17 May 2023 10:05:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpdW47YQz43sd; Wed, 17 May 2023 10:05:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WlQj0/HfKNw27gYBGd1bQc+Ewhifr3+qnaIF5vYexns=; b=kfX82uxs5fTuKm66tqMPX6v+4fhDJYGEZheD91fME9H698T+DJibGHPgW3gl0xS1RxONFi KYd4AwOi/UeYbk1lgIqsqmVtPlmx52tLBJyrS9Bfy+Z+eBI01Td/aoTy3Fv+jBNTKXbQVT hehrdTHxfOR5HX+bJNYFZb6mcAJK/4bdXwXb9GPKJ/1B1ZLTXJeUnMYlYunE11yq6rN6jG h5fRHZ7d4T7kmY4vNer0/Eb2K1Hw4U2fFt6Mj8x2Q13K5UWklzNlLGzoair3o7na6VPUY9 mjRENh78lvLWFGe0W4nq7ElLjV1AcrOYAxCU2iHXL1sLom80VsSkD5Jc08GbYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WlQj0/HfKNw27gYBGd1bQc+Ewhifr3+qnaIF5vYexns=; b=LsPsH7lgYWETX+ZFaZrZWVF0WywuxGCV+e1clffShN8b/H2m55cEuWxA8/P6XFuD9uVlGq qSVjHiw0KO8qnutjl59vt1OQDIolWyDied6b265PGBw0ajt8UpXRHwBJzNXlJ724mxK5Hf h7mf8kpHz2diPcVhgyiS4pYR4tregTPRnezqPi5kpYGZHV/rAu8EdpBS38b//LVa9JOVyi OrCdHYWjmKR5neY+GnoDfXhq8nK7BK0Ewu1tEYeDkdCDuQALnlarETzbseh6smJfZW/Lb/ cuNnR35pSnm79vnm+A+NFeySyi5tdaTfFRDJ6N++/+yI2Us9KH37sCZkiUeDNg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317935; a=rsa-sha256; cv=none; b=UyQqMSvXpkZ+pdoGaPzSubW7/Ns068rXWm5Ax3YByQZCNqYd/22jetV2xTPwvMQIbBOuS8 EL94ZPl9lb3zcNt0eat4UbN79Xvr6e6DA147PNs9RjKhn38prOMS0vhGF+S9hb2v4ZE19s aO/UQaDlVFRNp66zyMSmQZpUgjstfinditQfnhGXbwx/Ipz2f1t8yBAzPkKc/7TUuOe50y FNgGpE8ZXh8n71d4NxjTnvcQQoy+HezcP2PY5uRf4CfenTghuyccXtO/byv3on1Sw8XfIQ nZsXqRJ0smydjrlKvyHAQY/e1eTdQIJapwLaI5gYMzoFPSJiP4DyuPKa4xd5Vg== 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 4QLpdW3FDHz10Sy; Wed, 17 May 2023 10:05:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HA5Zdb056972; Wed, 17 May 2023 10:05:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HA5Z33056971; Wed, 17 May 2023 10:05:35 GMT (envelope-from git) Date: Wed, 17 May 2023 10:05:35 GMT Message-Id: <202305171005.34HA5Z33056971@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: a043c76d3e33 - stable/12 - mps: Fix a typo in a source code comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: a043c76d3e33004848b7ff3aed8ce3213a741d97 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=a043c76d3e33004848b7ff3aed8ce3213a741d97 commit a043c76d3e33004848b7ff3aed8ce3213a741d97 Author: Zhenlei Huang AuthorDate: 2023-04-28 10:01:58 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 10:03:17 +0000 mps: Fix a typo in a source code comment - s/feild/field/ MFC after: 3 days (cherry picked from commit 5bcbdb0b2eb4c14ef0a8671c996337acdefb7f72) (cherry picked from commit 3056dfbdf815d0536ab045b1aa3d600260a19e95) --- sys/dev/mps/mps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mps/mps.c b/sys/dev/mps/mps.c index 2e2fd9641c77..1fb7cf09eae8 100644 --- a/sys/dev/mps/mps.c +++ b/sys/dev/mps/mps.c @@ -2740,7 +2740,7 @@ mps_add_chain(struct mps_command *cm) * sgc->Flags = ( MPI2_SGE_FLAGS_CHAIN_ELEMENT | MPI2_SGE_FLAGS_64_BIT_ADDRESSING | * MPI2_SGE_FLAGS_SYSTEM_ADDRESS) << MPI2_SGE_FLAGS_SHIFT * This is fine.. because we are not using simple element. In case of - * MPI2_SGE_CHAIN32, we have separate Length and Flags feild. + * MPI2_SGE_CHAIN32, we have separate Length and Flags field. */ sgc->Flags = MPI2_SGE_FLAGS_CHAIN_ELEMENT; sgc->Address = htole32(chain->chain_busaddr); From nobody Wed May 17 10:05:36 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLpdX61MDz49w5D; Wed, 17 May 2023 10:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLpdX55tNz43w5; Wed, 17 May 2023 10:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yn5QKqBwRv2EUnSYDddY0W+YLZXALF0K5T2AYTK3UHI=; b=X+PyyQY82NmQJAiB7GXgIhbMh66s12QZRAfuzfPZTNM0f9mKmY0Qg/bRCBaD8Ol+76sUM4 EDX7iyAAu8SagDdvEHy7H6AixTTiqN63G+VUH2x6mb0sPqIpcQhq7H+1FOwX10ezMwokuZ CQtrtsa605Mcpe2ytrx5GACj6ZXldUFzomieSkifhqEYqtt9myiAcsIak520YXJ//ukVaf GpzXABn2Udlshvm19Oev19HfP7VdhVVxLzLXbVD65Oxowc7Znh9gG4QNmnLIWkDfFIYXOd c0Fdw+NV8ffxGLHROaHIpQN3/1LQg2wuJNt+pmSf7jiGniA8qPG5HFE07JEw9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684317936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yn5QKqBwRv2EUnSYDddY0W+YLZXALF0K5T2AYTK3UHI=; b=D8Bt6J0rBLnU9dh+3cDQsmu2RWckk/1Ib+kw4YOKJsWn9XpfbnhBNOw5hB8jMIwYGptSxY EyPOhfuW+ZevOwq8UGaF7o6R+LIEmkWt713fOMj2lx73IUBfJpwY8IBscL81/YIpQ7Is/+ RC8rdo7l9NBbhuRVrgZzp6iPImr7h8kC2mJ/tLCEHOktCvGQE6Vz3aVC+Isa9KTGDvDFuQ qsQiqFO4gfwWFzNaum54hfApwMkxCWpjtjffS6qHlU+IG+C/trulK7dneudhOv1FqzlKbz +NFgYfCBGF89y9SewjBgb4sg1V2wfSSK0h1vjZZ1uqQxa89Oarnl6vBG7Vjssw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684317936; a=rsa-sha256; cv=none; b=TpKG9HkbHhMFJ6cz7tyxnlt71G6expJW8+zNl2VILdabP/62xeRCD+dgHFXEsk2uvzL4Js kTNK4dhmpoHl5n5y1Ai9Ly7ky/qt+e7RNLeDgRW3ul0dyB6E4ocExWB83jnylh8Mftobox Ap8+6b2mQ/ZDdstYSPj6jGzvIplotnZ8M+X2Bj9kPvr4xIzZj7UbO7pB773HCHc0fDoOqT piZAo1PESTc1YUnBSkJG+wi51nMJ9gwGYsLKpGhISMh1A4UCwkgvfvRRrbumb5LEKkK8RY 9wfgMuenH+yOY0QtLneSLAboL+dJep47t1BDWXgNMZUYNyMM/vywjEu0cO6EYg== 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 4QLpdX49dGz101Q; Wed, 17 May 2023 10:05:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HA5asp056992; Wed, 17 May 2023 10:05:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HA5aHc056991; Wed, 17 May 2023 10:05:36 GMT (envelope-from git) Date: Wed, 17 May 2023 10:05:36 GMT Message-Id: <202305171005.34HA5aHc056991@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: 4f6be38eed95 - stable/12 - mrsas: Fix a typo in a source code comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 4f6be38eed953c35df73451911ca685bd8fe5535 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=4f6be38eed953c35df73451911ca685bd8fe5535 commit 4f6be38eed953c35df73451911ca685bd8fe5535 Author: Zhenlei Huang AuthorDate: 2023-04-28 10:01:58 +0000 Commit: Zhenlei Huang CommitDate: 2023-05-17 10:03:30 +0000 mrsas: Fix a typo in a source code comment - s/feild/field/ MFC after: 3 days (cherry picked from commit bbfb244724e25933d7c7cf68b943e0c2a7d6e381) (cherry picked from commit 62af5091a4f757b2c356a1dbf8edf40548b0a724) --- sys/dev/mrsas/mrsas.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mrsas/mrsas.h b/sys/dev/mrsas/mrsas.h index 50b67f0ca50d..638bb46695fc 100644 --- a/sys/dev/mrsas/mrsas.h +++ b/sys/dev/mrsas/mrsas.h @@ -937,7 +937,7 @@ typedef struct _MR_FW_RAID_MAP_EXT { typedef struct _MR_DRV_RAID_MAP { /* - * Total size of this structure, including this field. This feild + * Total size of this structure, including this field. This field * will be manupulated by driver for ext raid map, else pick the * value from firmware raid map. */ From nobody Wed May 17 14:38:41 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLwhd6dHMz4BCRp; Wed, 17 May 2023 14:38:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLwhd5pY1z3hvd; Wed, 17 May 2023 14:38:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684334321; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mPNym5hrFvZSMkdZu2fu/EIxBYKE6XfmiXmtDmoNNOs=; b=I2Hrz3J/6bnsk4ynpBeZjVfAJvicfo/Tkyi9YYpZZI3Y+HFTkx/TjyBeCTq3H+6lnL9G3r YcvOhHasmdX0QiSQdMo7q6wAB6RK1ZoIixMxmkusY7fZAPjRa+JWGEFnEP173j3uC2k9bm AvsJxJK/EvENOnU4i/xifD8oYR027Qo03VKMj/6VW8NbaxieLi6qntLbV2bLBgApB1T5Rw rXoZQpNH2KTPx+a/Zb7cboJUN7ELoRJOvKWtjWhKX4j2YmYuVp8GgVKreYA0/JQT+nBnyJ zGPbGH9KbE/qnT9785+yQ/1KXBjUHHwOXqQZ0Q8BG3/5nZEnrKsXIqzu4azYxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684334321; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mPNym5hrFvZSMkdZu2fu/EIxBYKE6XfmiXmtDmoNNOs=; b=qPWzx+Gn5FXEidGRYa2eHr5hcbQgSfgQt5wDdKQjejLDPqAmUpeKzjvAGjZIoBveVUWZvk kusCw1GtvSBhZXaiv1wgft1jI6pxyPjGgRaJOLNgKYQQjgEoIcu1p2j7FqWtaecsnIqg6U LJEhslQkzg+GpLdVzW91GPCmv02mC1qmpto4y9dA9AdxdzBSEYdaJI30MnsX/WRjlQxhhA XM4WqV9cuA7y7EbIeFmxJaz5NzMY3rYQkhYUKZ1B0BIM0lod42EvwtsG8MIdhf0BXId2hD xL8D6gti/DfHGDr34UQkuPc09sFi9PfE8chg9S08QW03IKZcxc7ynwyOJ3HV0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684334321; a=rsa-sha256; cv=none; b=UUvQwlBvPOqitngOppJnGUO0ymxo3vrxBsDHCFL2M+pHLa1HrRZxvpxXLmWv2UcVWxPlOs LZkDDSc/eOzvYyfu8KFqqi0QEbLaZr+W92Oq4Q1uzHyBIAXBLdcDimoA72zlUO3zL1+ARV dlWg+K/5FhNS2jCldBFTB7/hFm1OxqYSvsgcv3chpmIYcGOTdidgLAssdkku2+dfsaDW21 jOwHRY/mIeQje9iC4qRbT3hwaaafNgIhvsbzY6MNfWOHJq39iOhaODqpr0z8jbu++AtzGS n4QPN77WOYl9XioItY6siFDUobB3LkaRNi+V36fHJ07Qt4vKZP8TPQgHNSGEGw== 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 4QLwhd4w8Fz16VR; Wed, 17 May 2023 14:38:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HEcfs2000945; Wed, 17 May 2023 14:38:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HEcfJd000944; Wed, 17 May 2023 14:38:41 GMT (envelope-from git) Date: Wed, 17 May 2023 14:38:41 GMT Message-Id: <202305171438.34HEcfJd000944@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: ddaa27909a92 - stable/13 - kern_jail.c: Allow mountd/nfsd to optionally run in a jail List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: ddaa27909a9214f59eb6ee3682482b02e94b8dab Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=ddaa27909a9214f59eb6ee3682482b02e94b8dab commit ddaa27909a9214f59eb6ee3682482b02e94b8dab Author: Rick Macklem AuthorDate: 2022-12-17 21:43:49 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 14:37:31 +0000 kern_jail.c: Allow mountd/nfsd to optionally run in a jail This patch adds "allow.nfsd" to the jail code based on a new kernel build option VNET_NFSD. This will not work until future patches fix nmount(2) to allow mountd to run in a vnet prison and the NFS server code is patched so that global variables are in a vnet. The jail(8) man page will be patched in a future commit. (cherry picked from commit bba7a2e89602e6745bb2ec474f5ab714aef49f42) --- sys/kern/kern_jail.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- sys/sys/jail.h | 4 +++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 1dfdb30a463c..0a9d311eeafd 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include "opt_ddb.h" #include "opt_inet.h" #include "opt_inet6.h" +#include "opt_nfs.h" #include #include @@ -215,6 +216,9 @@ static struct bool_flags pr_flag_allow[NBBY * NBPW] = { {"allow.unprivileged_proc_debug", "allow.nounprivileged_proc_debug", PR_ALLOW_UNPRIV_DEBUG}, {"allow.suser", "allow.nosuser", PR_ALLOW_SUSER}, +#if defined(VNET_NFSD) && defined(VIMAGE) && defined(NFSD) + {"allow.nfsd", "allow.nonfsd", PR_ALLOW_NFSD}, +#endif }; static unsigned pr_allow_all = PR_ALLOW_ALL_STATIC; const size_t pr_flag_allow_size = sizeof(pr_flag_allow); @@ -1884,6 +1888,13 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags) } #endif +#ifdef VNET_NFSD + if (born && pr != &prison0 && (pr->pr_allow & PR_ALLOW_NFSD) != 0 && + (pr->pr_root->v_vflag & VV_ROOT) == 0) + printf("Warning jail jid=%d: mountd/nfsd requires a separate" + " file system\n", pr->pr_id); +#endif + drflags &= ~PD_KILL; td->td_retval[0] = pr->pr_id; @@ -3176,6 +3187,27 @@ prison_check(struct ucred *cred1, struct ucred *cred2) prison_ischild(cred1->cr_prison, cred2->cr_prison)) ? 0 : ESRCH); } +/* + * For mountd/nfsd to run within a prison, it must be: + * - A vnet prison. + * - PR_ALLOW_NFSD must be set on it. + * - The root directory (pr_root) of the prison must be + * a file system mount point, so the mountd can hang + * export information on it. + */ +bool +prison_check_nfsd(struct ucred *cred) +{ + + if (jailed_without_vnet(cred)) + return (false); + if (!prison_allow(cred, PR_ALLOW_NFSD)) + return (false); + if ((cred->cr_prison->pr_root->v_vflag & VV_ROOT) == 0) + return (false); + return (true); +} + /* * Return 1 if p2 is a child of p1, otherwise 0. */ @@ -3430,11 +3462,20 @@ prison_priv_check(struct ucred *cred, int priv) * is only granted conditionally in the legacy jail case. */ switch (priv) { -#ifdef notyet /* * NFS-specific privileges. */ case PRIV_NFS_DAEMON: + case PRIV_VFS_GETFH: + case PRIV_VFS_MOUNT_EXPORTED: +#ifdef VNET_NFSD + if (!prison_check_nfsd(cred)) +#else + printf("running nfsd in a prison requires a kernel " + "built with ''options VNET_NFSD''\n"); +#endif + return (EPERM); +#ifdef notyet case PRIV_NFS_LOCKD: #endif /* @@ -4184,6 +4225,10 @@ SYSCTL_JAIL_PARAM(_allow, unprivileged_proc_debug, CTLTYPE_INT | CTLFLAG_RW, "B", "Unprivileged processes may use process debugging facilities"); SYSCTL_JAIL_PARAM(_allow, suser, CTLTYPE_INT | CTLFLAG_RW, "B", "Processes in jail with uid 0 have privilege"); +#if defined(VNET_NFSD) && defined(VIMAGE) && defined(NFSD) +SYSCTL_JAIL_PARAM(_allow, nfsd, CTLTYPE_INT | CTLFLAG_RW, + "B", "Mountd/nfsd may run in the jail"); +#endif SYSCTL_JAIL_PARAM_SUBNODE(allow, mount, "Jail mount/unmount permission flags"); SYSCTL_JAIL_PARAM(_allow_mount, , CTLTYPE_INT | CTLFLAG_RW, diff --git a/sys/sys/jail.h b/sys/sys/jail.h index b0183d404352..f4d4e521d7de 100644 --- a/sys/sys/jail.h +++ b/sys/sys/jail.h @@ -247,7 +247,8 @@ struct prison_racct { #define PR_ALLOW_SUSER 0x00000400 #define PR_ALLOW_RESERVED_PORTS 0x00008000 #define PR_ALLOW_KMEM_ACCESS 0x00010000 /* reserved, not used yet */ -#define PR_ALLOW_ALL_STATIC 0x000187ff +#define PR_ALLOW_NFSD 0x00020000 +#define PR_ALLOW_ALL_STATIC 0x000387ff /* * PR_ALLOW_DIFFERENCES determines which flags are able to be @@ -414,6 +415,7 @@ void getjailname(struct ucred *cred, char *name, size_t len); void prison0_init(void); int prison_allow(struct ucred *, unsigned); int prison_check(struct ucred *cred1, struct ucred *cred2); +bool prison_check_nfsd(struct ucred *cred); int prison_owns_vnet(struct ucred *); int prison_canseemount(struct ucred *cred, struct mount *mp); void prison_enforce_statfs(struct ucred *cred, struct mount *mp, From nobody Wed May 17 14:40:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLwkT4Sb8z4BCNL; Wed, 17 May 2023 14:40:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLwkT33tSz3k7S; Wed, 17 May 2023 14:40:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684334417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i5Sk7TkYzLrEUyv97kLH2AMrRaHmaN7JVKBxIGqI8zM=; b=GLtcktteTJiemRa4A6XKj6ISCcO+8mLs9mo+S0BzqFbkCsX3hd8L+9FvZGy/8KvMgYuaTi LtMFlRUJk7cwYSfsEY8hknx+Yj5VXJIvrry82ijx0BChCft0IxoYmD28Dg5HzinA4XBPqP n2e3pESq/kZsTI++yyE8y++KKZGVAlChfiUpRLdOY1Xdv+88HNjOGompRf5Q0xumFhYLYG OB4u13tEyV7RIUB4q5sO5pX80MTkVlhicm1XlemBeZcTFkyZq1U/TfRyy87l0GILlRjgHn 0MKhTD1DJVqFZ0N6/lNKSIlJbhlU2SSl6Sgo/5qkXY+a2MapJBffRSt4RZ372A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684334417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i5Sk7TkYzLrEUyv97kLH2AMrRaHmaN7JVKBxIGqI8zM=; b=sd755L1AnYxtR8/6tiG97AX1MHiLV+kP4REEO/tFChCCQmUG5hCZ66XBUPnjhzIwwk2wUt NO15JXMLHrwAqiTay710zwinGf4hoQXWL1qyAtRg6Fa6ljNYXggPZouhrexCb7CmeYXXgG pq84FVKIWPJeyD3nlDxyU/SjZRrqycftnkax0xC46Dfl9WagnUz/YbrPis5o3zW88O6/Ha 8NkviPHLhhde3y+USCJi7RsfTOYQ1c7c79gOVJXKCjmPnCC1VQjEyGQuQm87BPIfaFcxH5 J/s5Ct37wPmkhNsdpvpMoF32sqDDOkxUkLqkgYyPHZa0NDqXWyPEjxMGAQEZbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684334417; a=rsa-sha256; cv=none; b=NGvXUtHmheR/QjFudIij4fSgfj+DEHs2KAk/6uPoUO+izV9JKPsiKLfEsifN8YbZd8O6WY jqa2th5zTEnbe8NqpPw8IeRllJ53bFAAxwOB0xXJqh60p1jGKHBs0rfl8VDzzn0BL4Ha1b kkMNbYi3q5DLRzYH+651peVSflbYR49/aVVlUicG85TwQ2unhRjzwkH7hrPAwL8rxdTvwO mYZ+HsVloxwEk3bAqryRYbajw9sjRUffjbdQG3zyP5lJLZOmNFyUioLacUmWoPwW87n6Bv lNLbkYpSeJ2dm1LolwCNMLLs+/5qYjh427J66pm2Ck33iCa3Yi+UEAcTwjSN1A== 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 4QLwkT1YTXz16yC; Wed, 17 May 2023 14:40:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HEeHxm009548; Wed, 17 May 2023 14:40:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HEeH9h009545; Wed, 17 May 2023 14:40:17 GMT (envelope-from git) Date: Wed, 17 May 2023 14:40:17 GMT Message-Id: <202305171440.34HEeH9h009545@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: abae7d6e2dea - stable/13 - prison_check_nfsd: Add check for enforce_statfs != 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: abae7d6e2dea79681ce004937b4cf415463975be Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=abae7d6e2dea79681ce004937b4cf415463975be commit abae7d6e2dea79681ce004937b4cf415463975be Author: Rick Macklem AuthorDate: 2023-02-02 00:02:20 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 14:39:24 +0000 prison_check_nfsd: Add check for enforce_statfs != 0 Since mountd(8) will not be able to do exports when running in a vnet prison if enforce_statfs is set to 0, add a check for this to prison_check_nfsd(). (cherry picked from commit 99187c3a44c2c3e168e462a30d45af075748195f) --- sys/kern/kern_jail.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 0a9d311eeafd..622b9f6c7cb9 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -3194,6 +3194,8 @@ prison_check(struct ucred *cred1, struct ucred *cred2) * - The root directory (pr_root) of the prison must be * a file system mount point, so the mountd can hang * export information on it. + * - The prison's enforce_statfs cannot be 0, so that + * mountd(8) can do exports. */ bool prison_check_nfsd(struct ucred *cred) @@ -3205,6 +3207,8 @@ prison_check_nfsd(struct ucred *cred) return (false); if ((cred->cr_prison->pr_root->v_vflag & VV_ROOT) == 0) return (false); + if (cred->cr_prison->pr_enforce_statfs == 0) + return (false); return (true); } From nobody Wed May 17 14:46:22 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLwsW16gpz4BD5r; Wed, 17 May 2023 14:46: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLwsW0cCqz3l4N; Wed, 17 May 2023 14:46:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684334783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QNkKLenGc1j23JHgH8tn1F+I2iyit59eR7OwUzIl7Qw=; b=C+d1TVApZuLmS1Oas6GbMinVOImlPVO03s2bI97WdXxG/3jz164WT8Kq+uRXUQfT74ibZy OejAlV/x1ALXHSYk07WGh2GRAN+wY7ycWfziKFFGfCL62GlIP91JRfNh0vA9QibczlZACJ IrQeQ2eRKS/U7OsqVbXUxEZDYmdigzb0wvlmnretJiCHmjo5W2eSwi/3s0uVU5LCbq3YMZ 05bSz+lSupiUjI3izEyQwDutK0g6SKfRDyA+nKy4+uWwbvQSRXVuoM94pzr5ZxuXuIJrnA eOQ/ri+KUoFzYDh+Ka7YvrkvKBXmd+iwOg54dT15O37527MR8qpgwBOKKSZCng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684334783; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QNkKLenGc1j23JHgH8tn1F+I2iyit59eR7OwUzIl7Qw=; b=JUzIs4NAFs+Du+WIKZ3rieObzBfV8GcVpIsB7qn/Dwg8S163ZHPMw+VUWVFPlQorvhm64X q1tigDQ/uM1ZwfTn0r38GSHIeOZp/gGzO7jKQ73cqvDSN+wjhR+NhxazwkaTlDZdIGl4Rx Xm4ZxxkE3gc2Srx0DhvmOMyw0s86aAI9pN056bGhZdVzT3DzN51N9YR0iTidJTFPw666fD FTAI7azfvfRQ2msetDfMJbQjtnI/lcZJOYAPP4z1K283eOwM7CQWtET5LpH2MDfm6mi+U7 6MsUfNxYtGJbvpgPCzFuRjQgPLhrn6A75RP+KRqgL+rHyauzoD21eujnbpV50g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684334783; a=rsa-sha256; cv=none; b=irPwxnatn3trQ6kTdlt++Pb9DhvLT/297DCQryGgkIOXm9gQTGpPEHOv+UMApFXI2DDX/7 KOwAObF4xf1VuT3qYmvRG49+5Lhqu/O3gLxrZT+/ikO9mJU/9UuuREjHYDmuPm64LMltxW 2IiiN3g8Zogx1cHMhcHix02Bp/BY487eCaCuTvYiVPTycWPV1r4HuLcgvjfwP7f8BUQskm KrmV++yzd45/4ezqq6a6lYJLl5g8p5zbLMzmEII6CqVxOYxnUSyy2b7fBO3tuZRp8iD01d sI52KzWKHBgFQNjoYhx6h7avojkh2QojqIDAu7igVQZ6uUNeVtD3mGNmQrbJcg== 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 4QLwsV6MnVz17DV; Wed, 17 May 2023 14:46:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HEkMuP017102; Wed, 17 May 2023 14:46:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HEkMRI017101; Wed, 17 May 2023 14:46:22 GMT (envelope-from git) Date: Wed, 17 May 2023 14:46:22 GMT Message-Id: <202305171446.34HEkMRI017101@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: 1d88734798c2 - stable/13 - krpc: Add macros so that rpc.tlsservd can run in vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 1d88734798c252a749764e9ee314f46ce9fd2b3f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=1d88734798c252a749764e9ee314f46ce9fd2b3f commit 1d88734798c252a749764e9ee314f46ce9fd2b3f Author: Rick Macklem AuthorDate: 2023-02-15 13:58:21 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 14:41:53 +0000 krpc: Add macros so that rpc.tlsservd can run in vnet prison Commit 7344856e3a6d added a lot of macros that will front end vnet macros so that nfsd(8) can run in vnet prison. This patch adds similar macros named KRPC_VNETxxx so that the rpc.tlsservd(8) daemon can run in a vnet prison, once the macros front end the vnet ones. For now, they are null macros. (cherry picked from commit 6444662a563ba714fed8563645764262c6f5e90f) --- sys/rpc/rpcsec_tls.h | 18 ++++++++++ sys/rpc/rpcsec_tls/rpctls_impl.c | 77 ++++++++++++++++++++++++++-------------- 2 files changed, 68 insertions(+), 27 deletions(-) diff --git a/sys/rpc/rpcsec_tls.h b/sys/rpc/rpcsec_tls.h index 49a7e71b7514..5781424a6180 100644 --- a/sys/rpc/rpcsec_tls.h +++ b/sys/rpc/rpcsec_tls.h @@ -72,6 +72,9 @@ enum clnt_stat rpctls_srv_disconnect(uint64_t sec, uint64_t usec, /* Initialization function for rpcsec_tls. */ int rpctls_init(void); +/* Cleanup function for rpcsec_tls. */ +void rpctls_cleanup(void); + /* Get TLS information function. */ bool rpctls_getinfo(u_int *maxlen, bool rpctlscd_run, bool rpctlssd_run); @@ -82,6 +85,21 @@ bool rpctls_getinfo(u_int *maxlen, bool rpctlscd_run, /* ssl refno value to indicate TLS handshake being done. */ #define RPCTLS_REFNO_HANDSHAKE 0xFFFFFFFFFFFFFFFFULL +/* Macros for VIMAGE. */ +/* Define the KRPC_VNET macros similar to !VIMAGE. */ +#define KRPC_VNET_NAME(n) n +#define KRPC_VNET_DECLARE(t, n) extern t n +#define KRPC_VNET_DEFINE(t, n) t n +#define KRPC_VNET_DEFINE_STATIC(t, n) static t n +#define KRPC_VNET(n) (n) + +#define CTLFLAG_KRPC_VNET 0 + +#define KRPC_CURVNET_SET(n) +#define KRPC_CURVNET_SET_QUIET(n) +#define KRPC_CURVNET_RESTORE() +#define KRPC_TD_TO_VNET(n) NULL + #endif /* _KERNEL */ #endif /* _RPC_RPCSEC_TLS_H_ */ diff --git a/sys/rpc/rpcsec_tls/rpctls_impl.c b/sys/rpc/rpcsec_tls/rpctls_impl.c index c495213b08e2..3b3452a8b624 100644 --- a/sys/rpc/rpcsec_tls/rpctls_impl.c +++ b/sys/rpc/rpcsec_tls/rpctls_impl.c @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -51,6 +52,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include #include @@ -74,12 +77,14 @@ static CLIENT *rpctls_connect_handle; static struct mtx rpctls_connect_lock; static struct socket *rpctls_connect_so = NULL; static CLIENT *rpctls_connect_cl = NULL; -static CLIENT *rpctls_server_handle; static struct mtx rpctls_server_lock; -static struct socket *rpctls_server_so = NULL; -static SVCXPRT *rpctls_server_xprt = NULL; static struct opaque_auth rpctls_null_verf; +KRPC_VNET_DEFINE_STATIC(CLIENT *, rpctls_server_handle) = NULL; +KRPC_VNET_DEFINE_STATIC(struct socket *, rpctls_server_so) = NULL; +KRPC_VNET_DEFINE_STATIC(SVCXPRT *, rpctls_server_xprt) = NULL; +KRPC_VNET_DEFINE_STATIC(bool, rpctls_server_busy) = false; + static CLIENT *rpctls_connect_client(void); static CLIENT *rpctls_server_client(void); static enum clnt_stat rpctls_server(SVCXPRT *xprt, struct socket *so, @@ -127,9 +132,13 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap) if (error != 0) return (error); + KRPC_CURVNET_SET(KRPC_TD_TO_VNET(td)); switch (uap->op) { case RPCTLS_SYSC_CLSETPATH: - error = copyinstr(uap->path, path, sizeof(path), NULL); + if (jailed(curthread->td_ucred)) + error = EPERM; + if (error == 0) + error = copyinstr(uap->path, path, sizeof(path), NULL); if (error == 0) { error = ENXIO; #ifdef KERN_TLS @@ -185,7 +194,11 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap) } break; case RPCTLS_SYSC_SRVSETPATH: - error = copyinstr(uap->path, path, sizeof(path), NULL); + if (jailed(curthread->td_ucred) && + !prison_check_nfsd(curthread->td_ucred)) + error = EPERM; + if (error == 0) + error = copyinstr(uap->path, path, sizeof(path), NULL); if (error == 0) { error = ENXIO; #ifdef KERN_TLS @@ -228,8 +241,8 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap) } mtx_lock(&rpctls_server_lock); - oldcl = rpctls_server_handle; - rpctls_server_handle = cl; + oldcl = KRPC_VNET(rpctls_server_handle); + KRPC_VNET(rpctls_server_handle) = cl; mtx_unlock(&rpctls_server_lock); if (oldcl != NULL) { @@ -250,8 +263,8 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap) break; case RPCTLS_SYSC_SRVSHUTDOWN: mtx_lock(&rpctls_server_lock); - oldcl = rpctls_server_handle; - rpctls_server_handle = NULL; + oldcl = KRPC_VNET(rpctls_server_handle); + KRPC_VNET(rpctls_server_handle) = NULL; mtx_unlock(&rpctls_server_lock); if (oldcl != NULL) { @@ -288,10 +301,10 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap) break; case RPCTLS_SYSC_SRVSOCKET: mtx_lock(&rpctls_server_lock); - so = rpctls_server_so; - rpctls_server_so = NULL; - xprt = rpctls_server_xprt; - rpctls_server_xprt = NULL; + so = KRPC_VNET(rpctls_server_so); + KRPC_VNET(rpctls_server_so) = NULL; + xprt = KRPC_VNET(rpctls_server_xprt); + KRPC_VNET(rpctls_server_xprt) = NULL; mtx_unlock(&rpctls_server_lock); if (so != NULL) { error = falloc(td, &fp, &fd, 0); @@ -316,6 +329,7 @@ sys_rpctls_syscall(struct thread *td, struct rpctls_syscall_args *uap) default: error = EINVAL; } + KRPC_CURVNET_RESTORE(); return (error); } @@ -346,11 +360,13 @@ rpctls_server_client(void) { CLIENT *cl; + KRPC_CURVNET_SET_QUIET(KRPC_TD_TO_VNET(curthread)); mtx_lock(&rpctls_server_lock); - cl = rpctls_server_handle; + cl = KRPC_VNET(rpctls_server_handle); if (cl != NULL) CLNT_ACQUIRE(cl); mtx_unlock(&rpctls_server_lock); + KRPC_CURVNET_RESTORE(); return (cl); } @@ -556,20 +572,22 @@ rpctls_server(SVCXPRT *xprt, struct socket *so, uint32_t *flags, uint64_t *sslp, gid_t *gidp; uint32_t *gidv; int i; - static bool rpctls_server_busy = false; + KRPC_CURVNET_SET_QUIET(KRPC_TD_TO_VNET(curthread)); cl = rpctls_server_client(); - if (cl == NULL) + if (cl == NULL) { + KRPC_CURVNET_RESTORE(); return (RPC_SYSTEMERROR); + } /* Serialize the server upcalls. */ mtx_lock(&rpctls_server_lock); - while (rpctls_server_busy) - msleep(&rpctls_server_busy, &rpctls_server_lock, PVFS, - "rtlssn", 0); - rpctls_server_busy = true; - rpctls_server_so = so; - rpctls_server_xprt = xprt; + while (KRPC_VNET(rpctls_server_busy)) + msleep(&KRPC_VNET(rpctls_server_busy), + &rpctls_server_lock, PVFS, "rtlssn", 0); + KRPC_VNET(rpctls_server_busy) = true; + KRPC_VNET(rpctls_server_so) = so; + KRPC_VNET(rpctls_server_xprt) = xprt; mtx_unlock(&rpctls_server_lock); /* Do the server upcall. */ @@ -603,11 +621,12 @@ rpctls_server(SVCXPRT *xprt, struct socket *so, uint32_t *flags, uint64_t *sslp, /* Once the upcall is done, the daemon is done with the fp and so. */ mtx_lock(&rpctls_server_lock); - rpctls_server_so = NULL; - rpctls_server_xprt = NULL; - rpctls_server_busy = false; - wakeup(&rpctls_server_busy); + KRPC_VNET(rpctls_server_so) = NULL; + KRPC_VNET(rpctls_server_xprt) = NULL; + KRPC_VNET(rpctls_server_busy) = false; + wakeup(&KRPC_VNET(rpctls_server_busy)); mtx_unlock(&rpctls_server_lock); + KRPC_CURVNET_RESTORE(); return (stat); } @@ -725,8 +744,12 @@ rpctls_getinfo(u_int *maxlenp, bool rpctlscd_run, bool rpctlssd_run) return (false); if (rpctlscd_run && rpctls_connect_handle == NULL) return (false); - if (rpctlssd_run && rpctls_server_handle == NULL) + KRPC_CURVNET_SET_QUIET(KRPC_TD_TO_VNET(curthread)); + if (rpctlssd_run && KRPC_VNET(rpctls_server_handle) == NULL) { + KRPC_CURVNET_RESTORE(); return (false); + } + KRPC_CURVNET_RESTORE(); *maxlenp = maxlen; return (enable); } From nobody Wed May 17 14:50:41 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QLwyT2zs0z4BDCD; Wed, 17 May 2023 14:50:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QLwyT2hTXz3lc6; Wed, 17 May 2023 14:50:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684335041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cy+l3GrNf8XhTvCCe9ZNbQM6hvT7gkdXFnZ8APtFK00=; b=teEgFfeqGPI09zaXbwivfdE/MSZhmwptHWVxesuMivQLtSr9Nq+HGfslFR75VmoeE2Bp0+ hfiEdWtDON6dA973DoUzHA4rgxN3fG8ZWBQRD+lTRqb2uhockW+ufzn1q0pJmXX1DqMlFg ut1cCxyOXmv8xkBU2cCRCEj0v0PV1RDaiLM/8bD+ZXV2y9m4B0mRKAdXNdXhPO5pbL1vf5 cge+1bO0HTxgz+9DH7vIqXmlUVe0ZDvs8KIJR1QKT1KHtm8HrVNAb2XEY/Hh6LZ1Gc0nXC 95FSYpPSuDxB14ydxIMpPWwlbLa7tjoDE9aH63GxcV9T349VeLV6PNsIHWkZ9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684335041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cy+l3GrNf8XhTvCCe9ZNbQM6hvT7gkdXFnZ8APtFK00=; b=nLlX4UPF0xGzWXrphGI+NtU5DgjJLrGL6Y550Rrddovj3snoFAyO+JIdkuP+uxk3ryNZ4G iI3WMkUNm9M/azCSp56xEnsbqFQcm06uxjRXEfeAx9MGtRUVuwmS3W1+MrMqeOnCSZW0sX t5ZEwObQr5Cacd4EwLjnLzVKtDdw3E9mwJW/KSgasegRwTb7+ljC48Hovg56mRdSkouc+B nrsDH37pfl74yumhxi2hcETI/iYS5dpbIpLMyjI+CGdGq5mR2jyvVGa/9gB6fa6aiTtko8 m2BXm0cPuZi7bvE6A46+sug6VYyEu6UcQTP2wRUi+Xk/ZcH9WJSZQnNBvg+/SQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684335041; a=rsa-sha256; cv=none; b=Vn4dPdc45ccS6eO4AWEbw6WC5uo0jSYKE7oCfnkcteS2DPL3VvkmN6RscRvFFDwOMHdiOL LzWaS03XdKo8Kg4ITMsyVVf5bIjnc/NP6J5xAS7eFwZonNw4b4Wp6fuFC98l0905LxDeUp +T+JezDKBpXhAD60DIKkjS7DJ8d/94iBGFTUzbQTNCu9hfeQDOYm6UZ5DBsX5kiKgwYgAN ORVLz8GY0CFco6W25t9UOrX4ONTMNMrDQHI4nTVFo7/lsXCcsJGskH23mIl2iAX1RYh5tE 58lIm0IRzba14+OS8TksBznAiHcs+9mTSul3dshnxJkcKOKku3EBwlzLdL7nkA== 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 4QLwyT1mfrz17G9; Wed, 17 May 2023 14:50:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HEofeH026148; Wed, 17 May 2023 14:50:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HEofQh026147; Wed, 17 May 2023 14:50:41 GMT (envelope-from git) Date: Wed, 17 May 2023 14:50:41 GMT Message-Id: <202305171450.34HEofQh026147@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: 104561df45cc - stable/13 - kgssapi: Add macros so that gssd(8) can run in vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 104561df45cc67611c8b4621b0f31780fd0b552f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=104561df45cc67611c8b4621b0f31780fd0b552f commit 104561df45cc67611c8b4621b0f31780fd0b552f Author: Rick Macklem AuthorDate: 2023-02-15 23:18:46 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 14:48:18 +0000 kgssapi: Add macros so that gssd(8) can run in vnet prison Commit 7344856e3a6d added a lot of macros that will front end vnet macros so that nfsd(8) can run in vnet prison. This patch adds similar macros named KGSS_VNETxxx so that the gssd(8) daemon can run in a vnet prison, once the macros front end the vnet ones. For now, they are null macros. This is the last commit that adds macros. The next step is to change the macros to front end the vnet ones. (cherry picked from commit 2894c8c96b9b94f35aaa27ee5ef3ac11c276fe3f) --- sys/kgssapi/gss_delete_sec_context.c | 7 ++- sys/kgssapi/gss_impl.c | 23 ++++++--- sys/kgssapi/gss_release_cred.c | 7 ++- sys/kgssapi/gss_release_name.c | 7 ++- sys/kgssapi/gssapi_impl.h | 16 ++++++- sys/rpc/rpcsec_gss/svc_rpcsec_gss.c | 91 ++++++++++++++++++++++-------------- 6 files changed, 106 insertions(+), 45 deletions(-) diff --git a/sys/kgssapi/gss_delete_sec_context.c b/sys/kgssapi/gss_delete_sec_context.c index 4d520feb71b9..82f9e6b8f370 100644 --- a/sys/kgssapi/gss_delete_sec_context.c +++ b/sys/kgssapi/gss_delete_sec_context.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -54,8 +55,12 @@ gss_delete_sec_context(OM_uint32 *minor_status, gss_ctx_id_t *context_handle, *minor_status = 0; - if (!kgss_gssd_handle) + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); + if (!KGSS_VNET(kgss_gssd_handle)) { + KGSS_CURVNET_RESTORE(); return (GSS_S_FAILURE); + } + KGSS_CURVNET_RESTORE(); if (*context_handle) { ctx = *context_handle; diff --git a/sys/kgssapi/gss_impl.c b/sys/kgssapi/gss_impl.c index 9b1277298e32..aa882d9f333b 100644 --- a/sys/kgssapi/gss_impl.c +++ b/sys/kgssapi/gss_impl.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -38,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -62,9 +64,10 @@ static struct syscall_helper_data gssd_syscalls[] = { }; struct kgss_mech_list kgss_mechs; -CLIENT *kgss_gssd_handle; struct mtx kgss_gssd_lock; +KGSS_VNET_DEFINE(CLIENT *, kgss_gssd_handle) = NULL; + static int kgss_load(void) { @@ -134,10 +137,12 @@ sys_gssd_syscall(struct thread *td, struct gssd_syscall_args *uap) } else cl = NULL; + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); mtx_lock(&kgss_gssd_lock); - oldcl = kgss_gssd_handle; - kgss_gssd_handle = cl; + oldcl = KGSS_VNET(kgss_gssd_handle); + KGSS_VNET(kgss_gssd_handle) = cl; mtx_unlock(&kgss_gssd_lock); + KGSS_CURVNET_RESTORE(); if (oldcl != NULL) { CLNT_CLOSE(oldcl); @@ -249,12 +254,16 @@ kgss_transfer_context(gss_ctx_id_t ctx) enum clnt_stat stat; OM_uint32 maj_stat; - if (!kgss_gssd_handle) + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); + if (!KGSS_VNET(kgss_gssd_handle)) { + KGSS_CURVNET_RESTORE(); return (GSS_S_FAILURE); + } args.ctx = ctx->handle; bzero(&res, sizeof(res)); - stat = gssd_export_sec_context_1(&args, &res, kgss_gssd_handle); + stat = gssd_export_sec_context_1(&args, &res, KGSS_VNET(kgss_gssd_handle)); + KGSS_CURVNET_RESTORE(); if (stat != RPC_SUCCESS) { return (GSS_S_FAILURE); } @@ -288,11 +297,13 @@ kgss_gssd_client(void) { CLIENT *cl; + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); mtx_lock(&kgss_gssd_lock); - cl = kgss_gssd_handle; + cl = KGSS_VNET(kgss_gssd_handle); if (cl != NULL) CLNT_ACQUIRE(cl); mtx_unlock(&kgss_gssd_lock); + KGSS_CURVNET_RESTORE(); return (cl); } diff --git a/sys/kgssapi/gss_release_cred.c b/sys/kgssapi/gss_release_cred.c index 70dd3a058ad3..dfd4322a1a33 100644 --- a/sys/kgssapi/gss_release_cred.c +++ b/sys/kgssapi/gss_release_cred.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -52,8 +53,12 @@ gss_release_cred(OM_uint32 *minor_status, gss_cred_id_t *cred_handle) *minor_status = 0; - if (!kgss_gssd_handle) + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); + if (!KGSS_VNET(kgss_gssd_handle)) { + KGSS_CURVNET_RESTORE(); return (GSS_S_FAILURE); + } + KGSS_CURVNET_RESTORE(); if (*cred_handle) { args.cred = (*cred_handle)->handle; diff --git a/sys/kgssapi/gss_release_name.c b/sys/kgssapi/gss_release_name.c index 16050226cc8c..4f7e8db5ae9f 100644 --- a/sys/kgssapi/gss_release_name.c +++ b/sys/kgssapi/gss_release_name.c @@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include #include @@ -53,8 +54,12 @@ gss_release_name(OM_uint32 *minor_status, gss_name_t *input_name) *minor_status = 0; - if (!kgss_gssd_handle) + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); + if (!KGSS_VNET(kgss_gssd_handle)) { + KGSS_CURVNET_RESTORE(); return (GSS_S_FAILURE); + } + KGSS_CURVNET_RESTORE(); if (*input_name) { name = *input_name; diff --git a/sys/kgssapi/gssapi_impl.h b/sys/kgssapi/gssapi_impl.h index 1b8fb2ff6c30..72f379de4ebf 100644 --- a/sys/kgssapi/gssapi_impl.h +++ b/sys/kgssapi/gssapi_impl.h @@ -54,10 +54,24 @@ struct kgss_mech { }; LIST_HEAD(kgss_mech_list, kgss_mech); -extern CLIENT *kgss_gssd_handle; +/* Macros for VIMAGE. */ +/* Define the KGSS_VNET macros similar to !VIMAGE. */ +#define KGSS_VNET_NAME(n) n +#define KGSS_VNET_DECLARE(t, n) extern t n +#define KGSS_VNET_DEFINE(t, n) t n +#define KGSS_VNET_DEFINE_STATIC(t, n) static t n +#define KGSS_VNET(n) (n) + +#define KGSS_CURVNET_SET(n) +#define KGSS_CURVNET_SET_QUIET(n) +#define KGSS_CURVNET_RESTORE() +#define KGSS_TD_TO_VNET(n) NULL + extern struct mtx kgss_gssd_lock; extern struct kgss_mech_list kgss_mechs; +KGSS_VNET_DECLARE(CLIENT *, kgss_gssd_handle); + CLIENT *kgss_gssd_client(void); int kgss_oid_equal(const gss_OID oid1, const gss_OID oid2); extern void kgss_install_mech(gss_OID mech_type, const char *name, diff --git a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c index c9a09438d907..693359eff6d6 100644 --- a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c +++ b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c @@ -79,6 +79,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include @@ -102,8 +104,9 @@ struct svc_rpc_gss_callback { SLIST_ENTRY(svc_rpc_gss_callback) cb_link; rpc_gss_callback_t cb_callback; }; -static SLIST_HEAD(svc_rpc_gss_callback_list, svc_rpc_gss_callback) - svc_rpc_gss_callbacks = SLIST_HEAD_INITIALIZER(svc_rpc_gss_callbacks); +SLIST_HEAD(svc_rpc_gss_callback_list, svc_rpc_gss_callback); +KGSS_VNET_DEFINE_STATIC(struct svc_rpc_gss_callback_list, + svc_rpc_gss_callbacks) = SLIST_HEAD_INITIALIZER(svc_rpc_gss_callbacks); struct svc_rpc_gss_svc_name { SLIST_ENTRY(svc_rpc_gss_svc_name) sn_link; @@ -114,8 +117,9 @@ struct svc_rpc_gss_svc_name { u_int sn_program; u_int sn_version; }; -static SLIST_HEAD(svc_rpc_gss_svc_name_list, svc_rpc_gss_svc_name) - svc_rpc_gss_svc_names = SLIST_HEAD_INITIALIZER(svc_rpc_gss_svc_names); +SLIST_HEAD(svc_rpc_gss_svc_name_list, svc_rpc_gss_svc_name); +KGSS_VNET_DEFINE_STATIC(struct svc_rpc_gss_svc_name_list, + svc_rpc_gss_svc_names) = SLIST_HEAD_INITIALIZER(svc_rpc_gss_svc_names); enum svc_rpc_gss_client_state { CLIENT_NEW, /* still authenticating */ @@ -197,23 +201,28 @@ SYSCTL_UINT(_kern_rpc_gss, OID_AUTO, client_count, CTLFLAG_RD, &svc_rpc_gss_client_count, 0, "Number of rpc-gss clients"); -struct svc_rpc_gss_client_list *svc_rpc_gss_client_hash; -struct svc_rpc_gss_client_list svc_rpc_gss_clients; -static uint32_t svc_rpc_gss_next_clientid = 1; +KGSS_VNET_DEFINE(struct svc_rpc_gss_client_list *, svc_rpc_gss_client_hash); +KGSS_VNET_DEFINE(struct svc_rpc_gss_client_list, svc_rpc_gss_clients); +KGSS_VNET_DEFINE_STATIC(uint32_t, svc_rpc_gss_next_clientid) = 1; static void svc_rpc_gss_init(void *arg) { int i; - svc_rpc_gss_client_hash = mem_alloc(sizeof(struct svc_rpc_gss_client_list) * svc_rpc_gss_client_hash_size); + KGSS_VNET(svc_rpc_gss_client_hash) = mem_alloc( + sizeof(struct svc_rpc_gss_client_list) * + svc_rpc_gss_client_hash_size); for (i = 0; i < svc_rpc_gss_client_hash_size; i++) - TAILQ_INIT(&svc_rpc_gss_client_hash[i]); - TAILQ_INIT(&svc_rpc_gss_clients); - svc_auth_reg(RPCSEC_GSS, svc_rpc_gss, rpc_gss_svc_getcred); - sx_init(&svc_rpc_gss_lock, "gsslock"); + TAILQ_INIT(&KGSS_VNET(svc_rpc_gss_client_hash)[i]); + TAILQ_INIT(&KGSS_VNET(svc_rpc_gss_clients)); + if (IS_DEFAULT_VNET(curvnet)) { + svc_auth_reg(RPCSEC_GSS, svc_rpc_gss, rpc_gss_svc_getcred); + sx_init(&svc_rpc_gss_lock, "gsslock"); + } } -SYSINIT(svc_rpc_gss_init, SI_SUB_KMEM, SI_ORDER_ANY, svc_rpc_gss_init, NULL); +SYSINIT(svc_rpc_gss_init, SI_SUB_VNET_DONE, SI_ORDER_ANY, + svc_rpc_gss_init, NULL); bool_t rpc_gss_set_callback(rpc_gss_callback_t *cb) @@ -227,7 +236,7 @@ rpc_gss_set_callback(rpc_gss_callback_t *cb) } scb->cb_callback = *cb; sx_xlock(&svc_rpc_gss_lock); - SLIST_INSERT_HEAD(&svc_rpc_gss_callbacks, scb, cb_link); + SLIST_INSERT_HEAD(&KGSS_VNET(svc_rpc_gss_callbacks), scb, cb_link); sx_xunlock(&svc_rpc_gss_lock); return (TRUE); @@ -239,11 +248,11 @@ rpc_gss_clear_callback(rpc_gss_callback_t *cb) struct svc_rpc_gss_callback *scb; sx_xlock(&svc_rpc_gss_lock); - SLIST_FOREACH(scb, &svc_rpc_gss_callbacks, cb_link) { + SLIST_FOREACH(scb, &KGSS_VNET(svc_rpc_gss_callbacks), cb_link) { if (scb->cb_callback.program == cb->program && scb->cb_callback.version == cb->version && scb->cb_callback.callback == cb->callback) { - SLIST_REMOVE(&svc_rpc_gss_callbacks, scb, + SLIST_REMOVE(&KGSS_VNET(svc_rpc_gss_callbacks), scb, svc_rpc_gss_callback, cb_link); sx_xunlock(&svc_rpc_gss_lock); mem_free(scb, sizeof(*scb)); @@ -314,7 +323,7 @@ rpc_gss_set_svc_name(const char *principal, const char *mechanism, } sx_xlock(&svc_rpc_gss_lock); - SLIST_INSERT_HEAD(&svc_rpc_gss_svc_names, sname, sn_link); + SLIST_INSERT_HEAD(&KGSS_VNET(svc_rpc_gss_svc_names), sname, sn_link); sx_xunlock(&svc_rpc_gss_lock); return (TRUE); @@ -327,10 +336,10 @@ rpc_gss_clear_svc_name(u_int program, u_int version) struct svc_rpc_gss_svc_name *sname; sx_xlock(&svc_rpc_gss_lock); - SLIST_FOREACH(sname, &svc_rpc_gss_svc_names, sn_link) { + SLIST_FOREACH(sname, &KGSS_VNET(svc_rpc_gss_svc_names), sn_link) { if (sname->sn_program == program && sname->sn_version == version) { - SLIST_REMOVE(&svc_rpc_gss_svc_names, sname, + SLIST_REMOVE(&KGSS_VNET(svc_rpc_gss_svc_names), sname, svc_rpc_gss_svc_name, sn_link); sx_xunlock(&svc_rpc_gss_lock); gss_release_cred(&min_stat, &sname->sn_cred); @@ -478,7 +487,7 @@ rpc_gss_svc_getcred(struct svc_req *req, struct ucred **crp, int *flavorp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = uc->uid; cr->cr_rgid = cr->cr_svgid = uc->gid; crsetgroups(cr, uc->gidlen, uc->gidlist); - cr->cr_prison = &prison0; + cr->cr_prison = curthread->td_ucred->cr_prison; prison_hold(cr->cr_prison); *crp = crhold(cr); @@ -543,7 +552,8 @@ svc_rpc_gss_find_client(struct svc_rpc_gss_clientid *id) if (id->ci_hostid != hostid || id->ci_boottime != boottime.tv_sec) return (NULL); - list = &svc_rpc_gss_client_hash[id->ci_id % svc_rpc_gss_client_hash_size]; + list = &KGSS_VNET(svc_rpc_gss_client_hash) + [id->ci_id % svc_rpc_gss_client_hash_size]; sx_xlock(&svc_rpc_gss_lock); TAILQ_FOREACH(client, list, cl_link) { if (client->cl_id.ci_id == id->ci_id) { @@ -551,9 +561,10 @@ svc_rpc_gss_find_client(struct svc_rpc_gss_clientid *id) * Move this client to the front of the LRU * list. */ - TAILQ_REMOVE(&svc_rpc_gss_clients, client, cl_alllink); - TAILQ_INSERT_HEAD(&svc_rpc_gss_clients, client, + TAILQ_REMOVE(&KGSS_VNET(svc_rpc_gss_clients), client, cl_alllink); + TAILQ_INSERT_HEAD(&KGSS_VNET(svc_rpc_gss_clients), + client, cl_alllink); refcount_acquire(&client->cl_refs); break; } @@ -586,7 +597,7 @@ svc_rpc_gss_create_client(void) client->cl_id.ci_hostid = hostid; getboottime(&boottime); client->cl_id.ci_boottime = boottime.tv_sec; - client->cl_id.ci_id = svc_rpc_gss_next_clientid++; + client->cl_id.ci_id = KGSS_VNET(svc_rpc_gss_next_clientid)++; /* * Start the client off with a short expiration time. We will @@ -596,10 +607,11 @@ svc_rpc_gss_create_client(void) client->cl_locked = FALSE; client->cl_expiration = time_uptime + 5*60; - list = &svc_rpc_gss_client_hash[client->cl_id.ci_id % svc_rpc_gss_client_hash_size]; + list = &KGSS_VNET(svc_rpc_gss_client_hash) + [client->cl_id.ci_id % svc_rpc_gss_client_hash_size]; sx_xlock(&svc_rpc_gss_lock); TAILQ_INSERT_HEAD(list, client, cl_link); - TAILQ_INSERT_HEAD(&svc_rpc_gss_clients, client, cl_alllink); + TAILQ_INSERT_HEAD(&KGSS_VNET(svc_rpc_gss_clients), client, cl_alllink); svc_rpc_gss_client_count++; sx_xunlock(&svc_rpc_gss_lock); return (client); @@ -653,9 +665,10 @@ svc_rpc_gss_forget_client_locked(struct svc_rpc_gss_client *client) struct svc_rpc_gss_client_list *list; sx_assert(&svc_rpc_gss_lock, SX_XLOCKED); - list = &svc_rpc_gss_client_hash[client->cl_id.ci_id % svc_rpc_gss_client_hash_size]; + list = &KGSS_VNET(svc_rpc_gss_client_hash) + [client->cl_id.ci_id % svc_rpc_gss_client_hash_size]; TAILQ_REMOVE(list, client, cl_link); - TAILQ_REMOVE(&svc_rpc_gss_clients, client, cl_alllink); + TAILQ_REMOVE(&KGSS_VNET(svc_rpc_gss_clients), client, cl_alllink); svc_rpc_gss_client_count--; } @@ -668,7 +681,8 @@ svc_rpc_gss_forget_client(struct svc_rpc_gss_client *client) struct svc_rpc_gss_client_list *list; struct svc_rpc_gss_client *tclient; - list = &svc_rpc_gss_client_hash[client->cl_id.ci_id % svc_rpc_gss_client_hash_size]; + list = &KGSS_VNET(svc_rpc_gss_client_hash) + [client->cl_id.ci_id % svc_rpc_gss_client_hash_size]; sx_xlock(&svc_rpc_gss_lock); TAILQ_FOREACH(tclient, list, cl_link) { /* @@ -699,17 +713,18 @@ svc_rpc_gss_timeout_clients(void) * svc_rpc_gss_clients in LRU order. */ sx_xlock(&svc_rpc_gss_lock); - client = TAILQ_LAST(&svc_rpc_gss_clients, svc_rpc_gss_client_list); + client = TAILQ_LAST(&KGSS_VNET(svc_rpc_gss_clients), + svc_rpc_gss_client_list); while (svc_rpc_gss_client_count > svc_rpc_gss_client_max && client != NULL) { svc_rpc_gss_forget_client_locked(client); sx_xunlock(&svc_rpc_gss_lock); svc_rpc_gss_release_client(client); sx_xlock(&svc_rpc_gss_lock); - client = TAILQ_LAST(&svc_rpc_gss_clients, + client = TAILQ_LAST(&KGSS_VNET(svc_rpc_gss_clients), svc_rpc_gss_client_list); } again: - TAILQ_FOREACH(client, &svc_rpc_gss_clients, cl_alllink) { + TAILQ_FOREACH(client, &KGSS_VNET(svc_rpc_gss_clients), cl_alllink) { if (client->cl_state == CLIENT_STALE || now > client->cl_expiration) { svc_rpc_gss_forget_client_locked(client); @@ -878,7 +893,8 @@ svc_rpc_gss_accept_sec_context(struct svc_rpc_gss_client *client, */ sx_xlock(&svc_rpc_gss_lock); if (!client->cl_sname) { - SLIST_FOREACH(sname, &svc_rpc_gss_svc_names, sn_link) { + SLIST_FOREACH(sname, &KGSS_VNET(svc_rpc_gss_svc_names), + sn_link) { if (sname->sn_program == rqst->rq_prog && sname->sn_version == rqst->rq_vers) { retry: @@ -1132,7 +1148,7 @@ svc_rpc_gss_callback(struct svc_rpc_gss_client *client, struct svc_req *rqst) * See if we have a callback for this guy. */ result = TRUE; - SLIST_FOREACH(scb, &svc_rpc_gss_callbacks, cb_link) { + SLIST_FOREACH(scb, &KGSS_VNET(svc_rpc_gss_callbacks), cb_link) { if (scb->cb_callback.program == rqst->rq_prog && scb->cb_callback.version == rqst->rq_vers) { /* @@ -1268,6 +1284,7 @@ svc_rpc_gss(struct svc_req *rqst, struct rpc_msg *msg) int call_stat; enum auth_stat result; + KGSS_CURVNET_SET_QUIET(KGSS_TD_TO_VNET(curthread)); rpc_gss_log_debug("in svc_rpc_gss()"); /* Garbage collect old clients. */ @@ -1277,8 +1294,10 @@ svc_rpc_gss(struct svc_req *rqst, struct rpc_msg *msg) rqst->rq_verf = _null_auth; /* Deserialize client credentials. */ - if (rqst->rq_cred.oa_length <= 0) + if (rqst->rq_cred.oa_length <= 0) { + KGSS_CURVNET_RESTORE(); return (AUTH_BADCRED); + } memset(&gc, 0, sizeof(gc)); @@ -1287,6 +1306,7 @@ svc_rpc_gss(struct svc_req *rqst, struct rpc_msg *msg) if (!xdr_rpc_gss_cred(&xdrs, &gc)) { XDR_DESTROY(&xdrs); + KGSS_CURVNET_RESTORE(); return (AUTH_BADCRED); } XDR_DESTROY(&xdrs); @@ -1522,6 +1542,7 @@ out: svc_rpc_gss_release_client(client); xdr_free((xdrproc_t) xdr_rpc_gss_cred, (char *) &gc); + KGSS_CURVNET_RESTORE(); return (result); } From nobody Wed May 17 22:08:02 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QM6g64zcVz4Bf7v; Wed, 17 May 2023 22:08: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QM6g64VZKz3HVG; Wed, 17 May 2023 22:08:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684361282; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/AzhC8Jk8CnU+xQsOVpspaHVkjmtlLGzA/ha3LFQw7Y=; b=xd8lxAKwRWupn7mVPW7ImD/nNm/ZL6RGm7b8+EjESc5NqCwYYHRDxvwL9zV8T/CKs/ge7T G764oJ5C798mR9Q65er2NtgayZViX0cmi5pvy4brgRrmXB+pceudUqLSkXKvJT1XeCoUt7 eaQpAAfKln+/sU5W/4qlQOABJY+b+GTCLZK4vCv/DY7PyD+qvTz8vG3YrJWI1sfKQBVDXR WQxbC00qVksYMHbh5N146PRVAx91kMv5CKUcU2S+331jXKbnwyisWd9uPB5NPUer+M8l38 Y5WuoerF4Nx+3N6mk1UD1o3wbFLaN1syClPG6yuW12oebSJ76oZSx7Co/hNExw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684361282; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/AzhC8Jk8CnU+xQsOVpspaHVkjmtlLGzA/ha3LFQw7Y=; b=bMjeDuP0MJ8QXbj7Zx8/cE4EqgHgGgrL4KdV8QnIkGq3EzaPCEYaGgQtaVsGquM06DkZ0U +sD/96UVQuf88fD15GXBQMKj7yHtyOVboUltjW2KSX4DYK14eer3TGovP+mgwE4Q9pYwVp +duXyNRJQoPl5UUmYDCJb3qQoQlSwID4DwtfNfNsFZo0wsSVVqWKVUqfQxCuXA+2dLWX3k DG8T5qNd1tosGA+JxHoK3/RXb03siLyfSD36TnuXTrs2QZwRtCXftofN0XzN9CX86KT4We prNQ+X9jxb3YP2lacACOMr7ITC+mCV7EeQe4k9iEb95GZGAw3d7cuPjPykrg+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684361282; a=rsa-sha256; cv=none; b=BMVcUKCdgsXERJIyG6JCXqRKbUew7mDGd2nPFuYTQ0jn0FQPpnvVjGOXhRxTdcWhdIsKtm lREk4I2MIktd6fQ7TrIyTxaLUDdq9eAnaed9oy5QNPcjLPW8axZ2uA4H97lFMFJeqabGBm wQKj3l7UQ5eSWvvgym/7stu9wTxsIvU3jchVkAlQGK/jdJOG94Ln0B89judzjxjINxoW+1 IR8wIj06LTla8OPLQMSO/xvoMX4rZZsvmHrUXqr43OFnk8NfuVfIcJFHkGRSAva3yPFo/g vY4xSsFrCfovs5xzVaMcgtOP4kt4sxbX8fON5gzYXpAKR+qW0GVIUZSXyJW+aw== 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 4QM6g63F9szLD1; Wed, 17 May 2023 22:08:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HM82EP042010; Wed, 17 May 2023 22:08:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HM82GI042009; Wed, 17 May 2023 22:08:02 GMT (envelope-from git) Date: Wed, 17 May 2023 22:08:02 GMT Message-Id: <202305172208.34HM82GI042009@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: 0a17b290c3a9 - stable/13 - nfsd: Continue adding macros so nfsd can run in a vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 0a17b290c3a95f961593137c8a4bf6b9ebe9c020 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=0a17b290c3a95f961593137c8a4bf6b9ebe9c020 commit 0a17b290c3a95f961593137c8a4bf6b9ebe9c020 Author: Rick Macklem AuthorDate: 2023-02-12 21:52:13 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 22:07:04 +0000 nfsd: Continue adding macros so nfsd can run in a vnet prison Commit 7344856e3a6d added a lot of macros that will front end vnet macros so that nfsd(8) can run in vnet prison. This patch adds some more of them. (cherry picked from commit ab0440af75ba0c2dbf263c5441ccbe4058515fff) --- sys/fs/nfs/nfsdport.h | 2 +- sys/fs/nfs/nfsrvstate.h | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/fs/nfs/nfsdport.h b/sys/fs/nfs/nfsdport.h index 6d468219adf3..26bd57d5736d 100644 --- a/sys/fs/nfs/nfsdport.h +++ b/sys/fs/nfs/nfsdport.h @@ -92,7 +92,7 @@ struct nfsexstuff { bcmp(&(f1)->fh_fid, &(f2)->fh_fid, sizeof(struct fid)) == 0) #define NFSLOCKHASH(f) \ - (&nfslockhash[nfsrv_hashfh(f) % nfsrv_lockhashsize]) + (&NFSD_VNET(nfslockhash)[nfsrv_hashfh(f) % nfsrv_lockhashsize]) #define NFSFPVNODE(f) ((f)->f_vnode) #define NFSFPCRED(f) ((f)->f_cred) diff --git a/sys/fs/nfs/nfsrvstate.h b/sys/fs/nfs/nfsrvstate.h index 4c171e8b3f50..4dc9729a952f 100644 --- a/sys/fs/nfs/nfsrvstate.h +++ b/sys/fs/nfs/nfsrvstate.h @@ -58,18 +58,18 @@ LIST_HEAD(nfsdontlisthead, nfsdontlist); TAILQ_HEAD(nfsuserhashhead, nfsusrgrp); #define NFSCLIENTHASH(id) \ - (&nfsclienthash[(id).lval[1] % nfsrv_clienthashsize]) + (&NFSD_VNET(nfsclienthash)[(id).lval[1] % nfsrv_clienthashsize]) #define NFSSTATEHASH(clp, id) \ (&((clp)->lc_stateid[(id).other[2] % nfsrv_statehashsize])) #define NFSUSERHASH(id) \ - (&nfsuserhash[(id) % nfsrv_lughashsize]) + (&NFSD_VNET(nfsuserhash)[(id) % nfsrv_lughashsize]) #define NFSUSERNAMEHASH(p, l) \ - (&nfsusernamehash[((l)>=4?(*(p)+*((p)+1)+*((p)+2)+*((p)+3)):*(p)) \ + (&NFSD_VNET(nfsusernamehash)[((l)>=4?(*(p)+*((p)+1)+*((p)+2)+*((p)+3)):*(p)) \ % nfsrv_lughashsize]) #define NFSGROUPHASH(id) \ - (&nfsgrouphash[(id) % nfsrv_lughashsize]) + (&NFSD_VNET(nfsgrouphash)[(id) % nfsrv_lughashsize]) #define NFSGROUPNAMEHASH(p, l) \ - (&nfsgroupnamehash[((l)>=4?(*(p)+*((p)+1)+*((p)+2)+*((p)+3)):*(p)) \ + (&NFSD_VNET(nfsgroupnamehash)[((l)>=4?(*(p)+*((p)+1)+*((p)+2)+*((p)+3)):*(p)) \ % nfsrv_lughashsize]) struct nfssessionhash { @@ -77,7 +77,8 @@ struct nfssessionhash { struct nfssessionhashhead list; }; #define NFSSESSIONHASH(f) \ - (&nfssessionhash[nfsrv_hashsessionid(f) % nfsrv_sessionhashsize]) + (&NFSD_VNET(nfssessionhash)[nfsrv_hashsessionid(f) % \ + nfsrv_sessionhashsize]) struct nfslayouthash { struct mtx mtx; From nobody Wed May 17 22:15:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QM6qW5GB2z4BfYm; Wed, 17 May 2023 22:15: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QM6qW3CNTz3Jvt; Wed, 17 May 2023 22:15:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684361719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=86ciIEOLxugLtQ335v8gIJVz/vrc1TJVCk4W5phxhH0=; b=jHP1cjFNbXKJqmDV11o/sh2zGHkrPgY3SnzcDm9ypD9YsAZ8Y/ggkdX2/0rnzEhehaewGS UzfBo04U6XquXOf9WF7UMcT/a58LmqUdCQVtHoi+cq34M5tJfBmh4KJA20rrr2GBMJRDD7 4OJNBn6b8sahJZic37pZE+nfoZlPFbQlrdnNKdo732oioDscW1jbzrdcc1gMsPISsEZdlA KK345lHRCE5PphHQ7loJQIVHu+awZB5k4FwsTCFBBVH6IHFGG9NeQ709C0HuEA+3FfSE7e 1eKMOIq7obU3grTvqeSAB9+KwhamKBDUjFSAStOdyVCHSCLiLoxIDjW6RB65cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684361719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=86ciIEOLxugLtQ335v8gIJVz/vrc1TJVCk4W5phxhH0=; b=rdqvae/P70L+vPVclx8p4JICoaBvt+Ql46C7ZaNRxL/F7Cyv4yUhYpoje/qWPKmZOuzYgE 8r9hxAbLlP2DCU/OzMlM3YFzVaudsBgioJ/seOIbehOYLg3gV2zRwB3iJvYwCDGeSadCtB KNPDShEAc9Gtk2oYcAMywYUGWbZ4i83auegLVDH7PI8O4sq42yX82lTXtENnt7opZTmAIK 8PpeLT/QcW6MgYbYZ1QNPfDfNbvJCsUmFSb2H8Ff0kmEF95tvYiM9zn9HRIs2/lMQ0nIHC 1zBJc60vUwXKBx+VX1wG+MJsVd14zS0mmCAu3G/v9zG85U/Kh4+sSoUB/ogXvw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684361719; a=rsa-sha256; cv=none; b=NJJVc9pO7ETfF4QOIILqlI8481n3JL1vm6lWjZi4G4UxeWRjbPsd4X1ZtnwUqNxN336y03 2zH0nCPYQ1Y5QKwMlljcWvSR5+E0aAndIXBFawu9uvnjrL5FmqEeiYAcTAmuJhquMXCy85 6lpmOO0kayAK+xWCM04xSj08m9iT/EuTUGK2JL95rNIEO4L3lJCOrS6W219AYqQQSSRyI7 eXjFFzF7pL7pv+RO+Sy0RsBb7glEenZzLWmohuCGqbWQA8G6VxZx8BWnv2Jt0eSwdwsn7i Gg0QKYC/ea1E0/sAi4jgYv1lLWCxO3Dh5Lnq67bD/IL2qWOELfB6Jz2M2iaSyQ== 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 4QM6qT4jS4zLmD; Wed, 17 May 2023 22:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HMFHi9058224; Wed, 17 May 2023 22:15:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HMFHu2058223; Wed, 17 May 2023 22:15:17 GMT (envelope-from git) Date: Wed, 17 May 2023 22:15:17 GMT Message-Id: <202305172215.34HMFHu2058223@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: fddac96ca559 - stable/13 - krpc: Allow mountd/nfsd to optionally run in a jail List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: fddac96ca55968f42156e6286547de513f980a52 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=fddac96ca55968f42156e6286547de513f980a52 commit fddac96ca55968f42156e6286547de513f980a52 Author: Rick Macklem AuthorDate: 2022-12-18 20:40:48 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 22:14:07 +0000 krpc: Allow mountd/nfsd to optionally run in a jail This patch modifies the kernel RPC so that it will allow mountd/nfsd to run inside of a vnet jail. Running mountd/nfsd inside a vnet jail will be enabled via a new kernel build option called VNET_NFSD, which will be implemented in future commits. Although I suspect cr_prison can be set from the credentials of the current thread unconditionally, I #ifdef'd the code VNET_NFSD and only did this for the jailed case mainly to document that it is only needed for use in a jail. The TLS support code has not yet been modified to work in a jail. That is planned as future development after the basic VNET_NFSD support is in the kernel. This patch should not result in any semantics change until VNET_NFSD is implemented and used in a kernel configuration. (cherry picked from commit 6a76d35cac8e1549f74bd4cdceccc2ee52c8e556) --- sys/rpc/svc.c | 3 ++- sys/rpc/svc_auth.c | 15 +++++++++++++-- sys/rpc/svc_dg.c | 4 ++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/sys/rpc/svc.c b/sys/rpc/svc.c index be0f08ebca9d..065da0cc23a4 100644 --- a/sys/rpc/svc.c +++ b/sys/rpc/svc.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); */ #include +#include #include #include #include @@ -126,7 +127,7 @@ svcpool_create(const char *name, struct sysctl_oid_list *sysctl_base) pool->sp_space_low = (pool->sp_space_high / 3) * 2; sysctl_ctx_init(&pool->sp_sysctl); - if (sysctl_base) { + if (!jailed(curthread->td_ucred) && sysctl_base) { SYSCTL_ADD_PROC(&pool->sp_sysctl, sysctl_base, OID_AUTO, "minthreads", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, pool, 0, svcpool_minthread_sysctl, "I", diff --git a/sys/rpc/svc_auth.c b/sys/rpc/svc_auth.c index 21149139b5a5..a5c9753c4fde 100644 --- a/sys/rpc/svc_auth.c +++ b/sys/rpc/svc_auth.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -197,7 +198,12 @@ svc_getcred(struct svc_req *rqst, struct ucred **crp, int *flavorp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = xprt->xp_uid; crsetgroups(cr, xprt->xp_ngrps, xprt->xp_gidp); cr->cr_rgid = cr->cr_svgid = xprt->xp_gidp[0]; - cr->cr_prison = &prison0; +#ifdef VNET_NFSD + if (jailed(curthread->td_ucred)) + cr->cr_prison = curthread->td_ucred->cr_prison; + else +#endif + cr->cr_prison = &prison0; prison_hold(cr->cr_prison); *crp = cr; return (TRUE); @@ -210,7 +216,12 @@ svc_getcred(struct svc_req *rqst, struct ucred **crp, int *flavorp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = xcr->cr_uid; crsetgroups(cr, xcr->cr_ngroups, xcr->cr_groups); cr->cr_rgid = cr->cr_svgid = cr->cr_groups[0]; - cr->cr_prison = &prison0; +#ifdef VNET_NFSD + if (jailed(curthread->td_ucred)) + cr->cr_prison = curthread->td_ucred->cr_prison; + else +#endif + cr->cr_prison = &prison0; prison_hold(cr->cr_prison); *crp = cr; return (TRUE); diff --git a/sys/rpc/svc_dg.c b/sys/rpc/svc_dg.c index 36724ed07b98..e4cf0d8c45e3 100644 --- a/sys/rpc/svc_dg.c +++ b/sys/rpc/svc_dg.c @@ -45,11 +45,13 @@ __FBSDID("$FreeBSD$"); */ #include +#include #include #include #include #include #include +#include #include #include #include @@ -104,6 +106,8 @@ svc_dg_create(SVCPOOL *pool, struct socket *so, size_t sendsize, struct sockaddr* sa; int error; + if (jailed(curthread->td_ucred)) + return (NULL); if (!__rpc_socket2sockinfo(so, &si)) { printf(svc_dg_str, svc_dg_err1); return (NULL); From nobody Wed May 17 22:18:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QM6tx07tFz4Bfcx; Wed, 17 May 2023 22:18:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QM6tw6kPvz3K2r; Wed, 17 May 2023 22:18:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684361896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zQUL0wSXilCdvRS81PcoiqC8QZ0NxWztRihUxdP7ggA=; b=wGREwA1cC+Q3kRPcrNGL1LB8jLoNzKzRmwLuyhsatgpseBykVbq5N6RHq1CtE9xfDJOg8o 9erbmHHu1GntqaKMCKK6M5Ty8Qj0MR9WXpI+p+tK6uaIX8Gi8r1v2ITlD3igU+orLV9RmQ rBYGBE0BRGeFsYWgsi3BZVTlA4gU3GpvrYLkhWWKHiZpWTiHeGJypwDMSKzBA+KX3zANj4 3WNuSLyJ6/7bvtgFjuxB1An/TGG5urgREk/yTCB8GtB7vWS0by3OTsU+KVwmGgFiX96ClO V8cT3o1UzhYkLQrR8OF/m9D3XfaXRmrih1wMChZ9nq+PJQIa2ZAE/Uq1FYFf6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684361896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zQUL0wSXilCdvRS81PcoiqC8QZ0NxWztRihUxdP7ggA=; b=e91UWAJRXOXJe2ouJp/GBnfmPZB+mpuv+qCA0+3TVklh9PATL+qQ4F+Q+PSZdom0ITwUaK SG06Yr6Y8gh7g7TEIIk2VbnkWdpPEuN18JOE19oSBej8zobX+kLa4pU+ilkn2A8A3VVPSZ Jf9ivjnZn+T/8SltN+oCVJ5GmyNrwSJRnbpjhKWBxhVB98VKWu/3mmiHjpfBLX0WzC2uEy B2zC9CgByoFcK3H8uOLlgrbLUqb2qMAGmzMuPYwQUGFVLqYPFCvTQQgVsex8gHADJPAYxY vevXnQVJ0hCtcROWNE92nkKyErkaz3QKRbxhRCzLch7XU94sUMSlsHaIQgy7FA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684361896; a=rsa-sha256; cv=none; b=o4xIAxlZGoaGxRx74wXykvniq753Ft5SpCkk+tjrLH7HmMogc2a6uTKvVyY2qE0NPP3RQi OHViVlRrX6CMtcRgneBf0tmm06oOcf9ASS/c7xjOqALu2r9c90ghlsLcJ35ZuJoRTwWeiR ud0rIK7sjrlWLS037Eb7wVevERa75HfRGjQUgN4SWyljcdJ+4pL4seJEs9QfXS+ZF4KDZP OQ9k/hX970gg/fTfNxDrrFi6V4PPGDgc/WcU9iSn016F1dh9hCY+1QuUTM1cZIp/JUwqF6 j4efyyFJFIkBK0jfvoAv2dIz2W+143cCVG2UpH6WnAppuRw+IGJepZgbJEbpug== 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 4QM6tw5q2CzLT2; Wed, 17 May 2023 22:18:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HMIG1Y058661; Wed, 17 May 2023 22:18:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HMIGWJ058660; Wed, 17 May 2023 22:18:16 GMT (envelope-from git) Date: Wed, 17 May 2023 22:18:16 GMT Message-Id: <202305172218.34HMIGWJ058660@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: 967e9ddfb839 - stable/13 - krpc: Replace !jailed() with IS_DEFAULT_VNET() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 967e9ddfb83936386870b5533f31b875be574929 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=967e9ddfb83936386870b5533f31b875be574929 commit 967e9ddfb83936386870b5533f31b875be574929 Author: Rick Macklem AuthorDate: 2023-02-16 22:32:50 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 22:17:22 +0000 krpc: Replace !jailed() with IS_DEFAULT_VNET() Since svcpool_create() is now called from an initialization function, !jailed() no longer works. Replace it with IS_DEFAULT_VNET(). (cherry picked from commit 780bae23b8e6c386e4b2f971eb27fa3bd1a6edd1) --- sys/rpc/svc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/rpc/svc.c b/sys/rpc/svc.c index 065da0cc23a4..0b07d2751f4a 100644 --- a/sys/rpc/svc.c +++ b/sys/rpc/svc.c @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); */ #include -#include #include #include #include @@ -63,6 +62,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include #include @@ -127,7 +128,7 @@ svcpool_create(const char *name, struct sysctl_oid_list *sysctl_base) pool->sp_space_low = (pool->sp_space_high / 3) * 2; sysctl_ctx_init(&pool->sp_sysctl); - if (!jailed(curthread->td_ucred) && sysctl_base) { + if (IS_DEFAULT_VNET(curvnet) && sysctl_base) { SYSCTL_ADD_PROC(&pool->sp_sysctl, sysctl_base, OID_AUTO, "minthreads", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, pool, 0, svcpool_minthread_sysctl, "I", From nobody Wed May 17 22:20:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QM6xF6khBz4BfkG; Wed, 17 May 2023 22:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QM6xF6BBzz3KY1; Wed, 17 May 2023 22:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684362017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WGW8Md8LxzDJi6GemuGRWb0wVHocvoX0F10i2E0z1dw=; b=MvVAG0RePrhwMDcm92SNWLWDLQ5dUwiaPOx+YQfQ43Gs3fs5YwlcIaOTYyLnrwOfOy+uYP b71HbBvji/Eqw+dpftHDsKCPA7bIf/pxuGBy12JiSUaSbRaZTERplnqcIEtg9DkEatGePS tL6R7b+H/vHvfvMWXqzvYdUGVIAYYPLjJBOjSdEfCZifvjIQVLQGBC9lK6/NIEz08zxing bhBh7BZ804CYsPAchqcFjBT/fr2Uum9mJ9tbrcrnxNIK4NGW9axmymKnz0D7t31wuCVGP1 vTCAgojNBSwHehhRK331QqMCObf7qmDM2/2f+/VsN2QKxESs4APFR/Bgj9P3pA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684362017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WGW8Md8LxzDJi6GemuGRWb0wVHocvoX0F10i2E0z1dw=; b=UrpmlrXKJbQ4A72oOTIJ+u2xCp+zEnzfiX6dTW7i0gka6hMaS6BXsCHtuYk8ACKpSrZ9oi /coozHBpKColEm808lxzmKazPg08AOiuQmAAnWqnIyMny01CMZNdlwNpRdknvfjgft9x1S fT6gl+dzJAOm/M6XGD+gvSnRR95FHhzZpTImW6GVILTujq+/0VcV50dlVRMNC38innt7ER 3E7gI7k1as/Z7kzKKBMrZbpp9T7ph/tsUUum4zTCfL/SblGaqfUmJMzAGwrkAOSGfF/eiC 0hBfpd7XQ4OS/jn/Y6UEnxEOAKyY0oBJyw3MJaLobRqInOjFudv9U+n2TsVttw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684362017; a=rsa-sha256; cv=none; b=Q1ZkXnt5jZYaGNturUx3/DrWq3ZUrwR3d084CKB7HDgkNQ3oWAJe3guhgV7OYpv7KBFoJD Z9Rd3W/9PQbTKgQkqrmBCk27q6eKq16U7TRzWJBkCb3w/4ZEtnNMMEXY7B345xDHfT6yrl NX+DCSemUSnN4sBcJw2omGtcQr4npte9Xg5fe/Ap8xDMkyPjo51NiPn8Z7ln+9y1OHg7Vw tgg2GUjfyx+NQwNPnK14h2ZNJdnZojUZQ6QO3DWNb10lnadnXIuDSkWOujjkEtL2CbxgJQ vfCw4rr1tNAJLZknxL5y2x43Sltmp2ZOvATei2bNu6mXTqd4JrqalHEAY82Sbg== 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 4QM6xF5FynzLN6; Wed, 17 May 2023 22:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HMKHNf067450; Wed, 17 May 2023 22:20:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HMKHaE067449; Wed, 17 May 2023 22:20:17 GMT (envelope-from git) Date: Wed, 17 May 2023 22:20:17 GMT Message-Id: <202305172220.34HMKHaE067449@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: 8d7d3c6963f8 - stable/13 - nfscl: Add NFSD_CURVNET macros to nfsclient syscall List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 8d7d3c6963f8d504e0d02353bacce767a907ca5d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=8d7d3c6963f8d504e0d02353bacce767a907ca5d commit 8d7d3c6963f8d504e0d02353bacce767a907ca5d Author: Rick Macklem AuthorDate: 2023-02-21 00:40:07 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 22:19:19 +0000 nfscl: Add NFSD_CURVNET macros to nfsclient syscall Although the nfsclient syscall is used for client side, it does set up server side krpc for callbacks. As such, it needs to have the vnet set. This patch does this. Without this patch, the system would crash when the nfscbd(8) daemon was killed. (cherry picked from commit 357492c99597d13bc966441f30bb44f6ef659f08) --- sys/fs/nfsclient/nfs_clport.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clport.c b/sys/fs/nfsclient/nfs_clport.c index 4d8599c18363..1d2617b2bb9b 100644 --- a/sys/fs/nfsclient/nfs_clport.c +++ b/sys/fs/nfsclient/nfs_clport.c @@ -1276,10 +1276,11 @@ nfssvc_nfscl(struct thread *td, struct nfssvc_args *uap) struct mount *mp; struct nfsmount *nmp; + NFSD_CURVNET_SET(NFSD_TD_TO_VNET(td)); if (uap->flag & NFSSVC_CBADDSOCK) { error = copyin(uap->argp, (caddr_t)&nfscbdarg, sizeof(nfscbdarg)); if (error) - return (error); + goto out; /* * Since we don't know what rights might be required, * pretend that we need them all. It is better to be too @@ -1288,10 +1289,11 @@ nfssvc_nfscl(struct thread *td, struct nfssvc_args *uap) error = fget(td, nfscbdarg.sock, cap_rights_init_one(&rights, CAP_SOCK_CLIENT), &fp); if (error) - return (error); + goto out; if (fp->f_type != DTYPE_SOCKET) { fdrop(fp, td); - return (EPERM); + error = EPERM; + goto out; } error = nfscbd_addsock(fp); fdrop(fp, td); @@ -1300,12 +1302,14 @@ nfssvc_nfscl(struct thread *td, struct nfssvc_args *uap) nfscl_enablecallb = 1; } } else if (uap->flag & NFSSVC_NFSCBD) { - if (uap->argp == NULL) - return (EINVAL); + if (uap->argp == NULL) { + error = EINVAL; + goto out; + } error = copyin(uap->argp, (caddr_t)&nfscbdarg2, sizeof(nfscbdarg2)); if (error) - return (error); + goto out; error = nfscbd_nfsd(td, &nfscbdarg2); } else if (uap->flag & NFSSVC_DUMPMNTOPTS) { error = copyin(uap->argp, &dumpmntopts, sizeof(dumpmntopts)); @@ -1391,6 +1395,8 @@ nfssvc_nfscl(struct thread *td, struct nfssvc_args *uap) } else { error = EINVAL; } +out: + NFSD_CURVNET_RESTORE(); return (error); } From nobody Wed May 17 23:13:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QM8755pz5z4Bj0S; Wed, 17 May 2023 23: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QM8755HHtz3PNC; Wed, 17 May 2023 23: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=1684365233; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5AadAp5ySWuXCdQOTGQ9uWHWKrEMXA+zfIGbVZynsdo=; b=p1pNFhhoNtKwiPby2whY/Zr1Gsl50D8aOR2pwrgKtlYequrLrGcStrLUCbxPNSTnuzy7+a bkU1OsK004dTzCBVvWSp++oOnXBknusOWtJrl+GavkHMLCyLhoOHaSi7xxHitHhvIZADQv 46UsnM7KYG5xfq3UDaa0MY/29GW/aqalbetfwzRcMfUwUXoMPOWZc8Zym972WjKWNZYJzL dfr+rDnCd2XPsrL0CrgQiLiO5Vl1CczWgzELdKnnK8K7Xaa43N/dGOBO2lqp7gJ0PnjgV3 gYkWShJwNcvCDbLcp3EysgMbWHpn5OJ/sHxogktLlmY73hKo9gCUveNhDFESMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684365233; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5AadAp5ySWuXCdQOTGQ9uWHWKrEMXA+zfIGbVZynsdo=; b=T6qiMNtyXghfwTL0iaFh3gHeQkn3mb9PE0TuqlhJwVUBTeYR/GQVx80jMd+fNu43W0r3me ieSJlmZrmv8uvD8jSWkf+4aspjcMUT6s6b5u9hVFvDqxY0hb3gdH7dCsboVI2BvIDEk/hu X2QprBHLMJrEzmweLjnCofYgNcfLKu9X0NACQpLmzqwjwVCphNNnHsWBEgilP7O5lIna2u 4xwvWDRAsBtJ+VS6A1hAin8mVSZ27z0qUrSsbjlT3JgdbFXhO1yXZsgku+i207QVXm8mgt enTZ6Nj0hQ6tpmQkGaImSxu22bOgaHOzUbaaAQBqYU9woWdAJ7WTv7GflMaCuQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684365233; a=rsa-sha256; cv=none; b=t+W+1rkuhwL76MvsxaPDQ49j42IekPtzdrY/90XvfU3Z+3fx8Cw5YNMK6w0URybJXSx+Vt uItlFFTKBeTkv+2jq+DZdGjro8lasxcKy4Z1OzyimNkT7gTj16wgZBuim3VvL0GewK64N3 xvJrkWZyV8oYg07nZNMzI8NQ3wc9jWFzXtP7iaGXIHW1V4/9uKiNhGI6N/74jOmpiyaBm6 ldfsToJNFHddJUAjGuSfoxZgLdBfjh16SEGpR5DB935R5S0sbUUPC1zS3DEuqHt6ng3YBz Yb9QqkGItQsUbzPgMEbq+BVNQvd5qTQChqjT4AlpMF2C7pTtuLPqC92r/a2q3A== 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 4QM87543qhzNDG; Wed, 17 May 2023 23:13:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34HNDr99056545; Wed, 17 May 2023 23:13:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34HNDrFg056544; Wed, 17 May 2023 23:13:53 GMT (envelope-from git) Date: Wed, 17 May 2023 23:13:53 GMT Message-Id: <202305172313.34HNDrFg056544@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: 3f1e7e07459f - stable/13 - nfscommon: Revert use of nfsstatsv1_p in nfs_commonkrpc.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 3f1e7e07459f54ecd0cdbe586570f00a88c55d0f Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=3f1e7e07459f54ecd0cdbe586570f00a88c55d0f commit 3f1e7e07459f54ecd0cdbe586570f00a88c55d0f Author: Rick Macklem AuthorDate: 2023-02-17 01:44:19 +0000 Commit: Rick Macklem CommitDate: 2023-05-17 23:12:49 +0000 nfscommon: Revert use of nfsstatsv1_p in nfs_commonkrpc.c Commit 9d329bbc9aea converted a lot of accesses to nfsstatsv1 to use nfsstatsv1_p instead. However, the accesses in nfs_commonkrpc.c are for client side and should not be converted. This patch puts them back in the correct pre-commit 9d329bbc9aea form. (cherry picked from commit a63b5d488badce9298e4272da2d5344e9f83a13d) --- sys/fs/nfs/nfs_commonkrpc.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/fs/nfs/nfs_commonkrpc.c b/sys/fs/nfs/nfs_commonkrpc.c index 0d2cb9ec279a..9badd8be47d4 100644 --- a/sys/fs/nfs/nfs_commonkrpc.c +++ b/sys/fs/nfs/nfs_commonkrpc.c @@ -92,6 +92,7 @@ NFSSTATESPINLOCK; NFSREQSPINLOCK; NFSDLOCKMUTEX; NFSCLSTATEMUTEX; +extern struct nfsstatsv1 nfsstatsv1; extern struct nfsreqhead nfsd_reqq; extern int nfscl_ticks; extern void (*ncl_call_invalcaches)(struct vnode *); @@ -99,8 +100,6 @@ extern int nfs_numnfscbd; extern int nfscl_debuglevel; extern int nfsrv_lease; -NFSD_VNET_DECLARE(struct nfsstatsv1 *, nfsstatsv1_p); - SVCPOOL *nfscbd_pool; int nfs_bufpackets = 4; static int nfsrv_gsscallbackson = 0; @@ -783,7 +782,7 @@ newnfs_request(struct nfsrv_descript *nd, struct nfsmount *nmp, procnum = NFSV4PROC_COMPOUND; if (nmp != NULL) { - NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcrequests); + NFSINCRGLOBAL(nfsstatsv1.rpcrequests); /* Map the procnum to the old NFSv2 one, as required. */ if ((nd->nd_flag & ND_NFSV2) != 0) { @@ -918,13 +917,13 @@ tryagain: if (stat == RPC_SUCCESS) { error = 0; } else if (stat == RPC_TIMEDOUT) { - NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpctimeouts); + NFSINCRGLOBAL(nfsstatsv1.rpctimeouts); error = ETIMEDOUT; } else if (stat == RPC_VERSMISMATCH) { - NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); error = EOPNOTSUPP; } else if (stat == RPC_PROGVERSMISMATCH) { - NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); error = EPROTONOSUPPORT; } else if (stat == RPC_CANTSEND || stat == RPC_CANTRECV || stat == RPC_SYSTEMERROR || stat == RPC_INTR) { @@ -958,11 +957,11 @@ tryagain: if (stat == RPC_INTR) error = EINTR; else { - NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); error = ENXIO; } } else { - NFSINCRGLOBAL(NFSD_VNET(nfsstatsv1_p)->rpcinvalid); + NFSINCRGLOBAL(nfsstatsv1.rpcinvalid); error = EACCES; } if (error) { From nobody Thu May 18 00:13:36 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QM9S02ZYHz4Bm54; Thu, 18 May 2023 00:13:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QM9S01pY8z3lQY; Thu, 18 May 2023 00:13:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684368816; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/dKDZsyAgbXWUqENY055mKyQYjS7cBRT94C/2UN86Kg=; b=WOVj8dt/LQS6Y4ht25AElACp03V66I+cvt+DbESPUHhpynmL4Rq45o6Vw2TEvRiAW6HDyk sl/aWm4neTDROUXMHkN+YRBTlO9QCa+YwxiaccN+iILagIvFCwkzSKxb/Ik02ayerCG3N+ rkcxEhGdDCo+3cM6i4rsRffn2hE3oL+KkSqIM6xKf/Zpkyxn4I6h4Rc60lDVZ4xEwFmJP2 jsIsIu1AOXEPIk6hiLbpfvRqtEtF+NnklvMiGoXwaCbiiXIqny9Zh2bvQb8q7az6bww6gU SG3OGZzdgC9kJJXykqbzL1WRW8rUIldN8bKzKq+otZr90CARkE6CO1dxlOylag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684368816; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/dKDZsyAgbXWUqENY055mKyQYjS7cBRT94C/2UN86Kg=; b=hBSJfx4gL+7sPpbCbyhJCoyVPwPKU+lmX4fvyeXVWICTLjd/jQyJ4oST7k8BUExQHqVrXY pH+iz0eJ0yEyeKUVVm+HCKOAfBFA/gk0R2+sELxARwlcjEpMLQuc4qPz1uVQObkA9iJzYS dIEgskirjsqlPZl8kdMIf/0DJ6sHabBIRv3ep+yTB4BKZJN8uHmJsJby8a4v97vDEsteVp /BajXluiFoOFnv6Jv6Oxi/Sa9p9IqkcQQIMyO9oXGm0pjVEcbMSUjtUciva1uwbyVjMI0q wFWNLxngcazAOfJlNrWyFGR1mDePf2RbhfPfVFAxPhR+NFn6jNlSunf6PJvacQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684368816; a=rsa-sha256; cv=none; b=lvBad6SjPaWORqRhEqftViHu141SMC7NblVz8FnIq77IauX/6j0OY7VBLqCxGGMKWflbbd AcJP4FG3UI12wACom+rRKPDb7k1C+UpCFZAC5111TOC26pWUjU8vSF0+dCPVuvy++OJvYp 9Fi3YrgVkGB5SgnphgDtZxjdKlvbFH4c2w6r6BNZrrkWJstCZREtRwEpVIXMS6shbBcSr2 0WaYs53oOqH6DpKysoE6+9n/I88dXUkXDrljYyZm27Sp4AV2qNOMCctK30plj3T2zAMiO0 vOWoCKwiiC770WLT1uSxrg+qdsiHKoFh/gwIL6REL/qnMa7X1cBWqArA2sE7Xw== 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 4QM9S00syNzPgV; Thu, 18 May 2023 00:13:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34I0DaSj055218; Thu, 18 May 2023 00:13:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34I0DaNL055217; Thu, 18 May 2023 00:13:36 GMT (envelope-from git) Date: Thu, 18 May 2023 00:13:36 GMT Message-Id: <202305180013.34I0DaNL055217@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: 46910ffacbfe - stable/13 - krpc: Remove VNET_NFSD #ifdefs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 46910ffacbfeadb08a3421c2d4995d1a244768c4 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=46910ffacbfeadb08a3421c2d4995d1a244768c4 commit 46910ffacbfeadb08a3421c2d4995d1a244768c4 Author: Rick Macklem AuthorDate: 2023-02-14 21:53:39 +0000 Commit: Rick Macklem CommitDate: 2023-05-18 00:12:26 +0000 krpc: Remove VNET_NFSD #ifdefs The consensus is that the VNET_NFSD kernel option is not needed, so this commit removes its use from the kernel RPC. (cherry picked from commit 364391a9bb5eb85af5f711a952ba40a4b1f768da) --- sys/rpc/svc_auth.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/sys/rpc/svc_auth.c b/sys/rpc/svc_auth.c index a5c9753c4fde..22ce83f72bdb 100644 --- a/sys/rpc/svc_auth.c +++ b/sys/rpc/svc_auth.c @@ -198,12 +198,7 @@ svc_getcred(struct svc_req *rqst, struct ucred **crp, int *flavorp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = xprt->xp_uid; crsetgroups(cr, xprt->xp_ngrps, xprt->xp_gidp); cr->cr_rgid = cr->cr_svgid = xprt->xp_gidp[0]; -#ifdef VNET_NFSD - if (jailed(curthread->td_ucred)) - cr->cr_prison = curthread->td_ucred->cr_prison; - else -#endif - cr->cr_prison = &prison0; + cr->cr_prison = curthread->td_ucred->cr_prison; prison_hold(cr->cr_prison); *crp = cr; return (TRUE); @@ -216,12 +211,7 @@ svc_getcred(struct svc_req *rqst, struct ucred **crp, int *flavorp) cr->cr_uid = cr->cr_ruid = cr->cr_svuid = xcr->cr_uid; crsetgroups(cr, xcr->cr_ngroups, xcr->cr_groups); cr->cr_rgid = cr->cr_svgid = cr->cr_groups[0]; -#ifdef VNET_NFSD - if (jailed(curthread->td_ucred)) - cr->cr_prison = curthread->td_ucred->cr_prison; - else -#endif - cr->cr_prison = &prison0; + cr->cr_prison = curthread->td_ucred->cr_prison; prison_hold(cr->cr_prison); *crp = cr; return (TRUE); From nobody Thu May 18 06:01:00 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMK8r6XBWz4C6nB; Thu, 18 May 2023 06:01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMK8r6MY6z4J9D; Thu, 18 May 2023 06:01:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684389660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZUrxksEl44m2ESeoaniTR/tuPBjUbS/QjRUOqN0bIp8=; b=kHWArs19eIiiDMvsVq7+F5q6lo0pcHKSSqPO8ZlOvpsiTsMZ0akmARpV7hkhoXhUCYNrHI mw68ImZ78IxoMtRX/KN/280tm3xQ0Dz2rSCbXKIaK/L9A1OYQi83UlFYV4vRCm9YquzoqP dTENFIElZ6wixfSG0rGuOpkeePREsJ8Hteev7oRGO8pGGtXcfvU8Sh//ZPYagjJptWzJaj xmijTIsU7IJt1t8IlamJT2ta8qs+wCS3RIAF6ruESi4xGo3q/IdV2EhsPqKh/J0FC9Nz1d 8zfkLkvVkXZrfzd8+dqYLAPCDf6pHMrHgct98eEAXuZbCrUt6JsjLbzmUZ7XsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684389660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZUrxksEl44m2ESeoaniTR/tuPBjUbS/QjRUOqN0bIp8=; b=WomHSVk03QZJIErf1b9tPiAYAXvgXKs4EJB1F+y8OK3RYyiNvBoDW2FZcP55XHZ4STkyUh tMtac4KE0OUbEnlWtI6TejB/5ZpASTD+JTpMkWKfoAryopUXoCsgEnBbfsDLvYWCRA8G4w e1W+gmCl4bGlacALLB01gPdaB7l0ktBZNRR3TkIqL7YoAf7NCzBCt4qU2mr71UbfN6no+g p33Y+dwAKEOGDRnUOykrezL1m/IatfONAjAX/fY8kcosFxXp1RteWagCEISvteHbxYbhsZ K7y7JDav8ZcP+JqLOyGzDHbhHWi6Ds0l03tJ0l3d1aASXqtGl8cA5w2diOTdVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684389660; a=rsa-sha256; cv=none; b=peM2SF4dXLmfNU22SJPYWGxa4LQ088jAxD7YmyGKcFyU7gbX4a/qVuE6auC/XD6921XbOC RqqoD/w0f2MPLJemR3OZ8vlq3jOK3vBYNWe2vZ8bdG4GO2EX4vRvgHZGul38CnwdfVPd7f r/lIPW8IqNs5JT3ir9untNkHvP2Cn3tOVkmBcW039B45+POSKKpTXBSRLdAFBYVjN+ts+E 0xMa/153WnWf86LTMUkF9MKHaGVHsEU+pUe0dDn5KfQE8xNLty43oGwFaulGkK98cz6OkH gNCvVpdxxIpu1Wgk4mMoHGBbTEJkh+odaBcH4KSrxgbU+oePlJuOMhgMDAFE+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 4QMK8r5RVfzZ32; Thu, 18 May 2023 06:01:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34I6103m026791; Thu, 18 May 2023 06:01:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34I610vG026790; Thu, 18 May 2023 06:01:00 GMT (envelope-from git) Date: Thu, 18 May 2023 06:01:00 GMT Message-Id: <202305180601.34I610vG026790@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: 69ce8ed3c650 - stable/13 - MFV: less v632. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 69ce8ed3c6500878ec011a779663765a69727342 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=69ce8ed3c6500878ec011a779663765a69727342 commit 69ce8ed3c6500878ec011a779663765a69727342 Author: Xin LI AuthorDate: 2023-05-02 03:43:57 +0000 Commit: Xin LI CommitDate: 2023-05-18 06:00:49 +0000 MFV: less v632. (cherry picked from commit d713e0891ff9ab8246245c3206851d486ecfdd37) --- contrib/less/LICENSE | 2 +- contrib/less/NEWS | 79 ++++- contrib/less/brac.c | 9 +- contrib/less/ch.c | 321 ++++++++----------- contrib/less/charset.c | 234 +++++++++----- contrib/less/charset.h | 2 +- contrib/less/cmd.h | 3 +- contrib/less/cmdbuf.c | 211 +++--------- contrib/less/command.c | 200 ++++++------ contrib/less/compose.uni | 14 +- contrib/less/cvt.c | 19 +- contrib/less/decode.c | 144 ++------- contrib/less/edit.c | 357 +++++++++++++++------ contrib/less/filename.c | 137 ++++---- contrib/less/fmt.uni | 4 +- contrib/less/forwback.c | 64 +--- contrib/less/funcs.h | 748 ++++++++++++++++++++++--------------------- contrib/less/help.c | 46 ++- contrib/less/ifile.c | 118 ++----- contrib/less/input.c | 203 +++++++++--- contrib/less/jump.c | 37 +-- contrib/less/less.h | 89 +++-- contrib/less/less.hlp | 44 ++- contrib/less/less.nro | 677 ++++++++++++++++++++++++++------------- contrib/less/lessecho.c | 44 +-- contrib/less/lessecho.nro | 38 +-- contrib/less/lesskey.c | 66 ++-- contrib/less/lesskey.h | 2 +- contrib/less/lesskey.nro | 62 ++-- contrib/less/lesskey_parse.c | 111 ++----- contrib/less/lglob.h | 2 +- contrib/less/line.c | 467 ++++++++++++--------------- contrib/less/linenum.c | 53 ++- contrib/less/lsystem.c | 18 +- contrib/less/main.c | 54 ++-- contrib/less/mark.c | 84 ++--- contrib/less/mkutable | 15 +- contrib/less/optfunc.c | 314 ++++++++---------- contrib/less/option.c | 105 ++---- contrib/less/option.h | 4 +- contrib/less/opttbl.c | 116 +++++-- contrib/less/os.c | 231 +++++++------ contrib/less/output.c | 135 ++++---- contrib/less/pattern.c | 176 +++++----- contrib/less/pattern.h | 10 +- contrib/less/pckeys.h | 2 +- contrib/less/position.c | 41 +-- contrib/less/position.h | 2 +- contrib/less/prompt.c | 78 ++--- contrib/less/screen.c | 562 +++++++++++++++----------------- contrib/less/scrsize.c | 2 +- contrib/less/search.c | 370 ++++++++------------- contrib/less/signal.c | 29 +- contrib/less/tags.c | 87 ++--- contrib/less/ttyin.c | 52 +-- contrib/less/ubin.uni | 16 +- contrib/less/version.c | 31 +- contrib/less/wide.uni | 22 +- contrib/less/xbuf.c | 150 +++++++-- contrib/less/xbuf.h | 7 +- usr.bin/less/defines.h | 24 +- 61 files changed, 3721 insertions(+), 3623 deletions(-) diff --git a/contrib/less/LICENSE b/contrib/less/LICENSE index 65bce4288972..d22cc6070c51 100644 --- a/contrib/less/LICENSE +++ b/contrib/less/LICENSE @@ -2,7 +2,7 @@ ------------ Less -Copyright (C) 1984-2022 Mark Nudelman +Copyright (C) 1984-2023 Mark Nudelman Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/contrib/less/NEWS b/contrib/less/NEWS index bcfe4c6c9e38..468f59441b28 100644 --- a/contrib/less/NEWS +++ b/contrib/less/NEWS @@ -9,6 +9,77 @@ Report bugs, suggestions or comments at https://github.com/gwsw/less/issues. +====================================================================== + + Major changes between "less" versions 608 and 632 + +* Add LESSUTFCHARDEF environment variable (github #275). + +* Add # command (github #330). + +* Add ^S search modifier (github #196). + +* Add --wordwrap option (github #113). + +* Add --no-vbell option (github #304). + +* Add --no-search-headers option (github #44). + +* Add --modelines option (github #89). + +* Add --intr option (github #224). + +* Add --proc-backspace, --proc-tab and --proc-return options (github #335). + +* Add --show-preproc-errors option (github #258). + +* Add LESS_LINES and LESS_COLUMNS environment variables (github #84). + +* Add LESS_DATA_DELAY environment variable (github #337). + +* Allow empty "lines" field in --header option. + +* Update Unicode tables. + +* Improve ability of ^X to interrupt F command (github #49). + +* Status column (-J) shows off-screen matches. + +* Parenthesized sub-patterns in searches are colored with unique colors, + if supported by the regular expression library (github #196). + +* Don't allow opening a tty as file input unless -f is set (github #309). + +* Don't require newline input after +&... option (github #339). + +* Fix incorrect handling of some Private Use Unicode characters. + +* Fix ANSI color bug when overstriking with colored chars (github #276). + +* Fix compiler const warning (github #279). + +* Fix signal race in iread (github #280). + +* Fix reading procfs files on Linux (github #282). + +* Fix --ignore-case with ctrl-R (no regex) search (github #300). + +* Fix bug doing repeat search after setting & filter (github #299). + +* Fix bug doing repeat search before non-repeat search. + +* Fix crash with -R and certain line lengths (github #338). + +* Fix input of Windows dead keys (github #352). + +* Don't retain search options from a cancelled search (github #302). + +* Don't call realpath on fake filenames like "-" (github #289). + +* Implement lesstest test suite. + +* Convert function parameter definitions from K&R to C89 (github #316). + ====================================================================== Major changes between "less" versions 590 and 608 @@ -241,7 +312,7 @@ * Update Unicode tables to 2017-03-08. -* Pass-thru Unicode formating chars (Cf type) instead of treating them +* Pass-thru Unicode formatting chars (Cf type) instead of treating them as binary chars. But treat them as binary if -U is set. * Fix erroneous binary file warning when UTF-8 file contains ANSI SGR sequences. @@ -433,7 +504,7 @@ * Fix problem interrupting the line number calculation for initial prompt. -* Fix SGR emulation when dealing with multiple attributes (eg. bold+underline). +* Fix SGR emulation when dealing with multiple attributes (e.g. bold+underline). * Fix highlight bug when searching for underlined/overstruck text. @@ -515,7 +586,7 @@ * The -c option has been made identical with the -C option. -* Allow "/dev/null" as synomym for "-" in LESSHISTFILE to indicate +* Allow "/dev/null" as synonym for "-" in LESSHISTFILE to indicate that no history file should be used. * Search can now find text which follows a null byte, if the PCRE @@ -665,7 +736,7 @@ * Improved performance in reading very large pipes. -* Eliminated some dependencies on file offets being 32 bits. +* Eliminated some dependencies on file offsets being 32 bits. * Fixed problems when viewing files with very long lines. diff --git a/contrib/less/brac.c b/contrib/less/brac.c index 58ecf172ae4e..da4efab8605e 100644 --- a/contrib/less/brac.c +++ b/contrib/less/brac.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2022 Mark Nudelman + * Copyright (C) 1984-2023 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -23,12 +23,7 @@ * The characters which serve as "open bracket" and * "close bracket" are given. */ - public void -match_brac(obrac, cbrac, forwdir, n) - int obrac; - int cbrac; - int forwdir; - int n; +public void match_brac(char obrac, char cbrac, int forwdir, int n) { int c; int nest; diff --git a/contrib/less/ch.c b/contrib/less/ch.c index bfad09c719f6..b297e7483e7b 100644 --- a/contrib/less/ch.c +++ b/contrib/less/ch.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2022 Mark Nudelman + * Copyright (C) 1984-2023 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -20,14 +20,11 @@ #include #endif -#if HAVE_STAT_INO -#include -extern dev_t curr_dev; -extern ino_t curr_ino; -#endif - #if HAVE_PROCFS #include +#if HAVE_LINUX_MAGIC_H +#include +#endif #endif typedef POSITION BLOCKNUM; @@ -133,6 +130,7 @@ extern int sigs; extern int secure; extern int screen_trashed; extern int follow_mode; +extern int waiting_for_data; extern constant char helpdata[]; extern constant int size_helpdata; extern IFILE curr_ifile; @@ -147,13 +145,12 @@ static int ch_addbuf(); /* * Get the character pointed to by the read pointer. */ - int -ch_get(VOID_PARAM) +static int ch_get(void) { struct buf *bp; struct bufnode *bn; int n; - int slept; + int read_again; int h; POSITION pos; POSITION len; @@ -172,11 +169,10 @@ ch_get(VOID_PARAM) return bp->data[ch_offset]; } - slept = FALSE; - /* * Look for a buffer holding the desired block. */ + waiting_for_data = FALSE; h = BUFHASH(ch_block); FOR_BUFS_IN_CHAIN(h, bn) { @@ -225,149 +221,139 @@ ch_get(VOID_PARAM) BUF_HASH_INS(bn, h); /* Insert into new hash chain. */ } - read_more: - pos = (ch_block * LBUFSIZE) + bp->datasize; - if ((len = ch_length()) != NULL_POSITION && pos >= len) - /* - * At end of file. - */ - return (EOI); - - if (pos != ch_fpos) + for (;;) { + pos = (ch_block * LBUFSIZE) + bp->datasize; + if ((len = ch_length()) != NULL_POSITION && pos >= len) + /* + * At end of file. + */ + return (EOI); + + if (pos != ch_fpos) + { + /* + * Not at the correct position: must seek. + * If input is a pipe, we're in trouble (can't seek on a pipe). + * Some data has been lost: just return "?". + */ + if (!(ch_flags & CH_CANSEEK)) + return ('?'); + if (lseek(ch_file, (off_t)pos, SEEK_SET) == BAD_LSEEK) + { + error("seek error", NULL_PARG); + clear_eol(); + return (EOI); + } + ch_fpos = pos; + } + /* - * Not at the correct position: must seek. - * If input is a pipe, we're in trouble (can't seek on a pipe). - * Some data has been lost: just return "?". + * Read the block. + * If we read less than a full block, that's ok. + * We use partial block and pick up the rest next time. */ - if (!(ch_flags & CH_CANSEEK)) - return ('?'); - if (lseek(ch_file, (off_t)pos, SEEK_SET) == BAD_LSEEK) + if (ch_ungotchar != -1) { - error("seek error", NULL_PARG); - clear_eol(); - return (EOI); + bp->data[bp->datasize] = ch_ungotchar; + n = 1; + ch_ungotchar = -1; + } else if (ch_flags & CH_HELPFILE) + { + bp->data[bp->datasize] = helpdata[ch_fpos]; + n = 1; + } else + { + n = iread(ch_file, &bp->data[bp->datasize], + (unsigned int)(LBUFSIZE - bp->datasize)); } - ch_fpos = pos; - } - - /* - * Read the block. - * If we read less than a full block, that's ok. - * We use partial block and pick up the rest next time. - */ - if (ch_ungotchar != -1) - { - bp->data[bp->datasize] = ch_ungotchar; - n = 1; - ch_ungotchar = -1; - } else if (ch_flags & CH_HELPFILE) - { - bp->data[bp->datasize] = helpdata[ch_fpos]; - n = 1; - } else - { - n = iread(ch_file, &bp->data[bp->datasize], - (unsigned int)(LBUFSIZE - bp->datasize)); - } - if (n == READ_INTR) - return (EOI); - if (n < 0) - { + read_again = FALSE; + if (n == READ_INTR) + { + ch_fsize = pos; + return (EOI); + } + if (n == READ_AGAIN) + { + read_again = TRUE; + n = 0; + } + if (n < 0) + { #if MSDOS_COMPILER==WIN32C - if (errno != EPIPE) + if (errno != EPIPE) #endif - { - error("read error", NULL_PARG); - clear_eol(); + { + error("read error", NULL_PARG); + clear_eol(); + } + n = 0; } - n = 0; - } #if LOGFILE - /* - * If we have a log file, write the new data to it. - */ - if (!secure && logfile >= 0 && n > 0) - write(logfile, (char *) &bp->data[bp->datasize], n); + /* + * If we have a log file, write the new data to it. + */ + if (!secure && logfile >= 0 && n > 0) + write(logfile, (char *) &bp->data[bp->datasize], n); #endif - ch_fpos += n; - bp->datasize += n; + ch_fpos += n; + bp->datasize += n; - /* - * If we have read to end of file, set ch_fsize to indicate - * the position of the end of file. - */ - if (n == 0) - { - ch_fsize = pos; - if (ignore_eoi) + if (n == 0) { - /* - * We are ignoring EOF. - * Wait a while, then try again. - */ - if (!slept) - { - PARG parg; - parg.p_string = wait_message(); - ierror("%s", &parg); - } - sleep_ms(2); /* Reduce system load */ - slept = TRUE; - -#if HAVE_STAT_INO - if (follow_mode == FOLLOW_NAME) + /* Either end of file or no data available. + * read_again indicates the latter. */ + if (!read_again) + ch_fsize = pos; + if (ignore_eoi || read_again) { - /* See whether the file's i-number has changed, - * or the file has shrunk. - * If so, force the file to be closed and - * reopened. */ - struct stat st; - POSITION curr_pos = ch_tell(); - int r = stat(get_filename(curr_ifile), &st); - if (r == 0 && (st.st_ino != curr_ino || - st.st_dev != curr_dev || - (curr_pos != NULL_POSITION && st.st_size < curr_pos))) + /* Wait a while, then try again. */ + if (!waiting_for_data) { - /* screen_trashed=2 causes - * make_display to reopen the file. */ - screen_trashed = 2; - return (EOI); + PARG parg; + parg.p_string = wait_message(); + ixerror("%s", &parg); + waiting_for_data = TRUE; } + sleep_ms(50); /* Reduce system load */ } -#endif + if (ignore_eoi && follow_mode == FOLLOW_NAME && curr_ifile_changed()) + { + /* screen_trashed=2 causes make_display to reopen the file. */ + screen_trashed = 2; + return (EOI); + } + if (sigs) + return (EOI); } - if (sigs) - return (EOI); - } - found: - if (ch_bufhead != bn) - { - /* - * Move the buffer to the head of the buffer chain. - * This orders the buffer chain, most- to least-recently used. - */ - BUF_RM(bn); - BUF_INS_HEAD(bn); + found: + if (ch_bufhead != bn) + { + /* + * Move the buffer to the head of the buffer chain. + * This orders the buffer chain, most- to least-recently used. + */ + BUF_RM(bn); + BUF_INS_HEAD(bn); - /* - * Move to head of hash chain too. - */ - BUF_HASH_RM(bn); - BUF_HASH_INS(bn, h); - } + /* + * Move to head of hash chain too. + */ + BUF_HASH_RM(bn); + BUF_HASH_INS(bn, h); + } - if (ch_offset >= bp->datasize) + if (ch_offset < bp->datasize) + break; /* * After all that, we still don't have enough data. * Go back and try again. */ - goto read_more; - + } return (bp->data[ch_offset]); } @@ -375,9 +361,7 @@ ch_get(VOID_PARAM) * ch_ungetchar is a rather kludgy and limited way to push * a single char onto an input file descriptor. */ - public void -ch_ungetchar(c) - int c; +public void ch_ungetchar(int c) { if (c != -1 && ch_ungotchar != -1) error("ch_ungetchar overrun", NULL_PARG); @@ -389,8 +373,7 @@ ch_ungetchar(c) * Close the logfile. * If we haven't read all of standard input into it, do that now. */ - public void -end_logfile(VOID_PARAM) +public void end_logfile(void) { static int tried = FALSE; @@ -415,8 +398,7 @@ end_logfile(VOID_PARAM) * Invoked from the - command; see toggle_option(). * Write all the existing buffered data to the log file. */ - public void -sync_logfile(VOID_PARAM) +public void sync_logfile(void) { struct buf *bp; struct bufnode *bn; @@ -452,9 +434,7 @@ sync_logfile(VOID_PARAM) /* * Determine if a specific block is currently in one of the buffers. */ - static int -buffered(block) - BLOCKNUM block; +static int buffered(BLOCKNUM block) { struct buf *bp; struct bufnode *bn; @@ -474,9 +454,7 @@ buffered(block) * Seek to a specified position in the file. * Return 0 if successful, non-zero if can't seek there. */ - public int -ch_seek(pos) - POSITION pos; +public int ch_seek(POSITION pos) { BLOCKNUM new_block; POSITION len; @@ -513,8 +491,7 @@ ch_seek(pos) /* * Seek to the end of the file. */ - public int -ch_end_seek(VOID_PARAM) +public int ch_end_seek(void) { POSITION len; @@ -540,8 +517,7 @@ ch_end_seek(VOID_PARAM) /* * Seek to the last position in the file that is currently buffered. */ - public int -ch_end_buffer_seek(VOID_PARAM) +public int ch_end_buffer_seek(void) { struct buf *bp; struct bufnode *bn; @@ -568,8 +544,7 @@ ch_end_buffer_seek(VOID_PARAM) * We may not be able to seek there if input is a pipe and the * beginning of the pipe is no longer buffered. */ - public int -ch_beg_seek(VOID_PARAM) +public int ch_beg_seek(void) { struct bufnode *bn; struct bufnode *firstbn; @@ -600,8 +575,7 @@ ch_beg_seek(VOID_PARAM) /* * Return the length of the file, if known. */ - public POSITION -ch_length(VOID_PARAM) +public POSITION ch_length(void) { if (thisfile == NULL) return (NULL_POSITION); @@ -617,8 +591,7 @@ ch_length(VOID_PARAM) /* * Return the current position in the file. */ - public POSITION -ch_tell(VOID_PARAM) +public POSITION ch_tell(void) { if (thisfile == NULL) return (NULL_POSITION); @@ -628,8 +601,7 @@ ch_tell(VOID_PARAM) /* * Get the current char and post-increment the read pointer. */ - public int -ch_forw_get(VOID_PARAM) +public int ch_forw_get(void) { int c; @@ -651,8 +623,7 @@ ch_forw_get(VOID_PARAM) /* * Pre-decrement the read pointer and get the new current char. */ - public int -ch_back_get(VOID_PARAM) +public int ch_back_get(void) { if (thisfile == NULL) return (EOI); @@ -674,15 +645,14 @@ ch_back_get(VOID_PARAM) * Set max amount of buffer space. * bufspace is in units of 1024 bytes. -1 mean no limit. */ - public void -ch_setbufspace(bufspace) - int bufspace; +public void ch_setbufspace(int bufspace) { if (bufspace < 0) maxbufs = -1; else { - maxbufs = ((bufspace * 1024) + LBUFSIZE-1) / LBUFSIZE; + int lbufk = LBUFSIZE / 1024; + maxbufs = bufspace / lbufk + (bufspace % lbufk != 0); if (maxbufs < 1) maxbufs = 1; } @@ -691,8 +661,7 @@ ch_setbufspace(bufspace) /* * Flush (discard) any saved file state, including buffer contents. */ - public void -ch_flush(VOID_PARAM) +public void ch_flush(void) { struct bufnode *bn; @@ -765,8 +734,7 @@ ch_flush(VOID_PARAM) * Allocate a new buffer. * The buffer is added to the tail of the buffer chain. */ - static int -ch_addbuf(VOID_PARAM) +static int ch_addbuf(void) { struct buf *bp; struct bufnode *bn; @@ -790,8 +758,7 @@ ch_addbuf(VOID_PARAM) /* * */ - static void -init_hashtbl(VOID_PARAM) +static void init_hashtbl(void) { int h; @@ -805,8 +772,7 @@ init_hashtbl(VOID_PARAM) /* * Delete all buffers for this file. */ - static void -ch_delbufs(VOID_PARAM) +static void ch_delbufs(void) { struct bufnode *bn; @@ -823,9 +789,7 @@ ch_delbufs(VOID_PARAM) /* * Is it possible to seek on a file descriptor? */ - public int -seekable(f) - int f; +public int seekable(int f) { #if MSDOS_COMPILER extern int fd0; @@ -845,8 +809,7 @@ seekable(f) * Force EOF to be at the current read position. * This is used after an ignore_eof read, during which the EOF may change. */ - public void -ch_set_eof(VOID_PARAM) +public void ch_set_eof(void) { if (ch_fsize != NULL_POSITION && ch_fsize < ch_fpos) ch_fsize = ch_fpos; @@ -856,10 +819,7 @@ ch_set_eof(VOID_PARAM) /* * Initialize file state for a new file. */ - public void -ch_init(f, flags) - int f; - int flags; +public void ch_init(int f, int flags) { /* * See if we already have a filestate for this file. @@ -896,8 +856,7 @@ ch_init(f, flags) /* * Close a filestate. */ - public void -ch_close(VOID_PARAM) +public void ch_close(void) { int keepstate = FALSE; @@ -939,8 +898,7 @@ ch_close(VOID_PARAM) /* * Return ch_flags for the current file. */ - public int -ch_getflags(VOID_PARAM) +public int ch_getflags(void) { if (thisfile == NULL) return (0); @@ -948,8 +906,7 @@ ch_getflags(VOID_PARAM) } #if 0 - public void -ch_dump(struct filestate *fs) +static void ch_dump(struct filestate *fs) { struct buf *bp; struct bufnode *bn; diff --git a/contrib/less/charset.c b/contrib/less/charset.c index 5e9a2d6427b8..881ebafd02cf 100644 --- a/contrib/less/charset.c +++ b/contrib/less/charset.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1984-2022 Mark Nudelman + * Copyright (C) 1984-2023 Mark Nudelman * * You may distribute under the terms of either the GNU General Public * License or the Less License, as specified in the README file. @@ -21,6 +21,7 @@ #endif #include "charset.h" +#include "xbuf.h" #if MSDOS_COMPILER==WIN32C #define WIN32_LEAN_AND_MEAN @@ -123,6 +124,108 @@ static char *binfmt = NULL; static char *utfbinfmt = NULL; public int binattr = AT_STANDOUT|AT_COLOR_BIN; +static struct xbuffer user_wide_array; +static struct xbuffer user_ubin_array; +static struct xbuffer user_compose_array; +static struct xbuffer user_prt_array; +static struct wchar_range_table user_wide_table; +static struct wchar_range_table user_ubin_table; +static struct wchar_range_table user_compose_table; +static struct wchar_range_table user_prt_table; + +/* + * Set a wchar_range_table to the table in an xbuffer. + */ +static void wchar_range_table_set(struct wchar_range_table *tbl, struct xbuffer *arr) +{ + tbl->table = (struct wchar_range *) arr->data; + tbl->count = arr->end / sizeof(struct wchar_range); +} + +/* + * Skip over a "U" or "U+" prefix before a hex codepoint. + */ +static char * skip_uprefix(char *s) +{ + if (*s == 'U' || *s == 'u') + if (*++s == '+') ++s; + return s; +} + +/* + * Parse a dash-separated range of hex values. + */ +static void wchar_range_get(char **ss, struct wchar_range *range) +{ + char *s = skip_uprefix(*ss); + range->first = lstrtoul(s, &s, 16); + if (s[0] == '-') + { + s = skip_uprefix(&s[1]); + range->last = lstrtoul(s, &s, 16); + } else + { + range->last = range->first; + } + *ss = s; +} + +/* + * Parse the LESSUTFCHARDEF variable. + */ +static void ichardef_utf(char *s) +{ + xbuf_init(&user_wide_array); + xbuf_init(&user_ubin_array); + xbuf_init(&user_compose_array); + xbuf_init(&user_prt_array); + + if (s != NULL) + { + while (s[0] != '\0') + { + struct wchar_range range; + wchar_range_get(&s, &range); + if (range.last == 0) + { + error("invalid hex number(s) in LESSUTFCHARDEF", NULL_PARG); + quit(QUIT_ERROR); + } + if (*s++ != ':') + { + error("missing colon in LESSUTFCHARDEF", NULL_PARG); + quit(QUIT_ERROR); + } + switch (*s++) + { + case 'b': + xbuf_add_data(&user_ubin_array, (unsigned char *) &range, sizeof(range)); + break; + case 'c': + xbuf_add_data(&user_compose_array, (unsigned char *) &range, sizeof(range)); + break; + case 'w': + xbuf_add_data(&user_wide_array, (unsigned char *) &range, sizeof(range)); + xbuf_add_data(&user_prt_array, (unsigned char *) &range, sizeof(range)); + break; + case 'p': case '.': + xbuf_add_data(&user_prt_array, (unsigned char *) &range, sizeof(range)); + break; + case '\0': + s--; + break; + default: + /* Ignore unknown character attribute. */ + break; + } + if (s[0] == ',') ++s; + } + } + wchar_range_table_set(&user_wide_table, &user_wide_array); + wchar_range_table_set(&user_ubin_table, &user_ubin_array); + wchar_range_table_set(&user_compose_table, &user_compose_array); + wchar_range_table_set(&user_prt_table, &user_prt_array); +} /* * Define a charset, given a description string. @@ -138,9 +241,7 @@ public int binattr = AT_STANDOUT|AT_COLOR_BIN; * b binary character * c control character */ - static void -ichardef(s) - char *s; +static void ichardef(char *s) { char *cp; int n; @@ -165,10 +266,12 @@ ichardef(s) case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': - n = (10 * n) + (s[-1] - '0'); + if (ckd_mul(&n, n, 10) || ckd_add(&n, n, s[-1] - '0')) + goto invalid_chardef; continue; default: + invalid_chardef: error("invalid chardef", NULL_PARG); quit(QUIT_ERROR); /*NOTREACHED*/ @@ -195,10 +298,7 @@ ichardef(s) * Define a charset, given a charset name. * The valid charset names are listed in the "charsets" array. */ - static int -icharset(name, no_error) - char *name; - int no_error; +static int icharset(char *name, int no_error) { struct charset *p; struct cs_alias *a; @@ -244,8 +344,7 @@ icharset(name, no_error) /* * Define a charset, given a locale name. */ - static void -ilocale(VOID_PARAM) +static void ilocale(void) { int c; @@ -264,12 +363,7 @@ ilocale(VOID_PARAM) /* * Define the printing format for control (or binary utf) chars. */ - public void -setfmt(s, fmtvarptr, attrptr, default_fmt) - char *s; - char **fmtvarptr; - int *attrptr; - char *default_fmt; +public void setfmt(char *s, char **fmtvarptr, int *attrptr, char *default_fmt, int for_printf) { *** 14546 LINES SKIPPED *** From nobody Thu May 18 14:20:02 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMXDf75lQz4Bd6b; Thu, 18 May 2023 14:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMXDf6VV8z4FD1; Thu, 18 May 2023 14:20:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684419602; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j/VGz8/ySBFNpc2Jet5C8pU0TNYXf5ADW5Y6NhGF/Ko=; b=bQ5cfPD0zYbOZzbRkjznzyuD2m/3DhtmQK6NOrDu3fxVYYTEo7nA8yDmx4GflXAX6LOrUa bgic7wyvPDVE8zd4ksC2116mPDth8zrkGvrfYLqLcvgcJHJopJd/kC9xvJyy7fCHVvSL4J Ihxuo9TH0nbWPuFtYxT28JutTsY3D0ddRbz3pGUgQ3NFjYujpwIKta2LVrYNwvLTUe07LO PgY7zZCcSMZSEbk7bg6w4/CZbhPs8sQTMtN67pw2gH4uW8voLhVDivUCDBdxiX2fYPuwqB Ng73ozWbgJyKO9fZh+tJYyHMaRcKTeE1XhXzY728Y36klJfid2GdJbcp2SP5HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684419602; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j/VGz8/ySBFNpc2Jet5C8pU0TNYXf5ADW5Y6NhGF/Ko=; b=jkCH8jYTrqd78GWWeTFLsMWRVepLVazNmS3sR6aQkwA7NG7VnoBXof3BpIccAOYW141DlX PMLsl9D7YuWfnzPIJRtGaEvsyeJvgTB9h6FVS447bTl/gnaBITTDfVkluke/T28eoMuFPC OrqDEcdXckURWu8xKXYKRARR0VkMb6Vz1nxWkYyL6k9mvhdLHutuJoC9LU+T4xscvCh588 WorMYA7Stzh++/2RyF4tcFzncAEfvm4nSgXXmhkKhheUbKDFg2qcRIY/0vcBRidYJIFABF BNL5qM/fCOw706NjGeYlngrP21Tph6WFAfiD+dCRejCvBL2gmCDpMArcteUbfQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684419602; a=rsa-sha256; cv=none; b=A2x+XZB2UbJsP0Pk0siGzTwf6mnKTMj9/dmKFxbqG3mLna6/KT355KybZOwDE8BYckCcvy 2IId8S99fiTHgYNqN2d0mhQxxPigCCBKoyhjW7pqDY42FjSDd+XzwkZpiDepvF5+YRu6lz 6kuBWxQwNzOu9WSw1k5+vhy9vO2J535xK5aen2LrmGDHEgQRgUYXbq0aRqfY0xzl5Aa3Mx +vg9zCBR04cFba5e9Ei82VwG0w/yCb2znmizXywBDY+zAUSTapWVyZAv/0b6h2+Rg2DVB2 btSokf/oLJZpmcT12B9jesMHIRLzvv4o1hXuU5CBbHvXm8u3ZrIgpkG0sBhrpw== 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 4QMXDf5T9CzpJF; Thu, 18 May 2023 14:20:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34IEK26j041444; Thu, 18 May 2023 14:20:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34IEK2ov041441; Thu, 18 May 2023 14:20:02 GMT (envelope-from git) Date: Thu, 18 May 2023 14:20:02 GMT Message-Id: <202305181420.34IEK2ov041441@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 668c406ce567 - stable/13 - UPDATING: Update release name and handbook link List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 668c406ce567fb786a693153c2d8b25bfb217415 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=668c406ce567fb786a693153c2d8b25bfb217415 commit 668c406ce567fb786a693153c2d8b25bfb217415 Author: Graham Perrin AuthorDate: 2023-05-18 14:13:04 +0000 Commit: Warner Losh CommitDate: 2023-05-18 14:18:43 +0000 UPDATING: Update release name and handbook link Pull-Request: https://github.com/freebsd/freebsd-src/pull/714 Reviewed-by: imp --- UPDATING | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/UPDATING b/UPDATING index d2c07cf5a80b..2ca07499ff00 100644 --- a/UPDATING +++ b/UPDATING @@ -1,4 +1,4 @@ - Updating Information for FreeBSD stable/13 users. + Updating Information for users of FreeBSD stable/13. This file is maintained and copyrighted by M. Warner Losh . See end of file for further details. For commonly done items, please see the @@ -6,7 +6,7 @@ COMMON ITEMS: section later in the file. These instructions assume that you basically know what you are doing. If not, then please consult the FreeBSD handbook: - https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html + https://docs.freebsd.org/en/books/handbook/cutting-edge/#makeworld Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages From nobody Thu May 18 23:02:58 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMlr24DySz4C7Lg; Thu, 18 May 2023 23:02: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMlr23lN3z46G4; Thu, 18 May 2023 23:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684450978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GnrADlT0GVVRTZAmiYyTWIUMssUg2TgdLzXXKvHcS+E=; b=VHdw306zE/TD4AtTdvQ+mApOpReT3xtF/dP30PhWzJwT0N+fuJkADHUfhHrPqhsskp41FM v0T2xmohVYLTVgdiA4tF9akUssJAWOJfbT5yO1cVmO1vFK0565byYQl3DJ0GjywJXOMMtT wNs96PTLt3gUeTsgGJ0GG+BUEY+ZacKrW7C9ftNfv1VXuD9+s4h3YxlPmv92aN0r+yXSDz eFld3q5dObMQRtPxOZiX/+auCe6XKsSMxVKlbHuvCy2Cs4fLpMqGvTfRWUDCDFEv7cJspK JvZSBgmoZAyIpaV2iwg5UodquU+21D1Yz+SVbGX32b9GbVMQGmr3xNJoOsI67g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684450978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GnrADlT0GVVRTZAmiYyTWIUMssUg2TgdLzXXKvHcS+E=; b=AxXLFsW3nXbd72JhuFzOaITvSaiAX17JpR5N7g147MGyp8Hv5ibRX6tos7Eq5BOB6tvPZx TtRygZETi2mNMDV7RW1LJDi3duOOPpbmYq1/cVekHjJZeWVDk0Cpca6BxLRM8i6icRBDxB u+gixqncQoBBJ0MQR42x+TZMh0JAMN13EC40GePLMIs63vDQzpUfGlnGvXffvl+iN50mz0 SwFW0omInxzBQnKeLVpAt25J5eZGZvOI0fihMm/OEEvTdgulKB+P84Ke7pOxgs2Od55xBT yrbbvXH6uU/er4emONHWHjKNTHvvSp5p3qxL64vv1QmEmSxfiS5u/4QZ5kd9qw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684450978; a=rsa-sha256; cv=none; b=tLq5zoqPBsmToEgOYluYMyy68/+z7xnCJqOfAjh3Bb/vBMrzPPczqOve2Ohw28reRCP1Ah 0Jtt3NQlVslG7FL8bsTY9VkbBIagzABvjlbmX8rqUZqBOeGZDTX3UYeQz76HjbHMo9nJ/2 vBxmcwN4uY9zJMqj5+tJVG/4LryT9EkBkLbZHdFNVaOCwEU6V8n4jhKLMAV5cTREh32hfE 0l5u2LqxAMSBTKERc9mKkvmGtFH+vKMqyagI3DrnLk9MJHuG/wt5ZxPAAsnmYq/yETmMvv EEsDMXP7HYMDNraSmzL74VT98ZdKuxGnQAFhNb1gRtXmVtnA+W11U4pStDfrlQ== 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 4QMlr22qFsz148P; Thu, 18 May 2023 23:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34IN2w4k012331; Thu, 18 May 2023 23:02:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34IN2w0A012330; Thu, 18 May 2023 23:02:58 GMT (envelope-from git) Date: Thu, 18 May 2023 23:02:58 GMT Message-Id: <202305182302.34IN2w0A012330@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: 56b45bf5f6e1 - stable/13 - nfsd: Enable the NFSD_VNET vnet front end macros List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 56b45bf5f6e14f9a46ee896543ad24070f11cc9c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=56b45bf5f6e14f9a46ee896543ad24070f11cc9c commit 56b45bf5f6e14f9a46ee896543ad24070f11cc9c Author: Rick Macklem AuthorDate: 2023-02-18 22:59:36 +0000 Commit: Rick Macklem CommitDate: 2023-05-18 22:59:27 +0000 nfsd: Enable the NFSD_VNET vnet front end macros Several commits have added front end macros for the vnet macros to the NFS server, krpc and kgssapi. These macros are now null, but this patch changes them to front end the vnet macros. With this commit, many global variables in the code become vnet'd, so that nfsd(8), nfsuserd(8), rpc.tlsservd(8) and gssd(8) can run in a vnet prison, once enabled. To run the NFS server in a vnet prison still requires a couple of patches (in D37741 and D38371) that allow mountd(8) to export file systems from within a vnet prison. Once these are committed to main, a small patch to kern_jail.c allowing "allow.nfsd" without VNET_NFSD defined will allow the NFS server to run in a vnet prison. One area that still needs to be settled is cleanup when a prison is removed. Without this, everything should work except there will be a leak of malloc'd data and mutex locks when a vnet prison is removed. (cherry picked from commit ed03776ca7f43de8275da80cfa89a9ecc4732f82) --- sys/fs/nfs/nfs_commonport.c | 2 +- sys/fs/nfs/nfsport.h | 26 +++++++++++++------------- sys/fs/nfsserver/nfs_fha_new.c | 4 ++-- sys/fs/nfsserver/nfs_nfsdport.c | 2 +- sys/kgssapi/gssapi_impl.h | 21 +++++++++++---------- sys/rpc/rpcsec_gss/svc_rpcsec_gss.c | 2 +- sys/rpc/rpcsec_tls.h | 22 +++++++++------------- 7 files changed, 38 insertions(+), 41 deletions(-) diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index 7fdcdf967fff..2079317f1f29 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -900,7 +900,7 @@ nfs_vnetinit(const void *unused __unused) mtx_init(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx, "nfsuserd", NULL, MTX_DEF); } -SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, +VNET_SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, nfs_vnetinit, NULL); extern int (*nfsd_call_nfscommon)(struct thread *, struct nfssvc_args *); diff --git a/sys/fs/nfs/nfsport.h b/sys/fs/nfs/nfsport.h index 0a0e68787f65..bcfbae857755 100644 --- a/sys/fs/nfs/nfsport.h +++ b/sys/fs/nfs/nfsport.h @@ -181,19 +181,19 @@ */ #define NFSMUTEX_T struct mtx -/* Define the NFSD_VNET macros similar to !VIMAGE. */ -#define NFSD_VNET_NAME(n) n -#define NFSD_VNET_DECLARE(t, n) extern t n -#define NFSD_VNET_DEFINE(t, n) t n -#define NFSD_VNET_DEFINE_STATIC(t, n) static t n -#define NFSD_VNET(n) (n) - -#define CTLFLAG_NFSD_VNET 0 - -#define NFSD_CURVNET_SET(n) -#define NFSD_CURVNET_SET_QUIET(n) -#define NFSD_CURVNET_RESTORE() -#define NFSD_TD_TO_VNET(n) NULL +/* Just define the NFSD_VNETxxx() macros as VNETxxx() macros. */ +#define NFSD_VNET_NAME(n) VNET_NAME(n) +#define NFSD_VNET_DECLARE(t, n) VNET_DECLARE(t, n) +#define NFSD_VNET_DEFINE(t, n) VNET_DEFINE(t, n) +#define NFSD_VNET_DEFINE_STATIC(t, n) VNET_DEFINE_STATIC(t, n) +#define NFSD_VNET(n) VNET(n) + +#define CTLFLAG_NFSD_VNET CTLFLAG_VNET + +#define NFSD_CURVNET_SET(n) CURVNET_SET(n) +#define NFSD_CURVNET_SET_QUIET(n) CURVNET_SET_QUIET(n) +#define NFSD_CURVNET_RESTORE() CURVNET_RESTORE() +#define NFSD_TD_TO_VNET(n) TD_TO_VNET(n) #endif /* _KERNEL */ diff --git a/sys/fs/nfsserver/nfs_fha_new.c b/sys/fs/nfsserver/nfs_fha_new.c index 3d18083f7205..20343c7c846f 100644 --- a/sys/fs/nfsserver/nfs_fha_new.c +++ b/sys/fs/nfsserver/nfs_fha_new.c @@ -100,8 +100,8 @@ SYSCTL_PROC(_vfs_nfsd_fha, OID_AUTO, fhe_stats, extern int newnfs_nfsv3_procid[]; -SYSINIT(nfs_fhanew, SI_SUB_VNET_DONE, SI_ORDER_ANY, fhanew_init, NULL); -SYSUNINIT(nfs_fhanew, SI_SUB_VNET_DONE, SI_ORDER_ANY, fhanew_uninit, NULL); +VNET_SYSINIT(nfs_fhanew, SI_SUB_VNET_DONE, SI_ORDER_ANY, fhanew_init, NULL); +VNET_SYSUNINIT(nfs_fhanew, SI_SUB_VNET_DONE, SI_ORDER_ANY, fhanew_uninit, NULL); static void fhanew_init(void *foo) diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index bee9388261fd..578978537cbc 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -6898,7 +6898,7 @@ nfsrv_vnetinit(const void *unused __unused) nfsd_mntinit(); } -SYSINIT(nfsrv_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, +VNET_SYSINIT(nfsrv_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, nfsrv_vnetinit, NULL); /* diff --git a/sys/kgssapi/gssapi_impl.h b/sys/kgssapi/gssapi_impl.h index 72f379de4ebf..21c77ec61d8c 100644 --- a/sys/kgssapi/gssapi_impl.h +++ b/sys/kgssapi/gssapi_impl.h @@ -31,6 +31,8 @@ #include "gssd.h" +#include + MALLOC_DECLARE(M_GSSAPI); struct _gss_ctx_id_t { @@ -55,17 +57,16 @@ struct kgss_mech { LIST_HEAD(kgss_mech_list, kgss_mech); /* Macros for VIMAGE. */ -/* Define the KGSS_VNET macros similar to !VIMAGE. */ -#define KGSS_VNET_NAME(n) n -#define KGSS_VNET_DECLARE(t, n) extern t n -#define KGSS_VNET_DEFINE(t, n) t n -#define KGSS_VNET_DEFINE_STATIC(t, n) static t n -#define KGSS_VNET(n) (n) +/* Just define the KGSS_VNETxxx() macros as VNETxxx() macros. */ +#define KGSS_VNET_DEFINE(t, n) VNET_DEFINE(t, n) +#define KGSS_VNET_DEFINE_STATIC(t, n) VNET_DEFINE_STATIC(t, n) +#define KGSS_VNET_DECLARE(t, n) VNET_DECLARE(t, n) +#define KGSS_VNET(n) VNET(n) -#define KGSS_CURVNET_SET(n) -#define KGSS_CURVNET_SET_QUIET(n) -#define KGSS_CURVNET_RESTORE() -#define KGSS_TD_TO_VNET(n) NULL +#define KGSS_CURVNET_SET(n) CURVNET_SET(n) +#define KGSS_CURVNET_SET_QUIET(n) CURVNET_SET_QUIET(n) +#define KGSS_CURVNET_RESTORE() CURVNET_RESTORE() +#define KGSS_TD_TO_VNET(n) TD_TO_VNET(n) extern struct mtx kgss_gssd_lock; extern struct kgss_mech_list kgss_mechs; diff --git a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c index 693359eff6d6..6c3cbe619c8c 100644 --- a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c +++ b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c @@ -221,7 +221,7 @@ svc_rpc_gss_init(void *arg) sx_init(&svc_rpc_gss_lock, "gsslock"); } } -SYSINIT(svc_rpc_gss_init, SI_SUB_VNET_DONE, SI_ORDER_ANY, +VNET_SYSINIT(svc_rpc_gss_init, SI_SUB_VNET_DONE, SI_ORDER_ANY, svc_rpc_gss_init, NULL); bool_t diff --git a/sys/rpc/rpcsec_tls.h b/sys/rpc/rpcsec_tls.h index 5781424a6180..5f53fc73fbd0 100644 --- a/sys/rpc/rpcsec_tls.h +++ b/sys/rpc/rpcsec_tls.h @@ -86,19 +86,15 @@ bool rpctls_getinfo(u_int *maxlen, bool rpctlscd_run, #define RPCTLS_REFNO_HANDSHAKE 0xFFFFFFFFFFFFFFFFULL /* Macros for VIMAGE. */ -/* Define the KRPC_VNET macros similar to !VIMAGE. */ -#define KRPC_VNET_NAME(n) n -#define KRPC_VNET_DECLARE(t, n) extern t n -#define KRPC_VNET_DEFINE(t, n) t n -#define KRPC_VNET_DEFINE_STATIC(t, n) static t n -#define KRPC_VNET(n) (n) - -#define CTLFLAG_KRPC_VNET 0 - -#define KRPC_CURVNET_SET(n) -#define KRPC_CURVNET_SET_QUIET(n) -#define KRPC_CURVNET_RESTORE() -#define KRPC_TD_TO_VNET(n) NULL +/* Just define the KRPC_VNETxxx() macros as VNETxxx() macros. */ +#define KRPC_VNET_DEFINE(t, n) VNET_DEFINE(t, n) +#define KRPC_VNET_DEFINE_STATIC(t, n) VNET_DEFINE_STATIC(t, n) +#define KRPC_VNET(n) VNET(n) + +#define KRPC_CURVNET_SET(n) CURVNET_SET(n) +#define KRPC_CURVNET_SET_QUIET(n) CURVNET_SET_QUIET(n) +#define KRPC_CURVNET_RESTORE() CURVNET_RESTORE() +#define KRPC_TD_TO_VNET(n) TD_TO_VNET(n) #endif /* _KERNEL */ From nobody Thu May 18 23:09:07 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMlz82GZvz4C7Vw; Thu, 18 May 2023 23:09: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMlz80Yf9z46vS; Thu, 18 May 2023 23:09:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TFxO8f6QNjBHxhz66uQUCyN1e6K07gLOxZuLj+WQCqs=; b=wNPf8XITtbO2Xr+4JCu6J2mfn0ogUKmnS/sYk1uX91Xj2Gu8BABiJYsXO00CHcTc5rdJMn dAhSQsN/gMuvmFd2m5UbQYK2Kf4r2yRFT07CsEpQItr2wvrX8j8W3Bc8NAoymCII1Gz23y AEOCsPqmozpLp/PYTNkHxPQz6unfPczvRIje0tYTj7rCgZCd0luUFB97+tzhGpuHdYfefY TeW9zrYCZ1KaU+FFUj/ebFp7VpGfqucoNJAhAkayJ5z3bp6GHpT7cDXn4JAUqgAUWBzNyL Gnlh/OeeSMT/GWhMIJnixypr/4OIBYPfMMavyBxA5cGNxoG8XHALL2ulKcRMHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451348; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TFxO8f6QNjBHxhz66uQUCyN1e6K07gLOxZuLj+WQCqs=; b=v+PAHcHbsKDueCa5SvzlNh93RW4PnKJYI6SNT2PVrFKaDau7MUNG5JAagD/ULk/8F6fEeR ZoxoW4B3jsm6zZeE2DkMN+38F1e9EPJ/L7qWATvo+LC5IPLtLghzpG2OLAx4JxXKjF/wqg iFWf/B4W5L7SQ2w1O7YckUPwUAq3oUAw5lHIy8wHkUspbC8VOYG7PKnXkwht3vbaLedceO b5Vog+pJwnagdG55bAfnmY25ctPUh9CBSeV0i9EB64QPv+3uRbTJUIYS6LXIt5nGymivmG lXeiLAiMQqCmtaCIQbOBYvRdBFVj1HB7ohWfpdrrFa0gDPOAZn1FXAls+WZr/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684451348; a=rsa-sha256; cv=none; b=yGGXdtApH9cu0a5f7SCuO16VZOqCiBspla2X1JdWF5UYXznlDF8FmizJwfr4BTuoLbGKRT DHPm4xfVZO9vRKwdc0zowt3befmZEhJYnWp51yPoK3RQ1VSwKCAd0GFE8W9RJZj6bJ6t7K MilCx3kBtaO3JOk9y1PrWbqqHxu1x2GQCpiYOxYcv4iQJcMnnGKM4c5jBUnp59sFJkFisg /1gV+UXD46g7jWcXjqubQHFiBDgQjvY0HFaVCHRfx56mGs4WVMKXq/RilcheTQmAaxHwHY ZVj3nWdhYBsld8g5Qcgj4KjYwEBIzrEqAgYdVF4pikgaiVtN6iyIFHdDQDBUWg== 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 4QMlz76lK0z14fp; Thu, 18 May 2023 23:09:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34IN97g1013179; Thu, 18 May 2023 23:09:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34IN97We013178; Thu, 18 May 2023 23:09:07 GMT (envelope-from git) Date: Thu, 18 May 2023 23:09:07 GMT Message-Id: <202305182309.34IN97We013178@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: 8fecd12ec950 - stable/13 - nfsd: Add VNET_SYSUNINIT() macros for vnet cleanup List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 8fecd12ec95005f11ff6f0f43c0cb6e59fdf5317 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=8fecd12ec95005f11ff6f0f43c0cb6e59fdf5317 commit 8fecd12ec95005f11ff6f0f43c0cb6e59fdf5317 Author: Rick Macklem AuthorDate: 2023-02-20 21:11:22 +0000 Commit: Rick Macklem CommitDate: 2023-05-18 23:05:48 +0000 nfsd: Add VNET_SYSUNINIT() macros for vnet cleanup Commit ed03776ca7f4 enabled the vnet front end macros. As such, for kernels built with the VIMAGE option will malloc data and initialize locks on a per-vnet basis, typically via a VNET_SYSINIT(). This patch adds VNET_SYSUNINIT() macros to do the frees of the per-vnet malloc'd data and destroys of per-vnet locks. It also removes the mtx_lock/mtx_unlock calls from nfsrvd_cleancache(), since they are not needed. (cherry picked from commit ef6fcc5e2b0714c859d2e4ba23a55b1fd12f8a4e) --- sys/fs/nfs/nfs_commonport.c | 28 +++++++++++++--------------- sys/fs/nfsserver/nfs_nfsdcache.c | 4 ---- sys/fs/nfsserver/nfs_nfsdport.c | 10 +++------- sys/rpc/rpcsec_gss/svc_rpcsec_gss.c | 15 ++++++++++++++- sys/rpc/rpcsec_tls.h | 3 --- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index 2079317f1f29..d72565cd3e9c 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -151,7 +151,6 @@ struct mtx nfs_clstate_mutex; /* local functions */ static int nfssvc_call(struct thread *, struct nfssvc_args *, struct ucred *); -static void nfs_clean(struct prison *); #ifdef __NO_STRICT_ALIGNMENT /* @@ -872,19 +871,6 @@ nfs_pnfsio(task_fn_t *func, void *context) return (ret); } -static void -nfs_clean(struct prison *pr) -{ - - NFSD_CURVNET_SET(pr->pr_vnet); - mtx_destroy(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx); - if (pr != &prison0) - free(NFSD_VNET(nfsstatsv1_p), M_TEMP); - /* Clean out the name<-->id cache. */ - nfsrv_cleanusergroup(); - NFSD_CURVNET_RESTORE(); -} - /* * Initialize everything that needs to be initialized for a vnet. */ @@ -903,6 +889,19 @@ nfs_vnetinit(const void *unused __unused) VNET_SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, nfs_vnetinit, NULL); +static void +nfs_cleanup(void *unused __unused) +{ + + mtx_destroy(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx); + if (!IS_DEFAULT_VNET(curvnet)) + free(NFSD_VNET(nfsstatsv1_p), M_TEMP); + /* Clean out the name<-->id cache. */ + nfsrv_cleanusergroup(); +} +VNET_SYSUNINIT(nfs_cleanup, SI_SUB_VNET_DONE, SI_ORDER_ANY, + nfs_cleanup, NULL); + extern int (*nfsd_call_nfscommon)(struct thread *, struct nfssvc_args *); /* @@ -939,7 +938,6 @@ nfscommon_modevent(module_t mod, int type, void *data) } nfsd_call_nfscommon = NULL; - nfs_clean(&prison0); /* and get rid of the mutexes */ mtx_destroy(&nfs_nameid_mutex); mtx_destroy(&newnfsd_mtx); diff --git a/sys/fs/nfsserver/nfs_nfsdcache.c b/sys/fs/nfsserver/nfs_nfsdcache.c index 2629c795802f..0eb623b6f5ee 100644 --- a/sys/fs/nfsserver/nfs_nfsdcache.c +++ b/sys/fs/nfsserver/nfs_nfsdcache.c @@ -824,13 +824,10 @@ nfsrvd_cleancache(void) int i; for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - mtx_lock(&NFSD_VNET(nfsrchash_table)[i].mtx); LIST_FOREACH_SAFE(rp, &NFSD_VNET(nfsrchash_table)[i].tbl, rc_hash, nextrp) nfsrc_freecache(rp); - mtx_unlock(&NFSD_VNET(nfsrchash_table)[i].mtx); } - mtx_lock(&nfsrc_udpmtx); for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { LIST_FOREACH_SAFE(rp, &NFSD_VNET(nfsrvudphashtbl)[i], rc_hash, nextrp) { @@ -838,7 +835,6 @@ nfsrvd_cleancache(void) } } NFSD_VNET(nfsstatsv1_p)->srvcache_size = 0; - mtx_unlock(&nfsrc_udpmtx); NFSD_VNET(nfsrc_tcpsavedreplies) = 0; } diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 578978537cbc..4247177a3fc0 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -108,8 +108,6 @@ NFSD_VNET_DEFINE_STATIC(struct vfsoptlist, nfsv4root_newopt); NFSD_VNET_DEFINE_STATIC(bool, nfsrv_suspend_nfsd) = false; NFSD_VNET_DEFINE_STATIC(bool, nfsrv_mntinited) = false; -static void nfsrv_cleanup(struct prison *); - static int nfssvc_srvcall(struct thread *, struct nfssvc_args *, struct ucred *); static void nfsvno_updateds(struct vnode *, struct ucred *, struct thread *); @@ -6906,15 +6904,13 @@ VNET_SYSINIT(nfsrv_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, * done when the jail is destroyed or the module unloaded. */ static void -nfsrv_cleanup(struct prison *pr) +nfsrv_cleanup(const void *unused __unused) { int i; - NFSD_CURVNET_SET(pr->pr_vnet); NFSD_LOCK(); if (!NFSD_VNET(nfsrv_mntinited)) { NFSD_UNLOCK(); - NFSD_CURVNET_RESTORE(); return; } NFSD_VNET(nfsrv_mntinited) = false; @@ -6954,8 +6950,9 @@ nfsrv_cleanup(struct prison *pr) free(NFSD_VNET(nfssessionhash), M_NFSDSESSION); free(NFSD_VNET(nfsv4root_mnt), M_TEMP); NFSD_VNET(nfsv4root_mnt) = NULL; - NFSD_CURVNET_RESTORE(); } +VNET_SYSUNINIT(nfsrv_cleanup, SI_SUB_VNET_DONE, SI_ORDER_ANY, + nfsrv_cleanup, NULL); extern int (*nfsd_call_nfsd)(struct thread *, struct nfssvc_args *); @@ -6996,7 +6993,6 @@ nfsd_modevent(module_t mod, int type, void *data) vn_deleg_ops.vndeleg_disable = NULL; #endif nfsd_call_nfsd = NULL; - nfsrv_cleanup(&prison0); mtx_destroy(&nfsrc_udpmtx); mtx_destroy(&nfs_v4root_mutex); mtx_destroy(&nfsrv_dontlistlock_mtx); diff --git a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c index 6c3cbe619c8c..05be03bb74ea 100644 --- a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c +++ b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c @@ -206,7 +206,7 @@ KGSS_VNET_DEFINE(struct svc_rpc_gss_client_list, svc_rpc_gss_clients); KGSS_VNET_DEFINE_STATIC(uint32_t, svc_rpc_gss_next_clientid) = 1; static void -svc_rpc_gss_init(void *arg) +svc_rpc_gss_init(void *unused __unused) { int i; @@ -224,6 +224,19 @@ svc_rpc_gss_init(void *arg) VNET_SYSINIT(svc_rpc_gss_init, SI_SUB_VNET_DONE, SI_ORDER_ANY, svc_rpc_gss_init, NULL); +static void +svc_rpc_gss_cleanup(void *unused __unused) +{ + + mem_free(KGSS_VNET(svc_rpc_gss_client_hash), + sizeof(struct svc_rpc_gss_client_list) * + svc_rpc_gss_client_hash_size); + if (IS_DEFAULT_VNET(curvnet)) + sx_destroy(&svc_rpc_gss_lock); +} +VNET_SYSUNINIT(svc_rpc_gss_cleanup, SI_SUB_VNET_DONE, SI_ORDER_ANY, + svc_rpc_gss_cleanup, NULL); + bool_t rpc_gss_set_callback(rpc_gss_callback_t *cb) { diff --git a/sys/rpc/rpcsec_tls.h b/sys/rpc/rpcsec_tls.h index 5f53fc73fbd0..77c969c0655e 100644 --- a/sys/rpc/rpcsec_tls.h +++ b/sys/rpc/rpcsec_tls.h @@ -72,9 +72,6 @@ enum clnt_stat rpctls_srv_disconnect(uint64_t sec, uint64_t usec, /* Initialization function for rpcsec_tls. */ int rpctls_init(void); -/* Cleanup function for rpcsec_tls. */ -void rpctls_cleanup(void); - /* Get TLS information function. */ bool rpctls_getinfo(u_int *maxlen, bool rpctlscd_run, bool rpctlssd_run); From nobody Thu May 18 23:10:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMm0g48syz4C7ry; Thu, 18 May 2023 23:10:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMm0g3YJxz47C5; Thu, 18 May 2023 23:10:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451427; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z2G/wHFBAvycS2wHrFPMVtnqs5GPVuSo1mQ4RFtdRtQ=; b=pk90Hso2IHuYWDVHB7M2dwZ08u7og8N7BKeWwjvCJIGXR+0XtZrRZVvp/XRqWhCAUhitd+ r3CEJkUU6e8c9XemKGcZLB3mt2bDWDlbOmz2tiQOGibpAjUCAW2zY/SpQgtFrnUvSZe8pi UqD6ySNNeGyPN8cvfk0wc0ohisoAIYuzh30Yif/wYhWLkSR7GY55SIrhviobKncYw6np90 lR3QhmAg/5R7ng88WDJnuhzJ5N5LKcoeY9ua6UhOlX6uSO0MfSIXdzH75IaKh7+T5Umru7 0HW8drbpJaOTCcRt9HqSRLIbw17MUrH+TPItVm6sx/KY12CNn5IIDfuD9UjxdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451427; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z2G/wHFBAvycS2wHrFPMVtnqs5GPVuSo1mQ4RFtdRtQ=; b=GqY1RekR/Va7kW8MH5O4O39XxEj4EuNVeaQdYoTl5SCKtBOMW1Lp09YOiKtc8UcKqLWdgG 2F0tH201LlDPdaYLZhdjODhQzTKG0glIp7WO3jw8YrRexMO9lKluiEtInOEkt6tvbIWL1l LPoiIFIcS5jJJR1ua1Q6nt680g9kCbwTKXsP3N54cErnBBmmmA5/AGNvrRfIbEG53iZEQE ryiTYLfZeJB318efn32HnwD7eUsexXfyBJMDcTmJIs8VALF73AjNYtFf2aLecSQqWBF5n0 mCus4XB0c+/hgVdF+XjdphDsQu+VnA9iAWzGpFIprIlzNjQqARKnCeiJWt7oAw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684451427; a=rsa-sha256; cv=none; b=aKEL06VhAZeD2M8CAUdXhqZ5BVYgTtgBi/e/r98YBasof16cmiT7WEpGBkCkwp5wHLZ4a3 672dQlDKQU+oW88PfYOQF7M2Tuj/lHkNazpOeEaPBIpo+DmEhjVbkhRUpQ+XvK1LNWAQTt mvyD0eg782FfML3etJdQN5+2/pGUkMVxMPdtPiQVqeLOkGWjVjMc2fszXqsGxTRAthZte8 g9Nhf2QcJMI1YX81GsBBz1DswHAZXWSyaqKTPiY/OohSrDNuCvVOLXEgmOZiMT9T6B6AaD XTBEYw+S8r/Zf2LebaMrtXOk/GPELuLAQjDl1XH+ng2XJFp/9YrdF2rnVIDj4w== 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 4QMm0g2bmMz14n6; Thu, 18 May 2023 23:10:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34INARfI021869; Thu, 18 May 2023 23:10:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34INAR73021868; Thu, 18 May 2023 23:10:27 GMT (envelope-from git) Date: Thu, 18 May 2023 23:10:27 GMT Message-Id: <202305182310.34INAR73021868@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: b4098b4fd6d6 - stable/13 - nfscommon: Use IS_DEFAULT_VNET() in the vnet initialization List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: b4098b4fd6d63d88abba265b06bf4aa39174b7be Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=b4098b4fd6d63d88abba265b06bf4aa39174b7be commit b4098b4fd6d63d88abba265b06bf4aa39174b7be Author: Rick Macklem AuthorDate: 2023-02-21 03:43:37 +0000 Commit: Rick Macklem CommitDate: 2023-05-18 23:09:39 +0000 nfscommon: Use IS_DEFAULT_VNET() in the vnet initialization Another oopsie. The vnet initialization function in nfs_commonport.c for initializing prison0 by testing curthread->td_ucred->cr_prison == &prison0. This is bogus and always true. Replace it with IS_DEFAULT_VNET(curvnet). (cherry picked from commit ef4e8f0cf91f7009745d5a7a90d3bdd2d9e25780) --- sys/fs/nfs/nfs_commonport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index d72565cd3e9c..e78edff964f9 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -878,7 +878,7 @@ static void nfs_vnetinit(const void *unused __unused) { - if (curthread->td_ucred->cr_prison == &prison0) + if (IS_DEFAULT_VNET(curvnet)) NFSD_VNET(nfsstatsv1_p) = &nfsstatsv1; else NFSD_VNET(nfsstatsv1_p) = malloc(sizeof(struct nfsstatsv1), From nobody Thu May 18 23:12:12 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMm2h5ln9z4C7X2; Thu, 18 May 2023 23:12: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMm2h2qKHz49G6; Thu, 18 May 2023 23:12:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vkk4Ml/9sXcjPJV3BqkdoMLh2FsCrY44H+zNJRs39rI=; b=ml/tL/XnR4iB3696ebaMzRwNyexPUFplg3V7oHvADHv4EnN4Z4+OkktUlApDGn5zlKiELU GiY48o6U68ug8mwcxs4e5U2TlM9446Fs7aXVJYt2sN6IJI51/ORTbx1fV/HmuUquY45878 ZQuKWBe6tc054n9mq3m7ZFNYfBmTiFG/BpIuBjZcXdUCOKkl0+rI54pqpd85kOR8zDrsLl ldFEsfhRS+WvvxusILnuSYBlykwTux6u4cW5+T9wrdVj4dE/obl6b9ksJLlSr1W3tnrVs/ t8NT6NTS0jxY2pKltq1YbpYgC3XEqQAo+NnjzA18PuRHYYWFodU/l5lZFj1qWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451532; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vkk4Ml/9sXcjPJV3BqkdoMLh2FsCrY44H+zNJRs39rI=; b=moRGu1khz1Da4ILF6KoHfsUKUp/0xCr9Bq9NIrn2UQpEb6aoCFi+JydXdqEJTffgvdP/U+ GQHR5/3x7SQXRA3sdRJhglbB1AvPPmsks9yOk+LpxoGFFQhgkS/X8D+116z4FR2ilT9b/g wiC0srBn71O12ltr9cWkj1rr093bm553/Uhd9+sxWzxDGBLxbBmIgyjSVYMWhn/fzdWNwY ntMVWBXcYLCZpkWlEwFWvuYyzip6F954fBOwBhb2tNsVx1nfXKyk7jhUGPIOxIr83D2d9z u9aDZONSHVhch8TyODJpgxi/1qaB423Hs5uMDVVHhEI+xIsSJ5ovSEdMbkmCPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684451532; a=rsa-sha256; cv=none; b=qE2NBs4qR9lECUWCU5T71Z9Sjmk83u1+1SQ8BwS/X14EpMQwnn4PBikANOQH5ybzVaakqJ Z9zPYRtTA+rAJu/mtFw90CE1wO1c91TMvxN7IpStcaKtzOXsMJj2jpL2w8qsgTXJ2HKcyw I4Xo0FCy1qBtJoRbSCdYDy8Zi2+5ob/HY+2BL0R0ERuCbr3xl0BkSwNy7XVo8nKkH0lxFj 4rtYEtcSLpj5xlEP7vOxQ+7qw7hKllmoNjpi8/7efJmwDENsYCET5efi2YuqBbsC75VFPz fKax1/JSCarga60OkZFkswCsX9gdT32EpTus3plRjuWLrXdBjEPSvvu6eBNz5A== 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 4QMm2h1vKFz14l7; Thu, 18 May 2023 23:12:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34INCCNj028440; Thu, 18 May 2023 23:12:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34INCCOe028439; Thu, 18 May 2023 23:12:12 GMT (envelope-from git) Date: Thu, 18 May 2023 23:12:12 GMT Message-Id: <202305182312.34INCCOe028439@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: c71535c29df0 - stable/13 - nfsd: Fix a use after free when vnet prisons are deleted List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: c71535c29df0ed25b879b42b0ffe2fd5386fa94e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=c71535c29df0ed25b879b42b0ffe2fd5386fa94e commit c71535c29df0ed25b879b42b0ffe2fd5386fa94e Author: Rick Macklem AuthorDate: 2023-02-24 15:36:28 +0000 Commit: Rick Macklem CommitDate: 2023-05-18 23:10:58 +0000 nfsd: Fix a use after free when vnet prisons are deleted The Kasan tests show the nfsrvd_cleancache() results in a modify after free. I think this occurs because the nfsrv_cleanup() function gets executed after nfs_cleanup() which free's the nfsstatsv1_p. This patch makes them use the same subsystem and sets SI_ORDER_FIRST for nfs_cleanup(), so that it will be called after nfsrv_cleanup() via VNET_SYSUNINIT(). The patch also sets nfsstatsv1_p NULL after free'ng it, so that a crash will result if it is used after free'ng. (cherry picked from commit 4036fcb8053adf3ac54c8428eef0dd076dfc1718) --- sys/fs/nfs/nfs_commonport.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index e78edff964f9..7f64b3e978a3 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -886,7 +886,7 @@ nfs_vnetinit(const void *unused __unused) mtx_init(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx, "nfsuserd", NULL, MTX_DEF); } -VNET_SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, +VNET_SYSINIT(nfs_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_FIRST, nfs_vnetinit, NULL); static void @@ -894,12 +894,14 @@ nfs_cleanup(void *unused __unused) { mtx_destroy(&NFSD_VNET(nfsrv_nfsuserdsock).nr_mtx); - if (!IS_DEFAULT_VNET(curvnet)) + if (!IS_DEFAULT_VNET(curvnet)) { free(NFSD_VNET(nfsstatsv1_p), M_TEMP); + NFSD_VNET(nfsstatsv1_p) = NULL; + } /* Clean out the name<-->id cache. */ nfsrv_cleanusergroup(); } -VNET_SYSUNINIT(nfs_cleanup, SI_SUB_VNET_DONE, SI_ORDER_ANY, +VNET_SYSUNINIT(nfs_cleanup, SI_SUB_VNET_DONE, SI_ORDER_FIRST, nfs_cleanup, NULL); extern int (*nfsd_call_nfscommon)(struct thread *, struct nfssvc_args *); From nobody Thu May 18 23:15:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMm694jf3z4C83p; Thu, 18 May 2023 23:15: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMm6943jsz49ds; Thu, 18 May 2023 23:15:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tr3wb24u19Wyhom8klKeyeRmq4o3XfzPiex68KH6+BY=; b=LrI0Rbk/tZ+jXQ4aNpx0otfC1hck8MjjjkDoNfJ9qGsDwtJrpd8U8Chlh5nO+olXIa2fy5 4j8VzfTSan8/9OcdIIVpT+tlVaYdZhsnfDKOxkHk7m9NHDVZwHl1AIB4uCp3Aox9kD4FNM m8Gx1kz+7scNme2s80osbF/tHfcixoLtM1qiZ7Zpthj6wRNRv6yRKGiRBNssMaJMMNpCkA 1h0qdrI+TPVMoTy5wVpHPiDWgQ3VKKAsxkGFlknLNkcXDC2zjhyUBSNX4/abNBrhCrOxsh psGv837cAIDijfMF/wlxA+DQnELqPyfVzvVohTuJDw2K0XykCZPzfMQqcqYZCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684451713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tr3wb24u19Wyhom8klKeyeRmq4o3XfzPiex68KH6+BY=; b=SKIUYryhYIHmgzJ5hzX/IKlHeBIL5zn1uoqHf0g5yU8UEw2XjI2y7DSK3ay6FcbjtEy0y1 uRvdfTyWpF2UFTqZrqWm9X7B/NcHNve6t0la7Pyy8ein9dL0Df/3euZNwyXJiAJlxm8ETL s2t2PZ2za1uMGLTJ+i/SjfdqKHYicZ/XUzW+KTWCGpqPjvWNi2rB87oJcYwSjmafJeXMc0 w6YoOIBjN5eMQE0RzauP+vviH3YrlbsuBCaBcL1qMX8ILVRkMZ6Ji8rv8RIz12hilClj0S sJcHRVptAsKJyRzCFZadWTEN+5xlxrOcnc68MK9B8H3FJp6pd6BmCwjgyGMKGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684451713; a=rsa-sha256; cv=none; b=J18RczZHIqwN0iDlDVAx6zOtesJeRV4DlcuwnZWpTlos2uXibrvBYInYX9RQUpFMWZog+r k/TeN9tr5HdfXEhjA6Mpu8JzpzBgFdfJpvpmajrWp5s+dgKqps2Fe/J7j0ZAbCo0vIYJbE tTTIvvuEIjtkWlUtu6nWk/ERB2m91jlBAPDuAfAa4crHbQyd+AdUr96gpBc52+/nPKEp+F +0UTTI4NU9r7zphuMcXb2zJW3YI9l2arG6roLuu+2/DjDDfr0B/nTJcC3r7c0vWKVZd5VS jP3KOT2xhQVVesS1YEkuPnfGxGxh2n/o96MvXUViK4d6eb2PRZPra0E16IHg+A== 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 4QMm692s4cz14gj; Thu, 18 May 2023 23:15:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34INFDsY029011; Thu, 18 May 2023 23:15:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34INFD0M029010; Thu, 18 May 2023 23:15:13 GMT (envelope-from git) Date: Thu, 18 May 2023 23:15:13 GMT Message-Id: <202305182315.34INFD0M029010@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: 34a0d4cbae16 - stable/13 - svc_rpcsec_gss.c: Separate out the non-vnet initialization List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 34a0d4cbae1689a5f362a2d8cf32f23335fa0359 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=34a0d4cbae1689a5f362a2d8cf32f23335fa0359 commit 34a0d4cbae1689a5f362a2d8cf32f23335fa0359 Author: Rick Macklem AuthorDate: 2023-03-01 23:29:25 +0000 Commit: Rick Macklem CommitDate: 2023-05-18 23:12:47 +0000 svc_rpcsec_gss.c: Separate out the non-vnet initialization Without this patch, a single initialization function was used to initialize both the vnet'd and non-vnet'd data. This patch separates out the non-vnet'd initializations into a separate function invoked by SYSINIT(). This avoids use of IS_DEFAULT_VNET() in the initialization functions and also configures the non-vnet'd initialization function to be called first, although ordering is not currently needed. (cherry picked from commit 57ff348804f98d956f2e203b665de5a8989dbf8c) --- sys/rpc/rpcsec_gss/svc_rpcsec_gss.c | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c index 05be03bb74ea..872468aa7b18 100644 --- a/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c +++ b/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c @@ -207,6 +207,25 @@ KGSS_VNET_DEFINE_STATIC(uint32_t, svc_rpc_gss_next_clientid) = 1; static void svc_rpc_gss_init(void *unused __unused) +{ + + svc_auth_reg(RPCSEC_GSS, svc_rpc_gss, rpc_gss_svc_getcred); + sx_init(&svc_rpc_gss_lock, "gsslock"); +} +SYSINIT(svc_rpc_gss_init, SI_SUB_VFS, SI_ORDER_ANY, + svc_rpc_gss_init, NULL); + +static void +svc_rpc_gss_cleanup(void *unused __unused) +{ + + sx_destroy(&svc_rpc_gss_lock); +} +SYSUNINIT(svc_rpc_gss_cleanup, SI_SUB_VFS, SI_ORDER_ANY, + svc_rpc_gss_cleanup, NULL); + +static void +svc_rpc_gss_vnetinit(void *unused __unused) { int i; @@ -216,26 +235,20 @@ svc_rpc_gss_init(void *unused __unused) for (i = 0; i < svc_rpc_gss_client_hash_size; i++) TAILQ_INIT(&KGSS_VNET(svc_rpc_gss_client_hash)[i]); TAILQ_INIT(&KGSS_VNET(svc_rpc_gss_clients)); - if (IS_DEFAULT_VNET(curvnet)) { - svc_auth_reg(RPCSEC_GSS, svc_rpc_gss, rpc_gss_svc_getcred); - sx_init(&svc_rpc_gss_lock, "gsslock"); - } } -VNET_SYSINIT(svc_rpc_gss_init, SI_SUB_VNET_DONE, SI_ORDER_ANY, - svc_rpc_gss_init, NULL); +VNET_SYSINIT(svc_rpc_gss_vnetinit, SI_SUB_VNET_DONE, SI_ORDER_ANY, + svc_rpc_gss_vnetinit, NULL); static void -svc_rpc_gss_cleanup(void *unused __unused) +svc_rpc_gss_vnet_cleanup(void *unused __unused) { mem_free(KGSS_VNET(svc_rpc_gss_client_hash), sizeof(struct svc_rpc_gss_client_list) * svc_rpc_gss_client_hash_size); - if (IS_DEFAULT_VNET(curvnet)) - sx_destroy(&svc_rpc_gss_lock); } -VNET_SYSUNINIT(svc_rpc_gss_cleanup, SI_SUB_VNET_DONE, SI_ORDER_ANY, - svc_rpc_gss_cleanup, NULL); +VNET_SYSUNINIT(svc_rpc_gss_vnet_cleanup, SI_SUB_VNET_DONE, SI_ORDER_ANY, + svc_rpc_gss_vnet_cleanup, NULL); bool_t rpc_gss_set_callback(rpc_gss_callback_t *cb) From nobody Fri May 19 08:10:29 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzn4x4Zz4BdfX; Fri, 19 May 2023 08:10:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzn4Lsrz4CM3; Fri, 19 May 2023 08:10:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483829; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=waGlwCeJ1IVYQZBNfznQvbgX95V1/Uz5m3sQr9FgWVc=; b=KKWkwQusd2Y09GFJYfXO/Ba3/ylr/0k9MFsT43znlwtCGDuQ0vO0m1bkenDpb7LIDl6cpN vshGlWKvhAZYoaHPDisAlDt2jhEouDHLlu0pPKTQThzKRYS47MVxEPtDrtfTEpIV2P80qA aRt5ZKrNf5RXQFB4zgZfD2+AxYumhLE/0hKMon6bwjefNdQbkJjZssAZkv0IJpD8uFomlY BrMCYz40xpxZscf/M019at8pNaN5TUzQ/ByTxW7rDpgmcy9sskfuoONuZt4DTE62a1z0db A8FnipHMbbSmgBGSawLJumsWO+drtcF7wZrH4c4s27ek6vXrllpyRHsp52OX+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483829; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=waGlwCeJ1IVYQZBNfznQvbgX95V1/Uz5m3sQr9FgWVc=; b=GUIP83lXYsZR05GzRDYGbeScFHOZ5zx4oi8LwleelLmmQ9krybS4aVJ4iiJpD48JNPEcTm MRyf64NbQ/UIPVfJ9jYgAJ3BMQ7/0nMO5qODwNHiD+ABUcIpWtdn4v9pAhGQIr9acLJqvV 2hUkjuXf/lVA1EynFtVPNx27eOEdYyNByAlZTcvYBKk5URhbB7yfQ4JBBU3yFPQB3KBlk3 IZ7anSzVJysG12ikeANzdOUgfBF7OHaKD6ftN4AaYz1ioJcO3Iu4f8o71iZ/Mlr4iAVgPK uoo855/SfoUv71yFzsa9gD2RiBnE4czfSHWtuwavog1piMJzQysAAaXGY6Jv3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483829; a=rsa-sha256; cv=none; b=EBvxZirDJKq3GvAjDEu7nfC/eRf4JMubnfagfn1xH7cWGDvibhjjaDoE4grMWI/aXczo9k I65yKNDGxjnbyJkiRk3V4zlTEOvdBDtSWUuGUFkQUKuanVqIt96MZJfLzUE37HR7hJIt1L qpDW73uLb+rEqr0geMlgadKTShvft94h8RQ3RjkWIAt5S95c7lawlVtLvEimfJxsqgTl2p 6f4OCLh79l7DX3LerZKVpnmgsQmLYd4EXj3VeTVRY21B7a6R304wsLaehunOXRE9CDLghP YLMjBzbdry/FZ+fcKbeNRzzQpUkVNKt1a4r8Y+LKXCz+eqyvjYkDJYgBzNRLTg== 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 4QMzzn3Ml9zL4q; Fri, 19 May 2023 08:10:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8ATQZ009853; Fri, 19 May 2023 08:10:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8ATtX009852; Fri, 19 May 2023 08:10:29 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:29 GMT Message-Id: <202305190810.34J8ATtX009852@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: 0edfc2a92c80 - stable/13 - sh(1): fix history file write checking List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 0edfc2a92c80650c2b9ea8d8572752d0a1e6e8eb Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=0edfc2a92c80650c2b9ea8d8572752d0a1e6e8eb commit 0edfc2a92c80650c2b9ea8d8572752d0a1e6e8eb Author: Daniel Kolesa AuthorDate: 2023-03-20 16:42:59 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:07:37 +0000 sh(1): fix history file write checking We cannot just compare histsizeval() against 0, since that returns a string pointer, which is always non-zero (non-null). The logic in sethistsize() initializes the history size to 100 with values that are non-number, and an empty string counts as that. Therefore, the only time we want to not write into history with HISTSIZE val set is when it's explicitly 0. MFC after: 2 weeks (cherry picked from commit 3ce64010f8ce3accc64eff312f31dc0d3c0fc9d1) --- bin/sh/histedit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c index b9af20e6e9ab..dc4bff469d3f 100644 --- a/bin/sh/histedit.c +++ b/bin/sh/histedit.c @@ -90,7 +90,7 @@ get_histfile(void) const char *histfile; /* don't try to save if the history size is 0 */ - if (hist == NULL || histsizeval() == 0) + if (hist == NULL || !strcmp(histsizeval(), "0")) return (NULL); histfile = expandstr("${HISTFILE-${HOME-}/.sh_history}"); From nobody Fri May 19 08:10:30 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzp5pPxz4BdRG; Fri, 19 May 2023 08:10:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzp5B8Nz4CMP; Fri, 19 May 2023 08:10:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n7yKMNhAZcJDLeZ+mRnHd1x9riOi7a93kcBKy0BkBFc=; b=WVC2Ltar0Knw9TP51JgfhQ++NSyRCgVusfgUDdDwrmm6Wjx4yhwfVkg9Eu6CdOpJj9dVZN wP+7f+hwqyHCuNzsUPkc97sA3jiRVD0Z8t3sP9pYFwYash3ZF9ke77TBxzwBcoVMulFhGo mZ4LwsTBt4DPkecIH6KCcXyMtI/4azcGaK95358i2NJjNHOgPs6nkj796CIsh71iwUR8yh JEXSGUFIhrORKwELndr95AtAeh1CjICVuly07yIXFkdJXMeu9B2vIBa8X4oNrjaXw7U2SL yRBPRwuedotAR4mlscZZbHuHNuohkfu+S6Q5VuAPjxmLb3F5YtcDLJS1Rw8XEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483830; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=n7yKMNhAZcJDLeZ+mRnHd1x9riOi7a93kcBKy0BkBFc=; b=mWYShBbPCIlOuPQapka/qyZotqgpnFit+lxDUN3JbqtwTbDX2K/or+DIqqA3vwj/IwVJ8w OjfIXPSFCLnthKWbyHNLSWc9bVnPsAD8WsGToGcMMyj1LZut8uGKdgbIXqZ92mcbdeve9M eoyROg/YNJ/V9gfZypiV/CTQhCTEKHL/my92o6dIGYjTCfAYloPf7FAjEk6gXQurPq1dji T+fSIv0yO8r/F1Bugo16Hj+7cL5oGuRiLjXcH5+/e6VWqDllUNZ/6y1yKCZCDE1t89UokT hrZjkkfjbA2pSKzMVlxQB74rMulhR6+9B0vzuw1Llh8GEcooMS2QtdwXNcvs6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483830; a=rsa-sha256; cv=none; b=a1DXF6nausN741Ly4B3SRQJkzpy2fW0pH0EIMwfe+qUpLB1DJmG1TxJhDxoDYnRJOjaM8d Qk0Tj5uXrgmRCQ0r2VBz7cDqxnDimPECCKF5ex3U+oaB4bMJUuRUGtNgsVqQiG/0+PtbkS VBoclrbgP8kuTMKPOPQVuXlKv8MhfRn5W79Z9MI12NKjRPZFFaQN4zeAvIrd8Xm5vmVt8A U4s+9FmX7Ddx1xnCBbzbkndCXT5rD7U5B6I1mPArQHlRwRjYRxJWA6wujhLGNuo3A3vsX5 2biDYJn1UpJIyl72Jo78JwZWLirOkL2nzezagSStBwCCsdurVUlj+Bav3Vku9Q== 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 4QMzzp4HgbzKhL; Fri, 19 May 2023 08:10:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8AUM0009873; Fri, 19 May 2023 08:10:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8AUeF009872; Fri, 19 May 2023 08:10:30 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:30 GMT Message-Id: <202305190810.34J8AUeF009872@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: c1150a63791d - stable/13 - pw: do not call system() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: c1150a63791d98598395dfaf8cd880cd3173194b Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=c1150a63791d98598395dfaf8cd880cd3173194b commit c1150a63791d98598395dfaf8cd880cd3173194b Author: Baptiste Daroussin AuthorDate: 2023-05-15 06:55:08 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:08:15 +0000 pw: do not call system() Calling system makes pw(8) spawn a shell, which can then be abused. MFC After: 3 days (cherry picked from commit ef7d0eb9489f39169a1ae83c576fe74e40d126ad) --- usr.sbin/pw/pw_user.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index b16faaf52bdb..f0f87b923c0d 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -50,6 +50,7 @@ static const char rcsid[] = #include #include #include +#include #include "pw.h" #include "bitmap.h" @@ -57,6 +58,7 @@ static const char rcsid[] = #define LOGNAMESIZE (MAXLOGNAME-1) +extern char **environ; static char locked_str[] = "*LOCKED*"; static struct passwd fakeuser = { @@ -695,11 +697,16 @@ rmat(uid_t uid) stat(e->d_name, &st) == 0 && !S_ISDIR(st.st_mode) && st.st_uid == uid) { - char tmp[MAXPATHLEN]; - - snprintf(tmp, sizeof(tmp), "/usr/bin/atrm %s", - e->d_name); - system(tmp); + const char *argv[] = { + "/usr/sbin/atrm", + e->d_name, + NULL + }; + if (posix_spawn(NULL, argv[0], NULL, NULL, + (char *const *) argv, environ)) { + warn("Failed to execute '%s %s'", + argv[0], argv[1]); + } } } closedir(d); @@ -950,9 +957,18 @@ pw_user_del(int argc, char **argv, char *arg1) /* Remove crontabs */ snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name); if (access(file, F_OK) == 0) { - snprintf(file, sizeof(file), "crontab -u %s -r", - pwd->pw_name); - system(file); + const char *argv[] = { + "crontab", + "-u", + pwd->pw_name, + "-r", + NULL + }; + if (posix_spawnp(NULL, argv[0], NULL, NULL, + (char *const *) argv, environ)) { + warn("Failed to execute '%s %s'", + argv[0], argv[1]); + } } } From nobody Fri May 19 08:10:31 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzq6gT4z4Bdfc; Fri, 19 May 2023 08:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzq6BZ8z4CXG; Fri, 19 May 2023 08:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nVT+JWicSS4L0ENSsX00qDXAuLI7vRZX6QR8QcQkUpE=; b=lGBPzg2mu26+Gfvne8irdBTy20r1YxSj6mwMp4DKTZb2BquN9VZd1yrSAOA1OjSXKsCQYm vTi0M5zV8+Li+xHTnzU7obPrsmkvEiIPMD1lTOXUyLE9UWbfVVKW3rTdEalX6wQzTTSjpt bWNQxkmDM5elMr1JEEVfbMtX9DZGmzcG26NY4oea+6BewZUbMxMMj+JSV18iSO2yjzsmoh gHUnq/K2w5XTBv/PU+SEoLcAAJ9B40uZ0HBcVxZzGnqMGT+24yI0u6uBQJvo65Zm22JBMW MEks8ptcVHoANQSJg0LLGLLvcq9B8HalzF2C2iQRew27VaEHgPlF0MBhycWmwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483831; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nVT+JWicSS4L0ENSsX00qDXAuLI7vRZX6QR8QcQkUpE=; b=mS9hTqPwnvtp0JDyeeV9N4hlkCDTXbL4Ya7h77vmOLVjBwzqPnocKwH2xoQkvI54r6SSG8 rH+KhvEfjKVx/yf9dowCiVxe9ICq1/xSeNH2MN1io2qAdRYy/ggJ9I91IYOu/yY4xJy7zg i/Ga6knWHoG6/UUS5gWmp+UuKVJmGbLBL2wCf71BesqAM4AJ1g1PT5bn4FjeUT0l0j9Bnd E/6rroPvzFDxOxyu99XihL+wiaMr5CialpNOlIhTIUjEAqoVtAqwBsafJCpb0zN8Yne7Er 1om81TeVS+My6s7XND1EopO+S8YJz7DQjpGVPjOlQy89DzSU4chd0KKoPvKIIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483831; a=rsa-sha256; cv=none; b=he//eijK4oEwN0Lf1v94RtJnfvJh8LWWP/I0H3mxyRtn3S7GSct1AIabV/+EgPQ/D5vnXm PCD8yQSDQEftbKG4O59/EVFMctGO0tK7WZLHabroUHc7JRMQh8ADLd01SdmutWU8uHWtYX IobNbYYQ2abnKU5Co5vsemMNrWA0hGu5TGuGS3hT4+HKf0yNJHWE40IT0Lp0mjqWuI8MMe lOykfFQUIywAuG670p1dppb2qkDYGpHN5xRPw/VdGA1kJzN9OzSxR1xlDD89gx4I5BzmLd vygEYUGd5QsbvSc3Op0M2LD+TQqYTPHbDiTlgmeuzsdPDIClfJPdPUtqvaMALg== 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 4QMzzq5G7VzKv5; Fri, 19 May 2023 08:10:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8AVet009893; Fri, 19 May 2023 08:10:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8AVxJ009892; Fri, 19 May 2023 08:10:31 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:31 GMT Message-Id: <202305190810.34J8AVxJ009892@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: 610641ec5f6e - stable/13 - dma: install a simple example for the auth.conf file List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 610641ec5f6e7f736301a3bb9e17bb551dab8752 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=610641ec5f6e7f736301a3bb9e17bb551dab8752 commit 610641ec5f6e7f736301a3bb9e17bb551dab8752 Author: Peter Wright AuthorDate: 2023-05-15 07:18:40 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:10:08 +0000 dma: install a simple example for the auth.conf file PR: 270088 MFC After: 3 days (cherry picked from commit d904b43ba3ffe2201f2c5aabcdc1af7709601d9a) --- libexec/dma/dmagent/Makefile | 2 +- libexec/dma/dmagent/auth.conf | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libexec/dma/dmagent/Makefile b/libexec/dma/dmagent/Makefile index f56b16a0b6f0..530e7979598b 100644 --- a/libexec/dma/dmagent/Makefile +++ b/libexec/dma/dmagent/Makefile @@ -23,7 +23,7 @@ CONFS= dma.conf CONFSDIR= ${CONFDIR}/dma YFLAGS+= -i CLEANFILES= aliases_parse.i -FILES= mailer.conf +FILES= auth.conf mailer.conf FILESDIR= ${SHAREDIR}/examples/dma .if ${MK_SENDMAIL} == no CONFGROUPS= CONFS MAILER diff --git a/libexec/dma/dmagent/auth.conf b/libexec/dma/dmagent/auth.conf new file mode 100644 index 000000000000..393a80a8ab5f --- /dev/null +++ b/libexec/dma/dmagent/auth.conf @@ -0,0 +1,4 @@ +# $DragonFly: src/etc/dma/auth.conf,v 1.1 2008/02/02 18:24:00 matthias Exp $ +# +# SMTP authentication entries (currently AUTH LOGIN only) +# Format: user|my.smarthost.example.com:password From nobody Fri May 19 08:10:32 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzs1jV4z4BdRL; Fri, 19 May 2023 08:10:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzs00VDz4CnW; Fri, 19 May 2023 08:10:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483833; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wchd9K14fTwfGc3xdOVKUd2XLODF78VHc4h0rcWtNK4=; b=nmj8dnXFBX5SkwwVtgPz8n78EyMabU4Tpx9hmFeO5qaq7tNlZ6Y+Ltbgd/QoAgtz0GpZjR W1DQWnufntF6I7VgcbTSdVkuBXEv/VJd3jiXoO1/THgb1bMpja2wyLDdlbszb7/rLdjWB1 CAWP1gfNXjKDYhKDbMQNj/NCraLqL8rXkiteH3QuTUvZfsWTe+OshByMKPmjor2evnDbK/ Tb5e8GkXjIr12AVjJMFwLv7+KnASn0zyhf9ukbJNbATJwmM4fXTxxwxXpLSalB8fkeyiZU i7GRwhwjFxlpukgArjAFKnQPGYYccA2Eq2uQu+/1dl/sKYfGd1Ep9pk++T2Y7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483833; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wchd9K14fTwfGc3xdOVKUd2XLODF78VHc4h0rcWtNK4=; b=WjjWiw4+52RL9zL/BGoDQz7eOxtSO3jaIYMeIK0ImQjCgqJmO2nDMm2tYLk9QA1lCxB39k Tcxa1w+xnGwOCGv9BU7GFQyAGL0UtmmHgvo6vfQMCiIYCg+4PwvOuQXZKNzq7nc0Is+csi 1fcdy46ARlFKpExamHOpSsbIxuiasXilTx3YCYv+FcQ6HTxagUaaQYxDvHeRqx1DORdxbG XL0ZTXq9iYGWhl8AzRNZ9p9oeazzmnPgX80eRvs6Xzj4MRc776XXxn13jAqDHNqtb15Zm+ EP7wFXgYgf7SrU8zHZComlz/7fDH8RY5m5PIAncw2lhqOzQ1NUI7pCRiFTO8QA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483833; a=rsa-sha256; cv=none; b=C3gIWlyV+0IAgU7/DyQszFcchBOMpvw87uVCWtRbXU5phE6EcYPWgWOXN+mqOM8OPVMYAx p1PA7kfn+s63jd4qJK4jOqAXOn3V3C5MwjWOa9syAnig9C15Ho2yUUDPtmYDcbk0BFUVGX PqJJpGcf3++efkSMK9fxbbf+TeRcE9u57yIf+wX/oZPzodYLF0+InTSewGUBVoGFRe0tYw wpRTTsunaq/k5vWeBxJ6PmdKwipNrTOB9YBV2DCOOFHyKdIn8rFo/fLVynSIq/ktFu1f3j cZuOHHhZbduod6aoCPTDxL6Ws4+N0ff4zohaCw6lON3B+pM1Ji3DhzbGxgnvNg== 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 4QMzzr6DJVzL4s; Fri, 19 May 2023 08:10:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8AWkZ009913; Fri, 19 May 2023 08:10:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8AWc7009912; Fri, 19 May 2023 08:10:32 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:32 GMT Message-Id: <202305190810.34J8AWc7009912@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: e31fbe0dff0c - stable/13 - periodic: Use locale-agnostic (ISO 8601) timestamp 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: e31fbe0dff0ca49670fc97eb931f8864f86d2def Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=e31fbe0dff0ca49670fc97eb931f8864f86d2def commit e31fbe0dff0ca49670fc97eb931f8864f86d2def Author: Michael Osipov AuthorDate: 2023-05-04 12:35:59 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:10:08 +0000 periodic: Use locale-agnostic (ISO 8601) timestamp format Instead of reyling on locale-sensitive output which can be mangled when e-mailed use consistently ISO 8601 format which contains the same information as '-T'. PR: 271240 MFC After: 3 days (cherry picked from commit d2b4753f06dcabc090080b8c8c91bda00fc8dac3) --- usr.sbin/periodic/etc/security/100.chksetuid | 2 +- usr.sbin/periodic/etc/security/110.neggrpperm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/periodic/etc/security/100.chksetuid b/usr.sbin/periodic/etc/security/100.chksetuid index 670ae9792021..c850f401d178 100755 --- a/usr.sbin/periodic/etc/security/100.chksetuid +++ b/usr.sbin/periodic/etc/security/100.chksetuid @@ -54,7 +54,7 @@ then }'` find -sx $MP /dev/null \( ! -fstype local \) -prune -o -type f \ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ - \( -perm -u+s -or -perm -g+s \) -exec ls -liTd \{\} \+ | + \( -perm -u+s -or -perm -g+s \) -exec ls -lid -D "%FT%T" \{\} \+ | check_diff setuid - "${host} setuid diffs:" rc=$? fi diff --git a/usr.sbin/periodic/etc/security/110.neggrpperm b/usr.sbin/periodic/etc/security/110.neggrpperm index 55974eae6345..393c83d061c6 100755 --- a/usr.sbin/periodic/etc/security/110.neggrpperm +++ b/usr.sbin/periodic/etc/security/110.neggrpperm @@ -54,7 +54,7 @@ then \( \( ! -perm +010 -and -perm +001 \) -or \ \( ! -perm +020 -and -perm +002 \) -or \ \( ! -perm +040 -and -perm +004 \) \) \ - -exec ls -liTd \{\} \+ | tee /dev/stderr | wc -l) + -exec ls -lid -D "%FT%T" \{\} \+ | tee /dev/stderr | wc -l) [ $n -gt 0 ] && rc=1 || rc=0 fi From nobody Fri May 19 08:10:33 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzt1M7sz4BcrV; Fri, 19 May 2023 08:10:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzt0vxQz4CbS; Fri, 19 May 2023 08:10:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nOPsWeGYpFYP1rSb8g/cXP4ebuMZUMXOhKHe+tSvFxA=; b=yJf4IihEZfFH17/JhnEouI/DU+HZ2SIYfZoeQmuShCzoBVis9l/wfwGQzSJ8HBsoQMXvPM HgA9oTyHf4oWatMWyUyBGx0kl83XdMb3NJjvoi/7kZwcu4i2YRj1IM+pTnbr3nh3IsdZA4 2qg1M72IeY0bNEnYj0Y9uzoqObwKqUqnZEscAQ32SWtsVMKkVNn+ICnQAkw2aqtvGkWd59 cAQjBLbJK49cUO2JDRuc6+WJHe/r7VN09P5IzQ6b7FU47d0/a0ADylsjdwm7mwB0SgCm4f pQ+sLXC4sGNVLx21Dj2PY0B5gEWYzGsHB85MQd1KruRBmX9zb9Ti0iC72s6SGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nOPsWeGYpFYP1rSb8g/cXP4ebuMZUMXOhKHe+tSvFxA=; b=dJ/xlkeonrPwcYZ8lFR9qCFAMbgk/3bzjqiLpv84uilyn5Irpgf6ZWJkoKIesRXkDppE1/ 8nANzrZAdJezpspeXLuXfBakcm6N/gmvhdS8u+D7I7e8yUPZmR92Lqc6LHrRtbYmiPPvyR dTJwvGgtUn4lhAWlUzwxutTDdcyyi01kuKPEnhiPJlaXf1JRKpenk46RGQS2R+sAYvr5Pm E21SjmslkoKMMQzufqcvGFzReI3kbTUTXKmmoEpkhY4YKsGcASRAUq+je8T/TyOSP882xj 48fgXqZhedLkhu0+q0QtFWLS76dTKbN62sI/Uka3wJX4Ccyvij0pQIfLAgYoTQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483834; a=rsa-sha256; cv=none; b=AaFMJW8vklP2ZO/s15VCmokMS4ocpcaFo+TLE44x+o841SCP5+b4+2pmke75na6B/VkXZE miRNBK3WKGv2aHpAem8fWxI6D0tx+dDWoZ+da45C1lgJl1NkM7krKuplEXq6geU7etgqeq WahN9rZzVbe213V53naHOBYyhlfRGDWhBp9Prd/1GBz58CwAofgLUWQKxi5Ev/y6c5/sPr pyNL6jZv3ZuN6XgMsdwKdWI3cU/FHKNz7I6H4gI0v9lAslKGDbFUZ7WPpzMGB//o+2nHAm MuWvKCzI9GFY/wG3bggCzhTxrZHX8G+fc/E779VWJB5bwEjMpNPtFzuaavR06A== 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 4QMzzt021XzL4t; Fri, 19 May 2023 08:10:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8AX82009932; Fri, 19 May 2023 08:10:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8AXd9009931; Fri, 19 May 2023 08:10:33 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:33 GMT Message-Id: <202305190810.34J8AXd9009931@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: 732f13ad32dc - stable/13 - pw: The pw_checkname function has added ';' checking. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 732f13ad32dc7ddc951f9dcdb969b933bcacf631 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=732f13ad32dc7ddc951f9dcdb969b933bcacf631 commit 732f13ad32dc7ddc951f9dcdb969b933bcacf631 Author: pbuff AuthorDate: 2023-05-16 03:05:30 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:10:09 +0000 pw: The pw_checkname function has added ';' checking. The pw_checkname function forgot to include a ';' when checking usernames, causing shell commands to be executed when a username with a ';' is deleted. PR: 271427 MFC After: 3 days (cherry picked from commit e0155c6989049da43c5499f7129002aa17d1ca79) --- usr.sbin/pw/pw_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index f0f87b923c0d..1b986e7c6985 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -637,7 +637,7 @@ pw_checkname(char *name, int gecos) showtype = "gecos field"; } else { /* See if the name is valid as a userid or group. */ - badchars = " ,\t:+&#%$^()!@~*?<>=|\\/\""; + badchars = " ,\t:+&#%$^()!@~*?<>=|\\/\";"; showtype = "userid/group name"; /* Userids and groups can not have a leading '-'. */ if (*ch == '-') From nobody Fri May 19 08:10:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzv2zCpz4Bdfn; Fri, 19 May 2023 08:10:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzv21zkz4Clf; Fri, 19 May 2023 08:10:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483835; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pgAIjgPfdkZ7/ZcCw4Lonnb5pCaICdYc7Dmyg4zkK1M=; b=gtjI0klv7/6d0YMqbQhTA8OUDTYevrvFIGNKgFUvEAEA6a20eCOmj44fiqLwdgQZGluuSW aksaTq7S0C59m6KuQlJ2PThZPUhv91WU7qonDCnI5P9K0DAu6FcKBEl7q0Xgb2Xzuku1ug baWaB3ICus21zUiX0kpm7WZAB1QiqFB0pC6f6lVzxmL0VHIUBbjM14m6bM87S3ytrFl7HV GQxmcio2+CaK97wfAIpcwJuvvreqgt2k48Yqit8wjSHp1UOlyGY3ng1P2ABncnDFGgYQyM ggktdCntc7bGGK49NDl5TuB427qn7A5Q94CSPqyr2FsaQa4qJl7rujAe3cs7fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483835; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pgAIjgPfdkZ7/ZcCw4Lonnb5pCaICdYc7Dmyg4zkK1M=; b=J9gaPKBcHWTDNTZj7XMvGUhjhGzCob6laYAdSt/bjIxn+gMBtSOvgfNvezwMTOyhT85bHQ Lua4TplybFrNllW7Du5DhOdZ1tcoWuWZDbVWqAQ8moPgQYpsLvlOkOpo1hcMkBE5z8v5bz ctsZ04wOeqgAQJAEtFPNRuWEPw7448VGHAZmMYD0L8ado82FR6ENUk4dpmddBF3+QKH8bi utfsgjDDEDzPq565bXzd24yN5MLUsKS11Vuja/+tkq9VfP2Vk/Wuqg7UEufDx4AikXg0we MTN1g7RKVgLxPcYUAFvyZMDoEKt/Nhbb8Xg+9apwC5ViRsIxiqsduSpsTChw4Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483835; a=rsa-sha256; cv=none; b=dMlv6PrDXwABVapscKIEz1KB8MZvoGC94v+bSawnSSS/bJmDlSJOxqfv9XU5XGIZAf2ITa XFMMIKMMiRy6qFPiIjk9p0TZYq/tpY8tLQkogpxNDv7Pn+Vzblf7PNxc69lHxBR3cfXa+b 7ztHOwNruvfWatX4iKxxvqOYM6GdMMdyhoF7+qnxCwaD1+G4/a0pS6KSz1fFyYCpR6fdmB 3NysbQ23X8aJfQeSxPxcoUXBFw3sFORF75WVvEQVADhK0tqQaCoaambKmrvrECfLIptdlY kXoATLw31mWGu/NYhEbh86+BHCyf72u9IV8P3sIQeGVsJipLW/SaRJxm4msmJQ== 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 4QMzzv0xjjzL4x; Fri, 19 May 2023 08:10:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8AZER009964; Fri, 19 May 2023 08:10:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8AZcX009963; Fri, 19 May 2023 08:10:35 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:35 GMT Message-Id: <202305190810.34J8AZcX009963@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: cd520142e3db - stable/13 - passwd.5: Remove .Tn (Trade Name) macros List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: cd520142e3db9d256688a7ea286e2e0eeb8e35b7 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=cd520142e3db9d256688a7ea286e2e0eeb8e35b7 commit cd520142e3db9d256688a7ea286e2e0eeb8e35b7 Author: Jose Luis Duran AuthorDate: 2023-05-16 11:18:53 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:10:09 +0000 passwd.5: Remove .Tn (Trade Name) macros To appease mandoc -T lint, remove .Tn macros. MFC After: 3 days (cherry picked from commit d047a4e486a44ca5ada29bf3461903867424c414) --- share/man/man5/passwd.5 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/share/man/man5/passwd.5 b/share/man/man5/passwd.5 index 2b79680a20eb..bd2d012ac57f 100644 --- a/share/man/man5/passwd.5 +++ b/share/man/man5/passwd.5 @@ -49,7 +49,7 @@ They can be used in conjunction with the Hesiod domains and .Sq Li uid , and the -.Tn NIS +NIS maps .Sq Li passwd.byname , .Sq Li passwd.byuid , @@ -310,7 +310,7 @@ lookups occur from the .Sq Li master.passwd.byname , and .Sq Li master.passwd.byuid -.Tn NIS +NIS maps. .Sh COMPAT SUPPORT If @@ -361,7 +361,7 @@ or .Sq Li passwd.byname and .Sq Li passwd.byuid -.Tn NIS +NIS maps (with .Sq Li passwd_compat: nis ) to be included. @@ -372,7 +372,7 @@ or .Ar gid fields, the specified numbers will override the information retrieved from the Hesiod domain or the -.Tn NIS +NIS maps. Likewise, if the .Ar gecos , @@ -381,20 +381,20 @@ or .Ar shell entries contain text, it will override the information included via Hesiod or -.Tn NIS . +NIS . On some systems, the .Ar passwd field may also be overridden. .Sh FILES .Bl -tag -width ".Pa /etc/master.passwd" -compact .It Pa /etc/passwd -.Tn ASCII +ASCII password file, with passwords removed .It Pa /etc/pwd.db .Xr db 3 Ns -format password database, with passwords removed .It Pa /etc/master.passwd -.Tn ASCII +ASCII password file, with passwords intact .It Pa /etc/spwd.db .Xr db 3 Ns -format @@ -444,7 +444,7 @@ file format first appeared in .At v1 . .Pp The -.Tn NIS +NIS .Nm file format first appeared in SunOS. .Pp From nobody Fri May 19 08:10:36 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QMzzw3Xy7z4BdQG; Fri, 19 May 2023 08:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QMzzw2rnNz4Cg7; Fri, 19 May 2023 08:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5J0vI2H0dHB29i3n0q8zE/T6atRpJSAeOLj88a+CicY=; b=bRzL9ahP626fZLbl4oUefhONyifameaD+JbIo/6oMClkuaekf6Y07vcoNvjsw4KN184a/H C7Tome5ARoZ3t1gLbx0zjIf6Ya4CmqOpyc7KcA7zrAn9m05DRuhuO+BBG011KlqfQtKi8j jzEy1f1HUbVMzShvBmiFsFe4xVpuY+/BBSadiNH0dIKyK7UgFLc1a0YUiE6s3r/Rztf0AS 1WMgquU7sZeEmn2n9aFm+9bIGcykymIUVJIWEUIY+/uelyFHSoNhUuPDLovEqf3n44VLSI bNwx0YqBx6LdikjR+FV6g4VQ1Svf0QdpdIvs9xoxsbhlXVIO7ScWR0ASuK3ncg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684483836; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5J0vI2H0dHB29i3n0q8zE/T6atRpJSAeOLj88a+CicY=; b=rHJfu0ct5XhqFopAJFNo3Fjre5zwVpA7DcZbENk3kv1o6Et4/ZNxsramDNPLC+tlvrq/O0 /ThWG/o68Dgc5LukTh/9wcGi2tsm9HDBtRjWcBjL6J77ZVemTx8zstmoErmyJhD2NdpB3R rooTHxI9o6vOwoBkSZyfatNi2GY0IpjHd5F2oq0ZD4DYCOV4vYGyK/pHAbz0vmkDd2Yy2N wSv+5eHc+jyiLVepRkmVPkB1VqZXRDInNOzQme0mr6FuqwmfdC+nuHgUGtYKZmfGZBJBOn /V2p1/qo4gwv4gE63K+D4CUhzbo2Ln3hfVGKgjUTMYgNbllyZFhWRFixOUy4Ww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684483836; a=rsa-sha256; cv=none; b=dSi4FPshO8fcNOgoP21rE0CO/3Fw9XpKcE179XgIJCTwt7Gaoqk6PxAmkDobto3qvHhhTS burRZmYxiIV3E8Z9haE4h9JIgxJy4GsLYlrRrWPA0wOrdcxRgEEl/cgrz5d3yImvTpC7pW Z5190HvNjht32m8asREw4pb0OOTARoiMSLAGdubjLhL9dPi7+pF6PVqn4N5m7iM2xmzudR gsVMIFeGPfhHgRipVfGwAX/EIGTzvO53Ejl7snWRmR/5QKz8gA5Il9DSmVZYDirdqiRCcY lJQrcfhTlyc9orsK1/T7wU9w/T8Uyk9dQzIr89xx7jTSLW18ulBhzcpjSTaa1Q== 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 4QMzzw1rxrzLBg; Fri, 19 May 2023 08:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8AanP009986; Fri, 19 May 2023 08:10:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8AaP3009985; Fri, 19 May 2023 08:10:36 GMT (envelope-from git) Date: Fri, 19 May 2023 08:10:36 GMT Message-Id: <202305190810.34J8AaP3009985@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: 74ce0c29e7bb - stable/13 - passwd.5: Update man page after e0155c6989049da43c5499f7129002aa17d1ca79 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 74ce0c29e7bb6ec0bab489f773faaa355d5c5181 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=74ce0c29e7bb6ec0bab489f773faaa355d5c5181 commit 74ce0c29e7bb6ec0bab489f773faaa355d5c5181 Author: Jose Luis Duran AuthorDate: 2023-05-16 11:17:16 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:10:09 +0000 passwd.5: Update man page after e0155c6989049da43c5499f7129002aa17d1ca79 MFC After: 3 days (cherry picked from commit 6e068d6bea4d8282704b4e157da3da584dc67a2d) --- share/man/man5/passwd.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man5/passwd.5 b/share/man/man5/passwd.5 index bd2d012ac57f..f2e307686b64 100644 --- a/share/man/man5/passwd.5 +++ b/share/man/man5/passwd.5 @@ -31,7 +31,7 @@ .\" From: @(#)passwd.5 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd June 30, 2022 +.Dd May 16, 2023 .Dt PASSWD 5 .Os .Sh NAME @@ -131,7 +131,7 @@ The login name must not begin with a hyphen .Pq Ql \&- , and cannot contain 8-bit characters, tabs or spaces, or any of these symbols: -.Ql \&,:+&#%^\&(\&)!@~*?<>=|\e\\&/" . +.Ql \&,:+&#%^\&(\&)!@~*?<>=|\e\\&/"\&; . The dollar symbol .Pq Ql \&$ is allowed only as the last character for use with Samba. From nobody Fri May 19 08:15:07 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN05771K7z4BdRN; Fri, 19 May 2023 08:15: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN0576Z3Bz4FGw; Fri, 19 May 2023 08:15:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cPvgzZcya9JPFrl1YhiJHA7p3hXF+grrCaWosu9u/mw=; b=GCZYMsADFxbYu/Ihc9IQH86OETh31UFE99A0IxSnVnwKLtjlMEgFa4vGkdvRrWTfAWYneO 5qVhwzZMEgMq2zav26S9l1ho8zw+m78XSuHBakudnza8AkxHk6Yw9wWeL5A8xCCjpv+Sjx VNl8CKDC72lx2UZBZ2Alv5A4EgOhbqaTQaSxReryRBLYfS4bQVc1FXHaNgZePP6BJMXNdu JihwUzYMj1bx5bs+3/G+cFL45h0wW2Dls9mAJgN5zRKU2/zK/p+uokgCwwfIu8NUbx1mtI XHBZlszBU4jzjKCwiStqMObyX3xWoX3ratC3rEk/qzid0Y42l6bDz44l9u+Llg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cPvgzZcya9JPFrl1YhiJHA7p3hXF+grrCaWosu9u/mw=; b=hBSG8gXhZFSUBmBtZD4uPazZkNIfYUPTJ4KEg0wqPkYtnbCf/sHaTA7WPV/mk5+XSHV0ls /AeZvQsLDp1JGrNSbzzCm7KO/LFDzelmmekqZyvJrJea93DtHuWQm36zXJHDq7GCNU/+LG X++6KtTpdVUD98QuJVRWDTghdV2GCl8BIlYkkWTsHkGOkReIh92nUu3vGUjhQf68gcYgzy 5qzfwedjzA0qeLRmO/fts3noq82sYxuNjROs70XfS541gbm5VxPwdVjmFJp9YDoqRBzvYN 7MMg7JRivWkkgbeay4eK0y0tHObGzESa5vMN+dY6weXibnU00ChMxsyZDaaJtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484107; a=rsa-sha256; cv=none; b=F4/jjeNsXWq13WnJH11hjYP7C2GslueUxCIDxfzYC7a43Oq0OrHC7Qkozre+Fn51N9VIOW 6MbwUi0nbmtiNUzBeN1NEJ44IZwb15YkkypxTwmR0BmschGVez/+AdJ0P32VTe2WPIBDmN aNcHcSc+42oMC2hCXhws/So0XyXeC2uQEQukMjJZpgUYwsWxXDZ00IjGaCFmUUyZG1D+ya sjHponT7Q3pE1RRmaZCsRwoGojElE5kdmV72yuXRpdpwzzbJVdO57UBpd6FQGX86TcB0RI tOcO87PEvlAb08lqiyM6MNlJZLsf1v9n+qdAeMTfT2fg2iOO1yhcFi12e2+sYQ== 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 4QN0575dB8zL8t; Fri, 19 May 2023 08:15:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8F7bD017771; Fri, 19 May 2023 08:15:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8F7fT017770; Fri, 19 May 2023 08:15:07 GMT (envelope-from git) Date: Fri, 19 May 2023 08:15:07 GMT Message-Id: <202305190815.34J8F7fT017770@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: 49c6050210a7 - stable/13 - pci_vendors: update to 2023-05-15 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 49c6050210a79254d96f7ce761db40ab7e4d05a0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=49c6050210a79254d96f7ce761db40ab7e4d05a0 commit 49c6050210a79254d96f7ce761db40ab7e4d05a0 Author: Baptiste Daroussin AuthorDate: 2023-01-25 08:58:39 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:14:04 +0000 pci_vendors: update to 2023-05-15 (cherry picked from commit bc4346e0aead0b934773aac5e9a81def46f266ad) (cherry picked from commit f02879f199253125adfa9de6c651bbe30c04bfa5) (cherry picked from commit c7fdf87b0985de602827cfb2a8ccb3aebaf42318) --- share/misc/pci_vendors | 1379 +++++++++++++++++++++++++++++++----------------- 1 file changed, 908 insertions(+), 471 deletions(-) diff --git a/share/misc/pci_vendors b/share/misc/pci_vendors index 97220fd5ca8f..fb0a22837428 100644 --- a/share/misc/pci_vendors +++ b/share/misc/pci_vendors @@ -1,8 +1,8 @@ # # List of PCI ID's # -# Version: 2022.12.04 -# Date: 2022-12-04 03:15:02 +# Version: 2023.05.15 +# Date: 2023-05-15 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at https://pci-ids.ucw.cz/. @@ -49,6 +49,8 @@ 7a19 PCI-to-PCI Bridge 7a24 OHCI USB Controller 7a29 PCI-to-PCI Bridge +0018 Fn-Link Technology Limited + 6252 6252CPUB 802.11ax PCIe Wireless Network Adapter 001c PEAK-System Technik GmbH 0001 PCAN-PCI CAN-Bus controller 001c 0004 2 Channel CAN Bus SJC1000 @@ -79,6 +81,15 @@ 021b Compaq Computer Corporation 8139 HNE-300 (RealTek RTL8139c) [iPaq Networking] 025e Solidigm + 0b60 NVMe DC SSD [Sentinel Rock Plus controller] + 025e 8208 NVMe DC SSD U.2 15mm [D7-P5810] + 025e d408 NVMe DC SSD U.2 15mm [D5-P5430] + 025e d40c NVMe DC SSD E1.S 9.5mm [D5-P5430] + 025e d419 NVMe DC SSD E3.S 7.5mm [D5-P5430] + 025e d808 NVMe DC SSD U.2 15mm [D5-P5336] + 025e d819 NVMe DC SSD E3.S 7.5mm [D5-P5336] + 025e d81d NVMe DC SSD E1.L 9.5mm [D5-P5336] + 0b70 NVMe DC SSD [Yorktown controller] 0270 Hauppauge computer works Inc. (Wrong ID) 0291 Davicom Semiconductor, Inc. (Wrong ID) # SpeedStream is Efficient Networks, Inc, a Siemens Company @@ -93,6 +104,8 @@ 0432 SCM Microsystems, Inc. 0001 Pluto2 DVB-T Receiver for PCMCIA [EasyWatch MobilSet] 0497 Dell Inc. (wrong ID) +060e Lightelligence + 0001 Hummingbird ES 0675 Dynalink 1700 IS64PH ISDN Adapter 1702 IS64PH ISDN Adapter @@ -395,8 +408,7 @@ 103c 3108 Single Channel Ultra320 SCSI HBA G2 103c 322a SC11Xe Ultra320 Single Channel PCIe x4 SCSI Host Bus Adapter (412911-B21) 124b 1170 PMC-USCSI320 -# VMware's emulation of this device. Was missing from the list. - 15ad 1976 LSI Logic Parallel SCSI Controller + 15ad 1976 LSI Logic Parallel SCSI Controller (emulated) 1734 1052 PRIMERGY BX/RX/TX S2 series onboard SCSI(IME) 0031 53c1030ZC PCI-X Fusion-MPT Dual Ultra320 SCSI 0032 53c1035 PCI-X Fusion-MPT Dual Ultra320 SCSI @@ -760,6 +772,10 @@ 1028 2142 HBA465e Adapter 1028 2209 HBA465i Adapter 1028 220a HBA465i Front + 1028 228a HBA465e-s Adapter + 15d9 1d03 AOC-S4116L-H16IR (16DD/96DD) RAID Adapter + 15d9 1d07 AOC-S4016L-L16IT Storage Adapter + 15d9 1d08 AOC-S4016L-L16IR Storage Adapter 1d49 020a ThinkSystem 450W-16e SAS/SATA PCIe Gen4 24Gb HBA 00ab SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC) # 8 Internal and 8 External port channel 9400 HBA @@ -859,6 +875,9 @@ 1028 2175 HBA350i Adapter 1028 2197 HBA350i MM LP 1028 2212 HBA355e-s Adapter + 15d9 1b64 SCC-B8SB80-B1 (NI22) Storage Controller Card + 15d9 1b65 AOC-S3816L-L16iT (NI22) Storage Adapter + 15d9 1b99 AOC-S3808L-L8iT Storage Adapter 1d49 0205 ThinkSystem 440-16i SAS/SATA PCIe Gen4 12Gb Internal HBA 1d49 0206 ThinkSystem 440-16e SAS/SATA PCIe Gen4 12Gb HBA 1d49 0207 ThinkSystem 440-8i SAS/SATA PCIe Gen4 12Gb HBA @@ -975,6 +994,8 @@ 1000 4002 MegaRAID 9561-16i # 9560 8 internal port RAID controller 1000 4010 MegaRAID 9560-8i +# 9550 8 internal port RAID controller + 1000 4015 MegaRAID 9550-8i # 9580 8 internal & 8 external port RAID controller 1000 4020 MegaRAID 9580-8i8e # MegaRAID 9562-16i 9562 16 internal port RAID controller @@ -985,6 +1006,9 @@ 1028 1ae3 PERC H755 MX 1028 2171 PERC H750 Mini 1028 2176 PERC H750 Adapter + 15d9 1b66 AOC-S3908L-H8iR RAID Adapter + 15d9 1b67 AOC-S3916L-H16iR RAID Adapter + 15d9 1c06 AOC-S3916L-H16iR-32DD+ RAID Adapter 1d49 060a ThinkSystem RAID 940-8i 4GB Flash PCIe Gen4 12Gb Adapter 1d49 060b ThinkSystem RAID 940-8i 8GB Flash PCIe Gen4 12Gb Adapter 1d49 060c ThinkSystem RAID 940-16i 8GB Flash PCIe Gen4 12Gb Adapter @@ -1008,8 +1032,14 @@ 1028 2174 PERC H350 Mini 1028 2177 PERC H350 Adapter 1028 2199 PERC H350 Mini LP + 15d9 1b9d AOC-S3816L-L16IR Storage Adapter + 15d9 1b9f AOC-S3816L-L8IR Storage Adapter + 15d9 1c6d AOC-S3808L-L8IR Storage Adapter + 15d9 1c6e AOC-SLG4-2H8M2 Storage Adapter 1d49 0505 ThinkSystem RAID 540-8i PCIe Gen4 12Gb Adapter 1d49 0506 ThinkSystem RAID 540-16i PCIe Gen4 12Gb Adapter + 1d49 0700 ThinkSystem M.2 SATA/NVMe 2-Bay RAID Enablement Kit + 1d49 0701 ThinkSystem 7mm SATA/NVMe 2-Bay RAID Enablement Kit 10e7 MegaRAID 12GSAS/PCIe Unsupported SAS38xx 1960 MegaRAID 1000 0518 MegaRAID 518 SCSI 320-2 Controller @@ -1037,6 +1067,23 @@ 1000 a080 PEX88080 80 lane/port PCIe Gen 4 Switch 1000 a096 PEX88096 98 lane/port PCIe Gen 4.0 Switch c012 PEX880xx PCIe Gen 4 Switch +# Virtual endpoint used in Broadcom synthetic PCIe switches for resource reservation + 1000 100b PEX88000 PCIe Gen 4 Virtual Upstream/Downstream Port +# For secure part version of this chip + 1000 2004 PEX88000 Virtual PCIe TWC/NT2 Endpoint +# For secure part version of this chip + 1000 2005 PEX88000 Virtual PCIe gDMA Endpoint +# For secure part version of this chip + 1000 a024 PEX88024 24 lane/port PCIe Gen 4.0 Switch +# For secure part version of this chip + 1000 a032 PEX88032 32 lane/port PCIe Gen 4.0 Switch +# For secure part version of this chip + 1000 a048 PEX88048 48 lane/port PCIe Gen 4.0 Switch + 1000 a064 PEX88064 64 lane/port PCIe Gen 4.0 Switch +# For secure part version of this chip + 1000 a080 PEX88080 80 lane/port PCIe Gen 4.0 Switch +# For secure part version of this chip + 1000 a096 PEX88096 96 lane/port PCIe Gen 4.0 Switch 1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter c030 PEX890xx PCIe Gen 5 Switch 1000 0024 PEX89024 PCIe Gen 5 24 port/lane Switch Upstream/Downstream Port @@ -1049,6 +1096,19 @@ 1000 100b PEX89000 PCIe Gen 5 Virtual Upstream/Downstream Port 1000 2004 PEX89000 Virtual PCIe TWC/NT 2.0 Endpoint 1000 2005 PEX89000 Virtual PCIe gDMA Endpoint +# Lower lane count PEX89000 switch + c034 PEX890xx PCIe Gen 5 Switch +# Lower lane count PEX89000 switch + 1000 0024 PEX89024 PCIe Gen 5 24 port/lane Switch Upstream/Downstream Port + 1000 0032 PEX89032 PCIe Gen 5 32 port/lane Switch Upstream/Downstream Port +# Lower lane count PEX89000 switch + 1000 0048 PEX89048 PCIe Gen 5 48 port/lane Switch Upstream/Downstream Port +# Lower lane count PEX89000 switch + 1000 100b PEX89000 PCIe Gen 5 Virtual Upstream/Downstream Port +# Lower lane count PEX89000 switch + 1000 2004 PEX89000 Virtual PCIe TWC/NT 2.0 Endpoint +# Lower lane count PEX89000 switch + 1000 2005 PEX89000 Virtual PCIe gDMA Endpoint 1001 Kolter Electronic 0010 PCI 1616 Measurement card with 32 digital I/O lines 0011 OPTO-PCI Opto-Isolated digital I/O board @@ -1100,11 +1160,13 @@ 1551 Arlene 1552 Pooky 1561 Anubis - 15bf Phoenix + 15bf Phoenix1 + 15c8 Phoenix2 15d8 Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] 103c 8615 Pavilion Laptop 15-cw1xxx 17aa 3181 ThinkCentre M75n IoT 17aa 5124 ThinkPad E595 + 1dc2 2209 Avita Pura 14 Notebook ea50 cc10 RXi2-BP 15dd Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] 103c 83c6 Radeon Vega 8 Mobile @@ -1120,6 +1182,7 @@ 103c 8615 Pavilion Laptop 15-cw1xxx ea50 ce19 mCOM10-L1900 15e7 Barcelo + 103c 8b17 ProBook 445 G9/455 G9 [Ryzen 7 Integrated Radeon GPU] 15ff Fenghuang [Zhongshan Subor Z+] 1607 Arden 1636 Renoir @@ -1314,7 +1377,7 @@ 1043 8445 M5A78L LE 105b 0e13 N15235/A74MX mainboard / AMD SB700 1179 ff50 Satellite P305D-S8995E - 1458 a022 GA-MA770-DS3rev2.0 Motherboard + 1458 a022 GA-770/78-series motherboard 1458 a102 GA-880GMA-USB3 1462 7596 760GM-E51(MS-7596) Motherboard 17f2 5000 KI690-AM2 Motherboard @@ -1327,7 +1390,7 @@ 1043 8389 M4A785TD Motherboard 105b 0e13 N15235/A74MX mainboard / AMD SB700 1179 ff50 Satellite P305D-S8995E - 1458 4385 GA-MA770-DS3rev2.0 Motherboard + 1458 4385 GA-770/78-series motherboard 1462 7368 K9AG Neo2 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU @@ -1389,7 +1452,7 @@ 1043 8443 M5A88-V EVO 1043 84dd M5A99X EVO (R1.0) SB950 105b 0e13 N15235/A74MX mainboard / AMD SB700 - 1458 b002 GA-880GMA-USB3 + 1458 b002 GA-78/880-series motherboard 174b 1001 PURE Fusion Mini 4392 SB7x0/SB8x0/SB9x0 SATA Controller [Non-RAID5 mode] 105b 0e13 N15235/A74MX mainboard / AMD SB700 @@ -1403,7 +1466,7 @@ 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 - 1458 5004 GA-880GMA-USB3 + 1458 5004 GA-78/880-series motherboard 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 174b 1001 PURE Fusion Mini @@ -1414,7 +1477,7 @@ 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 - 1458 5004 GA-880GMA-USB3 + 1458 5004 GA-78/880-series motherboard 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 174b 1001 PURE Fusion Mini @@ -1422,6 +1485,7 @@ 1019 2120 A785GM-M 1043 82ef M3A78-EH Motherboard 105b 0e13 N15235/A74MX mainboard / AMD SB700 + 1458 5004 GA-MA78GM-S2H motherboard 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller @@ -1429,7 +1493,7 @@ 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 - 1458 5004 GA-880GMA-USB3 + 1458 5004 GA-78/880-series motherboard 1462 7596 760GM-E51(MS-7596) Motherboard 174b 1001 PURE Fusion Mini 439c SB7x0/SB8x0/SB9x0 IDE Controller @@ -1438,6 +1502,7 @@ 103c 1609 ProLiant MicroServer N36L 1043 82ef M3A78-EH Motherboard 105b 0e13 N15235/A74MX mainboard / AMD SB700 + 1458 5002 GA-MA78GM-S2H motherboard 1462 7596 760GM-E51(MS-7596) Motherboard 439d SB7x0/SB8x0/SB9x0 LPC host controller 1019 2120 A785GM-M @@ -2171,7 +2236,7 @@ 1025 0846 Radeon HD 8570A 17aa 3805 Radeon HD 8570M 6664 Jet XT [Radeon R5 M240] - 6665 Jet PRO [Radeon R5 M230 / R7 M260DX / Radeon 520 Mobile] + 6665 Jet PRO [Radeon R5 M230 / R7 M260DX / Radeon 520/610 Mobile] 17aa 1309 Z50-75 Radeon R7 M260DX 17aa 368f Radeon R5 A230 6667 Jet ULT [Radeon R5 M230] @@ -2459,8 +2524,8 @@ 1028 0506 Radeon HD 6470M 1028 0507 Radeon HD 6470M 1028 0514 Radeon HD 6470M - 1028 051c Radeon HD 6450M - 1028 051d Radeon HD 6450M + 1028 051c Radeon HD 6450M / 7430M + 1028 051d Radeon HD 6450M / 7430M 103c 161a Radeon HD 6470M 103c 161b Radeon HD 6470M 103c 161e Radeon HD 6470M @@ -2709,7 +2774,7 @@ # FX-797A-TNBC 1682 3213 HD 7970 Black Edition 1682 3214 Double D HD 7970 - 1787 201c HD 7970 IceQ X² + 1787 201c HD 7970 IceQ X² # Radeon HD 7970 X2 1787 2317 Radeon HD 7990 1787 3000 Tahiti XT2 [Radeon HD 7970 GHz Edition] @@ -2772,7 +2837,7 @@ 174b e282 Vapor-X R9 290X Tri-X OC 174b e285 R9 290X Tri-X OC 174b e324 Grenada XT2 [Radeon R9 390X] - 1787 2020 R9 290X IceQ X² Turbo + 1787 2020 R9 290X IceQ X² Turbo 1787 2357 Grenada XT [Radeon R9 390X] 67b1 Hawaii PRO [Radeon R9 290/390] 1043 04dd STRIX R9 390 @@ -2797,7 +2862,6 @@ 1002 0b37 Radeon RX 480 1028 1722 Radeon RX 570X 1028 1723 Radeon RX 580X -# OEM card found in desktops sold by HP. 103c 840e Radeon RX 580 4GB 1043 04a8 Radeon RX 480 1043 04b0 Radeon RX 470 @@ -2820,7 +2884,6 @@ 148c 2372 Radeon RX 480 [Red Dragon] 148c 2373 Radeon RX 470 148c 2377 Red Devil RX 580 8G Golden -# https://www.techpowerup.com/vgabios/?manufacturer=Powercolor&model=RX+580 148c 2378 Radeon RX 580 148c 2379 Radeon RX 570 4G [Red Dragon] 148c 2391 Radeon RX 590 [Red Devil] @@ -3616,6 +3679,7 @@ 692b Tonga PRO GL [FirePro W7100] 13cc 3d2b MXRT-7600 692f Tonga XTV GL [FirePro S7150V] + 6930 Tonga PRO [Radeon R9 380 4GB] 6938 Tonga XT / Amethyst XT [Radeon R9 380X / R9 M295X] 1043 04f5 Radeon R9 380X 1043 04f7 Radeon R9 380X @@ -3628,7 +3692,6 @@ 6939 Tonga PRO [Radeon R9 285/380] 1462 2015 Radeon R9 380 Gaming 4G 148c 9380 Radeon R9 380 -# Make naming scheme consistent 174b e308 Radeon R9 380 Nitro 4G D5 174b e315 Radeon R9 285 693b Tonga PRO GL [FirePro W7100 / Barco MXRT-7600] @@ -3663,7 +3726,7 @@ 1002 0322 All-in-Wonder X1800XL 1002 0d02 Radeon X1800 CrossFire Edition 710a R520 [Radeon X1800 GTO] - 1002 0b12 Radeon X1800 GTO² + 1002 0b12 Radeon X1800 GTO² 710b R520 [Radeon X1800 GTO] 710e R520 GL [FireGL V7300] 13cc 3d0c MXRT-5150 @@ -3790,6 +3853,7 @@ 72b1 RV560 [Radeon X1650 XT] (Secondary) 72b3 RV560 [Radeon X1650 GT] (Secondary) 7300 Fiji [Radeon R9 FURY / NANO Series] + 1002 0b35 FirePro S9300 X2 1002 0b36 Radeon R9 FURY X / NANO 1002 1b36 Radeon Pro Duo 1043 049e Radeon R9 FURY @@ -3798,10 +3862,13 @@ 7310 Navi 10 [Radeon Pro W5700X] 7312 Navi 10 [Radeon Pro W5700] 7314 Navi 10 USB + 7319 Navi 10 [Radeon Pro 5700 XT] + 731b Navi 10 [Radeon Pro 5700] 731e TDC-150 731f Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] 1002 0b36 Reference RX 5700 XT 1458 2313 Radeon RX 5700 XT Gaming OC + 1458 231d Radeon RX 5600 XT/REV 2.0 [Windforce 6GB OC] 148c 2398 AXRX 5700 XT 8GBD6-3DHE/OC [PowerColor Red Devil Radeon RX 5700 XT] 1682 5701 RX 5700 XT RAW II 1849 5120 Radeon RX 5600 XT @@ -3822,6 +3889,7 @@ 73a3 Navi 21 GL-XL [Radeon PRO W6800] 73a4 Navi 21 USB 73a5 Navi 21 [Radeon RX 6950 XT] + 1849 5230 Navi 21 [ASRock OC Forumla Radeon RX 6950XT] 1da2 441d Navi 21 [Sapphire Nitro+ Radeon RX 6950 XT] 73ab Navi 21 Pro-XLA [Radeon Pro W6800X/Radeon Pro W6800X Duo] 73ae Navi 21 [Radeon Pro V620 MxGPU] @@ -3830,13 +3898,15 @@ 73bf Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] 1002 0e3a Radeon RX 6900 XT 148c 2408 Red Devil AMD Radeon RX 6900 XT + 1da2 438e NITRO+ Radeon RX 6800 XT 1da2 440f TOXIC RX 6900 XT + 1da2 e437 Pulse Radeon RX 6800 1eae 6701 Speedster MERC 319 AMD Radeon RX 6800 XT Black 1eae 6901 Speedster MERC 319 AMD Radeon RX 6900 XT Black 73c3 Navi 22 73c4 Navi 22 USB 73ce Navi22-XL SRIOV MxGPU - 73df Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M] + 73df Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT] 1043 16c2 Radeon RX 6800M 1458 2408 Radeon RX 6750 XT GAMING OC 12G 1849 5219 Radeon RX 6700 XT Challenger D @@ -3846,13 +3916,13 @@ 73e1 Navi 23 WKS-XM [Radeon PRO W6600M] 73e3 Navi 23 WKS-XL [Radeon PRO W6600] 73e4 Navi 23 USB - 73ef Navi 23 [Radeon RX 6650 XT] - 1002 73ef Navi 23 [Radeon RX 6700S / 6800S / 6650 XT] + 73ef Navi 23 [Radeon RX 6650 XT / 6700S / 6800S] 1458 2405 Navi 23 [Radeon RX 6650 XT] + 1849 5236 RX 6650 XT Challenger D OC + 73f0 Navi 33 [Radeon RX 7600M XT] 73ff Navi 23 [Radeon RX 6600/6600 XT/6600M] 1462 5022 RX 6600 MECH 2X 148c 2412 PowerColor Red Devil RX 6600 XT -# This is the non-XT version 1849 5218 Radeon RX 6600 Challenger ITX 8GB 7408 Aldebaran/MI200 [Instinct MI250X] 740c Aldebaran/MI200 [Instinct MI250X/MI250] @@ -3863,7 +3933,14 @@ 7424 Navi 24 [Radeon RX 6300] 743f Navi 24 [Radeon RX 6400/6500 XT/6500M] 1da2 e457 PULSE AMD Radeon RX 6500 XT + 7448 Navi31 [Radeon Pro W7900] 744c Navi 31 [Radeon RX 7900 XT/7900 XTX] + 1da2 e471 NITRO+ RX 7900 XTX Vapor-X + 1eae 7901 RX-79XMERCB9 [SPEEDSTER MERC 310 RX 7900 XTX] + 745e Navi 31 + 7480 Navi 33 [Radeon RX 7700S/7600S/7600M XT] + 7483 Navi 33 [Radeon RX 7600M/7600M XT] + 7489 Navi 33 7833 RS350 Host Bridge 7834 RS350 [Radeon 9100 PRO/XT IGP] 7835 RS350M [Mobility Radeon 9000 IGP] @@ -3998,7 +4075,7 @@ 148c 3000 Radeon HD 4350 Go! Green 512MB GDDR3 # 113-2E172001-003 174b 3000 Radeon HD 4350/4550 HyperMemory DDR2 - 9553 RV710/M92 [Mobility Radeon HD 4530/4570/545v] + 9553 RV710/M92 [Mobility Radeon HD 4530/4570/5145/530v/540v/545v] 1025 015e Mobility Radeon HD 4570 1025 017d Mobility Radeon HD 4570 1025 0205 Mobility Radeon HD 4570 / 545v @@ -4021,7 +4098,7 @@ 17aa 2129 Mobility Radeon HD 545v 17aa 215b Mobility Radeon HD 545v 17aa 21bb Mobility Radeon HD 545v - 9555 RV710/M92 [Mobility Radeon HD 4350/4550] + 9555 RV711/M93 [Mobility Radeon HD 4350/4550/530v/540v/545v / FirePro RG220] 103c 1411 ProBook 4720s GPU (Mobility Radeon HD 4350) 9557 RV711/M93 GL [FirePro RG220] 955f RV710/M92 [Mobility Radeon HD 4330] @@ -4035,7 +4112,6 @@ 9588 RV630 XT [Radeon HD 2600 XT] 1458 216c Radeon HD 2600 XT, 256MB GDDR3, 2x DVI, TV-out, PCIe (GV-RX26T256H) 9589 RV630 PRO [Radeon HD 2600 PRO] -# Rebranded HD 2600 PRO 1787 3000 Radeon HD 3610 958a RV630 [Radeon HD 2600 X2] 958b RV630/M76 [Mobility Radeon HD 2600 XT] @@ -4064,7 +4140,7 @@ 95c4 RV620/M82 [Mobility Radeon HD 3450/3470] 1002 95c4 Mobility Radeon HD 3400 95c5 RV620 LE [Radeon HD 3450] - 1028 0342 OptiPlex 980 + 1028 0342 Radeon HD 3450 DMS-59 95c6 RV620 LE [Radeon HD 3450 AGP] 95c9 RV620 LE [Radeon HD 3450 PCI] 95cc RV620 GL [FirePro V3700] @@ -4891,14 +4967,14 @@ 1453 Family 17h (Models 00h-0fh) PCIe GPP Bridge 1454 Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B 1455 Zeppelin/Renoir PCIe Dummy Function - 1456 Family 17h (Models 00h-0fh) Platform Security Processor + 1456 Family 17h (Models 00h-0fh) Platform Security Processor (PSP) 3.0 Device 1457 Family 17h (Models 00h-0fh) HD Audio Controller 145a Zeppelin/Raven/Raven2 PCIe Dummy Function 145b Zeppelin Non-Transparent Bridge 145c Family 17h (Models 00h-0fh) USB 3.0 Host Controller 145d Zeppelin Switch Upstream (PCIE SW.US) 145e Zeppelin Switch Downstream (PCIE SW.DS) - 145f Zeppelin USB 3.0 Host controller + 145f Zeppelin USB 3.0 xHCI Compliant Host Controller 1460 Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0 1461 Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1 1462 Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2 @@ -5075,6 +5151,7 @@ ea50 ce19 mCOM10-L1900 15e3 Family 17h/19h HD Audio Controller 103c 8615 Pavilion Laptop 15-cw1xxx + 103c 8b17 ProBook 445 G9/455 G9 1043 86c7 PRIME B450M-A Motherboard 17aa 5124 ThinkPad E595 15e4 Sensor Fusion Hub @@ -5280,7 +5357,7 @@ 43c6 400 Series Chipset PCIe Bridge 43c7 400 Series Chipset PCIe Port 43c8 400 Series Chipset SATA Controller - 43d5 400 Series Chipset USB 3.1 XHCI Controller + 43d5 400 Series Chipset USB 3.1 xHCI Compliant Host Controller 43e9 500 Series Chipset Switch Upstream Port 43eb 500 Series Chipset SATA Controller # or ASM106X Serial ATA Controller @@ -5417,6 +5494,7 @@ 7908 FCH USB EHCI Controller 790b FCH SMBus Controller 103c 8615 Pavilion Laptop 15-cw1xxx + 103c 8b17 ProBook 445 G9/455 G9 1043 876b PRIME Motherboard 1462 7c37 X570-A PRO motherboard 15d9 790b H12SSL-i @@ -5436,18 +5514,22 @@ 1043 82f1 M3A78-EH Motherboard 9601 RS880 Host Bridge 1019 2120 A785GM-M + 1028 0433 Optiplex 580 103c 1609 ProLiant MicroServer N36L 1043 83a2 M4A785-M Mainboard 1043 843e M5A88-V EVO 9602 RS780/RS880 PCI to PCI bridge (int gfx) 9603 RS780 PCI to PCI bridge (ext gfx port 0) + 1028 0433 Optiplex 580 103c 1609 ProLiant MicroServer N36L 9604 RS780/RS880 PCI to PCI bridge (PCIE port 0) + 1028 0433 OptiPlex 580 9605 RS780/RS880 PCI to PCI bridge (PCIE port 1) 9606 RS780 PCI to PCI bridge (PCIE port 2) 103c 1609 ProLiant MicroServer N36L 9607 RS780/RS880 PCI to PCI bridge (PCIE port 3) 9608 RS780/RS880 PCI to PCI bridge (PCIE port 4) + 1028 0433 OptiPlex 580 9609 RS780/RS880 PCI to PCI bridge (PCIE port 5) 960a RS780 PCI to PCI bridge (NB-SB link) 960b RS780 PCI to PCI bridge (ext gfx port 1) @@ -5508,6 +5590,9 @@ 9930 CyberBlade/XPm 9960 CyberBlade XP2 1024 Beijing Dajia Internet Information Technology Co. + 0101 StreamLake 200 AI-VPU + 1024 0201 SL200-NP + 1024 0301 SL200-P 1025 Acer Incorporated [ALI] 1435 M1435 1445 M1445 @@ -5834,7 +5919,6 @@ 110a 001e MGA-G100 AGP 2007 MGA Mistral 2527 Millennium G550 -# PCI\VEN_102B&DEV_2527&SUBSYS_0F42102B&REV_01 102b 0f42 Matrox G550 Low Profile PCI 102b 0f83 Millennium G550 102b 0f84 Millennium G550 Dual Head DDR 32Mb @@ -6516,7 +6600,6 @@ 0009 STG 1764X 0010 STG4000 [3D Prophet Kyro Series] 104a 4018 ST PowerVR Kyro (64MB AGP TVO) -# 64MB AGP 1681 0010 PowerVR Kyro II [3D Prophet 4500] 1681 0028 3D Prophet 4000XT 1681 c010 3D Prophet 4500 TV-Out @@ -7029,6 +7112,8 @@ 6405 MPC184 Security Processor (S1 family) 1058 Electronics & Telecommunications RSH 1059 Kontron + 0004 FPGA M.2 (K20058) + 1059 0000 FPGA M.2 (K20058) 105a Promise Technology, Inc. 0d30 PDC20265 (FastTrak100 Lite/Ultra100) 1043 8042 AV7266-E South Bridge Promise RAID @@ -7292,6 +7377,8 @@ 006a Intrepid2 Firewire 006b Intrepid2 GMAC (Sun GEM) 0074 U4 HT Bridge + 100c Apple Silicon PCI Express Root Port + 1010 Apple Silicon USB4/Thunderbolt PCI Express Root Port # should be 14e4:1645 1645 Broadcom NetXtreme BCM5701 Gigabit Ethernet 1801 T2 Bridge Controller @@ -7440,7 +7527,7 @@ 1077 02f2 QLogic 1x32Gb QLE2770 FC HBA 1077 02f3 QLogic 2x32Gb QLE2772 FC HBA 1590 02d3 SN1610Q - 1P Enhanced 32GFC Single Port Fibre Channel Host Bus Adapter - 1590 02d4 SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter + 1590 02d4 SN1610Q - 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter 2289 ISP2852-based 64/32G Fibre Channel to PCIe Controller with StorCryption 1077 02e9 QLE2882 Dual Port 64GFC PCIe Gen4 x8 Adapter with StorCryption 1077 02eb QLE2782 Dual Port 32GFC PCIe Gen4 x8 Adapter with StorCryption @@ -8560,6 +8647,7 @@ # nee CMD Technology Inc 1095 Silicon Image, Inc. 0240 Adaptec AAR-1210SA SATA HostRAID Controller + 0242 AAR-1220SA SATA RAID Controller 0640 PCI0640 0643 PCI0643 0646 PCI0646 @@ -9349,10 +9437,8 @@ 103c 0024 Pavilion ze4400 builtin USB 103c 0025 XE4500 Notebook 104d 810f VAIO PCG-U1 USB/OHCI Revision 1.0 - 10b9 5237 ASRock 939Dual-SATA2 Motherboard 1849 5237 ASRock 939Dual-SATA2 Motherboard 5239 USB 2.0 Controller - 10b9 5239 ASRock 939Dual-SATA2 Motherboard 1849 5239 ASRock 939Dual-SATA2 Motherboard 5243 M1541 PCI to AGP Controller 5246 AGP8X Controller @@ -9794,6 +9880,7 @@ 0091 G70 [GeForce 7800 GTX] 0092 G70 [GeForce 7800 GT] 0093 G70 [GeForce 7800 GS] + 0094 High Definition Audio 0095 G70 [GeForce 7800 SLI] 0097 G70 [GeForce GTS 250] 0098 G70M [GeForce Go 7800] @@ -11127,6 +11214,7 @@ 086d C79 [GeForce 9200] 086e C79 [GeForce 9100M G] 086f MCP79 [GeForce 8200M G] + 1043 16b2 F5GL Notebook 0870 C79 [GeForce 9400M] 0871 C79 [GeForce 9200] 0872 C79 [GeForce G102M] @@ -11253,21 +11341,28 @@ 0a88 MCP79 Memory Controller 0a89 MCP79 Memory Controller 0a98 MCP79 Memory Controller + 1043 1a87 F5GL Notebook 10de cb79 iMac 9,1 0aa0 MCP79 PCI Express Bridge + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 0aa2 MCP79 SMBus + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 19da a123 IONITX-F-E 0aa3 MCP79 Co-processor + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 19da a123 IONITX-F-E 0aa4 MCP79 Memory Controller + 1043 1a87 F5GL Notebook 19da a123 IONITX-F-E 0aa5 MCP79 OHCI USB 1.1 Controller + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 19da a123 IONITX-F-E 0aa6 MCP79 EHCI USB 2.0 Controller + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 19da a123 IONITX-F-E 0aa7 MCP79 OHCI USB 1.1 Controller @@ -11279,14 +11374,17 @@ 19da a123 IONITX-F-E 0aaa MCP79 EHCI USB 2.0 Controller 0aab MCP79 PCI Bridge + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 0aac MCP79 LPC Bridge 0aad MCP79 LPC Bridge 19da a123 IONITX-F-E 0aae MCP79 LPC Bridge + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 0aaf MCP79 LPC Bridge 0ab0 MCP79 Ethernet + 1043 1215 F5GL Notebook 10de cb79 Apple iMac 9,1 19da a123 IONITX-F-E 0ab1 MCP79 Ethernet @@ -11298,6 +11396,7 @@ 0ab6 MCP79 SATA Controller 0ab7 MCP79 SATA Controller 0ab8 MCP79 AHCI Controller + 1043 1a87 F5GL Notebook 0ab9 MCP79 AHCI Controller 10de cb79 Apple iMac 9,1 0aba MCP79 AHCI Controller @@ -11307,6 +11406,7 @@ 0abe MCP79 RAID Controller 0abf MCP79 RAID Controller 0ac0 MCP79 High Definition Audio + 1043 1903 F5GL Notebook 10de cb79 Apple iMac 9,1 0ac1 MCP79 High Definition Audio 0ac2 MCP79 High Definition Audio @@ -11315,8 +11415,10 @@ 10de cb79 Apple iMac 9,1 0ac5 MCP79 PCI Express Bridge 0ac6 MCP79 PCI Express Bridge + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 0ac7 MCP79 PCI Express Bridge + 1043 1a87 F5GL Notebook 10de cb79 Apple iMac 9,1 0ac8 MCP79 PCI Express Bridge 0ad0 MCP78S [GeForce 8200] SATA Controller (non-AHCI mode) @@ -12231,7 +12333,7 @@ 13c2 GM204 [GeForce GTX 970] 13c3 GM204 13d7 GM204M [GeForce GTX 980M] - 13d8 GM204M [GeForce GTX 970M] + 13d8 GM204M [GeForce GTX 960 OEM / 970M] 13d9 GM204M [GeForce GTX 965M] 13da GM204M [GeForce GTX 980 Mobile] 13e7 GM204GL [GeForce GTX 980 Engineering Sample] @@ -12448,11 +12550,14 @@ 10de 129e Quadro RTX 8000 10de 12ba Quadro RTX 6000 1e36 TU102GL [Quadro RTX 6000] - 1e37 TU102GL [GRID RTX T10-4/T10-8/T10-16] + 1e37 TU102GL [Tesla T10 16GB / GRID RTX T10-2/T10-4/T10-8] + 10de 1304 Tesla T10 16GB 10de 1347 GRID RTX T10-8 10de 1348 GRID RTX T10-4 - 10de 1370 GRID RTX T10-16 - 1e38 TU102GL + 10de 1349 GRID RTX T10-2 + 10de 1370 Tesla T10 16GB + 10de 13a5 GRID RTX T10-8 + 1e38 TU102GL [Tesla T40 24GB] 1e3c TU102GL 1e3d TU102GL 1e3e TU102GL @@ -12476,6 +12581,7 @@ 1eb6 TU104GLM [Quadro RTX 4000 Mobile / Max-Q] 1eb8 TU104GL [Tesla T4] 1eb9 TU104GL + 1eba TU104GL [PG189 SKU600] 1ebe TU104GL 1ec2 TU104 [GeForce RTX 2070 SUPER] 1ec7 TU104 [GeForce RTX 2070 SUPER] @@ -12542,12 +12648,14 @@ 1ff0 TU117GL [T1000 8GB] 1ff2 TU117GL [T400 4GB] 1ff9 TU117GLM [Quadro T1000 Mobile] + 2080 GA100 + 2081 GA100 2082 GA100 [CMP 170HX] 20b0 GA100 [A100 SXM4 40GB] 20b1 GA100 [A100 PCIe 40GB] 20b2 GA100 [A100 SXM4 80GB] -# 20B3 14A7 10DE PG506-242 / 20B3 14A8 10DE PG506-243 - 20b3 GA100 [PG506-242/243] + 20b3 GA100 [A100-SXM-64GB] + 20b4 GA100 20b5 GA100 [A100 PCIe 80GB] 20b6 GA100GL [PG506-232] 20b7 GA100GL [A30 PCIe] @@ -12556,6 +12664,7 @@ 20bb GA100 [DRIVE A100 PROD] 20be GA100 [GRID A100A] 20bf GA100 [GRID A100B] + 20c0 GA100 20c2 GA100 [CMP 170HX] 20f0 GA100 [A100-PG506-207] 20f1 GA100 [A100 PCIe 40GB] @@ -12563,6 +12672,9 @@ 20f3 GA100 [A800-SXM4-80GB] 20f5 GA100 [A800 80GB PCIe] 20f6 GA100 [A800 40GB PCIe] + 20fd GA100 [A100T] + 20fe GA100 + 20ff GA100 2182 TU116 [GeForce GTX 1660 Ti] 2183 TU116 2184 TU116 [GeForce GTX 1660] @@ -12604,12 +12716,16 @@ 228b GA104 High Definition Audio Controller 228e GA106 High Definition Audio Controller 2296 Tegra PCIe Endpoint Virtual Network + 22ba AD102 High Definition Audio Controller 2302 GH100 + 2313 GH100 [H100 CNX] 2321 GH100 - 2322 GH100 [H800] + 2322 GH100 [H800 PCIe] + 2324 GH100 [H800] 2330 GH100[H100 SXM5 80GB] 2331 GH100 [H100 PCIe] - 2336 GH100 [H100 96GB] + 2336 GH100 [H100] + 2339 GH100 [H100] 2414 GA103 [GeForce RTX 3060 Ti] 2420 GA103M [GeForce RTX 3080 Ti Mobile] 2438 GA103GLM [RTX A5500 Laptop GPU] @@ -12642,7 +12758,9 @@ 24ba GA104GLM [RTX A4500 Laptop GPU] 24bb GA104GLM [RTX A3000 Laptop GPU] 24bf GA104 [GeForce RTX 3070 Engineering Sample] - 24c9 GA104 [GeForce RTX 3060 Ti] + 24c7 GA104 [GeForce RTX 3060 8GB] + 24c8 GA104 [GeForce RTX 3070 GDDR6X] + 24c9 GA104 [GeForce RTX 3060 Ti GDDR6X] 24dc GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB] 24dd GA104M [GeForce RTX 3070 Mobile / Max-Q] 24df GA104M @@ -12665,8 +12783,8 @@ 2561 GA106M [GeForce RTX 3060 Laptop GPU] 2563 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q] 2571 GA106 [RTX A2000 12GB] - 2582 GA107 [GeForce RTX 3050] - 2583 GA107 [GeForce RTX 3050] + 2582 GA107 [GeForce RTX 3050 8GB] + 2583 GA107 [GeForce RTX 3050 4GB] 25a0 GA107M [GeForce RTX 3050 Ti Mobile] 25a2 GA107M [GeForce RTX 3050 Mobile] 25a3 GA107 @@ -12676,8 +12794,9 @@ 25a7 GA107M [GeForce MX570] 25a9 GA107M [GeForce RTX 2050] 25aa GA107M [GeForce MX570 A] -# GN20-P0 Refresh - 25ac GN20-P0-R-K2 + 25ab GA107M [GeForce RTX 3050 4GB Laptop GPU] + 25ac GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU] + 25ad GA107 [GeForce RTX 2050] 25af GA107 [GeForce RTX 3050 Engineering Sample] 25b5 GA107GLM [RTX A4 Mobile] # A16 - 25B6 10DE 14A9 / A2 - 25B6 10DE 157E @@ -12686,32 +12805,46 @@ 25b9 GA107GLM [RTX A1000 Laptop GPU] 25ba GA107GLM [RTX A2000 8GB Laptop GPU] 25bb GA107GLM [RTX A500 Laptop GPU] + 25bc GA107GLM [RTX A1000 6GB Laptop GPU] + 25bd GA107GLM [RTX A500 Laptop GPU] 25e0 GA107BM [GeForce RTX 3050 Ti Mobile] 25e2 GA107BM [GeForce RTX 3050 Mobile] 25e5 GA107BM [GeForce RTX 3050 Mobile] -# GN20-P0 Refresh - 25ec GN20-P0-R-K2 + 25ec GN20-P0-R-K2 [GeForce RTX 3050 6GB Laptop GPU] + 25ed GA107 [GeForce RTX 2050] 25f9 GA107 [RTX A1000 Embedded GPU ] 25fa GA107 [RTX A2000 Embedded GPU] 25fb GA107 [RTX A500 Embedded GPU] + 2681 AD102 [RTX TITAN Ada] 2684 AD102 [GeForce RTX 4090] - 26b1 AD102GL [L6000 / RTX 6000 Ada Generation] + 26b1 AD102GL [RTX 6000 Ada Generation] + 26b2 AD102GL [RTX 5000 Ada Generation] 26b5 AD102GL [L40] 26b8 AD102GL [L40G] 26f5 AD102GL [L40 CNX] 2704 AD103 [GeForce RTX 4080] - 2717 GN21-X11 + 2717 GN21-X11 [GeForce RTX 4090 Laptop GPU] + 2730 AD103GLM [RTX 5000 Ada Generation Laptop GPU] 2757 GN21-X11 + 2782 AD104 [GeForce RTX 4070 Ti] 2785 AD104 - 27a0 GN21-X9 + 2786 AD104 [GeForce RTX 4070] + 27a0 AD104M [GeForce RTX 4080 Max-Q / Mobile] + 27b0 AD104GL [RTX 4000 SFF Ada Generation] + 27b7 AD104GL [L16] 27b8 AD104GL [L4] - 27e0 GN21-X9 - 2820 GN21-X6 - 2860 GN21-X6 - 28a0 GN21-X4 - 28a1 GN21-X2 - 28e0 GN21-X4 - 28e1 GN21-X2 + 27ba AD104GLM [RTX 4000 Ada Generation Laptop GPU] + 27bb AD104GLM [RTX 3500 Ada Generation Laptop GPU] + 27e0 AD104M [GeForce RTX 4080 Max-Q / Mobile] + 2803 AD106 [GeForce RTX 4060 Ti] + 2820 AD106M [GeForce RTX 4070 Max-Q / Mobile] + 2838 AD106GLM [RTX 3000 Ada Generation Laptop GPU] + 2860 AD106M [GeForce RTX 4070 Max-Q / Mobile] + 28a0 AD107M [GeForce RTX 4060 Max-Q / Mobile] + 28a1 AD107M [GeForce RTX 4050 Max-Q / Mobile] + 28b8 AD107GLM [RTX 2000 Ada Generation Laptop GPU] + 28e0 AD107M [GeForce RTX 4060 Max-Q / Mobile] + 28e1 AD107M [GeForce RTX 4050 Max-Q / Mobile] 10df Emulex Corporation 0720 OneConnect NIC (Skyhawk) 103c 1934 FlexFabric 20Gb 2-port 650M Adapter @@ -12921,6 +13054,7 @@ 10ec Realtek Semiconductor Co., Ltd. 0139 RTL-8139/8139C/8139C+ Ethernet Controller 3000 Killer E3000 2.5GbE Controller + 4321 RTL8852BE 802.11ax PCIe Wireless Network Adapter 5208 RTS5208 PCI Express Card Reader 5209 RTS5209 PCI Express Card Reader 5227 RTS5227 PCI Express Card Reader @@ -13053,6 +13187,7 @@ 103c 86d4 Pavilion Laptop 15-ec0xxx # Rev 29, uses r8169 Driver on Linux 103c 8882 HP ProDesk 405 G8 Desktop Mini PC + 103c 8b17 ProBook 445 G9/455 G9 [RTL8111HSH-CG GbE Controller] 1043 11f5 Notebook motherboard (one of many models) 1043 16d5 U6V/U31J laptop 1043 81aa P5B @@ -13141,7 +13276,7 @@ 10ec 8739 Dell Wireless 1801 17aa b736 Z50-75 b822 RTL8822BE 802.11a/b/g/n/ac WiFi adapter - 103c 831b Realtek RTL8822BE 802.11ac 2 × 2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported) + 103c 831b Realtek RTL8822BE 802.11ac 2x2 Wi-Fi + Bluetooth 4.2 Combo Adapter (MU-MIMO supported) 17aa 5124 ThinkPad E595 17aa b023 ThinkPad E595 c821 RTL8821CE 802.11ac PCIe Wireless Network Adapter @@ -13168,16 +13303,11 @@ 3fc4 RME Digi9652 (Hammerfall) 3fc5 RME Hammerfall DSP 3fc6 RME Hammerfall DSP MADI -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html 5000 Alveo U200 XDMA Platform -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html 5004 Alveo U250 XDMA Platform 5005 Alveo U250 -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html 500c Alveo U280 XDMA Platform -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html 5020 Alveo U50 XMDA Platform -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html 505c Alveo U55C 6987 SmartSSD 6988 SmartSSD @@ -13191,13 +13321,9 @@ 9134 SmartSSD 9234 SmartSSD 9434 SmartSSD -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html d000 Alveo U200 Golden Image -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html d004 Alveo U250 Golden Image -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html d00c Alveo U280 Golden Image -# Reference: https://xilinx.github.io/Alveo-Cards/master/management-specification/appendix_a.html d020 Alveo U50 Golden Image d154 Copley Controls CAN card (PCI-CAN-02) # SED is assigned Xilinx PCI device IDs ebf0 through ebff @@ -13706,6 +13832,8 @@ 1462 7181 K8MM3-V mainboard 147b 1407 KV8-MAX3 motherboard 1695 300c Realtek ALC655 audio on EP-8KRA series mainboard + 16f3 4170 J7F2 motherboard + 1734 1078 Amilo L7300T notebook 1849 0850 ASRock 775Dual-880 Pro onboard audio (Realtek ALC850) 1849 9739 P4VT8 Mainboard (C-Media CMI9739A codec) # probably all K7VT2/4*/6 @@ -13834,9 +13962,9 @@ 3208 PT890 Host Bridge 3213 VPX/VPX2 PCI to PCI Bridge Controller 3218 K8T800M Host Bridge - 3227 VT8237 ISA bridge [KT600/K8T800/K8T890 South] + 3227 VT8237 ISA bridge [KT600/K8T800/K8T890/CN700 South] 1043 80ed A7V600/K8V-X/A8V Deluxe motherboard - 1106 3227 DFI KT600-AL / Soltek SL-B9D-FGR Motherboard + 1106 3227 VT8237 ISA bridge 1458 5001 GA-7VT600 Motherboard 147b 1407 KV8-MAX3 motherboard 1849 3227 K7VT4 motherboard @@ -13988,8 +14116,7 @@ 9082 Standard AHCI 1.0 SATA Controller 9140 HDMI Audio Device 9201 USB3.0 Controller -# Centaur CNS Coprocessor - 9380 Ncore Coprocessor + 9380 Ncore Coprocessor for Centaur CNS 9530 VX800/820/900 Series Secure Digital Memory Card Controller 95d0 VX800/820/900 Series SDIO Host Controller a208 PT890 PCI to PCI Bridge Controller @@ -14324,6 +14451,7 @@ 112a Hermes Electronics Company, Ltd. # nee Linotype - Hell AG 112b Heidelberger Druckmaschinen AG + 0001 SCU5 112c Zenith Data Systems 112d Ravicad 112e Infomedia Microelectronics Inc. @@ -14534,8 +14662,7 @@ 153b 1157 Cinergy 1200 DVB-T 153b 1176 Cinergy 1200 DVB-C (MK3) 1894 0020 KNC One DVB-C V1.0 - 1894 0023 TVStation DVB-C plus -# http://www.knc1.com/gb.htm + 1894 0023 TV-Station DVB-C plus 1894 0054 TV-Station DVB-S 7160 SAA7160 1458 9009 E8000 DVB-T/Analog TV/FM tuner @@ -15240,6 +15367,8 @@ 117c 00bc Celerity FC-321P 117c 00bd Celerity FC-322P 117c 00be Celerity FC-324P + 117c 00c9 Celerity FC-641E + 117c 00ca Celerity FC-642E 00c5 ExpressNVM PCIe Gen4 Switch 117c 00c6 ExpressNVM S48F PCIe Gen4 117c 00c7 ExpressNVM S468 PCIe Gen4 @@ -16394,6 +16523,13 @@ *** 2035 LINES SKIPPED *** From nobody Fri May 19 08:17:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN07q4vdzz4BfCQ; Fri, 19 May 2023 08:17:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN07q4Rlsz4FqX; Fri, 19 May 2023 08:17:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484247; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qfnOjyjK7WfdZiB6cre+AZ5Z+vBD/aS55uSE2H8teeo=; b=ttdAEjmcJtkT1DgytiRmfk/M1JBzylSnlyl4YJsNbI+d8hJ4o7UOwLK4qdbAxQOhla8H2a QlBZGCJuxOiSFbLwVipoj+2Tjohvhm9rjv81Ufg79K/yqXmiAT7tIDdItPTZSFPzfTF8Ll M2TNko5S4SaX95oBSVeF9Gn7O4x+Np31ncPHWFL+qbEsPiM9iejbrBWGzjlGihasqoDZ/F odjCXJHOmrSi3yjc44OxOYjrbaAK+J651CWnd/8yFzTqO+dqZIoa07y6DpNaD4zrRhCWOa Wbkc3L7RSS+zj6DneU8wOJKPzSOBfXYakaglBF6BR7GFFtRDM/HtEE95scx35A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484247; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qfnOjyjK7WfdZiB6cre+AZ5Z+vBD/aS55uSE2H8teeo=; b=LdpUx67x/LBo0t5SI3nr1xXAH944cV2Q4A3p+oYBYxN6u3jYzIBaHyjS8+XoAySKXJiRV7 27clbmABN+qGGrQFJSZ+0Q0Dtc/Nq6QCQNhHVTTHNIOON4RIY3lcf9s8KBf/ER/f8b3Rru WvL3RjD7FNuO3eqU/g7hVs44ZCsUGWvDoERivvNre7NuqYfP2Eqo3mNWzWTyEW8tzX8N9w Lr7NlPGnCJs1W9n+5wYbT7faVoH0pUE1uPPAXL0Lb3AzEiqo9RDwtJ4ZSl76+Ie0fq/Tfo LCAXmtPeg++W3QIgI7eP21ZPHT31wHzKriGeDVjSfCrGPy18YtC8uerN5jX2XQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484247; a=rsa-sha256; cv=none; b=N4jeXDbLBvM6MGyHokZCSnJLEaG4hs1rjp7JsnIqe7M3pPlNKZPfip92S9zJbrJCFE8Wny pC4YKcFmvcq/hd9f8qOdooYa0BzFSl79ELITv45PvYuwFCUvrckyPDs+ojQ3aZr9xG57Rm oZ0knxnwxLU+gVmwTeR5j9x44a+o9d1d1c/0cdZkS40ohFCzvSvNm7GEi9u/7aiA0p8RE6 lvhBBN//aBfRgarrcB//BJEjcaYCT0zyhw4/uXeMCw7cC/iE6VTSJRxsdaipR+xwYolqiH TdFvIsvdsjidzD1J026di72O0jynGfUZ0+d5wxTk/aD14n72W3Z7JaO2Spus9w== 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 4QN07q3Vq7zKvm; Fri, 19 May 2023 08:17:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8HRdQ018179; Fri, 19 May 2023 08:17:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8HRpr018178; Fri, 19 May 2023 08:17:27 GMT (envelope-from git) Date: Fri, 19 May 2023 08:17:27 GMT Message-Id: <202305190817.34J8HRpr018178@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: 7bc2192380e1 - stable/13 - pkg(7): use libmd for sha256 instead of openssl List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 7bc2192380e10f3469ab4eda69ade324aae976cd Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=7bc2192380e10f3469ab4eda69ade324aae976cd commit 7bc2192380e10f3469ab4eda69ade324aae976cd Author: Baptiste Daroussin AuthorDate: 2023-03-09 16:38:30 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:16:51 +0000 pkg(7): use libmd for sha256 instead of openssl OpenSSL 3.0 has deprecated the sha256 api, let's use libmd which has the same API instead. In order to avoid the collision in definitions (sha256.h cannot be included in the same file as a file where openssl headers has been included) let's move the sha256 related code in its own file PR: 270023 Reported by: ngie (cherry picked from commit b2654064c2d11a1ee36667b3ff8b0f4d2536af74) --- usr.sbin/pkg/Makefile | 4 +- usr.sbin/pkg/hash.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++ usr.sbin/pkg/hash.h | 32 +++++++++++++++ usr.sbin/pkg/pkg.c | 78 +---------------------------------- 4 files changed, 147 insertions(+), 79 deletions(-) diff --git a/usr.sbin/pkg/Makefile b/usr.sbin/pkg/Makefile index e40265146657..895438982309 100644 --- a/usr.sbin/pkg/Makefile +++ b/usr.sbin/pkg/Makefile @@ -23,11 +23,11 @@ CONFSNAME_${PKGCONF}= ${PKGCONF:C/\.conf.+$/.conf/} CONFSDIR= /etc/pkg CONFSMODE= 644 PROG= pkg -SRCS= pkg.c dns_utils.c config.c +SRCS= pkg.c dns_utils.c config.c hash.c MAN= pkg.7 CFLAGS+=-I${SRCTOP}/contrib/libucl/include .PATH: ${SRCTOP}/contrib/libucl/include -LIBADD= archive fetch ucl crypto ssl util +LIBADD= archive fetch ucl crypto ssl util md .include diff --git a/usr.sbin/pkg/hash.c b/usr.sbin/pkg/hash.c new file mode 100644 index 000000000000..47bcae6c5b6a --- /dev/null +++ b/usr.sbin/pkg/hash.c @@ -0,0 +1,112 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2012-2014 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 + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include + +#include "hash.h" + +static void +sha256_hash(unsigned char hash[SHA256_DIGEST_LENGTH], + char out[SHA256_DIGEST_LENGTH * 2 + 1]) +{ + int i; + + for (i = 0; i < SHA256_DIGEST_LENGTH; i++) + sprintf(out + (i * 2), "%02x", hash[i]); + + out[SHA256_DIGEST_LENGTH * 2] = '\0'; +} + +void +sha256_buf(char *buf, size_t len, char out[SHA256_DIGEST_LENGTH * 2 + 1]) +{ + unsigned char hash[SHA256_DIGEST_LENGTH]; + SHA256_CTX sha256; + + out[0] = '\0'; + + SHA256_Init(&sha256); + SHA256_Update(&sha256, buf, len); + SHA256_Final(hash, &sha256); + sha256_hash(hash, out); +} + +int +sha256_fd(int fd, char out[SHA256_DIGEST_LENGTH * 2 + 1]) +{ + int my_fd; + FILE *fp; + char buffer[BUFSIZ]; + unsigned char hash[SHA256_DIGEST_LENGTH]; + size_t r; + int ret; + SHA256_CTX sha256; + + fp = NULL; + ret = 1; + + out[0] = '\0'; + + /* Duplicate the fd so that fclose(3) does not close it. */ + if ((my_fd = dup(fd)) == -1) { + warnx("dup"); + goto cleanup; + } + + if ((fp = fdopen(my_fd, "rb")) == NULL) { + warnx("fdopen"); + goto cleanup; + } + + SHA256_Init(&sha256); + + while ((r = fread(buffer, 1, BUFSIZ, fp)) > 0) + SHA256_Update(&sha256, buffer, r); + + if (ferror(fp) != 0) { + warnx("fread"); + goto cleanup; + } + + SHA256_Final(hash, &sha256); + sha256_hash(hash, out); + ret = 0; + +cleanup: + if (fp != NULL) + fclose(fp); + else if (my_fd != -1) + close(my_fd); + (void)lseek(fd, 0, SEEK_SET); + + return (ret); +} diff --git a/usr.sbin/pkg/hash.h b/usr.sbin/pkg/hash.h new file mode 100644 index 000000000000..dcdc458b5e61 --- /dev/null +++ b/usr.sbin/pkg/hash.h @@ -0,0 +1,32 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2023 Baptiste Daroussin + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#pragma once + +void sha256_buf(char *buf, size_t len, char out[]); +int sha256_fd(int fd, char out[]); diff --git a/usr.sbin/pkg/pkg.c b/usr.sbin/pkg/pkg.c index f3c338c6961e..7c4749f8089e 100644 --- a/usr.sbin/pkg/pkg.c +++ b/usr.sbin/pkg/pkg.c @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include "dns_utils.h" #include "config.h" +#include "hash.h" struct sig_cert { char *name; @@ -400,83 +401,6 @@ load_fingerprints(const char *path, int *count) return (fingerprints); } -static void -sha256_hash(unsigned char hash[SHA256_DIGEST_LENGTH], - char out[SHA256_DIGEST_LENGTH * 2 + 1]) -{ - int i; - - for (i = 0; i < SHA256_DIGEST_LENGTH; i++) - sprintf(out + (i * 2), "%02x", hash[i]); - - out[SHA256_DIGEST_LENGTH * 2] = '\0'; -} - -static void -sha256_buf(char *buf, size_t len, char out[SHA256_DIGEST_LENGTH * 2 + 1]) -{ - unsigned char hash[SHA256_DIGEST_LENGTH]; - SHA256_CTX sha256; - - out[0] = '\0'; - - SHA256_Init(&sha256); - SHA256_Update(&sha256, buf, len); - SHA256_Final(hash, &sha256); - sha256_hash(hash, out); -} - -static int -sha256_fd(int fd, char out[SHA256_DIGEST_LENGTH * 2 + 1]) -{ - int my_fd; - FILE *fp; - char buffer[BUFSIZ]; - unsigned char hash[SHA256_DIGEST_LENGTH]; - size_t r; - int ret; - SHA256_CTX sha256; - - fp = NULL; - ret = 1; - - out[0] = '\0'; - - /* Duplicate the fd so that fclose(3) does not close it. */ - if ((my_fd = dup(fd)) == -1) { - warnx("dup"); - goto cleanup; - } - - if ((fp = fdopen(my_fd, "rb")) == NULL) { - warnx("fdopen"); - goto cleanup; - } - - SHA256_Init(&sha256); - - while ((r = fread(buffer, 1, BUFSIZ, fp)) > 0) - SHA256_Update(&sha256, buffer, r); - - if (ferror(fp) != 0) { - warnx("fread"); - goto cleanup; - } - - SHA256_Final(hash, &sha256); - sha256_hash(hash, out); - ret = 0; - -cleanup: - if (fp != NULL) - fclose(fp); - else if (my_fd != -1) - close(my_fd); - (void)lseek(fd, 0, SEEK_SET); - - return (ret); -} - static EVP_PKEY * load_public_key_file(const char *file) { From nobody Fri May 19 08:17:28 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN07s0wYFz4BfFv; Fri, 19 May 2023 08:17:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN07r5JyVz4G40; Fri, 19 May 2023 08:17:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cSZUSHp/9Rv7oHIAaEXm03yoQpuHr/XpBj6DPRMpghM=; b=q043Yuzt4lix8EAbBUAU15iLCmIbx7o7tV3uOMlOcSuXkt6aoi/sWqlRSIQCMzVbH8km9e Cd4g49wy3CGWk3hxid6pIqfqBrXHw8Ewu9G0FOym/Cej1vyxZ3xoOTn38cUz3s/gIKSSFE vBMk/BZ1Z+2+Zc4M2n5wjrVBNTgD4tV5WUrBom7mBHoRR2dbuNJC8d4DNZqMtv5YPEOIzp ZMhLSj0LlH/ylrru8hVUEAioeC6F1FaaVWhgcPT3CTY3qsR1dY1MffVr1+wsHQ4RxqkFTO rsoTwNl1Ub0Mp6yX4dK0cr9gpC4MBW2CutC4wgXsSq7IDNasfm0XXVdOzYTwrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cSZUSHp/9Rv7oHIAaEXm03yoQpuHr/XpBj6DPRMpghM=; b=mqhJ8fLvm5mVO+og4CPE6adWFTLqSURT6Fm/QL48HY+Ddezp2jpOGciM1e4M73Tme222Te K1ZZGfd+vtXdc7N/YDDMCSFJ2XI67ra4mVTeCJm9YUCJaFFyQBC2fgXXKEg+kuNb4m5Z6W lNrLo6w08hQnVqwvEs9u9R06GCNrtHzRdPRY8CD+sNZ+KWwYRMy0ePbeW0BNbrCJyd3A66 qfNLANvljTfkCGrZcfrMm4i4XMUFkKH6jillD3cWb5xrmPzrNgknZ8sZyvcEQo+tOX1xPm fPmoZtSBAAcl22+VDjSYV+ahcnxGk7ExtMqWq3EA0Jh+/7bsKv47gg33E6R7BQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484248; a=rsa-sha256; cv=none; b=Sq0T60yIJHFvGybx/unawq/rhXz4Y5hJwwgcvekvUH+lW0V7mmTwz4EHmZF/R9pLBpWkTP IyH/EHeBEBOXATpd1prHt22YBboVMdukRPtcA3b6my6TFwdx6XjGvOZGDkjSYV5mK4ANdG oP0ItEkWTidmxjefJvS2/k0JvIRM76bxUjscKKOgPXFMklwpAoBSeoUEZpl+K6YhKWGbwh Hw4i6R4q6UPlPEh1BFfBaVHLZjj/a/m2Or4xvd0xZwtfC96hRu7yW8Vwm+a59lTGSVIaNg PYPK5DT76d+Iydsx/eaoU9JHMyQiRbwN5gljV5+rhD4HGL+XhKEpCyyyXDX4bg== 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 4QN07r4NR3zKV3; Fri, 19 May 2023 08:17:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8HSDa018201; Fri, 19 May 2023 08:17:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8HScd018200; Fri, 19 May 2023 08:17:28 GMT (envelope-from git) Date: Fri, 19 May 2023 08:17:28 GMT Message-Id: <202305190817.34J8HScd018200@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: 4399248d8776 - stable/13 - pkg(7): now that we do use libmd, use it completly List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 4399248d87766aec3dd15c466f6bdfd68f926192 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=4399248d87766aec3dd15c466f6bdfd68f926192 commit 4399248d87766aec3dd15c466f6bdfd68f926192 Author: Baptiste Daroussin AuthorDate: 2023-03-09 20:29:15 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:16:51 +0000 pkg(7): now that we do use libmd, use it completly Use SHA256_Fd and SHA256_Data instead of home made equivalent. wrap those functions into hash.c to avoid header collition between openssl and libmd Suggested by: kevans (cherry picked from commit e5dd5bfa55dc82686870330f547932486ba48db2) --- usr.sbin/pkg/hash.c | 77 +++++------------------------------------------------ usr.sbin/pkg/hash.h | 4 +-- usr.sbin/pkg/pkg.c | 12 ++++++--- 3 files changed, 16 insertions(+), 77 deletions(-) diff --git a/usr.sbin/pkg/hash.c b/usr.sbin/pkg/hash.c index 47bcae6c5b6a..9696738fcafc 100644 --- a/usr.sbin/pkg/hash.c +++ b/usr.sbin/pkg/hash.c @@ -27,86 +27,21 @@ * SUCH DAMAGE. */ -#include #include -#include #include #include "hash.h" -static void -sha256_hash(unsigned char hash[SHA256_DIGEST_LENGTH], - char out[SHA256_DIGEST_LENGTH * 2 + 1]) +char * +sha256_buf(char *buf, size_t len) { - int i; - for (i = 0; i < SHA256_DIGEST_LENGTH; i++) - sprintf(out + (i * 2), "%02x", hash[i]); - - out[SHA256_DIGEST_LENGTH * 2] = '\0'; -} - -void -sha256_buf(char *buf, size_t len, char out[SHA256_DIGEST_LENGTH * 2 + 1]) -{ - unsigned char hash[SHA256_DIGEST_LENGTH]; - SHA256_CTX sha256; - - out[0] = '\0'; - - SHA256_Init(&sha256); - SHA256_Update(&sha256, buf, len); - SHA256_Final(hash, &sha256); - sha256_hash(hash, out); + return (SHA256_Data(buf, len, NULL)); } -int -sha256_fd(int fd, char out[SHA256_DIGEST_LENGTH * 2 + 1]) +char * +sha256_fd(int fd) { - int my_fd; - FILE *fp; - char buffer[BUFSIZ]; - unsigned char hash[SHA256_DIGEST_LENGTH]; - size_t r; - int ret; - SHA256_CTX sha256; - - fp = NULL; - ret = 1; - - out[0] = '\0'; - - /* Duplicate the fd so that fclose(3) does not close it. */ - if ((my_fd = dup(fd)) == -1) { - warnx("dup"); - goto cleanup; - } - - if ((fp = fdopen(my_fd, "rb")) == NULL) { - warnx("fdopen"); - goto cleanup; - } - - SHA256_Init(&sha256); - - while ((r = fread(buffer, 1, BUFSIZ, fp)) > 0) - SHA256_Update(&sha256, buffer, r); - - if (ferror(fp) != 0) { - warnx("fread"); - goto cleanup; - } - - SHA256_Final(hash, &sha256); - sha256_hash(hash, out); - ret = 0; - -cleanup: - if (fp != NULL) - fclose(fp); - else if (my_fd != -1) - close(my_fd); - (void)lseek(fd, 0, SEEK_SET); - return (ret); + return (SHA256_Fd(fd, NULL)); } diff --git a/usr.sbin/pkg/hash.h b/usr.sbin/pkg/hash.h index dcdc458b5e61..786d4371ef32 100644 --- a/usr.sbin/pkg/hash.h +++ b/usr.sbin/pkg/hash.h @@ -28,5 +28,5 @@ #pragma once -void sha256_buf(char *buf, size_t len, char out[]); -int sha256_fd(int fd, char out[]); +char *sha256_buf(char *buf, size_t len); +char *sha256_fd(int fd); diff --git a/usr.sbin/pkg/pkg.c b/usr.sbin/pkg/pkg.c index 7c4749f8089e..c5d97d46c2d6 100644 --- a/usr.sbin/pkg/pkg.c +++ b/usr.sbin/pkg/pkg.c @@ -443,10 +443,11 @@ rsa_verify_cert(int fd, const char *sigfile, const unsigned char *key, { EVP_MD_CTX *mdctx; EVP_PKEY *pkey; - char sha256[(SHA256_DIGEST_LENGTH * 2) + 2]; + char *sha256; char errbuf[1024]; bool ret; + sha256 = NULL; pkey = NULL; mdctx = NULL; ret = false; @@ -458,7 +459,7 @@ rsa_verify_cert(int fd, const char *sigfile, const unsigned char *key, warn("lseek"); goto cleanup; } - if ((sha256_fd(fd, sha256)) == -1) { + if ((sha256 = sha256_fd(fd)) == NULL) { warnx("Error creating SHA256 hash for package"); goto cleanup; } @@ -503,6 +504,7 @@ error: printf("failed\n"); cleanup: + free(sha256); if (pkey) EVP_PKEY_free(pkey); if (mdctx) @@ -665,8 +667,9 @@ verify_signature(int fd_pkg, int fd_sig) int trusted_count, revoked_count; const char *fingerprints; char path[MAXPATHLEN]; - char hash[SHA256_DIGEST_LENGTH * 2 + 1]; + char *hash; + hash = NULL; sc = NULL; trusted = revoked = NULL; ret = false; @@ -703,7 +706,7 @@ verify_signature(int fd_pkg, int fd_sig) sc->trusted = false; /* Parse signature and pubkey out of the certificate */ - sha256_buf(sc->cert, sc->certlen, hash); + hash = sha256_buf(sc->cert, sc->certlen); /* Check if this hash is revoked */ if (revoked != NULL) { @@ -742,6 +745,7 @@ verify_signature(int fd_pkg, int fd_sig) ret = true; cleanup: + free(hash); if (trusted) free_fingerprint_list(trusted); if (revoked) From nobody Fri May 19 08:20:06 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN0Bt4df0z4BfF1; Fri, 19 May 2023 08:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN0Bt4BZkz4Gq9; Fri, 19 May 2023 08:20:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=48mgwFaER4RJf7PnXu2PylfrnuPeU4U4vvRZQ0VRhSY=; b=gXqj4tRbd21YBOE315QHl7Mzk/nTDgD0qqvbdvjes1xuC0kuVPjndIT9M9fSXWr1BQaraD IozKxHQMpPvP13m9LtFOqV/tvjLJuPwRiuE+ubqpfEQ52eE74nprPR2+YYkYhVQ9x+Mopd jKqSH8HJG+zmfctocZGxS+pJLEWqWum2fJrRuF77Q3h/U0VzM8HAaJt/gpDck47TEqWkBy afJ+Uru0VaXIWZK6VTZTyqqbP76xeOI7owb0YjBN8NMWgWsHJY9rbxUHGGfKS43WQGucSx 7cC43DVm+9qt7AkwClx4W04HemnuEBlvhNJIa2jLxGZyUa5svrBT094rfB1WJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484406; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=48mgwFaER4RJf7PnXu2PylfrnuPeU4U4vvRZQ0VRhSY=; b=mFeuBKOJAEC+3X0TKkdxiG1uGZej7gG82gTj6vsouTR++I5bYDoRush3C7IKwZt7OTkHDx QfTtT6Zy5c7tO96CK1oKKcfPdMLUwdvLTLV91uwvCgcYlJVNIXxX7EFuQrVdMpXDsrtsQY HjfCMffZmUicPavVYyDSF2+SFMK7p2ESAH8TNTl3bF9/J7u3MCrGpaPRaw67is1SgqWJ20 Pr4tOKJkJImwsVQVFNm6oeDkyCED9MyFPOu7B4CIQXnIuSguC3Jc8J6Nyufqs814QN4pqb KnL4uAZA2P++VFDvkrIQZUPLXgJQCOGM6PIPSx840SxvfedovuRmDHS1gPYSQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484406; a=rsa-sha256; cv=none; b=w91rSUeDb/CvXc8NBYhTDDYDTZqSe9p6gIjVZ4bEoyXerIFrePQCKMBFd7V9LhMRXbMy1I 8PiGH8dv3HjzgQhkQ2J9otBRljY7zgI6QKBDMlQ1VeN/pgn1mpU3xTsTLJkQyuzyiPurkM R9QjnTBEkRAkleBDEfBaDhBC1MuwgKRbpogecAWCEe6kBv9jw6XOvoDH+Q22u6rgXyBeLd O5dml2+MO5CXhFgCbgIkGRQYtYL2lus04tU45WRe7JUik1cyr83H3HKOfNb3m9IRb7osOM +BNq411/C5xjvj73DnKG9BhdnmTMoKv0yMHhFBJECPv3TA3NMg9Vjt5E/s2+Og== 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 4QN0Bt2yMVzLJF; Fri, 19 May 2023 08:20:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8K6w8021526; Fri, 19 May 2023 08:20:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8K6AU021524; Fri, 19 May 2023 08:20:06 GMT (envelope-from git) Date: Fri, 19 May 2023 08:20:06 GMT Message-Id: <202305190820.34J8K6AU021524@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: 2f251aa5ad7f - stable/12 - pw: do not call system() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 2f251aa5ad7fd53b42e594ff7d46eafd58acbb6e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=2f251aa5ad7fd53b42e594ff7d46eafd58acbb6e commit 2f251aa5ad7fd53b42e594ff7d46eafd58acbb6e Author: Baptiste Daroussin AuthorDate: 2023-05-15 06:55:08 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:19:55 +0000 pw: do not call system() Calling system makes pw(8) spawn a shell, which can then be abused. MFC After: 3 days (cherry picked from commit ef7d0eb9489f39169a1ae83c576fe74e40d126ad) --- usr.sbin/pw/pw_user.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index 21a4c5a0c26e..778855e3d1cd 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -50,6 +50,7 @@ static const char rcsid[] = #include #include #include +#include #include "pw.h" #include "bitmap.h" @@ -57,6 +58,7 @@ static const char rcsid[] = #define LOGNAMESIZE (MAXLOGNAME-1) +extern char **environ; static char locked_str[] = "*LOCKED*"; static struct passwd fakeuser = { @@ -695,11 +697,16 @@ rmat(uid_t uid) stat(e->d_name, &st) == 0 && !S_ISDIR(st.st_mode) && st.st_uid == uid) { - char tmp[MAXPATHLEN]; - - snprintf(tmp, sizeof(tmp), "/usr/bin/atrm %s", - e->d_name); - system(tmp); + const char *argv[] = { + "/usr/sbin/atrm", + e->d_name, + NULL + }; + if (posix_spawn(NULL, argv[0], NULL, NULL, + (char *const *) argv, environ)) { + warn("Failed to execute '%s %s'", + argv[0], argv[1]); + } } } closedir(d); @@ -944,9 +951,18 @@ pw_user_del(int argc, char **argv, char *arg1) /* Remove crontabs */ snprintf(file, sizeof(file), "/var/cron/tabs/%s", pwd->pw_name); if (access(file, F_OK) == 0) { - snprintf(file, sizeof(file), "crontab -u %s -r", - pwd->pw_name); - system(file); + const char *argv[] = { + "crontab", + "-u", + pwd->pw_name, + "-r", + NULL + }; + if (posix_spawnp(NULL, argv[0], NULL, NULL, + (char *const *) argv, environ)) { + warn("Failed to execute '%s %s'", + argv[0], argv[1]); + } } } From nobody Fri May 19 08:20:07 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN0Bv53RRz4BfS4; Fri, 19 May 2023 08:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN0Bv4Hz2z4Gl4; Fri, 19 May 2023 08:20:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XCjo13fgZLd1enfWB+ESvsR429S1ql/Cm72QDP++Y3U=; b=X5+7IBXOZF29H15i6LpVFcR0j8yu12/C+NS1q1PeOs9mgKDkNF1hbvIXowJK1Hk2A0xZvY G0zd9/FDYp+OjoDJQdhe2LhuC1aQLAE0zs5eiDbZUXWMVal+OdHk+mvsQW1gu6PFCpfwzT FGO7QBwOhbheDfuzta0hKC9HaOlazucZlMRStEU80pl9NJ72c5lmaqZEmoeAf1iXirqj9V 4RGAtj3cbUZ3M/8NoX3bZszGV2w8HSNQ0eIGBFXZpvD0KcnRW04A6g9W1eLnz2AOxW+jvm FA1+rQQo1f0WBU6VXLmDFjAlpaR5Gtt5RtVqG+Zgx9lNJM1d0spwviQyyPlrEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484407; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XCjo13fgZLd1enfWB+ESvsR429S1ql/Cm72QDP++Y3U=; b=iTpuaE5zWE3k8PU1mfzfHgIlBScZaXSF+fLVf+aWpOqDvf3SI/DnOE7gDsxC3fQ3Uv3GJL gCgqfgCeC+oWMLNRcyevpVUDktaYCZC25eO+/hlR/mDcfjTLJt5ndXM3oxlpVETN9AxBlw Kxe11ErXwXpHEaAhFg6wNgH4j0ZjLAZXl/KGOJtmP6khH5zGlkqTy35fMQTt7pTKgKZJF+ ScL7ceJbT2I98LPB+gSYN5X4207WVPfocq5Lk+WO7xnqGanVDwdmsXqp3D2hQZBE6J3AYQ d25Uq0qKXD6GBzNXUC7pvusBTfsZdDcgdC8NqYoXVpxEQa78YQxVIhE1TG08lw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484407; a=rsa-sha256; cv=none; b=Q/eU3IVeW/GMi32kG1m8jLLGScHpGpKgldjKYp6xa6fa/SM3iqRCRCXJJwap+H0fSiNOLI GpMqStrEtbmby0N9Z8KoKQcYc83XtugNFnToWlPxJgZSvwoRFJnpUNvjgMoH38oXlyhvwG W6HSGQl3+xxnfHUS8UEFI+qraLgUecBck6sACkAO4BSEfVBNv+Z7q6xmhKGM+OqzePWrFO dHSt9ZtNF3/24spun3V4WU5LGgXlxD2qyPfUZz5lBVGqTtXZJw2LlMXGS+hx1sHJ7t+h5s Bf1EHbaoU4lQVZHCPlu6qBdbMuZ4XgfQfZqu6R80SWr3SDHNG+OrEJwMvZ2m+A== 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 4QN0Bv3C5MzLRJ; Fri, 19 May 2023 08:20:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8K7rF021779; Fri, 19 May 2023 08:20:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8K7Xm021777; Fri, 19 May 2023 08:20:07 GMT (envelope-from git) Date: Fri, 19 May 2023 08:20:07 GMT Message-Id: <202305190820.34J8K7Xm021777@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: 0cf997acbf0c - stable/12 - periodic: Use locale-agnostic (ISO 8601) timestamp 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 0cf997acbf0c68988470efcba691f87c38014872 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=0cf997acbf0c68988470efcba691f87c38014872 commit 0cf997acbf0c68988470efcba691f87c38014872 Author: Michael Osipov AuthorDate: 2023-05-04 12:35:59 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:19:55 +0000 periodic: Use locale-agnostic (ISO 8601) timestamp format Instead of reyling on locale-sensitive output which can be mangled when e-mailed use consistently ISO 8601 format which contains the same information as '-T'. PR: 271240 MFC After: 3 days (cherry picked from commit d2b4753f06dcabc090080b8c8c91bda00fc8dac3) --- usr.sbin/periodic/etc/security/100.chksetuid | 2 +- usr.sbin/periodic/etc/security/110.neggrpperm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/periodic/etc/security/100.chksetuid b/usr.sbin/periodic/etc/security/100.chksetuid index 670ae9792021..c850f401d178 100755 --- a/usr.sbin/periodic/etc/security/100.chksetuid +++ b/usr.sbin/periodic/etc/security/100.chksetuid @@ -54,7 +54,7 @@ then }'` find -sx $MP /dev/null \( ! -fstype local \) -prune -o -type f \ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ - \( -perm -u+s -or -perm -g+s \) -exec ls -liTd \{\} \+ | + \( -perm -u+s -or -perm -g+s \) -exec ls -lid -D "%FT%T" \{\} \+ | check_diff setuid - "${host} setuid diffs:" rc=$? fi diff --git a/usr.sbin/periodic/etc/security/110.neggrpperm b/usr.sbin/periodic/etc/security/110.neggrpperm index 55974eae6345..393c83d061c6 100755 --- a/usr.sbin/periodic/etc/security/110.neggrpperm +++ b/usr.sbin/periodic/etc/security/110.neggrpperm @@ -54,7 +54,7 @@ then \( \( ! -perm +010 -and -perm +001 \) -or \ \( ! -perm +020 -and -perm +002 \) -or \ \( ! -perm +040 -and -perm +004 \) \) \ - -exec ls -liTd \{\} \+ | tee /dev/stderr | wc -l) + -exec ls -lid -D "%FT%T" \{\} \+ | tee /dev/stderr | wc -l) [ $n -gt 0 ] && rc=1 || rc=0 fi From nobody Fri May 19 08:20:08 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN0Bw5RHdz4BfBx; Fri, 19 May 2023 08:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN0Bw52JMz4Gp0; Fri, 19 May 2023 08:20:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rUZjdabN/vSIgUWRFFJ3b9P8vbZBsZyzrzzq/oWcQfQ=; b=EUtcAXqY5h6isdeYVnSfoVhoatpHXuE1zpx7AtC/8z6kwTC1VbnuXKFAz+w/qYzRRqPf3N N85mve9rvAbaV4y8C1C1sgL1U5BsgqCRs9TE9bx+VBgCfm1m12hA3Mtx+Qj0iAhlaiIRiF 3rf4QjnKaID4yGQD0mR3QP/Noo/dvk5bja15TqTnCWRbOF9boFm/XFC+FV6UkEgBLNLK2j HN3oGmDhuqhRTkzh1SBQRaMUaTUx8OH/2q2euUVXtsnwIWwRVvjdMsyOcoEM7cGqPY9Gnm vfdXq1txc7LW9IkCE9Mh7S8QvHlCm5jaO07OIPGirq7oa76igBNnIONTa1LnRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484408; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rUZjdabN/vSIgUWRFFJ3b9P8vbZBsZyzrzzq/oWcQfQ=; b=jdexAHvCnGCTkMmxRVoQKCEhe98+12SSuln+JZo0WojahQSg/BEIx1aJK29NTGgRoUbtvN vZ4LIZ8X68PJziCBrZoRscl10sskkXuYPQcAmk5psfG1E3bqe4B5T0tsYMhVFJY82lRNwk SFtWHsHv8yKGQI670iztSujkFZO0FTZvOp7bJzzFX44Y2h5Ey35u7yBpZaX0HQeM1JQ3qu 9pw/5u8yVVkAua+KPrDffG4YBIrYu6Pz2sm/oNyf/4JeaR+qXRoHoavz7mG+CJCkQwikLO jBiIggzS85ZBuHtsGj6xR9MG463qmLZbmbci0BP/NFctrniB3ZH3fw7lPGMonA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484408; a=rsa-sha256; cv=none; b=Fg12nY2lQNEy9KxXFL2I+jSux0SyL2JAifjVXHlQI+vUWyLsFpqG4/1pooazrBmHdtNf2w ghv7cblXGyte4zWSV4fByq8qDn8z7uumkTc8MJheJqLCjppDcyPY+hU6VQsDy6JJUcaLlY 9eMSJJJrhwSSb3YVQRGES9hMRIZnrGfwlm5zJ0kVR8ul230PXDE4vuMG9nvOJD1OOxUdmE lAEm2zO2Mm/2dmjrW4TkjD1yMWeaTVJ+HWZQH4F1gE/oJ9BBHhQcLNN1C8gUouOdOlwwWK kB6MsjMw6squxEdgWsThEBgo7rSlxjs4mwg9IhrYebrP4Kby+9ieYgLl9rr19Q== 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 4QN0Bw3xZZzLNb; Fri, 19 May 2023 08:20:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8K8I8022033; Fri, 19 May 2023 08:20:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8K8VY022030; Fri, 19 May 2023 08:20:08 GMT (envelope-from git) Date: Fri, 19 May 2023 08:20:08 GMT Message-Id: <202305190820.34J8K8VY022030@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: 554f8644b038 - stable/12 - pw: The pw_checkname function has added ';' checking. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 554f8644b038bc430afaa9a941eb57edb1b4f226 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=554f8644b038bc430afaa9a941eb57edb1b4f226 commit 554f8644b038bc430afaa9a941eb57edb1b4f226 Author: pbuff AuthorDate: 2023-05-16 03:05:30 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:19:55 +0000 pw: The pw_checkname function has added ';' checking. The pw_checkname function forgot to include a ';' when checking usernames, causing shell commands to be executed when a username with a ';' is deleted. PR: 271427 MFC After: 3 days (cherry picked from commit e0155c6989049da43c5499f7129002aa17d1ca79) --- usr.sbin/pw/pw_user.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index 778855e3d1cd..db2b3e6f6d9b 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -637,7 +637,7 @@ pw_checkname(char *name, int gecos) showtype = "gecos field"; } else { /* See if the name is valid as a userid or group. */ - badchars = " ,\t:+&#%$^()!@~*?<>=|\\/\""; + badchars = " ,\t:+&#%$^()!@~*?<>=|\\/\";"; showtype = "userid/group name"; /* Userids and groups can not have a leading '-'. */ if (*ch == '-') From nobody Fri May 19 08:20:09 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN0By1FwLz4BfZj; Fri, 19 May 2023 08:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN0Bx64l7z4GpK; Fri, 19 May 2023 08:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wwq9DIh4Q6cwLxDiQvyD0nItdcS3+nXRVy0yAyoKhtA=; b=j6V8ZGUfyD+ugyH/Q9HyAWSeEZwAHgU1TWovPTPZDYiiEl4UDs5wMczrVmrfjq8+WU6Nqz xvnVxd7Lfl/hWaJLgvO89XEFUHdi9LsO97/sEqQSlZLsBqWJhdKPdaG0Id67AyizJs1/+E 4GMjo8R9zhf8lFt/UtgLnaeD3GtCnEV10IiPWt0K2RHcGAojml0xIRJTWvRCvmDW/fXD+F CJQEtS7bn0GX6yVunFvOBZcP+X/GjE2JEFcZF29BCW5YX7rPSGRFbXiurjHvveRqNSapWN yf0CTYUNpMx4tF6El6hwryJWimuKszEv5AR0IJHGl27mpzJ7vMQZ/PhaTLlWFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484409; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wwq9DIh4Q6cwLxDiQvyD0nItdcS3+nXRVy0yAyoKhtA=; b=uLBLI1OmV9uUjW5daa6+UcsRBDYKuh7qvLpqGg85vqNWLoRgozzOrWlyqLVV9CUGpC/DHR g+T3otoS190J0r0zKFBJ7ZLf9oDUmnvc5LzzjMFhDq8q/6kJjLwDn03TqyjiFFrZPvgNB6 k0xtn06x0aQWFuxOrRYrqFwRDqLmh+huP/pl07ddj1Nu1+nJSuzyldNQNzlOLmjl/fxIIV T40LoYw2L/ChL0hBNkypK0ug6oZ9HOdSnLo3wnwXv0skdS0QdPuIod1HPvU+Et6s/5pAdT A4DDE6CRrDwIE1U//T6yxulvGkjz/KpIeAf1zpWx7fNkfENhRWgzEUc/ttXVKg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484409; a=rsa-sha256; cv=none; b=jKcbM6IFA/SAWumQ/M4JS/AWkGJER6jPcFr7AQuqYvWyqOAC79FQfOdUKiaSO1cQrTbC3a 6S60dU3nw+N5+G4MH+CRtEs16XFhFcJQQe8eL8Au+lpk9c44GfXZjDnNXtnAoufUpk4/rC KcoLPn/oPcVG7blBEYizHlQ/gkWoNbksZU7t3OXvMLg61XItDzQ3BlSHwCP5j73+pznD75 /ZzXsXozAuasLrero344AwdjPvNk81Tn0vaIwZsoW1BF+yBQmR8DEmaxk14U2cP+lh3K+J gyjcJTub3aRabdeBk+jne+O5G95viIvTrNM0LAWujaNY88uVsgqpUZ9nNBqMtQ== 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 4QN0Bx4kWwzLRK; Fri, 19 May 2023 08:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8K9qU022535; Fri, 19 May 2023 08:20:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8K9Ls022532; Fri, 19 May 2023 08:20:09 GMT (envelope-from git) Date: Fri, 19 May 2023 08:20:09 GMT Message-Id: <202305190820.34J8K9Ls022532@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: 45f3aa3ddf99 - stable/12 - passwd.5: Remove .Tn (Trade Name) macros List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: 45f3aa3ddf997a0d3654ec14b4d14f82c7aab172 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=45f3aa3ddf997a0d3654ec14b4d14f82c7aab172 commit 45f3aa3ddf997a0d3654ec14b4d14f82c7aab172 Author: Jose Luis Duran AuthorDate: 2023-05-16 11:18:53 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:19:56 +0000 passwd.5: Remove .Tn (Trade Name) macros To appease mandoc -T lint, remove .Tn macros. MFC After: 3 days (cherry picked from commit d047a4e486a44ca5ada29bf3461903867424c414) --- share/man/man5/passwd.5 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/share/man/man5/passwd.5 b/share/man/man5/passwd.5 index 2b79680a20eb..bd2d012ac57f 100644 --- a/share/man/man5/passwd.5 +++ b/share/man/man5/passwd.5 @@ -49,7 +49,7 @@ They can be used in conjunction with the Hesiod domains and .Sq Li uid , and the -.Tn NIS +NIS maps .Sq Li passwd.byname , .Sq Li passwd.byuid , @@ -310,7 +310,7 @@ lookups occur from the .Sq Li master.passwd.byname , and .Sq Li master.passwd.byuid -.Tn NIS +NIS maps. .Sh COMPAT SUPPORT If @@ -361,7 +361,7 @@ or .Sq Li passwd.byname and .Sq Li passwd.byuid -.Tn NIS +NIS maps (with .Sq Li passwd_compat: nis ) to be included. @@ -372,7 +372,7 @@ or .Ar gid fields, the specified numbers will override the information retrieved from the Hesiod domain or the -.Tn NIS +NIS maps. Likewise, if the .Ar gecos , @@ -381,20 +381,20 @@ or .Ar shell entries contain text, it will override the information included via Hesiod or -.Tn NIS . +NIS . On some systems, the .Ar passwd field may also be overridden. .Sh FILES .Bl -tag -width ".Pa /etc/master.passwd" -compact .It Pa /etc/passwd -.Tn ASCII +ASCII password file, with passwords removed .It Pa /etc/pwd.db .Xr db 3 Ns -format password database, with passwords removed .It Pa /etc/master.passwd -.Tn ASCII +ASCII password file, with passwords intact .It Pa /etc/spwd.db .Xr db 3 Ns -format @@ -444,7 +444,7 @@ file format first appeared in .At v1 . .Pp The -.Tn NIS +NIS .Nm file format first appeared in SunOS. .Pp From nobody Fri May 19 08:20:10 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN0By6l3lz4BfKy; Fri, 19 May 2023 08:20: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN0By68vQz4H7C; Fri, 19 May 2023 08:20:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484410; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UyOPdYCtXfq1hfgLmmrcu08348Qd9SFmiEhqeqTg8GY=; b=t7xWwtNqN5WtzkW7enn2kia2/4ftBZXQ9d+AToUz9T23GHBqxkWcNUFBZT7+tGveSjZdas pTcPuR8qA0M92d1kYMxQcpCLhEa7HTX3YfG5xvCczGOZ6+0J+93/N7mOL0Y1oOMCBvnn/3 a6LbcDdmkCGpBgCQNy6/epvHDMbV1a44ey1Av/18hT70X9UDYUOA49m0w2XNx8CRul/r8z RG1DN2W4aE8kJ36fImrvmRLA0fFXrtXpXErCoozXhLrLGdWCuL4whsTOz/JffucuFch4Jp eh4Ktwob4PSsT52O9oeiKOyMhkAX+LSei4YHMsn6sWaLHyrGCVsW1Y2SLjGcYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684484410; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UyOPdYCtXfq1hfgLmmrcu08348Qd9SFmiEhqeqTg8GY=; b=qVgE9SS4Jy7ZS+5ymOn4xC3dZy1vSr0a1NTesmYRV/5E2zracmCgYrgone3FL/WDw1U66x ITJj/zBikHHAUCuYZhL/Je7toJVdISM3ORDU++0u45ppYG2CoO7kC4+egO/qG0ENX9lmvV k3rJKBpB2Vx8lGw5G3r+EIzDV5gVJsLCfUjZdsyOXGGfoB74jQ4QvuuDIVZ/ZGnTt9046h m7FZ5jQLZ01L0fGdfm9NQbI0wTaY7gnLO2ch+KN3SrDlCt3Gd3PY235PZy35LngEYl1KfT YOHvbLEBM6T4pRXljbSDs7UipBXOpMKRLsegRxh/0N7MY7JU//6x9v6sg3T4nQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684484410; a=rsa-sha256; cv=none; b=N6xPG83dbRhmuOokVVnuqsB/eEydIL5wzOxj9oHphl9jUnUWHp2y3ZIPeewMJglK3bU6/E eDnAtAoSi4IQvvIN5HBgDjbWTfoTOIxKLZSkmER9DzwPdd2Zcz4QBG0x3jdm9JiLdu+EYA yuOPtRsYpvdMRJNocIISLHTacBBhZAAWrVRItM03iAkASQ6LfzPPo5Vj8bWGE1sUNMmvyC GRY3OFotfzRar1IuSqRYwiI7qnyrAcSMvIe+DFqwribP73RoLuCWB2euy+EiA0Y9Cz3Th0 iDteas1c03EUDrYObeZS8aDS9YwvUkT5XamRmpdq5+BNjTXYyKqvnH1igbDpNA== 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 4QN0By5FPbzKyQ; Fri, 19 May 2023 08:20:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34J8KA7n023162; Fri, 19 May 2023 08:20:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34J8KAnm023156; Fri, 19 May 2023 08:20:10 GMT (envelope-from git) Date: Fri, 19 May 2023 08:20:10 GMT Message-Id: <202305190820.34J8KAnm023156@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: e896ce8e3757 - stable/12 - passwd.5: Update man page after e0155c6989049da43c5499f7129002aa17d1ca79 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/12 X-Git-Reftype: branch X-Git-Commit: e896ce8e3757e0a14bd2e941c3a0a98d2914f72c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=e896ce8e3757e0a14bd2e941c3a0a98d2914f72c commit e896ce8e3757e0a14bd2e941c3a0a98d2914f72c Author: Jose Luis Duran AuthorDate: 2023-05-16 11:17:16 +0000 Commit: Baptiste Daroussin CommitDate: 2023-05-19 08:19:56 +0000 passwd.5: Update man page after e0155c6989049da43c5499f7129002aa17d1ca79 MFC After: 3 days (cherry picked from commit 6e068d6bea4d8282704b4e157da3da584dc67a2d) --- share/man/man5/passwd.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man5/passwd.5 b/share/man/man5/passwd.5 index bd2d012ac57f..f2e307686b64 100644 --- a/share/man/man5/passwd.5 +++ b/share/man/man5/passwd.5 @@ -31,7 +31,7 @@ .\" From: @(#)passwd.5 8.1 (Berkeley) 6/5/93 .\" $FreeBSD$ .\" -.Dd June 30, 2022 +.Dd May 16, 2023 .Dt PASSWD 5 .Os .Sh NAME @@ -131,7 +131,7 @@ The login name must not begin with a hyphen .Pq Ql \&- , and cannot contain 8-bit characters, tabs or spaces, or any of these symbols: -.Ql \&,:+&#%^\&(\&)!@~*?<>=|\e\\&/" . +.Ql \&,:+&#%^\&(\&)!@~*?<>=|\e\\&/"\&; . The dollar symbol .Pq Ql \&$ is allowed only as the last character for use with Samba. From nobody Fri May 19 12:26:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN5gj3xL7z4Btf7; Fri, 19 May 2023 12:26: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN5gj3J1jz3CRf; Fri, 19 May 2023 12:26:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684499217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZPXWpqNlFBN1+xcLlayJyXZ2KSCcb5nwSBgmzwExNrw=; b=HojsDU0mMg1Flj6tFh9iS9cqE4I6k/f9v5pkYTDtSB/vY5i2ylaQZ4YHatooMyRQsespPb 6oVXteJkCPiXNGT3QH2kCEyCxxjldXtrVyWClR1ZKL1kXJ1/ZqUhDAhU9UNlGVUKN858gw tWIhZCHV2rCLkQiPgsACGbup7Ha21CZXSTu8Yfhtc2sCkWChkrThAwidCbZ9NaJxcPAiAa jEJU2pm0wHarD6DyLBsMO1WIGr2RnNVLAWy+cocViNurPx/q8Aj/Z/E7yCmEwi+3IaV6si b2aYBR7bNzQSK5RRasAB8eabxDBgshhXbVWaoMEnW8z9iWU1byOEeWA4lyUE/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684499217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZPXWpqNlFBN1+xcLlayJyXZ2KSCcb5nwSBgmzwExNrw=; b=IG6JSL34UA1YcWZKP23rqfxZOlb6wRg4r7Z+AgxYcwJoaEOEkKsCCEvFlRwsvbkVljI4F+ M7V4ubGmR9xHX8JukZQxOc7gvHoIK2kcFc6KNOGVueCn7zh8rtWh52dQkJQrHIccRHaW3k ObS1FeGRFU0v+kvJUvZAuFE/82RWYYITFGbWQxOiSY8LgtMgMo3kyGwyqUPPx1cV3YmLoP Scv3WuPObDpZu5cxfCyQG2EzYaHPCH0LZlkaoHCpg5htinn7MsVrLYt9/+pB/0kDi3c7ZN AnxZ30rMA2/LqtX4xeNUOfiioNgt9msxbu/rM1DDbl8946WMYeNMcJZkuZqdRw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684499217; a=rsa-sha256; cv=none; b=Hyv0X6dcKaVVJJUrxToK6LrXhXKe4cWToTp9+6p1N0yQf11SUwhJnuyNk8jOZg6wbiWQ4Y vPA0IxC5TaP4S7LtO6XvfrMJd5iUeru/Kp5WQ8932MYt0ELCSOU7lbpr0wyX885kblwJUM DHDcXZavhZCkNJbmG+vbkbTS2REO1Jm/HCkKSJLVkd6mo8z83qPYoUDomAUpJAbis+yuiR Qy9S7bOaLRJFYQYj93AYFlbefwlTmVbKtp62C8xYD3Yed/PzhB6tH119+J5ye/jnzYzDtA sw7f3lyxWRd4O1mqfwRkF4V6G6fzFpQJp+dG2WGwZY1D4J1k+zddDevRmSbbYw== 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 4QN5gj2FYJzSdZ; Fri, 19 May 2023 12:26:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JCQvSb029065; Fri, 19 May 2023 12:26:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JCQv85029063; Fri, 19 May 2023 12:26:57 GMT (envelope-from git) Date: Fri, 19 May 2023 12:26:57 GMT Message-Id: <202305191226.34JCQv85029063@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Piotr Kubaj Subject: git: af8fd75b4593 - stable/13 - ix(4): correct max MTU List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pkubaj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: af8fd75b45936fc7979fdce5a8ae763baaf14de3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by pkubaj: URL: https://cgit.FreeBSD.org/src/commit/?id=af8fd75b45936fc7979fdce5a8ae763baaf14de3 commit af8fd75b45936fc7979fdce5a8ae763baaf14de3 Author: Piotr Kubaj AuthorDate: 2023-05-17 10:16:22 +0000 Commit: Piotr Kubaj CommitDate: 2023-05-19 12:27:17 +0000 ix(4): correct max MTU The max MTU for the ix(4) is 9710. Differential revision: https://reviews.freebsd.org/D40003 Approved by: erj, bcr (cherry picked from commit 2e57f7bf209281e176f16ca3c5716807479873f8) --- share/man/man4/ixgbe.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/ixgbe.4 b/share/man/man4/ixgbe.4 index 54c9146d2630..e83011a18664 100644 --- a/share/man/man4/ixgbe.4 +++ b/share/man/man4/ixgbe.4 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 17, 2019 +.Dd May 17, 2023 .Dt IXGBE 4 .Os .Sh NAME @@ -68,7 +68,7 @@ Support for Jumbo Frames is provided via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 utility configures the adapter to receive and transmit Jumbo Frames. -The maximum MTU size for Jumbo Frames is 16114. +The maximum MTU size for Jumbo Frames is 9710. .Pp This driver version supports VLANs. For information on enabling VLANs, see From nobody Fri May 19 12:34:08 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QN5r03MPTz4BtNX; Fri, 19 May 2023 12:34: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QN5r02rxGz3FHR; Fri, 19 May 2023 12:34:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684499648; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iBoizY5jzZ9EED5fqFFso9+XjE8+1wl1pyHO77KhXbI=; b=BwoYUTyJ4lt1yVpIlcGnnuBIdoaerVT5f6iAPTgjW+7S//xW/s1/i1W+hza36Ub6t4lDNt qsAvI0k3tr/L2+NVhaHw6qgdYudX/mLmSsL+96S7ypmlzFsHbigrfFGq4JeOD2BcokrszT EvcK3NREt6b5/BEmTfELZaWd1VysLZoQLsO72wyEZqrvn2XesncImyEwDjJUYMstDQIC1O Vpz3Rpg4E3sBV+efJU006wEaf1bjuzSxTA+lOLt0onGSi5gIGhY5SMySZJuLiqizYet/mA YcWXkQelMNmz8hvtW+KVS8XX+jPrPL0LJfcAfGr9ca7l54obbrrdFBcUlPHCzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684499648; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iBoizY5jzZ9EED5fqFFso9+XjE8+1wl1pyHO77KhXbI=; b=psip9EmjNqG5rIxJxQmVAuug3s+nN5Lyu7sPPNfUCIBa0KFyA+uuUx+goL1/eERXJGAjLa grM/85ewyfi6tgWToQixct7IZKqoxB8x5GT8xcdvhQtwnhj2h9juXNmaOHlNcIvXTVMJdP tDpP7hO+cWUX8OSC2ukslGEL1ik4YKFhwCuP6pQ2VtkJ+YpY7viXz7fsDKZbvSsmw5SPQB rIcH1U7gdHDgXkxSQigc66Y64CheIjWSFSU+8BNQnnJIqzjRA50TzgmAaFZl7wnKoIeDht HlT+D+AWoGn6xxR6UAqPQ/KwYvQnsCt5kCA83NeGrG0fECsq2Ol6R/gociQksg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684499648; a=rsa-sha256; cv=none; b=fr75rhWGvVRDXB/DBAt+1KrywG5ToGPklnERG9/xg2J+sFDQgk2sDAZEudSwk5SiLsHcdG p0V9TNvmOFSVe2aR3/CGRhUK3yik5zo7BPcFsUAS8NLxFcitKXovgyn4YuhGHXKdolSsVw HtG4cts+fXmEjdYi01dParsdpsPEIx8X/MfdyrPqM6XwrQS1khEwykQvEW+VPQZQNq9rbN OmSEL6x0yJaT1viFwQwnysYGwujt8DEdydOJfGfyZkpIt9SPLMwNBSeioEbGuXDDuS29b8 BmXRmGG9WaHBjuW1yRn8LRK2btMQimIYodbiPADazI2/gtjNGVswGVAOZIzq9g== 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 4QN5r01w8fzSSv; Fri, 19 May 2023 12:34:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JCY8rD044676; Fri, 19 May 2023 12:34:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JCY8lc044675; Fri, 19 May 2023 12:34:08 GMT (envelope-from git) Date: Fri, 19 May 2023 12:34:08 GMT Message-Id: <202305191234.34JCY8lc044675@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Piotr Kubaj Subject: git: 737f887379b8 - stable/12 - ix(4): correct max MTU List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: pkubaj X-Git-Repository: src X-Git-Refname: refs/heads/stable/12 X-Git-Reftype: branch X-Git-Commit: 737f887379b87295bfc377f513807af942b83591 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/12 has been updated by pkubaj: URL: https://cgit.FreeBSD.org/src/commit/?id=737f887379b87295bfc377f513807af942b83591 commit 737f887379b87295bfc377f513807af942b83591 Author: Piotr Kubaj AuthorDate: 2023-05-17 10:16:22 +0000 Commit: Piotr Kubaj CommitDate: 2023-05-19 12:33:21 +0000 ix(4): correct max MTU The max MTU for the ix(4) is 9710. Differential revision: https://reviews.freebsd.org/D40003 Approved by: erj, bcr (cherry picked from commit 2e57f7bf209281e176f16ca3c5716807479873f8) (cherry picked from commit af8fd75b45936fc7979fdce5a8ae763baaf14de3) --- share/man/man4/ixgbe.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/ixgbe.4 b/share/man/man4/ixgbe.4 index f51ac8dbf262..199325211261 100644 --- a/share/man/man4/ixgbe.4 +++ b/share/man/man4/ixgbe.4 @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 30, 2019 +.Dd May 17, 2023 .Dt IXGBE 4 .Os .Sh NAME @@ -68,7 +68,7 @@ Support for Jumbo Frames is provided via the interface MTU setting. Selecting an MTU larger than 1500 bytes with the .Xr ifconfig 8 utility configures the adapter to receive and transmit Jumbo Frames. -The maximum MTU size for Jumbo Frames is 16114. +The maximum MTU size for Jumbo Frames is 9710. .Pp This driver version supports VLANs. For information on enabling VLANs, see From nobody Fri May 19 20:22:31 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNJDR3VjQz4CLDF; Fri, 19 May 2023 20:22:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNJDR2tRwz3Ny2; Fri, 19 May 2023 20:22:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684527751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xjhBaPLT/46Fklg+549r1MlryeAS+dpLFMo5QSYcPFI=; b=kFUTqcXPPEMSjkUPBIhSpIiwMc7/7v9n8UEFcaYC1SAl4FyNEYsy02iH8WeWx9sVyx6oON re8ThxVEOvWs6enBKyFIrrwzBbjCj1DK2C44pRhEvSrZ1Z6g2fwk4hhHikb5lMyktL9SKO hOPqauujimRMss7+WD/i3+mX4p9yi+oixRYNN1wE3SJr3rEF5XaKBpq0mFlBfBqEyi9pFQ V8J56EI6gL5BdQv3jPLtJLJSpBCjVbwW/3AN0Rx3Zi5zcxIPf8HMGrksPH5bkOeugYUkcq 0mikoUH9UCe263pcndDDCQszNH3PkLWg4RCrVl7qzJdLqdVavJGpg9dh0MAREw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684527751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xjhBaPLT/46Fklg+549r1MlryeAS+dpLFMo5QSYcPFI=; b=d5QSpcHKCQXElCaQgI7Md34zsSNbygm6oUWgd8GsZUZ2+LWdBAUFN2CJLmAHKGNfgxlzmf 8klOaI3c0P4BY2iR0cGWIzPCKX6y2QoAR/BaXGIeEEfL7TdNDchUQ4jyMWO7RhBXaf7txd Xdo+jyHzVAwNNjb3MpZcHYTFRgGMR+kINnP79AkIOFqOgtD1lQ1VcJ7i25PlJ9LyscL+Av 1C0o6iIPUILb0ityOW66OajbvEK7Ub4gnln2MpFKBXqbC/Eu33dRlgRKn569i7ucdStZv+ kbQ6+k8JavEMP74Lcu168zYV6nTROW15mJqGhDucE9JHlYUPSVbPVj/HUM8yRA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684527751; a=rsa-sha256; cv=none; b=OLpV9YgjUlA6CgaO1ujLh/lUCh96jjK5IO0Qi0em3AN5GI+jl858f9bXFmnBm6OFO9ENst 5zmh1lCkNKw0pA5MHqieAj6pafO9XBQb2wgw+KVV2sS4GsbRY2S7l2/YIcNAOCu1oLjOAx 3Sg9P0kfs91nOsJvXW9vJOjMwyBEi2T3iDKLvbvNW2H1lfLpvLAL2tndwuFqm+0KTO2FNq OsdWDzoiRcpQNFjfX+KOPk3jSOoXxAt0XdxnJ2HzO4wALneIHMwp0cCOVJFgiRbDDekhaD UNcbFzURD1dZt8DRYDRmYljj7S/vgmaj0iQgcvn0gy4IzvEE/armg1/epXrAVA== 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 4QNJDR1wm9zhR0; Fri, 19 May 2023 20:22:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JKMVbm018086; Fri, 19 May 2023 20:22:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JKMVow018085; Fri, 19 May 2023 20:22:31 GMT (envelope-from git) Date: Fri, 19 May 2023 20:22:31 GMT Message-Id: <202305192022.34JKMVow018085@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: 202d52261b92 - stable/13 - vfs_export: Add mnt_exjail to control exports done in prisons List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 202d52261b92abdfb1ec39564ee1be3812bcdf92 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=202d52261b92abdfb1ec39564ee1be3812bcdf92 commit 202d52261b92abdfb1ec39564ee1be3812bcdf92 Author: Rick Macklem AuthorDate: 2023-02-21 21:00:42 +0000 Commit: Rick Macklem CommitDate: 2023-05-19 20:17:17 +0000 vfs_export: Add mnt_exjail to control exports done in prisons If there are multiple instances of mountd(8) (in different prisons), there will be confusion if they manipulate the exports of the same file system. This patch adds mnt_exjail to "struct mount" so that the credentials (and, therefore, the prison) that did the exports for that file system can be recorded. If another prison has already exported the file system, vfs_export() will fail with an error. If mnt_exjail == NULL, the file system has not been exported. mnt_exjail is checked by the NFS server, so that exports done from within a different prison will not be used. The patch also implements vfs_exjail_destroy(), which is called from prison_cleanup() to release all the mnt_exjail credential references, so that the prison can be removed. Mainly to avoid doing a scan of the mountlist for the case where there were no exports done from within the prison, a count of how many file systems have been exported from within the prison is kept in pr_exportcnt. mnt_exjail replaces mnt_pad0 and should not change the size of "struct mount" nor change the offsets of the other fields in "struct mount". As such, it should be safe to MFC. (cherry picked from commit 88175af8b75ea8850757cc9dca68b6d336b82675) --- sys/fs/nfsserver/nfs_nfsdport.c | 24 ++++-- sys/kern/kern_jail.c | 1 + sys/kern/vfs_export.c | 164 +++++++++++++++++++++++++++++++++++++++- sys/kern/vfs_mount.c | 9 ++- sys/sys/jail.h | 3 +- sys/sys/mount.h | 5 +- 6 files changed, 192 insertions(+), 14 deletions(-) diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 4247177a3fc0..50d3aa57c4aa 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -3270,8 +3270,16 @@ nfsvno_checkexp(struct mount *mp, struct sockaddr *nam, struct nfsexstuff *exp, { int error; - error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, - &exp->nes_numsecflavor, exp->nes_secflavors); + error = 0; + *credp = NULL; + MNT_ILOCK(mp); + if (mp->mnt_exjail == NULL || + mp->mnt_exjail->cr_prison != curthread->td_ucred->cr_prison) + error = EACCES; + MNT_IUNLOCK(mp); + if (error == 0) + error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, + &exp->nes_numsecflavor, exp->nes_secflavors); if (error) { if (NFSD_VNET(nfs_rootfhset)) { exp->nes_exflag = 0; @@ -3305,8 +3313,14 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct sockaddr *nam, /* Make sure the server replies ESTALE to the client. */ error = ESTALE; if (nam && !error) { - error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, - &exp->nes_numsecflavor, exp->nes_secflavors); + MNT_ILOCK(mp); + if (mp->mnt_exjail == NULL || + mp->mnt_exjail->cr_prison != curthread->td_ucred->cr_prison) + error = EACCES; + MNT_IUNLOCK(mp); + if (error == 0) + error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, + &exp->nes_numsecflavor, exp->nes_secflavors); if (error) { if (NFSD_VNET(nfs_rootfhset)) { exp->nes_exflag = 0; @@ -3476,7 +3490,7 @@ nfsrv_v4rootexport(void *argp, struct ucred *cred, struct thread *p) struct nameidata nd; fhandle_t fh; - error = vfs_export(NFSD_VNET(nfsv4root_mnt), &nfsexargp->export); + error = vfs_export(NFSD_VNET(nfsv4root_mnt), &nfsexargp->export, false); if ((nfsexargp->export.ex_flags & MNT_DELEXPORT) != 0) NFSD_VNET(nfs_rootfhset) = 0; else if (error == 0) { diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 622b9f6c7cb9..0203dcd0faf1 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -3035,6 +3035,7 @@ prison_cleanup(struct prison *pr) { sx_assert(&allprison_lock, SA_XLOCKED); mtx_assert(&pr->pr_mtx, MA_NOTOWNED); + vfs_exjail_delete(pr); shm_remove_prison(pr); (void)osd_jail_call(pr, PR_METHOD_REMOVE, NULL); } diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index cab37ce205ad..16d2e88bdc41 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -296,12 +297,18 @@ vfs_free_addrlist(struct netexport *nep) * and the passed in netexport. * Struct export_args *argp is the variable used to twiddle options, * the structure is described in sys/mount.h + * The do_exjail argument should be true if *mp is in the mountlist + * and false if not. It is not in the mountlist for the NFSv4 rootfs + * fake mount point just used for exports. */ int -vfs_export(struct mount *mp, struct export_args *argp) +vfs_export(struct mount *mp, struct export_args *argp, bool do_exjail) { struct netexport *nep; + struct ucred *cr; + struct prison *pr; int error; + bool new_nep; if ((argp->ex_flags & (MNT_DELEXPORT | MNT_EXPORTED)) == 0) return (EINVAL); @@ -312,6 +319,7 @@ vfs_export(struct mount *mp, struct export_args *argp) return (EINVAL); error = 0; + pr = curthread->td_ucred->cr_prison; lockmgr(&mp->mnt_explock, LK_EXCLUSIVE, NULL); nep = mp->mnt_export; if (argp->ex_flags & MNT_DELEXPORT) { @@ -319,6 +327,21 @@ vfs_export(struct mount *mp, struct export_args *argp) error = ENOENT; goto out; } + MNT_ILOCK(mp); + if (mp->mnt_exjail != NULL && mp->mnt_exjail->cr_prison != pr && + pr == &prison0) { + MNT_IUNLOCK(mp); + /* EXDEV will not get logged by mountd(8). */ + error = EXDEV; + goto out; + } else if (mp->mnt_exjail != NULL && + mp->mnt_exjail->cr_prison != pr) { + MNT_IUNLOCK(mp); + /* EPERM will get logged by mountd(8). */ + error = EPERM; + goto out; + } + MNT_IUNLOCK(mp); if (mp->mnt_flag & MNT_EXPUBLIC) { vfs_setpublicfs(NULL, NULL, NULL); MNT_ILOCK(mp); @@ -330,18 +353,51 @@ vfs_export(struct mount *mp, struct export_args *argp) free(nep, M_MOUNT); nep = NULL; MNT_ILOCK(mp); + cr = mp->mnt_exjail; + mp->mnt_exjail = NULL; mp->mnt_flag &= ~(MNT_EXPORTED | MNT_DEFEXPORTED); MNT_IUNLOCK(mp); + if (cr != NULL) { + atomic_subtract_int(&pr->pr_exportcnt, 1); + crfree(cr); + } } if (argp->ex_flags & MNT_EXPORTED) { + new_nep = false; + MNT_ILOCK(mp); + if (mp->mnt_exjail == NULL) { + MNT_IUNLOCK(mp); + if (do_exjail && nep != NULL) { + vfs_free_addrlist(nep); + memset(nep, 0, sizeof(*nep)); + new_nep = true; + } + } else if (mp->mnt_exjail->cr_prison != pr) { + MNT_IUNLOCK(mp); + error = EPERM; + goto out; + } else + MNT_IUNLOCK(mp); if (nep == NULL) { - nep = malloc(sizeof(struct netexport), M_MOUNT, M_WAITOK | M_ZERO); + nep = malloc(sizeof(struct netexport), M_MOUNT, + M_WAITOK | M_ZERO); mp->mnt_export = nep; + new_nep = true; } if (argp->ex_flags & MNT_EXPUBLIC) { - if ((error = vfs_setpublicfs(mp, nep, argp)) != 0) + if ((error = vfs_setpublicfs(mp, nep, argp)) != 0) { + if (new_nep) { + mp->mnt_export = NULL; + free(nep, M_MOUNT); + } goto out; + } + new_nep = false; MNT_ILOCK(mp); + if (do_exjail && mp->mnt_exjail == NULL) { + mp->mnt_exjail = crhold(curthread->td_ucred); + atomic_add_int(&pr->pr_exportcnt, 1); + } mp->mnt_flag |= MNT_EXPUBLIC; MNT_IUNLOCK(mp); } @@ -349,9 +405,18 @@ vfs_export(struct mount *mp, struct export_args *argp) argp->ex_numsecflavors = 1; argp->ex_secflavors[0] = AUTH_SYS; } - if ((error = vfs_hang_addrlist(mp, nep, argp))) + if ((error = vfs_hang_addrlist(mp, nep, argp))) { + if (new_nep) { + mp->mnt_export = NULL; + free(nep, M_MOUNT); + } goto out; + } MNT_ILOCK(mp); + if (do_exjail && mp->mnt_exjail == NULL) { + mp->mnt_exjail = crhold(curthread->td_ucred); + atomic_add_int(&pr->pr_exportcnt, 1); + } mp->mnt_flag |= MNT_EXPORTED; MNT_IUNLOCK(mp); } @@ -371,6 +436,97 @@ out: return (error); } +/* + * Get rid of credential references for this prison. + */ +void +vfs_exjail_delete(struct prison *pr) +{ + struct mount *mp; + struct ucred *cr; + int error, i; + + /* + * Since this function is called from prison_cleanup() after + * all processes in the prison have exited, the value of + * pr_exportcnt can no longer increase. It is possible for + * a dismount of a file system exported within this prison + * to be in progress. In this case, the file system is no + * longer in the mountlist and the mnt_exjail will be free'd + * by vfs_mount_destroy() at some time. As such, pr_exportcnt + * and, therefore "i", is the upper bound on the number of + * mnt_exjail entries to be found by this function. + */ + i = atomic_load_int(&pr->pr_exportcnt); + KASSERT(i >= 0, ("vfs_exjail_delete: pr_exportcnt negative")); + if (i == 0) + return; + mtx_lock(&mountlist_mtx); +tryagain: + TAILQ_FOREACH(mp, &mountlist, mnt_list) { + MNT_ILOCK(mp); + if (mp->mnt_exjail != NULL && + mp->mnt_exjail->cr_prison == pr) { + MNT_IUNLOCK(mp); + error = vfs_busy(mp, MBF_MNTLSTLOCK | MBF_NOWAIT); + if (error != 0) { + /* + * If the vfs_busy() fails, we still want to + * get rid of mnt_exjail for two reasons: + * - a credential reference will result in + * a prison not being removed + * - setting mnt_exjail NULL indicates that + * the exports are no longer valid + * The now invalid exports will be deleted + * when the file system is dismounted or + * the file system is re-exported by mountd. + */ + cr = NULL; + MNT_ILOCK(mp); + if (mp->mnt_exjail != NULL && + mp->mnt_exjail->cr_prison == pr) { + cr = mp->mnt_exjail; + mp->mnt_exjail = NULL; + } + MNT_IUNLOCK(mp); + if (cr != NULL) { + crfree(cr); + i--; + } + if (i == 0) + break; + continue; + } + cr = NULL; + lockmgr(&mp->mnt_explock, LK_EXCLUSIVE, NULL); + MNT_ILOCK(mp); + if (mp->mnt_exjail != NULL && + mp->mnt_exjail->cr_prison == pr) { + cr = mp->mnt_exjail; + mp->mnt_exjail = NULL; + mp->mnt_flag &= ~(MNT_EXPORTED | MNT_DEFEXPORTED); + MNT_IUNLOCK(mp); + vfs_free_addrlist(mp->mnt_export); + free(mp->mnt_export, M_MOUNT); + mp->mnt_export = NULL; + } else + MNT_IUNLOCK(mp); + lockmgr(&mp->mnt_explock, LK_RELEASE, NULL); + if (cr != NULL) { + crfree(cr); + i--; + } + mtx_lock(&mountlist_mtx); + vfs_unbusy(mp); + if (i == 0) + break; + goto tryagain; + } + MNT_IUNLOCK(mp); + } + mtx_unlock(&mountlist_mtx); +} + /* * Set the publicly exported filesystem (WebNFS). Currently, only * one public filesystem is possible in the spec (RFC 2054 and 2055) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index d5b137e7ffab..4c941c2616ff 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -618,6 +618,11 @@ vfs_mount_destroy(struct mount *mp) #endif if (mp->mnt_opt != NULL) vfs_freeopts(mp->mnt_opt); + if (mp->mnt_exjail != NULL) { + atomic_subtract_int(&mp->mnt_exjail->cr_prison->pr_exportcnt, + 1); + crfree(mp->mnt_exjail); + } if (mp->mnt_export != NULL) { vfs_free_addrlist(mp->mnt_export); free(mp->mnt_export, M_MOUNT); @@ -1236,7 +1241,7 @@ vfs_domount_update( } else export_error = EINVAL; if (export_error == 0) - export_error = vfs_export(mp, &export); + export_error = vfs_export(mp, &export, true); free(export.ex_groups, M_TEMP); break; case (sizeof(export)): @@ -1258,7 +1263,7 @@ vfs_domount_update( else export_error = EINVAL; if (export_error == 0) - export_error = vfs_export(mp, &export); + export_error = vfs_export(mp, &export, true); free(grps, M_TEMP); break; default: diff --git a/sys/sys/jail.h b/sys/sys/jail.h index f4d4e521d7de..e81b272677bb 100644 --- a/sys/sys/jail.h +++ b/sys/sys/jail.h @@ -190,7 +190,8 @@ struct prison { int pr_enforce_statfs; /* (p) statfs permission */ int pr_devfs_rsnum; /* (p) devfs ruleset */ enum prison_state pr_state; /* (q) state in life cycle */ - int pr_spare[2]; + volatile int pr_exportcnt; /* (r) count of mount exports */ + int pr_spare; int pr_osreldate; /* (c) kern.osreldate value */ unsigned long pr_hostid; /* (p) jail hostid */ char pr_name[MAXHOSTNAMELEN]; /* (p) admin jail name */ diff --git a/sys/sys/mount.h b/sys/sys/mount.h index 9a69240ddba5..382be23e37e5 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -222,7 +222,7 @@ struct mount { int mnt_writeopcount; /* (i) write syscalls pending */ struct vfsoptlist *mnt_opt; /* current mount options */ struct vfsoptlist *mnt_optnew; /* new options passed to fs */ - u_int mnt_pad0; /* was mnt_maxsymlinklen */ + struct ucred *mnt_exjail; /* (i) jail which did exports */ struct statfs mnt_stat; /* cache of filesystem stats */ struct ucred *mnt_cred; /* credentials of mounter */ void * mnt_data; /* private data */ @@ -985,8 +985,9 @@ int vfs_setpublicfs /* set publicly exported fs */ (struct mount *, struct netexport *, struct export_args *); void vfs_periodic(struct mount *, int); int vfs_busy(struct mount *, int); +void vfs_exjail_delete(struct prison *); int vfs_export /* process mount export info */ - (struct mount *, struct export_args *); + (struct mount *, struct export_args *, bool); void vfs_free_addrlist(struct netexport *); void vfs_allocate_syncvnode(struct mount *); void vfs_deallocate_syncvnode(struct mount *); From nobody Fri May 19 20:26:11 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNJJg3yFyz4CKyb; Fri, 19 May 2023 20:26:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNJJg3QWvz3P0J; Fri, 19 May 2023 20:26:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684527971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GcTqzwzELtK/2RgcwvftUEdgftRBZP6NEmLgDkVi6Gk=; b=tbyV5amru7Xfaq4DqLWFvZ70IRP67f8CX5dJ9eVfbIPhXCvLiMNTKX9gRuuo7+kF5y9RAx ThS2prleYZE28wL/VdMrPg1Y88zvmhMn9FzSmiUnNltDyDsWhG3HDpgNwlkCLPm94P+PmX KrFGxfS8LIehseQgrdYBGw3e+S5Vti749U3+XJB1NG4pOoNX99u077xCh5mU9D96hDty7Q EQGY4KYDJrjWin/BL4SzQDMbeym4ldK+1kxIuxNCWPWdYwuo9PnDaE3DvKTM1dmmPkdTYY NukE7aGuLyfBePffHM2YsKYvqu5ivtDR+sh5uQbUohg7sxfjXBoRvnKcHhpqJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684527971; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GcTqzwzELtK/2RgcwvftUEdgftRBZP6NEmLgDkVi6Gk=; b=yOjBrr+yhOooRGGOzSRUWFmhAx+UPom5d5VkPNWWOjc+1+fzkubYFFbG4eR46RP4xAbq+e vE7gJUXKmS/cM4url4zxA5zAOKol79w0v97QgY4rSC8/S7yN5cIcFaCVh2j4puxKDQHa7j rysdmDuZZFKoqB7qxU6fATwww73rIzRSxa/IZ3XFbhtTIpuYWRnzfxg8ZtYE7FaA7eaJ3J Sb61O1Otx83N1NCy9BLlZBYFg8Sgpd8IEelrsXb7uQjLzy2MuXqT80BkCWt9FzDasqT/BA CXqkgdYC++MZnZnOUbEKNqLFLSmi4ck3bZteu9cl8yfJgSY8F/6HGu27SISMog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684527971; a=rsa-sha256; cv=none; b=XWg1/I/Ry6WBPaG+PYjc60NYa72POr5R0qx5fdLDt55wX/WH8IIWiN+H2zog86yQ6EGLPt TmKyDKquk+/sJsx/1QpZuX1rlNfE3yZqX8q3cDiinOTIUUrtK0KdA1/OLqAQGp47dPy3WR /eNv3sz9E2nTD2ghd72ZPZFqI7N0h+sal/6jxp+z9pRaHQJhTCkvY86G29zOXErjrb5Isi nuLm5jj3mJy7Mr1SPQNtTcdbXSGTK+OVUhyyB0IKk8kmoJ26333sRzt3um2p/xuEkfoadh dZiQS96DoqBuOfH3Apo9BaDxcr1EeYgknLz1bvbZW88WLK1Gm4sxmyPGSj71wQ== 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 4QNJJg2LhVzhtZ; Fri, 19 May 2023 20:26:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JKQB2B018655; Fri, 19 May 2023 20:26:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JKQBCH018654; Fri, 19 May 2023 20:26:11 GMT (envelope-from git) Date: Fri, 19 May 2023 20:26:11 GMT Message-Id: <202305192026.34JKQBCH018654@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: 527e6b02d65d - stable/13 - vfs_mount.c: Allow mountd(8) to do exports in a vnet prison List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 527e6b02d65db8d6294b1e66f7bd063899a4de02 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=527e6b02d65db8d6294b1e66f7bd063899a4de02 commit 527e6b02d65db8d6294b1e66f7bd063899a4de02 Author: Rick Macklem AuthorDate: 2023-03-02 21:09:01 +0000 Commit: Rick Macklem CommitDate: 2023-05-19 20:23:27 +0000 vfs_mount.c: Allow mountd(8) to do exports in a vnet prison To run mountd in a vnet prison, three checks in vfs_domount() and vfs_domount_update() related to doing exports needed to be changed, so that a file system visible within the prison but mounted outside the prison can be exported. I did all three in a minimal way, only changing the checks for the specific case of a process (typically mountd) doing exports within a vnet prison and not updating the mount point in other ways. The changes are: - Ignore the error return from vfs_suser(), since the file system being mounted outside the prison will cause it to fail. - Use the priv_check(PRIV_NFS_DAEMON) for this specific case within a prison. - Skip the call to VFS_MOUNT(), since it will return an error, due to the "from" argument not being set correctly. VFS_MOUNT() does not appear to do anything for the case of doing exports only. (cherry picked from commit 4bbbd5875d32f3cbe76235d90243f713eff9b9d0) --- sys/kern/vfs_mount.c | 107 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 93 insertions(+), 14 deletions(-) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 4c941c2616ff..e3a7ca50e792 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -76,7 +76,8 @@ __FBSDID("$FreeBSD$"); #define VFS_MOUNTARG_SIZE_MAX (1024 * 64) static int vfs_domount(struct thread *td, const char *fstype, char *fspath, - uint64_t fsflags, struct vfsoptlist **optlist); + uint64_t fsflags, bool jail_export, + struct vfsoptlist **optlist); static void free_mntarg(struct mntarg *ma); static int usermount = 0; @@ -663,7 +664,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) struct vfsopt *opt, *tmp_opt; char *fstype, *fspath, *errmsg; int error, fstypelen, fspathlen, errmsg_len, errmsg_pos; - bool autoro; + bool autoro, has_nonexport, jail_export; errmsg = fspath = NULL; errmsg_len = fspathlen = 0; @@ -699,15 +700,37 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) goto bail; } + /* + * Check to see that "export" is only used with the "update", "fstype", + * "fspath", "from" and "errmsg" options when in a vnet jail. + * These are the ones used to set/update exports by mountd(8). + * If only the above options are set in a jail that can run mountd(8), + * then the jail_export argument of vfs_domount() will be true. + * When jail_export is true, the vfs_suser() check does not cause + * failure, but limits the update to exports only. + * This allows mountd(8) running within the vnet jail + * to export file systems visible within the jail, but + * mounted outside of the jail. + */ /* * We need to see if we have the "update" option * before we call vfs_domount(), since vfs_domount() has special * logic based on MNT_UPDATE. This is very important * when we want to update the root filesystem. */ + has_nonexport = false; + jail_export = false; TAILQ_FOREACH_SAFE(opt, optlist, link, tmp_opt) { int do_freeopt = 0; + if (jailed(td->td_ucred) && + strcmp(opt->name, "export") != 0 && + strcmp(opt->name, "update") != 0 && + strcmp(opt->name, "fstype") != 0 && + strcmp(opt->name, "fspath") != 0 && + strcmp(opt->name, "from") != 0 && + strcmp(opt->name, "errmsg") != 0) + has_nonexport = true; if (strcmp(opt->name, "update") == 0) { fsflags |= MNT_UPDATE; do_freeopt = 1; @@ -790,9 +813,10 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) fsflags |= MNT_SYNCHRONOUS; else if (strcmp(opt->name, "union") == 0) fsflags |= MNT_UNION; - else if (strcmp(opt->name, "export") == 0) + else if (strcmp(opt->name, "export") == 0) { fsflags |= MNT_EXPORTED; - else if (strcmp(opt->name, "automounted") == 0) { + jail_export = true; + } else if (strcmp(opt->name, "automounted") == 0) { fsflags |= MNT_AUTOMOUNTED; do_freeopt = 1; } else if (strcmp(opt->name, "nocover") == 0) { @@ -822,7 +846,15 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) goto bail; } - error = vfs_domount(td, fstype, fspath, fsflags, &optlist); + /* + * If has_nonexport is true or the caller is not running within a + * vnet prison that can run mountd(8), set jail_export false. + */ + if (has_nonexport || !jailed(td->td_ucred) || + !prison_check_nfsd(td->td_ucred)) + jail_export = false; + + error = vfs_domount(td, fstype, fspath, fsflags, jail_export, &optlist); if (error == ENOENT) { error = EINVAL; if (errmsg != NULL) @@ -840,7 +872,8 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) printf("%s: R/W mount failed, possibly R/O media," " trying R/O mount\n", __func__); fsflags |= MNT_RDONLY; - error = vfs_domount(td, fstype, fspath, fsflags, &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, jail_export, + &optlist); } bail: /* copyout the errmsg */ @@ -1114,6 +1147,7 @@ vfs_domount_update( struct thread *td, /* Calling thread. */ struct vnode *vp, /* Mount point vnode. */ uint64_t fsflags, /* Flags common to all filesystems. */ + bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) { @@ -1125,6 +1159,7 @@ vfs_domount_update( int error, export_error, i, len; uint64_t flag; gid_t *grps; + bool vfs_suser_failed; ASSERT_VOP_ELOCKED(vp, __func__); KASSERT((fsflags & MNT_UPDATE) != 0, ("MNT_UPDATE should be here")); @@ -1153,7 +1188,20 @@ vfs_domount_update( * Only privileged root, or (if MNT_USER is set) the user that * did the original mount is permitted to update it. */ + /* + * For the case of mountd(8) doing exports in a jail, the vfs_suser() + * call does not cause failure. vfs_domount() has already checked + * that "root" is doing this and vfs_suser() will fail when + * the file system has been mounted outside the jail. + * jail_export set true indicates that "export" is not mixed + * with other options that change mount behaviour. + */ + vfs_suser_failed = false; error = vfs_suser(mp, td); + if (jail_export && error != 0) { + error = 0; + vfs_suser_failed = true; + } if (error != 0) { vput(vp); return (error); @@ -1183,11 +1231,26 @@ vfs_domount_update( error = EBUSY; goto end; } - mp->mnt_flag &= ~MNT_UPDATEMASK; - mp->mnt_flag |= fsflags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE | - MNT_SNAPSHOT | MNT_ROOTFS | MNT_UPDATEMASK | MNT_RDONLY); - if ((mp->mnt_flag & MNT_ASYNC) == 0) - mp->mnt_kern_flag &= ~MNTK_ASYNC; + if (vfs_suser_failed) { + KASSERT((fsflags & (MNT_EXPORTED | MNT_UPDATE)) == + (MNT_EXPORTED | MNT_UPDATE), + ("%s: jailed export did not set expected fsflags", + __func__)); + /* + * For this case, only MNT_UPDATE and + * MNT_EXPORTED have been set in fsflags + * by the options. Only set MNT_UPDATE, + * since that is the one that would be set + * when set in fsflags, below. + */ + mp->mnt_flag |= MNT_UPDATE; + } else { + mp->mnt_flag &= ~MNT_UPDATEMASK; + mp->mnt_flag |= fsflags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE | + MNT_SNAPSHOT | MNT_ROOTFS | MNT_UPDATEMASK | MNT_RDONLY); + if ((mp->mnt_flag & MNT_ASYNC) == 0) + mp->mnt_kern_flag &= ~MNTK_ASYNC; + } rootvp = vfs_cache_root_clear(mp); MNT_IUNLOCK(mp); mp->mnt_optnew = *optlist; @@ -1198,7 +1261,17 @@ vfs_domount_update( * XXX The final recipients of VFS_MOUNT just overwrite the ndp they * get. No freeing of cn_pnbuf. */ - error = VFS_MOUNT(mp); + /* + * For the case of mountd(8) doing exports from within a vnet jail, + * "from" is typically not set correctly such that VFS_MOUNT() will + * return ENOENT. It is not obvious that VFS_MOUNT() ever needs to be + * called when mountd is doing exports, but this check only applies to + * the specific case where it is running inside a vnet jail, to + * avoid any POLA violation. + */ + error = 0; + if (!jail_export) + error = VFS_MOUNT(mp); export_error = 0; /* Process the export option. */ @@ -1336,6 +1409,7 @@ vfs_domount( const char *fstype, /* Filesystem type. */ char *fspath, /* Mount path. */ uint64_t fsflags, /* Flags common to all filesystems. */ + bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) { @@ -1353,7 +1427,11 @@ vfs_domount( if (strlen(fstype) >= MFSNAMELEN || strlen(fspath) >= MNAMELEN) return (ENAMETOOLONG); - if (jailed(td->td_ucred) || usermount == 0) { + if (jail_export) { + error = priv_check(td, PRIV_NFS_DAEMON); + if (error) + return (error); + } else if (jailed(td->td_ucred) || usermount == 0) { if ((error = priv_check(td, PRIV_VFS_MOUNT)) != 0) return (error); } @@ -1434,7 +1512,8 @@ vfs_domount( } free(pathbuf, M_TEMP); } else - error = vfs_domount_update(td, vp, fsflags, optlist); + error = vfs_domount_update(td, vp, fsflags, jail_export, + optlist); out: NDFREE(&nd, NDF_ONLY_PNBUF); From nobody Fri May 19 20:27:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNJLY4LV7z4CLYd; Fri, 19 May 2023 20:27: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNJLY3hhPz3PfJ; Fri, 19 May 2023 20:27:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684528069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jU8jx+67ntGJcUlDY1L+AntLykE1UQ0FZ//EMOQi90I=; b=tliHjzFJ6in19OhgCn3PXjok06Cdnd+KuEs+hwy/gQItl7E6hLYxDzG1R2753BDaCoubHS MBiA/+DYmbpYIZEky/ul3jisFxuUNgmFhNV40REyA7AZliwc7KwgL20wgXZ8BQOi16L9zE IGilanOZ1po/WUaL+iEpF4M63DM/P8SVKtFz591/co8IRaPGwqQf1WEudRbN4NScpTjUUn CFPUNzw4XQoZEu3V9AVI+48FsxbPUFlRKu6KJJSFp90ZPAjPCic9vtjZd0JaZVh5tTL/5P Y7V8n4TOkzTzW+iPNDSgCNdkbdQz6vFrt785l5Oy9AQXWVp3E3INhYmmqec+Jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684528069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jU8jx+67ntGJcUlDY1L+AntLykE1UQ0FZ//EMOQi90I=; b=VTpaviQMD0aUNUjJQRDLrTJHIN0Qch+/v6VD3bALHrQxXQEJuYKvMLZKu4ZKwsGwK4k3ky qRlgB3Gux/mRSzLSpGY2J2B+yZ0jBBzu1MRADaFF3m/P/NA7OegPqROacoB5McvOIcxW72 ED2mb7NyGYr+HT4Vu0+rUCIR64mdXbJNGiTYkbxTycomjCSrFp3rps/rK15g1tgvTpF4Ps h5CDjE6r0wzg+cXrYc5WJJYhlixO0O1iJoLezAzFt4ebvrrtQ2F1Z0KuQB8rd3A3gc2dK6 mqwcsMvUUPCPj3AMIPPj0cJQ5ys8DmuKkZaPHZ2WaLKt/yJ2LPAlFs9ep9fC4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684528069; a=rsa-sha256; cv=none; b=y3d05Lx0vxXFEE+lidOxbZPm3enKunWafRadZlcej+87e7DYeLXD/oYokAcJdJIqBjdQ+b zZjyC/XsOurYm2SYXm1EASUeYQvF9lvwY/O6ePqwfKzMGagryhtnJ56/xsM+1lrVq1ae/8 2eNt/gYKjtFaNClAVLiuQYLKd7u5srbQAxVoRgaxxFsqVYvX5C3JD1jFBgpVFcvdCOwY/B XGofxr29pMGQTUG+d84+UeOXOIuzibxlG66ul/eNZ+0hypcompT6VfgI48rRpFFika+WD2 oTxWjI9zUB+zOK4pCt0+KpXygkr2ozo1OWzocFALoKDJvtn4OS3ix1TmUU8K3g== 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 4QNJLY2lzSzhx0; Fri, 19 May 2023 20:27:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JKRnZg018937; Fri, 19 May 2023 20:27:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JKRn3d018936; Fri, 19 May 2023 20:27:49 GMT (envelope-from git) Date: Fri, 19 May 2023 20:27:49 GMT Message-Id: <202305192027.34JKRn3d018936@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: eb6588af1585 - stable/13 - kern_jail.c: Remove #ifdefs for VNET_NFSD List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: eb6588af1585f4c2d7a1a4df6bae164bd6a063a6 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=eb6588af1585f4c2d7a1a4df6bae164bd6a063a6 commit eb6588af1585f4c2d7a1a4df6bae164bd6a063a6 Author: Rick Macklem AuthorDate: 2023-03-02 21:13:24 +0000 Commit: Rick Macklem CommitDate: 2023-05-19 20:26:53 +0000 kern_jail.c: Remove #ifdefs for VNET_NFSD The consensus was that VNET_NFSD was not needed. This patch removes it from kern_jail.c. With this patch, support for the "allow.nfsd" jail parameter is enabled in the kernel for kernels built with "options VIMAGE". (cherry picked from commit cbbb22031f9b957967c03dc8e685392f7d7e7fb8) --- sys/kern/kern_jail.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 0203dcd0faf1..d43d2326cfec 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -216,7 +216,7 @@ static struct bool_flags pr_flag_allow[NBBY * NBPW] = { {"allow.unprivileged_proc_debug", "allow.nounprivileged_proc_debug", PR_ALLOW_UNPRIV_DEBUG}, {"allow.suser", "allow.nosuser", PR_ALLOW_SUSER}, -#if defined(VNET_NFSD) && defined(VIMAGE) && defined(NFSD) +#ifdef VIMAGE {"allow.nfsd", "allow.nonfsd", PR_ALLOW_NFSD}, #endif }; @@ -1888,12 +1888,10 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags) } #endif -#ifdef VNET_NFSD if (born && pr != &prison0 && (pr->pr_allow & PR_ALLOW_NFSD) != 0 && (pr->pr_root->v_vflag & VV_ROOT) == 0) printf("Warning jail jid=%d: mountd/nfsd requires a separate" " file system\n", pr->pr_id); -#endif drflags &= ~PD_KILL; td->td_retval[0] = pr->pr_id; @@ -3473,12 +3471,7 @@ prison_priv_check(struct ucred *cred, int priv) case PRIV_NFS_DAEMON: case PRIV_VFS_GETFH: case PRIV_VFS_MOUNT_EXPORTED: -#ifdef VNET_NFSD if (!prison_check_nfsd(cred)) -#else - printf("running nfsd in a prison requires a kernel " - "built with ''options VNET_NFSD''\n"); -#endif return (EPERM); #ifdef notyet case PRIV_NFS_LOCKD: @@ -4230,7 +4223,7 @@ SYSCTL_JAIL_PARAM(_allow, unprivileged_proc_debug, CTLTYPE_INT | CTLFLAG_RW, "B", "Unprivileged processes may use process debugging facilities"); SYSCTL_JAIL_PARAM(_allow, suser, CTLTYPE_INT | CTLFLAG_RW, "B", "Processes in jail with uid 0 have privilege"); -#if defined(VNET_NFSD) && defined(VIMAGE) && defined(NFSD) +#ifdef VIMAGE SYSCTL_JAIL_PARAM(_allow, nfsd, CTLTYPE_INT | CTLFLAG_RW, "B", "Mountd/nfsd may run in the jail"); #endif From nobody Fri May 19 21:36:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNKsT59MNz4CPwL; Fri, 19 May 2023 21:36: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNKsT4LbQz3jjK; Fri, 19 May 2023 21:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684532173; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jRxGbkYbo3dhOMCj3iwHpCHxLq9p//miscQN0wCosCc=; b=fFdL04iTSHd8dflTe6gsX9muYWiqMc11d2ElmG+zkNIuseCkTBVbTb0kDl/Iudt/Nnqx1f LSLnaM4V2WCunSt4mkwZUWyE0SWvmCTjuTREwcbZWFhMGzqZl+ajtKoWpdBYznDI90848g 6cID/RuUHz3b6wLNkMcil1dbOofchH+NPd7Z9bxB90v+2b/PD+1aveH0qm0QEp4UZmnNDB wQVTFPUU4M+OgCP88rJXMUX+hNE2zyo5tFIobkXhW3HwvWH+JZeb98Xq8MiDp0HGO/KDP6 JxXfMV1qdQhTye9srNt72pUYAIK2zXikLaAGh83W7PWjFwmGOn1fBw7wdpabLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684532173; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jRxGbkYbo3dhOMCj3iwHpCHxLq9p//miscQN0wCosCc=; b=Qc902dAcyxfkX32Uzr2dPBl2+rjheo2AwjpvXBscsyeXnHf7cX2gjHov5yy/L0BEmPHvNY RZOLaOV/bbn3PwDog9wkVmwmJXKfE+QXatkXd3zW+2JgBkfJiPxAnCJ/CB8pqxbVOtAZFw g1o8g4mjb27Oglg8UDklnGRa4M6M2kVJb9pkHCzn0/bdcYrgHHhqdcQWyzJMqy9POVBoIe ZWsOaLjDjjAxYq9SunvQahBAS3GSF5owooieebAq76Dty9MYu4ipP/Z4Emp3ZBX20KgdLY IKylxooZybY2QjP+qrWIx40k+bwK4KaVID5kBcBt2N4BavJJ4Us1bAWyk97YpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684532173; a=rsa-sha256; cv=none; b=QbAJg/ihG8H5BxKX28IFhd6uYM3EawAvGl9bZ2u+r5IVc+dlesUVAkQayEkBTKQ0vt75wU 6Y2nCCS8NFtoe7CLUOSXPGbWQWFL/x6yjuBFb1Mp6BAkHlec0lqMGhZdBnAFHnnt5h8J3X iwGp9BANjZTeOzK4Xis5hN3ei+/mB1F2oJJjN3e/Mu1UCLNMwMk/xGRaA00NcHUKR56rKF uyRva1CsPY0rgnflhCmcyYGwaE6Ba1bCHuZy2T0gjQtLFm99IuQh4bEqKUxcr8PS74wIq7 qb7aVkDLkDF8r/9a9o1070G4H31WbDHsnQF5lW9G8CqRbEH403s0V3JRjw8zCg== 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 4QNKsT3N4FzkT5; Fri, 19 May 2023 21:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JLaDcs033895; Fri, 19 May 2023 21:36:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JLaDNm033894; Fri, 19 May 2023 21:36:13 GMT (envelope-from git) Date: Fri, 19 May 2023 21:36:13 GMT Message-Id: <202305192136.34JLaDNm033894@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: 544ebd2a9806 - stable/13 - Revert "kern_jail.c: Remove #ifdefs for VNET_NFSD" List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 544ebd2a9806f55aff9b33f8c17d3237c81b41d3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=544ebd2a9806f55aff9b33f8c17d3237c81b41d3 commit 544ebd2a9806f55aff9b33f8c17d3237c81b41d3 Author: Rick Macklem AuthorDate: 2023-05-19 21:34:58 +0000 Commit: Rick Macklem CommitDate: 2023-05-19 21:34:58 +0000 Revert "kern_jail.c: Remove #ifdefs for VNET_NFSD" Revert this commit until I can figure out build issue. This reverts commit eb6588af1585f4c2d7a1a4df6bae164bd6a063a6. --- sys/kern/kern_jail.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index d43d2326cfec..0203dcd0faf1 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -216,7 +216,7 @@ static struct bool_flags pr_flag_allow[NBBY * NBPW] = { {"allow.unprivileged_proc_debug", "allow.nounprivileged_proc_debug", PR_ALLOW_UNPRIV_DEBUG}, {"allow.suser", "allow.nosuser", PR_ALLOW_SUSER}, -#ifdef VIMAGE +#if defined(VNET_NFSD) && defined(VIMAGE) && defined(NFSD) {"allow.nfsd", "allow.nonfsd", PR_ALLOW_NFSD}, #endif }; @@ -1888,10 +1888,12 @@ kern_jail_set(struct thread *td, struct uio *optuio, int flags) } #endif +#ifdef VNET_NFSD if (born && pr != &prison0 && (pr->pr_allow & PR_ALLOW_NFSD) != 0 && (pr->pr_root->v_vflag & VV_ROOT) == 0) printf("Warning jail jid=%d: mountd/nfsd requires a separate" " file system\n", pr->pr_id); +#endif drflags &= ~PD_KILL; td->td_retval[0] = pr->pr_id; @@ -3471,7 +3473,12 @@ prison_priv_check(struct ucred *cred, int priv) case PRIV_NFS_DAEMON: case PRIV_VFS_GETFH: case PRIV_VFS_MOUNT_EXPORTED: +#ifdef VNET_NFSD if (!prison_check_nfsd(cred)) +#else + printf("running nfsd in a prison requires a kernel " + "built with ''options VNET_NFSD''\n"); +#endif return (EPERM); #ifdef notyet case PRIV_NFS_LOCKD: @@ -4223,7 +4230,7 @@ SYSCTL_JAIL_PARAM(_allow, unprivileged_proc_debug, CTLTYPE_INT | CTLFLAG_RW, "B", "Unprivileged processes may use process debugging facilities"); SYSCTL_JAIL_PARAM(_allow, suser, CTLTYPE_INT | CTLFLAG_RW, "B", "Processes in jail with uid 0 have privilege"); -#ifdef VIMAGE +#if defined(VNET_NFSD) && defined(VIMAGE) && defined(NFSD) SYSCTL_JAIL_PARAM(_allow, nfsd, CTLTYPE_INT | CTLFLAG_RW, "B", "Mountd/nfsd may run in the jail"); #endif From nobody Fri May 19 21:37:42 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNKvB68Fhz4CPlw; Fri, 19 May 2023 21:37:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNKvB5g2pz3kC6; Fri, 19 May 2023 21:37:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684532262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WBsX3La9VvTm7KT4fBEQJLoM1IX+Nj51ERvJEpnFTLE=; b=fgWTAMwx2Nem7yvCypfsWOHVobI1QnnITs001F26lSueY7rNc/wno/rAx+c5HEKZLYqZAv DGb+JQgYjXIWwaEyvpNHRCcSIaBw8rQX/aoLDNV5aHKWVO8J9moDGaUA/zYoxbU2En5eXx e+F7K0iK1cbdzFDtCzPzmqqEAe8QjTcMqiFWzmRspV/kfzOuAuSi2EsvH+o0VXyA+ruwpR mNcbB/0bMUGMq6eCu9j8ra8r/8vdYXyWS8fQyc4gd6oR/aAtLoAZEPzeKQB/Xshu4v46Yt KFmCyTbDtnH+u91XYeGyfXFStfJozrcxZPUXCcoT6y/pcVUsbTsG3R4hcuYHew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684532262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WBsX3La9VvTm7KT4fBEQJLoM1IX+Nj51ERvJEpnFTLE=; b=ouvNSxF/z797ZtOKSIOe2ecJofTlQYgixQHwEtlqFtOIGs4pNNt3Z3PfocD+0FiNeewoF4 msC69/i3B39BJ3RrVNIDFjozvlHlGaFGxRfpXiyqs/2Tt21OyoffITzPbKW6iZ6mWr8Af4 FFZzqKha1m5ZGiasF26UDDPsKPu3Hp7QJXdqDOHc4dz8mSUPpEbdNcjMQ/S+lLFuSLz1eA n8twffa2PcnldBq4upyNkDFugb+FIrjqRGSK3nL8+mva1AWnz8mGRve3g3djN71MgEkbWj Eanm2xnVE4uDbi5R6bEkW1bFmVa/OABuX8d/8SiTfXHCb2THEbDSNoOlpQe1FA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684532262; a=rsa-sha256; cv=none; b=wWU3Pbhms1LYDCmgLUBr+MA0uKPRp4nqJ36QgVtyb5MqeMhuPcEkCnzHfo23gqpPZZ3DZg xuWt41eLOX/KPZqugsBCr+R3kh219llQEPTYp6cFlP/jUETwrCM/z9gjEmF9vvcMiyfRMY B1AijUBJr3SiAjtVrHRXHaM/6iruAS1T1PrIyJu+lKT7qEtPbLztFMIVF/TnSsWFTgBzTJ QMBOqEmeNKj/lY1fCfO2SQMXmcePcDmofU78w66PMEIxiwvo/evo38vbDI93r8NN6270NF w59mfeNWkDFj7ZUK4izvCOeXYK/H5zyeGGI2GJ52YTFLfE8WH8UyXzS/T51Fbg== 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 4QNKvB4hjczkNb; Fri, 19 May 2023 21:37:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JLbggi034163; Fri, 19 May 2023 21:37:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JLbgr9034162; Fri, 19 May 2023 21:37:42 GMT (envelope-from git) Date: Fri, 19 May 2023 21:37:42 GMT Message-Id: <202305192137.34JLbgr9034162@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: 3866502e1817 - stable/13 - Revert "vfs_mount.c: Allow mountd(8) to do exports in a vnet prison" List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 3866502e1817aa28446d5e103277583bde65670d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=3866502e1817aa28446d5e103277583bde65670d commit 3866502e1817aa28446d5e103277583bde65670d Author: Rick Macklem AuthorDate: 2023-05-19 21:36:52 +0000 Commit: Rick Macklem CommitDate: 2023-05-19 21:36:52 +0000 Revert "vfs_mount.c: Allow mountd(8) to do exports in a vnet prison" Revert this commit until I can figure out build issue. This reverts commit 527e6b02d65db8d6294b1e66f7bd063899a4de02. --- sys/kern/vfs_mount.c | 107 +++++++-------------------------------------------- 1 file changed, 14 insertions(+), 93 deletions(-) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index e3a7ca50e792..4c941c2616ff 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -76,8 +76,7 @@ __FBSDID("$FreeBSD$"); #define VFS_MOUNTARG_SIZE_MAX (1024 * 64) static int vfs_domount(struct thread *td, const char *fstype, char *fspath, - uint64_t fsflags, bool jail_export, - struct vfsoptlist **optlist); + uint64_t fsflags, struct vfsoptlist **optlist); static void free_mntarg(struct mntarg *ma); static int usermount = 0; @@ -664,7 +663,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) struct vfsopt *opt, *tmp_opt; char *fstype, *fspath, *errmsg; int error, fstypelen, fspathlen, errmsg_len, errmsg_pos; - bool autoro, has_nonexport, jail_export; + bool autoro; errmsg = fspath = NULL; errmsg_len = fspathlen = 0; @@ -700,37 +699,15 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) goto bail; } - /* - * Check to see that "export" is only used with the "update", "fstype", - * "fspath", "from" and "errmsg" options when in a vnet jail. - * These are the ones used to set/update exports by mountd(8). - * If only the above options are set in a jail that can run mountd(8), - * then the jail_export argument of vfs_domount() will be true. - * When jail_export is true, the vfs_suser() check does not cause - * failure, but limits the update to exports only. - * This allows mountd(8) running within the vnet jail - * to export file systems visible within the jail, but - * mounted outside of the jail. - */ /* * We need to see if we have the "update" option * before we call vfs_domount(), since vfs_domount() has special * logic based on MNT_UPDATE. This is very important * when we want to update the root filesystem. */ - has_nonexport = false; - jail_export = false; TAILQ_FOREACH_SAFE(opt, optlist, link, tmp_opt) { int do_freeopt = 0; - if (jailed(td->td_ucred) && - strcmp(opt->name, "export") != 0 && - strcmp(opt->name, "update") != 0 && - strcmp(opt->name, "fstype") != 0 && - strcmp(opt->name, "fspath") != 0 && - strcmp(opt->name, "from") != 0 && - strcmp(opt->name, "errmsg") != 0) - has_nonexport = true; if (strcmp(opt->name, "update") == 0) { fsflags |= MNT_UPDATE; do_freeopt = 1; @@ -813,10 +790,9 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) fsflags |= MNT_SYNCHRONOUS; else if (strcmp(opt->name, "union") == 0) fsflags |= MNT_UNION; - else if (strcmp(opt->name, "export") == 0) { + else if (strcmp(opt->name, "export") == 0) fsflags |= MNT_EXPORTED; - jail_export = true; - } else if (strcmp(opt->name, "automounted") == 0) { + else if (strcmp(opt->name, "automounted") == 0) { fsflags |= MNT_AUTOMOUNTED; do_freeopt = 1; } else if (strcmp(opt->name, "nocover") == 0) { @@ -846,15 +822,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) goto bail; } - /* - * If has_nonexport is true or the caller is not running within a - * vnet prison that can run mountd(8), set jail_export false. - */ - if (has_nonexport || !jailed(td->td_ucred) || - !prison_check_nfsd(td->td_ucred)) - jail_export = false; - - error = vfs_domount(td, fstype, fspath, fsflags, jail_export, &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, &optlist); if (error == ENOENT) { error = EINVAL; if (errmsg != NULL) @@ -872,8 +840,7 @@ vfs_donmount(struct thread *td, uint64_t fsflags, struct uio *fsoptions) printf("%s: R/W mount failed, possibly R/O media," " trying R/O mount\n", __func__); fsflags |= MNT_RDONLY; - error = vfs_domount(td, fstype, fspath, fsflags, jail_export, - &optlist); + error = vfs_domount(td, fstype, fspath, fsflags, &optlist); } bail: /* copyout the errmsg */ @@ -1147,7 +1114,6 @@ vfs_domount_update( struct thread *td, /* Calling thread. */ struct vnode *vp, /* Mount point vnode. */ uint64_t fsflags, /* Flags common to all filesystems. */ - bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) { @@ -1159,7 +1125,6 @@ vfs_domount_update( int error, export_error, i, len; uint64_t flag; gid_t *grps; - bool vfs_suser_failed; ASSERT_VOP_ELOCKED(vp, __func__); KASSERT((fsflags & MNT_UPDATE) != 0, ("MNT_UPDATE should be here")); @@ -1188,20 +1153,7 @@ vfs_domount_update( * Only privileged root, or (if MNT_USER is set) the user that * did the original mount is permitted to update it. */ - /* - * For the case of mountd(8) doing exports in a jail, the vfs_suser() - * call does not cause failure. vfs_domount() has already checked - * that "root" is doing this and vfs_suser() will fail when - * the file system has been mounted outside the jail. - * jail_export set true indicates that "export" is not mixed - * with other options that change mount behaviour. - */ - vfs_suser_failed = false; error = vfs_suser(mp, td); - if (jail_export && error != 0) { - error = 0; - vfs_suser_failed = true; - } if (error != 0) { vput(vp); return (error); @@ -1231,26 +1183,11 @@ vfs_domount_update( error = EBUSY; goto end; } - if (vfs_suser_failed) { - KASSERT((fsflags & (MNT_EXPORTED | MNT_UPDATE)) == - (MNT_EXPORTED | MNT_UPDATE), - ("%s: jailed export did not set expected fsflags", - __func__)); - /* - * For this case, only MNT_UPDATE and - * MNT_EXPORTED have been set in fsflags - * by the options. Only set MNT_UPDATE, - * since that is the one that would be set - * when set in fsflags, below. - */ - mp->mnt_flag |= MNT_UPDATE; - } else { - mp->mnt_flag &= ~MNT_UPDATEMASK; - mp->mnt_flag |= fsflags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE | - MNT_SNAPSHOT | MNT_ROOTFS | MNT_UPDATEMASK | MNT_RDONLY); - if ((mp->mnt_flag & MNT_ASYNC) == 0) - mp->mnt_kern_flag &= ~MNTK_ASYNC; - } + mp->mnt_flag &= ~MNT_UPDATEMASK; + mp->mnt_flag |= fsflags & (MNT_RELOAD | MNT_FORCE | MNT_UPDATE | + MNT_SNAPSHOT | MNT_ROOTFS | MNT_UPDATEMASK | MNT_RDONLY); + if ((mp->mnt_flag & MNT_ASYNC) == 0) + mp->mnt_kern_flag &= ~MNTK_ASYNC; rootvp = vfs_cache_root_clear(mp); MNT_IUNLOCK(mp); mp->mnt_optnew = *optlist; @@ -1261,17 +1198,7 @@ vfs_domount_update( * XXX The final recipients of VFS_MOUNT just overwrite the ndp they * get. No freeing of cn_pnbuf. */ - /* - * For the case of mountd(8) doing exports from within a vnet jail, - * "from" is typically not set correctly such that VFS_MOUNT() will - * return ENOENT. It is not obvious that VFS_MOUNT() ever needs to be - * called when mountd is doing exports, but this check only applies to - * the specific case where it is running inside a vnet jail, to - * avoid any POLA violation. - */ - error = 0; - if (!jail_export) - error = VFS_MOUNT(mp); + error = VFS_MOUNT(mp); export_error = 0; /* Process the export option. */ @@ -1409,7 +1336,6 @@ vfs_domount( const char *fstype, /* Filesystem type. */ char *fspath, /* Mount path. */ uint64_t fsflags, /* Flags common to all filesystems. */ - bool jail_export, /* Got export option in vnet prison. */ struct vfsoptlist **optlist /* Options local to the filesystem. */ ) { @@ -1427,11 +1353,7 @@ vfs_domount( if (strlen(fstype) >= MFSNAMELEN || strlen(fspath) >= MNAMELEN) return (ENAMETOOLONG); - if (jail_export) { - error = priv_check(td, PRIV_NFS_DAEMON); - if (error) - return (error); - } else if (jailed(td->td_ucred) || usermount == 0) { + if (jailed(td->td_ucred) || usermount == 0) { if ((error = priv_check(td, PRIV_VFS_MOUNT)) != 0) return (error); } @@ -1512,8 +1434,7 @@ vfs_domount( } free(pathbuf, M_TEMP); } else - error = vfs_domount_update(td, vp, fsflags, jail_export, - optlist); + error = vfs_domount_update(td, vp, fsflags, optlist); out: NDFREE(&nd, NDF_ONLY_PNBUF); From nobody Fri May 19 21:39:43 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNKxW5RLwz4CPfS; Fri, 19 May 2023 21:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNKxW4tRvz3kgL; Fri, 19 May 2023 21:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684532383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Htbp7J09Xb81z/F91/wimTtlu4obLBb8bYiUKhJc2KU=; b=YhsGwZKPCwM4T0QRlqndUUJIMU5S2X6bWKG9x2EVa82xkXdAmXcmplgkO9f4szibF42Yln LXkFqVBtZ+0c9a0LPmo0LRrbTGhSw2Uw2TeHO26qtILOMiSkfcr+qnRtguOH/szUOGaIHE mWXwDOM3R0xzw10o6SNOsOCZKa/H0eO91m8PxBZmc9NIK1TwYVpIc9fc7SdzOqew5FSviD rFQy+aag2PSpSUim2vCa3+cI9hfeRfWpAhGRnpTZd1zFz2n47wMXMPxyQG10T4FCbekJAy eoLDkbaSqdHMjzfUgUa6ScpQ6GKh0hgVT27pjWdLLIu0pkAOc8FyW1GnOugZpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684532383; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Htbp7J09Xb81z/F91/wimTtlu4obLBb8bYiUKhJc2KU=; b=e6ph5H2guJKXtF74IciKarHm9XqEKirAIBjIUL2p4WKOQoYHfvdqb+MxxnU0ujg0PxMCyb LmgTw2E09W7WOUSoP1bC8l8J+7XuxT2mwqzISDUbymdp/RrWv9w8F6fToNB9czKI6sbksk WgyxJypYOp4uacs3JSIcU+RBD0nGT6t2PGri4PGBKEsWFV5nacK2Ij5+JmSowCjyrL1mk5 lOEF50zNG5yqTkg3AIxOnyIOXnCIVOHsW6zqvlkG4YWj8AkLgBOcFiCe8SJyIEZeHHmfys +XAeY/kG5cUUv6EvO+GgKwFPArZRx988JJmmv0Z9i1LLpmHG5RZYeacCjCmyiw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684532383; a=rsa-sha256; cv=none; b=S5zd12u40CBS3AL/0ZuDXdJz/UMb3GGFhZOUrYwj6bqESK3yAhXMHeEnvIGx41GjX49qZp 6Fn+1fOrzCgZrTysGgGbRt+c1u+6fAf5jPJisk70INciavdhbXknqi7SM8fB0cDSqDR3Tm E+5CDh2C3rc8G8BNzMq8j9ZIyhApEjQU1Y22vk7PuEmt1dpaYx0mPlymE22IVB3PKVk/Kv NmbH4xAc+fP1hxC/dy17o6DaIvqmSmF+a6Ql0uVJvQ8Gc0KRlHSsNybuPbli0zH3bkeTZ0 cM4MVdG1i0m+ZzuR7SLj1kAT5W5EQRHLqyRYc8xeYxzZNwY9TUcyHoCQ36OC2w== 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 4QNKxW3tvfzkTB; Fri, 19 May 2023 21:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JLdhwP034496; Fri, 19 May 2023 21:39:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JLdhTq034495; Fri, 19 May 2023 21:39:43 GMT (envelope-from git) Date: Fri, 19 May 2023 21:39:43 GMT Message-Id: <202305192139.34JLdhTq034495@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: 3bd0519d7485 - stable/13 - Revert "vfs_export: Add mnt_exjail to control exports done in prisons" List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: 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/13 X-Git-Reftype: branch X-Git-Commit: 3bd0519d7485bb1ed4575887e13dbcd5db8f0592 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=3bd0519d7485bb1ed4575887e13dbcd5db8f0592 commit 3bd0519d7485bb1ed4575887e13dbcd5db8f0592 Author: Rick Macklem AuthorDate: 2023-05-19 21:38:20 +0000 Commit: Rick Macklem CommitDate: 2023-05-19 21:38:20 +0000 Revert "vfs_export: Add mnt_exjail to control exports done in prisons" Revert this commit until I can figure out build issue. This reverts commit 202d52261b92abdfb1ec39564ee1be3812bcdf92. --- sys/fs/nfsserver/nfs_nfsdport.c | 24 ++---- sys/kern/kern_jail.c | 1 - sys/kern/vfs_export.c | 164 +--------------------------------------- sys/kern/vfs_mount.c | 9 +-- sys/sys/jail.h | 3 +- sys/sys/mount.h | 5 +- 6 files changed, 14 insertions(+), 192 deletions(-) diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index 50d3aa57c4aa..4247177a3fc0 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -3270,16 +3270,8 @@ nfsvno_checkexp(struct mount *mp, struct sockaddr *nam, struct nfsexstuff *exp, { int error; - error = 0; - *credp = NULL; - MNT_ILOCK(mp); - if (mp->mnt_exjail == NULL || - mp->mnt_exjail->cr_prison != curthread->td_ucred->cr_prison) - error = EACCES; - MNT_IUNLOCK(mp); - if (error == 0) - error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, - &exp->nes_numsecflavor, exp->nes_secflavors); + error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, + &exp->nes_numsecflavor, exp->nes_secflavors); if (error) { if (NFSD_VNET(nfs_rootfhset)) { exp->nes_exflag = 0; @@ -3313,14 +3305,8 @@ nfsvno_fhtovp(struct mount *mp, fhandle_t *fhp, struct sockaddr *nam, /* Make sure the server replies ESTALE to the client. */ error = ESTALE; if (nam && !error) { - MNT_ILOCK(mp); - if (mp->mnt_exjail == NULL || - mp->mnt_exjail->cr_prison != curthread->td_ucred->cr_prison) - error = EACCES; - MNT_IUNLOCK(mp); - if (error == 0) - error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, - &exp->nes_numsecflavor, exp->nes_secflavors); + error = VFS_CHECKEXP(mp, nam, &exp->nes_exflag, credp, + &exp->nes_numsecflavor, exp->nes_secflavors); if (error) { if (NFSD_VNET(nfs_rootfhset)) { exp->nes_exflag = 0; @@ -3490,7 +3476,7 @@ nfsrv_v4rootexport(void *argp, struct ucred *cred, struct thread *p) struct nameidata nd; fhandle_t fh; - error = vfs_export(NFSD_VNET(nfsv4root_mnt), &nfsexargp->export, false); + error = vfs_export(NFSD_VNET(nfsv4root_mnt), &nfsexargp->export); if ((nfsexargp->export.ex_flags & MNT_DELEXPORT) != 0) NFSD_VNET(nfs_rootfhset) = 0; else if (error == 0) { diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 0203dcd0faf1..622b9f6c7cb9 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -3035,7 +3035,6 @@ prison_cleanup(struct prison *pr) { sx_assert(&allprison_lock, SA_XLOCKED); mtx_assert(&pr->pr_mtx, MA_NOTOWNED); - vfs_exjail_delete(pr); shm_remove_prison(pr); (void)osd_jail_call(pr, PR_METHOD_REMOVE, NULL); } diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index 16d2e88bdc41..cab37ce205ad 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -297,18 +296,12 @@ vfs_free_addrlist(struct netexport *nep) * and the passed in netexport. * Struct export_args *argp is the variable used to twiddle options, * the structure is described in sys/mount.h - * The do_exjail argument should be true if *mp is in the mountlist - * and false if not. It is not in the mountlist for the NFSv4 rootfs - * fake mount point just used for exports. */ int -vfs_export(struct mount *mp, struct export_args *argp, bool do_exjail) +vfs_export(struct mount *mp, struct export_args *argp) { struct netexport *nep; - struct ucred *cr; - struct prison *pr; int error; - bool new_nep; if ((argp->ex_flags & (MNT_DELEXPORT | MNT_EXPORTED)) == 0) return (EINVAL); @@ -319,7 +312,6 @@ vfs_export(struct mount *mp, struct export_args *argp, bool do_exjail) return (EINVAL); error = 0; - pr = curthread->td_ucred->cr_prison; lockmgr(&mp->mnt_explock, LK_EXCLUSIVE, NULL); nep = mp->mnt_export; if (argp->ex_flags & MNT_DELEXPORT) { @@ -327,21 +319,6 @@ vfs_export(struct mount *mp, struct export_args *argp, bool do_exjail) error = ENOENT; goto out; } - MNT_ILOCK(mp); - if (mp->mnt_exjail != NULL && mp->mnt_exjail->cr_prison != pr && - pr == &prison0) { - MNT_IUNLOCK(mp); - /* EXDEV will not get logged by mountd(8). */ - error = EXDEV; - goto out; - } else if (mp->mnt_exjail != NULL && - mp->mnt_exjail->cr_prison != pr) { - MNT_IUNLOCK(mp); - /* EPERM will get logged by mountd(8). */ - error = EPERM; - goto out; - } - MNT_IUNLOCK(mp); if (mp->mnt_flag & MNT_EXPUBLIC) { vfs_setpublicfs(NULL, NULL, NULL); MNT_ILOCK(mp); @@ -353,51 +330,18 @@ vfs_export(struct mount *mp, struct export_args *argp, bool do_exjail) free(nep, M_MOUNT); nep = NULL; MNT_ILOCK(mp); - cr = mp->mnt_exjail; - mp->mnt_exjail = NULL; mp->mnt_flag &= ~(MNT_EXPORTED | MNT_DEFEXPORTED); MNT_IUNLOCK(mp); - if (cr != NULL) { - atomic_subtract_int(&pr->pr_exportcnt, 1); - crfree(cr); - } } if (argp->ex_flags & MNT_EXPORTED) { - new_nep = false; - MNT_ILOCK(mp); - if (mp->mnt_exjail == NULL) { - MNT_IUNLOCK(mp); - if (do_exjail && nep != NULL) { - vfs_free_addrlist(nep); - memset(nep, 0, sizeof(*nep)); - new_nep = true; - } - } else if (mp->mnt_exjail->cr_prison != pr) { - MNT_IUNLOCK(mp); - error = EPERM; - goto out; - } else - MNT_IUNLOCK(mp); if (nep == NULL) { - nep = malloc(sizeof(struct netexport), M_MOUNT, - M_WAITOK | M_ZERO); + nep = malloc(sizeof(struct netexport), M_MOUNT, M_WAITOK | M_ZERO); mp->mnt_export = nep; - new_nep = true; } if (argp->ex_flags & MNT_EXPUBLIC) { - if ((error = vfs_setpublicfs(mp, nep, argp)) != 0) { - if (new_nep) { - mp->mnt_export = NULL; - free(nep, M_MOUNT); - } + if ((error = vfs_setpublicfs(mp, nep, argp)) != 0) goto out; - } - new_nep = false; MNT_ILOCK(mp); - if (do_exjail && mp->mnt_exjail == NULL) { - mp->mnt_exjail = crhold(curthread->td_ucred); - atomic_add_int(&pr->pr_exportcnt, 1); - } mp->mnt_flag |= MNT_EXPUBLIC; MNT_IUNLOCK(mp); } @@ -405,18 +349,9 @@ vfs_export(struct mount *mp, struct export_args *argp, bool do_exjail) argp->ex_numsecflavors = 1; argp->ex_secflavors[0] = AUTH_SYS; } - if ((error = vfs_hang_addrlist(mp, nep, argp))) { - if (new_nep) { - mp->mnt_export = NULL; - free(nep, M_MOUNT); - } + if ((error = vfs_hang_addrlist(mp, nep, argp))) goto out; - } MNT_ILOCK(mp); - if (do_exjail && mp->mnt_exjail == NULL) { - mp->mnt_exjail = crhold(curthread->td_ucred); - atomic_add_int(&pr->pr_exportcnt, 1); - } mp->mnt_flag |= MNT_EXPORTED; MNT_IUNLOCK(mp); } @@ -436,97 +371,6 @@ out: return (error); } -/* - * Get rid of credential references for this prison. - */ -void -vfs_exjail_delete(struct prison *pr) -{ - struct mount *mp; - struct ucred *cr; - int error, i; - - /* - * Since this function is called from prison_cleanup() after - * all processes in the prison have exited, the value of - * pr_exportcnt can no longer increase. It is possible for - * a dismount of a file system exported within this prison - * to be in progress. In this case, the file system is no - * longer in the mountlist and the mnt_exjail will be free'd - * by vfs_mount_destroy() at some time. As such, pr_exportcnt - * and, therefore "i", is the upper bound on the number of - * mnt_exjail entries to be found by this function. - */ - i = atomic_load_int(&pr->pr_exportcnt); - KASSERT(i >= 0, ("vfs_exjail_delete: pr_exportcnt negative")); - if (i == 0) - return; - mtx_lock(&mountlist_mtx); -tryagain: - TAILQ_FOREACH(mp, &mountlist, mnt_list) { - MNT_ILOCK(mp); - if (mp->mnt_exjail != NULL && - mp->mnt_exjail->cr_prison == pr) { - MNT_IUNLOCK(mp); - error = vfs_busy(mp, MBF_MNTLSTLOCK | MBF_NOWAIT); - if (error != 0) { - /* - * If the vfs_busy() fails, we still want to - * get rid of mnt_exjail for two reasons: - * - a credential reference will result in - * a prison not being removed - * - setting mnt_exjail NULL indicates that - * the exports are no longer valid - * The now invalid exports will be deleted - * when the file system is dismounted or - * the file system is re-exported by mountd. - */ - cr = NULL; - MNT_ILOCK(mp); - if (mp->mnt_exjail != NULL && - mp->mnt_exjail->cr_prison == pr) { - cr = mp->mnt_exjail; - mp->mnt_exjail = NULL; - } - MNT_IUNLOCK(mp); - if (cr != NULL) { - crfree(cr); - i--; - } - if (i == 0) - break; - continue; - } - cr = NULL; - lockmgr(&mp->mnt_explock, LK_EXCLUSIVE, NULL); - MNT_ILOCK(mp); - if (mp->mnt_exjail != NULL && - mp->mnt_exjail->cr_prison == pr) { - cr = mp->mnt_exjail; - mp->mnt_exjail = NULL; - mp->mnt_flag &= ~(MNT_EXPORTED | MNT_DEFEXPORTED); - MNT_IUNLOCK(mp); - vfs_free_addrlist(mp->mnt_export); - free(mp->mnt_export, M_MOUNT); - mp->mnt_export = NULL; - } else - MNT_IUNLOCK(mp); - lockmgr(&mp->mnt_explock, LK_RELEASE, NULL); - if (cr != NULL) { - crfree(cr); - i--; - } - mtx_lock(&mountlist_mtx); - vfs_unbusy(mp); - if (i == 0) - break; - goto tryagain; - } - MNT_IUNLOCK(mp); - } - mtx_unlock(&mountlist_mtx); -} - /* * Set the publicly exported filesystem (WebNFS). Currently, only * one public filesystem is possible in the spec (RFC 2054 and 2055) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 4c941c2616ff..d5b137e7ffab 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -618,11 +618,6 @@ vfs_mount_destroy(struct mount *mp) #endif if (mp->mnt_opt != NULL) vfs_freeopts(mp->mnt_opt); - if (mp->mnt_exjail != NULL) { - atomic_subtract_int(&mp->mnt_exjail->cr_prison->pr_exportcnt, - 1); - crfree(mp->mnt_exjail); - } if (mp->mnt_export != NULL) { vfs_free_addrlist(mp->mnt_export); free(mp->mnt_export, M_MOUNT); @@ -1241,7 +1236,7 @@ vfs_domount_update( } else export_error = EINVAL; if (export_error == 0) - export_error = vfs_export(mp, &export, true); + export_error = vfs_export(mp, &export); free(export.ex_groups, M_TEMP); break; case (sizeof(export)): @@ -1263,7 +1258,7 @@ vfs_domount_update( else export_error = EINVAL; if (export_error == 0) - export_error = vfs_export(mp, &export, true); + export_error = vfs_export(mp, &export); free(grps, M_TEMP); break; default: diff --git a/sys/sys/jail.h b/sys/sys/jail.h index e81b272677bb..f4d4e521d7de 100644 --- a/sys/sys/jail.h +++ b/sys/sys/jail.h @@ -190,8 +190,7 @@ struct prison { int pr_enforce_statfs; /* (p) statfs permission */ int pr_devfs_rsnum; /* (p) devfs ruleset */ enum prison_state pr_state; /* (q) state in life cycle */ - volatile int pr_exportcnt; /* (r) count of mount exports */ - int pr_spare; + int pr_spare[2]; int pr_osreldate; /* (c) kern.osreldate value */ unsigned long pr_hostid; /* (p) jail hostid */ char pr_name[MAXHOSTNAMELEN]; /* (p) admin jail name */ diff --git a/sys/sys/mount.h b/sys/sys/mount.h index 382be23e37e5..9a69240ddba5 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -222,7 +222,7 @@ struct mount { int mnt_writeopcount; /* (i) write syscalls pending */ struct vfsoptlist *mnt_opt; /* current mount options */ struct vfsoptlist *mnt_optnew; /* new options passed to fs */ - struct ucred *mnt_exjail; /* (i) jail which did exports */ + u_int mnt_pad0; /* was mnt_maxsymlinklen */ struct statfs mnt_stat; /* cache of filesystem stats */ struct ucred *mnt_cred; /* credentials of mounter */ void * mnt_data; /* private data */ @@ -985,9 +985,8 @@ int vfs_setpublicfs /* set publicly exported fs */ (struct mount *, struct netexport *, struct export_args *); void vfs_periodic(struct mount *, int); int vfs_busy(struct mount *, int); -void vfs_exjail_delete(struct prison *); int vfs_export /* process mount export info */ - (struct mount *, struct export_args *, bool); + (struct mount *, struct export_args *); void vfs_free_addrlist(struct netexport *); void vfs_allocate_syncvnode(struct mount *); void vfs_deallocate_syncvnode(struct mount *); From nobody Fri May 19 23:54:20 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNwr339Cz4CX2N; Fri, 19 May 2023 23:54: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNwr2N5Gz3vHs; Fri, 19 May 2023 23:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540460; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZWFHMnQV975+PIloy9xNNoF8FTr8z13GHoKjVs80jj0=; b=T/9VBORvU2QmJ3r/c8lXhY9NcGiDgLeFTTQll3c8c5P6LHzo01eP5XdH5GXsoTHGveEay/ VBKz5fMifGEFebStthnd1Q9um1sVCrRl/h5XOXsxEuFUXiiTUbTD1fPlRBxXUA2tWu5PoI G5TGVbvWRiGPYuuX8r21yI0Y9yNMIpoeDK0GGjtAt9IggEZu53GaImUFZH38r/Plv1e0iy Ge+OLtD61/fl2Ckk8eV74L8f+PzI9oVepFErrAG2LEZg0uYhbedqnbKRix6bZTJdd+dGMY DCmTVdGjfXSptw2Lru0FoqFKhqbpwcfkymbYo/+YjKfDmtIKwH2TsPznUqmzNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540460; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZWFHMnQV975+PIloy9xNNoF8FTr8z13GHoKjVs80jj0=; b=qpiP+nyrgJzJQ+OGiT8+D1K6NFR/FDkdNFORgQrC25mnxuEb0fzfXSBfpyFpD8ErC1jBN6 m5B8ePExRgrxaMooD4/Iz6nQiFJVTs7YUHZA9lcZVssfAgZfNj1z2z2lw8cvS7DzQU3a2A eUxsicu/yaVsTyiQjFQxiWm9UAkBOCKOVnDl0FIWDNrs3L4n+l4ATP/acplfTFpmaDdMfM D05p+/uPhp1I4UC9bzp5BePY/I1r+GyTO3on34PnmRCiuyKWRohzIPwy4xeqDQ2BnNQjKe F8+xFPpB9b8HSHnyUqTajCAak6MCpOWMubaneX2g3gS2hU7ZiwuMyK6K3pFKTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540460; a=rsa-sha256; cv=none; b=dtS5zaydfh/ltEHgyCkfZySNZLAxOXZGmjsUtJZvDi1cYPbbryTv4LKScOoYSSzopyNlHB rwSQDElRpV/NbHi13my/WTkyuUnwgO3OZ6PYAHpkXFibQHBGIq8SWbPF8DjaTtlOLa9yFQ ZfzBJz3MaItJpYdCrYLFF65O89fB/7aQA0/abGEQmwS706xqMDKxHSbcggO/U/fPUaj9Mm TidrdDIejd0ROANp1jcg1NhIOhQz04w69V522H9v1ex9cDwREJ/51faeZ5UCZ9RYhqEz+u Nx9wicXhK8PMUEqnvBi5c5EEs7dZdAD+pR7LPFOOqz1v+Q8S2v9tYsi3aqZ7ZA== 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 4QNNwr1LlxznfH; Fri, 19 May 2023 23:54:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsKOT064702; Fri, 19 May 2023 23:54:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsKM9064701; Fri, 19 May 2023 23:54:20 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:20 GMT Message-Id: <202305192354.34JNsKM9064701@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 7ad0e9f1e696 - stable/13 - Additional output from dumpfs(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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7ad0e9f1e6963e043aad0613255e9e53f84c5c5e Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=7ad0e9f1e6963e043aad0613255e9e53f84c5c5e commit 7ad0e9f1e6963e043aad0613255e9e53f84c5c5e Author: Kirk McKusick AuthorDate: 2023-04-29 18:41:23 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 22:36:31 +0000 Additional output from dumpfs(8). (cherry picked from commit 04997e19e27b240f9fd253f3eb1053708ca99c51) --- sbin/dumpfs/dumpfs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c index 7c43cf4489a8..034dcb5ddf99 100644 --- a/sbin/dumpfs/dumpfs.c +++ b/sbin/dumpfs/dumpfs.c @@ -244,6 +244,8 @@ dumpfs(const char *name, int dosb) default: goto err; } + printf("old_cpg\t%d\tsize_cg\t%jd\tCGSIZE\t%jd\n", + afs.fs_old_cpg, sizeof(struct cg), CGSIZE(&afs)); printf("sblkno\t%d\tcblkno\t%d\tiblkno\t%d\tdblkno\t%d\n", afs.fs_sblkno, afs.fs_cblkno, afs.fs_iblkno, afs.fs_dblkno); printf("cgrotor\t%d\tfmod\t%d\tronly\t%d\tclean\t%d\n", From nobody Fri May 19 23:54:21 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNws5sFJz4CX2P; Fri, 19 May 2023 23:54: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNws3JNJz3txh; Fri, 19 May 2023 23:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540461; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=30mlZpAqRF1/asZxqsIU4N9zxXmCmip2fZveIEhFnLg=; b=FosEyg4e40OWBiVa2c1q/yKrFg1so3SYtgKle5VaHtedjFaFDY2vRzQdSuOZvBONLrT32G JSkRxa1zGETnaDqgt5odqQiWfQsevsQPosxeZG8MJhqmn3UGbJFeCgrSR/t3WKfUvjw8+o OiskWPraN0dveS3B8nJyyTEu6+8TemggIZ+9UYvvJpTxyToPkurN2yDd9QKM6/x4PQt2oN VZO5IRKOnrgHFcOxtF9KKm2xlSWxwakVf+bfpsRzJZEv+n2fdwvZivtELnhUAng5DfItkH IcN3ZfQcQfIkjlaVPE3duy6HAeFil9qD3+fJRjb2WoA7dRwv6/j9OVyxaaL+qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540461; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=30mlZpAqRF1/asZxqsIU4N9zxXmCmip2fZveIEhFnLg=; b=ptidIJNhpBGITmYCqqK6+d4YA5yohK3t/ZsCA4sIUEin4V/3pWjJ2YMMcZuC0LsAx0x8au 8FghB6trV+su7/cEqHSvhbVOn1MtBwdgGIwBkw8x4NEdEzW+oKXB8RtlKluATF6eQbSnK0 HL3ajP5BkyaYRY5VMyB6ItDmk69VuGnVVngOL6UojH50CMEkx9oJ6lAaDTqDbmCk0ZJOX9 hDWSIeMKhQV7MAMlMFCfCwWwMjgTx3tpGUEEHtoKabqTgZOgtcjOkWUyOOJVzTamdVJglk hjPbsC+w8f0C2LgOdWFoy1t/shIG75NOKT8Wceyr0U4j1q3JoSz+qLLpTpsdfg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540461; a=rsa-sha256; cv=none; b=j2+sUifFIJqslZ0inpmV5JD18nnhGTC31SNtJiSFRbfHu+Gs2cxfcpm7POwqunUrjQb7uf dNM+oPi8L79Mh6624aVdmzKayJhPq/S9wKTZrMDNVbs6DuarhHY4e1ptTgv/xDqxRZAexJ fIROzV0/32uin+QRUeCa9GdddOb71xwqpHfVyFPconk9aI24z/V7kM/4pI6nPYl7BkpR95 mRpNtWaidTeizfnz5V2f7BocbJp6yD8N+U2TdcY9adwQnZN67myYUywClge5MbBcDm2Tuj E25NVVEIz255klnKktah6Chf35wbnS6jMuGd/D8yu/ghsCSiCLxZCta+MQTDHw== 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 4QNNws29KcznqP; Fri, 19 May 2023 23:54:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsLlx064723; Fri, 19 May 2023 23:54:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsLlh064722; Fri, 19 May 2023 23:54:21 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:21 GMT Message-Id: <202305192354.34JNsLlh064722@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 4921003d448e - stable/13 - Fix printf format conflict List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4921003d448edfec819def5022026367dfe1564c Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=4921003d448edfec819def5022026367dfe1564c commit 4921003d448edfec819def5022026367dfe1564c Author: Kirk McKusick AuthorDate: 2023-04-30 00:55:15 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 22:37:40 +0000 Fix printf format conflict (cherry picked from commit 6995e6b3237e9be9ae6f68af13edd3db4b668ab8) --- sbin/dumpfs/dumpfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c index 034dcb5ddf99..d521b806af40 100644 --- a/sbin/dumpfs/dumpfs.c +++ b/sbin/dumpfs/dumpfs.c @@ -244,7 +244,7 @@ dumpfs(const char *name, int dosb) default: goto err; } - printf("old_cpg\t%d\tsize_cg\t%jd\tCGSIZE\t%jd\n", + printf("old_cpg\t%d\tsize_cg\t%d\tCGSIZE\t%d\n", afs.fs_old_cpg, sizeof(struct cg), CGSIZE(&afs)); printf("sblkno\t%d\tcblkno\t%d\tiblkno\t%d\tdblkno\t%d\n", afs.fs_sblkno, afs.fs_cblkno, afs.fs_iblkno, afs.fs_dblkno); From nobody Fri May 19 23:54:22 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNwt4TY0z4CWtQ; Fri, 19 May 2023 23:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNwt4078z3vJN; Fri, 19 May 2023 23:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hd5EE60iMhgCJpztTHWYPhvoCYbolN2LQl2itjvT8/0=; b=GoFcP3jgYCvygZwkD+2n2FbtP8UUWHbIzdhp2sHKCsVBx9C4nuA8mdwVwtfYkNTV+MGwPi X2MoEa148ujRhkCIO/4gyMT2BqoFMx1hlb+SkWDyrC+Xikiyvdqy2I+CPkD8n1RTzbXWj1 ojWIkAutVyG42W7Mp3KEInOwhuSPIi3gtlTNFeHXfheQpLjmlxA1DTrSSTnv9uDGd76MGS Oftjoc7eHQ/uWyKuxjHV3xIU3wppWKlK716YE0+k1QcvODna/WNMTih+LQOX738MOlQsmX i3nZbV84M2pACMwZNFLyLIxd5kW8NXQD3dncGdi7+goFfSZmhPQ5j0S7Z1ys3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hd5EE60iMhgCJpztTHWYPhvoCYbolN2LQl2itjvT8/0=; b=RiMqzmx2D1BdX92/Jo54bIqpYGMcO3BuThDTtfPF4KesMT7gUO93QlOg74hU3CurWgjZNt 7Fw5zyyg+kx64ikLKeN0Z6rMOzdNScXN5rBHqF91vgDDmr1zsgAt+v3V0gVmiqEpCXOLud AAKXRuJ063O0a0RcFiLBb12xnBGnslCgqwO12fCku0gTYasXbBgnxQRAudkkl25HsQ36ej i5+55qDrAbqlCdn+N7ag0HraO0RqqsdM0vbA5/g143K2I12YsFM7n1of6tkWKKBEUsPJR6 ggAy+3DYYdmTNDTKaZ6dMk6Y3UsICfR26PVLoBuGvzBSNpiVO95FqS9hqzagOg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540462; a=rsa-sha256; cv=none; b=fqs08kX645Am7hmxU5UvQfVENErO1url5roSIsunSALffRRyFo3U2Pv0ODH6QOoDA/5hky XYbJGninaWi67/V/Hwm84r4KkffQFuvj5+v2jOFTJZNZ55rvSBNhLxpVawbNPNeLqC+5IY djkeAkznA/l1UepzJbwcNDNOENWycJkOB9MkBr2j/CgteR4r2j1gU2siRVdpnAmhRo3rEf NLr3TW+6B7QBQYgFYdvdIzp8hIKxbO6wmCHRKJe/s6QXvCsiynSEJ4Tvzpz14K04MUpFN9 O8EdyIHAhkuXNGQZ01I4DrOtIkFIz6hQkuK48VaSWBfwPpTpz+M9yS092LOWbQ== 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 4QNNwt3524znPl; Fri, 19 May 2023 23:54:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsMBO064743; Fri, 19 May 2023 23:54:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsMpr064742; Fri, 19 May 2023 23:54:22 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:22 GMT Message-Id: <202305192354.34JNsMpr064742@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: a6916c2bd084 - stable/13 - Yet another try to fix printf format conflict. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a6916c2bd084ebfd13f41eadd7946ab34549f1c0 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=a6916c2bd084ebfd13f41eadd7946ab34549f1c0 commit a6916c2bd084ebfd13f41eadd7946ab34549f1c0 Author: Kirk McKusick AuthorDate: 2023-04-30 06:59:45 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 22:42:12 +0000 Yet another try to fix printf format conflict. (cherry picked from commit 2e7797cd9bba4fa82391b53a7dd7aac074baf716) --- sbin/dumpfs/dumpfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c index d521b806af40..f93047b8803f 100644 --- a/sbin/dumpfs/dumpfs.c +++ b/sbin/dumpfs/dumpfs.c @@ -244,7 +244,7 @@ dumpfs(const char *name, int dosb) default: goto err; } - printf("old_cpg\t%d\tsize_cg\t%d\tCGSIZE\t%d\n", + printf("old_cpg\t%d\tsize_cg\t%zu\tCGSIZE\t%zu\n", afs.fs_old_cpg, sizeof(struct cg), CGSIZE(&afs)); printf("sblkno\t%d\tcblkno\t%d\tiblkno\t%d\tdblkno\t%d\n", afs.fs_sblkno, afs.fs_cblkno, afs.fs_iblkno, afs.fs_dblkno); From nobody Fri May 19 23:54:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNwv5VPjz4CWtR; Fri, 19 May 2023 23:54: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNwv4w5mz3v25; Fri, 19 May 2023 23:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540463; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tiTSLKIZLo8IWoOiHodQq7RyO6ByM8+GbngFfQlaEFw=; b=Mdr8LHLKFXQQKwskEtN+Szaq6aJJ/c49OVrMiXY4tGtsfiZ8iaZXDA7XGLTqMaer6iJ0QZ +c0VumooIwEFH4j3RSecD9SB3Bac2D9ZeuiL/fkoSpA7c+aB1auv8ozQcggdPK+8VTVGJ9 /oIeiR766b4plTq15uSTSUYI22zBa3cBsH3A3v7pG3wC8MwLGKso8DghO2ro0y2Hkib1iG xwkIrClog65xjVaUFVhj1e5oV+cx+Le5+rm6RafEJ3/ToypfBTCoa07cz3kVJI5nwfjTLk TXopiq4edUArdi7ekM1mErHgm2KF4Fl9E+uU+VLmGJ/8ejtNxMnmOgw4kcoQww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540463; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tiTSLKIZLo8IWoOiHodQq7RyO6ByM8+GbngFfQlaEFw=; b=j5RHsLfkl2/2RGn0dWFjVC46fuRqa1J1Mfng+UqjdgFXHV/XGjfg9bLx8gJWzIJeVwl97S k27i8vj0MDnkMMaKF6+hDaheDz/G51u04AiXdLFKBFeklu/YqZ0Y6UWjWBj94veWJ2ChCS l9Xvxd7++dO5T5DRQLSVZ1bXkhIq5jpcFoZOL6aRq+DkWODWW+c4ySAVOOLjXvtWHACj2F dqbrndZZjedOQxbKCLiAdXAIBLf7xvA3aZemBJxHRnN4PgNS+9MOzfLTx9T8a/naOUQfsc 05IwQ1SPs9nZRY6xba7BsbZX7e+OTVUhPIi6EH8OxWY5dBQ77ppMqvIDlxM3ZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540463; a=rsa-sha256; cv=none; b=f3UtgQ+8ApDl80GOWQ3KBtMAlYdkoIPdfcQ1/gKVjNTf1lxLHFgqg4ISMtDbcV+atKq76A biPr8YFV9qPCg2e8LC9rSakjZqWe71fwRmEMACG6ywqKZHFIIyFQS80bNvr7Cg6gqxANIw nZ/WZ42z158D9xriKIn6sFVhjbLo8Wkr0YUxXIUAvgdxq3aoBtcXnRrG0mjSbVXYrn2Tja PlmyG/9O7l73b+6PO2QzUzDQbY7uNUdLqbzHQPJK/6lAZ77aZvaBJ3pp5u0oZhJzhbQ7n4 DXDNFEiKKVnvRPsAb4fgIIXWo7t8PhGh15I2udKg/72I5iDePpYtHB93/ZDuMA== 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 4QNNwv40P5znTj; Fri, 19 May 2023 23:54:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsNMs064770; Fri, 19 May 2023 23:54:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsNlP064769; Fri, 19 May 2023 23:54:23 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:23 GMT Message-Id: <202305192354.34JNsNlP064769@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 0fc13be84735 - stable/13 - Additional validity checking in newfs(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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0fc13be8473505e98e9103467fe363db627051e1 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=0fc13be8473505e98e9103467fe363db627051e1 commit 0fc13be8473505e98e9103467fe363db627051e1 Author: Kirk McKusick AuthorDate: 2023-04-29 19:49:50 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 22:43:37 +0000 Additional validity checking in newfs(8). (cherry picked from commit 62dc21b10731bdba26dafeb51640c2048a3344a0) --- sbin/newfs/mkfs.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sbin/newfs/mkfs.c b/sbin/newfs/mkfs.c index 3d19fc88fd79..fa00445baea8 100644 --- a/sbin/newfs/mkfs.c +++ b/sbin/newfs/mkfs.c @@ -332,6 +332,7 @@ restart: * can put into each cylinder group. If this is too big, we reduce * the density until it fits. */ +retry: maxinum = (((int64_t)(1)) << 32) - INOPB(&sblock); minfragsperinode = 1 + fssize / maxinum; if (density == 0) { @@ -663,6 +664,21 @@ restart: pp->p_frag = sblock.fs_frag; pp->p_cpg = sblock.fs_fpg; } + /* + * This should NOT happen. If it does complain loudly and + * take evasive action. + */ + if ((int32_t)CGSIZE(&sblock) > sblock.fs_bsize) { + printf("INTERNAL ERROR: ipg %d, fpg %d, contigsumsize %d, ", + sblock.fs_ipg, sblock.fs_fpg, sblock.fs_contigsumsize); + printf("old_cpg %d, size_cg %jd, CGSIZE %jd\n", + sblock.fs_old_cpg, sizeof(struct cg), CGSIZE(&sblock)); + printf("Please file a FreeBSD bug report and include this " + "output\n"); + maxblkspercg = fragstoblks(&sblock, sblock.fs_fpg) - 1; + density = 0; + goto retry; + } } /* From nobody Fri May 19 23:54:24 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNww6BHQz4CX8p; Fri, 19 May 2023 23:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNww5YRpz3vg0; Fri, 19 May 2023 23:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IiKDEkSV26Dnc7Fg4xPeYqOgW4EjAb2lsUDFOcT6CKk=; b=xJ3U/I3Q7RhtriTyfRZI1sbdf37EdjKbPLquHQcwM0kFhIKR0k3XzCpwiHszYdHqelaT4w 7dn4uEYs3CoMeBzLBvQ9mzMBLUaazRLk2oW9IeUINRfnp7366bglsDjtLIzrgNpo4Uhnw+ CDuvZat19dY0OOdO22oSdFu1fhVqmE3z8D3d3JRi8rrqpM9OBC5yTuBU/EUftHP2fw0jz7 OtCJeyIBd8o10Spnrg+4iZsR2D1rBAfZjBK/o72mD148MLfx5wQmX8YUrCUvkfpYEa0R3a vLc9BEASR6n1vF2PJYTEk/gcGGl/YKF+7xuNS1wP23pLtdradMEfwghA4IsDuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540464; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IiKDEkSV26Dnc7Fg4xPeYqOgW4EjAb2lsUDFOcT6CKk=; b=S7c8uFpBTC3sC9IQZJcPEGHl2BAz2yoqEGIls0Cp8ZCj+X2sW3Qiwt2ZkaJ9PCevGvQyFE 7vKrfOYUNi9rPZjJttePbbF5E1NvSuensDNwML+4KqF4HXR/OGsAAlnoojpa8OwV8M8DNs z31K4E7LpQ71l9hiiCAFeCkmbbnVPuKdIQ75CR1G9ovm5o9SeRGLM8cdpbIim8wFFGxMCX 8VZTUGq/rQ0avhCnpMiSuYMVeFHWxo7Ek61+pKVOMx/HVDlG1QhJcRMYLe7CRj/4hTMhLi 2x8qJiAtlYIovguP7YJrkOhA2D3AKLRXYPvz9qPaH7kh6RL26PNXhOkNr0pSmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540464; a=rsa-sha256; cv=none; b=bkuCgnznduqvUKAbfUF6JjXcB7v0Pr0JB50uZJZybN6ineZwVtpBUjPbfrmwKgb+/VUSPx OfcA8kyN3zFtToKy/CM/TUoJZtfAtC72mruqsnmX8O9n/g3f8/VKwZL0QmKlwcHFQ9T9fo 3PmTr/G5acpD9RKI1Th9fX88ESWTZOFB+4GlD3Z8leHqLm2ginYeMWSgjmXlU1Lxf2Ml7H 4T1XVqXt87bGeqU6ePdnmxv9S+EnyjsLoNk784dH1ajKXe5mTxDuvKskpWTrGVEqru/SCY 9cPuliQikIJy4UNNmeW9XtLhIar+aWB+epOSX3ZgETHvL14G0VsjafqFdThhGg== 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 4QNNww4cs0znqQ; Fri, 19 May 2023 23:54:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsOsC064789; Fri, 19 May 2023 23:54:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsOH6064788; Fri, 19 May 2023 23:54:24 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:24 GMT Message-Id: <202305192354.34JNsOH6064788@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 5188186cd4dd - stable/13 - newfs: fix up 32-bit compile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 5188186cd4ddcdb1c15da31b12c6b26eeb683c1d Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=5188186cd4ddcdb1c15da31b12c6b26eeb683c1d commit 5188186cd4ddcdb1c15da31b12c6b26eeb683c1d Author: Mateusz Guzik AuthorDate: 2023-04-30 18:00:20 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 22:44:49 +0000 newfs: fix up 32-bit compile (cherry picked from commit a50ef47c0a22ca87cdbe669acbcbf999c72b8439) --- sbin/newfs/mkfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/newfs/mkfs.c b/sbin/newfs/mkfs.c index fa00445baea8..1efada0dad17 100644 --- a/sbin/newfs/mkfs.c +++ b/sbin/newfs/mkfs.c @@ -671,7 +671,7 @@ retry: if ((int32_t)CGSIZE(&sblock) > sblock.fs_bsize) { printf("INTERNAL ERROR: ipg %d, fpg %d, contigsumsize %d, ", sblock.fs_ipg, sblock.fs_fpg, sblock.fs_contigsumsize); - printf("old_cpg %d, size_cg %jd, CGSIZE %jd\n", + printf("old_cpg %d, size_cg %zu, CGSIZE %zu\n", sblock.fs_old_cpg, sizeof(struct cg), CGSIZE(&sblock)); printf("Please file a FreeBSD bug report and include this " "output\n"); From nobody Fri May 19 23:54:25 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNwy2sVYz4CX8v; Fri, 19 May 2023 23:54:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNwx6S6Wz3vm2; Fri, 19 May 2023 23:54:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9WLbC/RNSSZPfHqx2Wg1jHd2Ui8h5PeGpc2g68UCO3o=; b=DjoAy54CmcYNPmrWWtIhMwsq/HtLxyQZ9U+oIpPK6ERD9NMfGalR3XRbFKFSpSHQrbDRWz EAGq934gqiW1UMrXFeAe0wZIejn79k9pgBRBmE6yGBiS88Hem4LfrPiiYpKfiA0e9oYME7 ETO+2DfRt7mW9yk1y/QjY4H2Z892PyIa9yobN/tVfylXWoDmOfaEAoXyq44WSRg4I3VyG8 aBiY3lEuExD6l1ICdHDFsZQ9jeds8DOUeakyk8B1X41GxPQqaOH7s2qdHgJmeOdNHjdarr t2D4DKC9H+cWTug3RREOEx3fMV/nt62V4JSazWJU79SEeb1AwoWZzlKky+Oe7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540465; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9WLbC/RNSSZPfHqx2Wg1jHd2Ui8h5PeGpc2g68UCO3o=; b=Iiomk+U0StM8TV32+iJOcGXq+OFNIQUcN/+NNem2XqFRo0Td/YoSu8CxoRqqvUPOSfZYNl adh9Lc3Pqzx7fA/aNthzFUikYnmdocCMU3rj57X2k0IAjUeV1GkpXnPGsN1ccTXLcOe8pD Ddojlsd2lBgiFWkChz+JBkpw+wG5PF0SzUUvv5klYmd0AZFsTFsM/l3vjtBgLbCw96uOyD cU6XrWtQfAIJJOvqQ2nU671xeKWdOAACFdnQoknAVhK+aLeng513uKPMGmVxyLhMFIKIzk fJW7t6ycqJYF2/LnFXhWvxIpsG0LPfMzgCo3Ay6jrQS5U0IQhfxf5CtovXlE0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540465; a=rsa-sha256; cv=none; b=joS5MyUSBvQ7wgmNhFjZFIBAU8YF3hJUKMGBxWCQIyXnm//B4C2cUUnjgPI/4IcZxLIfWU KXaJgXnD7fZJOgj2DrbDiRDEg+Z+wFHydvRDfYhlcUnJmUhLTuWe7K2lyZjgPBzf3F0/ah FDGH7z0aP/UXE2zA88+xXByQ16DydGiwkXuV6sOqb8jMj+YG+i6R6DH0FkU4hT8yd5gg3P 9PaylBgSzODGp0YwboLKCZ16LEt6Iw+F5vtOy70ecr8/qVjglNrmYPciIkWneVPp+uhxRx ApjDObzBVZ3iqeR+C2m9E9neBHGBlGdjMwM5xFG8rIxW5qCJJ2EtD6WTcr7SQQ== 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 4QNNwx5Z9JznCh; Fri, 19 May 2023 23:54:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsPhi064808; Fri, 19 May 2023 23:54:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsPHd064807; Fri, 19 May 2023 23:54:25 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:25 GMT Message-Id: <202305192354.34JNsPHd064807@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: eefbecaab1b1 - stable/13 - Updates to UFS/FFS superblock integrity checks when reading a superblock. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: eefbecaab1b10c5a587bf1292e585ef480f81d71 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=eefbecaab1b10c5a587bf1292e585ef480f81d71 commit eefbecaab1b10c5a587bf1292e585ef480f81d71 Author: Kirk McKusick AuthorDate: 2023-04-29 18:52:27 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 22:51:27 +0000 Updates to UFS/FFS superblock integrity checks when reading a superblock. (cherry picked from commit a2d1957bbcc87b499526df8d99ec7e1ddd2193c0) --- sys/ufs/ffs/ffs_subr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/ufs/ffs/ffs_subr.c b/sys/ufs/ffs/ffs_subr.c index d847373a8cde..1bd298315dd9 100644 --- a/sys/ufs/ffs/ffs_subr.c +++ b/sys/ufs/ffs/ffs_subr.c @@ -432,6 +432,9 @@ validate_sblock(struct fs *fs, int isaltsblk) %jd); CHK(fs->fs_sbsize, >, SBLOCKSIZE, %jd); CHK(fs->fs_sbsize, <, (unsigned)sizeof(struct fs), %jd); + /* fix for misconfigured filesystems */ + if (fs->fs_maxbsize == 0) + fs->fs_maxbsize = fs->fs_bsize; CHK(fs->fs_maxbsize, <, fs->fs_bsize, %jd); CHK(powerof2(fs->fs_maxbsize), ==, 0, %jd); CHK(fs->fs_maxbsize, >, FS_MAXCONTIG * fs->fs_bsize, %jd); From nobody Fri May 19 23:54:26 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QNNwz20hmz4CX0C; Fri, 19 May 2023 23:54:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QNNwz0Gcwz3vSZ; Fri, 19 May 2023 23:54:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ecJa1nLrlDj3iC9/aIDXaBVvs06LehMgQXBLme2MGt4=; b=Osbd6Eh8eJ4h7sAfCI1DRc7BSV6QTgRIgsL9NppsXaKqkVl1QgGs0YIS7QlrAEH4X3k552 rNgOh5qrS1n1NZ6ftWYUx65KkcTNGoi1UMPvQGNK++3XrZbxpw9T8jf1TdbmC3duoyQnvw aUgXSJjPW1F1jfznt6LzoJsC7VnLG7sx0aPDYfXxrXAK9Qbz2beWjcnSM+oEgqvbOT3MCX Imd/6DwYDOYhQ1WVf9cjL2Tcp9hnS7r93yoL2MC2gKMBMEWq5QvJtJBuq0rnrUdoMYth/p wzVpewUuR2/UtoSZMxpdK7LVSBAoa6Ywfuj29EJjBjCBpF2rK3YwJG7+ATdEzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684540467; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ecJa1nLrlDj3iC9/aIDXaBVvs06LehMgQXBLme2MGt4=; b=PiU2veapcN3nO3ZfPYkgJCA9dePMfRAZKjoIQ2o+5Dq7Vh2L4YY914uVAg26gBK4/aWCdE EbJVyL0rM2xKu6FDopEG5Cal8NGSddAsWM7Lzzwr3Py6uCCH0lkD4Nsnb0MZ8RsgGR8u4f G6AuFuMUdTSxok4GkyV8J2F3QlSdNTNH2hQ3q2CIw/OerbSEiJZNLrpjuUfC05sNE15lfW ywDoyyU/1yo+8Aa88LuV9ksuFz8+GHpekAXPWjEdyL+0IjM5eDDojUbZE6azJ/h31yZo0q kMCiTNEsZTlV5c4pm79GBmFS2pya66ZV6OMX0gM5Fp6cFi9QTJuxv7f9NYgD0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684540467; a=rsa-sha256; cv=none; b=EjBpyuhvTHzVhQsjUUrhT/bcSsLFvk4NUNXWbPurDtlwbGfiynYWCMKF3iEba7qhooQrVj uGB0vM3Of0BDiiBxTQIMpaeO7pLJyNpjyIfHyFDqgn22Lda85rCdWUQo9/kDfi2WtowHKG SDe5XPiN8IPiFcnEVFVQA5qPYq9AE1fwACASR8PWlxO9Lw5yPgOOClHSMgvc3L1vLqwUlB +3EYZyE2ipWNyiBk5+ueCZAxQlGhqmdMu1LIIZ1KuWeFb/RcttVpMczN3FQFGzA2xnYSDm +ds7UQ4TGPiQrepQye2iDCBu+LYzCwsH38374TOC4oz0OgKX8NCmZOR7IHe1Ag== 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 4QNNwy6V9CznPm; Fri, 19 May 2023 23:54:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34JNsQ01064830; Fri, 19 May 2023 23:54:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34JNsQb3064829; Fri, 19 May 2023 23:54:26 GMT (envelope-from git) Date: Fri, 19 May 2023 23:54:26 GMT Message-Id: <202305192354.34JNsQb3064829@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: 8e0b31c791cf - stable/13 - Fix off-by-one error in fsck_ffs(8) chkrange() block-number check. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8e0b31c791cf1da6d9fda3da9999e66a5e162230 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=8e0b31c791cf1da6d9fda3da9999e66a5e162230 commit 8e0b31c791cf1da6d9fda3da9999e66a5e162230 Author: Kirk McKusick AuthorDate: 2023-05-09 20:08:10 +0000 Commit: Kirk McKusick CommitDate: 2023-05-19 23:02:21 +0000 Fix off-by-one error in fsck_ffs(8) chkrange() block-number check. PR: 271289 (cherry picked from commit b3fe5d932264445cbf9a1c4eab01afb6179b499b) --- sbin/fsck_ffs/inode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/fsck_ffs/inode.c b/sbin/fsck_ffs/inode.c index 04891447254e..00a60157138c 100644 --- a/sbin/fsck_ffs/inode.c +++ b/sbin/fsck_ffs/inode.c @@ -381,8 +381,8 @@ chkrange(ufs2_daddr_t blk, int cnt) { int c; - if (cnt <= 0 || blk <= 0 || blk > maxfsblock || - cnt - 1 > maxfsblock - blk) { + if (cnt <= 0 || blk <= 0 || blk >= maxfsblock || + cnt > maxfsblock - blk) { if (debug) printf("out of range: blk %ld, offset %i, size %d\n", (long)blk, (int)fragnum(&sblock, blk), cnt);