From nobody Mon Apr 28 03:45:41 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zm8VZ1bPxz5tmKt; Mon, 28 Apr 2025 03:45: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zm8VZ01w9z3pdp; Mon, 28 Apr 2025 03:45:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745811942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QlDFfvuDC+gRkWyd5BKxLeJ2Q9mWZz1JzW/Ea6hVKN4=; b=SLcuz4gaAOn11TKyUNmp3+nFO7EZw7kpREdhVKfkyYHLwTMu4PtLmktw4Rwm8u36KRFXYZ Q0vGmKG2KriL4l3+QZTazIguLTMdhxPSq6+ziTHgEKJumlikFwuH+c092JOadGqK/6PSN9 MZUfFYC8XgaHx4HnmZ9Lpoy50pLrig1f42y7kMudCyCjh5jQ0UswIltD8a5uebDaVNFdtE CEbu8RlGgf8XAEJEZFI/DJ8EfTy+UJyV3tc630Rg6pbQGL5UMt+qqcRSsS0vC0d2jKF42C Bs2KhCT5vEw33/W91H670rBuNxbRQACaGKtsmvxOpDmUbUV2ots10FZ8dKInyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745811942; a=rsa-sha256; cv=none; b=MP5zxhQrL6EzmnhL9d0FxTSxIVWijcVy35LIJ++62/9cELbv6lX2gDGOsxNa3pttoluGKa EJgVcJvZnPu3OZPVS4e2Sq7ND7REAwZH672s+20hiSnLZ27IkmqfCQlMDPtPEU9b4CaIJZ MGG8D1GMU8Q8GanlFm7ScW+HgX5Sri0SWGOFwbb8PetWOQI1lHTntPwCY12OjGarDzrlVV jh1kjxBbWnQxhaX62f6JvTcTe4muOMvRyuRkfkTU/WowlaqpToDpMt9fIEafQp4e3ASdIB OzAZapl+C1n7XZ7yKQylpifVa97qM2coV8wltFBOAR93ykOXs/LKrDu27Udreg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745811942; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QlDFfvuDC+gRkWyd5BKxLeJ2Q9mWZz1JzW/Ea6hVKN4=; b=I5wyRhghgpkHtBRw1rJowim9gZ6LdyTLf7d8fEdINKfIh5rquqosTH5ljGp4trjnhEdNZ8 PNKI4EUUTK2v1E5R/7DB8wdqJj/CxCv3jIqGl3bcRJnSfifppUWzQAe/6nNEurUayXbY76 oLJgIzQ7sm7I+IOH3o9K22CetCtUuNJQy3C29Cqbg1COt228wO2/NgLzm/hzkFnaO1M4Z3 xBFd+SpJbHcO3tZk6KOpDMOjRSXlQuKfxGcesIJqCgT50lp09IZXiYPDpS4Ol1b8XQKxIA HjMLeP4seguMAqfHrmMx+QS74MPWMpo9NrhRu5mtDl2UbaP1E4F5X5fxksHc+w== 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 4Zm8VY6kH3z3nP; Mon, 28 Apr 2025 03:45:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53S3jf6D052779; Mon, 28 Apr 2025 03:45:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3jfKH052777; Mon, 28 Apr 2025 03:45:41 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:45:41 GMT Message-Id: <202504280345.53S3jfKH052777@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: 806e2accc313 - stable/14 - loader: actually change the staging slop List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 806e2accc313b057f2d4cd8197cea412e0238206 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=806e2accc313b057f2d4cd8197cea412e0238206 commit 806e2accc313b057f2d4cd8197cea412e0238206 Author: Ahmad Khalifa AuthorDate: 2024-08-12 09:57:38 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:43:30 +0000 loader: actually change the staging slop Reviewed by: imp, kib Pull Request: https://github.com/freebsd/freebsd-src/pull/1381 (cherry picked from commit c10511375252e53d6c9fe47f97e254f1380a89c5) --- stand/efi/loader/copy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/stand/efi/loader/copy.c b/stand/efi/loader/copy.c index d34acea4e876..e5c950d75f37 100644 --- a/stand/efi/loader/copy.c +++ b/stand/efi/loader/copy.c @@ -268,7 +268,9 @@ command_staging_slop(int argc, char *argv[]) res = CMD_ERROR; } if (res == CMD_OK && staging_slop != new) { + staging_slop = new; printf("changed slop, unloading kernel\n"); + unload(); efi_copy_free(); efi_copy_init(); From nobody Mon Apr 28 03:45:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zm8Vb50jBz5tmKv; Mon, 28 Apr 2025 03:45: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zm8Vb2Nh4z3pjr; Mon, 28 Apr 2025 03:45:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745811943; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DVntLR4eEkdEEz9fYbe55lE0XDo109U1h4pJrGTiw38=; b=CFKFSe8rRTMTBQm9LSTfT3pN8B3Q4o+870ypzqvRkYOb/vgZUgA/05Bsn8NXqbTzfsLJg8 ZaUq8pMQBVgWMXJrwgagjyAj9+JjJn/UJVdLTqmWaMbQD6WQS3lLGLDGL/s1LANQ8FZPly +Sm4Enhv+ezab/c76miHhBk6NbujyutrarKp07rzRhjvMe/IgbvrUqpElJf+w22COjO9zb s/oMIKwP9MjMAQ7tYY0ZWb0esTmw127pqMATlGYocLKwIswCUQoCMYnLaWu2RGgCKsodvm GEUY8i/pagS8r99h0v39lObasEN0o1k1/LpTDLWYCdokyQ/h5JF2vu/63Ccdkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745811943; a=rsa-sha256; cv=none; b=jTWC10EEWiLZD7DNQyvYh6oU7+I9X5/dl99ivb2VU0N7gSF1awGwK1hfgDOT7Pl0SbciGD q+eqneGiI7bfz+Af6GHNaHOFjP95idSnQwJe2wUBVp4phb930hyh2d+BLib2ccMQK9qhUN GYeuPacoFl1X68yiwyb6DV3CAWCSKeHNGqlyS4aZFno/e8j86zyD9q8e3H30154hRqfFrQ 282BbjmmyQYBHlUrYUqPuGFTrN7+Ibic9hhxMuA65/v7TkPduFfQnJBRe/ZpG10xQviQHJ DaPybUVwk3SVbAStiYj7EW1pvu1Egsj6gqSDs4aKFePwUQWgvke10lJ3z0gIdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745811943; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DVntLR4eEkdEEz9fYbe55lE0XDo109U1h4pJrGTiw38=; b=xLFtSu+iMSy05fUNF5hSaNjOWI4EEC6g23TQhijkooCRPLI91wMg/qWNbIce3Fm7HTyYL5 QTphOpgKLo0e57NOb+Yfc9/tD4n/83/ueEtbiC1ipG869/OAu/HI33YgpqzK4xYR3Km0dT 1bNyYYbgL3kyBgcU7c/GAY7Fcgc9SWRAewBZq0M69a5Vf6VmAPzruZ3BE/F4xFgZQvvw6X HtdtvMwIbJmUNbXUfz/c7KNXQo4/Nkn5E9cy1m4li/KeqzzFeyQLWDypAqKezIoEjzk4is xV6cGvh5IvQYgDA4JdYjbOSW7dBIFPsgiYQEi8iJj9jfWgd/a7YZs9MUO6bRMA== 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 4Zm8Vb0Z9wz3D3; Mon, 28 Apr 2025 03:45:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53S3jgPK052812; Mon, 28 Apr 2025 03:45:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3jgYD052809; Mon, 28 Apr 2025 03:45:42 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:45:42 GMT Message-Id: <202504280345.53S3jgYD052809@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: 8ec2792258bd - stable/14 - loader: remove unneeded variable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 8ec2792258bdab415a4fde4d118c88bf8477a907 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=8ec2792258bdab415a4fde4d118c88bf8477a907 commit 8ec2792258bdab415a4fde4d118c88bf8477a907 Author: Ahmad Khalifa AuthorDate: 2024-08-12 10:01:07 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:43:31 +0000 loader: remove unneeded variable Reviewed by: imp, kib Pull Request: https://github.com/freebsd/freebsd-src/pull/1381 (cherry picked from commit a698c15a41afca19f87e11d4f8ce5664f992673b) --- stand/efi/loader/copy.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/stand/efi/loader/copy.c b/stand/efi/loader/copy.c index e5c950d75f37..3e466e875af8 100644 --- a/stand/efi/loader/copy.c +++ b/stand/efi/loader/copy.c @@ -220,11 +220,10 @@ command_copy_staging(int argc, char *argv[]) [COPY_STAGING_DISABLE] = "disable", [COPY_STAGING_AUTO] = "auto", }; - int prev, res; + int prev; - res = CMD_OK; if (argc > 2) { - res = CMD_ERROR; + return (CMD_ERROR); } else if (argc == 2) { prev = copy_staging; if (strcmp(argv[1], "enable") == 0) @@ -235,9 +234,9 @@ command_copy_staging(int argc, char *argv[]) copy_staging = COPY_STAGING_AUTO; else { printf("usage: copy_staging enable|disable|auto\n"); - res = CMD_ERROR; + return (CMD_ERROR); } - if (res == CMD_OK && prev != copy_staging) { + if (prev != copy_staging) { printf("changed copy_staging, unloading kernel\n"); unload(); efi_copy_free(); @@ -246,7 +245,7 @@ command_copy_staging(int argc, char *argv[]) } else { printf("copy staging: %s\n", mode[copy_staging]); } - return (res); + return (CMD_OK); } COMMAND_SET(copy_staging, "copy_staging", "copy staging", command_copy_staging); #endif @@ -256,18 +255,16 @@ command_staging_slop(int argc, char *argv[]) { char *endp; u_long new, prev; - int res; - res = CMD_OK; if (argc > 2) { - res = CMD_ERROR; + return (CMD_ERROR); } else if (argc == 2) { new = strtoul(argv[1], &endp, 0); if (*endp != '\0') { printf("invalid slop value\n"); - res = CMD_ERROR; + return (CMD_ERROR); } - if (res == CMD_OK && staging_slop != new) { + if (staging_slop != new) { staging_slop = new; printf("changed slop, unloading kernel\n"); @@ -278,7 +275,7 @@ command_staging_slop(int argc, char *argv[]) } else { printf("staging slop %#lx\n", staging_slop); } - return (res); + return (CMD_OK); } COMMAND_SET(staging_slop, "staging_slop", "set staging slop", command_staging_slop); From nobody Mon Apr 28 03:45:44 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zm8Vc4P7Gz5tm02; Mon, 28 Apr 2025 03:45:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zm8Vc1sm2z3pgl; Mon, 28 Apr 2025 03:45:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745811944; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U/YQW3aAgssBVcKbWqy6Wnsq4ctEaqOGX6eFSDsRgcU=; b=wXG9ytgkDPDU9GdCGRx1ZkPg086mwBxjw2MOaQv+NJc6qjfhha3SfeoCRV1BNId+r28NdD QBRV3dfL2HbYYiIz6UrIowMaRSkd8zfoDv+TDFJzZ2iK2MaeJN4goDgoJt56dtIYwyyQ7E EBimadzCMLK/gj3AIDJMlF/ueuM08Gf+LBD/HA6sRj9iFYVdYfFWMnNR5NApfSJPuaQt82 5kkFuaJ2mD6IMkdJUMxrnKYdntriaQxlFIrxpMUXbpLCduApOoGw7Lees5kTra+H3ygXLT xBbV1nlsgOYkvpram0lKPvgt7Um6XDILdnfcqebcZgQtY5Eczj1plaqmkwm9gQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745811944; a=rsa-sha256; cv=none; b=OFnMLGJP9BQqCKlHRjAEDCfV5svFMe+H/vPYTwXMRCpGP7b/W+w4M430lPu7r+JtILXBEG tw/CbUnonDsyrBApbbDE1pr99uvhCrIO342E6Y9WvcO4WRaOeKupi8uWmaIYW33JsVXbCS UWPbZSMNhGxnynsL9/A1mjPD5IUrUsxDiCcKgOar/7DzeY1PoVQN+67tM/ZxzMJiGUT4hj MDXZKrxTRP1fY6IfFz8lbzKc7f4PVZK5OXEYQWIuQMSFGoknKuOQRHfVjQJvxlAt2U/2eN +ej3+MaaWe0b5/hDpkq/CsSWTXHkSP+hA20mMMu2HdQouSCCQrfuYkGvO7NtMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745811944; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=U/YQW3aAgssBVcKbWqy6Wnsq4ctEaqOGX6eFSDsRgcU=; b=udTDlE1nFyiQ+Q4p2tLY1m+EbV7fibTryElpetsrLhVE0k1sMLYQZGBDyCBhXgPGuSjYdS j/b3ja2JnKAmKREnc5hgLdTBlw0Ui9RuwMwXG8q2fWSzhuhPfYZ0A0P1l+lYT38mzg6vRv MwK1P6sCPSWSd+K2FA7mG69EtWWPpw/WO2MNIyvaSrwm0Vn1m2A9Cj403auL2J5AeYktSQ jbf1gYr767vgAq+EDV0wZaU6JtkUum29pWaYP9XAtujl0Za7lMSF0WaGonX4YNcjp/iIbx eDuKAAX4MQusxocjPDTG8sl4rxZeu6Ki+4n3qVcqjdyhdv5uvcZLniaSBMFLZg== 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 4Zm8Vc1HdYz3nQ; Mon, 28 Apr 2025 03:45:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53S3jit6052845; Mon, 28 Apr 2025 03:45:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S3jian052842; Mon, 28 Apr 2025 03:45:44 GMT (envelope-from git) Date: Mon, 28 Apr 2025 03:45:44 GMT Message-Id: <202504280345.53S3jian052842@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: 1d111b39e547 - stable/14 - loader: provide error message in command_errmsg instead of printing List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 1d111b39e5471e62fbdf84a4be9f271f81fa5865 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=1d111b39e5471e62fbdf84a4be9f271f81fa5865 commit 1d111b39e5471e62fbdf84a4be9f271f81fa5865 Author: Ahmad Khalifa AuthorDate: 2024-08-12 12:11:06 +0000 Commit: Warner Losh CommitDate: 2025-04-28 03:43:31 +0000 loader: provide error message in command_errmsg instead of printing Also provide an error message when argc is too long instead of printing "no error message". Reviewed by: imp, kib Pull Request: https://github.com/freebsd/freebsd-src/pull/1381 (cherry picked from commit 6fdb07d5b7e9293a6851a23b7ecb26636cf1ec1e) --- stand/efi/loader/copy.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/stand/efi/loader/copy.c b/stand/efi/loader/copy.c index 3e466e875af8..90a55089ffc4 100644 --- a/stand/efi/loader/copy.c +++ b/stand/efi/loader/copy.c @@ -223,7 +223,7 @@ command_copy_staging(int argc, char *argv[]) int prev; if (argc > 2) { - return (CMD_ERROR); + goto usage; } else if (argc == 2) { prev = copy_staging; if (strcmp(argv[1], "enable") == 0) @@ -232,10 +232,8 @@ command_copy_staging(int argc, char *argv[]) copy_staging = COPY_STAGING_DISABLE; else if (strcmp(argv[1], "auto") == 0) copy_staging = COPY_STAGING_AUTO; - else { - printf("usage: copy_staging enable|disable|auto\n"); - return (CMD_ERROR); - } + else + goto usage; if (prev != copy_staging) { printf("changed copy_staging, unloading kernel\n"); unload(); @@ -246,6 +244,10 @@ command_copy_staging(int argc, char *argv[]) printf("copy staging: %s\n", mode[copy_staging]); } return (CMD_OK); + +usage: + command_errmsg = "usage: copy_staging enable|disable|auto"; + return (CMD_ERROR); } COMMAND_SET(copy_staging, "copy_staging", "copy staging", command_copy_staging); #endif @@ -257,13 +259,11 @@ command_staging_slop(int argc, char *argv[]) u_long new, prev; if (argc > 2) { - return (CMD_ERROR); + goto err; } else if (argc == 2) { new = strtoul(argv[1], &endp, 0); - if (*endp != '\0') { - printf("invalid slop value\n"); - return (CMD_ERROR); - } + if (*endp != '\0') + goto err; if (staging_slop != new) { staging_slop = new; printf("changed slop, unloading kernel\n"); @@ -276,6 +276,10 @@ command_staging_slop(int argc, char *argv[]) printf("staging slop %#lx\n", staging_slop); } return (CMD_OK); + +err: + command_errmsg = "invalid slop value"; + return (CMD_ERROR); } COMMAND_SET(staging_slop, "staging_slop", "set staging slop", command_staging_slop); From nobody Mon Apr 28 06:01:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZmCWq6HHnz5tvZq; Mon, 28 Apr 2025 06:01: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmCWq1cVlz47H3; Mon, 28 Apr 2025 06:01:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745820119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mkmpP20Zv/mSW146/5NrxbjuFqVdduBU09dw+5AI+80=; b=jH1K7ffqKCaYuPU50m20vGVwAt3rHv5ZyZhTHPaWcGTGCqrlLnBjDOYThUYWRdgRm5h/2h IVOtMib6eZLuR8a9roLiyjvRIlu1vtssR9NXZMCcCdI8YbXrj1fseEcBY47T0qLqhvdLhl CJslNQyC5NoOGvo2w+G4QDL453y/FyUinsVu3cn+NC4bWQACYecJ6zHdHOPS9JN8GyLLzg nBdiNS3KG7pjBCL4XArekdfe3Rzt7dHD0OQsC8+80xTSQ6M8iVtLolE6qw75AGWjpScprZ Kn7+FGfcV6uwPSUlFmqAWrfXykLBbIkNnDhX4qvZ7s2c+k+B25SHO+r64UkTSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745820119; a=rsa-sha256; cv=none; b=svbZD6J8fdz0ipFxwtwkU4ytNVI5Q2qAljonfuZGDAXrZCCsm+WVrsmK+Mj3xI9KS1Mvy7 B4ZJ+yHdbifmDxRBwuXEffL8+HHdyXZ7G8oAMKKEU6oR43VdZHRkea+A2aGcBeFiK2hGiL pZU9fIZwabaeJuLqzjLLgPZzx6ogHFIOtKp4tL788vLd5hztX5m31zmn1/f2gXfSoujMIX eoWI+m4ghdF2fZQKi0Wi0+znB5x69sEoPGNB2NAJA8xb/nVa03aqBI7rx/5aauKEwKzByB ad+bnap3vrQIjcB/kVg//zmHOBasVv7iR8DHx/L9i2YT+qKqZFikbfiqNMJfAA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745820119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mkmpP20Zv/mSW146/5NrxbjuFqVdduBU09dw+5AI+80=; b=JjumEoKhJzLk6u5qBFpA6CgqKXs6UKprStwCr1CnP6py4WcAZxRFUjkcC5SN4RB7BY7ONs tHQ6oKELEinavDofrhk0id1rRwzQO7S6KQUslYjrsaRuYV0+mKHwWM4nkBdnbfoCT9F9Qz BlGwT5vhFrohynaNPkxVLcHftM9CDFtTkec0tOuR4wGGIzPwvMp6kxncIHwQpu3I4GpVYa vbGQItB7aHVZny/wu5MSAzyWuqJVpkINyFpZ2Npv+pdERj3IunRHOmz+du2Nw4P9eAYYC5 z+skUDwAWXZobHYa9TqhcHx5NmVp5wHnskCz8xnSZHN/VDwiRFfYeYiDUvmBFw== 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 4ZmCWq1Cqhz6yJ; Mon, 28 Apr 2025 06:01:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53S61x1l012801; Mon, 28 Apr 2025 06:01:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53S61xX5012798; Mon, 28 Apr 2025 06:01:59 GMT (envelope-from git) Date: Mon, 28 Apr 2025 06:01:59 GMT Message-Id: <202504280601.53S61xX5012798@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: b90ff465675a - stable/14 - mount.8: Add a single example for single user mode List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b90ff465675a2c70060a50c8cfa7db12914bf627 Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=b90ff465675a2c70060a50c8cfa7db12914bf627 commit b90ff465675a2c70060a50c8cfa7db12914bf627 Author: Alexander Ziaee AuthorDate: 2025-04-24 22:04:14 +0000 Commit: Alexander Ziaee CommitDate: 2025-04-28 06:01:12 +0000 mount.8: Add a single example for single user mode The zfs command to do this is a bit longer and harder to remember. In the last few releases mount(8) learned how to do this, so lets show it in the manual. MFC after: 3 days Reported by: Jan Bramkamp Discussed with: cperciva, emaste Reviewed by: mhorne Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49988 (cherry picked from commit c3e06b23b4174c726d7d0ba131869e4aeee8067d) --- sbin/mount/mount.8 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sbin/mount/mount.8 b/sbin/mount/mount.8 index 218559a70dcb..0adc5ffc228b 100644 --- a/sbin/mount/mount.8 +++ b/sbin/mount/mount.8 @@ -547,6 +547,10 @@ for more information.) .It Pa /etc/fstab file system table .El +.Sh EXAMPLES +Remount the root filesystem with read-write permissions: +.Pp +.Dl mount -uw / .Sh DIAGNOSTICS Various, most of them are self-explanatory. .Pp From nobody Tue Apr 29 00:47:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZmhVz2M42z5v88d; Tue, 29 Apr 2025 00:47:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmhVz1JXtz3nqG; Tue, 29 Apr 2025 00:47:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745887675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P7o434SegOKqwj2LZvdmuX9Hm3iq28cfDUax03WDEV8=; b=JGeCJ/e0on5Isu93rFukFatMVTQ6H0yi4vBbPVRbsxEsPvpUYV6samq3nUz4B8WGNjS0Wt WUnv1WVAdV7jY6ecPbtfTpFgfccaomgKfQPDFlfhSPIqQXJGc7THgA47gEjQtmrlw9SaUQ 47bCEc4mSDdGmppz+JOWOXlncXo7xVHHF3cKBoY59f8W6mzR4wBWveMcOW/nqz+oapeR0Y 8yuVWHDjkbA+B5DJ0mO8NsgsZU//l9gzrx2ibkbvAl/3K3iYio1Ox5p5qR2PszD+gUQA+2 VQGv9kZuTd5L2yE56mPM5rm+1br1mAhb3s61pokBI29Wjd+7HWzpF7InIDwPOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745887675; a=rsa-sha256; cv=none; b=erQhyJSCsQq1d2hMxgLNx9dQ7oJTCS+pBMIyF/URZKzX+I28NOZMseDpLeOazGLriKXSQO urYfNMtb0iHapqZzDI0yj7Mh986elT6s6ZUG1hctbvlehYkCZH1jIRa7A9HoIuQZt8tLIi uwLxlk5bgN6tdwexo+foIH/XUW8jqyDmAMiBWWHzeTtCsg3/1+/x5r0eR1WCGbXk0vsa0k qa/MNvXFXYjFO3ucDAvo1jrFMoEs0pxU1c2nLrnX1IUSGqQSZcqijoVL2NnpXDK9Chz4Bk NPhA+M7T7zkSn6F2el9ZeDEmrEF6EoCFpjI7sUwvoOJjzqWCHIb9ZDgo+u4gKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745887675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=P7o434SegOKqwj2LZvdmuX9Hm3iq28cfDUax03WDEV8=; b=q4ohNmI/th+1xWOz2UsWG8fLWUNphMoys69PTvcbmlvDuawmfn7e7oZGpPom/cb+IKhKjb Umgt58jzg5PnFXl+OEHS0RZED+81re1/qBlC3bwBvWGenrWQXoGmzcMXKSdQ/orzoUjnvi +EQaldXBfQwdlMjhr3rpUQ5tP/vzbYe9kB/l6cW5KCeKSgqyqWwVnsMhhXqkEYi3JyJlKp 9wkSusK+kecr9grMyZE5l2bu0+cWZ+sW67vD3MwhBI1TjzOWK4gYMwKJfegYjM4Xi8RAAy FKzHgHbVNmFnTos7HXZcbqOwfxk6JIa3JCgCDUGuNcrqgH9KOnf5j5U/THzZfg== 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 4ZmhVz0bQczxNQ; Tue, 29 Apr 2025 00:47:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53T0lsIc014345; Tue, 29 Apr 2025 00:47:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T0lssc014342; Tue, 29 Apr 2025 00:47:54 GMT (envelope-from git) Date: Tue, 29 Apr 2025 00:47:54 GMT Message-Id: <202504290047.53T0lssc014342@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: dfbda7c53d67 - stable/14 - riscv: Fix handling of interrupts during kernel page faults List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dfbda7c53d673999aeb743f77c30c157c067dd8b Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=dfbda7c53d673999aeb743f77c30c157c067dd8b commit dfbda7c53d673999aeb743f77c30c157c067dd8b Author: Mark Johnston AuthorDate: 2025-04-19 22:41:07 +0000 Commit: Mark Johnston CommitDate: 2025-04-29 00:44:01 +0000 riscv: Fix handling of interrupts during kernel page faults We were checking the wrong status bit when deciding whether to enable interrupts. Reviewed by: jrtc27 Fixes: c226f193515c ("riscv: Permit spurious faults in kernel mode") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49897 (cherry picked from commit 0ca5e3dd1ad006a5251a391676e90ec4dc94df20) --- sys/riscv/riscv/trap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/riscv/riscv/trap.c b/sys/riscv/riscv/trap.c index 0b6db7982847..2e502316447d 100644 --- a/sys/riscv/riscv/trap.c +++ b/sys/riscv/riscv/trap.c @@ -241,7 +241,7 @@ page_fault_handler(struct trapframe *frame, int usermode) * Enable interrupts for the duration of the page fault. For * user faults this was done already in do_trap_user(). */ - if ((frame->tf_sstatus & SSTATUS_SIE) != 0) + if ((frame->tf_sstatus & SSTATUS_SPIE) != 0) intr_enable(); if (stval >= VM_MIN_KERNEL_ADDRESS) { From nobody Tue Apr 29 00:47:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZmhW055GKz5v8KX; Tue, 29 Apr 2025 00:47: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZmhW018gRz3nyJ; Tue, 29 Apr 2025 00:47:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745887676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pNObt8ESXjnlBRtt4nnarVbSgWbcOuyLOTs9ZeGmNSg=; b=NHHsRepx0tU7VMULNtvo2eSDCyUedRkIvYdTh6uEWYUVwanEaE4S9c6qZibCW1oJ4aNhMQ BqH7TU1S4l0ytpxdUG7totwUP9H2bv5Ykh6JANL+YuXs2xGfCvFSu/QcWns8LVqYpQOvPR WCz2lo6URk3tirr2rYfCOlMatLgdUk3sZScX4sNm2UrNcWEJSZQfELwrR+v2bySUjToehG sNHjylPPxBDXyvkvDf6iiOVegVAoGkLrwFbfgQ9yWFuI2Eqk/hNcYDMqmIuPmTt7AfFv/I EqzjqV+PildMQoXmP4oKqvAIeElCQOyV7nB7oNbIKM7ZK3UeyiHnKKSrpsRw/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745887676; a=rsa-sha256; cv=none; b=F4TQXtHPnqSMp3XRFq0HQ+mGSaA0/PSrPE2NYufeMV8M6COhvNFgWnWd66zLOQgVvmQwZq L0Aj4a/Piu/oRYtEAFBiylR3m2SjEUFMmc8xRWGD0JCeMcgr7ohCYIgM1C5iN4JgH/x5Rh hQCTIz9dbEG76Cq1Bu+Q4M4rgWnCGDilQGif5mlwE/2WO5oVaXbTkMSxm3x4j/S+JkOfLx S/19YSf24czGh47cigH17orLrp/KFconId/mTlwaaAfQoTP1tLL5m+FKh8ORswFRQR2Qrz QJqYHeH3Od2Iy0EIfUREXN2HzFC/Bxg2XSk51wxj2NV3FYGpD+MMvypc00QGTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745887676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pNObt8ESXjnlBRtt4nnarVbSgWbcOuyLOTs9ZeGmNSg=; b=D8feFFtNHUtt7bUplIwa/eLFA7G5A5gnrTuXLKYb+pQe6EkhbpF11vvBjCTbiOzk/NVHb5 s6SOVKHuAjCs869cjDxl9ccU22yb6u5u27lAeOmsxRJnMp3an4ZKe/AQq6cgbec9yuuK4i 77SiDEU36HSDdJ+YiVhhEjrfkifbwxVa0glHb5G5y4GYO/1YBuSlIUXSPlH9i7tNSY/jWu E7ohtdeTQyGLcN1WY1ouW8tezUhyOaRPhwKNt9gD9m+3+nxBe8+kvu8+pjSuzKYn29AJsU QYhTb8VUP97aGpPCJe3vtcgSGHjLgkGzrWP/+4t2jSp73+cOBrA07ePFAdhPLQ== 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 4ZmhW00brNzyBZ; Tue, 29 Apr 2025 00:47:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53T0ltwW014380; Tue, 29 Apr 2025 00:47:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53T0ltFP014377; Tue, 29 Apr 2025 00:47:55 GMT (envelope-from git) Date: Tue, 29 Apr 2025 00:47:55 GMT Message-Id: <202504290047.53T0ltFP014377@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c0c5d01e5374 - stable/14 - so_splice: Synchronize so_unsplice() with so_splice() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c0c5d01e53745f97a1fa132d47c27a8c300ab4f8 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c0c5d01e53745f97a1fa132d47c27a8c300ab4f8 commit c0c5d01e53745f97a1fa132d47c27a8c300ab4f8 Author: Mark Johnston AuthorDate: 2025-04-15 00:55:00 +0000 Commit: Mark Johnston CommitDate: 2025-04-29 00:44:04 +0000 so_splice: Synchronize so_unsplice() with so_splice() so_unsplice() assumed that if SB_SPLICED is set in the receive buffer of the first socket, then the splice is fully initialized. However, that's not true, and it's possible for so_unsplice() to race ahead of so_splice(). Modify so_unsplice() to simply bail if the splice state is embryonic. Reported by: syzkaller Reviewed by: gallatin Fixes: a1da7dc1cdad ("socket: Implement SO_SPLICE") MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49814 (cherry picked from commit 992b18a9ec9f21cdf15b70b2f510fa2a69844385) --- sys/kern/uipc_socket.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index fffb1d5b9af4..6468b3001b3e 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -1721,6 +1721,8 @@ so_splice(struct socket *so, struct socket *so2, struct splice *splice) /* * Transfer any data already present in the socket buffer. */ + KASSERT(sp->state == SPLICE_INIT, + ("so_splice: splice %p state %d", sp, sp->state)); sp->state = SPLICE_QUEUED; so_splice_xfer(sp); return (0); @@ -1749,8 +1751,19 @@ so_unsplice(struct socket *so, bool timeout) SOCK_UNLOCK(so); return (ENOTCONN); } - so->so_rcv.sb_flags &= ~SB_SPLICED; sp = so->so_splice; + mtx_lock(&sp->mtx); + if (sp->state == SPLICE_INIT) { + /* + * A splice is in the middle of being set up. + */ + mtx_unlock(&sp->mtx); + SOCK_RECVBUF_UNLOCK(so); + SOCK_UNLOCK(so); + return (ENOTCONN); + } + mtx_unlock(&sp->mtx); + so->so_rcv.sb_flags &= ~SB_SPLICED; so->so_splice = NULL; SOCK_RECVBUF_UNLOCK(so); SOCK_UNLOCK(so); From nobody Tue Apr 29 11:41:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1B2lZyz5tvBf; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1B19xkz3wgK; Tue, 29 Apr 2025 11:41:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H49jQ+yaoGYwHQ1TTMrSS+l5qyIr76qNeN3RuG16r4A=; b=qle/4HId3JQYq+MpohanMxgu2NJKnQ39Pq02VT/J4IKWMCp3WhDxebqHNvN8vLt8jNuZb+ E1UXjiGPGNn+89FgCOo6BThGY0oWjAEgzTZhvd0NYVXh3n3g1WVceQXwkt26E+FpgX+CGD 4KTVL4mh5aUHI2xhF/DtYLiBKJUa1b/AdWn3B9U7x4GHGHQSQBY57XGXpzYaAku30iGAKI oNPSiy03AHBth8GumuNaUJhsEgCA0Rg3JGZ3PLse8c0TEDWc0NXTt8+PLL8SeVcjbyKxSm QXYCWm97pY8/9R+bsapaH4Hyu6ZOaunes2YOEzzZhoR4kv8LtV3d3kOUiO9Iqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926894; a=rsa-sha256; cv=none; b=qPgfBiI3jAdL7OjTuvX5YHhAUtrZhnD+N0I6HXixr7DxhIZaWoBCOZvMS6226RAOmlyvru g4KJFRQ2PrOisIYB7I+MeL22g2xj89I5RlTKxx2nQ5k4rn2tfJwOCbaaYNrMhGhCYk4dX6 VMgMNOh37EVlGmys4sbFqMiq7jpWWUzEe8TZM03KDrFuTY4ByLfn5EJ6htwquBdQ7zebEB IW+rB77kyg7uFO51G+dCi0yBYx2svFKXI1t6jE7Plpdgp+sas2js/DPgKAaoXTTB3910WT kmTXkXkEH5oVUbkvJXYPSHvsnLrFhX/g/CwIin34EMPQyB0Jh1upU0JdHJUNIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926894; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H49jQ+yaoGYwHQ1TTMrSS+l5qyIr76qNeN3RuG16r4A=; b=rzCctSEIj9Grq7KQvEvxxxeT9Yb668AIS4WhD6c8/QI0QZ5ieUvVXJy8nvNannorybuTuA Ks7GC4nJoLtuirpiytNUtdQXUzoN6lBNxTAKHh1YjjHU9cxUeZ0Yp6Q+4Gat+z0RwH1UA5 mQNl6NZEybzRxHIPEGwgpL9FBjRtdmoCjl+pgF7JTXFWhNMyKLZ1BDpsxd8BvULzQ5zICb 2mv1hXq81mU38mEY72EcxMl7SvPrqyM6aiPWJuyY+kRfCUr2/g66CkuLi68eLiowLo/PvM si4CTXhgoVHYndN0JD5K1Npb976cB/UBW1c1ivA+J4oUf91ydeCz7+GKB0TwUg== 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 4Zmz196Y3Qz3SS; Tue, 29 Apr 2025 11:41:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfX0P045613; Tue, 29 Apr 2025 11:41:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfXRO045610; Tue, 29 Apr 2025 11:41:33 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:33 GMT Message-Id: <202504291141.53TBfXRO045610@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: e56928111450 - stable/14 - iwlwifi: make mvm/d3.c compile again List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e569281114500b58e04d64891a884286295d4cae Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e569281114500b58e04d64891a884286295d4cae commit e569281114500b58e04d64891a884286295d4cae Author: Bjoern A. Zeeb AuthorDate: 2025-03-15 00:08:14 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:27 +0000 iwlwifi: make mvm/d3.c compile again Given we currently do not ompile the file by default make it compile again after the last vendor import. Sponsored by: The FreeBSD Foundation (cherry picked from commit 52a43041d2a864961f0a1a109a7a7c4c6ebed918) --- sys/contrib/dev/iwlwifi/mvm/d3.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/contrib/dev/iwlwifi/mvm/d3.c b/sys/contrib/dev/iwlwifi/mvm/d3.c index 0fbafd5f0dbb..11d9911eabb1 100644 --- a/sys/contrib/dev/iwlwifi/mvm/d3.c +++ b/sys/contrib/dev/iwlwifi/mvm/d3.c @@ -9,6 +9,7 @@ #include #if defined(__FreeBSD__) #include +#include #endif #include #include @@ -3702,7 +3703,11 @@ static ssize_t iwl_mvm_d3_test_read(struct file *file, char __user *user_buf, break; } +#if defined(__linux__) if (msleep_interruptible(100)) +#elif defined(__FreeBSD__) + if (linux_msleep_interruptible(100)) +#endif break; if (time_is_before_jiffies(end)) { @@ -3756,7 +3761,11 @@ static int iwl_mvm_d3_test_release(struct inode *inode, struct file *file) while (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status) && remaining_time > 0) { remaining_time--; +#if defined(__linux__) msleep(1000); +#elif defined(__FreeBSD__) + linux_msleep(1000); +#endif } if (remaining_time == 0) From nobody Tue Apr 29 11:41:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1C5BwVz5tv8t; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1C0Rgpz3wm4; Tue, 29 Apr 2025 11:41:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pIz5RLfcpjmO11EKl4jQy1xIIECJ2Jy/N0YIlIdElhs=; b=UoP3sTEKmNOs94gb063yztZb0+Z0MVgRfCG0N03lKQE0Mf2RHHkVPIteVRKBrer6lStSQd Rnmn+rvTDQ2v1qW96ehvqt/Z7OFWjHkiU3wzcB2pMtOhx5Sg1fafzqnMBUEKPtM0eOzXre Cz8V/M/Ixsjs7UUDhg9GMaVLPvEEiW2T8tNGmVPfEmCMBGJs6W6FsGn55ackAY+KcNg2vU ULA9FTf+iatSEUz3/z1leMfX4il62XvwA5QRh5zX/+FeDxQcedntbjJvFjWjvjiOcYc1hz XkIi6iMWgFTq636p0J8T+t6dqu4jB2lGNSRJfj7/OXYyALib1HAF8ZsIeLSg3A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926895; a=rsa-sha256; cv=none; b=EbjukBjRsF9ScRtczxhkboVUl2JXx9kN03vCf1SdnKosgnjAhfrPB7AcCAW9oo4gjOLGFF 1d6OaIuptAVXh4S2p4VG/zPkha9Q5fwJPAW0U/Hi3i3NPw0LgfgeH8/v/ImTCFT8n59N3c 1JIALZax/uTcbzAOh8g1oTf35Lphw/SAcCV7rdNGgNS+eC8Ihp7um+VGsFBMSg3uLoY5nd rM4L3CRFI2WNot9KDSudxrhSxFdXExSVY7JeEEeslgG7Ewix4xjr9bX5O4xR/foChf+CAP gY+oLyubunYXxB0GaDmvIaHQaopmoKOoFSckkaKLHLHMCn3GAqM3KgfMsay+sQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926895; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pIz5RLfcpjmO11EKl4jQy1xIIECJ2Jy/N0YIlIdElhs=; b=fLYagrHk8QLoUlzwxVnddjKjpVl1WxSpSCqdkeah1HAPzLp4Uz6unVcutw1jcmF1XOHbaZ azlxKRHYUqnrvgpxDpY3N7IZ3lV1DTN1YJ+P4419ZUP4D7bFBtczDLUlI8C43dBDuVWyYN pes2QIIQm4A27WlFfNkQfnK9rhmqP1+Hdl0KFpN9T+w6fyEyZuMvtN1GA9ggkOsfvm5Eey qxd++oicwW7HtpXobpWfeIQ90CaYfVRBNM3kU1C8uCrg8E/yDZd68rGkSCPPQicwGPpur5 HzZMKf1g4Fpx61WzX8RjqUK5+eZXxoUOwJFmO4gz2IoqNiphoN4VgI1aWq4e4A== 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 4Zmz1C03QQz3cD; Tue, 29 Apr 2025 11:41:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfY1a045650; Tue, 29 Apr 2025 11:41:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfYBx045647; Tue, 29 Apr 2025 11:41:34 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:34 GMT Message-Id: <202504291141.53TBfYBx045647@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 1be235fcc48c - stable/14 - rtw89: make wow.c compile List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1be235fcc48c95e686dd1f69e8daba953dac1ecc Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=1be235fcc48c95e686dd1f69e8daba953dac1ecc commit 1be235fcc48c95e686dd1f69e8daba953dac1ecc Author: Bjoern A. Zeeb AuthorDate: 2025-03-15 00:14:52 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:27 +0000 rtw89: make wow.c compile So far we have not compiled wow.c given we do not enable CONFIG_PM yet. Make the necessary file local adjustments to make the file compile once further changes in LinuxKPI 802.11 code are comitted. Sponsored by: The FreeBSD Foundation (cherry picked from commit 848fdcae0326db5b7c3edd2e8c264d25254abe1d) --- sys/contrib/dev/rtw89/wow.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/sys/contrib/dev/rtw89/wow.c b/sys/contrib/dev/rtw89/wow.c index 9882064ef68d..8322c0763715 100644 --- a/sys/contrib/dev/rtw89/wow.c +++ b/sys/contrib/dev/rtw89/wow.c @@ -17,13 +17,21 @@ void rtw89_wow_parse_akm(struct rtw89_dev *rtwdev, struct sk_buff *skb) struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data; struct rtw89_wow_param *rtw_wow = &rtwdev->wow; const u8 *rsn, *ies = mgmt->u.assoc_req.variable; +#if defined(__linux__) struct rtw89_rsn_ie *rsn_ie; +#elif defined(__FreeBSD__) + const struct rtw89_rsn_ie *rsn_ie; +#endif rsn = cfg80211_find_ie(WLAN_EID_RSN, ies, skb->len); if (!rsn) return; +#if defined(__linux__) rsn_ie = (struct rtw89_rsn_ie *)rsn; +#elif defined(__FreeBSD__) + rsn_ie = (const struct rtw89_rsn_ie *)rsn; +#endif rtw_wow->akm = rsn_ie->akm_cipher_suite.type; } @@ -111,8 +119,13 @@ static int rtw89_rx_pn_to_iv(struct rtw89_dev *rtwdev, if (err) return err; +#if defined(__linux__) rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d pn-%llx to iv-%*ph\n", __func__, key->keyidx, pn, 8, iv); +#elif defined(__FreeBSD__) + rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d pn-%jx to iv-%*ph\n", + __func__, key->keyidx, (uintmax_t)pn, 8, iv); +#endif return 0; } @@ -129,8 +142,13 @@ static int rtw89_tx_pn_to_iv(struct rtw89_dev *rtwdev, if (err) return err; +#if defined(__linux__) rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d pn-%llx to iv-%*ph\n", __func__, key->keyidx, pn, 8, iv); +#elif defined(__FreeBSD__) + rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d pn-%jx to iv-%*ph\n", + __func__, key->keyidx, (uintmax_t)pn, 8, iv); +#endif return 0; } @@ -204,8 +222,13 @@ static int rtw89_tx_iv_to_pn(struct rtw89_dev *rtwdev, return err; atomic64_set(&key->tx_pn, pn); +#if defined(__linux__) rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d iv-%*ph to pn-%llx\n", __func__, key->keyidx, 8, iv, pn); +#elif defined(__FreeBSD__) + rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d iv-%*ph to pn-%jx\n", + __func__, key->keyidx, 8, iv, (uintmax_t)pn); +#endif return 0; } @@ -235,8 +258,13 @@ static int rtw89_rx_pn_get_pmf(struct rtw89_dev *rtwdev, u64_encode_bits(seq.ccmp.pn[5], RTW89_KEY_PN_0); gtk_info->ipn = cpu_to_le64(pn); gtk_info->igtk_keyid = cpu_to_le32(key->keyidx); +#if defined(__linux__) rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d pn-%llx\n", __func__, key->keyidx, pn); +#elif defined(__FreeBSD__) + rtw89_debug(rtwdev, RTW89_DBG_WOW, "%s key %d pn-%jx\n", + __func__, key->keyidx, (uintmax_t)pn); +#endif return 0; } @@ -472,10 +500,17 @@ static void rtw89_wow_debug_aoac_rpt(struct rtw89_dev *rtwdev) 8, aoac_rpt->gtk_rx_iv[2]); rtw89_debug(rtwdev, RTW89_DBG_WOW, "[aoac_rpt] gtk_rx_iv[3] = %*ph\n", 8, aoac_rpt->gtk_rx_iv[3]); +#if defined(__linux__) rtw89_debug(rtwdev, RTW89_DBG_WOW, "[aoac_rpt] igtk_key_id = %llu\n", aoac_rpt->igtk_key_id); rtw89_debug(rtwdev, RTW89_DBG_WOW, "[aoac_rpt] igtk_ipn = %llu\n", aoac_rpt->igtk_ipn); +#elif defined(__FreeBSD__) + rtw89_debug(rtwdev, RTW89_DBG_WOW, "[aoac_rpt] igtk_key_id = %ju\n", + (uintmax_t)aoac_rpt->igtk_key_id); + rtw89_debug(rtwdev, RTW89_DBG_WOW, "[aoac_rpt] igtk_ipn = %ju\n", + (uintmax_t)aoac_rpt->igtk_ipn); +#endif rtw89_debug(rtwdev, RTW89_DBG_WOW, "[aoac_rpt] igtk = %*ph\n", 32, aoac_rpt->igtk); } From nobody Tue Apr 29 11:41:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1D7519z5tvF6; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1D1qJGz3wcZ; Tue, 29 Apr 2025 11:41:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XkcGAGHXDMBCTXuxWcRG+nlqf04G3g/c0Juo6L/SLbo=; b=qS7n/GIPON12KUiXA36majNVp73TEF8SvnRD1RI0n8apcZOFm+7ChUBjBdByP+jVgObwxb Z+L/KjqwrJnF/Wb4hdLz1pinbRHNtf6OYXXgM++w69h5Qo9gDSNWWg6FHWcARyjiBHFDqp 7+xSuTephT/SBoyaE4CjAzhPd0QoFLjpMv4BTJRvM4mADnH6aZ3rmkUADe5d18eDZbI0+x OU9DEd5CJayfBdTQmcQAtl057oN9EQFnENm/Y4apOsSTeruNTcA6xjvWW2lmYc1Ewl8abo Gprx9BzEluW+A8uSLWXRUBfKqDhgG7IT3EDVi9t7SZYrztiajIR3HGwr3/ZJTQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926896; a=rsa-sha256; cv=none; b=nFiAINOvLYS0bgK9+uIRvJtE5GPs7fv7fueMSGmlZToSoiyVGGWln1jOh0YUptNcWGAE3d R/XNOnAFxhkM+PxetV38pFU+smlx6XkCa4XsmoicDQga44IFdJVlwX9Z6JVPWHdVmbDovw Ri1YMhfS0zBUZIT2QSUnE3zckRwtOAajd3xdtNBdDkZsW9Sw4JIYbcTdPsrZhUylIOmoMl 8AWlzWeURPwK9QVnH1Y9mQ/eSb2KeC0JZY2zQkdkBtHwyPltFtDit20meHUCiGGhlAbgde Td61xJt3j5+4XHxo1ZTPxC2l6IWUc+vW67HzEsSZPEyV7zMTpSEXMGrL3MCKgg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926896; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XkcGAGHXDMBCTXuxWcRG+nlqf04G3g/c0Juo6L/SLbo=; b=ip00ek63suAtQiqL5wYrg1PPPGnlF/aG2O/GBbG7+Q31YGvPcb1+uvtmp6+oLKgznwoOCW n/h+dXlG9OjZlx2/VJQJaiyXlNlfjFAlztYz5fwhKdJAIWNm66qkrdwNQjw97TAq6w/fJG Ys83Te1WL8iYwP7gxJYu9iYftDBUP9PhGpiiqL4v3vAj8GUU40RhdtM83aghlcIDsOlJ4O EyE+iNozY8+3mfpUzWrBO3u2tUv4zf+AbrovLmqjek7BLk6yf9/Fx559X0+aMGXe1wKKBK p1RZPq2YU71BBirggdHe79U0O4xwV2tVWFpBnI+8aFc5SaDUEN51TTsRsm64rw== 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 4Zmz1D1Hw7z3yS; Tue, 29 Apr 2025 11:41:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfahd045697; Tue, 29 Apr 2025 11:41:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfata045694; Tue, 29 Apr 2025 11:41:36 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:36 GMT Message-Id: <202504291141.53TBfata045694@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 95e956722a2e - stable/14 - mbuf: add mbuf information to KASSERTs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 95e956722a2ea2d9254456ccf29a42cded71927c Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=95e956722a2ea2d9254456ccf29a42cded71927c commit 95e956722a2ea2d9254456ccf29a42cded71927c Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 13:25:12 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:27 +0000 mbuf: add mbuf information to KASSERTs Be more consistent about printing the mbuf pointer in KASSERT messages. This massively helps debugging and we were already doing a good job at it. Also replace some handrolled KASSERTs with M_ASSERTPKTHDR() for fewer copies of the check logic. In m_align() move the msg into the KASSERT given after it was moved here in ed6a66ca6c206 the msg is only used in one place. Sponsored by: The FreeBSD Foundation Reviewed by: glebius, zlei Differential Revision: https://reviews.freebsd.org/D49817 (cherry picked from commit 22d5d61f91eb70ced6a010d9a1d60f0ff33fff2f) --- sys/sys/mbuf.h | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 941c907e903b..c17fc9dec9a4 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -1110,7 +1110,7 @@ static inline u_int m_extrefcnt(struct mbuf *m) { - KASSERT(m->m_flags & M_EXT, ("%s: M_EXT missing", __func__)); + KASSERT(m->m_flags & M_EXT, ("%s: M_EXT missing for %p", __func__, m)); return ((m->m_ext.ext_flags & EXT_FLAG_EMBREF) ? m->m_ext.ext_count : *m->m_ext.ext_cnt); @@ -1142,13 +1142,13 @@ m_extrefcnt(struct mbuf *m) /* Check if the supplied mbuf has a packet header, or else panic. */ #define M_ASSERTPKTHDR(m) \ KASSERT((m) != NULL && (m)->m_flags & M_PKTHDR, \ - ("%s: no mbuf packet header!", __func__)) + ("%s: no mbuf %p packet header!", __func__, (m))) /* Check if the supplied mbuf has no send tag, or else panic. */ #define M_ASSERT_NO_SND_TAG(m) \ KASSERT((m) != NULL && (m)->m_flags & M_PKTHDR && \ ((m)->m_pkthdr.csum_flags & CSUM_SND_TAG) == 0, \ - ("%s: receive mbuf has send tag!", __func__)) + ("%s: receive mbuf %p has send tag!", __func__, (m))) /* Check if mbuf is multipage. */ #define M_ASSERTEXTPG(m) \ @@ -1162,7 +1162,7 @@ m_extrefcnt(struct mbuf *m) */ #define M_ASSERTVALID(m) \ KASSERT((((struct mbuf *)m)->m_flags & 0) == 0, \ - ("%s: attempted use of a free mbuf!", __func__)) + ("%s: attempted use of a free mbuf %p!", __func__, (m))) /* Check whether any mbuf in the chain is unmapped. */ #ifdef INVARIANTS @@ -1207,12 +1207,9 @@ m_extrefcnt(struct mbuf *m) static __inline void m_align(struct mbuf *m, int len) { -#ifdef INVARIANTS - const char *msg = "%s: not a virgin mbuf"; -#endif int adjust; - - KASSERT(m->m_data == M_START(m), (msg, __func__)); + KASSERT(m->m_data == M_START(m), + ("%s: not a virgin mbuf %p", __func__, m)); adjust = M_SIZE(m) - len; m->m_data += adjust &~ (sizeof(long)-1); @@ -1530,14 +1527,16 @@ m_free(struct mbuf *m) static __inline int rt_m_getfib(struct mbuf *m) { - KASSERT(m->m_flags & M_PKTHDR , ("Attempt to get FIB from non header mbuf.")); + KASSERT(m->m_flags & M_PKTHDR, + ("%s: Attempt to get FIB from non header mbuf %p", __func__, m)); return (m->m_pkthdr.fibnum); } #define M_GETFIB(_m) rt_m_getfib(_m) #define M_SETFIB(_m, _fib) do { \ - KASSERT((_m)->m_flags & M_PKTHDR, ("Attempt to set FIB on non header mbuf.")); \ + KASSERT((_m)->m_flags & M_PKTHDR, \ + ("%s: Attempt to set FIB on non header mbuf %p", __func__, (_m))); \ ((_m)->m_pkthdr.fibnum) = (_fib); \ } while (0) @@ -1681,9 +1680,9 @@ static inline void mbuf_tstmp2timespec(struct mbuf *m, struct timespec *ts) { - KASSERT((m->m_flags & M_PKTHDR) != 0, ("mbuf %p no M_PKTHDR", m)); + M_ASSERTPKTHDR(m); KASSERT((m->m_flags & (M_TSTMP|M_TSTMP_LRO)) != 0, - ("mbuf %p no M_TSTMP or M_TSTMP_LRO", m)); + ("%s: mbuf %p no M_TSTMP or M_TSTMP_LRO", __func__, m)); ts->tv_sec = m->m_pkthdr.rcv_tstmp / 1000000000; ts->tv_nsec = m->m_pkthdr.rcv_tstmp % 1000000000; } @@ -1693,9 +1692,9 @@ static inline void mbuf_tstmp2timeval(struct mbuf *m, struct timeval *tv) { - KASSERT((m->m_flags & M_PKTHDR) != 0, ("mbuf %p no M_PKTHDR", m)); + M_ASSERTPKTHDR(m); KASSERT((m->m_flags & (M_TSTMP|M_TSTMP_LRO)) != 0, - ("mbuf %p no M_TSTMP or M_TSTMP_LRO", m)); + ("%s: mbuf %p no M_TSTMP or M_TSTMP_LRO", __func__, m)); tv->tv_sec = m->m_pkthdr.rcv_tstmp / 1000000000; tv->tv_usec = (m->m_pkthdr.rcv_tstmp % 1000000000) / 1000; } From nobody Tue Apr 29 11:41:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1G5tmYz5tvBj; Tue, 29 Apr 2025 11:41:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1G3dMjz3wbG; Tue, 29 Apr 2025 11:41:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4P2ci31k0TrmQ1zwQfzkkrRHmj2ubQnrvcWx4A1PVgU=; b=Lv7POzekjaLrsu+qMr1I3hCpoRI3o8zAmn6uhoeL7n1G3pg5pdVQ9rVaIMx6jeF9HHyTqz KcqBE87iiEnMXwJ0ol4DBvoDGBZR8fTQ/rv8SxQg198PGnCmcbVi7ynD7TFyR92fNd1T8O +5nednts/XXS16pFJ48LtOZRxvSc0UX+gVYvAJ4/2bz2+2vRzuiQb5wbEVi4MsS06A8ACl x1U/OcupMPB61rN6BwasenX5Yxu6LxodMgmZkPvnu+vEBpx3lwhFnpqxJ9Ww30t6yrqs0j +D7Omb2QLPS+0eUP7VXMAprdP2EutmMXBkuCmmo/g4SxR4t/gMiQhxX8seTjyw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926898; a=rsa-sha256; cv=none; b=T98hLrGUd3BPlG5bg8NR5jfep0t5Or1Or36aXMVLc2YdK6NDmieIhR3nJoX2Zt2KVmyqrt 35UFHX4z7PWvg05zb+vSzoKQ8cudB1Jwg1ObB7FWB0KGHg7Vfr9LDyyl8qgJzdUVhZKuXC Tp1sDw1rOc7wZnLiuzmIYsJZ1N2u+92IsRCfEjLWUCu27vKn/n3dE0SZRsW8YpwmGbRfN7 U0seR31kD+v2ICClDmjl10jPqAlgzn9BxRBCc5U1zEhHozHmmRgwLaJHZHm4+eDt0Paq8L X1RCIsU6HTZT5Jp6RG/d7rPR7x8K1mt1Uvb+UVd25MkS+ngh8AYEzUosNSxTug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4P2ci31k0TrmQ1zwQfzkkrRHmj2ubQnrvcWx4A1PVgU=; b=xjIcmr1za4sBwxAj+HfJbMuoNhzFIAopdvNkd0E5se4YqttqZKvYqmc+WQyEl8akZL1tCX NBH8pJMOqI5Hv/xaT9nnh0JjUjkgYrw8rcU+R+eiPzlOVJXRmxVVCS0W1wPGDu0OJTfbuD B0qJFZ4iDwg91gekZsKHYuvhwRh2mnXRykuIT36thNQw+b4oe4vfk0GaFdJowPfIs77t52 L9muXuyGk6ZeCyKwt/EFYkDrXm86dDNsvJmqMgFwEw9yhgw2oS/GyXWdytZZPnBeFT5Qxn UPk4BadQnfZK/8npVbk8/TdQ+9D8gHKl5wP66ayZvSapBMxEvYzOdVNvVYbNQw== 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 4Zmz1G3FLYz3SY; Tue, 29 Apr 2025 11:41:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfcIh045771; Tue, 29 Apr 2025 11:41:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfcFw045768; Tue, 29 Apr 2025 11:41:38 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:38 GMT Message-Id: <202504291141.53TBfcFw045768@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: caebab19e711 - stable/14 - net80211: add a new field specifically for announcing specific ciphers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: caebab19e711d0f5c12070ae4c2b74d2d13d5cb3 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=caebab19e711d0f5c12070ae4c2b74d2d13d5cb3 commit caebab19e711d0f5c12070ae4c2b74d2d13d5cb3 Author: Adrian Chadd AuthorDate: 2024-04-17 01:53:52 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:28 +0000 net80211: add a new field specifically for announcing specific ciphers This dates way, way back with the original net80211 support w/ atheros chips. The earliest chip (AR5210) had limitations supporting software encryption. It only had the four WEP slots, and not any keycache entries. So when trying to do CCMP/TKIP encryption would be enabled and the key slots would have nothing useful in them, resulting in garbage encryption/decryption. I changed this back in 2012 to disable supporting hardware WEP for AR5210 so if_ath(4) / net80211 crypto is all done in software and yes, I could do CCMP/TKIP on AR5210 in software. Fast-forward to newer-ish hardware - the Qualcomm 11ac hardware. Those also don't support pass-through keycache slots! Well, the hardware does at that layer, but then there's a whole offload data path encap/decap layer that's turning the frames from raw wifi into ethernet frames (for "dumb" AP behaviours) or "wifi direct" frames (ie, "windows".) This hides a bunch of header frame contents required for doing the software encryption / decryption path. But then if you enable the raw transmit/receive frame format it ALSO bypasses the hardware encryption/decryption engine! So for those NICs: * If you want to do encryption, you can only use the firmware supported ciphers w/ wifi direct or ethernet; * If you want to use software encrypt/decrypt, you MUST disable all encryption and instead use 100% software encryption. The wpa_supplicant bsd driver code has a specific comment about this and flips on supporting WEP/TKIP/CCMP, which is understandable but it doesn't fix the ACTUAL intention of all of this stuff. So: * create a new field, ic_sw_cryptocaps * populate it with the default supported set of ciphers for net80211 (right now wep, tkip, ccmp) * Communicate the combination of both ic_sw_cryptocaps and ic_cryptocaps to wpa_supplicant via the relevant devcap ioctl. * Update manpage. I'll follow this up with a driver_bsd.c change in wpa_supplicant to trust this again, and then start adding the other cipher support there. Differential Revision: https://reviews.freebsd.org/D44820 Adjusted for MFC by moving the new field to a spare. Sponsored by: The FreeBSD Foundation (cherry picked from commit 1116e8b95c601ddaac2feb4ab0904f77801a520f) --- share/man/man9/ieee80211.9 | 4 +++- sys/net80211/ieee80211_crypto.c | 12 ++++++++++++ sys/net80211/ieee80211_ioctl.c | 6 +++++- sys/net80211/ieee80211_ioctl.h | 4 ++-- sys/net80211/ieee80211_var.h | 8 ++++++-- 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/share/man/man9/ieee80211.9 b/share/man/man9/ieee80211.9 index 100b4e7540a5..40c8c243a77c 100644 --- a/share/man/man9/ieee80211.9 +++ b/share/man/man9/ieee80211.9 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 26, 2021 +.Dd April 24, 2024 .Dt IEEE80211 9 .Os .Sh NAME @@ -514,6 +514,8 @@ General capabilities are specified by .Vt ic_caps . Hardware cryptographic capabilities are specified by .Vt ic_cryptocaps . +Software cryptographic capabilities are specified by +.Vt ic_sw_cryptocaps . 802.11n capabilities, if any, are specified by .Vt ic_htcaps . The diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c index bb7a612ac36c..fef63390c27b 100644 --- a/sys/net80211/ieee80211_crypto.c +++ b/sys/net80211/ieee80211_crypto.c @@ -142,6 +142,18 @@ ieee80211_crypto_attach(struct ieee80211com *ic) { /* NB: we assume everything is pre-zero'd */ ciphers[IEEE80211_CIPHER_NONE] = &ieee80211_cipher_none; + + /* + * Default set of net80211 supported ciphers. + * + * These are the default set that all drivers are expected to + * support, either/or in hardware and software. + * + * Drivers can add their own support to this and the + * hardware cipher list (ic_cryptocaps.) + */ + ic->ic_sw_cryptocaps = IEEE80211_CRYPTO_WEP | + IEEE80211_CRYPTO_TKIP | IEEE80211_CRYPTO_AES_CCM; } /* diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index 8432bf4bcbfd..3b57e7d8cd8e 100644 --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -709,7 +709,11 @@ ieee80211_ioctl_getdevcaps(struct ieee80211com *ic, if (dc == NULL) return ENOMEM; dc->dc_drivercaps = ic->ic_caps; - dc->dc_cryptocaps = ic->ic_cryptocaps; + /* + * Announce the set of both hardware and software supported + * ciphers. + */ + dc->dc_cryptocaps = ic->ic_cryptocaps | ic->ic_sw_cryptocaps; dc->dc_htcaps = ic->ic_htcaps; dc->dc_vhtcaps = ic->ic_vht_cap.vht_cap_info; ci = &dc->dc_chaninfo; diff --git a/sys/net80211/ieee80211_ioctl.h b/sys/net80211/ieee80211_ioctl.h index 58080025b5a9..18152495c499 100644 --- a/sys/net80211/ieee80211_ioctl.h +++ b/sys/net80211/ieee80211_ioctl.h @@ -551,13 +551,13 @@ struct ieee80211_regdomain_req { IEEE80211_REGDOMAIN_SIZE((_req)->chaninfo.ic_nchans) /* - * Get driver capabilities. Driver, hardware crypto, and + * Get driver capabilities. Driver, hardware/software crypto, and * HT/802.11n capabilities, and a table that describes what * the radio can do. */ struct ieee80211_devcaps_req { uint32_t dc_drivercaps; /* general driver caps */ - uint32_t dc_cryptocaps; /* hardware crypto support */ + uint32_t dc_cryptocaps; /* software + hardware crypto support */ uint32_t dc_htcaps; /* HT/802.11n support */ uint32_t dc_vhtcaps; /* VHT/802.11ac capabilities */ struct ieee80211req_chaninfo dc_chaninfo; diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 3e7ad7942de7..dd6737aedb66 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -163,7 +163,7 @@ struct ieee80211com { uint32_t ic_caps; /* capabilities */ uint32_t ic_htcaps; /* HT capabilities */ uint32_t ic_htextcaps; /* HT extended capabilities */ - uint32_t ic_cryptocaps; /* crypto capabilities */ + uint32_t ic_cryptocaps; /* hardware crypto caps */ /* set of mode capabilities */ uint8_t ic_modecaps[IEEE80211_MODE_BYTES]; uint8_t ic_promisc; /* vap's needing promisc mode */ @@ -375,7 +375,11 @@ struct ieee80211com { void (*ic_update_chw)(struct ieee80211com *); const struct debugnet80211_methods *ic_debugnet_meth; - uint64_t ic_spare[7]; + /* driver-supported software crypto caps */ + uint32_t ic_sw_cryptocaps; + + uint32_t ic_spare1; + uint64_t ic_spare[6]; }; struct ieee80211_aclator; From nobody Tue Apr 29 11:41:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1G1j9Zz5tvKl; Tue, 29 Apr 2025 11:41:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1F3Hkxz3wgX; Tue, 29 Apr 2025 11:41:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926897; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q8yeAFirc19Azm8m5De/gkr/mMzKx2/Rf/Y+aT3Jo0c=; b=KhHR53k1Oj/Uf6kWyaLnfJmcB/gpeTkd/gVIChUi+gCdMBBfZKeoGHLk8XJd9etjTclEe1 NCXoZQ1Hn9MlyrBVtYs91QuXSHLfyDEyf1zWtg/ByNvq17qQCva09yNkZihlc54gSRvZo8 FW59rqKNLQXSRmV8Hj5+vasxK7rPReykrN0zuMXg9YURmJvgfdGDjaO/k96HVwTyvCiUUX VY4ls7OclLFyaW4j1ofJt8+C7zHTsyQTjUzRLqPVeUkb05giH6NUAgV2eWid3ob6kl0caj M3vN0ZlCd8fpmMxW18IcwWIX0tpxMSzATeYIZ+zy3DZwUuXMH2+tbqbZ7mRiGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926897; a=rsa-sha256; cv=none; b=O5D23CksdiAZDlPXDMbjLATMz8LWSQ7/DLSwwIsGVyLzb/rVUi64+AfCv6lLE1FyN1h2Pj ee4TGDYgkIjN9tBTdMB1jIxXvGvxxSruAb+Fbd01fUCBf5MHISq55SS2ZHTCf/ozEj4NKD WeP2SRGcGJmx6RgBixsZrZhKnTwvzJpYmvv3qQXykTUPUpBA8Fhk4aTUw3aRXKrY2UINPl pdEKjrOkt7envN8UA2jkSmINr0L5DGals9tG3ZdjeYAhYgTMjzHyEONeq2fGqcSqdnzdCw rZTI4Fs4ubL2+ODryD3Xc0Gh38TLpQzL8sCxhaoAdmHHHIqZ4+NdOthJaRuaIA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926897; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Q8yeAFirc19Azm8m5De/gkr/mMzKx2/Rf/Y+aT3Jo0c=; b=nTEHj7ju7tgtwfxMyL0h8Bwj2EJLReCO69TWXKm5XtSZVkn5YLuz+zEePwxhFLYfT60ZP2 6CwBVeZmHPOe+sgT/IpxvxzAE2WIFbHU+JUgXsktxFKgV7RJ+pKDgrU7zkbXzdvOdAMUXi 7rZhrKSlwCgZ+ZL1HGW11sO42pqExXCsT4GTGVx4fXB4yCeVs4xnGSa1Xb2UwftUW2OvjT qX3Tf7/3qZqQjbndUqF1uPHU2/rBQh5p0EuZmJfd2X3hWZLsXDjpGgTlgWHPqOvsyD+qvv /51bSyeRv4BwiHOcda3OCS7PwE2RHfPdHf2/Gld7X8DZ1GLIQJt1EByBbthATw== 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 4Zmz1F2Gfhz3f3; Tue, 29 Apr 2025 11:41:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfba1045734; Tue, 29 Apr 2025 11:41:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfbBR045731; Tue, 29 Apr 2025 11:41:37 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:37 GMT Message-Id: <202504291141.53TBfbBR045731@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 0ed97681a30d - stable/14 - net80211: add the 802.11-2016 cipher list to the crypto array set. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0ed97681a30d968c03c5526739948da29d3f2215 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=0ed97681a30d968c03c5526739948da29d3f2215 commit 0ed97681a30d968c03c5526739948da29d3f2215 Author: Adrian Chadd AuthorDate: 2024-04-22 03:25:33 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:28 +0000 net80211: add the 802.11-2016 cipher list to the crypto array set. These are the bitmap / cipher module number fields used for net80211 ciphers. This requires a kernel recompile, but nothing (currently) in userland is using these. Differential Revision: https://reviews.freebsd.org/D44899 Reviewed by: bz, cc (cherry picked from commit 05540e62e75f8b2de7e337738eacfb0b159515a6) --- sys/net80211/ieee80211_crypto.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/sys/net80211/ieee80211_crypto.h b/sys/net80211/ieee80211_crypto.h index 49e3f93410b2..fcc6973dd62e 100644 --- a/sys/net80211/ieee80211_crypto.h +++ b/sys/net80211/ieee80211_crypto.h @@ -137,8 +137,17 @@ struct ieee80211_key { #define IEEE80211_CIPHER_TKIPMIC 4 /* TKIP MIC capability */ #define IEEE80211_CIPHER_CKIP 5 #define IEEE80211_CIPHER_NONE 6 /* pseudo value */ +#define IEEE80211_CIPHER_AES_CCM_256 7 +#define IEEE80211_CIPHER_BIP_CMAC_128 8 +#define IEEE80211_CIPHER_BIP_CMAC_256 9 +#define IEEE80211_CIPHER_BIP_GMAC_128 10 +#define IEEE80211_CIPHER_BIP_GMAC_256 11 +#define IEEE80211_CIPHER_AES_GCM_128 12 +#define IEEE80211_CIPHER_AES_GCM_256 13 -#define IEEE80211_CIPHER_MAX (IEEE80211_CIPHER_NONE+1) +#define IEEE80211_CIPHER_LAST 13 + +#define IEEE80211_CIPHER_MAX (IEEE80211_CIPHER_LAST+1) /* capability bits in ic_cryptocaps/iv_cryptocaps */ #define IEEE80211_CRYPTO_WEP (1< To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a638734e4a5c - stable/14 - net80211: add driver / crypto methods to set the hardware / software cipher suites List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a638734e4a5c1bb22b30760f9fa9d3f2ac037780 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a638734e4a5c1bb22b30760f9fa9d3f2ac037780 commit a638734e4a5c1bb22b30760f9fa9d3f2ac037780 Author: Adrian Chadd AuthorDate: 2024-04-18 01:47:07 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:28 +0000 net80211: add driver / crypto methods to set the hardware / software cipher suites Drivers currently announce hardware crypto cipher support by setting up ic_cryptocaps. This adds two public function calls: * ieee80211_set_software_ciphers() - set the software cipher set; * ieee80211_set_hardware_ciphers() - set the hardware cipher set. For now these just call into the newly crypto routines to set the ciphers. This then adds the two crypto routines, similarly named, to set the hardware/software cipher suite. This is a no-op right now - wep/tkip/ccmp are already set by default so drivers aren't required to call these routines for software encryption, and drivers already set ic_cryptocaps for hardware encryption. Differential Revision: https://reviews.freebsd.org/D44827 (cherry picked from commit e9961ea164968bf2bdab210eab69201b4bf2cb37) --- sys/net80211/ieee80211.c | 22 ++++++++++++++++++++++ sys/net80211/ieee80211_crypto.c | 21 +++++++++++++++++++++ sys/net80211/ieee80211_crypto.h | 4 ++++ sys/net80211/ieee80211_var.h | 4 ++++ 4 files changed, 51 insertions(+) diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c index 0aaded2bdbcd..cdfb7654ee40 100644 --- a/sys/net80211/ieee80211.c +++ b/sys/net80211/ieee80211.c @@ -434,6 +434,28 @@ ieee80211_ifdetach(struct ieee80211com *ic) IEEE80211_LOCK_DESTROY(ic); } +/* + * Called by drivers during attach to set the supported + * cipher set for software encryption. + */ +void +ieee80211_set_software_ciphers(struct ieee80211com *ic, + uint32_t cipher_suite) +{ + ieee80211_crypto_set_supported_software_ciphers(ic, cipher_suite); +} + +/* + * Called by drivers during attach to set the supported + * cipher set for hardware encryption. + */ +void +ieee80211_set_hardware_ciphers(struct ieee80211com *ic, + uint32_t cipher_suite) +{ + ieee80211_crypto_set_supported_hardware_ciphers(ic, cipher_suite); +} + struct ieee80211com * ieee80211_find_com(const char *name) { diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c index fef63390c27b..16803fa59141 100644 --- a/sys/net80211/ieee80211_crypto.c +++ b/sys/net80211/ieee80211_crypto.c @@ -164,6 +164,27 @@ ieee80211_crypto_detach(struct ieee80211com *ic) { } +/* + * Set the supported ciphers for software encryption. + */ +void +ieee80211_crypto_set_supported_software_ciphers(struct ieee80211com *ic, + uint32_t cipher_set) +{ + ic->ic_sw_cryptocaps = cipher_set; +} + +/* + * Set the supported ciphers for hardware encryption. + */ +void +ieee80211_crypto_set_supported_hardware_ciphers(struct ieee80211com *ic, + uint32_t cipher_set) +{ + ic->ic_cryptocaps = cipher_set; +} + + /* * Setup crypto support for a vap. */ diff --git a/sys/net80211/ieee80211_crypto.h b/sys/net80211/ieee80211_crypto.h index fcc6973dd62e..68143f66aaf5 100644 --- a/sys/net80211/ieee80211_crypto.h +++ b/sys/net80211/ieee80211_crypto.h @@ -180,6 +180,10 @@ MALLOC_DECLARE(M_80211_CRYPTO); void ieee80211_crypto_attach(struct ieee80211com *); void ieee80211_crypto_detach(struct ieee80211com *); +void ieee80211_crypto_set_supported_software_ciphers(struct ieee80211com *, + uint32_t cipher_set); +void ieee80211_crypto_set_supported_hardware_ciphers(struct ieee80211com *, + uint32_t cipher_set); void ieee80211_crypto_vattach(struct ieee80211vap *); void ieee80211_crypto_vdetach(struct ieee80211vap *); int ieee80211_crypto_newkey(struct ieee80211vap *, diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index dd6737aedb66..552c45e5ddb2 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -765,6 +765,10 @@ MALLOC_DECLARE(M_80211_VAP); int ic_printf(struct ieee80211com *, const char *, ...) __printflike(2, 3); void ieee80211_ifattach(struct ieee80211com *); void ieee80211_ifdetach(struct ieee80211com *); +void ieee80211_set_software_ciphers(struct ieee80211com *, + uint32_t cipher_suite); +void ieee80211_set_hardware_ciphers(struct ieee80211com *, + uint32_t cipher_suite); int ieee80211_vap_setup(struct ieee80211com *, struct ieee80211vap *, const char name[IFNAMSIZ], int unit, enum ieee80211_opmode opmode, int flags, From nobody Tue Apr 29 11:41:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1K2Ntdz5tvFD; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1J5gNZz3wVH; Tue, 29 Apr 2025 11:41:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=weljQaDVcOBTsbMT/mbs9vK6lXEPiPjLw/PPJ4zNKoc=; b=SInO9Gp2CThAkbaqelgYsJzOavsCitkLWTAJtLACAbZ3AmFaqxpJhw5xsCw/nuBjLLeicV WhRoG6A9ep9wiyXUrMLhAoRwvt7TP2LH1eXbF/j0OxjX/L9gO4BIYuO0ZlxuyztAqX7WtW rA88LKe3AjUuu+Nzf1eOj3R0Ra33UArJEAmUbVX/fw7swuyArHaHsNaTBhuMU7tNAHdenW 8PFIwjgZC3gCVu+pm4JEct3GfSskpXY3QeqPd+bsyi0BN6kaRqfsARQCQunVt57U4KFxdH N7npSqSBZz/EALcv5ZZ8p6ldtgQ4x5qM9OqLy2yna38Apu4T375v+ud3fqb3KQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926900; a=rsa-sha256; cv=none; b=k9BCH8u3n1uA/28qKKjaFAkH6rm2VgFXGiB0IIK9eBTaY3ZeF4Qr+CJCdeRGoTjbEhR8sb 6F1GfdS1cWvMcQx2EBOi7cF7U1j2tTD52f4S8w1ijI+ebH4dnbp89tAdljfh6NP9chewsn v1tqE6lACOojLFZK3VxQf+dx8igAJ7KqVlt5bIWAbJ9zL3nNX+yfgN3hwGoxX8hwGrtuAi Y4x+3IBUepmXdux/zqlyg67Qwi38mGXB/GyAeYi56zzKiq3fkQaFMu12yqvwv+qPn47jWv lNpM7nDTE4QEh1RJtyz9Oxiqui9nRcJxBPZRWQ5zvDCUK7zph1zRtHKlRI6WbQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926900; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=weljQaDVcOBTsbMT/mbs9vK6lXEPiPjLw/PPJ4zNKoc=; b=S68RrBduyf1iztV60u53i0PMQh9Np89IvyVjbiAEr8DJcEBEEU1HB3jh67/9r+x34XtuEJ xL82ud3pHzHWJmWM/GGWzz3GUR4oQ0URvH/TVZKY4Tf+zrgUoAio+iKdgpBvhVep+A5bC4 jm4n6wb+1DA48WJ3OPVGJtwOQ0RGfzw8QlM21s6PXvmSNZPSX2zs7c/J+9fn0b3eeUsrDq 5uGW4VOkKJ5E+O6dnte8+V3XJCXeIcYUzefnQKoRhG9AB40j74DIBQjygE5oJ7bGl5bepS g8z2aAV4pdLa0SlaBxUtsGwtWGFhK45NSInpY5E3pYcG0G/X6GxlEQao7f2SNw== 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 4Zmz1J5Bbpz3hq; Tue, 29 Apr 2025 11:41:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfekK045845; Tue, 29 Apr 2025 11:41:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfeYF045842; Tue, 29 Apr 2025 11:41:40 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:40 GMT Message-Id: <202504291141.53TBfeYF045842@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 28c5a37f07b3 - stable/14 - net80211; LinuxKPI 802.11: introduce IEEE80211_RX_F_ICV_STRIP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 28c5a37f07b39ec7ff0e1be95d0b23db6f671fe6 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=28c5a37f07b39ec7ff0e1be95d0b23db6f671fe6 commit 28c5a37f07b39ec7ff0e1be95d0b23db6f671fe6 Author: Bjoern A. Zeeb AuthorDate: 2025-04-17 19:33:59 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:28 +0000 net80211; LinuxKPI 802.11: introduce IEEE80211_RX_F_ICV_STRIP For TKIP with iwlwifi we are seeing DECRYPTED | ICV_STRIPPED | MMIC_STRIPPED. In tkip_decap() we however unconditionally stripped the ICV which resulted in a short frame and Gtk handshake never finished. Add IEEE80211_RX_F_ICV_STRIP to net80211. Add the extra check to the TKIP code. While there correct a comment and leave another about contiguous data assumptions. In LinuxKPI 802.11 translate the new flag and sort them into STRIP and FAIL while here. Sponsored by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D49880 (cherry picked from commit 731ff40069d28ddab206dee276fbbdf0f28a2124) --- sys/compat/linuxkpi/common/src/linux_80211.c | 10 ++++++---- sys/net80211/_ieee80211.h | 1 + sys/net80211/ieee80211_crypto_tkip.c | 9 +++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 85c0945cb9d3..84241c2dd89f 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6467,14 +6467,16 @@ lkpi_convert_rx_status(struct ieee80211_hw *hw, struct lkpi_sta *lsta, if (rx_status->flag & RX_FLAG_PN_VALIDATED) rx_stats->c_pktflags |= IEEE80211_RX_F_PN_VALIDATED; } + if (rx_status->flag & RX_FLAG_IV_STRIPPED) + rx_stats->c_pktflags |= IEEE80211_RX_F_IV_STRIP; + if (rx_status->flag & RX_FLAG_ICV_STRIPPED) + rx_stats->c_pktflags |= IEEE80211_RX_F_ICV_STRIP; + if (rx_status->flag & RX_FLAG_MIC_STRIPPED) + rx_stats->c_pktflags |= IEEE80211_RX_F_MIC_STRIP; if (rx_status->flag & RX_FLAG_MMIC_STRIPPED) rx_stats->c_pktflags |= IEEE80211_RX_F_MMIC_STRIP; if (rx_status->flag & RX_FLAG_MMIC_ERROR) rx_stats->c_pktflags |= IEEE80211_RX_F_FAIL_MMIC; - if (rx_status->flag & RX_FLAG_MIC_STRIPPED) - rx_stats->c_pktflags |= IEEE80211_RX_F_MIC_STRIP; - if (rx_status->flag & RX_FLAG_IV_STRIPPED) - rx_stats->c_pktflags |= IEEE80211_RX_F_IV_STRIP; if (rx_status->flag & RX_FLAG_FAILED_FCS_CRC) rx_stats->c_pktflags |= IEEE80211_RX_F_FAIL_FCSCRC; #endif diff --git a/sys/net80211/_ieee80211.h b/sys/net80211/_ieee80211.h index 798dde6fe08a..40e542e7372a 100644 --- a/sys/net80211/_ieee80211.h +++ b/sys/net80211/_ieee80211.h @@ -575,6 +575,7 @@ struct ieee80211_mimo_info { #define IEEE80211_RX_F_VHT 0x00008000 #define IEEE80211_RX_F_PN_VALIDATED 0x00010000 /* Decrypted; PN validated */ #define IEEE80211_RX_F_MIC_STRIP 0x00020000 /* Decrypted; MIC stripped */ +#define IEEE80211_RX_F_ICV_STRIP 0x00040000 /* Decrypted: ICV (ic_trailer) stripped */ /* Channel width */ #define IEEE80211_RX_FW_20MHZ 1 diff --git a/sys/net80211/ieee80211_crypto_tkip.c b/sys/net80211/ieee80211_crypto_tkip.c index 4b5cf73e1065..ca474b504fff 100644 --- a/sys/net80211/ieee80211_crypto_tkip.c +++ b/sys/net80211/ieee80211_crypto_tkip.c @@ -361,16 +361,17 @@ finish: * are required to. */ if (! ((rxs != NULL) && (rxs->c_pktflags & IEEE80211_RX_F_IV_STRIP))) { + /* XXX this assumes the header + IV are contiguous in an mbuf. */ memmove(mtod(m, uint8_t *) + tkip.ic_header, mtod(m, void *), hdrlen); m_adj(m, tkip.ic_header); } /* - * XXX TODO: do we need an option to potentially not strip the - * WEP trailer? Does "MMIC_STRIP" also mean this? Or? + * Strip the ICV if hardware has not done so already. */ - m_adj(m, -tkip.ic_trailer); + if (rxs != NULL && (rxs->c_pktflags & IEEE80211_RX_F_ICV_STRIP) == 0) + m_adj(m, -tkip.ic_trailer); return 1; } @@ -403,7 +404,7 @@ tkip_demic(struct ieee80211_key *k, struct mbuf *m, int force) } /* - * If IV has been stripped, we skip most of the below. + * If MMIC has been stripped, we skip most of the below. */ if ((rxs != NULL) && (rxs->c_pktflags & IEEE80211_RX_F_MMIC_STRIP)) goto finish; From nobody Tue Apr 29 11:41:41 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1M2txhz5tvBt; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1K6q8cz3wh3; Tue, 29 Apr 2025 11:41:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926902; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCMbjmhFkBkn3/7eilmsvhSzJj2+GL3bCaNZNw+WCAI=; b=cl2py8krmkVt30UAXTFHXWE1IrG9f6AoeDIhFwZw6v5S6d/pWfXDjHDciVWAjeuF2Gykb8 twf3sQz4VnxpleJ4sWjpQLtk2aoH6e8sGI+efUbclbErFit/nF+BnBnLXumNaFpyk3VBql u2X4aAc2WRulFbD1a6p5hsiPL0iGbTztzPDTAs5dxYffua3qEI+Aw9OQfmqoXhhnUILy76 0/x/Je5Jlouks/Jz2phpom4wT5EqRcCTmPj1BR+5MtorWTjIpW525dLboh581FKil77uah qpJU19GO5063P8N6z6xlLfjTc9jRa1HKtJL+nNQ+G97/RM7OYDB8iilhFpLvrw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926902; a=rsa-sha256; cv=none; b=Uj8bUFadZMGCbTCuE1KgXN6QqnqFgHBSAy6ZzRAN48Y/JquS8oRO4ZY5JRV/TYCqqrA7F7 lL3RJUpRv+xuee9Aiq7GqHJl9WR5vwN05YJ3wDnz4thKl5vzmMseRq8v3+3lfRqbY1lneQ hYI74W+5tJehQgkFUxffNqCsPuY9AdCAEDQ6A4uYguZ+BlBqKzzZRMuNX0ya8+I9nhbZl1 ewr3Lo5SQiq9YFaayZmtLhS7dC09LOX5xImVHIX5BcCjlXzlLn9xRp1FioBOD0mvL1EcL2 Fw4p/NnqXrlmzV3XDHlp+Th9WtheGoVi81Se0mACwtDvDflFjx7peB3gI6wFcw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926902; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QCMbjmhFkBkn3/7eilmsvhSzJj2+GL3bCaNZNw+WCAI=; b=EfvhcVE8QInW1eTwyLJi74j4T/GERZUdYz4JyhADIpQq0aLUN85uOweUfCD28KmO5S6CTc XIdp5JHh+1bOhMDbR8bR9oWt10Gp+vnfoILRFa9YQNLxqOqm/4VuUkTpqzEBbZwk+AmtIq PoycLT5Q1BSjSXB9zGemmTnLl3NDLne0b/wz2Ob8c5xdpBtrauqFoHpaDuddS1z0ddx5jN J9TIWTCnkGHR5M5sH1bbBauIOkAxfLFlB91uRGZM77PChrNqXMlnd7vOvpryHpCHxhrS2e 471h8VNSv5W4tGnB+irGYMgvxyLhoRQdXzTpnEj/PrwyAQ5ONoM8oNZcxvbSXg== 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 4Zmz1K5v8Lz3f5; Tue, 29 Apr 2025 11:41:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBffJ1045886; Tue, 29 Apr 2025 11:41:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBffUx045883; Tue, 29 Apr 2025 11:41:41 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:41 GMT Message-Id: <202504291141.53TBffUx045883@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 84b198f68f9b - stable/14 - net80211: add IEEE80211_CONF_AMPDU_OFFLOAD for AMPDU[-TX] offload List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 84b198f68f9bd3cc4733cd174500480d7faf9a2e Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=84b198f68f9bd3cc4733cd174500480d7faf9a2e commit 84b198f68f9bd3cc4733cd174500480d7faf9a2e Author: Bjoern A. Zeeb AuthorDate: 2025-04-14 18:19:28 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:28 +0000 net80211: add IEEE80211_CONF_AMPDU_OFFLOAD for AMPDU[-TX] offload Drivers will set IEEE80211_FEXT_AMPDU_OFFLOAD to indicate to net80211 that the driver or the firmware will handle AMPDU[-TX] entirely on their own and net80211 should not do anything. Following the IEEE80211_CONF_FRAG_OFFLOAD() example add a IEEE80211_CONF_AMPDU_OFFLOAD() check in net80211 to handle the condition. Sponsored by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D49829 (cherry picked from commit 585388f9d986151045aaedcde1d29f89e62975c3) --- sys/net80211/ieee80211_output.c | 2 +- sys/net80211/ieee80211_var.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index 22bbfe98f4b5..9d6aa750cda1 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -214,7 +214,7 @@ ieee80211_vap_pkt_send_dest(struct ieee80211vap *vap, struct mbuf *m, * frames will always have sequence numbers allocated from the NON_QOS * TID. */ - if (do_ampdu) { + if (!IEEE80211_CONF_AMPDU_OFFLOAD(ic) && do_ampdu) { if ((m->m_flags & M_EAPOL) == 0 && (! mcast)) { int tid = WME_AC_TO_TID(M_WME_GETAC(m)); struct ieee80211_tx_ampdu *tap = &ni->ni_tx_ampdu[tid]; diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 552c45e5ddb2..4dbb940860f9 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -100,6 +100,8 @@ ((ic)->ic_flags_ext & IEEE80211_FEXT_SEQNO_OFFLOAD) #define IEEE80211_CONF_FRAG_OFFLOAD(ic) \ ((ic)->ic_flags_ext & IEEE80211_FEXT_FRAG_OFFLOAD) +#define IEEE80211_CONF_AMPDU_OFFLOAD(ic) \ + ((ic)->ic_flags_ext & IEEE80211_FEXT_AMPDU_OFFLOAD) /* * 802.11 control state is split into a common portion that maps @@ -697,13 +699,14 @@ MALLOC_DECLARE(M_80211_VAP); #define IEEE80211_FEXT_VHT 0x00400000 /* CONF: VHT support */ #define IEEE80211_FEXT_QUIET_IE 0x00800000 /* STATUS: quiet IE in a beacon has been added */ #define IEEE80211_FEXT_UAPSD 0x01000000 /* CONF: enable U-APSD */ +#define IEEE80211_FEXT_AMPDU_OFFLOAD 0x02000000 /* CONF: driver/fw handles AMPDU[-TX] itself */ #define IEEE80211_FEXT_BITS \ "\20\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \ "\0114ADDR\12NONEPR_PR\13SWBMISS\14DFS\15DOTD\16STATEWAIT\17REINIT" \ "\20BPF\21WDSLEGACY\22PROBECHAN\23UNIQMAC\24SCAN_OFFLOAD\25SEQNO_OFFLOAD" \ "\26FRAG_OFFLOAD\27VHT" \ - "\30QUIET_IE\31UAPSD" + "\30QUIET_IE\31UAPSD\32AMPDU_OFFLOAD" /* ic_flags_ht/iv_flags_ht */ #define IEEE80211_FHT_NONHT_PR 0x00000001 /* STATUS: non-HT sta present */ From nobody Tue Apr 29 11:41:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1P1pSSz5tvJ0; Tue, 29 Apr 2025 11:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1M002Vz3wnt; Tue, 29 Apr 2025 11:41:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YZujqNVaSc/Ty/26PMVPRaTHxXb6BhOgmpYkc1x4jQY=; b=X5hgHCUt35tsvLmBUnZG7sc/jQnTQ/8IynbpqHksryyjG9ZgKw+hHGOSBDU4kfa+4vCIMn XTS8w+g/3HtbOusb/+7llFGkZRKSF1pEiNSOXT9HUJOTCz/XxKNl0gA2XuzN29Fa8FgjLr CAy6hJolscNFVXY7pxKzMABh7eozApx7Fqh3u+xEAHOLsm6/NBv+h3B5wow5Jw7D8fcLo6 ryfWjxeIdcX9KgoESxiyDYI5nrELgs5upgeX/bElnUrnf7U3XNOTZKyfhlmzocnDik753V alqeus+lIZaRspJ+Zql1vBBZwDzhhmbkIMWKwgWqch05HLzRKRAgUjyDi4vvcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926903; a=rsa-sha256; cv=none; b=fwe6hU71XXOlp2hTVhjqoBoEYoDcIjmRWIlH6DhMwz59yAAfv+mMimlEoLpmupWpFIfs1T 6VLMyPbdDVrcjD4DlDQQbsy+GNTwbe/nycioHxkkNFIcilz13k6TCJoELpE/cPUiEPMy8v lgqm+jsfmzigTEiCu8uYZK0N7/Pkc/87Qr5eWvmUrthcnEAzJfMGMijRgM5Z8Ws3hHHCZj KoUVAEceHYIFeWqPxA8eCBulkjmlFpFDe4qnmSJYK7spSi8r2/uXwu2AN+w3cxrj13agNU /hzGt4NmiNe87ZAEtumWWCqFOgAuOeklVH6Yz2Nib+iVmsQy0WL44Wkc4qK6XQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926903; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YZujqNVaSc/Ty/26PMVPRaTHxXb6BhOgmpYkc1x4jQY=; b=GszV6CPA0lpAEElM6ftds1cO3yy7jJ3dQp2TnsC/Hx0Kyzk3+FXeVRfuoAufLMRc2rTOHP t3Guz1ocXGFNMq/FTaFpM/K8/Kc4yzaBVZImwg53w2JSrz4DKBe3oLQsN0GToIqIyu+wwm uz1FNyStFKQaqXv4HbksRkQTBizLCEVoT3OOxbuSNxRsgTK/e0OMYRUrqRHUy1A2Hzibk2 2TpkVE9qRWZf4Hhi3SmwsSbjw+knxWSqx7e+cuPsjBujdD7Y7iKhS6gGI/BH3SgLyPB7Kf 6YnyIhotETU2gJqKLYT/+ilLU8DzCbO39PqdXdKgLTlSyVYD7GYJ7RF6kbHEQw== 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 4Zmz1L6dKvz3wJ; Tue, 29 Apr 2025 11:41:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfguU045928; Tue, 29 Apr 2025 11:41:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfgij045924; Tue, 29 Apr 2025 11:41:42 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:42 GMT Message-Id: <202504291141.53TBfgij045924@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: fec21aaf328d - stable/14 - LinuxKPI: 802.11: no need to lock during lkpi_lsta_alloc() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fec21aaf328d90ffd87f8e508ad19393e555a9d4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=fec21aaf328d90ffd87f8e508ad19393e555a9d4 commit fec21aaf328d90ffd87f8e508ad19393e555a9d4 Author: Bjoern A. Zeeb AuthorDate: 2025-04-22 19:52:19 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:29 +0000 LinuxKPI: 802.11: no need to lock during lkpi_lsta_alloc() Given upon sta allocation we do not adjust the chanctx in case of mismatch there is not need to lock here. This fixes a problem that upon shutdown net80211 once again can race into here replacing the node from a context where it is holding a lock which does not allow us to hold an sx lock (sleeping thread holds a non-sleepable lock). Sponsored by: The FreeBSD Foundation Reported by: ziaee Tested by: ziaee (cherry picked from commit dbc3b1cb4fa6d1f9ac7ac1e860179ce1b432cd70) --- sys/compat/linuxkpi/common/src/linux_80211.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 84241c2dd89f..f3464f370a13 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -777,9 +777,7 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], sta->deflink.bandwidth = IEEE80211_STA_RX_BW_20; sta->deflink.rx_nss = 1; - wiphy_lock(hw->wiphy); lkpi_sta_sync_from_ni(hw, vif, sta, ni, false); - wiphy_unlock(hw->wiphy); IMPROVE("he, eht, bw_320, ... smps_mode, .."); From nobody Tue Apr 29 11:41:45 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1P6Dkwz5tvBy; Tue, 29 Apr 2025 11:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1P1gvJz3wtv; Tue, 29 Apr 2025 11:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5M2nLcPYG4GYIBoXhCvj68D2tpJv6ifsFgXJ5aztCz8=; b=wMq0NQHTur/LjTozSKl4dGzm4BkK+gTaucyfRclq1ULMMXVR8/zUcbxccb+zWdMhdolGd0 0tql83INJ8uDlFVHI9MgLdkDogRXSmE7WtOB/PAeKZF4goBpFOl1ZBGulOGx5KDsCZOxkE oSvYhh8/FmHRpUMFoxpxNQ0ou5tjaBtKyyvqy7WYDymcFk+sobchcTW6mtCn8hzu7HzM1N sXDwHV5wmo4qc0oaylwwNtmyZ5jv0lTN45HzvJ2AmZois94JEImsT7Q28tb+/sTn4No49G RQuCyndBs2WSsO07Ofa8n++9Ht0at1rIbz9QgmK+nXHT1+o0IiWq79ArY2troA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926905; a=rsa-sha256; cv=none; b=q17Pvsuvvxxz/CBGYGH9j2R59rsqGj+QpPnPZL6eF3Y/asXTwKEyWMLolVL6JDJCpKFrsd nmf6O6I7g0L/loemzi3UvDNt6buGWrpbaXbl+0C9ZSQ0oyeYFnqltIPZPQhYVURcRQP8Sg esJl5ZYI5k0MemN8azaEBRpKLz6yUE/WiwBUwq6mTN7XlF5surnV3mnE57xgu2QXsAVWGF oJYGfcpTezSSE8upQQqsCX+4T9cwA1v0dPLKc6vNQhmVeHukSIE9vd2DNbRHnQg25n4wdj 4eORLjUvv+rTE6wOCcER9tj2EYtb2QrfRD3lyylk9gebB9nMfIl1P+FMFMKaNA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5M2nLcPYG4GYIBoXhCvj68D2tpJv6ifsFgXJ5aztCz8=; b=fIhf6H41W+eGfeavl0VSNdcYy/imFIMRSwc3CpnaWJXWrBtb8fF1yaY08VTlUwwp1UXNCN nE3EO5Xa4vqWfvRYGJ4D7CcbWcj7yv2wyXOSFOHJIfah+AlH3+G3TLceKH2shhGOBgPfpX GkymIpPUplkeIP0NdzT50dqFN8NSQa5nSt5yrV7uosHeHEM/bwjxJyYjUXsGTlf9Gbrb+F rqVTdnlQ3t9DV8JL7D55KqDttP7EPu968bXJo6tvGV/LOJemzszwO/TdwFTRqcQ+t7U+34 jtzOiwA194FIoDXXEP6u61yypolHG2yc5LHtPm0J2lnTOL+IHnHpr4yCIUcung== 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 4Zmz1P1G3Vz43Z; Tue, 29 Apr 2025 11:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfjeB046004; Tue, 29 Apr 2025 11:41:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfjAk045998; Tue, 29 Apr 2025 11:41:45 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:45 GMT Message-Id: <202504291141.53TBfjAk045998@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 7f4088f4286c - stable/14 - LinuxKPI: skbuff: remove _alloc_len field List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7f4088f4286c850d0c8cc694922ca5cbd5df8470 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7f4088f4286c850d0c8cc694922ca5cbd5df8470 commit 7f4088f4286c850d0c8cc694922ca5cbd5df8470 Author: Bjoern A. Zeeb AuthorDate: 2025-04-22 20:24:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:29 +0000 LinuxKPI: skbuff: remove _alloc_len field Initially we saved the exact allocation length for contigfree(9). contigfree can now be replaced by free(9) so there is no need to remember that value anymore. Removing it also simplifies the linuxkpi_kfree_skb() code. Sponsored by: The FreeBSD Foundation (cherry picked from commit 73e3969fd435eea296b44f3bd40ff76c042c9a36) --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 1 - sys/compat/linuxkpi/common/src/linux_80211.c | 4 ++-- sys/compat/linuxkpi/common/src/linux_skbuff.c | 13 ++----------- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index 9db29c72e20c..7a8521e6fd38 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -154,7 +154,6 @@ struct sk_buff { }; struct list_head list; }; - uint32_t _alloc_len; /* Length of alloc data-buf. XXX-BZ give up for truesize? */ uint32_t len; /* ? */ uint32_t data_len; /* ? If we have frags? */ uint32_t truesize; /* The total size of all buffers, incl. frags. */ diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index f3464f370a13..8e56862d7a92 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6545,9 +6545,9 @@ linuxkpi_ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, goto no_trace_beacons; if (linuxkpi_debug_80211 & D80211_TRACE_RX) - printf("TRACE-RX: %s: skb %p a/l/d/t-len (%u/%u/%u/%u) " + printf("TRACE-RX: %s: skb %p l/d/t-len (%u/%u/%u) " "h %p d %p t %p e %p sh %p (%u) m %p plen %u len %u%s\n", - __func__, skb, skb->_alloc_len, skb->len, skb->data_len, + __func__, skb, skb->len, skb->data_len, skb->truesize, skb->head, skb->data, skb->tail, skb->end, shinfo, shinfo->nr_frags, m, m->m_pkthdr.len, m->m_len, is_beacon ? " beacon" : ""); diff --git a/sys/compat/linuxkpi/common/src/linux_skbuff.c b/sys/compat/linuxkpi/common/src/linux_skbuff.c index 16a7083123be..4139295fc837 100644 --- a/sys/compat/linuxkpi/common/src/linux_skbuff.c +++ b/sys/compat/linuxkpi/common/src/linux_skbuff.c @@ -115,7 +115,6 @@ linuxkpi_alloc_skb(size_t size, gfp_t gfp) #endif if (skb == NULL) return (skb); - skb->_alloc_len = len; skb->truesize = size; skb->head = skb->data = skb->tail = (uint8_t *)(skb+1); @@ -258,14 +257,7 @@ linuxkpi_kfree_skb(struct sk_buff *skb) skb_free_frag(p); } -#ifdef __LP64__ - if (__predict_true(linuxkpi_skb_memlimit == 0)) - free(skb, M_LKPISKB); - else - contigfree(skb, skb->_alloc_len, M_LKPISKB); -#else free(skb, M_LKPISKB); -#endif } #ifdef DDB @@ -284,9 +276,8 @@ DB_SHOW_COMMAND(skb, db_show_skb) db_printf("skb %p\n", skb); db_printf("\tnext %p prev %p\n", skb->next, skb->prev); db_printf("\tlist %p\n", &skb->list); - db_printf("\t_alloc_len %u len %u data_len %u truesize %u mac_len %u\n", - skb->_alloc_len, skb->len, skb->data_len, skb->truesize, - skb->mac_len); + db_printf("\tlen %u data_len %u truesize %u mac_len %u\n", + skb->len, skb->data_len, skb->truesize, skb->mac_len); db_printf("\tcsum %#06x l3hdroff %u l4hdroff %u priority %u qmap %u\n", skb->csum, skb->l3hdroff, skb->l4hdroff, skb->priority, skb->qmap); db_printf("\tpkt_type %d dev %p sk %p\n", From nobody Tue Apr 29 11:41:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1P1pT6z5tv6h; Tue, 29 Apr 2025 11:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1N10dsz3wdT; Tue, 29 Apr 2025 11:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+VaEOZ+gge0u61dEvEW/AlzNo8aU8MuIG8n7AjEJfHo=; b=CmtFcccI5SxI6nrfZGPwxIEWgkHQSxXQHDx6jWHNGkoemELdoA+i6wRKgBv56powc9Yzoi /8elGXsCBd3YXecLMKVLt0UNab9Q7+0ijgw+7ixr/t2GG8oBoJ05d7vSlNj280qPsL0HQa ZypPqeAAmw0Z41Y4wWyPFM1WCoJsywqo8jU8ksn4fefm5VqVzal8/fZHh1zVPy6W/z3d5f TSW4lArBDJ7sjr1/NtvGu7OlIpDvdBnLWUAimiAn+NzDo0vePc4XLwol3B6VfKO/tDz5X8 QuZOtoAcXjCJ2roiIFFuyXEJPsDnUbAomdpvLriuoinIY8PmVeB0SKpKi6A7RQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926904; a=rsa-sha256; cv=none; b=SsrKLdk5bRzEA7zdFR8y6rUWL1pIfuLA07GSoZ0rgs2Fdpc1aT5Q3IVjTXNMkMd03Wen6X qlpkPRhQWno3IdKw2KKrLZUxuznCFcGTTphlw17odfWtWdFUxRPQiwchhCRBb0FDvzfQAp Y/4B3+RZLmMf2je8XuK/n71qYdzR7hvkqGWR+k22gA75ikil4QzAapucm8XAqvSv2BHA9n NwDxSu8nl12Qag0PNra/Bqg2hPwdQJkODYbzYKVeyXAKojp2JvtqjOADw8Gv1CjEXvFzm9 vPFH1wrGbcGMDujuCRzrGHXsopg92fGMrtoHYAlXGMl+Qk8+gUojh4gHsiXm1Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+VaEOZ+gge0u61dEvEW/AlzNo8aU8MuIG8n7AjEJfHo=; b=MBU6nXqKTZGJBPlVN9Ldk6ZCbCye9ygbow6cTTUkg5J2I9cToWv0gtgujkuFpBd/bksCqe ia2WTzdcMyVqTDcsddkidjDSKtpy/AuLjhs7T50o94JCSWa7YhgZxmT/iNiLlyWkNlRjit USr7kKwuAtBklUFBATeEQDBWNE2ZZ7izMigdcQMpoqRPQhngreb6HTEnawXfEBcJvoMnQo kd/GIeuaIkzx3TV3Xy+Yjs1Xa0pBFOLsXWBE4aaBjeGKu7UIpNRd6qoonDV8XmavEZdlwL OEzRmnyTrIy9q8DaPAPIkxJapxTZ5fxSh6oyZg2DRbKAT+ePvxD7Jc1/4igZEQ== 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 4Zmz1N0Z3Nz3cF; Tue, 29 Apr 2025 11:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfhP3045964; Tue, 29 Apr 2025 11:41:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfhcd045961; Tue, 29 Apr 2025 11:41:43 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:43 GMT Message-Id: <202504291141.53TBfhcd045961@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: bb9b11bc6403 - stable/14 - LinuxKPI: add type for __wsum List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bb9b11bc6403eab14c98b1a31219b93bb7959518 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=bb9b11bc6403eab14c98b1a31219b93bb7959518 commit bb9b11bc6403eab14c98b1a31219b93bb7959518 Author: Bjoern A. Zeeb AuthorDate: 2025-04-14 21:04:27 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:29 +0000 LinuxKPI: add type for __wsum Seems this is the correct type for the csum field in an sk_buff. Add it as uint32_t __bitwise__. Sponsored by; The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49831 (cherry picked from commit c925e0a77606d07e4d93204a1d35530176c4b344) --- sys/compat/linuxkpi/common/include/linux/types.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/compat/linuxkpi/common/include/linux/types.h b/sys/compat/linuxkpi/common/include/linux/types.h index 440592bb5f84..faec55a72e57 100644 --- a/sys/compat/linuxkpi/common/include/linux/types.h +++ b/sys/compat/linuxkpi/common/include/linux/types.h @@ -64,6 +64,7 @@ typedef unsigned gfp_t; typedef off_t loff_t; typedef vm_paddr_t resource_size_t; typedef uint16_t __bitwise__ __sum16; +typedef uint32_t __bitwise__ __wsum; typedef unsigned long pgoff_t; typedef unsigned __poll_t; From nobody Tue Apr 29 11:41:48 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1T1QSWz5tvJ4; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1S3vk9z3ws5; Tue, 29 Apr 2025 11:41:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3TWyhh92uWuHMlvzqp5EwXMBQZ2FAHUrv6FbmZg70YQ=; b=FFWg0w2WJotYWreOpbMe3TtmAIjhUh0E/HUjRdLhir9yZz9AwhyqcckzFyxQ2DGzcWXpaW SI8gQTnuxtfzbtU/Nubdb0FxaCIu75H/7Epf4QW3QfWRwJinrrWqFI6CWaWKQCkaYvSn4J skY/ZYdAbDtHH+MI1a68+PAPHiFBcFCNk1nwU+F0byJxeB60aHZ1acO4OYzFClaWtEIntH gwNCZEfDiaykjhGPYR+BMLfuqVP65wHG9fNj5VTrkL00LQaiZ6FyzPDqJ1/tORiR6TDj+S KzQI1pJi0pdYqvulGqcx3vZFPtLYCFxqBu2H8eXxqCKs/ljvMyDaY1Bn/HmR7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926908; a=rsa-sha256; cv=none; b=EvBs6hhcNLcq2wkQYWmCUrbB3fMFzWBo9i7BV5JTGjFYh1dgIZ10OGJbLe4F7x4FFYanU7 24jyYxqoNFVs1Ow/whufZqHznUNCy1gaehG1FL8xVO4A1C6ZY9hOL/QO0NJBPQZtcCSEYV 1MDWuHW/cWgENg916F0MrGfXsYTD27+pR5s1H5MlF06WXy+emgcUrCY2/Ni431Ir6aVxW9 K7CWiOnS63vr5sDeIY3/3Iv+eUqQGozSPlBira5bU90f1Z1kq4BkpzkiW2ApxZmhsX7khA QSQ/LJQ5xjPOapleoWDGW32WILt4Ea7Dq98q1bOTJb4mpXAEbkcLj5yPsx+Byw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926908; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3TWyhh92uWuHMlvzqp5EwXMBQZ2FAHUrv6FbmZg70YQ=; b=rZnP0FmDvKRqb3rX9//R2r2m4fksR1p46xf1InV/J0AoIFASY4qotylT+WiLMmfRyMqJqv NfqW3kngMw7vSd8B2fUOo+AGfrajnaoi9zgAD+cY9ZI+GF6t2fkDSM6OFoi4+MB3uT4lGH sC8XUM2UzsQcql9UkR6+YTfvxkWzfMeqj/p8p3vYmq8llRdU/JbizPQ8E/XBYnLsO6ILP3 abZozvpNEP/4QulQh8UQT3qFIW6KGxRsk32N/QMJWQXhe1QKPCUE7MXIcsENscmthNK+vN 0N5YJF7iSV5DrnLaS89XEZrr9SCqQ6xkIIQQJv+E/dzmN36D7edepac0AqVfXQ== 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 4Zmz1S3RWFz3jC; Tue, 29 Apr 2025 11:41:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfmCk046129; Tue, 29 Apr 2025 11:41:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfmR6046126; Tue, 29 Apr 2025 11:41:48 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:48 GMT Message-Id: <202504291141.53TBfmR6046126@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: df71d2753d00 - stable/14 - LinuxKPI: skbuff: rewrite data allocation to use __kmalloc by default List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: df71d2753d007c51d1722044877e1a4ade867aa4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=df71d2753d007c51d1722044877e1a4ade867aa4 commit df71d2753d007c51d1722044877e1a4ade867aa4 Author: Bjoern A. Zeeb AuthorDate: 2025-04-22 20:53:47 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:30 +0000 LinuxKPI: skbuff: rewrite data allocation to use __kmalloc by default Put tunable/contigmalloc code under SKB_DMA32_MALLOC and remove the __LP64__ checks for simplicity (apart from the 36bit check as that would overflow the variable with the constant value). busdma still has trouble bouncing contiguous memory with nseg=1 if it is multiple pages. Switch the other code to use __kmalloc() which now automatically provides physically contiguous memory and deals with freeing as well. This code should in theroy be enough now. If people use iwlwifi(4) pre-22000 (9xxx 8xxx ...) chipsets on Laptops with more than 64GB of memory they may see bounce errors as well now. Sposnored by: The FreeBSD Foundation (cherry picked from commit e6c91f8e5be66d774bc07f4055aa38fb2e287ff6) (cherry picked from commit cd649cfc7ab23a8a36218977c60ed20afe48aea9) --- sys/compat/linuxkpi/common/src/linux_skbuff.c | 32 +++++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_skbuff.c b/sys/compat/linuxkpi/common/src/linux_skbuff.c index d454e5fc3ab8..abfb642ba708 100644 --- a/sys/compat/linuxkpi/common/src/linux_skbuff.c +++ b/sys/compat/linuxkpi/common/src/linux_skbuff.c @@ -67,22 +67,26 @@ SYSCTL_INT(_compat_linuxkpi_skb, OID_AUTO, debug, CTLFLAG_RWTUN, static uma_zone_t skbzone; -#ifdef __LP64__ +#define SKB_DMA32_MALLOC +#ifdef SKB_DMA32_MALLOC /* * Realtek wireless drivers (e.g., rtw88) require 32bit DMA in a single segment. * busdma(9) has a hard time providing this currently for 3-ish pages at large * quantities (see lkpi_pci_nseg1_fail in linux_pci.c). * Work around this for now by allowing a tunable to enforce physical addresses - * allocation limits on 64bit platforms using "old-school" contigmalloc(9) to - * avoid bouncing. + * allocation limits using "old-school" contigmalloc(9) to avoid bouncing. + * Note: with the malloc/contigmalloc + kmalloc changes also providing physical + * contiguous memory, and the nseg=1 limit for bouncing we should in theory be + * fine now and not need any of this anymore, however busdma still has troubles + * boncing three contiguous pages so for now this stays. */ static int linuxkpi_skb_memlimit; SYSCTL_INT(_compat_linuxkpi_skb, OID_AUTO, mem_limit, CTLFLAG_RDTUN, &linuxkpi_skb_memlimit, 0, "SKB memory limit: 0=no limit, " "1=32bit, 2=36bit, other=undef (currently 32bit)"); -#endif static MALLOC_DEFINE(M_LKPISKB, "lkpiskb", "Linux KPI skbuff compat"); +#endif struct sk_buff * linuxkpi_alloc_skb(size_t size, gfp_t gfp) @@ -103,20 +107,20 @@ linuxkpi_alloc_skb(size_t size, gfp_t gfp) return (skb); len = size; +#ifdef SKB_DMA32_MALLOC /* * Using our own type here not backing my kmalloc. * We assume no one calls kfree directly on the skb. */ -#ifdef __LP64__ - if (__predict_true(linuxkpi_skb_memlimit == 0)) { - p = malloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO); - } else { + if (__predict_false(linuxkpi_skb_memlimit != 0)) { vm_paddr_t high; switch (linuxkpi_skb_memlimit) { +#ifdef __LP64__ case 2: high = (0xfffffffff); /* 1<<36 really. */ break; +#endif case 1: default: high = (0xffffffff); /* 1<<32 really. */ @@ -125,10 +129,9 @@ linuxkpi_alloc_skb(size_t size, gfp_t gfp) len = roundup_pow_of_two(len); p = contigmalloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO, 0, high, PAGE_SIZE, 0); - } -#else - p = malloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO); + } else #endif + p = __kmalloc(len, linux_check_m_flags(gfp) | M_ZERO); if (p == NULL) { uma_zfree(skbzone, skb); return (NULL); @@ -272,7 +275,12 @@ linuxkpi_kfree_skb(struct sk_buff *skb) skb->head = NULL; } - free(skb->head, M_LKPISKB); +#ifdef SKB_DMA32_MALLOC + if (__predict_false(linuxkpi_skb_memlimit != 0)) + free(skb->head, M_LKPISKB); + else +#endif + kfree(skb->head); uma_zfree(skbzone, skb); } From nobody Tue Apr 29 11:41:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1T6ZPWz5tvL5; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1T46zLz3x1X; Tue, 29 Apr 2025 11:41:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vdtc6RoLmeHO/4JUQipXTIsLv2kKRiPNmUrW0nuylgY=; b=MVVp0TqpapnmvjGmmw9XN+0xjMkNErDTz/yAsqOjdL6rS+KIr1fNgqoSj57C4ySXaIn2JG Ma+3OEX8jTdkHX+CC7C6cYz/hOAKTp0yTYHloLWMOvS6YgBpFUz5PJy3YOvyDtpwHDlZqo unNS1gbWySRnpI2sw2tVC7bJUKdSkFOUrSvMsDcw1X0twLF8tD1y9CihUHcbh2UgnXU+5G HTX7vxYgKZq3OEP5NTT3Jo9DCqZcdxpx5TJG8jAYS1dML0/8wo2xDKKoosbjzmHnOMCfrU OSw6FQMD0oypdHtgLhDYlWCLHsOrZXGUlUE0DZj04ef1BP04pgL93dnIa/k9lw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926909; a=rsa-sha256; cv=none; b=W6kV/idNl8IQmxlsP6jZBbqYhB+2Vw0T5fLwR/vkWONH/cT5QEoMtX8SXgVnxi9U2jY3M+ fnheecVCl4M/5fDCaNAhmWR1isbhFdKrj7O/gugIJ6QdJOCOfGu4Qd8a8yq4dMauR0ZS3E PM7pdKKI444A1NHWxuEQzLUiEOlEt9s+rKmL0g/y8Sp+VYaGj9+I53xXQKI/SUIxkRupIM 7Rh4sK6QS8NAS3LQpvfmj4CssNc4Eb7a4nQjDbOSOzi0Smjs63JMzh2Tsns9zvACq+lqHc Tf97spCUjHbPfGiU1l1f4sCv0uiFgJfd1xQMoRABKUv/dVpmvh1tJzv0nAxoyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926909; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vdtc6RoLmeHO/4JUQipXTIsLv2kKRiPNmUrW0nuylgY=; b=ikMicPSYK6184FeGB1q4iz4yocKV1shuVj0WgUVpS+y+2h/n7LEcdLlSTepWrMkTBQkh8+ dIAlENWHv8JPaz0D8z0gVPeoRbN0wWDS6pcU5jprkgHZaG+vS9yJ02chHDVcJaC+Nx3Klw PjGJaeUZBV9etnA368RqtOZHHBwmIUwbf1TnS3dk1rCQRhN8BbEbg1AjyrkT/73GUUELKH U109TDsnYu+LT+4ffwguMocwRrG6wa9sBQfmD6iJp1thcKull6qWXYizW1xIlemQvVZS0Z GK3Tu/LEkHO2t2ZoY7HdLTWHQfy4txEC/CMUlfYC+dYco5nYlNPTl0iP3Sxrsg== 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 4Zmz1T3fwRz43b; Tue, 29 Apr 2025 11:41:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfnBT046167; Tue, 29 Apr 2025 11:41:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfnaa046164; Tue, 29 Apr 2025 11:41:49 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:49 GMT Message-Id: <202504291141.53TBfnaa046164@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c0d19fc29074 - stable/14 - LinuxKPI 802.11: move key-related functions 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c0d19fc290749f9e0ca4208a020efe911e902083 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c0d19fc290749f9e0ca4208a020efe911e902083 commit c0d19fc290749f9e0ca4208a020efe911e902083 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 13:00:17 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:30 +0000 LinuxKPI 802.11: move key-related functions together No functional changes. Sponsored by: The FreeBSD Foundation (cherry picked from commit b31f33c028446ff3e3cee32c1f0038f693683f78) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 87 ++++++++++++----------- 1 file changed, 45 insertions(+), 42 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 8856eee8c696..568695dc2a45 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -1705,26 +1705,6 @@ ieee80211_find_sta_by_ifaddr(struct ieee80211_hw *hw, const uint8_t *addr, return (linuxkpi_ieee80211_find_sta_by_ifaddr(hw, addr, ourvifaddr)); } - -static __inline void -ieee80211_get_tkip_p2k(struct ieee80211_key_conf *keyconf, - struct sk_buff *skb_frag, u8 *key) -{ - TODO(); -} - -static __inline void -ieee80211_get_tkip_rx_p1k(struct ieee80211_key_conf *keyconf, - const u8 *addr, uint32_t iv32, u16 *p1k) -{ - - KASSERT(keyconf != NULL && addr != NULL && p1k != NULL, - ("%s: keyconf %p addr %p p1k %p\n", __func__, keyconf, addr, p1k)); - - TODO(); - memset(p1k, 0xfa, 5 * sizeof(*p1k)); /* Just initializing. */ -} - static __inline size_t ieee80211_ie_split(const u8 *ies, size_t ies_len, const u8 *ie_ids, size_t ie_ids_len, size_t start) @@ -2052,13 +2032,6 @@ ieee80211_sta_uapsd_trigger(struct ieee80211_sta *sta, int ntids) TODO(); } -static __inline void -ieee80211_tkip_add_iv(u8 *crypto_hdr, struct ieee80211_key_conf *keyconf, - uint64_t pn) -{ - TODO(); -} - static inline struct sk_buff * ieee80211_tx_dequeue(struct ieee80211_hw *hw, struct ieee80211_txq *txq) { @@ -2338,18 +2311,6 @@ ieee80211_channel_switch_disconnect(struct ieee80211_vif *vif, bool _x) TODO(); } -static __inline void -ieee80211_key_mic_failure(struct ieee80211_key_conf *key) -{ - TODO(); -} - -static __inline void -ieee80211_key_replay(struct ieee80211_key_conf *key) -{ - TODO(); -} - static __inline uint32_t ieee80211_calc_rx_airtime(struct ieee80211_hw *hw, struct ieee80211_rx_status *rxstat, int len) @@ -2408,9 +2369,22 @@ ieee80211_data_to_8023(struct sk_buff *skb, const uint8_t *addr, return (-1); } +/* -------------------------------------------------------------------------- */ + static __inline void -ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf *key, - uint32_t iv32, uint16_t *p1k) +ieee80211_key_mic_failure(struct ieee80211_key_conf *key) +{ + TODO(); +} + +static __inline void +ieee80211_key_replay(struct ieee80211_key_conf *key) +{ + TODO(); +} + +static __inline void +ieee80211_remove_key(struct ieee80211_key_conf *key) { TODO(); } @@ -2431,11 +2405,38 @@ ieee80211_gtk_rekey_notify(struct ieee80211_vif *vif, const uint8_t *bssid, } static __inline void -ieee80211_remove_key(struct ieee80211_key_conf *key) +ieee80211_tkip_add_iv(u8 *crypto_hdr, struct ieee80211_key_conf *keyconf, + uint64_t pn) +{ + TODO(); +} + +static __inline void +ieee80211_get_tkip_rx_p1k(struct ieee80211_key_conf *keyconf, + const u8 *addr, uint32_t iv32, u16 *p1k) +{ + + KASSERT(keyconf != NULL && addr != NULL && p1k != NULL, + ("%s: keyconf %p addr %p p1k %p\n", __func__, keyconf, addr, p1k)); + + TODO(); + memset(p1k, 0xfa, 5 * sizeof(*p1k)); /* Just initializing. */ +} + +static __inline void +ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf *key, + uint32_t iv32, uint16_t *p1k) { TODO(); } +static __inline void +ieee80211_get_tkip_p2k(struct ieee80211_key_conf *keyconf, + struct sk_buff *skb_frag, u8 *key) +{ + TODO(); +} + static inline void ieee80211_get_key_rx_seq(struct ieee80211_key_conf *keyconf, int8_t tid, struct ieee80211_key_seq *seq) @@ -2481,6 +2482,8 @@ ieee80211_set_key_rx_seq(struct ieee80211_key_conf *key, int tid, TODO(); } +/* -------------------------------------------------------------------------- */ + static __inline void ieee80211_report_wowlan_wakeup(struct ieee80211_vif *vif, struct cfg80211_wowlan_wakeup *wakeup, gfp_t gfp) From nobody Tue Apr 29 11:41:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1S2k6Mz5tvL4; Tue, 29 Apr 2025 11:41:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1R2sRDz3wdr; Tue, 29 Apr 2025 11:41:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YxZly2o0NMnS+B+K0utw3nRZxX3gPKEh4WJZnaDB9yU=; b=tcmekE+G/cXjqqalkPY7r6shoVPY+2mc43Ydfk98x4V6afC1pfRRHAW4Eyz5MvjsM33yUY qcOzs3oXoe7XVhsYVqqX7trbNL1P50ieyYMFVqPMT2EBd6kED2WRFkmFe6KfLy1Myeb7bN CNfzyOspNFj8IGEg7KJdD6P94hdoez3v8vsTNrQlZd1piuAl9i7y8tFefTMFS9naxwy0Hh ulzp0ilEpIG1+ZVuwiFrRU1xuddk+y7YlekdKidCuQZ8D6nwrZAAg6s1bfGb9t8L9iLXFf kZ/6ErCr+WDweDhUU6QluJXLThhYdMpoxmBRhSpXxTsL2FcsKb+OAxN/O/04PQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926907; a=rsa-sha256; cv=none; b=sVZLA9dHXzcSz7gJSyIpkXZpLBuxCDCZ8v6B+qakX4w8Ta0Xoqjzg1v+oAoPhbWScRorwZ AsKgQTlB4CjBL9uwUyllyQYAzxkrDkI8OnPtGeZxD5PZTSYbtVapFSCarkXYPPB8jPdeUN YbbXG5fwXI+9sdar6UjqUtpGlforkfC8Vbfp54SynHcNY/ov6ehbV5B+ZlkplAF6L8pnuQ QMGLGxhlk7c2qz8J189ZpscxlDi7x/E0Vp3ythil94bmd2y9lUCgP8QFI8m1ZpSHDHnSeW LLZdHruxwINfcBWfIoXhPIsSsx8tV7oW6vWL4Dpp1f7y1ZVrTAmcMUiP7eN4kg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926907; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YxZly2o0NMnS+B+K0utw3nRZxX3gPKEh4WJZnaDB9yU=; b=lx+98KwoLKrtypO+j86r7PoHlLsOLqrCtDZ0RRtZ3hwBvTstDAi83ubb2eIHn1acL9YQ5N 04uD/xMcrzmzN77wSBMuT4avZebZ+Jr23Z9NPGLauV9xXWoWSpr9VNkEmFib9J7P6ei98L wwYoCmK9VarrRE8rF65wJ5ACjdFpHJB3RHCwxzNySGRkrcIW9rY/s/Mf4LkPz1u2mDPUL0 p1ijxmezX/WLomyTU3wgcq/6kyyv5Pa6g+WyuS14XGRyjAOHVrWpNd1u2C4/+SGugMYTG2 vBT/5C0x48VbRME5BQIIc/2CDi8vPogTawh4yem+IMtKyFNp3x3CKmgfrP+WEQ== 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 4Zmz1R2TSXz44q; Tue, 29 Apr 2025 11:41:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfluE046080; Tue, 29 Apr 2025 11:41:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfl1I046077; Tue, 29 Apr 2025 11:41:47 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:47 GMT Message-Id: <202504291141.53TBfl1I046077@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ce537904d415 - stable/14 - LinuxKPI: skbuff: fix types, shuffle fields List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ce537904d415526246dcefcd11d35ff500ff3c14 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ce537904d415526246dcefcd11d35ff500ff3c14 commit ce537904d415526246dcefcd11d35ff500ff3c14 Author: Bjoern A. Zeeb AuthorDate: 2025-04-14 21:05:38 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:29 +0000 LinuxKPI: skbuff: fix types, shuffle fields Fix the types of a few remaining fields. Shuffle the fields around so the important ones align to 64byte on a 64bit platform. Sponsored by: The FreeBSD Foundation (cherry picked from commit 59481c7db2340c9e64f9d3d9d05dafc2d72c157e) --- sys/compat/linuxkpi/common/include/linux/skbuff.h | 45 ++++++++++++++--------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h index 7a8521e6fd38..8fe6bf158bc6 100644 --- a/sys/compat/linuxkpi/common/include/linux/skbuff.h +++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h @@ -154,37 +154,46 @@ struct sk_buff { }; struct list_head list; }; + + uint8_t *head; /* Head of buffer. */ + uint8_t *data; /* Head of data. */ + uint8_t *tail; /* End of data. */ + uint8_t *end; /* End of buffer. */ + uint32_t len; /* ? */ uint32_t data_len; /* ? If we have frags? */ + union { + __wsum csum; + struct { + uint16_t csum_offset; + uint16_t csum_start; + }; + }; + uint16_t protocol; + uint8_t ip_summed; + /* uint8_t */ + + /* "Scratch" area for layers to store metadata. */ + /* ??? I see sizeof() operations so probably an array. */ + uint8_t cb[64] __aligned(CACHE_LINE_SIZE); + + struct skb_shared_info *shinfo __aligned(CACHE_LINE_SIZE); + uint32_t truesize; /* The total size of all buffers, incl. frags. */ - uint16_t mac_len; /* Link-layer header length. */ - __sum16 csum; - uint16_t l3hdroff; /* network header offset from *head */ - uint16_t l4hdroff; /* transport header offset from *head */ uint32_t priority; uint16_t qmap; /* queue mapping */ uint16_t _flags; /* Internal flags. */ #define _SKB_FLAGS_SKBEXTFRAG 0x0001 - enum sk_buff_pkt_type pkt_type; + uint16_t l3hdroff; /* network header offset from *head */ + uint16_t l4hdroff; /* transport header offset from *head */ uint16_t mac_header; /* offset of mac_header */ + uint16_t mac_len; /* Link-layer header length. */ + enum sk_buff_pkt_type pkt_type; refcount_t refcnt; - /* "Scratch" area for layers to store metadata. */ - /* ??? I see sizeof() operations so probably an array. */ - uint8_t cb[64] __aligned(CACHE_LINE_SIZE); - struct net_device *dev; void *sk; /* XXX net/sock.h? */ - int csum_offset, csum_start, ip_summed, protocol; - - uint8_t *head; /* Head of buffer. */ - uint8_t *data; /* Head of data. */ - uint8_t *tail; /* End of data. */ - uint8_t *end; /* End of buffer. */ - - struct skb_shared_info *shinfo; - /* FreeBSD specific bandaid (see linuxkpi_kfree_skb). */ void *m; void(*m_free_func)(void *); From nobody Tue Apr 29 11:41:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1R09ycz5tvC0; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1Q2MRRz3wpc; Tue, 29 Apr 2025 11:41:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rj4MDw1TCFLIYecT4Dj02XI+9fePOUwIlL47lmuDTQ4=; b=ozTLN5of6tBEZpq+P7sQEsT6fhWbW5BPowr8L2/OpBROSm+naJq6QDD1YMvUw7M+TtBnxI W80y6jwZmQzo7jU9nGhmFGLar6sku0S7UZXa9JQgqSiunyvDx/7Ju6G71ji1WL3Ra9fCRd SPnA2jdoiz/c12rdNRFnc/m7vvQdKAqDcvozS4FsLEn7RgNQjKipf5omG+/oG/hkEX8UX5 l70uMGEvPeJKCqWaVjlExO9Y83Gwgc68kqb0xtTXzxsHaLnDrX+E+LoOWdFKAoHkityk4W sMrR7E3rLuc0OXJnsgFaDZwlVOmgNq26IQT64cLAwFh/KyKWjRsvHQoiuTAYVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926906; a=rsa-sha256; cv=none; b=QXIYEXA5G9/dH9e4TsGfXGICEe7aK0TxyQNSKZDcZSFpiAomTRZj2eHY5tMWzKEckuCR1C wv2WfHgL1X/AjD1c5ENEDUOFjdZ9bY1rVGjcM57J/1gfU0ZAJykkCZNkEvqYpDoWGkSbmw RguWPZczIjq4TuqHhmkWgVuZZ2we/U5gUWr113hG7NiAQZCDx156R3/RNx9/HrFFtHY7pb ozToIVf5cbf2bZCGDUeX5NYIzn3Ldy51bMHLEnPUu3qDG4MvUdUjsK5lCbFClNiP7U5NLB 3P6byNamHaKvoRyMrg0JDztuAGK393FMptMip2TyiJZG4U9klJrSepx17+jX1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926906; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rj4MDw1TCFLIYecT4Dj02XI+9fePOUwIlL47lmuDTQ4=; b=M2bp/VOyWr+qVptMWfnajiTKCtnMTzTnRmE+fsATE670wdVKZ6Vtf5FG73tn9mWzt8wl+r BYsjF7xXh8xtm5lo+UdphRs4By/mqskPRjRrn5wf36P8nVRS4L8s7HiFM/cfzXf8dJJ/zJ a7lM4bM7OOw/LpAnQfe3ZA4ex596rqrFBYaefFa+y1d+Sc1j/e/58U4NGXtc0juCOxtzgx +Cnb7NVtIIVT1NdsvrAgBKO73f+GHhiC6MH7/D0iL5+ozkYB0roHJLHK3yoJKA2NPrBXz1 r1aEE/Unh3NjgRagTI/UyU1Lt1iEnf1cI7f3nIXzVM603yOMa2zMYPM7rj0xCQ== 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 4Zmz1Q1yQqz3yY; Tue, 29 Apr 2025 11:41:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfkY1046042; Tue, 29 Apr 2025 11:41:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfkhw046039; Tue, 29 Apr 2025 11:41:46 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:46 GMT Message-Id: <202504291141.53TBfkhw046039@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 85c811c9e368 - stable/14 - LinuxKPI: skbuff: switch to using uma for the skb List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 85c811c9e368dccadf20c071117b8e84efb3281d Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=85c811c9e368dccadf20c071117b8e84efb3281d commit 85c811c9e368dccadf20c071117b8e84efb3281d Author: Bjoern A. Zeeb AuthorDate: 2025-04-22 20:41:40 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:29 +0000 LinuxKPI: skbuff: switch to using uma for the skb Split allocating the skb header and its payload data memory into skb header from uma and the data to whatever we used to do for it. This is a first step which should allow us to one day at least in the RX path take the data, attach it to an mbuf and send it up the stack and just free the skbuff header. Sponsored by: The FreeBSD Foundation (cherry picked from commit 43ffd0f5c0f91237a37736f1d40045b0052b775b) --- sys/compat/linuxkpi/common/src/linux_skbuff.c | 65 ++++++++++++++++++++------- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_skbuff.c b/sys/compat/linuxkpi/common/src/linux_skbuff.c index 4139295fc837..d454e5fc3ab8 100644 --- a/sys/compat/linuxkpi/common/src/linux_skbuff.c +++ b/sys/compat/linuxkpi/common/src/linux_skbuff.c @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2022 The FreeBSD Foundation + * Copyright (c) 2020-2025 The FreeBSD Foundation * Copyright (c) 2021-2022 Bjoern A. Zeeb * * This software was developed by Björn Zeeb under sponsorship from @@ -42,6 +42,8 @@ #include #include +#include + #ifdef DDB #include #endif @@ -63,6 +65,8 @@ SYSCTL_INT(_compat_linuxkpi_skb, OID_AUTO, debug, CTLFLAG_RWTUN, &linuxkpi_debug_skb, 0, "SKB debug level"); #endif +static uma_zone_t skbzone; + #ifdef __LP64__ /* * Realtek wireless drivers (e.g., rtw88) require 32bit DMA in a single segment. @@ -84,16 +88,28 @@ struct sk_buff * linuxkpi_alloc_skb(size_t size, gfp_t gfp) { struct sk_buff *skb; + void *p; size_t len; - len = sizeof(*skb) + size + sizeof(struct skb_shared_info); + skb = uma_zalloc(skbzone, linux_check_m_flags(gfp) | M_ZERO); + if (skb == NULL) + return (NULL); + + skb->prev = skb->next = skb; + skb->truesize = size; + skb->shinfo = (struct skb_shared_info *)(skb + 1); + + if (size == 0) + return (skb); + + len = size; /* * Using our own type here not backing my kmalloc. * We assume no one calls kfree directly on the skb. */ #ifdef __LP64__ if (__predict_true(linuxkpi_skb_memlimit == 0)) { - skb = malloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO); + p = malloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO); } else { vm_paddr_t high; @@ -107,23 +123,21 @@ linuxkpi_alloc_skb(size_t size, gfp_t gfp) break; } len = roundup_pow_of_two(len); - skb = contigmalloc(len, M_LKPISKB, + p = contigmalloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO, 0, high, PAGE_SIZE, 0); } #else - skb = malloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO); + p = malloc(len, M_LKPISKB, linux_check_m_flags(gfp) | M_ZERO); #endif - if (skb == NULL) - return (skb); - skb->truesize = size; + if (p == NULL) { + uma_zfree(skbzone, skb); + return (NULL); + } - skb->head = skb->data = skb->tail = (uint8_t *)(skb+1); + skb->head = skb->data = (uint8_t *)p; + skb_reset_tail_pointer(skb); skb->end = skb->head + size; - skb->prev = skb->next = skb; - - skb->shinfo = (struct skb_shared_info *)(skb->end); - SKB_TRACE_FMT(skb, "data %p size %zu", (skb) ? skb->data : NULL, size); return (skb); } @@ -161,8 +175,8 @@ linuxkpi_build_skb(void *data, size_t fragsz) skb->_flags |= _SKB_FLAGS_SKBEXTFRAG; skb->truesize = fragsz; skb->head = skb->data = data; - skb_reset_tail_pointer(skb); /* XXX is that correct? */ - skb->end = (void *)((uintptr_t)skb->head + fragsz); + skb_reset_tail_pointer(skb); + skb->end = skb->head + fragsz; return (skb); } @@ -255,10 +269,29 @@ linuxkpi_kfree_skb(struct sk_buff *skb) p = skb->head; skb_free_frag(p); + skb->head = NULL; } - free(skb, M_LKPISKB); + free(skb->head, M_LKPISKB); + uma_zfree(skbzone, skb); +} + +static void +lkpi_skbuff_init(void *arg __unused) +{ + skbzone = uma_zcreate("skbuff", + sizeof(struct sk_buff) + sizeof(struct skb_shared_info), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); + /* Do we need to apply limits? */ +} +SYSINIT(linuxkpi_skbuff, SI_SUB_DRIVERS, SI_ORDER_FIRST, lkpi_skbuff_init, NULL); + +static void +lkpi_skbuff_destroy(void *arg __unused) +{ + uma_zdestroy(skbzone); } +SYSUNINIT(linuxkpi_skbuff, SI_SUB_DRIVERS, SI_ORDER_SECOND, lkpi_skbuff_destroy, NULL); #ifdef DDB DB_SHOW_COMMAND(skb, db_show_skb) From nobody Tue Apr 29 11:41:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1Y28rpz5tvFN; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1Y0QC8z3x8m; Tue, 29 Apr 2025 11:41:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CFuIdZCLevZqoLsVt4S7iT5IMhD+TRvZcNCe3urIekg=; b=XaK1bZE83cJHg3DId9845c5MqmtV17qVeM+nhIj0CaZTdrfVu6jLizG3VTVkm5JdM1qsSw tp1Eb5tLeYUwDtUFmLKus6slm5Tw2N6Pw3BoC1ST+AsgM4GQogw3qF5O1eUpn+kJvZ/422 jQ6COcPP279bqXXbpVEl9bkI+FQ0f/71YjG7dRte3lWfXfsJYoSrhYyp5UstOOpuk0tnLf LMWU6e1WOlMG5wv091woiDBc2P3lyTGmm0SVmEKGH10qjPjj4VK9YGyEaGoWDBd8dgyW25 xRWb+NBs5yOdeZ4JAlOIJfhCYsbmzzrQykKTIPLcxTFjN9d9h5qm/PwUpbv5cQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926913; a=rsa-sha256; cv=none; b=lIHlgidnheBxTBMfmjQ0WOspjBptfMQfzSdH4gBOKIZNp1fFgDPfOIrlcdxflRH2LhP2cM jtB5T9uAwJoJc/YRUa8vmnCNiAH25m236S8OTLpe+MsRvKsnSO4ptTCOWZu1E08vasuKtD UQrKU/DzWytE555SoR5Wp7bCYmeN0uX+w5KGS5ws4qgox1d2Y9ATypYx02FO1TwvUwXOkR ucic7wmRI8mxB0Nzc6TeRwNTqrGyI0uqzT/Nl7kkTJ7HBwEU7+brEZBfvWJakKkE8PMyVz SXJyweBq5+Mbq2IE9j1zgv0HH2/NSe8dH0KGZc3dOfrmVaG+zsDsIAj1Wx8HPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CFuIdZCLevZqoLsVt4S7iT5IMhD+TRvZcNCe3urIekg=; b=Jpe5TMEnRpcMppbtGONalJHnhaR8kTXwbFZChr1bQvxldwd+xDDtZnG8bQQif06h9KAv9q ZVbcwBR98eqODsIAMVxhpv95eXHhU4ponLDK99suCQNq8yfgfMKQwQdwgNo3UxD2jpC+wU WJsOLQbzxOWAQ9rVxkULJSpEpqQakPfJ7nbup6QDRfkZPktd+mdDCWK6v9jWn7bwKM+OEI of+cFJRCn3g0RjyM09lJuDCkCP5RrmQB9DRCRf85RkQs9stmDMVNgSI7a5OmUaPGFCf7vr DaUcguGxqIr7HHizVa0joBtq2cL5RddJLPTmrFw8gSrlvpc3sofPraoL6YyuzA== 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 4Zmz1X6ZFhz3rl; Tue, 29 Apr 2025 11:41:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfqf6046280; Tue, 29 Apr 2025 11:41:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfqA2046277; Tue, 29 Apr 2025 11:41:52 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:52 GMT Message-Id: <202504291141.53TBfqA2046277@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: aa8e8f833a6e - stable/14 - LinuxKPI: 802.11: add checks and improve tracing to key operations List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: aa8e8f833a6e2045a2edf12e24d125d248a7ee85 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=aa8e8f833a6e2045a2edf12e24d125d248a7ee85 commit aa8e8f833a6e2045a2edf12e24d125d248a7ee85 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 21:11:08 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:30 +0000 LinuxKPI: 802.11: add checks and improve tracing to key operations Use the IEEE80211_KEY_FLAG_BITS for logging. Add more logging to aid debugging key and cipher operations. Add extra checks that key is actually defined before attempting any key operation. Move some variables to before they are needed to avoid extra work in case of early return. Makes their scope more clear. Sponsored by: The FreeBSD Foundation (cherry picked from commit a6f6329c92a993ddaaa4a7daf2b53155f805d50f) --- sys/compat/linuxkpi/common/src/linux_80211.c | 63 +++++++++++++++++++++------- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index baad8ad00a69..2dc7b7c8ec9a 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1184,6 +1184,14 @@ lkpi_sta_del_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, continue; kc = lsta->kc[keyix]; +#ifdef LINUXKPI_DEBUG_80211 + if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) + ic_printf(lsta->ni->ni_ic, "%s: running set_key cmd %d(%s) for " + "sta %6D: keyidx %u hw_key_idx %u flags %b\n", + __func__, DISABLE_KEY, "DISABLE", lsta->sta.addr, ":", + kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); +#endif + err = lkpi_80211_mo_set_key(hw, DISABLE_KEY, vif, LSTA_TO_STA(lsta), kc); if (err != 0) { @@ -1202,9 +1210,9 @@ lkpi_sta_del_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) ic_printf(lsta->ni->ni_ic, "%s: set_key cmd %d(%s) for " - "sta %6D succeeded: keyidx %u hw_key_idx %u flags %#10x\n", + "sta %6D succeeded: keyidx %u hw_key_idx %u flags %b\n", __func__, DISABLE_KEY, "DISABLE", lsta->sta.addr, ":", - kc->keyidx, kc->hw_key_idx, kc->flags); + kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); #endif lsta->kc[keyix] = NULL; @@ -1229,16 +1237,18 @@ _lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) int error; ic = vap->iv_ic; - lhw = ic->ic_softc; - hw = LHW_TO_HW(lhw); - lvif = VAP_TO_LVIF(vap); - vif = LVIF_TO_VIF(lvif); + if (IEEE80211_KEY_UNDEFINED(k)) { + ic_printf(ic, "%s: vap %p key %p is undefined: %p %u\n", + __func__, vap, k, k->wk_cipher, k->wk_keyix); + return (0); + } if (vap->iv_bss == NULL) { ic_printf(ic, "%s: iv_bss %p for vap %p is NULL\n", __func__, vap->iv_bss, vap); return (0); } + ni = ieee80211_ref_node(vap->iv_bss); lsta = ni->ni_drv_data; if (lsta == NULL) { @@ -1273,6 +1283,18 @@ _lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) goto out; } +#ifdef LINUXKPI_DEBUG_80211 + if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) + ic_printf(ic, "%s: running set_key cmd %d(%s) for sta %6D: " + "keyidx %u hw_key_idx %u flags %b\n", __func__, + DISABLE_KEY, "DISABLE", sta->addr, ":", + kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); +#endif + + lhw = ic->ic_softc; + hw = LHW_TO_HW(lhw); + lvif = VAP_TO_LVIF(vap); + vif = LVIF_TO_VIF(lvif); error = lkpi_80211_mo_set_key(hw, DISABLE_KEY, vif, sta, kc); if (error != 0) { ic_printf(ic, "%s: set_key cmd %d(%s) for sta %6D failed: %d\n", @@ -1284,9 +1306,9 @@ _lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) ic_printf(ic, "%s: set_key cmd %d(%s) for sta %6D succeeded: " - "keyidx %u hw_key_idx %u flags %#10x\n", __func__, + "keyidx %u hw_key_idx %u flags %b\n", __func__, DISABLE_KEY, "DISABLE", sta->addr, ":", - kc->keyidx, kc->hw_key_idx, kc->flags); + kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); #endif lsta->kc[k->wk_keyix] = NULL; free(kc, M_LKPI80211); @@ -1321,10 +1343,11 @@ _lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) int error; ic = vap->iv_ic; - lhw = ic->ic_softc; - hw = LHW_TO_HW(lhw); - lvif = VAP_TO_LVIF(vap); - vif = LVIF_TO_VIF(lvif); + if (IEEE80211_KEY_UNDEFINED(k)) { + ic_printf(ic, "%s: vap %p key %p is undefined: %p %u\n", + __func__, vap, k, k->wk_cipher, k->wk_keyix); + return (0); + } if (vap->iv_bss == NULL) { ic_printf(ic, "%s: iv_bss %p for vap %p is NULL\n", @@ -1395,6 +1418,18 @@ _lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) }; lsta->kc[k->wk_keyix] = kc; +#ifdef LINUXKPI_DEBUG_80211 + if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) + ic_printf(ic, "%s: running set_key cmd %d(%s) for sta %6D: " + "kc %p keyidx %u hw_key_idx %u flags %b\n", __func__, + SET_KEY, "SET", sta->addr, ":", + kc, kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); +#endif + + lhw = ic->ic_softc; + hw = LHW_TO_HW(lhw); + lvif = VAP_TO_LVIF(vap); + vif = LVIF_TO_VIF(lvif); error = lkpi_80211_mo_set_key(hw, SET_KEY, vif, sta, kc); if (error != 0) { ic_printf(ic, "%s: set_key cmd %d(%s) for sta %6D failed: %d\n", @@ -1408,9 +1443,9 @@ _lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) ic_printf(ic, "%s: set_key cmd %d(%s) for sta %6D succeeded: " - "kc %p keyidx %u hw_key_idx %u flags %#010x\n", __func__, + "kc %p keyidx %u hw_key_idx %u flags %b\n", __func__, SET_KEY, "SET", sta->addr, ":", - kc, kc->keyidx, kc->hw_key_idx, kc->flags); + kc, kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); #endif ieee80211_free_node(ni); From nobody Tue Apr 29 11:41:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1W2FxVz5tvL7; Tue, 29 Apr 2025 11:41:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1V54brz3x1n; Tue, 29 Apr 2025 11:41:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NJCC9CpsTbGyMTvkTFmjT1OK/fUKMPXvAb1AdpDONZw=; b=LrnVgWXnjCcKSytMbgrHsOEU9c+ltmITlAKB4xghps7kAnVca20HORPL7RSrZLgbCb6nTz bGSLKymMXHm3QNEopnVO09BgTV9GM1pwvK6VZV4qkEdD7lPcomaPo6H17ILKFb6Jgx/S2E x0Tcys6I7obPJU3zffc5GgaohkgpGcydFTtrk7XZoCG4oTrSvchvzc3qLfhwTXtbkScLXG J7uXpQRzTpvrek6QMZ4+Oph/d1u0l7qfhcvMlzES8IlVZswRMDwlSEOFct7aMDwGcUxG9T 5pzsodSDqo6HDxKmIltOxO4rsElg0gBDvL6psT+sEPSafUiOXGzVYMGLRNeFzw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926910; a=rsa-sha256; cv=none; b=hqCeXU7f2Nv1yqxqExDADyLIuq9412Rki+01m4QdOnMXxvvPkk0LNaS3qt0HK934yzxC3d JXBLqF6MJtqkaedB0TZzpNTHyZ7/7uxisf86dNmVniHmlOy85iW1ec2FKlovcU13VOKi6u fShi3eRw8TsCp88s+l4D0P0wXFQoaukVF0akLwmCi22lWc421VTUl39oQsvFPQwUACr3hc cob+g2cMzJ2/f5xlpADtYri5+h2+oSj1k0gagfAJK9cRruNhX1b4BYJgK6subbG4IY1mI4 mCtcI9Mx2t11FiEvy1SInNDnckcFipp7oolX/hUtmD0NXoI7MPL03Hsxm95NyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NJCC9CpsTbGyMTvkTFmjT1OK/fUKMPXvAb1AdpDONZw=; b=RR2cUXLYSzUhwZ8tpCDGcNs1vxSgvfZxAmr1ILSHioEw2hmdAKQ/a69bWb+9TbqNm7YA7+ ZkGMC5WJ3sgJ/5YLJ3afPNQlM5Km1cm9tYy3PkXhnnnAV+gr9czK2GTf+TbbGfCcrL1JTj AIwG2pPQiEfBOCq9aRmW2nAvkTPkdrpv1XpNBWYyVkaBBqVrmVyrs34oGYoIT57l7Vmxga SmwVSkaCvK9S7ckTUgH3ZSMI4YMUvdnf+yzgWd/9s+iO/+J4wmf0ddAgPOd48wXdf1YN9x kXaIPik6XgzMsZmrbo20LkkUNG3r0ytehgcc3NRUNNiqxwhZj8ansXVH4bypTg== 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 4Zmz1V4d45z46p; Tue, 29 Apr 2025 11:41:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfoFJ046204; Tue, 29 Apr 2025 11:41:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfoS9046201; Tue, 29 Apr 2025 11:41:50 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:50 GMT Message-Id: <202504291141.53TBfoS9046201@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 732cd1f905f9 - stable/14 - LinuxKPI: 802.11: add IEEE80211_KEY_FLAG_BITS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 732cd1f905f976dcf740cd051f7210affff8e1d6 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=732cd1f905f976dcf740cd051f7210affff8e1d6 commit 732cd1f905f976dcf740cd051f7210affff8e1d6 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 19:39:10 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:30 +0000 LinuxKPI: 802.11: add IEEE80211_KEY_FLAG_BITS Add IEEE80211_KEY_FLAG_BITS to be used with %b for debugging ieee802111_key_flag bit flags. Names are a lot easier to deal with than just numbers. Sponsored by: The FreeBSD Foundation (cherry picked from commit 52e39daeef8804d134e1aa76149d47c026663a61) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 568695dc2a45..98be1735d6ab 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -541,6 +541,11 @@ enum ieee802111_key_flag { IEEE80211_KEY_FLAG_SPP_AMSDU = BIT(9), }; +#define IEEE80211_KEY_FLAG_BITS \ + "\20\1GENERATE_IV\2GENERATE_MMIC\3PAIRWISE\4PUT_IV_SPACE" \ + "\5PUT_MIC_SPACE\6SW_MGMT_TX\7GENERATE_IV_MGMT\10GENERATE_MMIE" \ + "\11RESERVE_TAILROOM\12SPP_AMSDU" + struct ieee80211_key_conf { #if defined(__FreeBSD__) const struct ieee80211_key *_k; /* backpointer to net80211 */ From nobody Tue Apr 29 11:41:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1X4Gz5z5tvJ6; Tue, 29 Apr 2025 11:41:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1W62NHz3wqg; Tue, 29 Apr 2025 11:41:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1dO4ePAzFRWsIggdbQg0WvaFo3oRuNWmAgSJ0LtqUxE=; b=mJtxrYZUgrDyrsXoAkk3vRK80aWQ8oiHAzrMRBQUbSRUpj8JYYCW2ksGSpL5VCdN2eLMjA eEYtHfOxzjmQXmWOR7WeqxjY+HmxA505YT/k7j7m9bUQAMIHHqSdra25mO/3cD3PPiGfeF KRdpE8di9+moWgH8nIzFG1/2CX+uL4lm95POeY0qJSYQVHzVUbwq2EYPutKjW9084HxEFc xbReN8rZfXKpMgmYUdX7DhxZKbOpBgaoqMaP4Ig58vsdPOXC6qd7INQUCT4NDF4E5gZgd0 11KhYGe7XYt1VMYMHnbtnaNHI4sXPeiKzMvWuTrqUJQPB05hpw1qxggIgqoQqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926911; a=rsa-sha256; cv=none; b=PoFMC2lrNVZhWlYVPxx40nwhcqfNh7D/5M5P2NzHUbTZ1WtPsDsGPkr8uuGWXr2aQRlP2F hN2gZ7/Nvl2POZGcWBF/NdhaQP88HCX0Dt6rBfD6XhKxQoWnPwJvnO7x2GHdQ+ww57ysfZ wAmDwOFsTPHlYtdM5EqngHoy8jUKvi5XKcfVcixQilsapciE60IK0b5Y+DuLQhFHmDlL+T NyMOwB9tcDmat6dADYAnZdq/oSAwWo/3fzWh4Pz0vOcpEhyeDbITwcX3yKmB/J7GXf07CV PERatIxl1rj5jnlVfpABUWzG9Tj2wR6BKK56hKfdIfqsjixLRESWcTBgC4Bvsw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1dO4ePAzFRWsIggdbQg0WvaFo3oRuNWmAgSJ0LtqUxE=; b=CxVy07xce16Jd7FjicQ3ywspDWT44e9sdEGZdpIlAr6DiU1zeqmw8oNatVtFU0Lixgf4YG IraWjVhQSeo0S6ttj5mr/uZV7ENfsHoS+3HoWBUaDTTsPz2GGQ9gzskTfy0eMg+9anso9v h2dp8ItI+ZkiJWZVo/7z7qyjV6vmitGaI3tPHXzbwr1Af+BDw4YN7FG7/o2xjB7HNylBIm 7XNoVuqTmZ+rE0Y+J7oKV1RQc09vawnmrScPyZ+9jhDWC3kxHszxNlmKt6JmSO4WUbPMci MhhbFzXgZCYKpPsPA37bdFsAao+9EEvhmhhM6GSnnLShL8YL5qeDs9ug7DNxhQ== 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 4Zmz1W5cp1z3yZ; Tue, 29 Apr 2025 11:41:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfp8E046242; Tue, 29 Apr 2025 11:41:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfpVq046239; Tue, 29 Apr 2025 11:41:51 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:51 GMT Message-Id: <202504291141.53TBfpVq046239@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c08c12712e88 - stable/14 - LinuxKPI: 802.11: lkpi_hw_crypto_prepare and lkpi_hw_crypto_tailroom List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c08c12712e88adc00b72ccb8e5a6495477556805 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c08c12712e88adc00b72ccb8e5a6495477556805 commit c08c12712e88adc00b72ccb8e5a6495477556805 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 20:59:45 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:30 +0000 LinuxKPI: 802.11: lkpi_hw_crypto_prepare and lkpi_hw_crypto_tailroom Split lkpi_hw_crypto_prepare() up per cipher suite and in addition to the CCMP implementation start drafting the TKIP implementation. Also add lkpi_hw_crypto_tailroom() dealing with any possible tailroom we need to prepare for the driver to fill in details later. Add support for that to lkpi_80211_txq_tx_one(). Sponsored by: The FreeBSD Foundation (cherry picked from commit 98e55905ab8ac34a0b88a1863c1b88e6fe3a8c13) --- sys/compat/linuxkpi/common/src/linux_80211.c | 130 ++++++++++++++++++++++----- 1 file changed, 110 insertions(+), 20 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 8e56862d7a92..baad8ad00a69 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -4590,34 +4590,56 @@ lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, #ifdef LKPI_80211_HW_CRYPTO static int -lkpi_hw_crypto_prepare(struct lkpi_sta *lsta, struct ieee80211_key *k, - struct sk_buff *skb) +lkpi_hw_crypto_prepare_tkip(struct ieee80211_key *k, + struct ieee80211_key_conf *kc, struct sk_buff *skb) { - struct ieee80211_tx_info *info; - struct ieee80211_key_conf *kc; struct ieee80211_hdr *hdr; uint32_t hlen, hdrlen; - uint8_t *p; + uint8_t *p, *m; - KASSERT(lsta != NULL, ("%s: lsta is NULL", __func__)); - KASSERT(k != NULL, ("%s: key is NULL", __func__)); - KASSERT(skb != NULL, ("%s: skb is NULL", __func__)); + /* + * Check if we have anythig to do as requested by driver + * or if we are done? + */ + if ((kc->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) == 0 && + (kc->flags & IEEE80211_KEY_FLAG_GENERATE_IV) == 0) + return (0); - kc = lsta->kc[k->wk_keyix]; + hlen = k->wk_cipher->ic_header; + if (skb_headroom(skb) < hlen) + return (ENOSPC); - info = IEEE80211_SKB_CB(skb); - info->control.hw_key = kc; + hdr = (void *)skb->data; + hdrlen = ieee80211_hdrlen(hdr->frame_control); + p = skb_push(skb, hlen); + memmove(p, p + hlen, hdrlen); - /* MUST NOT happen. KASSERT? */ - if (kc == NULL) { - ic_printf(lsta->ni->ni_ic, "%s: lsta %p k %p skb %p, " - "kc is NULL on hw crypto offload\n", __func__, lsta, k, skb); - return (ENXIO); + /* + * Put in zeroed space for the MMIC if requested. + * XXX-BZ in theory this is not the right place but given we + * are here we know we do hw_crypto so not much missing. + */ + if ((kc->flags & IEEE80211_KEY_FLAG_PUT_MIC_SPACE) != 0) { + m = skb_put(skb, 8); + memset(m, 0, 8); } + /* If driver request space only we are done. */ + if ((kc->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) != 0) + return (0); + + p += hdrlen; + k->wk_cipher->ic_setiv(k, p); - IMPROVE("the following should be WLAN_CIPHER_SUITE specific"); - /* We currently only support CCMP so we hardcode things here. */ + return (ENXIO); +} +static int +lkpi_hw_crypto_prepare_ccmp(struct ieee80211_key *k, + struct ieee80211_key_conf *kc, struct sk_buff *skb) +{ + struct ieee80211_hdr *hdr; + uint32_t hlen, hdrlen; + uint8_t *p; hdr = (void *)skb->data; @@ -4649,6 +4671,67 @@ lkpi_hw_crypto_prepare(struct lkpi_sta *lsta, struct ieee80211_key *k, return (0); } + +static int +lkpi_hw_crypto_prepare(struct lkpi_sta *lsta, struct ieee80211_key *k, + struct sk_buff *skb) +{ + struct ieee80211_tx_info *info; + struct ieee80211_key_conf *kc; + + KASSERT(lsta != NULL, ("%s: lsta is NULL", __func__)); + KASSERT(k != NULL, ("%s: key is NULL", __func__)); + KASSERT(skb != NULL, ("%s: skb is NULL", __func__)); + + kc = lsta->kc[k->wk_keyix]; + + info = IEEE80211_SKB_CB(skb); + info->control.hw_key = kc; + + /* MUST NOT happen. KASSERT? */ + if (kc == NULL) { + ic_printf(lsta->ni->ni_ic, "%s: lsta %p k %p skb %p, " + "kc is NULL on hw crypto offload\n", __func__, lsta, k, skb); + return (ENXIO); + } + + switch (kc->cipher) { + case WLAN_CIPHER_SUITE_TKIP: + return (lkpi_hw_crypto_prepare_tkip(k, kc, skb)); + case WLAN_CIPHER_SUITE_CCMP: + return (lkpi_hw_crypto_prepare_ccmp(k, kc, skb)); + case WLAN_CIPHER_SUITE_WEP40: + case WLAN_CIPHER_SUITE_WEP104: + case WLAN_CIPHER_SUITE_CCMP_256: + case WLAN_CIPHER_SUITE_GCMP: + case WLAN_CIPHER_SUITE_GCMP_256: + case WLAN_CIPHER_SUITE_AES_CMAC: + case WLAN_CIPHER_SUITE_BIP_CMAC_256: + case WLAN_CIPHER_SUITE_BIP_GMAC_128: + case WLAN_CIPHER_SUITE_BIP_GMAC_256: + default: + ic_printf(lsta->ni->ni_ic, "%s: lsta %p k %p kc %p skb %p, " + "unsupported cipher suite %u (%s)\n", __func__, lsta, k, kc, + skb, kc->cipher, lkpi_cipher_suite_to_name(kc->cipher)); + return (EOPNOTSUPP); + } +} + +static uint8_t +lkpi_hw_crypto_tailroom(struct lkpi_sta *lsta, struct ieee80211_key *k) +{ + struct ieee80211_key_conf *kc; + + kc = lsta->kc[k->wk_keyix]; + if (kc == NULL) + return (0); + + IMPROVE("which other flags need tailroom?"); + if (kc->flags & (IEEE80211_KEY_FLAG_PUT_MIC_SPACE)) + return (32); /* Large enough to hold everything and pow2. */ + + return (0); +} #endif static void @@ -4671,7 +4754,7 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) struct lkpi_txq *ltxq; void *buf; ieee80211_keyix keyix; - uint8_t ac, tid; + uint8_t ac, tid, tailroom; M_ASSERTPKTHDR(m); #ifdef LINUXKPI_DEBUG_80211 @@ -4729,13 +4812,20 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) ieee80211_radiotap_tx(ni->ni_vap, m); } +#ifdef LKPI_80211_HW_CRYPTO + if (lkpi_hwcrypto && keyix != IEEE80211_KEYIX_NONE) + tailroom = lkpi_hw_crypto_tailroom(lsta, k); + else +#endif + tailroom = 0; + /* * net80211 should handle hw->extra_tx_headroom. * Though for as long as we are copying we don't mind. * XXX-BZ rtw88 asks for too much headroom for ipv6+tcp: * https://lists.freebsd.org/archives/freebsd-transport/2022-February/000012.html */ - skb = dev_alloc_skb(hw->extra_tx_headroom + m->m_pkthdr.len); + skb = dev_alloc_skb(hw->extra_tx_headroom + tailroom + m->m_pkthdr.len); if (skb == NULL) { static uint8_t skb_alloc_failures = 0; From nobody Tue Apr 29 11:41:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1Z3Px0z5tvJB; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1Z119Vz3wyh; Tue, 29 Apr 2025 11:41:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RtnhbqHm/v9CetXa5OMkRA+58+Za7k+U9mgjYljL0pc=; b=e6WsningHeAbhqN4kqWQTv4IBadW2m+b6/4mlSD8ORsmiVNZIMR/r7dWwM7yzlH/5ijzBw lzalJInGNKl5YkJpRoBWX2Fk2ne5gOAgTMpPTPQEKTBz0ILAaglocIpff7xuI5yyhminbr uH1LZVu/tWXxV9nr1xQBDATMTfzvvOQ6n9prClBp+ORvv4+/IEN0ZjCYvxY00INyU9G3nF /3+CdqK64EGQpvwhBNwX/3z2pUZ2joNr8GNOVqF2Q5dGurBig4+wjFTsFeyntWillOf5uT P/LGZI0mIsBpBQqHVbFPPYl/fJNJ6J0LnR3LBQA+TphJZsDrQnQqfPU1t3hkWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926914; a=rsa-sha256; cv=none; b=S1qHVG1VIiQiAyDcWsJ8azYa/oY1OTB1VRW9Y8j/cq7vcEElQJPrsQVQcRAKp2oH+KF0CU MX01jVdWLUpvfwB6B+GlibyehGJem2f3Fi17Nag35hqSRG/598BsfFO0QrUFrzLr5qBDth VNaWBQsEozuRZBxYCn0+4YeslgWryJTdLB6eKcw0q7Gix7W133A9XV4lOT+uC0cxKLlFXQ 7OR7o3tIQhmqtfzv4Ub8uYdnKh93rogC3EZ1VLY7brUOlh6NgIrAHH7E8IiDm9IFKQGx47 YWtOxCtLCCKMRrd83R5+4MG4J1zbnh/KQnNc4F4xgGYakwpbreVKdlQrJxau5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RtnhbqHm/v9CetXa5OMkRA+58+Za7k+U9mgjYljL0pc=; b=Fo0u0autkdu6UDplYmluJkAa4JaozTebd46s0aOVNuidPoSf/ROoP3ISG7SBaEBUc8qKmK R9SLiKxOowOXwSuigSWTk5HJNiauqdQv2JbwlJp34d15VoAPAbRQQXn93BE/XTL1/0s4s5 DM+qmRJA6jzYA7pjohKwWOoUD8NF2DbvEKtTlUDFedU6gKzKXVhCSkkjyeBRwS5IhlznxJ BFRpcMSc1jWtjlDMS9pRsPv1kv0UNhStnepqMve/BdOhwFjMxmgcV/gJUGdZrwWShy6IKt GGabYWCFEf7lJzwFjEYnLKeYthaElDIvvlima7Bnbg2H+DriMhPWhGH06+2M+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 4Zmz1Z06tbz3jJ; Tue, 29 Apr 2025 11:41:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfrXu046324; Tue, 29 Apr 2025 11:41:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfrH0046321; Tue, 29 Apr 2025 11:41:53 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:53 GMT Message-Id: <202504291141.53TBfrH0046321@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ba1325db9fdc - stable/14 - LinuxKPI: 802.11: fill ieee80211_get_key_rx_seq() also for TKIP/GCMP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ba1325db9fdc97eade99b7c6cb24f7eb613c8163 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ba1325db9fdc97eade99b7c6cb24f7eb613c8163 commit ba1325db9fdc97eade99b7c6cb24f7eb613c8163 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 19:36:53 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:31 +0000 LinuxKPI: 802.11: fill ieee80211_get_key_rx_seq() also for TKIP/GCMP In addition to CCMP add TKIP and GCMP support. The others are still TODO() until we do suport them natively. Also refine checks for tid and narrow them down (also don't assert but gratiously fail). Sponsored by: The FreeBSD Foundation (cherry picked from commit a7131a748483adf783ff7ac2a8ab71d5c17eb925) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 30 ++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 98be1735d6ab..0d033da2b83e 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -2451,28 +2451,46 @@ ieee80211_get_key_rx_seq(struct ieee80211_key_conf *keyconf, int8_t tid, KASSERT(keyconf != NULL && seq != NULL, ("%s: keyconf %p seq %p\n", __func__, keyconf, seq)); - KASSERT(tid <= IEEE80211_NUM_TIDS, ("%s: tid out of bounds %d\n", - __func__, tid)); k = keyconf->_k; KASSERT(k != NULL, ("%s: keyconf %p ieee80211_key is NULL\n", __func__, keyconf)); switch (keyconf->cipher) { + case WLAN_CIPHER_SUITE_TKIP: + if (tid < 0 || tid >= IEEE80211_NUM_TIDS) + return; + /* See net80211::tkip_decrypt() */ + seq->tkip.iv32 = TKIP_PN_TO_IV32(k->wk_keyrsc[tid]); + seq->tkip.iv16 = TKIP_PN_TO_IV16(k->wk_keyrsc[tid]); + break; case WLAN_CIPHER_SUITE_CCMP: case WLAN_CIPHER_SUITE_CCMP_256: - if (tid < 0) + if (tid < -1 || tid >= IEEE80211_NUM_TIDS) + return; + if (tid == -1) p = (const uint8_t *)&k->wk_keyrsc[IEEE80211_NUM_TIDS]; /* IEEE80211_NONQOS_TID */ else p = (const uint8_t *)&k->wk_keyrsc[tid]; memcpy(seq->ccmp.pn, p, sizeof(seq->ccmp.pn)); break; + case WLAN_CIPHER_SUITE_GCMP: + case WLAN_CIPHER_SUITE_GCMP_256: + if (tid < -1 || tid >= IEEE80211_NUM_TIDS) + return; + if (tid == -1) + p = (const uint8_t *)&k->wk_keyrsc[IEEE80211_NUM_TIDS]; /* IEEE80211_NONQOS_TID */ + else + p = (const uint8_t *)&k->wk_keyrsc[tid]; + memcpy(seq->gcmp.pn, p, sizeof(seq->gcmp.pn)); + break; case WLAN_CIPHER_SUITE_AES_CMAC: + case WLAN_CIPHER_SUITE_BIP_CMAC_256: TODO(); memset(seq->aes_cmac.pn, 0xfa, sizeof(seq->aes_cmac.pn)); /* XXX TODO */ break; - case WLAN_CIPHER_SUITE_TKIP: + case WLAN_CIPHER_SUITE_BIP_GMAC_128: + case WLAN_CIPHER_SUITE_BIP_GMAC_256: TODO(); - seq->tkip.iv32 = 0xfa; /* XXX TODO */ - seq->tkip.iv16 = 0xfa; /* XXX TODO */ + memset(seq->aes_gmac.pn, 0xfa, sizeof(seq->aes_gmac.pn)); /* XXX TODO */ break; default: pr_debug("%s: unsupported cipher suite %d\n", __func__, keyconf->cipher); From nobody Tue Apr 29 11:41:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1c4fpKz5tv9D; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1c2BF5z3x4C; Tue, 29 Apr 2025 11:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6PJbGoHxuULEQdPz3BO1a8XVn7pylrV2rJ9ftp33oYM=; b=s4VLpiyqu37NvkRkl9NWUnaShkynt3NmPOMcX+uYHxwh0wfcQXPj0/K0Bts1yGKLcTpIMX zsSqkYPN07hTJOuiPQxUs62i5Ok5yUsjaQF6W1sseh8swcO7ajnsHYRK+doZq8ySGQG0To WJeaASfdnvSZZLfMWoxhgVsdmS0NwqXXJDysN8UU9pQs6WPWiIXIDtCdga1zXaK3bDLGcj DDWbROUBBAYYACDnmWki/JlpZB8+JeKHHeSqivOb03fJ1Luy589DAcnvU6SYuvugomFvAo PkfCjM/jgdzWNHWa+Rr0fYstVy/WoMbI2u4tTlnltbzE+DNO1ujRaaN+w9JoeQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926916; a=rsa-sha256; cv=none; b=K/09F6sVno1eiGz0+RZmA+WYHLpnGCcCyqRyVXETa02dg0gWpugVlYS1xOZkclUs3N2JWr dBOeTDzm5C8BdqTd8bIUrOmVbR3w1lTag0U8RjUzN0ULs3IvcpqZ9M9U5H0Amu/GhkCTE8 Hpv8dmaw/BIdqvtzpZuOLK+2E6DHqigl+DGb57RGkP/rcNjumjIDFqIWdBvIfhJKiaUSux L/7lYknhMEjs13ivJtikU0lmLDjEH6hVN6H+bFAvPgctmM4PYlaMgtkqMevujKzTgRzNPd UqbqZwbYl2cQi3tcY1Dl2HY/0oCpHfYpBpkrwcxcsMOOwTFsK9GMQxYUoZ1TlA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6PJbGoHxuULEQdPz3BO1a8XVn7pylrV2rJ9ftp33oYM=; b=f1iRe9RuOmG0D/2JrtkntSRqR+IFchjijHMz0WY+KLdi8AgYg5q6Gq3mE2nqTYOaDeVb5g oCAQ9aq3xJO2RXWGpPPrFbvMdtSJtOMZs48Z/fnjp5Pe+zaMwNVWtMWcluQ62W+ib6xST3 gKKKERly6kdBtOuc4md4N8lYBBBLXepIUn82n0G21A3vKS/VuvDdEQQRK/xPF1U8ZpzVWZ lM/htCOsEbLQtUHrz+/7yxL2K+3Cjd4Do8s9nZyg702D+ankVGrNwMakKHmJBdHQPaKt1j u+a6Bh+Xy1XoSByR/ucjTOuMtMu5RE4N/K2nj0Vj1st9CRwWTuM7om0CE/ul2w== 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 4Zmz1c1nPLz3rs; Tue, 29 Apr 2025 11:41:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfuml046399; Tue, 29 Apr 2025 11:41:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfuHE046396; Tue, 29 Apr 2025 11:41:56 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:56 GMT Message-Id: <202504291141.53TBfuHE046396@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ed180522c9ab - stable/14 - LinuxKPI: 802.11: sort cipher lists and filter net80211 unsupported ones List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ed180522c9abbe442529440260db011b70fe1075 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ed180522c9abbe442529440260db011b70fe1075 commit ed180522c9abbe442529440260db011b70fe1075 Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 20:34:41 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:31 +0000 LinuxKPI: 802.11: sort cipher lists and filter net80211 unsupported ones Sort the ciphers in lkpi_cipher_suite_to_name() to match other places (e.g., in mac80211.h). Do the same for lkpi_l80211_to_net80211_cyphers() and return the net80211 for all of them. This in theory automatically enables them for net80211 and user space which can lead to other odd problems. Filter out everything net80211 does not currently support in ieee80211_ifattach(). Then also disable all we have not sucessfully implemented in LinuxKPI yet. It is assumed that the later will go away any day again but keep the commit sequence usable. Lastly also fill them all in lkpi_net80211_to_l80211_cipher_suite(). Sponsored by: The FreeBSD Foundation (cherry picked from commit bf8c25f16165440cb75199c2ae405e75d2540e93) --- sys/compat/linuxkpi/common/src/linux_80211.c | 93 +++++++++++++++++++--------- 1 file changed, 63 insertions(+), 30 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 69f065df6b4f..86a8286d66eb 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -961,68 +961,68 @@ lkpi_opmode_to_vif_type(enum ieee80211_opmode opmode) static const char * lkpi_cipher_suite_to_name(uint32_t wlan_cipher_suite) { - switch (wlan_cipher_suite) { case WLAN_CIPHER_SUITE_WEP40: return ("WEP40"); + case WLAN_CIPHER_SUITE_WEP104: + return ("WEP104"); case WLAN_CIPHER_SUITE_TKIP: return ("TKIP"); case WLAN_CIPHER_SUITE_CCMP: return ("CCMP"); - case WLAN_CIPHER_SUITE_WEP104: - return ("WEP104"); - case WLAN_CIPHER_SUITE_AES_CMAC: - return ("AES_CMAC"); + case WLAN_CIPHER_SUITE_CCMP_256: + return ("CCMP_256"); case WLAN_CIPHER_SUITE_GCMP: return ("GCMP"); case WLAN_CIPHER_SUITE_GCMP_256: return ("GCMP_256"); - case WLAN_CIPHER_SUITE_CCMP_256: - return ("CCMP_256"); + case WLAN_CIPHER_SUITE_AES_CMAC: + return ("AES_CMAC"); + case WLAN_CIPHER_SUITE_BIP_CMAC_256: + return ("BIP_CMAC_256"); case WLAN_CIPHER_SUITE_BIP_GMAC_128: return ("BIP_GMAC_128"); case WLAN_CIPHER_SUITE_BIP_GMAC_256: return ("BIP_GMAC_256"); - case WLAN_CIPHER_SUITE_BIP_CMAC_256: - return ("BIP_CMAC_256"); default: return ("??"); } } static uint32_t -lkpi_l80211_to_net80211_cyphers(uint32_t wlan_cipher_suite) +lkpi_l80211_to_net80211_cyphers(struct ieee80211com *ic, + uint32_t wlan_cipher_suite) { - switch (wlan_cipher_suite) { case WLAN_CIPHER_SUITE_WEP40: return (IEEE80211_CRYPTO_WEP); + case WLAN_CIPHER_SUITE_WEP104: + return (IEEE80211_CRYPTO_WEP); case WLAN_CIPHER_SUITE_TKIP: return (IEEE80211_CRYPTO_TKIP); case WLAN_CIPHER_SUITE_CCMP: return (IEEE80211_CRYPTO_AES_CCM); - case WLAN_CIPHER_SUITE_WEP104: - return (IEEE80211_CRYPTO_WEP); - case WLAN_CIPHER_SUITE_AES_CMAC: + case WLAN_CIPHER_SUITE_CCMP_256: + return (IEEE80211_CRYPTO_AES_CCM_256); case WLAN_CIPHER_SUITE_GCMP: + return (IEEE80211_CRYPTO_AES_GCM_128); case WLAN_CIPHER_SUITE_GCMP_256: - case WLAN_CIPHER_SUITE_CCMP_256: + return (IEEE80211_CRYPTO_AES_GCM_256); + case WLAN_CIPHER_SUITE_AES_CMAC: + return (IEEE80211_CRYPTO_BIP_CMAC_128); + case WLAN_CIPHER_SUITE_BIP_CMAC_256: + return (IEEE80211_CRYPTO_BIP_CMAC_256); case WLAN_CIPHER_SUITE_BIP_GMAC_128: + return (IEEE80211_CRYPTO_BIP_GMAC_128); case WLAN_CIPHER_SUITE_BIP_GMAC_256: - case WLAN_CIPHER_SUITE_BIP_CMAC_256: - printf("%s: unsupported WLAN Cipher Suite %#08x | %u (%s)\n", - __func__, - wlan_cipher_suite >> 8, wlan_cipher_suite & 0xff, - lkpi_cipher_suite_to_name(wlan_cipher_suite)); - break; + return (IEEE80211_CRYPTO_BIP_GMAC_256); default: - printf("%s: unknown WLAN Cipher Suite %#08x | %u (%s)\n", + ic_printf(ic, "%s: unknown WLAN Cipher Suite %#08x | %u (%s)\n", __func__, wlan_cipher_suite >> 8, wlan_cipher_suite & 0xff, lkpi_cipher_suite_to_name(wlan_cipher_suite)); + return (0); } - - return (0); } static uint32_t @@ -1030,18 +1030,37 @@ lkpi_net80211_to_l80211_cipher_suite(uint32_t cipher, uint8_t keylen) { switch (cipher) { - case IEEE80211_CIPHER_TKIP: - return (WLAN_CIPHER_SUITE_TKIP); - case IEEE80211_CIPHER_AES_CCM: - return (WLAN_CIPHER_SUITE_CCMP); case IEEE80211_CIPHER_WEP: if (keylen < 8) return (WLAN_CIPHER_SUITE_WEP40); else return (WLAN_CIPHER_SUITE_WEP104); break; + case IEEE80211_CIPHER_TKIP: + return (WLAN_CIPHER_SUITE_TKIP); + case IEEE80211_CIPHER_AES_CCM: + return (WLAN_CIPHER_SUITE_CCMP); + case IEEE80211_CIPHER_AES_CCM_256: + return (WLAN_CIPHER_SUITE_CCMP_256); + case IEEE80211_CIPHER_AES_GCM_128: + return (WLAN_CIPHER_SUITE_GCMP); + case IEEE80211_CIPHER_AES_GCM_256: + return (WLAN_CIPHER_SUITE_GCMP_256); + case IEEE80211_CIPHER_BIP_CMAC_128: + return (WLAN_CIPHER_SUITE_AES_CMAC); + case IEEE80211_CIPHER_BIP_CMAC_256: + return (WLAN_CIPHER_SUITE_BIP_CMAC_256); + case IEEE80211_CIPHER_BIP_GMAC_128: + return (WLAN_CIPHER_SUITE_BIP_GMAC_128); + case IEEE80211_CIPHER_BIP_GMAC_256: + return (WLAN_CIPHER_SUITE_BIP_GMAC_256); + case IEEE80211_CIPHER_AES_OCB: case IEEE80211_CIPHER_TKIPMIC: + /* + * TKIP w/ hw MIC support + * (gone wrong; should really be a crypto flag in net80211). + */ case IEEE80211_CIPHER_CKIP: case IEEE80211_CIPHER_NONE: printf("%s: unsupported cipher %#010x\n", __func__, cipher); @@ -5934,9 +5953,23 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) ic->ic_cryptocaps = 0; #ifdef LKPI_80211_HW_CRYPTO if (lkpi_hwcrypto && hw->wiphy->n_cipher_suites > 0) { + uint32_t hwciphers; + + hwciphers = 0; for (i = 0; i < hw->wiphy->n_cipher_suites; i++) - ic->ic_cryptocaps |= lkpi_l80211_to_net80211_cyphers( - hw->wiphy->cipher_suites[i]); + hwciphers |= lkpi_l80211_to_net80211_cyphers( + ic, hw->wiphy->cipher_suites[i]); + /* + * (20250415) nothing anywhere in the path checks we actually + * support all these in net80211. + * net80211 supports _256 variants but the ioctl does not. + */ + IMPROVE("as net80211 grows more support, enable them"); + hwciphers &= (IEEE80211_CRYPTO_WEP | IEEE80211_CRYPTO_TKIP | + IEEE80211_CRYPTO_AES_CCM | IEEE80211_CRYPTO_AES_GCM_128); + /* We only support CCMP here, so further filter. */ + hwciphers &= IEEE80211_CRYPTO_AES_CCM; + ieee80211_set_hardware_ciphers(ic, hwciphers); } #endif From nobody Tue Apr 29 11:41:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1b5b7Lz5tv9C; Tue, 29 Apr 2025 11:41:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1b1mx8z3xC0; Tue, 29 Apr 2025 11:41:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iufX4WA3Xi3xey4Sfx4x6Ml7zV6np+WvJUkUK+2ZpPU=; b=clwlZLYN0GYx9YLmWqRBLLlGBg2AoOuSeCNwwdZs3EEkFV/NE3MO10Te7IEXI6byzaAV87 k25ECxTW/NTdKHWw1t3eDzfkHea2RtBMND92YoK2X/izfo6oHLrhIx9iqjx/Y1c/bUY65m pJrq8YmVXsAGXPlv8yjaUEsW2/Oix2w6FRtM1n/CiwlJnAIpXVrQvcG33/r/pSmgO26yNU jH8V1g110pRjUuXPeBuAxnsqlQLdsw4SmVFoiXHg+ED8JTqAEwv64iBqAY1eqbwHPxLVPF al9Oc/US/2+wnV7blVGfFU1rKL1TWfwVi0aBMoKPJVEUHUlZI7lAAXYXfVOYtw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926915; a=rsa-sha256; cv=none; b=eh4dZohk8WkYpKpZv7HeYr32RbSrGz4+EiQVE+FFQ+r8aCbeRZpqGn+xdxr+ba619qTFUh 4YAPC4IQMI8EiAVGy2taa9VQ9sDRgm6oTxcmiXj2UL5w/8rU+TeONT9xuBFGFu18v3lGlu myBWigNEQH/KDFmNO5uBui87zoYJh0rxPYMMnWvKxTnRFikaM7kpi4y8iG3nzyAOZ7p4Vc EeTXYvvCD3O1575fmMMqc6yGD6AFLkM2khFE5RAaPldjhnHkaRbBid6kpO3/lguXwoFp7H axLVG3FyR71pfduKJt9R6zePEEg5L42HqmFe7koxWOHG+6HZmzHYV0hdHnB+Ig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iufX4WA3Xi3xey4Sfx4x6Ml7zV6np+WvJUkUK+2ZpPU=; b=Fq0ncyJLVPBXRZwPuCg/lrrMUs/zZOm1MfDPzTWt9o4tBI+wzA26zFFqxhq3y6Z5mspQaP Yoi5Et8nruRGP9guNxjLIqtNjoGWJKUwQivJVkkW3AT0pXIzb3ZZLzsqSHrbS6MuFHG8dA wRF8leV21MabcbbfEK1Wyh7mpoBjuFEcWGZsTq7pzp9h90t7BZnJgLZmvGQ08ZLoCggr8s ztKmZrvf+oA/8Z/gIXl2SrC11mK48zPL+XRZuUcO0lZB5ZHxISJg21jgNRjoevMmLt/ONj yM3bJFm8NUK0JqJDMXohw6DeRp0MPPFausAryiWl4Z7dddkZVNKyqeRtrNkkuQ== 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 4Zmz1b1Npqz44w; Tue, 29 Apr 2025 11:41:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBftVw046361; Tue, 29 Apr 2025 11:41:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBft7a046358; Tue, 29 Apr 2025 11:41:55 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:55 GMT Message-Id: <202504291141.53TBft7a046358@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ae3d7f439568 - stable/14 - LinuxKPI: 802.11: remove lkpi_iv_key_set/delete wrappers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ae3d7f439568d4fb0f27f22c585522ecc9430aca Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ae3d7f439568d4fb0f27f22c585522ecc9430aca commit ae3d7f439568d4fb0f27f22c585522ecc9430aca Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 21:16:31 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:31 +0000 LinuxKPI: 802.11: remove lkpi_iv_key_set/delete wrappers We currently use simple wrapper functions not doing anything for lkpi_iv_key_set/delete. Garbage collect them and call the implementation directly. Sponsored by: The FreeBSD Foundation (cherry picked from commit aa294e8e40a1aa93d5af05d573744833c5f6804a) --- sys/compat/linuxkpi/common/src/linux_80211.c | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 2dc7b7c8ec9a..69f065df6b4f 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1222,8 +1222,10 @@ lkpi_sta_del_keys(struct ieee80211_hw *hw, struct ieee80211_vif *vif, return (error); } +/* XXX-BZ one day we should replace this iterating over VIFs, or node list? */ +/* See also lkpi_sta_del_keys() these days. */ static int -_lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) +lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) { struct ieee80211com *ic; struct lkpi_hw *lhw; @@ -1319,16 +1321,7 @@ out: } static int -lkpi_iv_key_delete(struct ieee80211vap *vap, const struct ieee80211_key *k) -{ - - /* XXX-BZ one day we should replace this iterating over VIFs, or node list? */ - /* See also lkpi_sta_del_keys() these days. */ - return (_lkpi_iv_key_delete(vap, k)); -} - -static int -_lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) +lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) { struct ieee80211com *ic; struct lkpi_hw *lhw; @@ -1452,13 +1445,6 @@ _lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) return (1); } -static int -lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) -{ - - return (_lkpi_iv_key_set(vap, k)); -} - static void lkpi_iv_key_update_begin(struct ieee80211vap *vap) { From nobody Tue Apr 29 11:41:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1f25qxz5tvNf; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1d3kHJz3xCW; Tue, 29 Apr 2025 11:41:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xWPWA5ERgt3S+1lYlWgxhTLBWkkzqy8EXmMs+jeTxTg=; b=bsKkolzWXuC8prELElPYY3B+NJJGPIv67L/aJYsertdpByksMalw76Hyp8QbfQvaFHFKc7 c8nJPJkr4aj7wGgTpRQTaY6rL0hzjwmC78nS5Rv0Ur6vBjcopeg4JUghmGDo1mim3HJcaa Wj9Vu5Pwv/la9L/MyIzlsUhUk4E8btm+WWtuQndj08Q8HZvMXatVwBvNwJeGr3vhROaYFu cF8lVmlIIXbu3xNzjSQnuuHrwz6ZUOrZ+pZAX+FXB4NGtTRPuytN6nNwqVIyDnAdK1aYpR lhDlBrcyxC+s0q1oca7S+7Oo8K27ZpIQyGwrjVIEitSuENz8xEhlXSSnOt1tvA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926917; a=rsa-sha256; cv=none; b=w8Rz67ebS0D/y+a2FHkUKCY/FZQCUPWFhNn30m2VWe6sCO5HFfwi4HgF6j8i7P2V/bowu7 ykxDBuQ53Cqn1E81ScIuv62Eez4JCa/bX6b1MQO//xNoZ4PcSHb+JhdD6t3R7lc7RaL5yp g291h6yowdF1ql4ekollM+2iiccGP9B1ooVW9t+yd4YBf0LxYZuaOgmX/1LC9ty6CgBdVW JdlCM6rf7H+NPlAejTuAF3EnpgKqZ06j1oCiJyWTc2Kcb4OyRzBrbau0Kr/VgN8DCDO19Y XQ9TQ1sKR7cipBbZjf/f91KuAjS90+i6z98nvS4eWTxIQfdDGQ0tHWwtMan7yw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xWPWA5ERgt3S+1lYlWgxhTLBWkkzqy8EXmMs+jeTxTg=; b=GwIGeJbE64lOdgwW1SiChs8fKvwTQk3Uvi6m6M8UpAo2eogukmiFdJcQAu+419WmlZdz5j aemxOxuw/yCsEgSmUJOWEi8EoIe0PDfQLFM6yBu/gRmAwMJMarpLyST8u7Nf9oSG38PNJi mF7m48qQ5aruK02zelzgKfhVbT8m4t9o0eFQOHd0gKnIqSeV3ORLeS6HHRA9ZEys0z2I/O +/g8rxa+Q+jjN2Rsk7mkiC7grBZ6+lH4fhyLFhXPuEru25mDHjV/4kMnTrs6tXFECojSqb 2iLuvtPms8Xp/1LpuonsUaZBpkVTd8D83V/7F1iZJT7UxoiCgHbah0KqhELZ/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 4Zmz1d33Hcz43m; Tue, 29 Apr 2025 11:41:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfv2a046437; Tue, 29 Apr 2025 11:41:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfv3S046434; Tue, 29 Apr 2025 11:41:57 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:57 GMT Message-Id: <202504291141.53TBfv3S046434@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: e2e40ccaf1a1 - stable/14 - LinuxKPI: 802.11: add the key mgmt for TKIP and extra checks for CCMP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e2e40ccaf1a1312679b402f925f5d78f796bc43a Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e2e40ccaf1a1312679b402f925f5d78f796bc43a commit e2e40ccaf1a1312679b402f925f5d78f796bc43a Author: Bjoern A. Zeeb AuthorDate: 2025-04-15 21:28:48 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:31 +0000 LinuxKPI: 802.11: add the key mgmt for TKIP and extra checks for CCMP Set iv/icv_len for TKIP as well. Add checks for both TKIP and CCMP that we do not get any unexpected or unimplemented flags back from KEY_SET. Sponsored by: The FreeBSD Foundation (cherry picked from commit 92942717fd4cdcfac4c51a46accd3e5ed532cdb7) (cherry picked from commit 91716e8dc1a3452fecedc724e5ef0274413ce7a0) --- sys/compat/linuxkpi/common/src/linux_80211.c | 75 ++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 86a8286d66eb..d6eeaf01d56b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1352,6 +1352,7 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) struct ieee80211_node *ni; struct ieee80211_key_conf *kc; uint32_t lcipher; + uint16_t exp_flags; int error; ic = vap->iv_ic; @@ -1390,8 +1391,8 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) k->wk_cipher->ic_cipher, k->wk_keylen); switch (lcipher) { case WLAN_CIPHER_SUITE_CCMP: - break; case WLAN_CIPHER_SUITE_TKIP: + break; default: ic_printf(ic, "%s: CIPHER SUITE %#x (%s) not supported\n", __func__, lcipher, lkpi_cipher_suite_to_name(lcipher)); @@ -1423,6 +1424,9 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) kc->icv_len = k->wk_cipher->ic_trailer; break; case WLAN_CIPHER_SUITE_TKIP: + kc->iv_len = k->wk_cipher->ic_header; + kc->icv_len = k->wk_cipher->ic_trailer; + break; default: /* currently UNREACH */ IMPROVE(); @@ -1460,6 +1464,53 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) kc, kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); #endif + exp_flags = 0; + switch (kc->cipher) { + case WLAN_CIPHER_SUITE_TKIP: + exp_flags = (IEEE80211_KEY_FLAG_PAIRWISE | + IEEE80211_KEY_FLAG_PUT_IV_SPACE | + IEEE80211_KEY_FLAG_GENERATE_MMIC | + IEEE80211_KEY_FLAG_PUT_MIC_SPACE); +#define TKIP_INVAL_COMBINATION \ + (IEEE80211_KEY_FLAG_PUT_MIC_SPACE|IEEE80211_KEY_FLAG_GENERATE_MMIC) + if ((kc->flags & TKIP_INVAL_COMBINATION) == TKIP_INVAL_COMBINATION) { + ic_printf(ic, "%s: SET_KEY for %s returned invalid " + "combination %b\n", __func__, + lkpi_cipher_suite_to_name(kc->cipher), + kc->flags, IEEE80211_KEY_FLAG_BITS); + } +#undef TKIP_INVAL_COMBINATION +#ifdef __notyet__ + /* Do flags surgery; special see linuxkpi_ieee80211_ifattach(). */ + if ((kc->flags & IEEE80211_KEY_FLAG_GENERATE_MMIC) != 0) { + k->wk_flags &= ~(IEEE80211_KEY_NOMICMGT|IEEE80211_KEY_NOMIC); + k->wk_flags |= IEEE80211_KEY_SWMIC; + ic->ic_cryptocaps &= ~IEEE80211_CRYPTO_TKIPMIC + } +#endif + break; + case WLAN_CIPHER_SUITE_CCMP: + exp_flags = (IEEE80211_KEY_FLAG_PAIRWISE | + IEEE80211_KEY_FLAG_PUT_IV_SPACE | + IEEE80211_KEY_FLAG_GENERATE_IV | + IEEE80211_KEY_FLAG_GENERATE_IV_MGMT | /* Only needs IV geeration for MGMT frames. */ + IEEE80211_KEY_FLAG_SW_MGMT_TX); /* MFP in software */ + break; + } + if ((kc->flags & ~exp_flags) != 0) + ic_printf(ic, "%s: SET_KEY for %s returned unexpected key flags: " + " %#06x & ~%#06x = %b\n", __func__, + lkpi_cipher_suite_to_name(kc->cipher), kc->flags, exp_flags, + (kc->flags & ~exp_flags), IEEE80211_KEY_FLAG_BITS); + +#ifdef __notyet__ + /* Do flags surgery. */ + if ((kc->flags & IEEE80211_KEY_FLAG_GENERATE_IV_MGMT) == 0) + k->wk_flags |= IEEE80211_KEY_NOIVMGT; + if ((kc->flags & IEEE80211_KEY_FLAG_GENERATE_IV) == 0) + k->wk_flags |= IEEE80211_KEY_NOIV; +#endif + ieee80211_free_node(ni); return (1); } @@ -5956,16 +6007,32 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) uint32_t hwciphers; hwciphers = 0; - for (i = 0; i < hw->wiphy->n_cipher_suites; i++) - hwciphers |= lkpi_l80211_to_net80211_cyphers( + for (i = 0; i < hw->wiphy->n_cipher_suites; i++) { + uint32_t cs; + + cs = lkpi_l80211_to_net80211_cyphers( ic, hw->wiphy->cipher_suites[i]); + if (cs == IEEE80211_CRYPTO_TKIP) { + /* + * We do set this here. We will only find out + * when doing a SET_KEY operation depending on + * what the driver returns. + * net80211::ieee80211_crypto_newkey() + * checks this so we will have to do flags + * surgery later. + */ + cs |= IEEE80211_CRYPTO_TKIPMIC; + } + hwciphers |= cs; + } /* * (20250415) nothing anywhere in the path checks we actually * support all these in net80211. * net80211 supports _256 variants but the ioctl does not. */ IMPROVE("as net80211 grows more support, enable them"); - hwciphers &= (IEEE80211_CRYPTO_WEP | IEEE80211_CRYPTO_TKIP | + hwciphers &= (IEEE80211_CRYPTO_WEP | + IEEE80211_CRYPTO_TKIP | IEEE80211_CRYPTO_TKIPMIC | IEEE80211_CRYPTO_AES_CCM | IEEE80211_CRYPTO_AES_GCM_128); /* We only support CCMP here, so further filter. */ hwciphers &= IEEE80211_CRYPTO_AES_CCM; From nobody Tue Apr 29 11:41:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1f6nDhz5tvFT; Tue, 29 Apr 2025 11:41: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1f4B6Pz3x39; Tue, 29 Apr 2025 11:41:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4x0QyvYfaF8nJewTviOUw5bL0TF2Fb4BYP1vkIATZxs=; b=m7s2BGzElFyNnUJ1KlNW4AgxPn6/f9WkHcGnlzGwCTX6Vpo78Nu0uxtMFnMVJ9sW9MjYwb N/hzryqs+NCgP4/s+i9Yh9xnbefG6+A4Tn1nYhXP2SAINXZu+ATRpW7fpfSX4mLbJQGKK8 fDnUDH9yYmo44iiQpEyxjytRlVx+Wfa4IDZipZB56zHuANBYf3Adp0Su+KrCXi2Yrh4TsJ FimyMNRe2+MzNmLrBgh74zw9lqT5thhD+p61SSZIC1iwUBrw2yGk4NgT1anUsfYi9/kVVE O3e6FsIYjbABSz6T8zDRL7bsdbAA17/igPeX3gIxn4GVMFL0BFJJR1RaVjqXMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926918; a=rsa-sha256; cv=none; b=nthXHhQdnhSZKD5xeeng0TYHGUBUm40VPVufTqMJQz4zafviJ0JlRKsriimGr92rHCjJwJ UXbvXdk9vDvCbL7ruI/0MX9rRozccKCFEBYt8dsrBLzdsTEWPuRpqZc9C9w/iW2TbaFx65 kzE1PH1geq8BjNySZv1QkjgRfqOZheWSROQzIC3Hp0A/WuoxNlTKIK6vPiPyV7i/i5oaZQ odxS+htuIOaUanQJJ5TryMQLnmG4F0mBX9ofWfSH5/n+vo04TzmzES7l1PGptr4aQtavm3 Zv0wYH6Rokz99BsFA0XOlywa0Q/FFg6GJZlVyOrDGdJcK/VTyEC3uhcs2H2fbg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4x0QyvYfaF8nJewTviOUw5bL0TF2Fb4BYP1vkIATZxs=; b=B0wVxJkR63j/rDihUraCe9ihnPcR+ZgtpieFaFevI0OCK8gakhx98C6z/yfX9OkrPI0hnA b6sC6cGRi5q/+O2n/JXE/chjvkS/T5OqNTeDo63Vsf1L2eQC1Ua5XX2bljT6G4mlZPzmJg rk1fcAkszmrsusP6VdI7sFnHNuYEYH2KS1l4ZQfJItB69NrZp5s6NJ+qItUM2kqV4VBJv3 13tNEDOeG3GZpQZlD0CK6Mzy1AnF7bti8w54utSwTNSz82JvEKrSrQkQa40QEMezRg/wmn /aBCBUJQ9JpQKmwALz45AeViK5DZUsPRwGnJ9tSWc0kbJ3cpgXS8Yk3ylPfoWA== 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 4Zmz1f3jpzz3jS; Tue, 29 Apr 2025 11:41:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfwsg046474; Tue, 29 Apr 2025 11:41:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfwOn046471; Tue, 29 Apr 2025 11:41:58 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:58 GMT Message-Id: <202504291141.53TBfwOn046471@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: d416d659b90c - stable/14 - LinuxKPI: 802.11: fix TKIP RX/TX MIC offsets List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d416d659b90c77e0b0872114e3dd2e8e061b1aaa Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d416d659b90c77e0b0872114e3dd2e8e061b1aaa commit d416d659b90c77e0b0872114e3dd2e8e061b1aaa Author: Bjoern A. Zeeb AuthorDate: 2025-04-16 08:18:24 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:31 +0000 LinuxKPI: 802.11: fix TKIP RX/TX MIC offsets TKIP has a special key buffer. While keylen only identifies the key length, the two MIC are appended. The LinuxKPI offsets for these were unfortunately never set correct which lead to constant Micheal counter measures as the MIC never was correct when calculations were offloaded to firmware. This is the first half of the fix. Sponsored by: The FreeBSD Foundation (cherry picked from commit a23908728efce08cfd10b13ed34de1361d0a980f) --- sys/compat/linuxkpi/common/include/linux/nl80211.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/nl80211.h b/sys/compat/linuxkpi/common/include/linux/nl80211.h index b2a33a28b3a7..f3979d3a2abc 100644 --- a/sys/compat/linuxkpi/common/include/linux/nl80211.h +++ b/sys/compat/linuxkpi/common/include/linux/nl80211.h @@ -190,8 +190,6 @@ enum nl80211_tdls_operation { NL80211_TDLS_ENABLE_LINK, NL80211_TDLS_DISABLE_LINK, NL80211_TDLS_DISCOVERY_REQ, - NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY, - NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY, }; enum nl80211_cqm_rssi_threshold_event { @@ -436,6 +434,9 @@ enum nl80211_hidden_ssid { NL80211_HIDDEN_SSID_NOT_IN_USE, }; +#define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16 +#define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24 + #define NL80211_KCK_LEN 16 #define NL80211_KCK_EXT_LEN 24 #define NL80211_KEK_LEN 16 From nobody Tue Apr 29 11:42:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1j0tM9z5tvFr; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1h5XBjz3xLQ; Tue, 29 Apr 2025 11:42:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JlJQCs7JrpQMyBz9oWIfkM2SIsBPzNwTU54lfd+x0gw=; b=g3r0Q/PVXoEfUnO94z56os5QIJ+pMznCia5NBufcAg8MZfQd0rdHFlo7ah2fxyBa846K7F pC6XX/V29Crwn8+kwxw3m7+D5kZyZnZHSnY4waKCTFs1HhZ80mT6kk4M1HHuIRk6kJlFvB eF6RhRe1orbnhuaNFOzrYYRnOd7uViOxEv4yJ2fvu8I90JIzjVgOSdDR0Lo02ItJQAOBlk yhvLb3ooOxFZMrK+3VnLqPqhRB02Oo/a0gcvmZU5d/YHYJt6iM0RSW3i4S0PE2cyGWJ5Gg VDagmBTW+FsStunqjEuLuAxXSJaKprg5lXdn5Wc1U+3nZadgLmA8XpB5bMhEtA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926920; a=rsa-sha256; cv=none; b=VF4aKXRk1e+QrKSVVDaAr354Et3cWn4uUyf4Sel2WRpdGE+A1cxT/Nw/UajGOD/nt70jFy gCw4kMezrjbmJwBh0blvJkdS9pBtuYkpnr2hFz51z1AbJaj+12wVK019IQFmaF+DxzzU+Q Tgb/xug9uHVnuBmTr7FI76imwSNO5D5O/ieKE7MpVSN0o7gih5x77uhph/N/XAJmDqipgw C1yx+QLTO1vCTh5HATM/ciiFzrsJ2gPCWHzvLwCGpr9DMNggKlmB+YW8F2kY7rzkU8PxX4 J7Pwy7Rx3p8ActYqIH5Q8U271/AflK+Gc4K94RAKNNmOYEMzx7XBWFI2vZrqig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JlJQCs7JrpQMyBz9oWIfkM2SIsBPzNwTU54lfd+x0gw=; b=I3V+Iiv5qegBWvkK4tXiGDj8ck4gjcI6VTyp0WSIUdGfsgewYWhqaTWJ9lJ+RsLD2Sk6re wNuxzkFkyUSQyp1neXTIZkedHuML5eMCgQc5HpHDLRAoU+jUPxKPRHvGhw3bCPJNIAfT0x y6xyC6WJaXusAnH0sZhhxPTsIKZRUjw7pqksM01VFxtLAIdRrQkm+RW7N/Cb3cf0TMAGEs 1blOibHp3r2HF96NOyoJJAnjTxdyJPup1T+dtsp3h9thfowTvseA9YGcnD+dcnwfwDwdhH 9vKGkRY3ksIhe7mc7xgygIyz9P+/sjWRsM327t4gYoirtxoeyIAqpjJrZopP9g== 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 4Zmz1h4xBvz3ch; Tue, 29 Apr 2025 11:42:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg0X2047509; Tue, 29 Apr 2025 11:42:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg013047506; Tue, 29 Apr 2025 11:42:00 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:00 GMT Message-Id: <202504291142.53TBg013047506@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ecc5344225cb - stable/14 - LinuxKPI: 802.11: further improve key updates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ecc5344225cb85250c36159193180484c3f4bd10 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ecc5344225cb85250c36159193180484c3f4bd10 commit ecc5344225cb85250c36159193180484c3f4bd10 Author: Bjoern A. Zeeb AuthorDate: 2025-04-16 21:11:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:32 +0000 LinuxKPI: 802.11: further improve key updates Make sure the iv_bss noce does not go away in the middle of a key update given we unlocked. Just as a precaution. No real case has been seen so far. Sponsored by: The FreeBSD Foundation Fixes: a6165709e3c8 (cherry picked from commit a6413bce4e36e4176bbcf16528cc3aeb834965ba) --- sys/compat/linuxkpi/common/src/linux_80211.c | 22 +++++++++++++++++++++- sys/compat/linuxkpi/common/src/linux_80211.h | 1 + 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 964d995db728..4ac8856a09e5 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1528,6 +1528,7 @@ lkpi_iv_key_update_begin(struct ieee80211vap *vap) struct lkpi_hw *lhw; struct ieee80211_hw *hw; struct lkpi_vif *lvif; + struct ieee80211_node *ni; bool icislocked, ntislocked; ic = vap->iv_ic; @@ -1548,7 +1549,16 @@ lkpi_iv_key_update_begin(struct ieee80211vap *vap) lvif->ic_unlocked, lvif->nt_unlocked); #endif - /* This is inconsistent net80211 locking to be fixed one day. */ + /* + * This is inconsistent net80211 locking to be fixed one day. + */ + /* Try to make sure the node does not go away while possibly unlocked. */ + ni = NULL; + if (icislocked || ntislocked) { + if (vap->iv_bss != NULL) + ni = ieee80211_ref_node(vap->iv_bss); + } + if (icislocked) IEEE80211_UNLOCK(ic); if (ntislocked) @@ -1556,6 +1566,10 @@ lkpi_iv_key_update_begin(struct ieee80211vap *vap) wiphy_lock(hw->wiphy); + KASSERT(lvif->key_update_iv_bss == NULL, ("%s: key_update_iv_bss not NULL %p", + __func__, lvif->key_update_iv_bss)); + lvif->key_update_iv_bss = ni; + /* * ic/nt_unlocked could be a bool given we are under the lock and there * must only be a single thread. @@ -1605,6 +1619,12 @@ lkpi_iv_key_update_end(struct ieee80211vap *vap) */ icislocked = refcount_release_if_last(&lvif->ic_unlocked); ntislocked = refcount_release_if_last(&lvif->nt_unlocked); + + if (lvif->key_update_iv_bss != NULL) { + ieee80211_free_node(lvif->key_update_iv_bss); + lvif->key_update_iv_bss = NULL; + } + wiphy_unlock(hw->wiphy); /* diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index a5c052c78db0..89afec1235bd 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -191,6 +191,7 @@ struct lkpi_vif { struct lkpi_sta *lvif_bss; + struct ieee80211_node *key_update_iv_bss; int ic_unlocked; /* Count of ic unlocks pending (*mo_set_key) */ int nt_unlocked; /* Count of nt unlocks pending (*mo_set_key) */ bool lvif_bss_synched; From nobody Tue Apr 29 11:41:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1h2bD8z5tvRV; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1g4wQ2z3x9j; Tue, 29 Apr 2025 11:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926919; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ndo3xhwsRtjNlRF9oGhL7XYsMh5JkB5eHk70FqokDjE=; b=vXxd41UAtx+rvch6Vro4hZz+yKP3/q0DXsWxcZPoz6HfuoLQbA4cdL5It5J6oa14oqjgpO Ij4N1ZYR9cC8j96EDWLRdKnVUFzeYHvs50DSZ2BL1q6cl31HtXJOtzJIUVlGTeTz0Tng3C cTMvFs7vV1rPUPhflNStmgOanRZCQcgcMX7wUj7Z8v+uuwCdTWuYDs9IUAoxFCmyZ9KuuD JkMl23G1QftpT0p4nW1ff02TEON1Mv7c2dQExBQtOcTJxJq9V6/xIWiocy2t48oJXmVE6C 2oYdyi3iXormH8AIWiFEVmSORxZ6DW3tk5eKEiZ4QNVbxtwRdLzgOiZRAUM86g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926919; a=rsa-sha256; cv=none; b=GoBQZPCmjRcwNExaFWOJppH/Clcmfsfk07sEuxNDQRsr43lmh6lJ7hQEQZ5m0v4+G6cmXT L2hvd4QgMX1ruZfTSRoN/zCxdpCG1C+IvfwTVqVr8vR8Wimpy9w9YAxF1ip6eg5Ucy/WhK 8BZ8uuNVTg5Iznc7M/Ek5vNwiAG4cU+mWMajMpFvnNFzh60Sb1FmCAqVZhLFWjoRq8mjQJ 8hbekgiXpKQIZcPTIOqxxvCFZqdvGJ/kJQo/+sabFJZHzMnwec9H+koIkv0YzMeg2/RcH3 c2zfN0eEmX7K/aSu0HlK/yVWFaD9QuhaARylBPAaCmjBbFiVMDdtbZbzhR1KiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926919; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ndo3xhwsRtjNlRF9oGhL7XYsMh5JkB5eHk70FqokDjE=; b=M3taryhpPwi6bUfVLVhERoz20BKY6T4Auijx6DYma69PpdHoO9uk7cfJHIs+GQtCfGzUMI OrFwImez5HLOsjSzjeZ16p9I4QljZuI+7eHUeJxBAiSJumK5J5YLmOxgDanu54YsDreD2F Atshzh/6XgaLEN7/1eFo2hZHSsJxTvKM6hkSK7/W4MkdTUIoJJKPEzRHXEZHw1X74/CUBr 60fbTnl36kmpINXKpulPD6WMNUG35mAt8v38i3jMO5vv/NlkJ9azaXKTMOIM+rO/N+HGC/ X81LdqhtVHmC7qb1iHtXkvB8OIjkC3HGRR0jzfnFyBuNT4/BfAwv/bO9fY/X5Q== 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 4Zmz1g4G5vz3rw; Tue, 29 Apr 2025 11:41:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBfxDv046830; Tue, 29 Apr 2025 11:41:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBfxVC046810; Tue, 29 Apr 2025 11:41:59 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:41:59 GMT Message-Id: <202504291141.53TBfxVC046810@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 3b4ffe19a44f - stable/14 - LinuxKPI: 802.11: make TKIP start to work List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3b4ffe19a44fab1d116b15a4e8244029f9061740 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3b4ffe19a44fab1d116b15a4e8244029f9061740 commit 3b4ffe19a44fab1d116b15a4e8244029f9061740 Author: Bjoern A. Zeeb AuthorDate: 2025-04-16 08:22:20 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:32 +0000 LinuxKPI: 802.11: make TKIP start to work In lkpi_iv_key_set() change the order to check if the cipher suite is supported. This for one avoids a possible kc memory leak, for the other allows us to extend the keylen we use for allocating memory. TKIP does need extra space as in addition to the key the RX/TX MIC are appended. Copy those now as well. In lkpi_hw_crypto_prepare_tkip() do the "enmic" (making space) part first before doing the "encap" part (making space). While this is technically not fully correct as the "enmic" would be done once for the entire MSDU and the "encap" would be done for each fragment, we are currently not setup to do per-vap or per-ic callbacks for this at the right moment from net80211. It will require a bit of thought. On the other hand we expect the firmware to do all this so it should be fine for as long as we no longer skip one part. We can likely start being more creative here in the compat code if needed. Sponsored by: The FreeBSD Foundation (cherry picked from commit 4b9ae864fc46f75d87d04b1b9c343f317a9d0bed) --- sys/compat/linuxkpi/common/src/linux_80211.c | 90 +++++++++++++++++++--------- 1 file changed, 61 insertions(+), 29 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index d6eeaf01d56b..964d995db728 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1353,6 +1353,7 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) struct ieee80211_key_conf *kc; uint32_t lcipher; uint16_t exp_flags; + uint8_t keylen; int error; ic = vap->iv_ic; @@ -1377,21 +1378,14 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) } sta = LSTA_TO_STA(lsta); - if (lsta->kc[k->wk_keyix] != NULL) { - IMPROVE("Still in firmware? Del first. Can we assert this cannot happen?"); - ic_printf(ic, "%s: sta %6D found with key information\n", - __func__, sta->addr, ":"); - kc = lsta->kc[k->wk_keyix]; - lsta->kc[k->wk_keyix] = NULL; - free(kc, M_LKPI80211); - kc = NULL; /* safeguard */ - } - + keylen = k->wk_keylen; lcipher = lkpi_net80211_to_l80211_cipher_suite( k->wk_cipher->ic_cipher, k->wk_keylen); switch (lcipher) { case WLAN_CIPHER_SUITE_CCMP: + break; case WLAN_CIPHER_SUITE_TKIP: + keylen += 2 * k->wk_cipher->ic_miclen; break; default: ic_printf(ic, "%s: CIPHER SUITE %#x (%s) not supported\n", @@ -1401,9 +1395,18 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) return (0); } - kc = malloc(sizeof(*kc) + k->wk_keylen, M_LKPI80211, M_WAITOK | M_ZERO); + if (lsta->kc[k->wk_keyix] != NULL) { + IMPROVE("Still in firmware? Del first. Can we assert this cannot happen?"); + ic_printf(ic, "%s: sta %6D found with key information\n", + __func__, sta->addr, ":"); + kc = lsta->kc[k->wk_keyix]; + lsta->kc[k->wk_keyix] = NULL; + free(kc, M_LKPI80211); + kc = NULL; /* safeguard */ + } + + kc = malloc(sizeof(*kc) + keylen, M_LKPI80211, M_WAITOK | M_ZERO); kc->_k = k; /* Save the pointer to net80211. */ - atomic64_set(&kc->tx_pn, k->wk_keytsc); kc->cipher = lcipher; kc->keyidx = k->wk_keyix; #if 0 @@ -1424,6 +1427,8 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) kc->icv_len = k->wk_cipher->ic_trailer; break; case WLAN_CIPHER_SUITE_TKIP: + memcpy(kc->key + NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY, k->wk_txmic, k->wk_cipher->ic_miclen); + memcpy(kc->key + NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY, k->wk_rxmic, k->wk_cipher->ic_miclen); kc->iv_len = k->wk_cipher->ic_header; kc->icv_len = k->wk_cipher->ic_trailer; break; @@ -1437,9 +1442,9 @@ lkpi_iv_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k) #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) ic_printf(ic, "%s: running set_key cmd %d(%s) for sta %6D: " - "kc %p keyidx %u hw_key_idx %u flags %b\n", __func__, - SET_KEY, "SET", sta->addr, ":", - kc, kc->keyidx, kc->hw_key_idx, kc->flags, IEEE80211_KEY_FLAG_BITS); + "kc %p keyidx %u hw_key_idx %u keylen %u flags %b\n", __func__, + SET_KEY, "SET", sta->addr, ":", kc, kc->keyidx, kc->hw_key_idx, + kc->keylen, kc->flags, IEEE80211_KEY_FLAG_BITS); #endif lhw = ic->ic_softc; @@ -4680,16 +4685,51 @@ lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, } #ifdef LKPI_80211_HW_CRYPTO +/* + * This is a bit of a hack given we know we are operating on a + * single frame and we know that hardware will deal with it. + * But otherwise the enmic bit and the encrypt bit need to be + * decoupled. + */ static int lkpi_hw_crypto_prepare_tkip(struct ieee80211_key *k, struct ieee80211_key_conf *kc, struct sk_buff *skb) { struct ieee80211_hdr *hdr; uint32_t hlen, hdrlen; - uint8_t *p, *m; + uint8_t *p; /* - * Check if we have anythig to do as requested by driver + * TKIP only happens on data. + */ + hdr = (void *)skb->data; + if (!ieee80211_is_data_present(hdr->frame_control)) + return (0); + + /* + * "enmic" (though we do not do that). + */ + /* any conditions to not apply this? */ + if (skb_tailroom(skb) < k->wk_cipher->ic_miclen) + return (ENOBUFS); + + p = skb_put(skb, k->wk_cipher->ic_miclen); + if ((kc->flags & IEEE80211_KEY_FLAG_PUT_MIC_SPACE) != 0) + goto encrypt; + + /* + * (*enmic) which we hopefully do not have to do with hw accel. + * That means if we make it here we have a problem. + */ + TODO("(*enmic)"); + return (ENXIO); + +encrypt: + /* + * "encrypt" (though we do not do that). + */ + /* + * Check if we have anything to do as requested by driver * or if we are done? */ if ((kc->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) == 0 && @@ -4698,23 +4738,13 @@ lkpi_hw_crypto_prepare_tkip(struct ieee80211_key *k, hlen = k->wk_cipher->ic_header; if (skb_headroom(skb) < hlen) - return (ENOSPC); + return (ENOBUFS); hdr = (void *)skb->data; hdrlen = ieee80211_hdrlen(hdr->frame_control); p = skb_push(skb, hlen); memmove(p, p + hlen, hdrlen); - /* - * Put in zeroed space for the MMIC if requested. - * XXX-BZ in theory this is not the right place but given we - * are here we know we do hw_crypto so not much missing. - */ - if ((kc->flags & IEEE80211_KEY_FLAG_PUT_MIC_SPACE) != 0) { - m = skb_put(skb, 8); - memset(m, 0, 8); - } - /* If driver request space only we are done. */ if ((kc->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) != 0) return (0); @@ -4722,6 +4752,8 @@ lkpi_hw_crypto_prepare_tkip(struct ieee80211_key *k, p += hdrlen; k->wk_cipher->ic_setiv(k, p); + /* If we make it hear we do sw encryption. */ + TODO("sw encrypt"); return (ENXIO); } static int @@ -4747,7 +4779,7 @@ lkpi_hw_crypto_prepare_ccmp(struct ieee80211_key *k, hlen = k->wk_cipher->ic_header; if (skb_headroom(skb) < hlen) - return (ENOSPC); + return (ENOBUFS); hdrlen = ieee80211_hdrlen(hdr->frame_control); p = skb_push(skb, hlen); From nobody Tue Apr 29 11:42:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1m3fNqz5tvFw; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1m0rmsz3xPN; Tue, 29 Apr 2025 11:42:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926924; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pMMITarSuqnHFhdA3dyiw671UnkKrKmmF03Ra+HeJHs=; b=hW19gRp1BSWd2EnGt1o+/xHZzf0KAf9CaGvKeWQWpFUWU31XiMJkNjR9mc43cWdpkUJvCa +QNsP8/c+w4ptj0JDGI4dSTm6PqJEKnEtqUOqxvLvo+A5V/I+tKAfpa7KhKPHW8iqXu2f5 KlbfxNFsbBmDbDMlg3c2Lpc62GPAuFTVLKdsaijlJN/ZgJlOTgda1Qp7tMZgj2/2eGMKxw BkjTRhrT38NiDgmMv3iGOVlZ+6IDARFBhSTyb3eVXfYUVPVYigcYO+zfCGXhd0cG40UwQX Sqfd5GM3wFkgqP9vy6QQWbhONQEvQRtL0e2ixeDDJYD4CQ+uJSaykkfauWhY1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926924; a=rsa-sha256; cv=none; b=GEUmJBC7igsudfeuZtdzaLs8wWAKHJMieAoLwlIhY8AujY7w2YPnRaVhmpMCyUP6w3Ca16 pMqfo/730loslDmL31Oe+KZ5BpzFJP4N5+MIT7Y5frMHqMVsP0Bb+TLiA0ACjLPkghSl4g 118Cwjy+ynZOulAh0JNyzlYoAyCw6PdMqXvclyM9EKMFTAr7Q/l1BeIoYTuahV13G1TLlG G8RizqyrRPF3VgTJba5lYjQdexW+wl/0rISkRBYKevi7hE2ACcKbeIpE4wotyL/0txGlLA jxdYgjGfTlT4/LcRly7845mAPIIdjPQnp4swOJ8kg1DSRlEbhxGLuAArAs9V7g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926924; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pMMITarSuqnHFhdA3dyiw671UnkKrKmmF03Ra+HeJHs=; b=njDp65NjiFrt7gwiuz7K/uEHSqc3dcUJ9w+nl12agIQZ6Uf7EpeFNqtgCmutmbElUnw499 WxPCu3+JR+12Skzpql/Jw6jSYAIBGaK8k8ODgEeUslBgMx29BTsb33tB3yXjRDEU9cvrvL HWfnGn8VA4TDr4mkqmdacYRBKQb6vttQcvqEEh5/6gCqxEZY//Vyohu+LgKx1PoO0RPbss b5S0cjKrp7g9m5b0WssDwsAl7AAwf5Xr4h7cbPfQxI5tLngOCuUYDjHEjkJihkMbEYcEnU o+zEZgXTgAfnJHNdU+0yzsMa1ZD1EmHYmEsWDZbRC0oCuev95dxKOPDE2WWGNw== 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 4Zmz1m0JQpz3g3; Tue, 29 Apr 2025 11:42:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg382047621; Tue, 29 Apr 2025 11:42:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg3kR047618; Tue, 29 Apr 2025 11:42:03 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:03 GMT Message-Id: <202504291142.53TBg3kR047618@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 92a74b3bcee9 - stable/14 - LinuxKPI: 802.11: updates to headers for driver update List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 92a74b3bcee9344588a41c7a3f664eb4020e8299 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=92a74b3bcee9344588a41c7a3f664eb4020e8299 commit 92a74b3bcee9344588a41c7a3f664eb4020e8299 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 10:27:49 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:32 +0000 LinuxKPI: 802.11: updates to headers for driver update Move some structs into the appropriate header to be visible. Add new fields to structs and enums. Remove arguments from two functions (one function currently unused by drivers in the tree, for the other the argument was unused). Adjust the iwlwifi accordingly. This is in preparation for new driver versions to allow a smooth transition. Sponsored by: The FreeBSD Foundation (cherry picked from commit e6010da63903cc6d9aac0077ab861cfd6bae2aa7) --- .../linuxkpi/common/include/linux/ieee80211.h | 16 ++++++++++++++- sys/compat/linuxkpi/common/include/net/cfg80211.h | 24 +++++++++++++++++++++- sys/compat/linuxkpi/common/include/net/mac80211.h | 22 ++++++++------------ sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c | 2 +- 4 files changed, 47 insertions(+), 17 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index efac2a26e27e..8a33ad002e09 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -349,6 +349,7 @@ enum ieee80211_chanctx_change_flags { IEEE80211_CHANCTX_CHANGE_WIDTH = BIT(3), IEEE80211_CHANCTX_CHANGE_CHANNEL = BIT(4), IEEE80211_CHANCTX_CHANGE_PUNCTURING = BIT(5), + IEEE80211_CHANCTX_CHANGE_MIN_DEF = BIT(6), }; enum ieee80211_frame_release_type { @@ -783,6 +784,20 @@ struct ieee80211_bss_load_elem { uint16_t avail_adm_capa; }; +struct ieee80211_p2p_noa_desc { + uint32_t count; /* uint8_t ? */ + uint32_t duration; + uint32_t interval; + uint32_t start_time; +}; + +struct ieee80211_p2p_noa_attr { + uint8_t index; + uint8_t oppps_ctwindow; + struct ieee80211_p2p_noa_desc desc[4]; +}; + + /* net80211: IEEE80211_IS_CTL() */ static __inline bool ieee80211_is_ctl(__le16 fc) @@ -1225,5 +1240,4 @@ ieee80211_get_qos_ctl(struct ieee80211_hdr *hdr) return (u8 *)hdr + 24; } - #endif /* _LINUXKPI_LINUX_IEEE80211_H */ diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index 2cdb96ffccdf..328563b4a125 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1458,6 +1458,18 @@ rfkill_soft_blocked(int rfkill) return (false); } +static __inline void +wiphy_rfkill_start_polling(struct wiphy *wiphy) +{ + TODO(); +} + +static __inline void +wiphy_rfkill_stop_polling(struct wiphy *wiphy) +{ + TODO(); +} + static __inline int reg_query_regdb_wmm(uint8_t *alpha2, uint32_t center_freq, struct ieee80211_reg_rule *rule) @@ -1994,7 +2006,7 @@ cfg80211_channel_is_psc(struct linuxkpi_ieee80211_channel *channel) static inline int cfg80211_get_ies_channel_number(const uint8_t *ie, size_t len, - enum nl80211_band band, enum cfg80211_bss_frame_type ftype) + enum nl80211_band band) { const struct element *elem; @@ -2207,6 +2219,16 @@ nl80211_chan_width_to_mhz(enum nl80211_chan_width width) } } +static __inline ssize_t +wiphy_locked_debugfs_write(struct wiphy *wiphy, struct file *file, + char *buf, size_t bufsize, const char __user *userbuf, size_t count, + ssize_t (*handler)(struct wiphy *, struct file *, char *, size_t, void *), + void *data) +{ + TODO(); + return (-ENXIO); +} + /* -------------------------------------------------------------------------- */ static inline void diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 50c1475063e2..c6cdcbc43269 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -41,6 +41,7 @@ #include #include #include +#include #include #include @@ -208,19 +209,6 @@ struct ieee80211_bar { uint16_t frame_control; }; -struct ieee80211_p2p_noa_desc { - uint32_t count; /* uint8_t ? */ - uint32_t duration; - uint32_t interval; - uint32_t start_time; -}; - -struct ieee80211_p2p_noa_attr { - uint8_t index; - uint8_t oppps_ctwindow; - struct ieee80211_p2p_noa_desc desc[4]; -}; - struct ieee80211_mutable_offsets { /* TODO FIXME */ uint16_t tim_offset; @@ -334,6 +322,7 @@ struct ieee80211_bss_conf { uint8_t dtim_period; uint8_t sync_dtim_count; + uint8_t bss_param_ch_cnt_link_id; bool qos; bool twt_broadcast; bool use_cts_prot; @@ -815,6 +804,7 @@ enum ieee80211_vif_driver_flags { #endif IEEE80211_VIF_EML_ACTIVE = BIT(4), IEEE80211_VIF_IGNORE_OFDMA_WIDER_BW = BIT(5), + IEEE80211_VIF_REMOVE_AP_AFTER_DISASSOC = BIT(6), }; #define IEEE80211_BSS_ARP_ADDR_LIST_LEN 4 @@ -989,6 +979,7 @@ struct ieee80211_ops { int (*config)(struct ieee80211_hw *, u32); void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type); + void (*prep_add_interface)(struct ieee80211_hw *, enum nl80211_iftype); int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *); void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *); int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool); @@ -1027,6 +1018,7 @@ struct ieee80211_ops { int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state); void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *); void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32); + void (*link_sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_link_sta *, u32); void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); void (*sta_set_4addr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool); void (*sta_set_decap_offload)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, bool); @@ -1118,6 +1110,8 @@ struct ieee80211_ops { bool (*can_activate_links)(struct ieee80211_hw *, struct ieee80211_vif *, u16); enum ieee80211_neg_ttlm_res (*can_neg_ttlm)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_neg_ttlm *); + void (*rfkill_poll)(struct ieee80211_hw *); + /* #ifdef CONFIG_MAC80211_DEBUGFS */ /* Do not change depending on compile-time option. */ void (*sta_add_debugfs)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct dentry *); void (*vif_add_debugfs)(struct ieee80211_hw *, struct ieee80211_vif *); @@ -2312,7 +2306,7 @@ ieee80211_disconnect(struct ieee80211_vif *vif, bool _x) } static __inline void -ieee80211_channel_switch_disconnect(struct ieee80211_vif *vif, bool _x) +ieee80211_channel_switch_disconnect(struct ieee80211_vif *vif) { TODO(); } diff --git a/sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c b/sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c index 71c02b53af5d..24bfdb054a63 100644 --- a/sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c +++ b/sys/contrib/dev/iwlwifi/mvm/mac-ctxt.c @@ -1922,7 +1922,7 @@ void iwl_mvm_channel_switch_error_notif(struct iwl_mvm *mvm, if (csa_err_mask & (CS_ERR_COUNT_ERROR | CS_ERR_LONG_DELAY_AFTER_CS | CS_ERR_TX_BLOCK_TIMER_EXPIRED)) - ieee80211_channel_switch_disconnect(vif, true); + ieee80211_channel_switch_disconnect(vif); rcu_read_unlock(); } From nobody Tue Apr 29 11:42:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1k6t2Xz5tvZ5; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1j6pGPz3xP5; Tue, 29 Apr 2025 11:42:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j4JVBvGcKiZvPJhhE99J09RBSuTOA/AERTXtKk7hzGg=; b=X6bDZcvWnMJW/KaGPkvC+RExNq7UJrWiPJdq24HdX7ogncQvRJ7fbODAxODm0AuiRxWj21 0KFeIZcmF72LraovDsZ5epGU+Q9FlQZAoVUYEjCKtQx0Tp00vF35xFCvGgThsTYrUcxTMe D0ugHf1vvdkHeYZFqzONeBNO6GVr72k9ku4aWac1s7s4JX864kdUrv3q1s//KYt4NRv5eP K8Z2O55rccnpDoCh2G8Bbz1x+KxrgylYAI/Z7oNbLnYVbBKxv5Khmmw7YNl3F8xezgyZBl sihp3oSqOAFSByrltQ5g5izlC9JVIy8xmT1eMbddADqr+Fd3WdLxc3z4XPfZ/Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926922; a=rsa-sha256; cv=none; b=UUyej5zlWyqv7M0O3vEjUSXFhpQeLI7N4Rkni6yGFJ2ofu3Go5Euk8yxm2samOHXQQCw0d Wv0TIXU00u41ipnR4JU1AWLcFnBHx5w4ehuAk/zC7SPOl5EVQG+DCMGDQlTUx/eJbzFf1H +B9uP8qEoIMndvk3yZnuKb23ux2/cTa+Fnsl45sDQYF8p+EQCErGj/Emj75t7BbkPYmtfb IK1gR3aToVYL8WvJIaYUJh8aQZAb6zoNH1C6D+jx9I2IDK0VOWVwdCq6LDrdmFo3T/B5kW q9nfnecUr1WKS31JwXYIGKYtqXo26MB9o8yRD2HNXl2DhJeYkaTw/OA7UbUM6w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j4JVBvGcKiZvPJhhE99J09RBSuTOA/AERTXtKk7hzGg=; b=cKLnv0bmIvh1HVJOptTp5dnwP8ClVoWaNt74N8XlvoJe7Mfb4fx9Sq/PDaPxK8wMGHxip+ S5Ccfp5j5ew26bQqgC+q2Sy6sTu8qdUY1zeIiDN1AfdJyBSoXMdafBVdrf7qH70js6aLYQ Iu2IkLAhEvwCTOc13kgWiptqdoxrugkix4WQSJZUvtxSW4yZ639NErcjIy/+q/cHn7LPY3 ryeS/7xHGIUq/kSsqWEvylST5VvnoaC/s8MBytCTSwYMvO0W3srPfd8rFe2KfT9WYLrq+X kvEim1xpTptmnS+AtY8tIBRJdkZLk7gf1k5MnKyWWviy5DTLLPIkY6ihBeOI2Q== 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 4Zmz1j6C8Kz3ym; Tue, 29 Apr 2025 11:42:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg1rt047546; Tue, 29 Apr 2025 11:42:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg1x7047543; Tue, 29 Apr 2025 11:42:01 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:01 GMT Message-Id: <202504291142.53TBg1x7047543@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 9c29ee712c96 - stable/14 - LinuxKPI: 802.11: add tunable to enable TKIP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9c29ee712c969641de8c9f62c43b5bcc9b97d034 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9c29ee712c969641de8c9f62c43b5bcc9b97d034 commit 9c29ee712c969641de8c9f62c43b5bcc9b97d034 Author: Bjoern A. Zeeb AuthorDate: 2025-04-23 00:29:23 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:32 +0000 LinuxKPI: 802.11: add tunable to enable TKIP On one hand TKIP support for other drivers or older iwlwifi chipsets likely needs more work (see mac80211.h), on the other hand we should no longer use TKIP (but we understand people still need to). Add a tunable to enable it for those who want to test it with modern iwlwifi chipsets. hw_crypto also still needs to be enabled. I could only test it with legacy rates as none of my (non-FreeBSD) APs allowed me by default to use TKIP anymore (had to force it on) and then they would not let me associate with HT or VHT at all if TKIP was on. Sponsored by: The FreeBSD Foundation (cherry picked from commit b71d3043c38acbde2fff7ed184a057d631e0d656) --- sys/compat/linuxkpi/common/src/linux_80211.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 4ac8856a09e5..3edbcb141dd8 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -107,6 +107,10 @@ SYSCTL_NODE(_compat_linuxkpi, OID_AUTO, 80211, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, static bool lkpi_hwcrypto = false; SYSCTL_BOOL(_compat_linuxkpi_80211, OID_AUTO, hw_crypto, CTLFLAG_RDTUN, &lkpi_hwcrypto, 0, "Enable LinuxKPI 802.11 hardware crypto offload"); + +static bool lkpi_hwcrypto_tkip = false; +SYSCTL_BOOL(_compat_linuxkpi_80211, OID_AUTO, tkip, CTLFLAG_RDTUN, + &lkpi_hwcrypto_tkip, 0, "Enable LinuxKPI 802.11 TKIP crypto offload"); #endif /* Keep public for as long as header files are using it too. */ @@ -6086,8 +6090,13 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) hwciphers &= (IEEE80211_CRYPTO_WEP | IEEE80211_CRYPTO_TKIP | IEEE80211_CRYPTO_TKIPMIC | IEEE80211_CRYPTO_AES_CCM | IEEE80211_CRYPTO_AES_GCM_128); - /* We only support CCMP here, so further filter. */ - hwciphers &= IEEE80211_CRYPTO_AES_CCM; + /* + * We only support CCMP here, so further filter. + * Also permit TKIP if turned on. + */ + hwciphers &= (IEEE80211_CRYPTO_AES_CCM | + (lkpi_hwcrypto_tkip ? (IEEE80211_CRYPTO_TKIP | + IEEE80211_CRYPTO_TKIPMIC) : 0)); ieee80211_set_hardware_ciphers(ic, hwciphers); } #endif From nobody Tue Apr 29 11:42:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1l4LWhz5tvPZ; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1l0W03z3xPJ; Tue, 29 Apr 2025 11:42:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926923; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p44wrKC49+39TlTzih3taBrK7kogyuODmn8ECLo6f8U=; b=iKZ6SOb/2MDMwma5x9ODRz6OURM48XlrGziT+PWfYDO5LcvmCvSXcQzquc1HntZnrSL8cQ q8HK8B/eJmnH9wHmOmJzORIlH04SzorZacvBxSYmP8T1Vqc3r9WrbfP1KjuPoMHrFkIqJM Rbek5nvq+cLAsLlMirpBJ7XGfHtA3hOSJo3lS9eEe1/I8iNyuKTVQ6V+t4FztbzS31fwUN TrrV2utKlOA7hddeXt14GERi4b1CLpoLezWxwDgBklEyNpUu3sSzucVuciob5tOGgX3SH1 QdturEuKv8I08JP0iyHU/ou2NsWvaflsDZYOfOgEpAlxxWhI+pwjtV6J4bKXow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926923; a=rsa-sha256; cv=none; b=ASjEZS677fqDeFr1CEY7+XwS7wov/hy1PHxcrtCP/OSUR1nYAf/3MNFFfeXFad9lIUq9tS GBy55FqALB/J55XUqmfBJadH+L3CD6nLQmac38iOldtOxAlSK6dO6885v0+QmOeBrYRQNG lZzSFvGzfSTZqbwKyL0GRKoc8XQ01ARQ2/elv+z80lccdweYqsV8aWemC+3jQ98miAeJwX LgICw8i1Ju1XxzpAppl0UyGOkcfJigEU8l3MEqRmWltihsgvWazfbwSsW+b3jbtOekg6b/ NqrqLLbu84Tbn9bsOzj/VL5sf1ufy23Lc5wFZgw2k5cJsRsy7rZdLsnPtUw7bA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926923; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p44wrKC49+39TlTzih3taBrK7kogyuODmn8ECLo6f8U=; b=btqezOGNqScoEDYCsyy50FlP50l1UnNMEUqt4cmKGbWHcVyZuBpPKKpQJH1+aGVDdEloi6 m8Jx9vijK5ujg3bY2CZmKIB4GSziTIFUppqd3Iu2w2RMw48riHqmTDxOMIj+TMPnr/QgAV vB4xshsRw0wSxD30cwsqwxpxg2FBZGcwCTEIO/B9Z2tTOdFbNxUKFoxjfIwsw/f4nrpl2n S5xod7a34ru1Bs/mu3Lyivu/4QSKY94+//izvKl4kXz8BFxg0eZb6+kv6jiMDTitipi4Yd 4iEXXzopNLi5hRtMsBY8pkh4er2qyiqkrPF2lL4E3kO9gWx9gMKueuLKF/GL6g== 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 4Zmz1k6yBYz3jW; Tue, 29 Apr 2025 11:42:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg2Nr047583; Tue, 29 Apr 2025 11:42:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg2iN047580; Tue, 29 Apr 2025 11:42:02 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:02 GMT Message-Id: <202504291142.53TBg2iN047580@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: c40937bfbb57 - stable/14 - LinuxKPI: 802.11: introduce mlo field to sta List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c40937bfbb57a9bc4cf16af980b5e823980dbd90 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=c40937bfbb57a9bc4cf16af980b5e823980dbd90 commit c40937bfbb57a9bc4cf16af980b5e823980dbd90 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 10:04:10 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:32 +0000 LinuxKPI: 802.11: introduce mlo field to sta Driver updates introduce a new field "mlo" to the sta. Add the field to the struct and initialize it in the 802.11 compat code along with a IMPROVE so once we get to 11be we can deal with it. Sponsored by: The FreeBSD Foundation (cherry picked from commit 71034267d861c183297bb209770004751f0e30c5) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 1 + sys/compat/linuxkpi/common/src/linux_80211.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 0d033da2b83e..50c1475063e2 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -763,6 +763,7 @@ struct ieee80211_sta { uint8_t addr[ETH_ALEN]; uint16_t aid; bool wme; + bool mlo; uint8_t max_sp; uint8_t uapsd_queues; uint16_t valid_links; diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 3edbcb141dd8..fb9a4bc0177b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -791,6 +791,8 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], for (i = 1; i < nitems(sta->link); i++) { IMPROVE("more links; only link[0] = deflink currently."); } + IMPROVE("11be"); + sta->mlo = false; /* Deferred TX path. */ LKPI_80211_LSTA_TXQ_LOCK_INIT(lsta); From nobody Tue Apr 29 11:42:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1n5J0rz5tvG8; Tue, 29 Apr 2025 11:42:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1n1tdLz3xBN; Tue, 29 Apr 2025 11:42:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rgh8FXKi8JcXGfa+No/LQNMlhX3mnXmlkTT6SYExhXc=; b=Yqcpvb9jf8BtzhuINqSbQ9t+RmjptcCuvlVobY//rXnNTfII6e6joRXOiJDjCj0cGCD/bG a5QgjyjhjzocDPmrfTZq5PhTL3Vys1FVxtsusBIT+9e2opzYJWzSV972leWgaxxvw6zG/n 91Yc9awhuOqTEmxBGeT1YyV/rUvrd579K4RZljw/m1OkALORnjqZnIkXkp/mawBt2pUu/+ 4T9G0sMqa3tq/mGoox/OCEG8xlqRWova3T+nivbjKFQ6RCK2AbtoaLUACtjykcc3+kjTYi A4y1Hhud9aJr7/fjF/qdfqYrYw3+jdlSAt8BoLUmaKhj4qVYqZZWe88Inh06hg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926925; a=rsa-sha256; cv=none; b=Q4Xqvt8p/A6q1kTravroQD62nvv1+jklKslZjqaffuJ0KwsSs2Qyhia8agYRKUEvU0nqUT haZ9ArdMGFxgRkM5QzgjqdKjBRU0zL1IZHchBvWjbFsHsj9ZLN2EeCMfLq22Qa90SCy2cl OrFFsymmdr7Q35vyzrq0o89sjfxF9g8YXe6UvdPtTgsGPVpsIieICX2nkRuppwGmI4DXVT +yaMYFcCoOi1vYKJzugEor+A/v/PeWVU1rudKy0rHoExInEfZ+qxQN/8BnTKGea9naUYdn ZYrxhhixCF+k2mD9+LV/Jty6Mh2lOrf/o8raRyVdT8kA48RmHNoc5zw8URMjuw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rgh8FXKi8JcXGfa+No/LQNMlhX3mnXmlkTT6SYExhXc=; b=c2Jeh1kwK95TjhDDQPJ88iY/WkvlgPRwyZy/72NTo9NhIeRqhtdRP6Mm0+Qh0jiFsXUvki q1DAR/t+/4xI2o5pW2py1OheDT4mUBq8C6yvdNS0J1kfYDMseeWtix2Wv4bLyjT9GKjVgG UZlO/j4FJksvUQjvtVsOGxGrjwB6HpXZAe2aXlZJeVZK1bbhjTUz1qd2YOpI7mWGXLk8Rp ql3h7D/kfsF+rU3bcxxygIMljisBiXSIeKGDkJx8NLMqjv+dKrIIGJ9gI6qMuPJkphkqIW zPQsJudn9gsb8VS9VUEmOXbFsZZikv4i3lH0O7fjts4PS+1WlHUxeE5u6bVSXg== 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 4Zmz1n0rMMz471; Tue, 29 Apr 2025 11:42:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg53k048411; Tue, 29 Apr 2025 11:42:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg5KP048394; Tue, 29 Apr 2025 11:42:05 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:05 GMT Message-Id: <202504291142.53TBg5KP048394@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 5c0182cbe5b4 - stable/14 - LinuxKPI: add ASMEDIA vendor ID for PCI List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5c0182cbe5b43e8eb6f1508408552cbe29547f30 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5c0182cbe5b43e8eb6f1508408552cbe29547f30 commit 5c0182cbe5b43e8eb6f1508408552cbe29547f30 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 09:27:35 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:32 +0000 LinuxKPI: add ASMEDIA vendor ID for PCI This is needed for rtw89 updates. Sponsored by: The FreeBSD Foundation Reviewed by: emaste, zarychtam_plan-b.pwste.edu.pl Differential Revision: https://reviews.freebsd.org/D50000 (cherry picked from commit c8e2458de590d7427ef3311412b8ddbc326cd3b5) --- sys/compat/linuxkpi/common/include/linux/pci_ids.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/compat/linuxkpi/common/include/linux/pci_ids.h b/sys/compat/linuxkpi/common/include/linux/pci_ids.h index 2f02d6ad1c14..e318f6f75ce7 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci_ids.h +++ b/sys/compat/linuxkpi/common/include/linux/pci_ids.h @@ -46,6 +46,7 @@ #define PCI_VENDOR_ID_APPLE 0x106b #define PCI_VENDOR_ID_ASUSTEK 0x1043 +#define PCI_VENDOR_ID_ASMEDIA 0x1b21 #define PCI_VENDOR_ID_ATHEROS 0x168c #define PCI_VENDOR_ID_ATI 0x1002 #define PCI_VENDOR_ID_BROADCOM 0x14e4 From nobody Tue Apr 29 11:42:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1q1BTjz5tvRp; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1p3tqRz3xPb; Tue, 29 Apr 2025 11:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oWXqCknNnIeExYoPeLG+6xOUNYslnCcUq3/KvO4XBdI=; b=NVYq75CziqNZMuZURIuQFGyXeEjdcCVoI/SyiP9rQY+sYS2nPuc0Bn2Rr9pOooYRSl16O6 dF2YDREMJ/VlpLzrsshAVHM+2PZ4a83Hj1eUXI/9Bijwjvj6Wd+Yz0zTn/5+ABMoOjLxPa XEM+gM4xkS/3DqQzxV3hCY2VQ9fwkJYVRNm5Tp0ruOqIG4V6O4LyS4PoWpwGihvd605uVO Ky9i7OK1gh/cem6eWRJHx3RPCzujvArQfki23JliZWbS5XwytOqe7YdvFIj8AMDsKP1XuW Nvv4A3P/SlZjseSfVqZ8r47tQpWoI90HTkQOSPa2Qm20w9aJYL9dCau70HUz4w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926926; a=rsa-sha256; cv=none; b=tnuD+PNHOOqCspb/gYKyqYLLZDPBjK0+f6OBkTyTWj5SL+mZsBSDesIbCRqZzpnM1Ued93 OfLD1CWCgD4/MO3VskPkThRJ8LRH75epTaZ3/X6JYzejmz3uDMJC2UZQb4HyiJRwg1EiRL kyPATTv5SeL2k1ojqw1hlTOZuA+rgYS0wlmeJ9iVN+qqTORLtXmZ6FE1RI5Ry45DIEXCWN 9rllSOsWJ9rCORPJAqYizAeBf4+duarmizyBHaXSfkRKk5VXTWpkydRuCZ9UUHOZ8i2UAj gFqJw77Foyn/WSQ5ppw7i1xRtECbeSJWSUwCnr91EmBSEWVgnXCIdfjJbqxCzQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oWXqCknNnIeExYoPeLG+6xOUNYslnCcUq3/KvO4XBdI=; b=McqC0YVtlO2CR5UKJwaZtKxPAcZ1TZfXhyWN14TOkWvoUabGRLvVNGFZkoDDR0MFF9kb0h Ttj195iZkpaFnFbHi0epYjn3H0JM8kOMjcZnMrAzrzSDAK4BVTPD7OzX40HfkFpMxmXZrj DaOFZUt0e1SlzruMAMOwwTxRtHVPj4/ymfUCFzY3MNKMy4SsBhuoVNkNvBLqDKQG7cUZV6 p5J48F/NJQABhaOg0tDqGmemuAvsPn1/QLIrfhR25A3mKE92D75JNn5C/b7FSeX2oE9F4N P6Ri0BG+sUz155Tmy78cXD3H4rXqh9hxTxoCtHT8q60OhEBGRb+BAA3aTyrK1g== 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 4Zmz1p1zzZz49K; Tue, 29 Apr 2025 11:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg6DS048997; Tue, 29 Apr 2025 11:42:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg6dl048994; Tue, 29 Apr 2025 11:42:06 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:06 GMT Message-Id: <202504291142.53TBg6dl048994@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 6c08f9a5c66b - stable/14 - LinuxKPI: add cleanup.h to mutex.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6c08f9a5c66b84f9278b7bb6ee35db045d2af93e Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6c08f9a5c66b84f9278b7bb6ee35db045d2af93e commit 6c08f9a5c66b84f9278b7bb6ee35db045d2af93e Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 09:58:13 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:33 +0000 LinuxKPI: add cleanup.h to mutex.h Some code relies on header pollution (or self-sustainability). Add cleanup.h to mutex.h as that is one case it seems to be used with. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D50001 (cherry picked from commit 059136a95aca2e550b62ef40ab25a184d8141124) --- sys/compat/linuxkpi/common/include/linux/mutex.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/compat/linuxkpi/common/include/linux/mutex.h b/sys/compat/linuxkpi/common/include/linux/mutex.h index 1d85ba20baca..6fb6a7744a89 100644 --- a/sys/compat/linuxkpi/common/include/linux/mutex.h +++ b/sys/compat/linuxkpi/common/include/linux/mutex.h @@ -35,6 +35,7 @@ #include #include +#include #include #include #include From nobody Tue Apr 29 11:42:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1t23zrz5tvM6; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1s52Ffz3xZw; Tue, 29 Apr 2025 11:42:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926929; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wbf9ntiQ35EACFynOEf/8kkPImHmbK5ApbAnAX9AzKM=; b=cO2UY/m3MLTMj2oDbJiS2SoeoY5xAGSbJpVe8Hh2q5g6NgyuwwR6PBq4T0EHpv/Gu+gLBc IywX7XY1jFI3a3UhU1YBtmMSP5JD5kMGaNOCgCXeOBnPDrLY0eJn5CxY4My8opRW6fvaJG RFJQ8BNAN6cvBQLR6HxtFNjW754dQ6RhmJUwcszzvUn9H7wHf96ZhPdeRkwdRdNhTHA6u/ EdEykJZ2qjIgB9cIQqh7F6kmTabfLcpNmfqFkgbhWeu7HK2uLXLLfO+CSi/56uhW5/g1bU OzD9LyGPSGGA2wBtWEyiGEdo5TooKaw+LR1MhUqcIgOv/N7Bd2q+1s4ZUtpqpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926929; a=rsa-sha256; cv=none; b=KtUVY3yP2EHWJY9Mw5/OrB9vce2Olkw9ptv+/kKWZcM5dCP/Hcipdnas2dM/cY2vm7iDh+ uvl3Eh1KKvHXXEnVwONREXx0PC0QFD2gVRD2laMCgRceze7z84z8hBhCVuouf19o1CfCQ4 00r7rlny1AEstEcvKbrIgQ0v4lAiPbEm7aNZlpEa+aLzmc5r7lmfl99mQmXi10kLkV6ng8 AX+SBCspN6aY8RNd8ChlKmDkizVirrE0l8j2EOqskcNevwT7Dh79GcfetFHcIUqiLTdpLy KvZ0/hHCsycTg9aeLc6yGckxNupVffYj4YLK/4HVzhbAYmPOvyplLXPMuC4oRA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926929; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wbf9ntiQ35EACFynOEf/8kkPImHmbK5ApbAnAX9AzKM=; b=UqldOBauv25DXSWkAXRNPpmkl5G/VdUAbVtAErWGNtCIcNOQeYz1Yu7NqeJqII2iDMtUIM gAcr22inWfxT0otNRSnFk0x06HbGWHw1XQzjUV4cNu8zYyTePvgpDJ2uYaC6BmG354YRaf noS2jmB4drNZoSekDLsfKeHoiqXZ0+rQvWYy34p/HLHjFnQhGtdaD8OhEFQpiQBjcTZu4I cSpCk+zaGUe3Onlp1LYwLXjfYl5wIWIqAq1xf9rsg/xPg1RaYDqc63hV+ByUprCmP3P/Vw vEiyDGTNr9uuGekSSZnnN+BeBZIjLs3aawK9Bb7pBYQwrWlXhYpHyYBJ9YFpaQ== 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 4Zmz1s4Ymwz49M; Tue, 29 Apr 2025 11:42:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg90u049106; Tue, 29 Apr 2025 11:42:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg95l049103; Tue, 29 Apr 2025 11:42:09 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:09 GMT Message-Id: <202504291142.53TBg95l049103@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 6510caf35680 - stable/14 - LinuxKPI: pci: add pci_info() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6510caf356802f44aa924ab3e17599915bc7d8e8 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6510caf356802f44aa924ab3e17599915bc7d8e8 commit 6510caf356802f44aa924ab3e17599915bc7d8e8 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 14:31:59 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:33 +0000 LinuxKPI: pci: add pci_info() Add pci_info() needed for a driver update. While here prefix __VA_ARGS__ with ## for pci_err and pci_info in case we are only passed a string without format arguments. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D50009 (cherry picked from commit e29d72ac3ddd9b97d945c5c64bc817e501bb113c) --- sys/compat/linuxkpi/common/include/linux/pci.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/pci.h b/sys/compat/linuxkpi/common/include/linux/pci.h index c91521ae6df4..ccf86c7778e9 100644 --- a/sys/compat/linuxkpi/common/include/linux/pci.h +++ b/sys/compat/linuxkpi/common/include/linux/pci.h @@ -372,7 +372,9 @@ struct device *lkpi_pci_find_irq_dev(unsigned int irq); int _lkpi_pci_enable_msi_range(struct pci_dev *pdev, int minvec, int maxvec); #define pci_err(pdev, fmt, ...) \ - dev_err(&(pdev)->dev, fmt, __VA_ARGS__) + dev_err(&(pdev)->dev, fmt, ##__VA_ARGS__) +#define pci_info(pdev, fmt, ...) \ + dev_info(&(pdev)->dev, fmt, ##__VA_ARGS__) static inline bool dev_is_pci(struct device *dev) From nobody Tue Apr 29 11:42:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1v1mfSz5tvCr; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1t5DZkz3xMn; Tue, 29 Apr 2025 11:42:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926930; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pZ+Ju7gE8P6e9ndIvOyCwnYAEVVjNbRCw8EKMgNVCnQ=; b=pWA0Vzg3V342apsJH5SV6hnx4BES55ZWVekhlXuQXxmrKPM7oXOargpauBUNo9ipKBmmNC yzRuIjGz/XtOqjre405IrjODOmCyVFKox1UbW10ISw1pA5DR3k826vXpgppB5+1Fx7YKwr 13CdQSYZqju/kjcGyy1KQE0Jiu5k/ZUdEry6vbrjJzSoKYE+ilkk3KNjXr8cF984dbhdo4 iM+xfWhR/aFXu3PvtvF6uwGwTaYauBZZJMFmC66wXYOHkjpjEJEoIALU04Nx5YYVUNaMh1 nISpnvzV/Wbrkd+isnBxZoXA12p8FASztU+ckpHNdSNKmgbj/KWDZeydiBO8wQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926930; a=rsa-sha256; cv=none; b=pCTjFIHPayoiI3KJnGEwMBwWmSvrib0Q8sKeEnJTfFMy6PKfY5AaEnl5flSLQlkJJqGXvv zndDn8xtwGvq6iNUOSobJaZ9LfkpOXcVQA3jIqWUVQREEF8+FcLvXflQoL3O/KIObCaYiy MND70Z4xVSmvAA0rJxlrAo1KubvN2RqCHKpYGHGU8UjpG66C3Jjjg9Ee44t/S2gA0SGp1S vpjIYjeyvgQItsiKE8Oe1TWuCHbyZb6ff7UxM9DBFe3rmB9kUVQieRNGYuiwWay3hK4njF OZ6NPEcEnItCPT77x/4gkqYlWrsH2WVynit63Cmo7Y3tWyx3QpCO61zFIgk1pA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926930; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pZ+Ju7gE8P6e9ndIvOyCwnYAEVVjNbRCw8EKMgNVCnQ=; b=kYBq2wewL3yVenuKXKGsvB93VSrpo73A2yXzPSq0jFRNaI+YmLnA1WQDWyB6xAnw/CjnHn 683rRTN1FuLji7TZletcyPvT4wmHJUW+CGo9k1VekzrZ3szzf+sebv3Ye9Dbf04hIbnkU4 iXG/wN6ns72bEEwLQ2I1u05lFJc6FUCe2uPf/zQLkkdNGj6t2pGX0zHaioXwgLMrJ/Ug4S ahAQ9kI7jpR5/BKLs2h+hgVU7P8BRwXO8KzJiKd1Am+QYfIYlaQi1fcPqMKIRGVgc/0Q8r gPZ2uqrZD7VnT7vlK8KRhJsNssNjQnHfmYauUIr1AcXZDw8cFeKqAeLiDvDOeQ== 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 4Zmz1t4mPkz474; Tue, 29 Apr 2025 11:42:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBgAcU049147; Tue, 29 Apr 2025 11:42:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBgAuO049144; Tue, 29 Apr 2025 11:42:10 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:10 GMT Message-Id: <202504291142.53TBgAuO049144@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 85bd58055f8b - stable/14 - LinuxKPI: sysfs: implement sysfs_match_string() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 85bd58055f8b244584ddc6188c1770fb0246e28d Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=85bd58055f8b244584ddc6188c1770fb0246e28d commit 85bd58055f8b244584ddc6188c1770fb0246e28d Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 14:09:08 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:33 +0000 LinuxKPI: sysfs: implement sysfs_match_string() Use a macro to automatically gather the length of the array while we can. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D50007 (cherry picked from commit f94d7319540b9b2256be60c2c666efe0b6e635ef) --- sys/compat/linuxkpi/common/include/linux/sysfs.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/sysfs.h b/sys/compat/linuxkpi/common/include/linux/sysfs.h index b5ad73e4460b..67aab7703dc7 100644 --- a/sys/compat/linuxkpi/common/include/linux/sysfs.h +++ b/sys/compat/linuxkpi/common/include/linux/sysfs.h @@ -348,6 +348,24 @@ sysfs_emit_at(char *buf, int at, const char *fmt, ...) return (i); } +static inline int +_sysfs_match_string(const char * const *a, size_t l, const char *s) +{ + const char *p; + int i; + + for (i = 0; i < l; i++) { + p = a[i]; + if (p == NULL) + break; + if (sysfs_streq(p, s)) + return (i); + } + + return (-ENOENT); +} +#define sysfs_match_string(a, s) _sysfs_match_string(a, ARRAY_SIZE(a), s) + #define sysfs_attr_init(attr) do {} while(0) #endif /* _LINUXKPI_LINUX_SYSFS_H_ */ From nobody Tue Apr 29 11:42:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1r13Rnz5tvGB; Tue, 29 Apr 2025 11:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1q3457z3xV9; Tue, 29 Apr 2025 11:42:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926927; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WhdxWZ9fLDvFmp4MJnZmuPQPVDXDVCO1vTP90SvGLWg=; b=hXdqsSpvFxVYFpnYvoH+9y2GYzIXVjMwRxPekhKYy/kCTCS3G4P6QiHNrp+wGthyeOy6hm FQJBNIrEADMw5/sZvNZ5ImFglI30NfdREn0HXoUostTcR/XrQ6IStUC7qiY6I94Y2DO5mS THhM31xhkqUaCAZ+V+S8e7nLr5C8zb35C2wCBmt2kykYD9AuTwsdoeDi/Q0QbmhOmU/NZj a5Z9RaspAPSSz+Sd99FTFmlnvp0pjXi/r51hLN4LleLsCkkzJJz0QKwXzXilSzGa4mpsXJ e+jEKtZCJg89aIwEXzvpMQVNDNHTB5FyeQ8edOtX+33kfQQP9E9MKTShxaoViA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926927; a=rsa-sha256; cv=none; b=XYNQS8K3jNIRlUlBcZU1beaDsWOr4TZfeGaOGseOYwg+jU5hgwyvmZZrZNXjuwvjPSzpIh ai2gWCJy8F9uDiWq6262wOBjSsvEepvn5llTus1/5v2hzkTqZIyjqEKHntdyOfXc3fIldM 6Vd64PtjBK5udJmzSNhQbvBUZp1KBBo6GA0UokNtkrzl57Hl32CClgXAn8w1pcIwn1YxeQ UnKsaEz+8s/NDpf1YXfV5jT1GoqJYP8cig5h2RonUjJt5bvutkSRybBWA97HSq4RavkBd0 fZgRfsWCliqlwuaipXcRgWjbkEXDIJdfC8QW5dj2sBWymCVuBHhe32nq67RNMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926927; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WhdxWZ9fLDvFmp4MJnZmuPQPVDXDVCO1vTP90SvGLWg=; b=DxNXoRzyw+5xl3mhK6/9Ux7RxoBXF6c9fcj1eq9dUvrjViGknd2h8xjecVqTR7NzhTt8nD ZQrknO6tNAEPCF7XQ8RSKdGTuskdZgZ1SReJs9Ogqu/4yPY7oBItIFYn1c/HVKt2333ZUV RMArW8Fnqz4Z6ZXTfPSJl91O+rte7DHBwnsrXsOXHuQTdxbVgC7YkscJJcCWxvYkWNya/m AD4J+XAyQ1ehKzbVdPC4HZ04wZdOltikLvsPcngYaoq8XXI3gjy9KlaLMHfUXDozzXyShz LDFFrjwbhPIo6+A8RUKQAsR9gjx6NZHt+rSgEWa4fmTq7FGZ1MhK5u0zfcvnsQ== 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 4Zmz1q2fSWz3jY; Tue, 29 Apr 2025 11:42:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg7sp049033; Tue, 29 Apr 2025 11:42:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg7ax049030; Tue, 29 Apr 2025 11:42:07 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:07 GMT Message-Id: <202504291142.53TBg7ax049030@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 5fc174c52f18 - stable/14 - LinuxKPI: add container_of_const() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5fc174c52f180c289ca3b50308e8689cced18103 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=5fc174c52f180c289ca3b50308e8689cced18103 commit 5fc174c52f180c289ca3b50308e8689cced18103 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 09:25:21 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:33 +0000 LinuxKPI: add container_of_const() Implement container_of_const() needed for wireless driver updates. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D49999 (cherry picked from commit 6841b9987e83fdd9a5b05ceafc20811469222d8b) --- sys/compat/linuxkpi/common/include/linux/container_of.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/container_of.h b/sys/compat/linuxkpi/common/include/linux/container_of.h index 449507fcf9c1..7210d531b055 100644 --- a/sys/compat/linuxkpi/common/include/linux/container_of.h +++ b/sys/compat/linuxkpi/common/include/linux/container_of.h @@ -41,6 +41,14 @@ (type *)((uintptr_t)__p - offsetof(type, member)); \ }) +#define container_of_const(ptr, type, member) \ + _Generic(ptr, \ + const typeof(*(ptr)) *: \ + (const type *)container_of(ptr, type, member), \ + default: \ + container_of(ptr, type, member) \ + ) + #define typeof_member(type, member) __typeof(((type *)0)->member) #endif From nobody Tue Apr 29 11:42:08 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1s095cz5tvRr; Tue, 29 Apr 2025 11:42:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1r453wz3xK1; Tue, 29 Apr 2025 11:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T3MdUuAOYiXLcxIbBV/5DM9zpLDbhR68yvyXYdB9+c8=; b=JKmHs+5b+i9q4ufgfj3PPenzTXEJG57hf93oKSOyQ+Wl6oaxbVnBC2Z8Kbiyxo8XQN5glb xWX5sGNZLFttXLLVh4Dnye4It+K4xkO2HQ6T9wtj0KS9maynAI7Eqgj+93XPudsTnPORum A1vtwdkUKc/8Um8Jz+3/PyP5w5IVxgsN5dNwF8/Ge0YQqYnUFCqBFoZY69lAICnwLblaaV sXay6MLlUHuQO4OLqotT/YixHrXJGVFeHMbpQZDB/X9ixNr4nGDa4oCEq+SCRgAd8kK2O4 YwZgLpzUar7kqEVqk5AGxfhgJh+JOVdB3lISaGzpAXYvf44dEdsQUY/15X7zuQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926928; a=rsa-sha256; cv=none; b=AZYNSTJ1qfNN2G/mlAAzLHNf7fMbZJXc/zzB8mq8GNr5mL1RNTWrRrQ6/KI0XQI0sNELFM 5gGPGDz+3t9NBUX9M0rDW7dM2nmEMdVXga1R3PUj2HSDgqp92DdI67A/7M2Hu/UQ94zFyU jsGiOvVFXNnlLKyaE6+PRlORwcKhEWFSWO4UE5zs1kj0TWhX5SXzmMJok/Y3sfbvwNHmGb BDceU8333lVf26a1q5dnko6NlQ4cds/7OOQCVW+lO6e2uQoZln7GZePn85ai8wC8MXtFI+ XFBu/IgJxTLyBSqy8zNix8mUexdjsFzfvBbkkEKyM8e0QbgtoKbOGG2QEf/Ykw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926928; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T3MdUuAOYiXLcxIbBV/5DM9zpLDbhR68yvyXYdB9+c8=; b=tVGQN+ScyLIh8CGUl1krLjzEiJmDZxYgO6NxPSHrMnJ/2+PYpgxvDRoxp1SdoBilEg6ZRr 0hMM/CZUkWbGj4XcCsyB8RD2SzW+rsN0pCPu6HUkCTzbnQ5mhGcZ6gKOfimvXcq4tTFpy/ aPlSsnjvBdPZSORWOxbca3LShwyE1nixv8Yt0ev0jaBk7Jt559QsRNKK6VxdKB363PoOXi AWcsvqW1sDCr9BEwxSMf1ZP1CyGDMxzFc9HmhG7Qq1Sz2osi0Dti+hUfLJ3Ob4rRMpz/CD LbiZt4dnCvsChwSwK81senIj0Hy5IklzByRwnhVRcbQ+AszGEbUr9ayT+t9lxw== 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 4Zmz1r3cxpz49L; Tue, 29 Apr 2025 11:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBg84B049069; Tue, 29 Apr 2025 11:42:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBg8dm049066; Tue, 29 Apr 2025 11:42:08 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:08 GMT Message-Id: <202504291142.53TBg8dm049066@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 1eb45fe4c210 - stable/14 - LinuxKPI: extend struct and enum for leds List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1eb45fe4c210a6e0ce1c59e5c2615812641d2f49 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=1eb45fe4c210a6e0ce1c59e5c2615812641d2f49 commit 1eb45fe4c210a6e0ce1c59e5c2615812641d2f49 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 10:43:44 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:33 +0000 LinuxKPI: extend struct and enum for leds An updated rtw88 driver requires minimal changes to leds.h. On the positive side we can now remove the __DUMMY from the enum as we actually have a valid field name. Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D50002 (cherry picked from commit 69880fede78fc769ad417e5a984fb9fee7815d8b) --- sys/compat/linuxkpi/common/include/linux/leds.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/include/linux/leds.h b/sys/compat/linuxkpi/common/include/linux/leds.h index f7ee7a68dcf5..89f7286f6800 100644 --- a/sys/compat/linuxkpi/common/include/linux/leds.h +++ b/sys/compat/linuxkpi/common/include/linux/leds.h @@ -27,7 +27,7 @@ #define _LINUXKPI_LINUX_LEDS_H enum led_brightness { - __DUMMY, + LED_OFF, }; struct led_classdev { @@ -35,6 +35,7 @@ struct led_classdev { const char *default_trigger; int (*blink_set)(struct led_classdev *, unsigned long *, unsigned long *); void (*brightness_set)(struct led_classdev *, enum led_brightness); + void (*led_set)(struct led_classdev *, enum led_brightness); }; #endif /* _LINUXKPI_LINUX_LEDS_H */ From nobody Tue Apr 29 11:42:11 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1w2X0Bz5tvS1; Tue, 29 Apr 2025 11:42: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1v6W9Kz3xY9; Tue, 29 Apr 2025 11:42:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J6/vf7d0JXI0PfezR6jmVcYYc96vb8XM2togv47+DK4=; b=DM6LqERMlyoQgdGvVObeTJ4NpfMXkxopQpLjcMLznGzpHTBVJohopGoVpVgX6/cwH3GRxd 5kTCbhH8GHff2zW0cbFJRy7wFMm5PJdX2IBDKfu3NjvNhd75lX86yDE89eAMwdhM9FXdbM qA4QpCBcR8kXqXO1YmyrxsKYvTxWgejWfcTve8yn5yzBxmOENatUgsImscfNk8csZdMEyu JNK2cXmBmTnmcQKB5oo/P3XmkcMOChKd76+Mk3VB4GNwjVg6EOhUxJnT8fZ9/Q3uSxzDPV bUsuayYtpI9/X5d5xTMcFI01izoIM1EAwBa5tsts+Tlr2P6aT38sgqOK5SXJnQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926931; a=rsa-sha256; cv=none; b=qT068rQSd1zkdmHxmJu/Js0Gp+Cbg4ufaf3/fS1SR7Q7Jz7Xtq5w3uib+sG+/LyD86njS9 K48HRWncg5MRaVIPL2zRB/Q7TAhDW6V9nPMDVBANaN7VZVDdDkmczUm/IyS+9j0fTlBQId 5ksPpmvbrjV+gjL5KrjQNHn3LBvUMOrBYBg1gxFS0uHw29UYkjw+7MqvCeilMiDkr9qSOp t755YxOvdfcipbDzrwlOrY4syxaHAjdvURtTvJ6TG7ROk2YHxJzHNMVkcD4+uCPFNGQrfZ 9VSu1dWpLQG9anCwQ9XnjsG4OIXnbEgRfDaOYzR5xzoRrMg9FKf1acIAeUecQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J6/vf7d0JXI0PfezR6jmVcYYc96vb8XM2togv47+DK4=; b=T/DAEjcBpJIZAE1thVPi3wHZvKcVTGwJqjyT+lpUeps4hvG3Q0CkrW7DVi+F7WwYXcAw1k hAKD+/ZBK664b7KNwLWj+ScMY/zVCUWCqKEK0TBwdQiPJtQZmlev/bIajCA4V/rbTy29K4 +KaKPzKS5HzLFMzqLBJR2ADUtES8VfscAfz/a8Hc065nU87xX9CWtUpxvYjptqEMorYdUh 0gtk9ji/mZk+X1PgJ0wE6gzh2fVc/wmBTIlq1SzIyQchFSTnIGaGTUn0ZjJV6rsH0GoCRy rE/9WrI8nMp3hE2RibTldE35FsJ7mhQtWpdNuDJcmBQ+vGPFFEB9INwQ0T5mJA== 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 4Zmz1v61lYz3s3; Tue, 29 Apr 2025 11:42:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBgBeC049182; Tue, 29 Apr 2025 11:42:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBgBRZ049179; Tue, 29 Apr 2025 11:42:11 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:11 GMT Message-Id: <202504291142.53TBgBRZ049179@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 89473d9a1bdd - stable/14 - LinuxKPI: add dummy header file linux/unaligned.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 89473d9a1bddad87fbfe458f065836effb4dfd02 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=89473d9a1bddad87fbfe458f065836effb4dfd02 commit 89473d9a1bddad87fbfe458f065836effb4dfd02 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 11:10:23 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:34 +0000 LinuxKPI: add dummy header file linux/unaligned.h Long-term asm/unaligned.h is likely to migrate to this file? Sponsored by: The FreeBSD Foundation Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D50003 (cherry picked from commit 28efbf9d2f67ce0bb24ad83462c99a1c2771e602) --- sys/compat/linuxkpi/dummy/include/linux/unaligned.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sys/compat/linuxkpi/dummy/include/linux/unaligned.h b/sys/compat/linuxkpi/dummy/include/linux/unaligned.h new file mode 100644 index 000000000000..e69de29bb2d1 From nobody Tue Apr 29 11:42:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmz1y142hz5tvGN; Tue, 29 Apr 2025 11:42:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmz1x0FLrz3xKj; Tue, 29 Apr 2025 11:42:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jXUIn7SImtx+3+Jm0xET9mMux7NtwXJzmhQqeZaWmqU=; b=gHZd0rNObbeoa3cyxrvZeD4Ft/FYV2tuHbw8cE/pchhEgEDYCOFd1xr5JKzknRwtcWCklA O86OD5ZbZbOmwsM9GWh8WVnygLY+D0vKscc32eagZHdSBsfzzNdyX3d7IKldO9Bhp90n1A GTGKv4zJdpHNWrsUnoyRt+rgedLBmJSVhd3KjoKh+xS0KdTKZ1Et0kYxpH8+jsEhQqcBW3 aZy0cPNHqn0RZkWwje52OR9XhxLc07DptHo8eE4ee/KWyttVWGS61gj1tzkG1ChjlfxTKO Kw79lV4RRW+mPvxyJaw4H/A73zfh9TLQ05lJchrP4dWy8MRaTWbJf3I9r/hDTQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745926933; a=rsa-sha256; cv=none; b=cOYrxFYea+Kpk7D5S7NWQ/lnZFdK3nFzGlvlNBbuSo4svLJwMYu09mSZRhzEd0Ta350WEc d+MDrRRds4E5BJGN0K+W1TTSnj32q5c99inkLTmNPSnz2xMZ9xi6jYuS6vHNXvWlFijvsO nSkGLqnkdXRA8yE0r5a6pk/qkzFX8u+2YxRf7fc1jFGTOMZ7DYHm4LBuuPPu1v8MW4JBa5 4Uo9fxWNav39h/RxPknYqWElWjUhjTxRpeMYAVIDitfKx6XfdCzNoSlwO/YomFd+Tyc1e3 xoqqNfqcv5udYahhQzSX9hJITsfrGAN5mX2KrCTayXs33JHzi9HeHvPQCfQ9VA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745926933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jXUIn7SImtx+3+Jm0xET9mMux7NtwXJzmhQqeZaWmqU=; b=n1v/LNJftuSgyFNqJVH499CyjQX2NOR/lHNdjqOY9KOdn/dc1cTkbXowUaMFTnwge3Y84g BqyV3vQARj8gYyaLjdNK0SYeuLoZgwLRXM9EXPd1TuHjtscuVkIwv5viUCqJqIwvq9UeGj d7je6/OqRcCtsZ6ljN7Luqkcl7pD2x/A051HNDnZpgDN9+yWxLe1597Zf9IX8ujE4Y831P ytT/ekZiX45b5Qy7+aQI1EHl+xoaas2X6Ca3vwuPrgnA4Fww6YXOuGgpke7x9MrM8pcayE s+fjIOY37IsKpXarpwHy7CB+XLD/TcVpG2RrPf6q6xBY8h2Nbk6pg+QY1c4u8A== 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 4Zmz1w6z6Sz3yp; Tue, 29 Apr 2025 11:42:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TBgCJd049217; Tue, 29 Apr 2025 11:42:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TBgCTL049214; Tue, 29 Apr 2025 11:42:12 GMT (envelope-from git) Date: Tue, 29 Apr 2025 11:42:12 GMT Message-Id: <202504291142.53TBgCTL049214@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 62c010b6514b - stable/14 - LinuxKPI: define time64_t List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 62c010b6514bf62043c93d0d371ef1e2c1421676 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=62c010b6514bf62043c93d0d371ef1e2c1421676 commit 62c010b6514bf62043c93d0d371ef1e2c1421676 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 11:11:35 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 10:49:34 +0000 LinuxKPI: define time64_t Define time64_t to int64_t for all supported architectures unconditionally. Sponsored by: The FreeBSD Foundation Reviewed by: imp, markj, emaste Differential Revision: https://reviews.freebsd.org/D50004 (cherry picked from commit 8b51cd07f69e9a5052f660d96a8feb7af4b387c1) --- sys/compat/linuxkpi/common/include/linux/time.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/compat/linuxkpi/common/include/linux/time.h b/sys/compat/linuxkpi/common/include/linux/time.h index 6c9a781d5e0e..ca77a20516ff 100644 --- a/sys/compat/linuxkpi/common/include/linux/time.h +++ b/sys/compat/linuxkpi/common/include/linux/time.h @@ -42,6 +42,8 @@ #include +typedef int64_t time64_t; + static inline struct timeval ns_to_timeval(const int64_t nsec) { From nobody Tue Apr 29 18:30:30 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn8531Bcvz5vN5y; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85301kpz4HZ4; Tue, 29 Apr 2025 18:30:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951431; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7y6pxf5vatB/SyG5pxAWiP84wi2S/DnImKyQ/0nV04c=; b=Bghy+Ls/Ix7N4Sl37fr6F2Ix+SXnb4/V8ryFgHkTwiUSY1V29ec6Um1tE15V235g8VYHE8 YmxXLZrGvYxNEkYrSpPxz2bngcYzUSS0OA8giAO4DYlnjvZoVTyyZ97DwxmlUDaSChnie/ QzGxGPMUZfNgodIXI937qog93p9ndBZMU5oD10bRTzJ9gzQm4UqODpedaZazwUpQVt7NMW rI/CdcdzEjGzFgTZMYD+QDHMEDBw7vWWZgBPl7IiCOv/DmClrFCxpfMSKOebfWL/wnVskf Ng86sjtDjZOkdzQkSQdkxX+UrVZztfNPoGEk+HnuxBMLqj7GsEr0GRP+1kAWaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951431; a=rsa-sha256; cv=none; b=vqyosJW5C+ZrtUynUwYh4tlAlQec2SZPWznBPb8X3O/8JoNQHNBKVHz2dtWoi2zDzXhffc JCThQopoimbZdxXZMy5acl45hKOcg/vD7ww2xFsFgHFWj30dGB0k8LKQlipG1Gamh+I5bg xs8/RMEJBSblhkX1lfVRx4tXwFtIgXCvgLMTNBF6Ry/ncsCUG+YdDgPrvkGdFalDYN3l0G pXZe6OfquspwHiZ0TH7wMu30HAPxitF4vEIKP/OfB2FshEugVRvdJnTWHM8NQ+XKJfUJkQ byhLNxcb3xGKWNqZr+jEej7GxzEuYVKeW9VsMBIy3F5Zp0Cf5MyLdaTHHYDiIw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951431; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7y6pxf5vatB/SyG5pxAWiP84wi2S/DnImKyQ/0nV04c=; b=jMnBRS8FvG9HEV6lfBUWToQypGmxMA5jTxCWlO1lAVQxFp2GViPM3PnjWFPEkluATMQ/sh mazvXGPNZu3L1tSTThGwNETouUMX8KLPuTDRY4uEPBL2E3lqm3QiVzvuKDn5TkPbJU3JFA GiIfzojhivJ7+IpXMyfzVsXVdk7dEt/HFWPV8nS5ZX7QNoZAFhlpCtNqYJqGa/pbp9tAjB 4VjGx8ptZbAXYXt5pLgw4ySrlWlhZ8Ixgmm3SCkL0/L1PZNx1YSl3paaZBXlft6LPUgXx5 q8s88WzuPoBauCZtsUyTpFMG96E36XfrfoOrqr43b7sSUwNYnm4R+3joBDu0sg== 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 4Zn8526ksDzXQM; Tue, 29 Apr 2025 18:30:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUUp8022332; Tue, 29 Apr 2025 18:30:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUUIO022329; Tue, 29 Apr 2025 18:30:30 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:30 GMT Message-Id: <202504291830.53TIUUIO022329@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 7bc852d94dbf - stable/14 - pci: propagate vpd read error List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7bc852d94dbf01d4feacd4f2a23b1ac22aea694c Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=7bc852d94dbf01d4feacd4f2a23b1ac22aea694c commit 7bc852d94dbf01d4feacd4f2a23b1ac22aea694c Author: Ryan Libby AuthorDate: 2024-07-07 23:46:58 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:17:01 +0000 pci: propagate vpd read error On read error, we would return -1, but not handle it, causing a zero size malloc of value, and then we wouldd unconditionally write value[-1 + 1] = '\0'. This should be harmless in terms of buffer overflow because we should get a minimum non-zero size allocation from malloc, but it also effectively swallowed the error. Reported by: GCC -Wstringop-overflow Reviewed by: kib, se Differential Revision: https://reviews.freebsd.org/D45895 (cherry picked from commit 39bda097c03780e26e6a25ff59a3e8e77c77563f) --- sys/dev/pci/pci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index dde50afd9319..8224a6829f3e 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -1196,7 +1196,7 @@ vpd_read_elem_data(struct vpd_readstate *vrs, char keyword[2], char **value, int int len; len = vpd_read_elem_head(vrs, keyword); - if (len > maxlen) + if (len < 0 || len > maxlen) return (-1); *value = vpd_read_value(vrs, len); @@ -1217,7 +1217,7 @@ vpd_fixup_cksum(struct vpd_readstate *vrs, char *rvstring, int len) } /* fetch one read-only element and return size of heading + data */ -static size_t +static int next_vpd_ro_elem(struct vpd_readstate *vrs, int maxsize) { struct pcicfg_vpd *vpd; @@ -1251,7 +1251,7 @@ next_vpd_ro_elem(struct vpd_readstate *vrs, int maxsize) } /* fetch one writable element and return size of heading + data */ -static size_t +static int next_vpd_rw_elem(struct vpd_readstate *vrs, int maxsize) { struct pcicfg_vpd *vpd; From nobody Tue Apr 29 18:30:31 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn8550l0cz5vN8T; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn854128zz4HZB; Tue, 29 Apr 2025 18:30:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951432; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TEtfLoGvIETe+JeGvobcKXzUfJ2rgiz4oN7/LXg+9I=; b=uOvag5ZgYcJkd3pOlkYrw2FgI6nKvNmvEoKKOTHm+wbnv9ttxX/iBeSycKykkL8k2cuiHD vOm34+wpvx9u03PYYU+lLCzf6Seq63vFRhSN7Nrbuzz2ScxElHr6ZkzEoVWZ0bt/yU2UKq AVPVZosYyodnDV0wT7D/1c4Puf/EzcdxbjYOdNWKyWvwIVcFNmjk29gsO6t/mDRC6g/Hci kFkfh9B3RqipjKy5LPB/ohfHGspLIjk01TQpvjI+MzMyMU4JidgOXCjIuMkw8CfqO2+4rO u3LBFmpPjwSrzznJguehQ4O3pxJvnepBAlWKDHmQYRMoAVRCcSTScdV08+/d/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951432; a=rsa-sha256; cv=none; b=qln+81wsTemUhzQaHsYQ8x8/iB5ZIGc0kxkEO+0nrL2csqtQZcbsDFu7mJrX59UAu6zWhL La4qVgIiVhzEJ56RRKgBKKNyWWyg8PnGAGk4q9xHUUga/JOPIey68Ej8xWT3pVIVcetjE6 R0DpQ7NZXJ5zlvDeM6Y6taAHr2EnSkpIoUKMryMhmsm1+QmrH1LpsrRMrRJMCLl5Rpd6k/ ZTmQAMHDE9ipitm6/7bjF/hokjH7qEBInRiGkwAfbPX4gCyWXOheidxwu5MicZjLlwjcKy jHEYdYUAvTSgI4t5PTte696j4ckegCkTbYkmZWFe0a4v+A5QsEpcnXdYjQ/jTw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951432; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5TEtfLoGvIETe+JeGvobcKXzUfJ2rgiz4oN7/LXg+9I=; b=XzsyPU9CyQuPT1ji70s8OhlNoNe32+DBz8zPsJFk4Gm9Jn2CxKJAFuust+DoFMLqLC+haK abNEb09+uGsNnatiSlUk2+htZ2gVC059eJ/k/jyqjEye/RVV4nZjL+mdlysE7ILk5nTmNb Vi3jHOBXqM2/MqxI6fotrOPTOZgTzxQr/GgtF9kMAxC+vU++bBngRMy+3L7wHg3aJpDE0n tT1m+mrDr3An+zkqYZQcVEYFCsfMG8kaXiASkKwCmuTlEGX2IFcEbynymd5FtvFiQZYMCe QIqYrCrDxsBit/13q45Yf/l9Y7+jRXrfX4gU/AZEswI3iQAdMNaJEqop5rPcLQ== 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 4Zn8540ZXbzXRL; Tue, 29 Apr 2025 18:30:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUVgK022377; Tue, 29 Apr 2025 18:30:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUVkW022373; Tue, 29 Apr 2025 18:30:31 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:31 GMT Message-Id: <202504291830.53TIUVkW022373@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 34f9dca1917b - stable/14 - pci: avoid accidental clobbering of regs on some fdt platforms List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 34f9dca1917b7837f7d1f5475b2e0d7be2ced717 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=34f9dca1917b7837f7d1f5475b2e0d7be2ced717 commit 34f9dca1917b7837f7d1f5475b2e0d7be2ced717 Author: Kyle Evans AuthorDate: 2024-12-29 03:57:03 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:17:50 +0000 pci: avoid accidental clobbering of regs on some fdt platforms Most pci controllers will just have a single reg for the config space, but others (e.g., on Apple Silicon) may have more following that to describe, e.g., controller port space. Bump the "ranges" rid space up to avoid overriding these other memory resources. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D43921 (cherry picked from commit b313229969cc56a057dfea28506784fd5468c6f3) --- sys/dev/pci/pci_host_generic.c | 22 +++++++++++++++++----- sys/dev/pci/pci_host_generic.h | 1 + sys/dev/pci/pci_host_generic_acpi.c | 1 + sys/dev/pci/pci_host_generic_fdt.c | 1 + 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/sys/dev/pci/pci_host_generic.c b/sys/dev/pci/pci_host_generic.c index ff8d222e3fd3..2552dc6cc599 100644 --- a/sys/dev/pci/pci_host_generic.c +++ b/sys/dev/pci/pci_host_generic.c @@ -59,6 +59,12 @@ #define PCI_RF_FLAGS 0 #endif +/* + * We allocate "ranges" specified mappings higher up in the rid space to avoid + * conflicts with various definitions in the wild that may have other registers + * attributed to the controller besides just the config space. + */ +#define RANGE_RID(idx) ((idx) + 100) /* Forward prototypes */ @@ -173,7 +179,7 @@ pci_host_generic_core_attach(device_t dev) phys_base = sc->ranges[tuple].phys_base; pci_base = sc->ranges[tuple].pci_base; size = sc->ranges[tuple].size; - rid = tuple + 1; + rid = RANGE_RID(tuple); if (size == 0) continue; /* empty range element */ switch (FLAG_TYPE(sc->ranges[tuple].flags)) { @@ -210,6 +216,7 @@ pci_host_generic_core_attach(device_t dev) error); continue; } + sc->ranges[tuple].rid = rid; sc->ranges[tuple].res = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE | RF_UNMAPPED | flags); if (sc->ranges[tuple].res == NULL) { @@ -246,7 +253,7 @@ int pci_host_generic_core_detach(device_t dev) { struct generic_pcie_core_softc *sc; - int error, tuple, type; + int error, rid, tuple, type; sc = device_get_softc(dev); @@ -255,8 +262,13 @@ pci_host_generic_core_detach(device_t dev) return (error); for (tuple = 0; tuple < MAX_RANGES_TUPLES; tuple++) { - if (sc->ranges[tuple].size == 0) + rid = sc->ranges[tuple].rid; + if (sc->ranges[tuple].size == 0) { + MPASS(sc->ranges[tuple].res == NULL); continue; /* empty range element */ + } + + MPASS(rid != -1); switch (FLAG_TYPE(sc->ranges[tuple].flags)) { case FLAG_TYPE_PMEM: case FLAG_TYPE_MEM: @@ -269,9 +281,9 @@ pci_host_generic_core_detach(device_t dev) continue; } if (sc->ranges[tuple].res != NULL) - bus_release_resource(dev, type, tuple + 1, + bus_release_resource(dev, type, rid, sc->ranges[tuple].res); - bus_delete_resource(dev, type, tuple + 1); + bus_delete_resource(dev, type, rid); } rman_fini(&sc->io_rman); rman_fini(&sc->mem_rman); diff --git a/sys/dev/pci/pci_host_generic.h b/sys/dev/pci/pci_host_generic.h index 65f69fc05314..2d15f06890db 100644 --- a/sys/dev/pci/pci_host_generic.h +++ b/sys/dev/pci/pci_host_generic.h @@ -64,6 +64,7 @@ struct pcie_range { #define FLAG_TYPE_MEM 0x2 #define FLAG_TYPE_PMEM 0x3 struct resource *res; + int rid; }; struct generic_pcie_core_softc { diff --git a/sys/dev/pci/pci_host_generic_acpi.c b/sys/dev/pci/pci_host_generic_acpi.c index 992e8b5c8b8d..e309684a3603 100644 --- a/sys/dev/pci/pci_host_generic_acpi.c +++ b/sys/dev/pci/pci_host_generic_acpi.c @@ -182,6 +182,7 @@ pci_host_generic_acpi_parse_resource(ACPI_RESOURCE *res, void *arg) /* Save detected ranges */ if (res->Data.Address.ResourceType == ACPI_MEMORY_RANGE || res->Data.Address.ResourceType == ACPI_IO_RANGE) { + sc->base.ranges[r].rid = -1; sc->base.ranges[r].pci_base = min; sc->base.ranges[r].phys_base = min + off; sc->base.ranges[r].size = max - min + 1; diff --git a/sys/dev/pci/pci_host_generic_fdt.c b/sys/dev/pci/pci_host_generic_fdt.c index 854ec0be8dfa..05e77f46032f 100644 --- a/sys/dev/pci/pci_host_generic_fdt.c +++ b/sys/dev/pci/pci_host_generic_fdt.c @@ -214,6 +214,7 @@ parse_pci_mem_ranges(device_t dev, struct generic_pcie_core_softc *sc) sc->ranges[i].flags |= FLAG_TYPE_MEM; } + sc->ranges[i].rid = -1; sc->ranges[i].pci_base = 0; for (k = 0; k < (pci_addr_cells - 1); k++) { sc->ranges[i].pci_base <<= 32; From nobody Tue Apr 29 18:30:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn8555nvyz5vMsn; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85525YZz4HTk; Tue, 29 Apr 2025 18:30:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951433; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DW4yVM5Z4flCTWg5Sq0kTtXnAvZmorJfeJWJ2jtfPMc=; b=Kvb5HN2qCZijLQSMjaW9KjP7p2LvJjgabmDIQcOeMfEVMAcZaNF+PNrXbumX3ZJpckBDxb omMUoAE7+cycmskt/wZeh4USoayzMb8vMsc4HmiupbZVVdY4in02hR3a4jtQRHYvdrt7h0 GMUjAoFGYh4IOOAKgzmGOS4Bp2sDwOiiYcTNaZmeFsn8b+ICLiFK4R4ofRBuvDnwwQFcsD wzEIEqe1pxSZNOB0Lr8bqhIG8JT0fsXTfuK+SVDvp68R73bpwuiwp56DDIt8R3MrHfaPyW MwQfhlvJA4+LB/F1Nzc24HfImOGz3VxErU8bfWkqtDHJfaE7z0+n29doko1/Qw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951433; a=rsa-sha256; cv=none; b=AfTbyWk49dj8TgpKanshHYrChjUO8cuqQnyeffRfQOPw+K2nrlVVtT2IC0CvgiTy+dvrYU UaXC6g1VsyLwRZCtXKkipCOClOOnYHnV7t4cdop8PjNTdnevcxmV7zE7Fm7Xeuj/sYYbtG zxWe+WQHlmh33kCa29v4FID1tIIq82MXC/qc23UnEQCCr5ba/Las7LxlJUMt0pfDJ85aiO +1QtC5w7WSQQDA1wStksQG4chsJXLmhWGu5sS0uG8CrHr2n5yP0t/id7xxTWNDjXBAldfu 7pXGSID/7G7mHLNntF2Cams8UgceAXXde6tVdI2WzfXRFXOlcEYL/dD64UWxJw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951433; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DW4yVM5Z4flCTWg5Sq0kTtXnAvZmorJfeJWJ2jtfPMc=; b=yDZlnJfYpXWxUAbNoeZDwMtL5xoRmBtOROTOu6Ndl1AtlVaifK7FX8KOLlFZedA35Zi/h6 OYQpnZqK+4AjjI95L5OnW2UNh3brR9Ri2n2LX6xncgG4pQM1JI1LXbO/CiU+vn4BrsvRd1 ck0uSzRxUqlUg7axzibBC1+pawJR8myC7zu5EjB5HQjYS2Y5VQJzHgjGHqAXXegl4V6kjt 8PmF2jRZ+o+FEEgYd2mPP+vg/bY4xdgmpn7uRM2z8OeQS6RvaW/qNuvRt5CaFTCWp2PX9i A50b3PEooBpeG201DtXluIlJcdpxhqGhgKu57jWN2PMvSL9Vz01zBLLweOnZdw== 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 4Zn8551L62zXV5; Tue, 29 Apr 2025 18:30:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUX6b022412; Tue, 29 Apr 2025 18:30:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUXkN022409; Tue, 29 Apr 2025 18:30:33 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:33 GMT Message-Id: <202504291830.53TIUXkN022409@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: cbaa32c28a05 - stable/14 - pci_host_generic: Use SYS_RES_MEMORY for the parent of I/O resource ranges List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cbaa32c28a05bbc0e8ae5c37dcad4ffd6dc18f8f Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=cbaa32c28a05bbc0e8ae5c37dcad4ffd6dc18f8f commit cbaa32c28a05bbc0e8ae5c37dcad4ffd6dc18f8f Author: John Baldwin AuthorDate: 2025-01-21 15:51:53 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:18:35 +0000 pci_host_generic: Use SYS_RES_MEMORY for the parent of I/O resource ranges When a SYS_RES_IOPORT resource crosses a pci_host_generic bridge, it is translated into a memory access for an associated range, so use SYS_RES_MEMORY for the resource allocated from the parent. Tested by: markj Differential Revision: https://reviews.freebsd.org/D44207 (cherry picked from commit c19f1ad1c252f434146c7210155d805b2ed0ff95) --- sys/dev/pci/pci_host_generic.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/sys/dev/pci/pci_host_generic.c b/sys/dev/pci/pci_host_generic.c index 2552dc6cc599..0fa663c12a56 100644 --- a/sys/dev/pci/pci_host_generic.c +++ b/sys/dev/pci/pci_host_generic.c @@ -91,7 +91,7 @@ pci_host_generic_core_attach(device_t dev) const char *range_descr; char buf[64]; int domain, error; - int flags, rid, tuple, type; + int flags, rid, tuple; sc = device_get_softc(dev); sc->dev = dev; @@ -187,19 +187,16 @@ pci_host_generic_core_attach(device_t dev) sc->has_pmem = true; range_descr = "prefetch"; flags = RF_PREFETCHABLE; - type = SYS_RES_MEMORY; rm = &sc->pmem_rman; break; case FLAG_TYPE_MEM: range_descr = "memory"; flags = 0; - type = SYS_RES_MEMORY; rm = &sc->mem_rman; break; case FLAG_TYPE_IO: range_descr = "I/O port"; flags = 0; - type = SYS_RES_IOPORT; rm = &sc->io_rman; break; default: @@ -209,7 +206,8 @@ pci_host_generic_core_attach(device_t dev) device_printf(dev, "PCI addr: 0x%jx, CPU addr: 0x%jx, Size: 0x%jx, Type: %s\n", pci_base, phys_base, size, range_descr); - error = bus_set_resource(dev, type, rid, phys_base, size); + error = bus_set_resource(dev, SYS_RES_MEMORY, rid, phys_base, + size); if (error != 0) { device_printf(dev, "failed to set resource for range %d: %d\n", tuple, @@ -217,8 +215,8 @@ pci_host_generic_core_attach(device_t dev) continue; } sc->ranges[tuple].rid = rid; - sc->ranges[tuple].res = bus_alloc_resource_any(dev, type, &rid, - RF_ACTIVE | RF_UNMAPPED | flags); + sc->ranges[tuple].res = bus_alloc_resource_any(dev, + SYS_RES_MEMORY, &rid, RF_ACTIVE | RF_UNMAPPED | flags); if (sc->ranges[tuple].res == NULL) { device_printf(dev, "failed to allocate resource for range %d\n", tuple); @@ -253,7 +251,7 @@ int pci_host_generic_core_detach(device_t dev) { struct generic_pcie_core_softc *sc; - int error, rid, tuple, type; + int error, rid, tuple; sc = device_get_softc(dev); @@ -272,18 +270,15 @@ pci_host_generic_core_detach(device_t dev) switch (FLAG_TYPE(sc->ranges[tuple].flags)) { case FLAG_TYPE_PMEM: case FLAG_TYPE_MEM: - type = SYS_RES_MEMORY; - break; case FLAG_TYPE_IO: - type = SYS_RES_IOPORT; break; default: continue; } if (sc->ranges[tuple].res != NULL) - bus_release_resource(dev, type, rid, + bus_release_resource(dev, SYS_RES_MEMORY, rid, sc->ranges[tuple].res); - bus_delete_resource(dev, type, rid); + bus_delete_resource(dev, SYS_RES_MEMORY, rid); } rman_fini(&sc->io_rman); rman_fini(&sc->mem_rman); From nobody Tue Apr 29 18:30:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn8581PMPz5vN1r; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn8562gbQz4HMG; Tue, 29 Apr 2025 18:30:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7ML9YlBuNI8C2CXGj7DUyxIXtRFWoPfeCWsd5lTNVYk=; b=N8EPuEBwVhcT2PZ5JoLQ5d2wM4OfADs8dT0g32Qve3qwgRapldjtN8cnreypoQqh8PWeS1 KJ5R58pSoZaj6XVlAawDoHqvkFkfYyXnxoPX/EV64p8ucONII1fnUY/f8zFw4BPJg4ovUJ kKKAMHAMQMXcJecBhUlOTM/+hbgs8r5b0ljRE/aDYKONnT11rrMdJ7aboPfmScUlG7Cfq1 H4XFa2N4+Yqkdj1R1gBr4RnI5Tp3GJESHFBYh7CG56sDzwdKJTbCV3F12xFLed4/id4ZxI DNilN1INkx1W17fgfR8hLDqYb23zi/4SX/hpcs66AlbIFeaKKMASMwkyO0HNhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951434; a=rsa-sha256; cv=none; b=Fw6nnYfyg1Ns7029HTOqBuffVEKb1r8t1ijcugSAW8SFLiZtxvPtv/1WUVlLcHZS1yZJDk w6bWAU35RXEJBmC4As/vmGIosVWgIJC9RkaTfOb6MBUM6FvW94H680PFOA/e+MoEbbr/Zh 7z44rwr7/GwLWjUDwYz3g1f1bAJp1xdBKMyaRRTPfxkSEIUFKz7zeqMK4/rw1FSMAywvDf amKoq9McWohPFGQFdh5V5loQeH9Zi6V5KRHvl7KUfmh1HwxSH4LVvXCCr+VPFdzb4qbmmY 5i/sG0vvDbkALSPXLWYXWZgibYh16+KmHNsoe/uy7Tb+2uYQJPOBC/NNjEi+GQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951434; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7ML9YlBuNI8C2CXGj7DUyxIXtRFWoPfeCWsd5lTNVYk=; b=WVGv2tCTaPXoqtb9dQJ29UmFPBX5b3lJFd3iQ6IGUPum1+hzOMX2j3ZkLaX4xD2do67UiZ fsutwAi4pYqUMIuznXhSjqD+/sryqWsImj+zVVrqdG67RwVPYMOyw0J4XDMGth/Eq1TwXc dzZhAo+wfVVQ9jUkPXT4UIAPubP6HsbJ34T1wQNr+BWJW5g7T8qMOUM53QzYI5BISCS2ae xMMaledoTv8Cn3zNviwHxbVJKoRYTLWT/GYZT67I3bYptmFm/Z+GVjXQsZq6JJ3cZzUNrX OSoUHfaVjdukW+x2pb3MgFYpvyBiT585mbw3SQcJaw75248Bqa+BQaTTBl/CvQ== 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 4Zn8562HfRzXQN; Tue, 29 Apr 2025 18:30:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUYrO022450; Tue, 29 Apr 2025 18:30:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUYbW022447; Tue, 29 Apr 2025 18:30:34 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:34 GMT Message-Id: <202504291830.53TIUYbW022447@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 14749f40c193 - stable/14 - pci: Cosmetic cleanups to MSI/MSI-X routines List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 14749f40c19341fc6935d619500331fa036a9a54 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=14749f40c19341fc6935d619500331fa036a9a54 commit 14749f40c19341fc6935d619500331fa036a9a54 Author: John Baldwin AuthorDate: 2025-02-11 14:11:10 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:24:10 +0000 pci: Cosmetic cleanups to MSI/MSI-X routines - Use unsigned integers for various variables. The count argument to the alloc method as well as the IRQ values used with the pcib_if.m methods should also be unsigned eventually. - Use mallocarray to allocate arrays - Use bool in a few places Reviewed by: Krzysztof Galazka Differential Revision: https://reviews.freebsd.org/D48889 (cherry picked from commit a3835cceb0882494628d5d075f99a86bd3464672) --- sys/dev/pci/pci.c | 63 ++++++++++++++++++++++++++++------------------------ sys/dev/pci/pcivar.h | 4 ++-- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 8224a6829f3e..07a9534f6b91 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -1775,7 +1775,7 @@ pci_resume_msix(device_t dev) struct pcicfg_msix *msix = &dinfo->cfg.msix; struct msix_table_entry *mte; struct msix_vector *mv; - int i; + u_int i; if (msix->msix_alloc > 0) { /* First, mask all vectors. */ @@ -1808,10 +1808,11 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) struct pci_devinfo *dinfo = device_get_ivars(child); pcicfgregs *cfg = &dinfo->cfg; struct resource_list_entry *rle; - int actual, error, i, irq, max; + u_int actual, i, max; + int error, irq; /* Don't let count == 0 get us into trouble. */ - if (*count == 0) + if (*count < 1) return (EINVAL); /* If rid 0 is allocated, then fail. */ @@ -1871,7 +1872,7 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) device_printf(child, "using IRQ %ju for MSI-X\n", rle->start); else { - int run; + bool run; /* * Be fancy and try to print contiguous runs of @@ -1880,14 +1881,14 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) */ device_printf(child, "using IRQs %ju", rle->start); irq = rle->start; - run = 0; + run = false; for (i = 1; i < actual; i++) { rle = resource_list_find(&dinfo->resources, SYS_RES_IRQ, i + 1); /* Still in a run? */ if (rle->start == irq + 1) { - run = 1; + run = true; irq++; continue; } @@ -1895,7 +1896,7 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) /* Finish previous range. */ if (run) { printf("-%d", irq); - run = 0; + run = false; } /* Start new range. */ @@ -1915,10 +1916,10 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) pci_mask_msix(child, i); /* Allocate and initialize vector data and virtual table. */ - cfg->msix.msix_vectors = malloc(sizeof(struct msix_vector) * actual, - M_DEVBUF, M_WAITOK | M_ZERO); - cfg->msix.msix_table = malloc(sizeof(struct msix_table_entry) * actual, + cfg->msix.msix_vectors = mallocarray(actual, sizeof(struct msix_vector), M_DEVBUF, M_WAITOK | M_ZERO); + cfg->msix.msix_table = mallocarray(actual, + sizeof(struct msix_table_entry), M_DEVBUF, M_WAITOK | M_ZERO); for (i = 0; i < actual; i++) { rle = resource_list_find(&dinfo->resources, SYS_RES_IRQ, i + 1); cfg->msix.msix_vectors[i].mv_irq = rle->start; @@ -1983,14 +1984,15 @@ pci_remap_msix_method(device_t dev, device_t child, int count, struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msix *msix = &dinfo->cfg.msix; struct resource_list_entry *rle; - int i, irq, j, *used; + u_int i, irq, j; + bool *used; /* * Have to have at least one message in the table but the * table can't be bigger than the actual MSI-X table in the * device. */ - if (count == 0 || count > msix->msix_msgnum) + if (count < 1 || count > msix->msix_msgnum) return (EINVAL); /* Sanity check the vectors. */ @@ -2003,17 +2005,17 @@ pci_remap_msix_method(device_t dev, device_t child, int count, * It's a big pain to support it, and it doesn't really make * sense anyway. Also, at least one vector must be used. */ - used = malloc(sizeof(int) * msix->msix_alloc, M_DEVBUF, M_WAITOK | + used = mallocarray(msix->msix_alloc, sizeof(*used), M_DEVBUF, M_WAITOK | M_ZERO); for (i = 0; i < count; i++) if (vectors[i] != 0) - used[vectors[i] - 1] = 1; + used[vectors[i] - 1] = true; for (i = 0; i < msix->msix_alloc - 1; i++) - if (used[i] == 0 && used[i + 1] == 1) { + if (!used[i] && used[i + 1]) { free(used, M_DEVBUF); return (EINVAL); } - if (used[0] != 1) { + if (!used[0]) { free(used, M_DEVBUF); return (EINVAL); } @@ -2046,7 +2048,7 @@ pci_remap_msix_method(device_t dev, device_t child, int count, * used. */ free(msix->msix_table, M_DEVBUF); - msix->msix_table = malloc(sizeof(struct msix_table_entry) * count, + msix->msix_table = mallocarray(count, sizeof(struct msix_table_entry), M_DEVBUF, M_WAITOK | M_ZERO); for (i = 0; i < count; i++) msix->msix_table[i].mte_vector = vectors[i]; @@ -2054,15 +2056,15 @@ pci_remap_msix_method(device_t dev, device_t child, int count, /* Free any unused IRQs and resize the vectors array if necessary. */ j = msix->msix_alloc - 1; - if (used[j] == 0) { + if (!used[j]) { struct msix_vector *vec; - while (used[j] == 0) { + while (!used[j]) { PCIB_RELEASE_MSIX(device_get_parent(dev), child, msix->msix_vectors[j].mv_irq); j--; } - vec = malloc(sizeof(struct msix_vector) * (j + 1), M_DEVBUF, + vec = mallocarray(j + 1, sizeof(struct msix_vector), M_DEVBUF, M_WAITOK); bcopy(msix->msix_vectors, vec, sizeof(struct msix_vector) * (j + 1)); @@ -2104,7 +2106,7 @@ pci_release_msix(device_t dev, device_t child) struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msix *msix = &dinfo->cfg.msix; struct resource_list_entry *rle; - int i; + u_int i; /* Do we have any messages to release? */ if (msix->msix_alloc == 0) @@ -2425,7 +2427,8 @@ pci_remap_intr_method(device_t bus, device_t dev, u_int irq) struct msix_vector *mv; uint64_t addr; uint32_t data; - int error, i, j; + u_int i, j; + int error; /* * Handle MSI first. We try to find this IRQ among our list @@ -2590,11 +2593,12 @@ pci_alloc_msi_method(device_t dev, device_t child, int *count) struct pci_devinfo *dinfo = device_get_ivars(child); pcicfgregs *cfg = &dinfo->cfg; struct resource_list_entry *rle; - int actual, error, i, irqs[32]; + u_int actual, i; + int error, irqs[32]; uint16_t ctrl; /* Don't let count == 0 get us into trouble. */ - if (*count == 0) + if (*count < 1) return (EINVAL); /* If rid 0 is allocated, then fail. */ @@ -2655,7 +2659,7 @@ pci_alloc_msi_method(device_t dev, device_t child, int *count) if (actual == 1) device_printf(child, "using IRQ %d for MSI\n", irqs[0]); else { - int run; + bool run; /* * Be fancy and try to print contiguous runs @@ -2663,18 +2667,18 @@ pci_alloc_msi_method(device_t dev, device_t child, int *count) * we are in a range. */ device_printf(child, "using IRQs %d", irqs[0]); - run = 0; + run = false; for (i = 1; i < actual; i++) { /* Still in a run? */ if (irqs[i] == irqs[i - 1] + 1) { - run = 1; + run = true; continue; } /* Finish previous range. */ if (run) { printf("-%d", irqs[i - 1]); - run = 0; + run = false; } /* Start new range. */ @@ -2709,7 +2713,8 @@ pci_release_msi_method(device_t dev, device_t child) struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msi *msi = &dinfo->cfg.msi; struct resource_list_entry *rle; - int error, i, irqs[32]; + u_int i, irqs[32]; + int error; /* Try MSI-X first. */ error = pci_release_msix(dev, child); diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index c2c1f055def9..37d7daff37f7 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -117,8 +117,8 @@ struct pcicfg_msix { uint8_t msix_pba_bar; /* BAR containing PBA. */ uint32_t msix_table_offset; uint32_t msix_pba_offset; - int msix_alloc; /* Number of allocated vectors. */ - int msix_table_len; /* Length of virtual table. */ + u_int msix_alloc; /* Number of allocated vectors. */ + u_int msix_table_len; /* Length of virtual table. */ struct msix_table_entry *msix_table; /* Virtual table. */ struct msix_vector *msix_vectors; /* Array of allocated vectors. */ struct resource *msix_table_res; /* Resource containing vector table. */ From nobody Tue Apr 29 18:30:35 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn8593SkMz5vN8V; Tue, 29 Apr 2025 18:30:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn8573t5xz4HV1; Tue, 29 Apr 2025 18: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=1745951435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8kVExsAydjMEbSDipmXbm+bXpAjELANQEr04kgKv7Ws=; b=MyiLA1xeV5PyhGwfjFbgN94DG8WBDVF1vX73hLAwRiThOQ6n2JBr+ClfANGjoK+Pa5NTc+ LIsSrmsR9vWcoAL8vDzg6sNIatUwk+aOhHXWDdPz6x+tUgzQDlsmiQ5/IQjRPk92fFv9sh K6zsEmSYW7s4TgzDytgv5RHiEFs6kSzl7quq+Y2f8dBsM479/4+NUNfXzESduYhWRKcm4f Ue+uJpugb2cU9nPRbFsK3sqZ5BjoWoy4CWD6PMoMXO3WaKzUVAIcBMXp7oiGoLdktApEMu Y7d46pbvvwb94QWnzfxxBuDrmDKdeFK6mAoGx2cqFTSW42HYeF/FrQboqw1S8g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951435; a=rsa-sha256; cv=none; b=nTaTuG/2G9d7xJjifn6b53hxf3r79M89eSRT6pUxJ+FRZ8vNg79RVeU5DmUANQDt1pvqCf mcd6F5RVMo8L7uXleSbR1IngjVyd2mN+5fgqaYmtRU7Oo8ZYFqBToL3R1LgczNuWSVWUsa FYDhPMSTJgzYBO9HLZxOhNUDeY8XUrAfBDfa+E2135iZkT41A6jr5MuCq56MJHFXT4x+3J DauOPYpUZjIqG4D/f3TUEy4iVif2YmqND5qhpsP+stcZwwUQkHXWLp/lAOOHsXInFnLCk2 rzEKcZmln34meNGNlFA/PXp833GduAt5gwmHLyFYlne7x1wzowkXxxkg+7R2hQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951435; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8kVExsAydjMEbSDipmXbm+bXpAjELANQEr04kgKv7Ws=; b=BmFLoA7WodxZ6d7HGfnXpAuYSul/Qbgq7J85xNpz1+thTIKLhJLnvPkxxzLuQZTCwAb2xi 2KHtBHPhDq0GW26/rb/dWL0hVcWqURMTECjD/FtY/ibXw5yI9NyFmlGkLS59pZTqrk3+Kp cQPrTVHFhl4xfSZ2ADQac5KiJlsJy6FMS5c6zVGwzahAZWWqJ5t4/LtxBL0W4bv6gmGJc8 OXqH1G7zs19VhRqVjBxkLmsmzqYJOofMUcYJakfAyd56tkzfnU/W9gaR79aURanYuDeoGX Z8gk/1+7UPMsRdCxD4ZpZ7IFkKv84mB7/e0NIyMJm6s+YqFKSX4FESpef5F+Ww== 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 4Zn8573JbTzXQP; Tue, 29 Apr 2025 18:30:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUZaE022484; Tue, 29 Apr 2025 18:30:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUZer022481; Tue, 29 Apr 2025 18:30:35 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:35 GMT Message-Id: <202504291830.53TIUZer022481@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 0a515a8d36ad - stable/14 - pci: Don't cache the count of MSI/MSI-X messages before allocation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0a515a8d36ad41e21c4af00f9d97a32ae9fa61e0 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=0a515a8d36ad41e21c4af00f9d97a32ae9fa61e0 commit 0a515a8d36ad41e21c4af00f9d97a32ae9fa61e0 Author: John Baldwin AuthorDate: 2025-02-11 14:11:48 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:24:32 +0000 pci: Don't cache the count of MSI/MSI-X messages before allocation A device can in theory change the read-only fields in the MSI/MSI-X control registers that indicate the maximum number of supported registers in response to changing other device registers. For example, certain Intel networking VFs change the number of messages as a result of changes in the PCI_IOV_ADD_VF callback. To support this, always read the current value of the relevant control register in the *_count and *_alloc methods. Once messages have been allocated, the control register value remains cached. Reported by: Krzysztof Galazka Reviewed by: Krzysztof Galazka , erj Differential Revision: https://reviews.freebsd.org/D48890 (cherry picked from commit 346020138a0fd20085ebc285f090df38d7d18527) --- sys/dev/iavf/iavf_lib.c | 25 ---------------- sys/dev/iavf/iavf_lib.h | 1 - sys/dev/iavf/if_iavf_iflib.c | 3 -- sys/dev/pci/pci.c | 70 ++++++++++++++++++++++++++------------------ sys/dev/pci/pcireg.h | 3 ++ sys/dev/pci/pcivar.h | 2 -- 6 files changed, 45 insertions(+), 59 deletions(-) diff --git a/sys/dev/iavf/iavf_lib.c b/sys/dev/iavf/iavf_lib.c index 3116ce0501c2..433d31904ea4 100644 --- a/sys/dev/iavf/iavf_lib.c +++ b/sys/dev/iavf/iavf_lib.c @@ -1463,31 +1463,6 @@ iavf_mark_del_vlan_filter(struct iavf_sc *sc, u16 vtag) return (i); } -/** - * iavf_update_msix_devinfo - Fix MSIX values for pci_msix_count() - * @dev: pointer to kernel device - * - * Fix cached MSI-X control register information. This is a workaround - * for an issue where VFs spawned in non-passthrough mode on FreeBSD - * will have their PCI information cached before the PF driver - * finishes updating their PCI information. - * - * @pre Must be called before pci_msix_count() - */ -void -iavf_update_msix_devinfo(device_t dev) -{ - struct pci_devinfo *dinfo; - u32 msix_ctrl; - u8 msix_location; - - dinfo = (struct pci_devinfo *)device_get_ivars(dev); - msix_location = dinfo->cfg.msix.msix_location; - msix_ctrl = pci_read_config(dev, msix_location + PCIR_MSIX_CTRL, 2); - dinfo->cfg.msix.msix_ctrl = msix_ctrl; - dinfo->cfg.msix.msix_msgnum = (msix_ctrl & PCIM_MSIXCTRL_TABLE_SIZE) + 1; -} - /** * iavf_disable_queues_with_retries - Send PF multiple DISABLE_QUEUES messages * @sc: device softc diff --git a/sys/dev/iavf/iavf_lib.h b/sys/dev/iavf/iavf_lib.h index f3ccd9f0c52f..2f874b2e4410 100644 --- a/sys/dev/iavf/iavf_lib.h +++ b/sys/dev/iavf/iavf_lib.h @@ -474,7 +474,6 @@ struct iavf_mac_filter * u64 iavf_baudrate_from_link_speed(struct iavf_sc *sc); void iavf_add_vlan_filter(struct iavf_sc *sc, u16 vtag); int iavf_mark_del_vlan_filter(struct iavf_sc *sc, u16 vtag); -void iavf_update_msix_devinfo(device_t dev); void iavf_disable_queues_with_retries(struct iavf_sc *); int iavf_sysctl_current_speed(SYSCTL_HANDLER_ARGS); diff --git a/sys/dev/iavf/if_iavf_iflib.c b/sys/dev/iavf/if_iavf_iflib.c index d460df6e0d25..e4dd3b1e59a4 100644 --- a/sys/dev/iavf/if_iavf_iflib.c +++ b/sys/dev/iavf/if_iavf_iflib.c @@ -379,9 +379,6 @@ iavf_if_attach_pre(if_ctx_t ctx) scctx->isc_capabilities = scctx->isc_capenable = IAVF_CAPS; scctx->isc_tx_csum_flags = CSUM_OFFLOAD; - /* Update OS cache of MSIX control register values */ - iavf_update_msix_devinfo(dev); - return (0); err_vc_tq: diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 07a9534f6b91..7107fbe4884b 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -937,14 +937,10 @@ pci_read_cap(device_t pcib, pcicfgregs *cfg) case PCIY_MSI: /* PCI MSI */ cfg->msi.msi_location = ptr; cfg->msi.msi_ctrl = REG(ptr + PCIR_MSI_CTRL, 2); - cfg->msi.msi_msgnum = 1 << ((cfg->msi.msi_ctrl & - PCIM_MSICTRL_MMC_MASK)>>1); break; case PCIY_MSIX: /* PCI MSI-X */ cfg->msix.msix_location = ptr; cfg->msix.msix_ctrl = REG(ptr + PCIR_MSIX_CTRL, 2); - cfg->msix.msix_msgnum = (cfg->msix.msix_ctrl & - PCIM_MSIXCTRL_TABLE_SIZE) + 1; val = REG(ptr + PCIR_MSIX_TABLE, 4); cfg->msix.msix_table_bar = PCIR_BAR(val & PCIM_MSIX_BIR_MASK); @@ -1719,7 +1715,7 @@ pci_mask_msix(device_t dev, u_int index) struct pcicfg_msix *msix = &dinfo->cfg.msix; uint32_t offset, val; - KASSERT(msix->msix_msgnum > index, ("bogus index")); + KASSERT(PCI_MSIX_MSGNUM(msix->msix_ctrl) > index, ("bogus index")); offset = msix->msix_table_offset + index * 16 + 12; val = bus_read_4(msix->msix_table_res, offset); val |= PCIM_MSIX_VCTRL_MASK; @@ -1738,7 +1734,7 @@ pci_unmask_msix(device_t dev, u_int index) struct pcicfg_msix *msix = &dinfo->cfg.msix; uint32_t offset, val; - KASSERT(msix->msix_table_len > index, ("bogus index")); + KASSERT(PCI_MSIX_MSGNUM(msix->msix_ctrl) > index, ("bogus index")); offset = msix->msix_table_offset + index * 16 + 12; val = bus_read_4(msix->msix_table_res, offset); val &= ~PCIM_MSIX_VCTRL_MASK; @@ -1775,11 +1771,13 @@ pci_resume_msix(device_t dev) struct pcicfg_msix *msix = &dinfo->cfg.msix; struct msix_table_entry *mte; struct msix_vector *mv; - u_int i; + u_int i, msgnum; if (msix->msix_alloc > 0) { + msgnum = PCI_MSIX_MSGNUM(msix->msix_ctrl); + /* First, mask all vectors. */ - for (i = 0; i < msix->msix_msgnum; i++) + for (i = 0; i < msgnum; i++) pci_mask_msix(dev, i); /* Second, program any messages with at least one handler. */ @@ -1810,6 +1808,7 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) struct resource_list_entry *rle; u_int actual, i, max; int error, irq; + uint16_t ctrl, msgnum; /* Don't let count == 0 get us into trouble. */ if (*count < 1) @@ -1848,11 +1847,14 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) } cfg->msix.msix_pba_res = rle->res; + ctrl = pci_read_config(child, cfg->msix.msix_location + PCIR_MSIX_CTRL, + 2); + msgnum = PCI_MSIX_MSGNUM(ctrl); if (bootverbose) device_printf(child, "attempting to allocate %d MSI-X vectors (%d supported)\n", - *count, cfg->msix.msix_msgnum); - max = min(*count, cfg->msix.msix_msgnum); + *count, msgnum); + max = min(*count, msgnum); for (i = 0; i < max; i++) { /* Allocate a message. */ error = PCIB_ALLOC_MSIX(device_get_parent(dev), child, &irq); @@ -1912,7 +1914,7 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) } /* Mask all vectors. */ - for (i = 0; i < cfg->msix.msix_msgnum; i++) + for (i = 0; i < msgnum; i++) pci_mask_msix(child, i); /* Allocate and initialize vector data and virtual table. */ @@ -1927,9 +1929,10 @@ pci_alloc_msix_method(device_t dev, device_t child, int *count) } /* Update control register to enable MSI-X. */ - cfg->msix.msix_ctrl |= PCIM_MSIXCTRL_MSIX_ENABLE; + ctrl |= PCIM_MSIXCTRL_MSIX_ENABLE; pci_write_config(child, cfg->msix.msix_location + PCIR_MSIX_CTRL, - cfg->msix.msix_ctrl, 2); + ctrl, 2); + cfg->msix.msix_ctrl = ctrl; /* Update counts of alloc'd messages. */ cfg->msix.msix_alloc = actual; @@ -1992,7 +1995,7 @@ pci_remap_msix_method(device_t dev, device_t child, int count, * table can't be bigger than the actual MSI-X table in the * device. */ - if (count < 1 || count > msix->msix_msgnum) + if (count < 1 || count > PCI_MSIX_MSGNUM(msix->msix_ctrl)) return (EINVAL); /* Sanity check the vectors. */ @@ -2158,9 +2161,13 @@ pci_msix_count_method(device_t dev, device_t child) { struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msix *msix = &dinfo->cfg.msix; + uint16_t ctrl; - if (pci_do_msix && msix->msix_location != 0) - return (msix->msix_msgnum); + if (pci_do_msix && msix->msix_location != 0) { + ctrl = pci_read_config(child, msix->msix_location + + PCIR_MSI_CTRL, 2); + return (PCI_MSIX_MSGNUM(ctrl)); + } return (0); } @@ -2595,7 +2602,7 @@ pci_alloc_msi_method(device_t dev, device_t child, int *count) struct resource_list_entry *rle; u_int actual, i; int error, irqs[32]; - uint16_t ctrl; + uint16_t ctrl, msgnum; /* Don't let count == 0 get us into trouble. */ if (*count < 1) @@ -2618,13 +2625,15 @@ pci_alloc_msi_method(device_t dev, device_t child, int *count) if (cfg->msi.msi_location == 0 || !pci_do_msi) return (ENODEV); + ctrl = pci_read_config(child, cfg->msi.msi_location + PCIR_MSI_CTRL, 2); + msgnum = PCI_MSI_MSGNUM(ctrl); if (bootverbose) device_printf(child, - "attempting to allocate %d MSI vectors (%d supported)\n", - *count, cfg->msi.msi_msgnum); + "attempting to allocate %d MSI vectors (%u supported)\n", + *count, msgnum); /* Don't ask for more than the device supports. */ - actual = min(*count, cfg->msi.msi_msgnum); + actual = min(*count, msgnum); /* Don't ask for more than 32 messages. */ actual = min(actual, 32); @@ -2693,7 +2702,6 @@ pci_alloc_msi_method(device_t dev, device_t child, int *count) } /* Update control register with actual count. */ - ctrl = cfg->msi.msi_ctrl; ctrl &= ~PCIM_MSICTRL_MME_MASK; ctrl |= (ffs(actual) - 1) << 4; cfg->msi.msi_ctrl = ctrl; @@ -2767,9 +2775,13 @@ pci_msi_count_method(device_t dev, device_t child) { struct pci_devinfo *dinfo = device_get_ivars(child); struct pcicfg_msi *msi = &dinfo->cfg.msi; + uint16_t ctrl; - if (pci_do_msi && msi->msi_location != 0) - return (msi->msi_msgnum); + if (pci_do_msi && msi->msi_location != 0) { + ctrl = pci_read_config(child, msi->msi_location + PCIR_MSI_CTRL, + 2); + return (PCI_MSI_MSGNUM(ctrl)); + } return (0); } @@ -3023,19 +3035,21 @@ pci_print_verbose(struct pci_devinfo *dinfo) status & PCIM_PSTAT_DMASK); } if (cfg->msi.msi_location) { - int ctrl; + uint16_t ctrl, msgnum; ctrl = cfg->msi.msi_ctrl; + msgnum = PCI_MSI_MSGNUM(ctrl); printf("\tMSI supports %d message%s%s%s\n", - cfg->msi.msi_msgnum, - (cfg->msi.msi_msgnum == 1) ? "" : "s", + msgnum, (msgnum == 1) ? "" : "s", (ctrl & PCIM_MSICTRL_64BIT) ? ", 64 bit" : "", (ctrl & PCIM_MSICTRL_VECTOR) ? ", vector masks":""); } if (cfg->msix.msix_location) { + uint16_t msgnum; + + msgnum = PCI_MSIX_MSGNUM(cfg->msix.msix_ctrl); printf("\tMSI-X supports %d message%s ", - cfg->msix.msix_msgnum, - (cfg->msix.msix_msgnum == 1) ? "" : "s"); + msgnum, (msgnum == 1) ? "" : "s"); if (cfg->msix.msix_table_bar == cfg->msix.msix_pba_bar) printf("in map 0x%x\n", cfg->msix.msix_table_bar); diff --git a/sys/dev/pci/pcireg.h b/sys/dev/pci/pcireg.h index 623deb8b4505..f6aaf30611e4 100644 --- a/sys/dev/pci/pcireg.h +++ b/sys/dev/pci/pcireg.h @@ -616,6 +616,8 @@ #define PCIM_MSICTRL_MMC_16 0x0008 #define PCIM_MSICTRL_MMC_32 0x000A #define PCIM_MSICTRL_MSI_ENABLE 0x0001 +#define PCI_MSI_MSGNUM(ctrl) \ + (1 << (((ctrl) & PCIM_MSICTRL_MMC_MASK) >> 1)) #define PCIR_MSI_ADDR 0x4 #define PCIR_MSI_ADDR_HIGH 0x8 #define PCIR_MSI_DATA 0x8 @@ -965,6 +967,7 @@ #define PCIM_MSIXCTRL_MSIX_ENABLE 0x8000 #define PCIM_MSIXCTRL_FUNCTION_MASK 0x4000 #define PCIM_MSIXCTRL_TABLE_SIZE 0x07FF +#define PCI_MSIX_MSGNUM(ctrl) (((ctrl) & PCIM_MSIXCTRL_TABLE_SIZE) + 1) #define PCIR_MSIX_TABLE 0x4 #define PCIR_MSIX_PBA 0x8 #define PCIM_MSIX_BIR_MASK 0x7 diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index 37d7daff37f7..888159d59c1a 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -90,7 +90,6 @@ struct pcicfg_vpd { struct pcicfg_msi { uint16_t msi_ctrl; /* Message Control */ uint8_t msi_location; /* Offset of MSI capability registers. */ - uint8_t msi_msgnum; /* Number of messages */ int msi_alloc; /* Number of allocated messages. */ uint64_t msi_addr; /* Contents of address register. */ uint16_t msi_data; /* Contents of data register. */ @@ -111,7 +110,6 @@ struct msix_table_entry { struct pcicfg_msix { uint16_t msix_ctrl; /* Message Control */ - uint16_t msix_msgnum; /* Number of messages */ uint8_t msix_location; /* Offset of MSI-X capability registers. */ uint8_t msix_table_bar; /* BAR containing vector table. */ uint8_t msix_pba_bar; /* BAR containing PBA. */ From nobody Tue Apr 29 18:30:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn8596L8xz5vMsr; Tue, 29 Apr 2025 18:30:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn8585DSSz4HV6; Tue, 29 Apr 2025 18:30:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7dh6FEBOaBEPd2RbY24cuxXSqNNUsKL/IJOQyngqrxk=; b=juE1ZbGDnxmDsmqSuIB/6H+lo45EiRxBmNJTf+lXODob2pKXlism51KgzAtdb+0vTcTnn0 wUrGPCPLGT344Jo9qU2GzqR5niPrajOG45MI0L7E3m79Mt+C9qNpQRXbxoDvdwOQ4ewyIH YMRO3rxeFqfYBp6XMZcwLEJlEjD+uU9mmBzcklPeLYppHWxiie4fqqzIXfee7/sQQTqe3R DVKNaVoyKbN9JXL5iEzOXoopzqeYFF/U9GgicoZ8wnUrNDWYG/4W7RvKN7A/HBvo9kNaRT hzXjtqOoselXlUpyZ/qX+CMKUSRvjbDp6o/2pmgxNAz4/2rGL5K/26l7eU+8yQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951436; a=rsa-sha256; cv=none; b=YLAmr5OtZl5orklFNRfR9oQIL3Q5WbAWB82rBAXUhQsPLuji87V7MDUkbdKKBawt0ql0qK w76dpliFAu5GfE1Zy52AXP7a3qDODnjwxwh+IsGOaEH1xzhkLqRRHwKaeaxj0vYELBaow9 UzIynItPY8D2JD5I2kFY/ucqW3DbDRsz1tQ3GVp3uTjvQvxcYFGUILQhPnHzoGI+0Zkfck 18EZBZhimjgZrrx5QH5YbXu9PKbhZOHzAyh8WWOtFjLrWRIiylCIq0zFRLCHYWoHa3GO7z /RP+jMNDaDCUsXKCEIQPPPUovhuLFs930zykSIASwBMX0WqKPM71H+n6qhv2UA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951436; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7dh6FEBOaBEPd2RbY24cuxXSqNNUsKL/IJOQyngqrxk=; b=YM1YzHAld1rGD8OUTMpawKKbpvz1NxD7y0zhSuMtVrGapye1TQJq2GOaX1P+bQvKr3tFA8 xsSChBISi8HU30QlAuYDmPQgxsqAaAWvb1ivp9YD3paGloP2LeLwbdAbAp61vNV7SxTyim Pny3Z2oWq8kxJHb6MQkVZlQFGeJvrfIVltuLkhYNPRYLIVnkqIq5MH3+ycQwEWmeH7CknW zF9zCylL/0cog1IlbeT9jf9h+AfDAQWf0gt0fXNA0m0wuB/fsnOqVKJhUDExMijaAM5ok9 VaLgdjgDENVIsJGWINezBvfNumVA+iSewjLWwYj9DDXzoLAzm4oNT7sWow0p0A== 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 4Zn8584r5RzXb3; Tue, 29 Apr 2025 18:30:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUaNp022521; Tue, 29 Apr 2025 18:30:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUarT022518; Tue, 29 Apr 2025 18:30:36 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:36 GMT Message-Id: <202504291830.53TIUarT022518@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 3a54ca5e28d8 - stable/14 - new-bus: Add taskqueue_bus to process hot-plug device events List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3a54ca5e28d847ab46168d3ea866259e806338fe Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=3a54ca5e28d847ab46168d3ea866259e806338fe commit 3a54ca5e28d847ab46168d3ea866259e806338fe Author: John Baldwin AuthorDate: 2025-03-10 17:32:23 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:34:05 +0000 new-bus: Add taskqueue_bus to process hot-plug device events Use a system-wide taskqueue for hot-plug events. This avoids possibly blocking unrelated events on the thread taskqueue without requiring multiple driver-specific taskqueues. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49268 (cherry picked from commit 44d5f5ed1e959d8f2c22b6ee69c6a46a45ccdd8e) --- sys/kern/subr_bus.c | 3 +++ sys/sys/taskqueue.h | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index b71a46edc544..211fe45b1374 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #ifdef INTRNG @@ -120,6 +121,8 @@ struct device_prop_elm { LIST_ENTRY(device_prop_elm) link; }; +TASKQUEUE_DEFINE_THREAD(bus); + static void device_destroy_props(device_t dev); /** diff --git a/sys/sys/taskqueue.h b/sys/sys/taskqueue.h index 9757e1fce575..9da364a1a716 100644 --- a/sys/sys/taskqueue.h +++ b/sys/sys/taskqueue.h @@ -215,4 +215,10 @@ struct taskqueue *taskqueue_create_fast(const char *name, int mflags, taskqueue_enqueue_fn enqueue, void *context); +/* + * This queue is used to process asynchronous device events such as + * hot plug insertion and removal of devices. + */ +TASKQUEUE_DECLARE(bus); + #endif /* !_SYS_TASKQUEUE_H_ */ From nobody Tue Apr 29 18:30:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85D4r4cz5vMmW; Tue, 29 Apr 2025 18:30:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85D0Chlz4Hgc; Tue, 29 Apr 2025 18:30:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951440; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PTQs3Cu9Ir0E0s1pwlpHpfX5tHrMis/GgqKUQuGecII=; b=CX/SB/h7g3VM1qosLwtEt274FTM7dcTR9e1RjyjuBKXIjzze2iQKUs7Z1pYkVCSTPDFGIQ UErXvjvHrcE0qiwI8SCqjyaCeG7IOQY0a7UoybHWh9RYSFOB/ev7dq1WqL+y+dbu7GHZKe oggFqKpk9+wJ0tSKE5W27Vojez+Wb3KIQcJoFdoARbGbc2OgdDRagJ3flP7RcpOojk19cA GC6yZ0iSjfNP9cVAC/aYBNo3eNQDh++q+vu4dOqXXPMz1XdJ3qhN79DkRYTVUOGQnj+9Pp rZdDTsPuMFQ7Snzxd5XagfxKxatQaf0MySOi6p4a7RLLGbqDksTmr0y5uep7xg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951440; a=rsa-sha256; cv=none; b=qeUalQpWb0zy/aA+atIYtp843Ag46tH8s2MQKreNI2d/vN8LHQuRW3Zirj+bm64y9KCLT4 57tLoN8YuL62A6yaWkuyWGYlhdskMhlUhCNVK1LgFWxGG//oc5GDBoTZibN11c6vsmA5Zg 7R++INzFZDNBFfEuwdH6xYva0h8UTeYJj1Mtkn/OqCfwY5J3W91b7VJRasr0WX2An/Tc64 SHGyHqh6cRVzCvEqPUiOWqOJo2w/9xpiHtT3bWDlrAIZCSdwP+EoNhK0+Hv+dKBnJI4GzB hOYV5YBFqAt1UC2PKCgAbJhNYpT/pHYrSo9dz8xaKi8/jSrTurLitq+36BUmRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951440; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PTQs3Cu9Ir0E0s1pwlpHpfX5tHrMis/GgqKUQuGecII=; b=k3Uk9QvyO+TtLZjakhINTBNB9GPLfpjL5L4Qb8thVYg5CE/hETg98ek0KIFK8SZ5rv6SZI brosX4jY/SV6l7eKwRyhqttkoGtvEdExmWd8cTLykhCB/hvpKlagCNua6VWyx/FwYFq8Rv 6/o3OoGJR3ttPCOzs0XHBcXFAu1vgJY904DT2tsjz1v8hCY/5wcN5WLhrPdodh7DZfdSnz s22fEWEXjI/HV7BtJSGhBb3Sx42x7+0otzKPdNX/ZOO2/GBRjoHzMNMUF0GxHHJRaSdR1J qOrzn8ZOwUnd/bt6zZpYptPL3iOtlpl6slCNe+dXgt6K5WSW/k+ukDDxIfYvEw== 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 4Zn85C6XC4zXQM; Tue, 29 Apr 2025 18:30:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUdOw022629; Tue, 29 Apr 2025 18:30:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUdXc022626; Tue, 29 Apr 2025 18:30:39 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:39 GMT Message-Id: <202504291830.53TIUdXc022626@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 207e58ce8a6d - stable/14 - sdhci: Use bus_topo_lock and taskqueue_bus for hotplug events List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 207e58ce8a6dfdce44f4d5e1607dc98551d15eaa Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=207e58ce8a6dfdce44f4d5e1607dc98551d15eaa commit 207e58ce8a6dfdce44f4d5e1607dc98551d15eaa Author: John Baldwin AuthorDate: 2025-03-10 17:33:49 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:42:44 +0000 sdhci: Use bus_topo_lock and taskqueue_bus for hotplug events Drop SDHCI_LOCK and instead acquire bus_topo_lock when adding and removing new-bus devices. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49271 (cherry picked from commit aaf0a7302d10912e62dcd8e047798b4a2aefa039) --- sys/dev/sdhci/sdhci.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sys/dev/sdhci/sdhci.c b/sys/dev/sdhci/sdhci.c index 3dc8fb617820..161783483e0e 100644 --- a/sys/dev/sdhci/sdhci.c +++ b/sys/dev/sdhci/sdhci.c @@ -701,12 +701,14 @@ sdhci_card_task(void *arg, int pending __unused) mmccam_start_discovery(slot->sim); SDHCI_UNLOCK(slot); #else - d = slot->dev = device_add_child(slot->bus, "mmc", -1); SDHCI_UNLOCK(slot); + bus_topo_lock(); + d = slot->dev = device_add_child(slot->bus, "mmc", -1); if (d) { device_set_ivars(d, slot); (void)device_probe_and_attach(d); } + bus_topo_unlock(); #endif } else SDHCI_UNLOCK(slot); @@ -732,7 +734,9 @@ sdhci_card_task(void *arg, int pending __unused) slot->opt &= ~SDHCI_TUNING_ENABLED; SDHCI_UNLOCK(slot); callout_drain(&slot->retune_callout); + bus_topo_lock(); device_delete_child(slot->bus, d); + bus_topo_unlock(); #endif } else SDHCI_UNLOCK(slot); @@ -761,10 +765,10 @@ sdhci_handle_card_present_locked(struct sdhci_slot *slot, bool is_present) was_present = slot->dev != NULL; #endif if (!was_present && is_present) { - taskqueue_enqueue_timeout(taskqueue_swi_giant, + taskqueue_enqueue_timeout(taskqueue_bus, &slot->card_delayed_task, -SDHCI_INSERT_DELAY_TICKS); } else if (was_present && !is_present) { - taskqueue_enqueue(taskqueue_swi_giant, &slot->card_task); + taskqueue_enqueue(taskqueue_bus, &slot->card_task); } } @@ -1130,7 +1134,7 @@ no_tuning: "timeout", CTLFLAG_RWTUN, &slot->timeout, 0, "Maximum timeout for SDHCI transfers (in secs)"); TASK_INIT(&slot->card_task, 0, sdhci_card_task, slot); - TIMEOUT_TASK_INIT(taskqueue_swi_giant, &slot->card_delayed_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &slot->card_delayed_task, 0, sdhci_card_task, slot); callout_init(&slot->card_poll_callout, 1); callout_init_mtx(&slot->timeout_callout, &slot->mtx, 0); @@ -1184,8 +1188,8 @@ sdhci_cleanup_slot(struct sdhci_slot *slot) callout_drain(&slot->timeout_callout); callout_drain(&slot->card_poll_callout); callout_drain(&slot->retune_callout); - taskqueue_drain(taskqueue_swi_giant, &slot->card_task); - taskqueue_drain_timeout(taskqueue_swi_giant, &slot->card_delayed_task); + taskqueue_drain(taskqueue_bus, &slot->card_task); + taskqueue_drain_timeout(taskqueue_bus, &slot->card_delayed_task); SDHCI_LOCK(slot); d = slot->dev; From nobody Tue Apr 29 18:30:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85G0Vwlz5vMsy; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85F2cvcz4HVY; Tue, 29 Apr 2025 18:30:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951441; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rF0XgVtkphI0EwnoxHSn1+shMf0mTDS7DAcSc/G0Rp8=; b=fFoBpLICiI4OdiO0p3NcUsxexTOLYw4DD3VnbEBiLKhsJjFWKZ3JzKJg8VQnUDj1tnT1yE WIwWI+dideoWl7uQ+VlAFSPLk1CZO6hlSFfp95gnrVTIk7wGXjRBLxhAMVDrmsIkDerjGZ rOy1cK3EyQlM8wxlOIoGnOqC9eLZUgyGOR/RAy4DtrAKg0U0iqmFP0lTRT482KLdTENIgZ LgWytzDP3WnAUlPAgL3l5okXgk9ciLNvclzNEEBZB6kCV2MHFVti10ikrff/b/GxTpg3+5 GjScBTID8wFWfFysJ1jCcE4Pmoju+hehzNvatjMZfIWA3Ju9lkblRGPrld72aw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951441; a=rsa-sha256; cv=none; b=cy2HivsIshO0WAKPDqet1gS8tXbKHO4NcWWuOvryB5O+pJj4lbIPT45CAQADMnQKu93OHt 9V7UsFLxjsOGXTZ2Ig6EhZle4LnJbdCJQYTQbobSdvrQKJ7FhCwU5/jBUtsCP8voF+TjJ/ g6hlSa7sDPhzO6pEta43mCW6J4/Thbp8OjfvsPgVpcOpPEbCphZ5f13MDCpPOVMQ/A4ORW GwpG337TqPaDHNJNo63y+bsCRmStdpekembvSuWgiQ7YJ+yLJa1nnDgnaBhgo9GsPuHcg5 r+QriUqfvKVPWVmg1CIoQ0YKh9/0Ol2K0S093dclcMKglsgT8qpcadb6zlNG3Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951441; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rF0XgVtkphI0EwnoxHSn1+shMf0mTDS7DAcSc/G0Rp8=; b=jZe0Eev/HIvBzDRLvr/N6GPffJ5RvdYtdUGa3irDaz+G7jjGXmAhGaYeDm8GnXzbtXSf2L s6URtI/Ocd/JCgwwxm6S+7SUK6uNhqS5eoWL9rpiStPG8zy9IfW/7NRY963spIA89CZvpC VNsqclCHRsGfCikitFzcVB0RSGB3lLiqX5knoJ3m3alP6jvfcyUT1V6JBTmM1l+YRiZbpn aMX9LyBUO+Xscu8XvFGx8lfswiU9ZXnqxiiRl0WI+EIgYY97fl6XJ1Hag/dA72CK6z/ftO e/Sf5MZW3pHYu2l+BbLHKpg6axr6F5Rb71o2Z14aHZ4YDv8Nyh+YD5LfQ+gEaA== 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 4Zn85F0S8FzXQP; Tue, 29 Apr 2025 18:30:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUeSH022663; Tue, 29 Apr 2025 18:30:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUeHs022660; Tue, 29 Apr 2025 18:30:40 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:40 GMT Message-Id: <202504291830.53TIUeHs022660@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: ab9e7d209ac5 - stable/14 - hdaa: Don't hold a mutex while creating child devices List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ab9e7d209ac58e9c4d0a0ebd4bdb6f96f303e8df Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=ab9e7d209ac58e9c4d0a0ebd4bdb6f96f303e8df commit ab9e7d209ac58e9c4d0a0ebd4bdb6f96f303e8df Author: John Baldwin AuthorDate: 2025-03-10 17:34:07 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:42:56 +0000 hdaa: Don't hold a mutex while creating child devices The lock is already not held while deleting child devices, and the bus_topo_lock is already held when child devices are created. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49272 (cherry picked from commit 02d61f27585f52d422fc1e235ac6226e27145162) --- sys/dev/sound/pci/hda/hdaa.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/sound/pci/hda/hdaa.c b/sys/dev/sound/pci/hda/hdaa.c index 3220ef69776b..14306526a4e7 100644 --- a/sys/dev/sound/pci/hda/hdaa.c +++ b/sys/dev/sound/pci/hda/hdaa.c @@ -6200,7 +6200,9 @@ hdaa_configure(device_t dev) HDA_BOOTHVERBOSE( device_printf(dev, "Creating PCM devices...\n"); ); + hdaa_unlock(devinfo); hdaa_create_pcms(devinfo); + hdaa_lock(devinfo); HDA_BOOTVERBOSE( if (devinfo->quirks != 0) { From nobody Tue Apr 29 18:30:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85C0562z5vN1v; Tue, 29 Apr 2025 18:30:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85B2S9jz4HMM; Tue, 29 Apr 2025 18:30:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rFhOKJUGtbIEHygu9mFI/C1fN4fvSF3NoEcVWasaY+8=; b=nNPjv8XOi8rGHO26Gy6SFQF4eq44Z963VfKMHPCqrFcQwZJoIcyaGRSJLESe8632YbcU7Q 4NHaBV1nT7Q64uqgAcjGF8QLYBl3cZghS2PADPWLVfjQVwcD0OHqgJi5aqj47XthEVn2Ut /w02b/t6AGywzQay/S8qfbOHU/5JEiayzjOAkswnCASwR/qUl5JXxqsNROEThVGMJkUzME a2bbQr2Vsf0exmX5Xzkiu0fgmnQfWnTGyJLjdiGNloHT8mEmtBQlh/1kA/j7g3DOumh7GD PuHeKoCmHHmjllWWnhKGnXUytPFx/l0TnnxlxAn1Gm10mMD/et/8Kwj5lX4njA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951438; a=rsa-sha256; cv=none; b=DGpcBek0ZleWbAbRnG+JQc5Jcjgthx1aax3ncJJ3Yw02i36l5uwccWQ5oYdhp2ELoc7g/M FuVIwKPxxXAsO5c4iLVmvQeY2HOJEHxsJFI3+yEIlKSjgcIIcgf4PcdOEwWMu00Y4Y5Vr7 vIHUFX8sBReIDs8qV1HM0oHglSO1tUc7JJT7RJKNPE2DYPUt8yfT4DmmSsGQWZTLti5XGz Cih2e3PGtecInWcdk00TtBRor6OHPn/HSHh4FmSO76tp+PhJg2VFS9v03pnT62JoTAKgge ls+jm5cxB1lYGI83AvS4IAHWy7VVmKPDhXwJfB/WWBtdsggWDiEzhPvdbmqriw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rFhOKJUGtbIEHygu9mFI/C1fN4fvSF3NoEcVWasaY+8=; b=bRg5VJzwoZ41+8LGC60AKOPvnANhlgvnOxZgCazM3tYid27U4C0t45kF6cBDbdmunleJDT bFykxD8dE4rPBKaAzjxZMfor3KXfbKlPSl3ZDwQJr8cTDdVZqIi9ANJwVrY1bTG23vn60f O0/1aj8GxolW62EDiw3lS/3tm/hLAyUavjbZn4J7qLDEzd+1MG95hgVDyQxufyRLs9A0+f hbtJtT8O+IH+I+G4D05WJI7VlyqDkKulmSpIcQPzlx65Pksf+9+uPGdOD1YMpnfnPlQZWQ 3etHXUa01qAV1LtvoKF4lazESsAXwfm8RZ1KtNDZFl67PTDORLUdGn96vZQOdQ== 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 4Zn8594ypQzXV6; Tue, 29 Apr 2025 18:30:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUbFP022555; Tue, 29 Apr 2025 18:30:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUbb4022552; Tue, 29 Apr 2025 18:30:37 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:37 GMT Message-Id: <202504291830.53TIUbb4022552@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 50c1d075dc8e - stable/14 - pcib: Use taskqueue_bus for hot-plug events instead of a private taskqueue List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 50c1d075dc8edf43af95e29b1664d8d7e8db5528 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=50c1d075dc8edf43af95e29b1664d8d7e8db5528 commit 50c1d075dc8edf43af95e29b1664d8d7e8db5528 Author: John Baldwin AuthorDate: 2025-03-10 17:32:38 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:36:16 +0000 pcib: Use taskqueue_bus for hot-plug events instead of a private taskqueue Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49269 (cherry picked from commit b23314ecb99cedef1090bdaa486fbd25aa5a9558) --- sys/dev/pci/pci_pci.c | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index a9567b3e2c4c..eedfc671f577 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -956,8 +956,6 @@ SYSCTL_SBINTIME_MSEC(_hw_pci, OID_AUTO, pcie_hp_detach_timeout, CTLFLAG_RWTUN, &pcie_hp_detach_timeout, "Attention Button delay for PCI-express Eject."); -TASKQUEUE_DEFINE_THREAD(pci_hp); - static void pcib_probe_hotplug(struct pcib_softc *sc) { @@ -1044,7 +1042,7 @@ pcib_pcie_hotplug_command(struct pcib_softc *sc, uint16_t val, uint16_t mask) (ctl & new) & PCIEM_SLOT_CTL_CCIE) { sc->flags |= PCIB_HOTPLUG_CMD_PENDING; if (!cold) - taskqueue_enqueue_timeout(taskqueue_pci_hp, + taskqueue_enqueue_timeout(taskqueue_bus, &sc->pcie_cc_task, hz); } } @@ -1060,7 +1058,7 @@ pcib_pcie_hotplug_command_completed(struct pcib_softc *sc) device_printf(dev, "Command Completed\n"); if (!(sc->flags & PCIB_HOTPLUG_CMD_PENDING)) return; - taskqueue_cancel_timeout(taskqueue_pci_hp, &sc->pcie_cc_task, NULL); + taskqueue_cancel_timeout(taskqueue_bus, &sc->pcie_cc_task, NULL); sc->flags &= ~PCIB_HOTPLUG_CMD_PENDING; wakeup(sc); } @@ -1179,10 +1177,10 @@ pcib_pcie_hotplug_update(struct pcib_softc *sc, uint16_t val, uint16_t mask, device_printf(sc->dev, "Data Link Layer inactive\n"); else - taskqueue_enqueue_timeout(taskqueue_pci_hp, + taskqueue_enqueue_timeout(taskqueue_bus, &sc->pcie_dll_task, hz); } else if (sc->pcie_link_sta & PCIEM_LINK_STA_DL_ACTIVE) - taskqueue_cancel_timeout(taskqueue_pci_hp, &sc->pcie_dll_task, + taskqueue_cancel_timeout(taskqueue_bus, &sc->pcie_dll_task, NULL); pcib_pcie_hotplug_command(sc, val, mask); @@ -1194,7 +1192,7 @@ pcib_pcie_hotplug_update(struct pcib_softc *sc, uint16_t val, uint16_t mask, */ if (schedule_task && (pcib_hotplug_present(sc) != 0) != (sc->child != NULL)) - taskqueue_enqueue(taskqueue_pci_hp, &sc->pcie_hp_task); + taskqueue_enqueue(taskqueue_bus, &sc->pcie_hp_task); } static void @@ -1222,7 +1220,7 @@ pcib_pcie_intr_hotplug(void *arg) device_printf(dev, "Attention Button Pressed: Detach Cancelled\n"); sc->flags &= ~PCIB_DETACH_PENDING; - taskqueue_cancel_timeout(taskqueue_pci_hp, + taskqueue_cancel_timeout(taskqueue_bus, &sc->pcie_ab_task, NULL); } else if (old_slot_sta & PCIEM_SLOT_STA_PDS) { /* Only initiate detach sequence if device present. */ @@ -1231,7 +1229,7 @@ pcib_pcie_intr_hotplug(void *arg) "Attention Button Pressed: Detaching in %ld ms\n", (long)(pcie_hp_detach_timeout / SBT_1MS)); sc->flags |= PCIB_DETACH_PENDING; - taskqueue_enqueue_timeout_sbt(taskqueue_pci_hp, + taskqueue_enqueue_timeout_sbt(taskqueue_bus, &sc->pcie_ab_task, pcie_hp_detach_timeout, SBT_1S, 0); } else { @@ -1433,11 +1431,11 @@ pcib_setup_hotplug(struct pcib_softc *sc) dev = sc->dev; TASK_INIT(&sc->pcie_hp_task, 0, pcib_pcie_hotplug_task, sc); - TIMEOUT_TASK_INIT(taskqueue_pci_hp, &sc->pcie_ab_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &sc->pcie_ab_task, 0, pcib_pcie_ab_timeout, sc); - TIMEOUT_TASK_INIT(taskqueue_pci_hp, &sc->pcie_cc_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &sc->pcie_cc_task, 0, pcib_pcie_cc_timeout, sc); - TIMEOUT_TASK_INIT(taskqueue_pci_hp, &sc->pcie_dll_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &sc->pcie_dll_task, 0, pcib_pcie_dll_timeout, sc); sc->pcie_hp_lock = bus_topo_mtx(); @@ -1483,13 +1481,13 @@ pcib_detach_hotplug(struct pcib_softc *sc) /* Disable the card in the slot and force it to detach. */ if (sc->flags & PCIB_DETACH_PENDING) { sc->flags &= ~PCIB_DETACH_PENDING; - taskqueue_cancel_timeout(taskqueue_pci_hp, &sc->pcie_ab_task, + taskqueue_cancel_timeout(taskqueue_bus, &sc->pcie_ab_task, NULL); } sc->flags |= PCIB_DETACHING; if (sc->flags & PCIB_HOTPLUG_CMD_PENDING) { - taskqueue_cancel_timeout(taskqueue_pci_hp, &sc->pcie_cc_task, + taskqueue_cancel_timeout(taskqueue_bus, &sc->pcie_cc_task, NULL); tsleep(sc, 0, "hpcmd", hz); sc->flags &= ~PCIB_HOTPLUG_CMD_PENDING; @@ -1512,10 +1510,10 @@ pcib_detach_hotplug(struct pcib_softc *sc) error = pcib_release_pcie_irq(sc); if (error) return (error); - taskqueue_drain(taskqueue_pci_hp, &sc->pcie_hp_task); - taskqueue_drain_timeout(taskqueue_pci_hp, &sc->pcie_ab_task); - taskqueue_drain_timeout(taskqueue_pci_hp, &sc->pcie_cc_task); - taskqueue_drain_timeout(taskqueue_pci_hp, &sc->pcie_dll_task); + taskqueue_drain(taskqueue_bus, &sc->pcie_hp_task); + taskqueue_drain_timeout(taskqueue_bus, &sc->pcie_ab_task); + taskqueue_drain_timeout(taskqueue_bus, &sc->pcie_cc_task); + taskqueue_drain_timeout(taskqueue_bus, &sc->pcie_dll_task); return (0); } #endif From nobody Tue Apr 29 18:30:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85C4FWcz5vN65; Tue, 29 Apr 2025 18:30:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85B6tGPz4HMN; Tue, 29 Apr 2025 18:30:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951439; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cQAMI4tF643SWcVMoz6jXPO+xKFxf0TInZV4NYzSVVo=; b=fzpOgVc3/sJS0kn3rX5URqra/cwaiWV72gLeLjhg3pu4CwYASv++f1Ceh797OkJaWp8Piq ljKH+M2ZqZAWV/pmgoRaRzuVTz6WrlymNXVor6lP2EdAShunPBQUvqwm6b94TIhnpdh/44 sbt+jZmi7s+Z3ScfT4YL+JCAoN+1lVyNOOWZ+z0Mr/9VxTPuIUu1YXrTqs7hQ1E2k4uoNB HAA482A75SeKEwqHAZKxCGhAJ4fHTBjVCF76f4yDzfc+k+nzs6c+Mz/t08J4FdT1P0eIyk ev6lnKKf9F5HBiIkJncJlBWJ6GMPGK4a/SE1zkC3W5oMnqsS9hFx2AaOb0fSiA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951439; a=rsa-sha256; cv=none; b=nJCV2spMjoOSJ3+J42L6S0jKr3okE7s52lqlbORFIvxnl/yRgrKERq6+AAuRplwlxTlo6s DGzsP5NkswNxcDD5fXtgKwfSA1smqQE6coTi87hYLWpCztraghBdeuF8/0mPPLWUv2cGF6 5fKgBhKmQj2oYExdQ1ci+tM05iejNAhl8ENopwsJibG4RJDwKrEhX6EJW2T69DXlJo739f wD2LVyTRak6z/Gtnx1k0Bl8+b+53sLiaDYXJmw1CeUTI0CJihHvWzGah1/2DrrZP0OEQwr /5FnaGzG/P/3FdyhoLaoPI8no3YGsiA3Zb0FsCieYdm9/wZYPK5IA9y/SIYxyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951439; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cQAMI4tF643SWcVMoz6jXPO+xKFxf0TInZV4NYzSVVo=; b=UnBIE8T3EHAqEgLFIZubsUw5WXGuxDt07uz4E1ahy2GK3zvTUhKBdg0YgGx7ue7viBMF/Y 2OEzYP3857w4U/k3rS/a4bGOUNlBrLT3hEYlMjgV+7m8RkAU6n8QJ258rph3Y3ZqlvQ/e7 K5SY3Y/6W/wZizGfHl627OlMivioRQHV4LDFj8QU62ZXjQ0kKjKcTWXUyr1pO7YzYD1Kia MkHBoQQZtgznEhkocbBZJ/ekZzvUPKN2RVSggYRM7SMdiWxBuDiEBGX1n58wKnvaPAa20U cgWnWv0bu6LQ+xTwT5NStObRIOP8uDojVQo70MnobkQWZbH/tO6c0iT8sFlzvA== 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 4Zn85B5wpTzXb4; Tue, 29 Apr 2025 18:30:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUcSh022595; Tue, 29 Apr 2025 18:30:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUcvB022592; Tue, 29 Apr 2025 18:30:38 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:38 GMT Message-Id: <202504291830.53TIUcvB022592@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: ee08e8455170 - stable/14 - mmc: Use bus_topo_lock and taskqueue_bus while adding/removing child devices List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ee08e8455170b65b85e85aa44374494b95fc5f0c Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=ee08e8455170b65b85e85aa44374494b95fc5f0c commit ee08e8455170b65b85e85aa44374494b95fc5f0c Author: John Baldwin AuthorDate: 2025-03-10 17:32:53 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:40:47 +0000 mmc: Use bus_topo_lock and taskqueue_bus while adding/removing child devices Some drivers held regular mutexes across some new-bus calls; instead depend on bus_topo_lock to protect the relevant softc members. This also fixes the bus_topo_lock to be explicit in these drivers rather than relying on the implicit Giant from taskqueue_swi_giant. It avoids calling sleepable routines like device_probe_and_attach from an swi context. Differential Revision: https://reviews.freebsd.org/D49270 (cherry picked from commit c0bed9bd0bda2ca9239f5913cd2d5c1bd5d29bfa) --- sys/arm/allwinner/aw_mmc.c | 11 ++++------- sys/dev/mmc/host/dwmmc.c | 22 +++++++++------------- sys/dev/mmc/mmc_fdt_helpers.c | 10 +++++----- sys/dev/rtsx/rtsx.c | 18 +++++++++++------- 4 files changed, 29 insertions(+), 32 deletions(-) diff --git a/sys/arm/allwinner/aw_mmc.c b/sys/arm/allwinner/aw_mmc.c index 8b0d825e4d4f..37dc95778105 100644 --- a/sys/arm/allwinner/aw_mmc.c +++ b/sys/arm/allwinner/aw_mmc.c @@ -323,32 +323,29 @@ aw_mmc_helper_cd_handler(device_t dev, bool present) #ifdef MMCCAM mmc_cam_sim_discover(&sc->mmc_sim); #else - AW_MMC_LOCK(sc); + bus_topo_lock(); if (present) { if (sc->child == NULL) { if (__predict_false(aw_mmc_debug & AW_MMC_DEBUG_CARD)) device_printf(sc->aw_dev, "Card inserted\n"); sc->child = device_add_child(sc->aw_dev, "mmc", -1); - AW_MMC_UNLOCK(sc); if (sc->child) { device_set_ivars(sc->child, sc); (void)device_probe_and_attach(sc->child); } - } else - AW_MMC_UNLOCK(sc); + } } else { /* Card isn't present, detach if necessary */ if (sc->child != NULL) { if (__predict_false(aw_mmc_debug & AW_MMC_DEBUG_CARD)) device_printf(sc->aw_dev, "Card removed\n"); - AW_MMC_UNLOCK(sc); device_delete_child(sc->aw_dev, sc->child); sc->child = NULL; - } else - AW_MMC_UNLOCK(sc); + } } + bus_topo_unlock(); #endif /* MMCCAM */ } diff --git a/sys/dev/mmc/host/dwmmc.c b/sys/dev/mmc/host/dwmmc.c index be6f5e9de2d1..965a40f45505 100644 --- a/sys/dev/mmc/host/dwmmc.c +++ b/sys/dev/mmc/host/dwmmc.c @@ -463,10 +463,10 @@ dwmmc_handle_card_present(struct dwmmc_softc *sc, bool is_present) was_present = sc->child != NULL; if (!was_present && is_present) { - taskqueue_enqueue_timeout(taskqueue_swi_giant, + taskqueue_enqueue_timeout(taskqueue_bus, &sc->card_delayed_task, -(hz / 2)); } else if (was_present && !is_present) { - taskqueue_enqueue(taskqueue_swi_giant, &sc->card_task); + taskqueue_enqueue(taskqueue_bus, &sc->card_task); } } @@ -478,8 +478,7 @@ dwmmc_card_task(void *arg, int pending __unused) #ifdef MMCCAM mmc_cam_sim_discover(&sc->mmc_sim); #else - DWMMC_LOCK(sc); - + bus_topo_lock(); if (READ4(sc, SDMMC_CDETECT) == 0 || (sc->mmc_helper.props & MMC_PROP_BROKEN_CD)) { if (sc->child == NULL) { @@ -487,25 +486,22 @@ dwmmc_card_task(void *arg, int pending __unused) device_printf(sc->dev, "Card inserted\n"); sc->child = device_add_child(sc->dev, "mmc", -1); - DWMMC_UNLOCK(sc); if (sc->child) { device_set_ivars(sc->child, sc); (void)device_probe_and_attach(sc->child); } - } else - DWMMC_UNLOCK(sc); + } } else { /* Card isn't present, detach if necessary */ if (sc->child != NULL) { if (bootverbose) device_printf(sc->dev, "Card removed\n"); - DWMMC_UNLOCK(sc); device_delete_child(sc->dev, sc->child); sc->child = NULL; - } else - DWMMC_UNLOCK(sc); + } } + bus_topo_unlock(); #endif /* MMCCAM */ } @@ -752,7 +748,7 @@ dwmmc_attach(device_t dev) WRITE4(sc, SDMMC_CTRL, SDMMC_CTRL_INT_ENABLE); TASK_INIT(&sc->card_task, 0, dwmmc_card_task, sc); - TIMEOUT_TASK_INIT(taskqueue_swi_giant, &sc->card_delayed_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &sc->card_delayed_task, 0, dwmmc_card_task, sc); #ifdef MMCCAM @@ -783,8 +779,8 @@ dwmmc_detach(device_t dev) if (ret != 0) return (ret); - taskqueue_drain(taskqueue_swi_giant, &sc->card_task); - taskqueue_drain_timeout(taskqueue_swi_giant, &sc->card_delayed_task); + taskqueue_drain(taskqueue_bus, &sc->card_task); + taskqueue_drain_timeout(taskqueue_bus, &sc->card_delayed_task); if (sc->intr_cookie != NULL) { ret = bus_teardown_intr(dev, sc->res[1], sc->intr_cookie); diff --git a/sys/dev/mmc/mmc_fdt_helpers.c b/sys/dev/mmc/mmc_fdt_helpers.c index 30538ea20ca3..47c8c6ce1c79 100644 --- a/sys/dev/mmc/mmc_fdt_helpers.c +++ b/sys/dev/mmc/mmc_fdt_helpers.c @@ -112,7 +112,7 @@ cd_intr(void *arg) { struct mmc_helper *helper = arg; - taskqueue_enqueue_timeout(taskqueue_swi_giant, + taskqueue_enqueue_timeout(taskqueue_bus, &helper->cd_delayed_task, -(hz / 2)); } @@ -130,7 +130,7 @@ cd_card_task(void *arg, int pending __unused) /* If we're polling re-schedule the task */ if (helper->cd_ihandler == NULL) - taskqueue_enqueue_timeout_sbt(taskqueue_swi_giant, + taskqueue_enqueue_timeout_sbt(taskqueue_bus, &helper->cd_delayed_task, mstosbt(500), 0, C_PREL(2)); } @@ -146,7 +146,7 @@ cd_setup(struct mmc_helper *helper, phandle_t node) dev = helper->dev; - TIMEOUT_TASK_INIT(taskqueue_swi_giant, &helper->cd_delayed_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &helper->cd_delayed_task, 0, cd_card_task, helper); /* @@ -281,7 +281,7 @@ mmc_fdt_gpio_setup(device_t dev, phandle_t node, struct mmc_helper *helper, /* * Schedule a card detection */ - taskqueue_enqueue_timeout_sbt(taskqueue_swi_giant, + taskqueue_enqueue_timeout_sbt(taskqueue_bus, &helper->cd_delayed_task, mstosbt(500), 0, C_PREL(2)); return (0); } @@ -302,7 +302,7 @@ mmc_fdt_gpio_teardown(struct mmc_helper *helper) if (helper->cd_ires != NULL) bus_release_resource(helper->dev, SYS_RES_IRQ, 0, helper->cd_ires); - taskqueue_drain_timeout(taskqueue_swi_giant, &helper->cd_delayed_task); + taskqueue_drain_timeout(taskqueue_bus, &helper->cd_delayed_task); } bool diff --git a/sys/dev/rtsx/rtsx.c b/sys/dev/rtsx/rtsx.c index b02e7fd2d24a..461f39e3d3c4 100644 --- a/sys/dev/rtsx/rtsx.c +++ b/sys/dev/rtsx/rtsx.c @@ -634,10 +634,10 @@ rtsx_handle_card_present(struct rtsx_softc *sc) * (sometimes the card detect pin stabilizes * before the other pins have made good contact). */ - taskqueue_enqueue_timeout(taskqueue_swi_giant, + taskqueue_enqueue_timeout(taskqueue_bus, &sc->rtsx_card_insert_task, -hz); } else if (was_present && !is_present) { - taskqueue_enqueue(taskqueue_swi_giant, &sc->rtsx_card_remove_task); + taskqueue_enqueue(taskqueue_bus, &sc->rtsx_card_remove_task); } } @@ -649,6 +649,9 @@ rtsx_card_task(void *arg, int pending __unused) { struct rtsx_softc *sc = arg; +#ifndef MMCCAM + bus_topo_lock(); +#endif if (rtsx_is_card_present(sc)) { sc->rtsx_flags |= RTSX_F_CARD_PRESENT; /* Card is present, attach if necessary. */ @@ -665,9 +668,7 @@ rtsx_card_task(void *arg, int pending __unused) sc->rtsx_cam_status = 1; mmc_cam_sim_discover(&sc->rtsx_mmc_sim); #else /* !MMCCAM */ - RTSX_LOCK(sc); sc->rtsx_mmc_dev = device_add_child(sc->rtsx_dev, "mmc", -1); - RTSX_UNLOCK(sc); if (sc->rtsx_mmc_dev == NULL) { device_printf(sc->rtsx_dev, "Adding MMC bus failed\n"); } else { @@ -700,6 +701,9 @@ rtsx_card_task(void *arg, int pending __unused) #endif /* MMCCAM */ } } +#ifndef MMCCAM + bus_topo_unlock(); +#endif } static bool @@ -3690,7 +3694,7 @@ rtsx_attach(device_t dev) sc->rtsx_mem_btag = rman_get_bustag(sc->rtsx_mem_res); sc->rtsx_mem_bhandle = rman_get_bushandle(sc->rtsx_mem_res); - TIMEOUT_TASK_INIT(taskqueue_swi_giant, &sc->rtsx_card_insert_task, 0, + TIMEOUT_TASK_INIT(taskqueue_bus, &sc->rtsx_card_insert_task, 0, rtsx_card_task, sc); TASK_INIT(&sc->rtsx_card_remove_task, 0, rtsx_card_task, sc); @@ -3789,8 +3793,8 @@ rtsx_detach(device_t dev) if (error) return (error); - taskqueue_drain_timeout(taskqueue_swi_giant, &sc->rtsx_card_insert_task); - taskqueue_drain(taskqueue_swi_giant, &sc->rtsx_card_remove_task); + taskqueue_drain_timeout(taskqueue_bus, &sc->rtsx_card_insert_task); + taskqueue_drain(taskqueue_bus, &sc->rtsx_card_remove_task); /* Teardown the state in our softc created in our attach routine. */ rtsx_dma_free(sc); From nobody Tue Apr 29 18:30:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85J1tgqz5vNBQ; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85H4T9Yz4Hjt; Tue, 29 Apr 2025 18:30:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951443; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vtob700ykCrhTxgfj4xWJR4H30xstG7x7wOtHgCGXLE=; b=Xaw/z3QWnb6Y2HvXT1WGR8F73s4S/TVdKlBwEjEChYpzxJcmCxDEkc6Yi2QHqqjwnDVAHY zPIRfp4oh5TP/Sj3AdyNyv+aKxzitaIc0/U1ImJ5SGw+hq+xiEVFT9PxRkmMS4L82/euSQ +vfy2wT2TxX92KtFXPGgc/zFpqmHUOXF1rfZrzBJyIhGRIf6Ef1AVVZQ/To5UPhUc88pPk ODn6PsxaovKg/CUsJ7OVQkz7RhPLKlWIPlKsf0LFkJ0ZcIG1SwbiwWrQgX+ppR42IR5ZMV tsUzbXFMsxz2Vi31u3v/ye8ZvfpvBe+dGjzuO7EyqjBk9Hp9KFJoORxHA1DRuQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951443; a=rsa-sha256; cv=none; b=KTPSB2FmA4GFbyX6xvcoabtH2EpqR0USXbn+zk9tXOZDiCm0g3QkVQEp4k9kUexYEaWUxL 7+CJsd9cRnxDU0X40lyy1Ni/+bfOwTEubZnP1IxvxSmYsCWwWuK1QvxG9fCNGPcEGA4l9j WNJ5gri8H4jCho44ArWWxNgHbjp3yfuqY6JgiO9jzsnif36IvD9ucCTkGcKNAVWSRcjoxD 2fKBDIxFxo566jqy0MY+xybk2nCWYkdWb76Ups3W7RXFEaQvlE/z5yXhRkqj2OCboBnLND OaGlzG1oOUw1j21FlI/6L18slL/fCKp/AQvlQUWEwKQLmiRjmMIRzvQH48ydJw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951443; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Vtob700ykCrhTxgfj4xWJR4H30xstG7x7wOtHgCGXLE=; b=FRzc3DO739FvN4Gdnk43JvFyy8deHvvBOzAK3qaXgvrlYlFAkWyKNJeQgLDVeJpbfXHdrg 9KJz7n7yZ6wqb8I3ePB++cKq8LbOiA6NSwwdA93FzvCN3A+sUUxF+Ojq9aBth/ze/etiBF KhqNoCITYKaZ/pvvfF5QpFfxNF1T3JQwRLeujESEZlmkg1gj5zM7kxCEwMYWQMiWboSo2o BrI9LxU9KpQSAsZaudlO0fxVgyevrQV5sC6g++EGMjbRtottomnIjOrSkddDftefjuuhsv 9RfSGkYElqPOrEtUNQkbTdBuFSnfoF/VwyF9ZEtoNc1w4FKmxTgHtxE1EN+gXw== 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 4Zn85H1kNnzXRM; Tue, 29 Apr 2025 18:30:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUh1h022732; Tue, 29 Apr 2025 18:30:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUhD7022729; Tue, 29 Apr 2025 18:30:43 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:43 GMT Message-Id: <202504291830.53TIUhD7022729@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 7a7a7cd85090 - stable/14 - mtx: Make idle thread assertions more robust List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7a7a7cd85090784070de36771e0ceae9427cc092 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=7a7a7cd85090784070de36771e0ceae9427cc092 commit 7a7a7cd85090784070de36771e0ceae9427cc092 Author: John Baldwin AuthorDate: 2025-03-12 14:25:13 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:43:42 +0000 mtx: Make idle thread assertions more robust Just print the pointer to the mutex instead of the name in case the mutex is corrupted. Reviewed by: olce, kib Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D49314 (cherry picked from commit 0ed104978ce55ecacf42bde4458acda0cc773940) --- sys/kern/kern_mutex.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c index 11ff7e1cacc4..9bb059f13d64 100644 --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -266,8 +266,8 @@ __mtx_lock_flags(volatile uintptr_t *c, int opts, const char *file, int line) KASSERT(kdb_active != 0 || SCHEDULER_STOPPED() || !TD_IS_IDLETHREAD(curthread), - ("mtx_lock() by idle thread %p on sleep mutex %s @ %s:%d", - curthread, m->lock_object.lo_name, file, line)); + ("mtx_lock() by idle thread %p on mutex %p @ %s:%d", + curthread, m, file, line)); KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_lock() of destroyed mutex @ %s:%d", file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, @@ -428,8 +428,8 @@ _mtx_trylock_flags_int(struct mtx *m, int opts LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(td), - ("mtx_trylock() by idle thread %p on sleep mutex %s @ %s:%d", - curthread, m->lock_object.lo_name, file, line)); + ("mtx_trylock() by idle thread %p on mutex %p @ %s:%d", + curthread, m, file, line)); KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_trylock() of destroyed mutex @ %s:%d", file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, From nobody Tue Apr 29 18:30:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85G6VXwz5vMvp; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85G2b0pz4Hjh; Tue, 29 Apr 2025 18:30:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lQIzibU/+P6/IqWAsqY7ycfXs3prHM8rPpWpCmITk6Q=; b=P3ItA54xPyRl6maNNO5bqpW89urNvj5X3Ph5scnp9ZZEJ7h368Sg+D2rF2UOGzORoXcIo0 ZdDCM1PLcFHq/XWSVEtds19hjR4FKH8wFkY+VcVw1Sk+UcADyTEVQ+Oi2n+UQK6qXAjWPq tK/lQB0K+AwAIfg0/ykMQV7dZ7azi7rjxX2XDap2jBshU9iFMWjpiUnXY1PygkV30pPXOn F6J3OR0fTjwqjwwgI7QW7mZwjMKsf4XZu6XU0wnVm0oxuMl6+isfKNaIluZ4O03XXvfgKt oJcd6fkwgtUZA+q6wuxH/jvUAoWElYSCeDwDgVGZ4nAm/IlpuG36WGtiPT1GkA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951442; a=rsa-sha256; cv=none; b=bgY1JST1NsFR/uCWz/qNDTJ7QGqztEiKbtlEV88/+DNo1Jxu5Xr7hs3eFQyAgsVN7OdzSn vAz0JZDeGhTGr439H6khsySD95iHv76x+gdM2eTORNWXy1z+ig+yWVILoI5+v8Hh+eg5Uj WL/NaeW1MgyRcLSpDCxhUJBslbWPo2PByWAiVL5B3XkR5e1+JAs9OQH8jfg9HYaj0aEIeC 0NDVhulPjte5lir1aAUiONx3xCJvRfv2+ePHvvPxXbXIT76xTxaa87AogYw/TLlt7IO9EQ Vi76yqdhm+qwmN7goK+JO4BRDuZDznxj7VxrgGfR+F+f/9egOI7i4TfVAGOj9A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lQIzibU/+P6/IqWAsqY7ycfXs3prHM8rPpWpCmITk6Q=; b=aiXD9ZzBhRuF4GqtOexz5trQ/N94//YIWRG9k8Z1EpXHp5N5pmYmwyMVBjgYXGmXDIGviU ehnbP9en6kdBacqh+Z+v0tYv4EWQuNdXLuZLMSLPs+KeFEHqUobXkFuLOFz/0u+S9f2R/R oXeXuQWEzGXhD2R4N07DgUu0DhEWh9qmpS8m/ZC5IxJy/1KcfZHKKAGTIffKaVHkftIEGR JcVXZxg+cv/84z98GMvrN+ljaEVzkpBykXs56tgbbASikLp1d/LZIDn5JqB0U/nBmHu7Ad NJWBwZy6RPQr+kQ9sy0VVBQ+KsRbWQCuSCuPwu9GTkIP+LSEpeZ0E9KFOiFZQw== 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 4Zn85G16tQzXqW; Tue, 29 Apr 2025 18:30:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUgnD022699; Tue, 29 Apr 2025 18:30:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUgwv022696; Tue, 29 Apr 2025 18:30:42 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:42 GMT Message-Id: <202504291830.53TIUgwv022696@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 27fb895f9e81 - stable/14 - mtx: Avoid nested panics on lock class mismatch assertions List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 27fb895f9e81c57378f39d705e8a34caffaa9e93 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=27fb895f9e81c57378f39d705e8a34caffaa9e93 commit 27fb895f9e81c57378f39d705e8a34caffaa9e93 Author: John Baldwin AuthorDate: 2025-03-12 14:24:35 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:43:36 +0000 mtx: Avoid nested panics on lock class mismatch assertions It is only (somewhat) safe to dereference lo_name if we know the mutex has a specific lock class that is incorrect, not if just has "some" incorrect lock class. In particular, in the case of memory overwritten with 0xdeadc0de, the lock class won't match either mutex type. However, trying to dereference lo_name via a 0xdeadc0de pointer triggers a nested panic building the panicstr which then prevents a crash dump. Reviewed by: olce, kib, markj Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D49313 (cherry picked from commit dba45599c498deed01e1c98acef74e183c1bbf8d) --- sys/kern/kern_mutex.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c index 7f348530ed31..11ff7e1cacc4 100644 --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -270,7 +270,7 @@ __mtx_lock_flags(volatile uintptr_t *c, int opts, const char *file, int line) curthread, m->lock_object.lo_name, file, line)); KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_lock() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_sleep, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, ("mtx_lock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); WITNESS_CHECKORDER(&m->lock_object, (opts & ~MTX_RECURSE) | @@ -299,7 +299,7 @@ __mtx_unlock_flags(volatile uintptr_t *c, int opts, const char *file, int line) KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_unlock() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_sleep, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, ("mtx_unlock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); WITNESS_UNLOCK(&m->lock_object, opts | LOP_EXCLUSIVE, file, line); @@ -328,7 +328,7 @@ __mtx_lock_spin_flags(volatile uintptr_t *c, int opts, const char *file, KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_lock_spin() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_spin, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("mtx_lock_spin() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); if (mtx_owned(m)) @@ -369,7 +369,7 @@ __mtx_trylock_spin_flags(volatile uintptr_t *c, int opts, const char *file, KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_trylock_spin() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_spin, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("mtx_trylock_spin() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); KASSERT((opts & MTX_RECURSE) == 0, @@ -394,7 +394,7 @@ __mtx_unlock_spin_flags(volatile uintptr_t *c, int opts, const char *file, KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_unlock_spin() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_spin, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("mtx_unlock_spin() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); WITNESS_UNLOCK(&m->lock_object, opts | LOP_EXCLUSIVE, file, line); @@ -432,7 +432,7 @@ _mtx_trylock_flags_int(struct mtx *m, int opts LOCK_FILE_LINE_ARG_DEF) curthread, m->lock_object.lo_name, file, line)); KASSERT(m->mtx_lock != MTX_DESTROYED, ("mtx_trylock() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_sleep, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, ("mtx_trylock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -806,7 +806,7 @@ thread_lock_validate(struct mtx *m, int opts, const char *file, int line) KASSERT(m->mtx_lock != MTX_DESTROYED, ("thread_lock() of destroyed mutex @ %s:%d", file, line)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_spin, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("thread_lock() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); KASSERT((m->lock_object.lo_flags & LO_RECURSABLE) == 0, @@ -1263,7 +1263,7 @@ mtx_spin_wait_unlocked(struct mtx *m) KASSERT(m->mtx_lock != MTX_DESTROYED, ("%s() of destroyed mutex %p", __func__, m)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_spin, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("%s() of sleep mutex %p (%s)", __func__, m, m->lock_object.lo_name)); KASSERT(!mtx_owned(m), ("%s() waiting on myself on lock %p (%s)", __func__, m, @@ -1289,8 +1289,8 @@ mtx_wait_unlocked(struct mtx *m) KASSERT(m->mtx_lock != MTX_DESTROYED, ("%s() of destroyed mutex %p", __func__, m)); - KASSERT(LOCK_CLASS(&m->lock_object) == &lock_class_mtx_sleep, - ("%s() not a sleep mutex %p (%s)", __func__, m, + KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, + ("%s() of spin mutex %p (%s)", __func__, m, m->lock_object.lo_name)); KASSERT(!mtx_owned(m), ("%s() waiting on myself on lock %p (%s)", __func__, m, m->lock_object.lo_name)); From nobody Tue Apr 29 18:30:44 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85K0vS6z5vN6D; Tue, 29 Apr 2025 18:30:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85J3hNzz4HYL; Tue, 29 Apr 2025 18:30:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951444; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s6j5ydyGAaxqa8OFGcdA0217tbmcNCx6N1iNeSe0b9I=; b=xgcLd1s4YkW3xs958SDmTcMSiC0XI0NICY4hKp2edkfSFctFKQnBs6nImfmKcSquKg8+d/ Z78SCn3A7XCmvzdYzzRWrcuD5L1NLsDOGLPApvOYp0gUrrpBZCNdOP0PUIW09HDnvADEex 4Ah3jvM18vwaFKClnirzfyJTff8m8ngVOiHpaBqOBUUyLpE+xVtYozJdr3aYaW4mCCisqt WgidSNXr1fxIXfAK4mhDYGsCzrYJ2ulfVNI0MeR7iljCc7duNwpGoNGEmmGKLpluBqAATQ 9dtG5dyPvQH65J/jeTdQgmESxsvm3JZxIj+issnkWekxC/WXPMnqwJcumwquMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951444; a=rsa-sha256; cv=none; b=DG3t0/7lnIGlbpVu8oyxttY4Mkk6G37qpnHYAcHPqa0qCpsezGQI0PU9NpggOsaAMN7OE+ IrnOo7s79saEvdMFfXngVtCspJLs0v1LnwGySVWmYLeAy9E5k4n9JnP5RajhqRxYDHB0dJ qIuAmlwapVM1gznAIv7/mq82fKd7LRkrKLzOt3RqnHR8Yzp/3KbKfCmVwWrJeSmFwqmk4t jsmDY3Pi5oBkaXTHeGlH6UwpEjTywvxhYGs86HUxjxQTsRSqdaq/N5zbwjOwx5WqrnHv/u aq9f+OFWz4f7IvISnPSsYnEoc5kBRnUfH0Vq+QrT6P8jXMlmiabdpFGlq2WWsg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951444; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s6j5ydyGAaxqa8OFGcdA0217tbmcNCx6N1iNeSe0b9I=; b=jgYzZ05cVfGjk2977ZbYiF2lTpiKHOSoEiX7HdFnCFlWvzQdFJOeNXle8vkUqOO1WKE8Wj TI2YnJ1KCWazDfOm1i5bo3Yv3koQpFpwvyxvqbGMgU9rIKpMMY1ItJQQ7K8TnYUra9mUOo 5tJdwiSIiIUQO7Umh/w+AZmNSAlsfk4PalTJYhZwF/Xyg6fkaIxBo+Fn2C/6+hvn7XQATU 0e0Gz8Mqk+u/BQcCeY+n09SJmRZoLX04eSMxS3wnet0WpiCTdvDnDayxDblvYqeH8ald35 01wFyeh/+HyydcZE1F8pOnEVPhaOhlLi3XY5wSRop+mOF2sgNkEi9KjHyiq6qA== 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 4Zn85J2nnYzXmy; Tue, 29 Apr 2025 18:30:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUiGc022771; Tue, 29 Apr 2025 18:30:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUiKd022768; Tue, 29 Apr 2025 18:30:44 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:44 GMT Message-Id: <202504291830.53TIUiKd022768@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: d9ce37179a2f - stable/14 - mtx: Include the mutex pointer in the panic message for destroyed locks List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d9ce37179a2f738feacf5eb9af0d394fc5882543 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=d9ce37179a2f738feacf5eb9af0d394fc5882543 commit d9ce37179a2f738feacf5eb9af0d394fc5882543 Author: John Baldwin AuthorDate: 2025-03-12 14:26:50 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:43:48 +0000 mtx: Include the mutex pointer in the panic message for destroyed locks Reviewed by: olce, kib, markj Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D49315 (cherry picked from commit 43a15a22c62345091fc4a2ea2bec529acda7c61f) --- sys/kern/kern_mutex.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/sys/kern/kern_mutex.c b/sys/kern/kern_mutex.c index 9bb059f13d64..3a8afdcad338 100644 --- a/sys/kern/kern_mutex.c +++ b/sys/kern/kern_mutex.c @@ -269,7 +269,7 @@ __mtx_lock_flags(volatile uintptr_t *c, int opts, const char *file, int line) ("mtx_lock() by idle thread %p on mutex %p @ %s:%d", curthread, m, file, line)); KASSERT(m->mtx_lock != MTX_DESTROYED, - ("mtx_lock() of destroyed mutex @ %s:%d", file, line)); + ("mtx_lock() of destroyed mutex %p @ %s:%d", m, file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, ("mtx_lock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -298,7 +298,7 @@ __mtx_unlock_flags(volatile uintptr_t *c, int opts, const char *file, int line) m = mtxlock2mtx(c); KASSERT(m->mtx_lock != MTX_DESTROYED, - ("mtx_unlock() of destroyed mutex @ %s:%d", file, line)); + ("mtx_unlock() of destroyed mutex %p @ %s:%d", m, file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, ("mtx_unlock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -327,7 +327,7 @@ __mtx_lock_spin_flags(volatile uintptr_t *c, int opts, const char *file, m = mtxlock2mtx(c); KASSERT(m->mtx_lock != MTX_DESTROYED, - ("mtx_lock_spin() of destroyed mutex @ %s:%d", file, line)); + ("mtx_lock_spin() of destroyed mutex %p @ %s:%d", m, file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("mtx_lock_spin() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -368,7 +368,8 @@ __mtx_trylock_spin_flags(volatile uintptr_t *c, int opts, const char *file, m = mtxlock2mtx(c); KASSERT(m->mtx_lock != MTX_DESTROYED, - ("mtx_trylock_spin() of destroyed mutex @ %s:%d", file, line)); + ("mtx_trylock_spin() of destroyed mutex %p @ %s:%d", m, file, + line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("mtx_trylock_spin() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -393,7 +394,8 @@ __mtx_unlock_spin_flags(volatile uintptr_t *c, int opts, const char *file, m = mtxlock2mtx(c); KASSERT(m->mtx_lock != MTX_DESTROYED, - ("mtx_unlock_spin() of destroyed mutex @ %s:%d", file, line)); + ("mtx_unlock_spin() of destroyed mutex %p @ %s:%d", m, file, + line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("mtx_unlock_spin() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -431,7 +433,7 @@ _mtx_trylock_flags_int(struct mtx *m, int opts LOCK_FILE_LINE_ARG_DEF) ("mtx_trylock() by idle thread %p on mutex %p @ %s:%d", curthread, m, file, line)); KASSERT(m->mtx_lock != MTX_DESTROYED, - ("mtx_trylock() of destroyed mutex @ %s:%d", file, line)); + ("mtx_trylock() of destroyed mutex %p @ %s:%d", m, file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_spin, ("mtx_trylock() of spin mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); @@ -805,7 +807,7 @@ thread_lock_validate(struct mtx *m, int opts, const char *file, int line) { KASSERT(m->mtx_lock != MTX_DESTROYED, - ("thread_lock() of destroyed mutex @ %s:%d", file, line)); + ("thread_lock() of destroyed mutex %p @ %s:%d", m, file, line)); KASSERT(LOCK_CLASS(&m->lock_object) != &lock_class_mtx_sleep, ("thread_lock() of sleep mutex %s @ %s:%d", m->lock_object.lo_name, file, line)); From nobody Tue Apr 29 18:30:45 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85L4blbz5vMt2; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85K3nKCz4HW6; Tue, 29 Apr 2025 18:30:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951445; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p6HhnwEXlrlet9ckgmPJ1sU41vBGoLtKZfkXchXqCJ0=; b=Hf/6I5uz8pm3Tc/ssI41ZC+2EcN9VwDSpFZIZ63FZKJNyuM1744bYs+y6OSI4VOxKa9nfy qeXjbfCPphWCdFLCC1LOSTgktEfqFSIQ+HiGPHFPdnXVY6OzNYCYTcZlW47l7zjvQOOBd4 E7CphfJxIGUyDABoQ0CXTLPQ8ljNTqQ6ahlMIyvVuLr1Sye0w3KXP2AZMP4dMSxfZcH+tV sTdDoPNarCXWOC97xitB4oBSODuhDs+74a5go2r/Oqp8UR8TyCqbBeu330AquP7kPX+6+G iXv0W71h6fa7Cw9TS30nPQZKMVHr+EX1ZURjMtqVx0U06HHYmLBBRF9Ro673lg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951445; a=rsa-sha256; cv=none; b=jkm4vBpEPuuCZRE7Gfl++CrFEuZlm41s7bx/QDknWTTyuSL40mQhs/+1Zp2qDEsQqrbj5z KLVui5QnciCo/n0wYDnfIiwoaiStxJepTdphO6R8c2S59tZzoWXWneZxzkpz6z8/lus4Zl 6MUP/bTWPdVJ2rcmcrqYfMHd6X3lCbjUucWNZcFHcAgffDIFBwWTFmSpPM0ODwmGP7rmht XOq8d2NHFHxjN8jEKxWJXhxsHp8kES9lBP4nYaPqZ3brbdjyRXAK8nNYHfi9ybnjLGmwII 4zigHIzbERxvMYPdMiioAiPsdiIcGmUV5dHCdEs3SLGyqE/P7trQ0McMxQIIXw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951445; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p6HhnwEXlrlet9ckgmPJ1sU41vBGoLtKZfkXchXqCJ0=; b=ywX3StU8BnRj2o205DVWV1xm84w9k6kOGD0xsb2oUn3qtj20nb9K4xwNXZC/pIeAFy3WW/ arJ3uJZ2Jy+AqSyWaUPIEhdCNXuj8MhjEMmxNwuyz3FvCB5XuZk/Aa6AJVutzqYAgxmctW xj82qw5Bxr/QK5qzHuR6iYnIDsTse2pVbWSVa7tZd1VQoR2hsltmMpc+mfxzttbSgAOc6c 0I6W6TXvX57SoKopo+MD2aRTdibWCUsXfjEvT2jUEyxNVlqW5ZteHwIrsQEcScc8FeNvo8 B9q/YGLddTiU1LEx15RTEqbYjtNulbjgyAgu+jdCkx4EzYXPCob02LIXQgk1Ow== 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 4Zn85K3Ng4zXb6; Tue, 29 Apr 2025 18:30:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUjNo022804; Tue, 29 Apr 2025 18:30:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUjMg022801; Tue, 29 Apr 2025 18:30:45 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:45 GMT Message-Id: <202504291830.53TIUjMg022801@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 33bf58fbd8e5 - stable/14 - lockmgr/rmlock/rwlock/sx: Make various assertions more robust List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 33bf58fbd8e53c0313f7e8ada014a53527011c4f Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=33bf58fbd8e53c0313f7e8ada014a53527011c4f commit 33bf58fbd8e53c0313f7e8ada014a53527011c4f Author: John Baldwin AuthorDate: 2025-03-13 16:54:16 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:44:01 +0000 lockmgr/rmlock/rwlock/sx: Make various assertions more robust Print pointers to locks instead of their names to avoid a nested panic if the lock object is corrupted. Reviewed by: markj Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D49331 (cherry picked from commit a52a51a2d5900e475c3dc6203e09a376316ce90f) --- sys/kern/kern_lock.c | 4 ++-- sys/kern/kern_rmlock.c | 12 ++++++------ sys/kern/kern_rwlock.c | 24 ++++++++++++------------ sys/kern/kern_sx.c | 20 ++++++++++---------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/sys/kern/kern_lock.c b/sys/kern/kern_lock.c index 90b15e393f72..1dddbbacdc5d 100644 --- a/sys/kern/kern_lock.c +++ b/sys/kern/kern_lock.c @@ -1343,8 +1343,8 @@ __lockmgr_args(struct lock *lk, u_int flags, struct lock_object *ilk, ("%s: LK_INTERLOCK passed without valid interlock @ %s:%d", __func__, file, line)); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(curthread), - ("%s: idle thread %p on lockmgr %s @ %s:%d", __func__, curthread, - lk->lock_object.lo_name, file, line)); + ("%s: idle thread %p on lockmgr %p @ %s:%d", __func__, curthread, + lk, file, line)); class = (flags & LK_INTERLOCK) ? LOCK_CLASS(ilk) : NULL; diff --git a/sys/kern/kern_rmlock.c b/sys/kern/kern_rmlock.c index 6c7b78a0586d..bdee79e2cf1a 100644 --- a/sys/kern/kern_rmlock.c +++ b/sys/kern/kern_rmlock.c @@ -598,8 +598,8 @@ _rm_wlock_debug(struct rmlock *rm, const char *file, int line) return; KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(curthread), - ("rm_wlock() by idle thread %p on rmlock %s @ %s:%d", - curthread, rm->lock_object.lo_name, file, line)); + ("rm_wlock() by idle thread %p on rmlock %p @ %s:%d", + curthread, rm, file, line)); KASSERT(!rm_destroyed(rm), ("rm_wlock() of destroyed rmlock @ %s:%d", file, line)); _rm_assert(rm, RA_UNLOCKED, file, line); @@ -643,14 +643,14 @@ _rm_rlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, critical_enter(); KASSERT(rm_trackers_present(get_pcpu(), rm, curthread) == 0, - ("rm_rlock: recursed on non-recursive rmlock %s @ %s:%d\n", - rm->lock_object.lo_name, file, line)); + ("rm_rlock: recursed on non-recursive rmlock %p @ %s:%d\n", + rm, file, line)); critical_exit(); } #endif KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(curthread), - ("rm_rlock() by idle thread %p on rmlock %s @ %s:%d", - curthread, rm->lock_object.lo_name, file, line)); + ("rm_rlock() by idle thread %p on rmlock %p @ %s:%d", + curthread, rm, file, line)); KASSERT(!rm_destroyed(rm), ("rm_rlock() of destroyed rmlock @ %s:%d", file, line)); if (!trylock) { diff --git a/sys/kern/kern_rwlock.c b/sys/kern/kern_rwlock.c index 5705de0f311f..d6fab5ba35bb 100644 --- a/sys/kern/kern_rwlock.c +++ b/sys/kern/kern_rwlock.c @@ -278,8 +278,8 @@ _rw_wlock_cookie(volatile uintptr_t *c, const char *file, int line) KASSERT(kdb_active != 0 || SCHEDULER_STOPPED() || !TD_IS_IDLETHREAD(curthread), - ("rw_wlock() by idle thread %p on rwlock %s @ %s:%d", - curthread, rw->lock_object.lo_name, file, line)); + ("rw_wlock() by idle thread %p on rwlock %p @ %s:%d", + curthread, rw, file, line)); KASSERT(rw->rw_lock != RW_DESTROYED, ("rw_wlock() of destroyed rwlock @ %s:%d", file, line)); WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, file, @@ -311,8 +311,8 @@ __rw_try_wlock_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(td), - ("rw_try_wlock() by idle thread %p on rwlock %s @ %s:%d", - curthread, rw->lock_object.lo_name, file, line)); + ("rw_try_wlock() by idle thread %p on rwlock %p @ %s:%d", + curthread, rw, file, line)); KASSERT(rw->rw_lock != RW_DESTROYED, ("rw_try_wlock() of destroyed rwlock @ %s:%d", file, line)); @@ -665,13 +665,13 @@ __rw_rlock_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) KASSERT(kdb_active != 0 || SCHEDULER_STOPPED_TD(td) || !TD_IS_IDLETHREAD(td), - ("rw_rlock() by idle thread %p on rwlock %s @ %s:%d", - td, rw->lock_object.lo_name, file, line)); + ("rw_rlock() by idle thread %p on rwlock %p @ %s:%d", + td, rw, file, line)); KASSERT(rw->rw_lock != RW_DESTROYED, ("rw_rlock() of destroyed rwlock @ %s:%d", file, line)); KASSERT(rw_wowner(rw) != td, - ("rw_rlock: wlock already held for %s @ %s:%d", - rw->lock_object.lo_name, file, line)); + ("rw_rlock: wlock already held for %p @ %s:%d", + rw, file, line)); WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER, file, line, NULL); v = RW_READ_VALUE(rw); @@ -705,8 +705,8 @@ __rw_try_rlock_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(curthread), - ("rw_try_rlock() by idle thread %p on rwlock %s @ %s:%d", - curthread, rw->lock_object.lo_name, file, line)); + ("rw_try_rlock() by idle thread %p on rwlock %p @ %s:%d", + curthread, rw, file, line)); x = rw->rw_lock; for (;;) { @@ -951,8 +951,8 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t v LOCK_FILE_LINE_ARG_DEF) if (__predict_false(lv_rw_wowner(v) == (struct thread *)tid)) { KASSERT(rw->lock_object.lo_flags & LO_RECURSABLE, - ("%s: recursing but non-recursive rw %s @ %s:%d\n", - __func__, rw->lock_object.lo_name, file, line)); + ("%s: recursing but non-recursive rw %p @ %s:%d\n", + __func__, rw, file, line)); rw->rw_recurse++; atomic_set_ptr(&rw->rw_lock, RW_LOCK_WRITER_RECURSED); if (LOCK_LOG_TEST(&rw->lock_object, 0)) diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c index 81e46fceed5e..ecac40217738 100644 --- a/sys/kern/kern_sx.c +++ b/sys/kern/kern_sx.c @@ -279,8 +279,8 @@ sx_try_slock_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(curthread), - ("sx_try_slock() by idle thread %p on sx %s @ %s:%d", - curthread, sx->lock_object.lo_name, file, line)); + ("sx_try_slock() by idle thread %p on sx %p @ %s:%d", + curthread, sx, file, line)); x = sx->sx_lock; for (;;) { @@ -318,8 +318,8 @@ _sx_xlock(struct sx *sx, int opts, const char *file, int line) KASSERT(kdb_active != 0 || SCHEDULER_STOPPED() || !TD_IS_IDLETHREAD(curthread), - ("sx_xlock() by idle thread %p on sx %s @ %s:%d", - curthread, sx->lock_object.lo_name, file, line)); + ("sx_xlock() by idle thread %p on sx %p @ %s:%d", + curthread, sx, file, line)); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, ("sx_xlock() of destroyed sx @ %s:%d", file, line)); WITNESS_CHECKORDER(&sx->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, file, @@ -355,8 +355,8 @@ sx_try_xlock_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(kdb_active != 0 || !TD_IS_IDLETHREAD(td), - ("sx_try_xlock() by idle thread %p on sx %s @ %s:%d", - curthread, sx->lock_object.lo_name, file, line)); + ("sx_try_xlock() by idle thread %p on sx %p @ %s:%d", + curthread, sx, file, line)); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, ("sx_try_xlock() of destroyed sx @ %s:%d", file, line)); @@ -624,8 +624,8 @@ _sx_xlock_hard(struct sx *sx, uintptr_t x, int opts LOCK_FILE_LINE_ARG_DEF) /* If we already hold an exclusive lock, then recurse. */ if (__predict_false(lv_sx_owner(x) == (struct thread *)tid)) { KASSERT((sx->lock_object.lo_flags & LO_RECURSABLE) != 0, - ("_sx_xlock_hard: recursed on non-recursive sx %s @ %s:%d\n", - sx->lock_object.lo_name, file, line)); + ("_sx_xlock_hard: recursed on non-recursive sx %p @ %s:%d\n", + sx, file, line)); sx->sx_recurse++; atomic_set_ptr(&sx->sx_lock, SX_LOCK_RECURSED); if (LOCK_LOG_TEST(&sx->lock_object, 0)) @@ -1257,8 +1257,8 @@ _sx_slock_int(struct sx *sx, int opts LOCK_FILE_LINE_ARG_DEF) KASSERT(kdb_active != 0 || SCHEDULER_STOPPED() || !TD_IS_IDLETHREAD(curthread), - ("sx_slock() by idle thread %p on sx %s @ %s:%d", - curthread, sx->lock_object.lo_name, file, line)); + ("sx_slock() by idle thread %p on sx %p @ %s:%d", + curthread, sx, file, line)); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, ("sx_slock() of destroyed sx @ %s:%d", file, line)); WITNESS_CHECKORDER(&sx->lock_object, LOP_NEWORDER, file, line, NULL); From nobody Tue Apr 29 18:30:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85N5XRdz5vMt5; Tue, 29 Apr 2025 18:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85L5Yqbz4Hhj; Tue, 29 Apr 2025 18:30:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QdsCqc+fj4exZmnSxw0HrReea8IbGAE+6+s/eqbnHps=; b=G2z46Idy+lpNoAtwm+J7N+/7RxS+RtUAh+DbjwWFZDrc1HVuBje5biJutPu7vjCkRk9Yzo mV95345S0GAKEDLDmdQEmyM2Hx/it7RlonvkiKJ/10CMH2kSNFUl4NCMAsHlQj2ep2KXpb a3wlEYkLkUujNB5Ykf1qe2drrStsVZxOzYHAPdxRvYlFywvuuDj966UAooZRqzg3KPldPH rKnVBAxiip18QFk+3FhdZAxStv5w1kul7SPIM3ojTEOKZ73b2eAKUROVFXLmRbHOpj3F66 EXuBCMbRAYQ9WyXaqh8w+wZN/Dzvj3ERpRTwjn2G2yh4tzvGtKhRRF35WDtO7g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951446; a=rsa-sha256; cv=none; b=wW1xxgNSZK0MdsQ5u0S+bv9Nb/7pJ49TI2qdx9tVSrPJXzNz006mZuli7/o/0t8xTy4hW+ Mn9Ox4dSnhonsDjMm6kRrUF1MTqXM4RomWEv9LZ1JzaobGj5D+uyaduqfI9bdEU0vi21P0 kGRpvNjcDFWvt/ko2qyOP8OcPnc6jHqPxF5/pld8YZwyet3JNH8dYI5NCmsA7TS638rf3r Cgg/PXACrs93aqVqdUAJmiFJSGHZaEMp6ydAkVP8UcU3CgjIvBnebnUeOjFR4I0kj9cILP CUn0F/E2+JhZz8vUvHrJ4aEgYJC5djk4/E/0uoabfSf4oe+jXHntlKAsWr1I0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QdsCqc+fj4exZmnSxw0HrReea8IbGAE+6+s/eqbnHps=; b=s6gD6sFdwUBOkzNJ3BrseiOJCFhRnECOeRYexfEmA/ZIzfXG6ZnaXgvWNCy36lwBZ/6gx4 pwgmUW4IPAsOgY6nY1HRkKfwh6wHFl+roQfJxmpr0LTNQSyJgb7XuDv+osSeu6doW7KkLz UkhE1Nnhs+2y0i331Q2qBWtHpqInMWYNESueoUS4A2KPcgrc2S1+SxxMwc4nqQ7wXKUA6R VKrldEUdDMEf5pi57zIKk76+lWPXIZG2ylCuu4VZNlKvNT+xxPumQz85YUkucmZgo5vdYn 4bq4sMDUpszT7nQ0DNOaCzktzrt+NPRjW+CoFQtfEnxscGSeE3u6W5ZgqDpj3w== 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 4Zn85L4g72zXn2; Tue, 29 Apr 2025 18:30:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUk8q022838; Tue, 29 Apr 2025 18:30:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUk79022835; Tue, 29 Apr 2025 18:30:46 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:46 GMT Message-Id: <202504291830.53TIUk79022835@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 6fb471682aa9 - stable/14 - rwmlock/rwlock/sx: Print the pointer of destroyed locks in panic messages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6fb471682aa9198fb187f2718dd291f09d96cf2b Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=6fb471682aa9198fb187f2718dd291f09d96cf2b commit 6fb471682aa9198fb187f2718dd291f09d96cf2b Author: John Baldwin AuthorDate: 2025-03-13 16:54:40 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:44:08 +0000 rwmlock/rwlock/sx: Print the pointer of destroyed locks in panic messages Suggested by: markj Reviewed by: kib, markj Sponsored by: AFRL, DARPA Differential Revision: https://reviews.freebsd.org/D49332 (cherry picked from commit 00d78c500783fc91512b3c0d231029ac75a131d9) --- sys/kern/kern_rmlock.c | 8 ++++---- sys/kern/kern_rwlock.c | 18 ++++++++++-------- sys/kern/kern_sx.c | 17 +++++++++-------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/sys/kern/kern_rmlock.c b/sys/kern/kern_rmlock.c index bdee79e2cf1a..0867e9e14fee 100644 --- a/sys/kern/kern_rmlock.c +++ b/sys/kern/kern_rmlock.c @@ -601,7 +601,7 @@ _rm_wlock_debug(struct rmlock *rm, const char *file, int line) ("rm_wlock() by idle thread %p on rmlock %p @ %s:%d", curthread, rm, file, line)); KASSERT(!rm_destroyed(rm), - ("rm_wlock() of destroyed rmlock @ %s:%d", file, line)); + ("rm_wlock() of destroyed rmlock %p @ %s:%d", rm, file, line)); _rm_assert(rm, RA_UNLOCKED, file, line); WITNESS_CHECKORDER(&rm->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, @@ -622,7 +622,7 @@ _rm_wunlock_debug(struct rmlock *rm, const char *file, int line) return; KASSERT(!rm_destroyed(rm), - ("rm_wunlock() of destroyed rmlock @ %s:%d", file, line)); + ("rm_wunlock() of destroyed rmlock %p @ %s:%d", rm, file, line)); _rm_assert(rm, RA_WLOCKED, file, line); WITNESS_UNLOCK(&rm->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("RMWUNLOCK", &rm->lock_object, 0, 0, file, line); @@ -652,7 +652,7 @@ _rm_rlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, ("rm_rlock() by idle thread %p on rmlock %p @ %s:%d", curthread, rm, file, line)); KASSERT(!rm_destroyed(rm), - ("rm_rlock() of destroyed rmlock @ %s:%d", file, line)); + ("rm_rlock() of destroyed rmlock %p @ %s:%d", rm, file, line)); if (!trylock) { KASSERT(!rm_wowned(rm), ("rm_rlock: wlock already held for %s @ %s:%d", @@ -686,7 +686,7 @@ _rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, return; KASSERT(!rm_destroyed(rm), - ("rm_runlock() of destroyed rmlock @ %s:%d", file, line)); + ("rm_runlock() of destroyed rmlock %p @ %s:%d", rm, file, line)); _rm_assert(rm, RA_RLOCKED, file, line); WITNESS_UNLOCK(&rm->lock_object, 0, file, line); LOCK_LOG_LOCK("RMRUNLOCK", &rm->lock_object, 0, 0, file, line); diff --git a/sys/kern/kern_rwlock.c b/sys/kern/kern_rwlock.c index d6fab5ba35bb..dc2b9892cecd 100644 --- a/sys/kern/kern_rwlock.c +++ b/sys/kern/kern_rwlock.c @@ -281,7 +281,7 @@ _rw_wlock_cookie(volatile uintptr_t *c, const char *file, int line) ("rw_wlock() by idle thread %p on rwlock %p @ %s:%d", curthread, rw, file, line)); KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_wlock() of destroyed rwlock @ %s:%d", file, line)); + ("rw_wlock() of destroyed rwlock %p @ %s:%d", rw, file, line)); WITNESS_CHECKORDER(&rw->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, file, line, NULL); tid = (uintptr_t)curthread; @@ -314,7 +314,7 @@ __rw_try_wlock_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) ("rw_try_wlock() by idle thread %p on rwlock %p @ %s:%d", curthread, rw, file, line)); KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_try_wlock() of destroyed rwlock @ %s:%d", file, line)); + ("rw_try_wlock() of destroyed rwlock %p @ %s:%d", rw, file, line)); rval = 1; recursed = false; @@ -362,7 +362,7 @@ _rw_wunlock_cookie(volatile uintptr_t *c, const char *file, int line) rw = rwlock2rw(c); KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_wunlock() of destroyed rwlock @ %s:%d", file, line)); + ("rw_wunlock() of destroyed rwlock %p @ %s:%d", rw, file, line)); __rw_assert(c, RA_WLOCKED, file, line); WITNESS_UNLOCK(&rw->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("WUNLOCK", &rw->lock_object, 0, rw->rw_recurse, file, @@ -668,7 +668,7 @@ __rw_rlock_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) ("rw_rlock() by idle thread %p on rwlock %p @ %s:%d", td, rw, file, line)); KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_rlock() of destroyed rwlock @ %s:%d", file, line)); + ("rw_rlock() of destroyed rwlock %p @ %s:%d", rw, file, line)); KASSERT(rw_wowner(rw) != td, ("rw_rlock: wlock already held for %p @ %s:%d", rw, file, line)); @@ -711,7 +711,8 @@ __rw_try_rlock_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) x = rw->rw_lock; for (;;) { KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_try_rlock() of destroyed rwlock @ %s:%d", file, line)); + ("rw_try_rlock() of destroyed rwlock %p @ %s:%d", rw, file, + line)); if (!(x & RW_LOCK_READ)) break; if (atomic_fcmpset_acq_ptr(&rw->rw_lock, &x, x + RW_ONE_READER)) { @@ -842,7 +843,7 @@ _rw_runlock_cookie_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) uintptr_t v; KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_runlock() of destroyed rwlock @ %s:%d", file, line)); + ("rw_runlock() of destroyed rwlock %p @ %s:%d", rw, file, line)); __rw_assert(&rw->rw_lock, RA_RLOCKED, file, line); WITNESS_UNLOCK(&rw->lock_object, 0, file, line); LOCK_LOG_LOCK("RUNLOCK", &rw->lock_object, 0, 0, file, line); @@ -1284,7 +1285,8 @@ __rw_try_upgrade_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_try_upgrade() of destroyed rwlock @ %s:%d", file, line)); + ("rw_try_upgrade() of destroyed rwlock %p @ %s:%d", rw, file, + line)); __rw_assert(&rw->rw_lock, RA_RLOCKED, file, line); /* @@ -1367,7 +1369,7 @@ __rw_downgrade_int(struct rwlock *rw LOCK_FILE_LINE_ARG_DEF) return; KASSERT(rw->rw_lock != RW_DESTROYED, - ("rw_downgrade() of destroyed rwlock @ %s:%d", file, line)); + ("rw_downgrade() of destroyed rwlock %p @ %s:%d", rw, file, line)); __rw_assert(&rw->rw_lock, RA_WLOCKED | RA_NOTRECURSED, file, line); #ifndef INVARIANTS if (rw_recursed(rw)) diff --git a/sys/kern/kern_sx.c b/sys/kern/kern_sx.c index ecac40217738..0422e6804459 100644 --- a/sys/kern/kern_sx.c +++ b/sys/kern/kern_sx.c @@ -285,7 +285,8 @@ sx_try_slock_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) x = sx->sx_lock; for (;;) { KASSERT(x != SX_LOCK_DESTROYED, - ("sx_try_slock() of destroyed sx @ %s:%d", file, line)); + ("sx_try_slock() of destroyed sx %p @ %s:%d", sx, file, + line)); if (!(x & SX_LOCK_SHARED)) break; if (atomic_fcmpset_acq_ptr(&sx->sx_lock, &x, x + SX_ONE_SHARER)) { @@ -321,7 +322,7 @@ _sx_xlock(struct sx *sx, int opts, const char *file, int line) ("sx_xlock() by idle thread %p on sx %p @ %s:%d", curthread, sx, file, line)); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_xlock() of destroyed sx @ %s:%d", file, line)); + ("sx_xlock() of destroyed sx %p @ %s:%d", sx, file, line)); WITNESS_CHECKORDER(&sx->lock_object, LOP_NEWORDER | LOP_EXCLUSIVE, file, line, NULL); tid = (uintptr_t)curthread; @@ -358,7 +359,7 @@ sx_try_xlock_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) ("sx_try_xlock() by idle thread %p on sx %p @ %s:%d", curthread, sx, file, line)); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_try_xlock() of destroyed sx @ %s:%d", file, line)); + ("sx_try_xlock() of destroyed sx %p @ %s:%d", sx, file, line)); rval = 1; recursed = false; @@ -402,7 +403,7 @@ _sx_xunlock(struct sx *sx, const char *file, int line) { KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_xunlock() of destroyed sx @ %s:%d", file, line)); + ("sx_xunlock() of destroyed sx %p @ %s:%d", sx, file, line)); _sx_assert(sx, SA_XLOCKED, file, line); WITNESS_UNLOCK(&sx->lock_object, LOP_EXCLUSIVE, file, line); LOCK_LOG_LOCK("XUNLOCK", &sx->lock_object, 0, sx->sx_recurse, file, @@ -431,7 +432,7 @@ sx_try_upgrade_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) return (1); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_try_upgrade() of destroyed sx @ %s:%d", file, line)); + ("sx_try_upgrade() of destroyed sx %p @ %s:%d", sx, file, line)); _sx_assert(sx, SA_SLOCKED, file, line); /* @@ -481,7 +482,7 @@ sx_downgrade_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) return; KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_downgrade() of destroyed sx @ %s:%d", file, line)); + ("sx_downgrade() of destroyed sx %p @ %s:%d", sx, file, line)); _sx_assert(sx, SA_XLOCKED | SA_NOTRECURSED, file, line); #ifndef INVARIANTS if (sx_recursed(sx)) @@ -1260,7 +1261,7 @@ _sx_slock_int(struct sx *sx, int opts LOCK_FILE_LINE_ARG_DEF) ("sx_slock() by idle thread %p on sx %p @ %s:%d", curthread, sx, file, line)); KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_slock() of destroyed sx @ %s:%d", file, line)); + ("sx_slock() of destroyed sx %p @ %s:%d", sx, file, line)); WITNESS_CHECKORDER(&sx->lock_object, LOP_NEWORDER, file, line, NULL); error = 0; @@ -1366,7 +1367,7 @@ _sx_sunlock_int(struct sx *sx LOCK_FILE_LINE_ARG_DEF) uintptr_t x; KASSERT(sx->sx_lock != SX_LOCK_DESTROYED, - ("sx_sunlock() of destroyed sx @ %s:%d", file, line)); + ("sx_sunlock() of destroyed sx %p @ %s:%d", sx, file, line)); _sx_assert(sx, SA_SLOCKED, file, line); WITNESS_UNLOCK(&sx->lock_object, 0, file, line); LOCK_LOG_LOCK("SUNLOCK", &sx->lock_object, 0, 0, file, line); From nobody Tue Apr 29 18:30:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85Q0fY1z5vMvx; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85N0116z4Hy4; Tue, 29 Apr 2025 18:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951448; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OsGFGyUyqyALVCmpLp6R29ogLKIMzV5CbeX1TyYoEuk=; b=GIXd9A/mFLwAwQlCK4PW0h1ylNSiojT6P+hfGn2ePFFsm010szODOf6qLR4Gr+Qm2AR3HF /Qdp8nCrUmBd2YHW7pl9yj4Zj2ZWPmsq2Y2/Mo/jfdF5Bd+NaHwA6F+H+zFIEp2WExwNBn VEdDIRIf6CkjiazwcxUa3rN9/tA5PxCZe9O3yNdc9J8ktVtBsTrC8qaYREp2gDVIsaNQQB Ihn2NJjVoJVSG5MXjFlJF+gnobVEnGUne4fZq3/ImrKw+pLoHLmy+MX6hvh2GaQFagXgqd pYTkByJUZn04hv+FnoY5MbwsbbULKgQ1SuYeWzkWpQhtf0ykW5ZXk137it7ARQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951448; a=rsa-sha256; cv=none; b=FbByNyDTNlBb+mRNSsUtVPClSKosmwY8Ag0ZaaKaGFMOgTcycIWvlrcUxP0/eow3HW4upF AJmt/nvGCjlabj7SpPnWIe68TWQDSEhbJe2Itd+1fdkbKkttKhLVMlKf7rcHjfqYwVOYiR D5p51MbAenB20KhddpIctxahFhjju1eRzwS+J8hZWnALZqlIgVXzie5zpjwgB4WmwxC8Nz iA0VfAER2uVAQNRLOQR1rGcn5XyeOWgO//IRLRXxBL5l2Qa6zu5MHh8HMziQsjvHvF3oCu 8hdRGBmSWQf+Cb62DaWlbNj2mB8Csur6304ky9lokx5xqFCB143IYzfm06wlFA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951448; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OsGFGyUyqyALVCmpLp6R29ogLKIMzV5CbeX1TyYoEuk=; b=WRqzmiZkEZ3f5Dhg2XUk5sz0Mswlzjm+L4h5sxRf/FRUATTT9IrL9diQCLwJ/9HbgKqji+ DIUPLXjj2rzINtj7b488Ny8TRhpdKoFg743q9cGwGgZQMN+mGLmdaRebBiEuhM8Ino29Hf pGAET2kpaXTXwFnBaKMQqCVH8ILPD7KMqHT4yZmxN95Ith4pVhhhmdzIJ9tecHGocoKLPM spObrc961pFpp9IF96prTtIg8SonBQk4iZ9a7NcAdtgGK/6kyhKEyiVX8XnKegKMCmpK8w kFenJXeJTscJCNU7T3mD5i3loyvI2UIWopPuC4zUUk7K/nV1mv2Lsmc4uR82qA== 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 4Zn85M5kRgzXn3; Tue, 29 Apr 2025 18:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUlAK022871; Tue, 29 Apr 2025 18:30:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUl72022868; Tue, 29 Apr 2025 18:30:47 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:47 GMT Message-Id: <202504291830.53TIUl72022868@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: b5bc47f1e1ab - stable/14 - pci: Clear active PME# and disable PME# generation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b5bc47f1e1ab31086c1bf2e68944ea0331059c2c Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b5bc47f1e1ab31086c1bf2e68944ea0331059c2c commit b5bc47f1e1ab31086c1bf2e68944ea0331059c2c Author: John Baldwin AuthorDate: 2025-03-27 20:53:24 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:44:25 +0000 pci: Clear active PME# and disable PME# generation The PCI power management specification requires that the OS clear any pending PME# interrupt and generation of PME# interrupts during "initial operating system load". Note that clearing a pending PME# interrupt requires writing a 1 to the Read/Write-Clear PME bit in the power management status register. To handle the boot time case, clear PME# state in pci_read_cap() when scanning new PCI devices. This should also cover hotplug devices. In addition, clear this state on every PCI device after resume from sleep in pci_resume_child before invoking the driver's DEVICE_RESUME method. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49222 (cherry picked from commit 82d692771239f1d156a875087dff4cf09f0e8b80) --- share/man/man9/Makefile | 1 + share/man/man9/pci.9 | 8 ++++++++ sys/dev/cardbus/cardbus.c | 1 + sys/dev/pci/pci.c | 18 ++++++++++++++++++ sys/dev/pci/pcivar.h | 1 + 5 files changed, 29 insertions(+) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index 3ee1d2bb0108..dcaf1d4ac5ed 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1781,6 +1781,7 @@ MLINKS+=panic.9 vpanic.9 \ panic.9 KERNEL_PANICKED.9 MLINKS+=pci.9 pci_alloc_msi.9 \ pci.9 pci_alloc_msix.9 \ + pci.9 pci_clear_pme.9 \ pci.9 pci_disable_busmaster.9 \ pci.9 pci_disable_io.9 \ pci.9 pci_enable_busmaster.9 \ diff --git a/share/man/man9/pci.9 b/share/man/man9/pci.9 index 3c3e54bf8760..0f3fc92c23e7 100644 --- a/share/man/man9/pci.9 +++ b/share/man/man9/pci.9 @@ -30,6 +30,7 @@ .Nm pci , .Nm pci_alloc_msi , .Nm pci_alloc_msix , +.Nm pci_clear_pme , .Nm pci_disable_busmaster , .Nm pci_disable_io , .Nm pci_enable_busmaster , @@ -81,6 +82,8 @@ .Fn pci_alloc_msi "device_t dev" "int *count" .Ft int .Fn pci_alloc_msix "device_t dev" "int *count" +.Ft void +.Fn pci_clear_pme "device_t dev" .Ft int .Fn pci_disable_busmaster "device_t dev" .Ft int @@ -670,6 +673,11 @@ then the function will fail with .Er EOPNOTSUPP . .Pp The +.Fn pci_clear_pme +function is used to clear any pending PME# signal and disable generation +of power management events. +.Pp +The .Fn pci_iov_attach function is used to advertise that the given device .Pq and associated device driver diff --git a/sys/dev/cardbus/cardbus.c b/sys/dev/cardbus/cardbus.c index 261e9a5205ae..8dd543c68677 100644 --- a/sys/dev/cardbus/cardbus.c +++ b/sys/dev/cardbus/cardbus.c @@ -223,6 +223,7 @@ cardbus_attach_card(device_t cbdev) DEVPRINTF((cbdev, "Warning: Bogus CIS ignored\n")); pci_cfg_save(dinfo->pci.cfg.dev, &dinfo->pci, 0); pci_cfg_restore(dinfo->pci.cfg.dev, &dinfo->pci); + pci_clear_pme(child); cardbus_device_setup_regs(&dinfo->pci.cfg); pci_add_resources(cbdev, child, 1, dinfo->mprefetchable); pci_print_verbose(&dinfo->pci); diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 7107fbe4884b..a99c34271f96 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -2921,6 +2921,22 @@ pci_get_powerstate_method(device_t dev, device_t child) return (result); } +/* Clear any active PME# and disable PME# generation. */ +void +pci_clear_pme(device_t dev) +{ + struct pci_devinfo *dinfo = device_get_ivars(dev); + pcicfgregs *cfg = &dinfo->cfg; + uint16_t status; + + if (cfg->pp.pp_cap != 0) { + status = pci_read_config(dev, dinfo->cfg.pp.pp_status, 2); + status &= ~PCIM_PSTAT_PMEENABLE; + status |= PCIM_PSTAT_PME; + pci_write_config(dev, dinfo->cfg.pp.pp_status, status, 2); + } +} + /* * Some convenience functions for PCI device drivers. */ @@ -4466,6 +4482,7 @@ pci_add_child(device_t bus, struct pci_devinfo *dinfo) resource_list_init(&dinfo->resources); pci_cfg_save(dev, dinfo, 0); pci_cfg_restore(dev, dinfo); + pci_clear_pme(dev); pci_print_verbose(dinfo); pci_add_resources(bus, dev, 0, 0); if (pci_enable_mps_tune) @@ -4665,6 +4682,7 @@ pci_resume_child(device_t dev, device_t child) dinfo = device_get_ivars(child); pci_cfg_restore(child, dinfo); + pci_clear_pme(child); if (!device_is_attached(child)) pci_cfg_save(child, dinfo, 1); diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index 888159d59c1a..d365b9132069 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -685,6 +685,7 @@ void pci_restore_state(device_t dev); void pci_save_state(device_t dev); int pci_set_max_read_req(device_t dev, int size); int pci_power_reset(device_t dev); +void pci_clear_pme(device_t dev); uint32_t pcie_read_config(device_t dev, int reg, int width); void pcie_write_config(device_t dev, int reg, uint32_t value, int width); uint32_t pcie_adjust_config(device_t dev, int reg, uint32_t mask, From nobody Tue Apr 29 18:30:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85S2yqFz5vMvy; Tue, 29 Apr 2025 18:30:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85R13sfz4Hks; Tue, 29 Apr 2025 18:30:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MMUXOBFTKD4OuWLW2rbgy6lKN2R+oik/LwTEHnShgzU=; b=WXLS5FQITdxZdTdmX3R0jtWNaOdG0oUgRltnZWOdd95ZInGF5FdMVqnNjVxpf+MOjvUzUq LsCN/ltSdc+zqDcvxeh5hwKAxqZQNWbJA25bNuSm1nuVPvTr51gdQCZFmfpWD8lhGeeDXr yVDPIqN1GSB4DAxpKskWpxU0RkKjK3YiiuovB4BgMug5VrIi3MHeOvMKMXjnOcOlRtc3ko Xb0YV9NcVzv9ik7Qf7R0pBa9GaYpGvTp63PkEXeDi5sEtcHTk8rLCsLjowEFph2MngVhxA DeTg4J96ii7G/Ql2oiB173+RhkkocWPW8NeVggsgQwlKxxE8bwu6wUiB/1tVdQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951451; a=rsa-sha256; cv=none; b=BQLdYm0bGNTBI7mNeYRPeTFGnYGSTXNvwB05/vR3X0bNOt5ehvz/tgRgAfxnE8tIG/BFUj Ox7phT01h445jh0tZVL1njYRpOaN2An0xaNAVHCE9dIND/WUy9EvLjCg+SKpz90p8nSTBG AOf+CxMCpJp+pgVlZBmDy7p9cAuCmEKP8T77/aykyXtx40eSMfmaUzfGuimSipPk8/7Z7A vvtZTsWZKZs8wf3r0GzkH/lTVL4XpcVRXKafRXGptkcLiym5owOMtBj0dr+hS/JMFLsusn bTuHZBF5GSy+nGqh3RcaoJwV/UITAZN/WxPQ3lPm0O+ZTR7bUf+J5FnxjpDVqw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MMUXOBFTKD4OuWLW2rbgy6lKN2R+oik/LwTEHnShgzU=; b=YE4efglfTJq44hM/2xCht+u/0sBgpdMO53RiWgHDZ3J6+q7xmF79zPNyd8TfealnkkTq8k RV1ucpqWi7pzclkBaiPeNril+TCqQBcVy9yunYuGSlq3VG5cwxZATwlA3R7F4wPzjUMKzb ymuqpTnY5tPYvQRneexZkk6GLhpkU6geXC72Pxfo6xCey3BiOJ8LI8MR7JP7vJUJhNVuQq NeS9lZcn6FQLwMnVpiedrz333P2eylji4PQcyntGCRN2Z8lm9p9PRnAYJRRTvQTflXaEMY bvKZ0SQr8K8Y7E352+M4urWccbSWBH5sUUXDrhxELHkU2BJ1lnNBdtCr2zsi4g== 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 4Zn85R0VB5zXRN; Tue, 29 Apr 2025 18:30:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUot8022981; Tue, 29 Apr 2025 18:30:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUowr022978; Tue, 29 Apr 2025 18:30:50 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:50 GMT Message-Id: <202504291830.53TIUowr022978@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: a2de254b2007 - stable/14 - acpi_pci: Use pci_has_pm and pci_clear_pme List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a2de254b2007856d987556102806dc7b5bb9729e Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=a2de254b2007856d987556102806dc7b5bb9729e commit a2de254b2007856d987556102806dc7b5bb9729e Author: John Baldwin AuthorDate: 2025-03-27 20:56:08 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:45:14 +0000 acpi_pci: Use pci_has_pm and pci_clear_pme Differential Revision: https://reviews.freebsd.org/D49266 (cherry picked from commit 931baeb62b03029cb57459736851c4e8141e672e) --- sys/dev/acpica/acpi_pci.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/sys/dev/acpica/acpi_pci.c b/sys/dev/acpica/acpi_pci.c index b7a2bf70b4e0..646295f9eecc 100644 --- a/sys/dev/acpica/acpi_pci.c +++ b/sys/dev/acpica/acpi_pci.c @@ -391,8 +391,6 @@ acpi_pci_device_notify_handler(ACPI_HANDLE h, UINT32 notify, void *context) { device_t child, dev; ACPI_STATUS status; - int pmc; - uint16_t pmstat; int error; dev = context; @@ -419,12 +417,8 @@ acpi_pci_device_notify_handler(ACPI_HANDLE h, UINT32 notify, void *context) return; } if ((acpi_quirks & ACPI_Q_CLEAR_PME_ON_DETACH) && - (pci_find_cap(child, PCIY_PMG, &pmc) == 0)) { - pmstat = pci_read_config(child, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pmstat |= PCIM_PSTAT_PME; - pci_write_config(child, pmc + PCIR_POWER_STATUS, pmstat, 2); - } + pci_has_pm(child)) + pci_clear_pme(child); status = acpi_SetInteger(h, "_EJ0", 1); if (ACPI_FAILURE(status)) { bus_topo_unlock(); From nobody Tue Apr 29 18:30:48 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85R2LTbz5vMt6; Tue, 29 Apr 2025 18:30:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85P0ssbz4Hkb; Tue, 29 Apr 2025 18:30:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=evga1ykIU5zxr/w59P2afWD6vMvc9ZnIAlUPWXUL7lA=; b=gaXkPXaRsTZoBs/osaQCOj74U9yNb9QqYZvZ/K+FoaC0aST9B1mhjOimlf0UyhNPPxAxwv 0/wn2iFCjMjZa/sUhS6fKDHM9V2vbaoTwS/SAeCrPYtB4FCdlbtBg+2Z4QdmHo+OArFN8e ZDeLSOpD/cEHBjGSnGpMAjEz6lxDIL4J5LEBwKegZiteVOHoyOyCy2Oxosrd1uG9a9mEjE +YREGyEdBCHyjcYdv1UMKPz9hoIlw/RcsQSOUt+Sv+GGD+CKWs4UpuqW4W6urSeE5qRwd0 pkQVCmzjQH6CeYV8jI1sLI34ExGqP1FAjMusOGqWl9b+d06aMuSCLsaSPMtJIw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951449; a=rsa-sha256; cv=none; b=uEppboFxLTHQa+QVhoDGg0D97jJ60aeO7aYVqX7ZR5yejjMHLEHv8YCGBAxAVKkChkIW8w uHYHVS/JutI2N4r+Sufp4xs14FkgCExYKudEYS8Ory0w8O+v1Tbj8fsM9oEp0FprJDUOTH Cz6ZP4zvR5GCtb4Q8fxmUOu2at92h0z/MN4phOkaXUow2eeQajNXzbAj2nODpMe+p9tU+X z2QeX0Y0VuyObTFo6obTKjlcQ/x6mOI0JnfuLIybkGzda0X+ivhy+uYCre0ehS9pdMK2ll 0oI9gPYlYihzs17vma5HDTb7i0utSKlFKahe7X47EtUgjF1qrUxKLXmGJFQZWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=evga1ykIU5zxr/w59P2afWD6vMvc9ZnIAlUPWXUL7lA=; b=vNX5Wl4grrOV2aiIaDTnLF/YPAetiyC10agn/ZFleUcq3PZegLMErE5VXNgbeMipaZb0qg KQJKWDoXadqvujwnaiprwPvbquEcjZDwCgFRYccYDgW/zMiQY2B5cFrFJdvRApUZ4n6knq XlQtJ1AsalHcXXZWBCQpGk69ZP5OvrfJCMM0/iU2SL8t9VSF7C81L0m9Yyb+y/p+hZmtfO H+FEL4VzO0AyLQhEX5LVVsbAIQQdLPWGVZnmBZZQjxCOhY6QTTcZHKxw/xtkmncFAgGtJ6 MaSXjfj+1wgj20T2YlD0Q1wq/WFY3bG2IxM6kE3O9PLfbSS+5OexLRmSYJzpBg== 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 4Zn85N6b9ZzXqZ; Tue, 29 Apr 2025 18:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUmtE022904; Tue, 29 Apr 2025 18:30:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUmi4022901; Tue, 29 Apr 2025 18:30:48 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:48 GMT Message-Id: <202504291830.53TIUmi4022901@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: b8b5dbdb93f8 - stable/14 - pci: Add helper routines to manage PME in 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b8b5dbdb93f871948651828c4cee7d733e649ff2 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=b8b5dbdb93f871948651828c4cee7d733e649ff2 commit b8b5dbdb93f871948651828c4cee7d733e649ff2 Author: John Baldwin AuthorDate: 2025-03-27 20:53:58 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:44:58 +0000 pci: Add helper routines to manage PME in device drivers pci_has_pm is a quick check that returns true if a PCI device supports the power management capability. pci_enable_pme can be used in DEVICE_SUSPEND driver methods to enable PME# during suspend. Reviewed by: Krzysztof Galazka x Differential Revision: https://reviews.freebsd.org/D49250 (cherry picked from commit e5cbf0e881fa1851912be77c62aa7ab17f844c3d) --- share/man/man9/Makefile | 2 ++ share/man/man9/pci.9 | 19 ++++++++++++++++++- sys/dev/pci/pci.c | 24 ++++++++++++++++++++++++ sys/dev/pci/pcivar.h | 2 ++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index dcaf1d4ac5ed..6993b34e5b4a 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -1786,6 +1786,7 @@ MLINKS+=pci.9 pci_alloc_msi.9 \ pci.9 pci_disable_io.9 \ pci.9 pci_enable_busmaster.9 \ pci.9 pci_enable_io.9 \ + pci.9 pci_enable_pme.9 \ pci.9 pci_find_bsf.9 \ pci.9 pci_find_cap.9 \ pci.9 pci_find_dbsf.9 \ @@ -1798,6 +1799,7 @@ MLINKS+=pci.9 pci_alloc_msi.9 \ pci.9 pci_get_powerstate.9 \ pci.9 pci_get_vpd_ident.9 \ pci.9 pci_get_vpd_readonly.9 \ + pci.9 pci_has_pm.9 \ pci.9 pci_iov_attach.9 \ pci.9 pci_iov_attach_name.9 \ pci.9 pci_iov_detach.9 \ diff --git a/share/man/man9/pci.9 b/share/man/man9/pci.9 index 0f3fc92c23e7..8f772e76ba99 100644 --- a/share/man/man9/pci.9 +++ b/share/man/man9/pci.9 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 20, 2021 +.Dd March 27, 2025 .Dt PCI 9 .Os .Sh NAME @@ -35,6 +35,7 @@ .Nm pci_disable_io , .Nm pci_enable_busmaster , .Nm pci_enable_io , +.Nm pci_enable_pme , .Nm pci_find_bsf , .Nm pci_find_cap , .Nm pci_find_dbsf , @@ -51,6 +52,7 @@ .Nm pci_get_powerstate , .Nm pci_get_vpd_ident , .Nm pci_get_vpd_readonly , +.Nm pci_has_pm , .Nm pci_iov_attach , .Nm pci_iov_attach_name , .Nm pci_iov_detach , @@ -92,6 +94,8 @@ .Fn pci_enable_busmaster "device_t dev" .Ft int .Fn pci_enable_io "device_t dev" "int space" +.Ft void +.Fn pci_enable_pme "device_t dev" .Ft device_t .Fn pci_find_bsf "uint8_t bus" "uint8_t slot" "uint8_t func" .Ft int @@ -124,6 +128,8 @@ .Fn pci_get_vpd_ident "device_t dev" "const char **identptr" .Ft int .Fn pci_get_vpd_readonly "device_t dev" "const char *kw" "const char **vptr" +.Ft bool +.Fn pci_has_pm "device_t dev" .Ft int .Fn pci_msi_count "device_t dev" .Ft int @@ -358,6 +364,12 @@ When no more instances are located returns an error. .Pp The +.Fn pci_has_pm +function returns true if +.Fa dev +supports power management. +.Pp +The .Fn pci_find_extcap function is used to locate the first instance of a PCI-express extended capability register set for the device @@ -678,6 +690,11 @@ function is used to clear any pending PME# signal and disable generation of power management events. .Pp The +.Fn pci_enable_pme +function is used to enable generation of power management events before +suspending a device. +.Pp +The .Fn pci_iov_attach function is used to advertise that the given device .Pq and associated device driver diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index a99c34271f96..649ac6286865 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -2937,6 +2937,30 @@ pci_clear_pme(device_t dev) } } +/* Clear any active PME# and enable PME# generation. */ +void +pci_enable_pme(device_t dev) +{ + struct pci_devinfo *dinfo = device_get_ivars(dev); + pcicfgregs *cfg = &dinfo->cfg; + uint16_t status; + + if (cfg->pp.pp_cap != 0) { + status = pci_read_config(dev, dinfo->cfg.pp.pp_status, 2); + status |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; + pci_write_config(dev, dinfo->cfg.pp.pp_status, status, 2); + } +} + +bool +pci_has_pm(device_t dev) +{ + struct pci_devinfo *dinfo = device_get_ivars(dev); + pcicfgregs *cfg = &dinfo->cfg; + + return (cfg->pp.pp_cap != 0); +} + /* * Some convenience functions for PCI device drivers. */ diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index d365b9132069..c69f2b1e09bd 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -686,6 +686,8 @@ void pci_save_state(device_t dev); int pci_set_max_read_req(device_t dev, int size); int pci_power_reset(device_t dev); void pci_clear_pme(device_t dev); +void pci_enable_pme(device_t dev); +bool pci_has_pm(device_t dev); uint32_t pcie_read_config(device_t dev, int reg, int width); void pcie_write_config(device_t dev, int reg, uint32_t value, int width); uint32_t pcie_adjust_config(device_t dev, int reg, uint32_t mask, From nobody Tue Apr 29 18:30:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85V37BDz5vN4h; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85T4wDsz4J3v; Tue, 29 Apr 2025 18:30:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951453; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ehuQNPfwCLUf/UP7/DM3MvQAwXdzw6yNlZLtAXY8sek=; b=XBaissjEX3cxTnpNbpp3GzzNg3sFXM0MpYFkJnSxEgI6HSh7s8PsHnttUGmqATC6wXrkbN GSZr8tP8R7T1UkXYT6dCYX/nuSJiKvXZkV2t1bDvpq8HhGy76N9+Aqzx6gCVFH2KznQ2KH t64D2Nt54z9VB2nqi/fSOI0XAWweUKMKvgz4842HR3uxXPHPAjG0dcmYfWwQ4fUoXmiITH hD5vatuCYAVzxowszvagJbcIRM8l0dnxcpA9TqbFL+6K74qG67CH8PPO0g5x8TxcCWuxvx dKGN5avX0OiWBN28i9hqsN7vHiwJIQ28gnbjX6XOxBhjlPkJNp/YAso+B3iSAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951453; a=rsa-sha256; cv=none; b=yZY+xbhfrv9D8PGc18XRaD0Fvz6VE830fGG73pkOe+B8U0g1FBaFuv7AfOD+9h8P1BuTJs 0WfOTwIDvSV0XlgQee03pFaHptnAdYOt3eqRp6JCeNj4vZwcthGX9KTI9hLmX4GVFU5jLG Ofai3mNNpin7gpyQM5aH/9oLQrH4EAgO3OZ2SguGSh5SG8zyQgTWoqupbt4QkBDlqcHbIf 3WO/iTE1hLmV9B5MHWLz61GcjMCq6bSZ45OEQ90l2pQqd08SAOSwD5mzhGBngDZEtXtU37 L/zYJ07Oaa8GtMmkfhO8tj9thvjwiA0nYyQ4JAzBFB0ROmM4g+oDb32/Fk5w5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951453; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ehuQNPfwCLUf/UP7/DM3MvQAwXdzw6yNlZLtAXY8sek=; b=u0CuwATSzVjQQOLL+8vjHti9rGGNRkZTRJ0uZnwL3dp1HRftuo3onYgi/z66w03MMuhXTu w1zBb5RRAlhUi0hMq7hEnDKGAMIviYGPz64ofpnVaTXsyALNqjxffa7p9bUZUH9sp2errK hG+ZAxMt3xoR1Pv/nJ7Zdc1ONZSgGqWHEqw0AeaDQLpGOU4+i/b0vEhFFeNFQ2pzqQVy/H 80m+naTkkotrsCMAEcXaqCMCHiU/Fb/GPQtG18physO0l2hA1fsgH7htKpaiFwOolqkhsl fR4VS4pJZempzD87KSxc/zdMzfXPDxARoKoa+eW4TQG3RenBaezP9A+jypTB+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 4Zn85T24RBzXn4; Tue, 29 Apr 2025 18:30:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUr3Z023053; Tue, 29 Apr 2025 18:30:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUrGk023050; Tue, 29 Apr 2025 18:30:53 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:53 GMT Message-Id: <202504291830.53TIUrGk023050@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 4373c15f1fa2 - stable/14 - pcib: Ignore power fault detected if a power controller is not present List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4373c15f1fa2afe9e7a24f3d1be9a3582874f48d Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=4373c15f1fa2afe9e7a24f3d1be9a3582874f48d commit 4373c15f1fa2afe9e7a24f3d1be9a3582874f48d Author: John Baldwin AuthorDate: 2025-04-22 02:08:01 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:46:26 +0000 pcib: Ignore power fault detected if a power controller is not present At least some PCI-express bridges exposed by Intel Volume Management Devices report bogus power faults in their slot status register. As a workaround, ignore the power fault detected flag if the slot capability register does not indicate support for a power controller. While the PCI-e spec does not explicitly state that the PFD flag should always be zero if a power controller is not present, parts of the spec do seem to assume this. For example, the flag is included in the "Power Controller Registers" register group in 6.7.2.4, and the definition of the value for this flag seems to presume the presence of a power controller: If a Power Controller that supports power fault detection is implemented, this bit is Set when the Power Controller detects a power fault at this slot. Note that, depending on hardware capability, it is possible that a power fault can be detected at any time, independent of the Power Controller Control setting or the occupancy of the slot. If power fault detection is not supported, this bit must not be Set. PR: 285993 Reported by: Jim Long Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49949 (cherry picked from commit 4c8b9f40cda7dd6b2de547b288d712c85998ce11) --- sys/dev/pci/pci_pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index eedfc671f577..74b830be8a0a 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -1081,7 +1081,8 @@ pcib_hotplug_inserted(struct pcib_softc *sc) return (false); /* A power fault implicitly turns off power to the slot. */ - if (sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) + if (sc->pcie_slot_cap & PCIEM_SLOT_CAP_PCP && + sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) return (false); /* If the MRL is disengaged, the slot is powered off. */ From nobody Tue Apr 29 18:30:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85V6304z5vN8f; Tue, 29 Apr 2025 18:30: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85V3z93z4HrC; Tue, 29 Apr 2025 18:30:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SDAiCX8SIcxfAxnXPIzhYxUAQEkjB4j3Ux81UECHSK0=; b=LZVBTnJek2eP1ZYTs1OAy9VTuxCdKhtfybfZk1cpY7JZhABNi7gRDFSqEzvnOY3M7xlfX/ KD2QloBNCfhC7q4c4Q9//P/ID3b9vXqjX3CdTig5+tdsdzdXWpQcCafJ6VhLRLON3o2syp Pj0pgsOa1ceyAc3WKeXwJTDcP6RZGFKOg+5JZKd9AljEMEw/Fu9YVJolsh0Ap41XvRMrdI OqVkjZDvATHq4VVMGL8Qik0AUdrfqFI4BzgvpLAx07lllNoczUEhWPMQKlaIWH0ts5X9GT I4qcGdEkkHBTxQg5FoxWTrMO+AsMiMw3T+xoI+yiiKuJ5mIGxd1PIWmxjxsOTg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951454; a=rsa-sha256; cv=none; b=WNkWgRsN3sPhCcUuXMewhT0dJcZ4H3icXC/Wl87sX+mHQoNIdgyy+/kdXBD0hFmHOUUxm9 fvxl+ZPHY7+s8GWqn0GxSeMRT1vpvQrqlrNauNr6wSgcHGZlgFiv5GTRrmdgKt63KBYRwI D39O0o9+O1kxDhlzmW/c9boyUoHF23lkj1auxa507c6GdyodVLjJJY7XGWj4sVokFkA6Xs HlmhVkiQDyQfP0c/PCAUCEShyz9CZAjsJw4OZRT//U1yjo2z7LmcTDKKtJT/5/HQjwrkO8 6U0DhChXJe+kGeiwVTQ5JhXYr++ihQX6+IiJtIQOvsPPb3q+VQC86xDLQBbOSA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951454; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SDAiCX8SIcxfAxnXPIzhYxUAQEkjB4j3Ux81UECHSK0=; b=NsDnvd/j3G7RUcPN3O7OTdJuinTCBeiYqe1kB2DEX3KN+dRCx7wlyqWYp9VorIRXLwbVhX G2BTGjldy1+3UO3KI1V1hcJP4Zkkbi/muWgYQ+4UBrsI8bFTSrOiusGARb/NAIMQQ24Uit /aUSoACM5otauz3wSUhihZP7CQBQxs6Q6A8Q40DEuY49GkWOSgncl+iZT8YBQ8Iita46+Y rb1goGotn1ZasinL4vWP0/1EJ/PSNIUyyI+3hvqMEi9cNub0EOWANcIw/QoSFxZQxCC77D rRzF4XgOAeB3wUwXe2U1N5zBvt2e7SuSJjtmjVBvmbBX5CorEmvGZy3gBcY+4Q== 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 4Zn85V3RCRzXqc; Tue, 29 Apr 2025 18:30:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUscs023088; Tue, 29 Apr 2025 18:30:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUsVX023085; Tue, 29 Apr 2025 18:30:54 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:54 GMT Message-Id: <202504291830.53TIUsVX023085@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 14cb4636358f - stable/14 - pcib: Clear any pending slot status events during attach List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 14cb4636358f1d54c2e0d843164c0dc9afcf012b Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=14cb4636358f1d54c2e0d843164c0dc9afcf012b commit 14cb4636358f1d54c2e0d843164c0dc9afcf012b Author: John Baldwin AuthorDate: 2025-04-22 02:08:17 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:46:40 +0000 pcib: Clear any pending slot status events during attach Any events left over from boot firmware, etc. are not meaningful so clear pending events during attach. If they are still pending they should remain asserted when the slot status register is re-read. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49950 (cherry picked from commit ff45e4759a38f44a0199b2948b7b1e987e7c71da) --- sys/dev/pci/pci_pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 74b830be8a0a..eb48dab1f188 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -1449,6 +1449,7 @@ pcib_setup_hotplug(struct pcib_softc *sc) /* Clear any events previously pending. */ pcie_write_config(dev, PCIER_SLOT_STA, sc->pcie_slot_sta, 2); + sc->pcie_slot_sta = pcie_read_config(dev, PCIER_SLOT_STA, 2); /* Enable HotPlug events. */ mask = PCIEM_SLOT_CTL_DLLSCE | PCIEM_SLOT_CTL_HPIE | From nobody Tue Apr 29 18:30:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85S4xFyz5vMt8; Tue, 29 Apr 2025 18:30:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85S2Jvqz4HsS; Tue, 29 Apr 2025 18:30:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951452; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=28tf5HZ9MRv36/MkjIdrfF4WtehkSbLKjOKPtNY6yTk=; b=wXrhVaHnkXPi9snFjCnbrhc3tJpjttBUoR37YsirKMXpHd6Lw7ejd3vUTEBs/KR6GQaPwK 06/NxZ5Rx72gGV9gq3YPmA22CiKq5I88CNPBnC3bzhYM4GTDNECI7oijBOvtgLne2seAzq xFqWPBbJ2MXa15xRtLV7LWyWrJSksQjevTv3duXD0bZJ66fgce10MO5zA4yIMj68Yh7hta eu6RZM4Tqh98m+d4/mZT3r5S/luFsER79TvdECF0NezNcGuZOxd/xlpGOzDInHM02QNViL B0sD1i8Cj5j6F9PEYAR5/uHjUqDRNkYsJndtAb1p3oSyfndbh1wTDXAyAOEUyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951452; a=rsa-sha256; cv=none; b=S+1ta7fUZVIOl5YA7C5cJtAun3pkUfuygWl81PZn0UjfaRg2VmiSC4SNIxaSH/VgiPlyOr Mpn/mHm9t36rpWuvkFO/74BQsbgeeNEKHkelsbq3yo9QO5tZjLZGjxjQT+4urvihivDnWd LzQRZBp7D9M3nw5Ldj8vaANTrFlAAWbJqrg7D8SUM1hNzw2sJ5MxGiCzPz3PBifJU+8gOf tDMzTr8b38J4Jl3t3bR12yaeU0SiSnC6SG9sJcyewyM5Sa86rpMZIzjhfnPxbp+wJjLX5U YMmSuZJMOWIkX1uGVxmCCk+kjIcvCT2h6DzpeZQ9dtznt6daKRcZCgheGXsSyQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951452; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=28tf5HZ9MRv36/MkjIdrfF4WtehkSbLKjOKPtNY6yTk=; b=qlEPT5NzbXaObG7JQq36BnddLUzHNXl5nXOBNYgmHQahg7t74SoZ+GuX7t/9+sEUc/WBAu QH/JzC0P1UFmBph9198MG8yfOBtjdIxAsy3J5a7GWu47w8e3ODSufM+0BDxtNLARS44JaD YAseTI5RYYeuUGZozTmUFguOIrJH4uBZve/LCAaNJ5hi+BAMipRoABFLxIsUIx6nJAFn/Q yMsdLDp1doBRLKNakF8ynw5McQE1DX+tRdgW64Al8+mZRXWeQpD/ATykj5LkRcQ2GpcfRu PgRNiZ5GI3fbt+Dv013y97aOmZim9ouHIII3knelqVmNkWuFGzWju4L9++Jmtg== 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 4Zn85S1QCqzY1Q; Tue, 29 Apr 2025 18:30:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUqgY023018; Tue, 29 Apr 2025 18:30:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUqor023015; Tue, 29 Apr 2025 18:30:52 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:52 GMT Message-Id: <202504291830.53TIUqor023015@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 7485e6a867ab - stable/14 - telnet: Prevent buffer overflow in the user prompt for SRA List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7485e6a867ab2f7db87536af4f44fcae34c0f6de Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=7485e6a867ab2f7db87536af4f44fcae34c0f6de commit 7485e6a867ab2f7db87536af4f44fcae34c0f6de Author: John Baldwin AuthorDate: 2025-04-16 13:41:03 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:45:52 +0000 telnet: Prevent buffer overflow in the user prompt for SRA The Secure RPC authenticator for telnet prompts the local user for the username to use for authentication. Previously it was using sprintf() into a buffer of 256 bytes, but the username received over the wire can be up to 255 bytes long which would overflow the prompt buffer. Fix this in two ways: First, use snprintf() and check for overflow. If the prompt buffer overflows, fail authentication without prompting the user. Second, add 10 bytes to the buffer size to account for the overhead of the prompt so that a maximally sized username fits. While here, replace a bare 255 in the subsequent telnet_gets call with an expression using sizeof() the relevant buffer. PR: 270263 Reported by: Robert Morris Tested on: CHERI Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D49832 (cherry picked from commit 5737c2ae06e143e49496df2ab5a64f76d5456012) --- contrib/telnet/libtelnet/sra.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/contrib/telnet/libtelnet/sra.c b/contrib/telnet/libtelnet/sra.c index abacda12b495..3531c703a3d0 100644 --- a/contrib/telnet/libtelnet/sra.c +++ b/contrib/telnet/libtelnet/sra.c @@ -241,9 +241,10 @@ bad: void sra_reply(Authenticator *ap, unsigned char *data, int cnt) { - char uprompt[256],tuser[256]; + char uprompt[256 + 10]; /* +10 for "User (): " */ + char tuser[256]; Session_Key skey; - size_t i; + size_t i, len; if (cnt-- < 1) return; @@ -266,8 +267,15 @@ sra_reply(Authenticator *ap, unsigned char *data, int cnt) /* encode user */ memset(tuser,0,sizeof(tuser)); - sprintf(uprompt,"User (%s): ",UserNameRequested); - telnet_gets(uprompt,tuser,255,1); + len = snprintf(uprompt, sizeof(uprompt), "User (%s): ", + UserNameRequested); + if (len >= sizeof(uprompt)) { + if (auth_debug_mode) { + printf("SRA user name too long\r\n"); + } + return; + } + telnet_gets(uprompt, tuser, sizeof(tuser) - 1, 1); if (tuser[0] == '\n' || tuser[0] == '\r' ) strcpy(user,UserNameRequested); else { From nobody Tue Apr 29 18:30:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zn85R2P09z5vMt7; Tue, 29 Apr 2025 18:30:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zn85Q0SKRz4Hkg; Tue, 29 Apr 2025 18:30:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NXf6PTooL/Kjoj5esgieXRwJB+52dSb0DJCJUX/FLWI=; b=q/L65NxEQYBDsdgXobZ8UmkQiPh5KCOUdU4qoQWwmwcH2CvFEBVfyqTip4/+n4c7qxYP/h 6qZe00p0JFV+902FG7QK69yEr7i3sjPUYWwy14ZoYGR5qfFffXH6FmWOl5/++nNUN0QigS uxjIzhJi4dzuehdtzGV9tWCV8KXcGY+eYSNYZ3r3WBYubdNvXyB8vsvazIfgdvOZAIh1WI qR54j3t4VQ9WJIvHETMHLE0dKjespR9o9oaOC6gHMu30hTZAHplsUSDLg6tyMVRckm5Egv 1eDeOIU893mZ7fi5GtS5XZROOxWcZoh7N8JY8Xg+NnIRimxznrsfgN7nfUaU6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745951450; a=rsa-sha256; cv=none; b=T9Ao27ZOc/MA0iyKRffOchXRe79tTmPXbIThDix4raFYGiysHbCRBGgV5YsUT5/YOTXGDH UiqJwPiFP/aakEJ/cMVfXwmvc4jX7dJ8qksB4GnXbt0o2a9B92WiShXVZIlr1TR6LkMOuB EUDu5+D80dkkAVr87BNjW1K/AwxA8P2uvde+HEzQAsNfUcWWy8S7iYaMcHsDGuqTtlrzn8 Ohdki/gKiyjxTVHCZrDoXnHubJ3vY0FF98RGkIq1G0F+bdfymwFDgFPj2L2ouqPmo5hH7W qr3/OWXNmYXGAGcFN0KlsOI2j3Hn2YNNU24pCvhz1InlF8oqTpyT+LW+mwM4Pg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745951450; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NXf6PTooL/Kjoj5esgieXRwJB+52dSb0DJCJUX/FLWI=; b=vl8uPfCNRm199ccRbT919P7Kh4KBzzzwuNDikEONmLms/SrPl3wPg4nHl9sv1nhqAil7Fg MYDDvu51EKvi6cW0TOxofTu/h8MvJj6x6aT2d9DMi5zi7T9y/IzJoDA+74shyNJZPATkkO SeYxEIHr6ohI/QC0P7Zdg5EVnvDeK2YJF7wm0gnXYJgKSEuGafYSmLnRH70WZsTZLvZ1nC ccS6jkhS52dqzQSUpixI5AyVZDY8qKwOxi4uQ7YOtil44BrnLyXm6R0b1dewvw+E7oZMRU S+y/p2wBvSc/lP9jtrgmxPx91EYcTYNgxPflgwONPOW78tIRTWrR8kYAnPTeYg== 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 4Zn85P75bPzXV9; Tue, 29 Apr 2025 18:30:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TIUnj7022947; Tue, 29 Apr 2025 18:30:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TIUnke022944; Tue, 29 Apr 2025 18:30:49 GMT (envelope-from git) Date: Tue, 29 Apr 2025 18:30:49 GMT Message-Id: <202504291830.53TIUnke022944@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 6f27822152e4 - stable/14 - dev: Use recently added improvements to PME# support to simplify drivers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6f27822152e46c1890db0a17737517c1beba8ea3 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=6f27822152e46c1890db0a17737517c1beba8ea3 commit 6f27822152e46c1890db0a17737517c1beba8ea3 Author: John Baldwin AuthorDate: 2025-03-27 20:55:12 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:45:07 +0000 dev: Use recently added improvements to PME# support to simplify drivers Depend on the PCI bus driver clearing PME# after resume to remove the need for clearing PME# from DEVICE_RESUME methods. Use pci_has_pm and pci_enable_pme. Reviewed by: Krzysztof Galazka Differential Revision: https://reviews.freebsd.org/D49251 (cherry picked from commit ddaf6524682b3ab9e50f7575db319814dbbd053a) --- sys/dev/ae/if_ae.c | 15 ++++----------- sys/dev/age/if_age.c | 15 +++++---------- sys/dev/age/if_agevar.h | 1 - sys/dev/alc/if_alc.c | 32 ++++---------------------------- sys/dev/alc/if_alcvar.h | 1 - sys/dev/ale/if_ale.c | 28 +++++----------------------- sys/dev/ale/if_alevar.h | 1 - sys/dev/e1000/if_em.c | 10 +++------- sys/dev/fxp/if_fxp.c | 34 ++++++++++------------------------ sys/dev/igc/if_igc.c | 10 +++------- sys/dev/jme/if_jme.c | 26 +++++--------------------- sys/dev/jme/if_jmevar.h | 1 - sys/dev/nfe/if_nfe.c | 11 +++-------- sys/dev/nge/if_nge.c | 23 +++-------------------- sys/dev/re/if_re.c | 14 ++++---------- sys/dev/rl/if_rl.c | 27 ++++----------------------- sys/dev/sis/if_sis.c | 15 +++------------ sys/dev/ste/if_ste.c | 25 ++++--------------------- sys/dev/vge/if_vge.c | 23 ++--------------------- sys/dev/vge/if_vgevar.h | 1 - sys/dev/vr/if_vr.c | 16 +++++----------- sys/dev/xl/if_xl.c | 16 ++++------------ sys/dev/xl/if_xlreg.h | 1 - 23 files changed, 71 insertions(+), 275 deletions(-) diff --git a/sys/dev/ae/if_ae.c b/sys/dev/ae/if_ae.c index d6258af3b6b1..56e945ac4a00 100644 --- a/sys/dev/ae/if_ae.c +++ b/sys/dev/ae/if_ae.c @@ -239,7 +239,7 @@ ae_attach(device_t dev) if_t ifp; uint8_t chiprev; uint32_t pcirev; - int nmsi, pmc; + int nmsi; int error; sc = device_get_softc(dev); /* Automatically allocated and zeroed @@ -337,7 +337,7 @@ ae_attach(device_t dev) if_sethwassist(ifp, 0); if_setsendqlen(ifp, ifqmaxlen); if_setsendqready(ifp); - if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) { + if (pci_has_pm(dev)) { if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC, 0); sc->flags |= AE_FLAG_PMG; } @@ -1307,9 +1307,7 @@ ae_pm_init(ae_softc_t *sc) { if_t ifp; uint32_t val; - uint16_t pmstat; struct mii_data *mii; - int pmc; AE_LOCK_ASSERT(sc); @@ -1368,13 +1366,8 @@ ae_pm_init(ae_softc_t *sc) /* * Configure PME. */ - if (pci_find_cap(sc->dev, PCIY_PMG, &pmc) == 0) { - pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); - if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->dev, pmc + PCIR_POWER_STATUS, pmstat, 2); - } + if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) + pci_enable_pme(sc->dev); } static int diff --git a/sys/dev/age/if_age.c b/sys/dev/age/if_age.c index 180d9a368beb..ce43fdbdf385 100644 --- a/sys/dev/age/if_age.c +++ b/sys/dev/age/if_age.c @@ -461,7 +461,7 @@ age_attach(device_t dev) struct age_softc *sc; if_t ifp; uint16_t burst; - int error, i, msic, msixc, pmc; + int error, i, msic, msixc; error = 0; sc = device_get_softc(dev); @@ -601,8 +601,7 @@ age_attach(device_t dev) if_setsendqready(ifp); if_setcapabilities(ifp, IFCAP_HWCSUM | IFCAP_TSO4); if_sethwassist(ifp, AGE_CSUM_FEATURES | CSUM_TSO); - if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) { - sc->age_flags |= AGE_FLAG_PMCAP; + if (pci_has_pm(dev)) { if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC | IFCAP_WOL_MCAST, 0); } if_setcapenable(ifp, if_getcapabilities(ifp)); @@ -1308,12 +1307,11 @@ age_setwol(struct age_softc *sc) if_t ifp; struct mii_data *mii; uint32_t reg, pmcs; - uint16_t pmstat; - int aneg, i, pmc; + int aneg, i; AGE_LOCK_ASSERT(sc); - if (pci_find_cap(sc->age_dev, PCIY_PMG, &pmc) != 0) { + if (!pci_has_pm(sc->age_dev)) { CSR_WRITE_4(sc, AGE_WOL_CFG, 0); /* * No PME capability, PHY power down. @@ -1419,11 +1417,8 @@ got_link: } /* Request PME. */ - pmstat = pci_read_config(sc->age_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->age_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->age_dev); #ifdef notyet /* See above for powering down PHY issues. */ if ((if_getcapenable(ifp) & IFCAP_WOL) == 0) { diff --git a/sys/dev/age/if_agevar.h b/sys/dev/age/if_agevar.h index 72073654d5d2..54e26fed8416 100644 --- a/sys/dev/age/if_agevar.h +++ b/sys/dev/age/if_agevar.h @@ -210,7 +210,6 @@ struct age_softc { #define AGE_FLAG_PCIX 0x0002 #define AGE_FLAG_MSI 0x0004 #define AGE_FLAG_MSIX 0x0008 -#define AGE_FLAG_PMCAP 0x0010 #define AGE_FLAG_DETACH 0x4000 #define AGE_FLAG_LINK 0x8000 diff --git a/sys/dev/alc/if_alc.c b/sys/dev/alc/if_alc.c index 08f9f439aace..4e8745024036 100644 --- a/sys/dev/alc/if_alc.c +++ b/sys/dev/alc/if_alc.c @@ -1595,10 +1595,9 @@ alc_attach(device_t dev) if_setsendqready(ifp); if_setcapabilities(ifp, IFCAP_TXCSUM | IFCAP_TSO4); if_sethwassist(ifp, ALC_CSUM_FEATURES | CSUM_TSO); - if (pci_find_cap(dev, PCIY_PMG, &base) == 0) { + if (pci_has_pm(dev)) { if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC | IFCAP_WOL_MCAST, 0); sc->alc_flags |= ALC_FLAG_PM; - sc->alc_pmcap = base; } if_setcapenable(ifp, if_getcapabilities(ifp)); @@ -2535,7 +2534,6 @@ alc_setwol_813x(struct alc_softc *sc) { if_t ifp; uint32_t reg, pmcs; - uint16_t pmstat; ALC_LOCK_ASSERT(sc); @@ -2584,13 +2582,8 @@ alc_setwol_813x(struct alc_softc *sc) CSR_READ_4(sc, ALC_MASTER_CFG) | MASTER_CLK_SEL_DIS); } /* Request PME. */ - pmstat = pci_read_config(sc->alc_dev, - sc->alc_pmcap + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->alc_dev, - sc->alc_pmcap + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->alc_dev); } static void @@ -2598,7 +2591,6 @@ alc_setwol_816x(struct alc_softc *sc) { if_t ifp; uint32_t gphy, mac, master, pmcs, reg; - uint16_t pmstat; ALC_LOCK_ASSERT(sc); @@ -2649,13 +2641,8 @@ alc_setwol_816x(struct alc_softc *sc) if ((sc->alc_flags & ALC_FLAG_PM) != 0) { /* Request PME. */ - pmstat = pci_read_config(sc->alc_dev, - sc->alc_pmcap + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->alc_dev, - sc->alc_pmcap + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->alc_dev); } } @@ -2679,22 +2666,11 @@ alc_resume(device_t dev) { struct alc_softc *sc; if_t ifp; - uint16_t pmstat; sc = device_get_softc(dev); - ALC_LOCK(sc); - if ((sc->alc_flags & ALC_FLAG_PM) != 0) { - /* Disable PME and clear PME status. */ - pmstat = pci_read_config(sc->alc_dev, - sc->alc_pmcap + PCIR_POWER_STATUS, 2); - if ((pmstat & PCIM_PSTAT_PMEENABLE) != 0) { - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->alc_dev, - sc->alc_pmcap + PCIR_POWER_STATUS, pmstat, 2); - } - } /* Reset PHY. */ + ALC_LOCK(sc); alc_phy_reset(sc); ifp = sc->alc_ifp; if ((if_getflags(ifp) & IFF_UP) != 0) { diff --git a/sys/dev/alc/if_alcvar.h b/sys/dev/alc/if_alcvar.h index f68c22146868..c3073c6f0a2e 100644 --- a/sys/dev/alc/if_alcvar.h +++ b/sys/dev/alc/if_alcvar.h @@ -219,7 +219,6 @@ struct alc_softc { uint32_t alc_dma_wr_burst; uint32_t alc_rcb; int alc_expcap; - int alc_pmcap; int alc_flags; #define ALC_FLAG_PCIE 0x0001 #define ALC_FLAG_PCIX 0x0002 diff --git a/sys/dev/ale/if_ale.c b/sys/dev/ale/if_ale.c index eba1a2430be0..e0b936994ada 100644 --- a/sys/dev/ale/if_ale.c +++ b/sys/dev/ale/if_ale.c @@ -453,7 +453,7 @@ ale_attach(device_t dev) struct ale_softc *sc; if_t ifp; uint16_t burst; - int error, i, msic, msixc, pmc; + int error, i, msic, msixc; uint32_t rxf_len, txf_len; error = 0; @@ -620,8 +620,7 @@ ale_attach(device_t dev) if_setsendqready(ifp); if_setcapabilities(ifp, IFCAP_RXCSUM | IFCAP_TXCSUM | IFCAP_TSO4); if_sethwassist(ifp, ALE_CSUM_FEATURES | CSUM_TSO); - if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) { - sc->ale_flags |= ALE_FLAG_PMCAP; + if (pci_has_pm(dev)) { if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC | IFCAP_WOL_MCAST, 0); } if_setcapenable(ifp, if_getcapabilities(ifp)); @@ -1472,12 +1471,10 @@ ale_setwol(struct ale_softc *sc) { if_t ifp; uint32_t reg, pmcs; - uint16_t pmstat; - int pmc; ALE_LOCK_ASSERT(sc); - if (pci_find_cap(sc->ale_dev, PCIY_PMG, &pmc) != 0) { + if (!pci_has_pm(sc->ale_dev)) { /* Disable WOL. */ CSR_WRITE_4(sc, ALE_WOL_CFG, 0); reg = CSR_READ_4(sc, ALE_PCIE_PHYMISC); @@ -1523,11 +1520,8 @@ ale_setwol(struct ale_softc *sc) GPHY_CTRL_PWDOWN_HW); } /* Request PME. */ - pmstat = pci_read_config(sc->ale_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->ale_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->ale_dev); } static int @@ -1550,23 +1544,11 @@ ale_resume(device_t dev) { struct ale_softc *sc; if_t ifp; - int pmc; - uint16_t pmstat; sc = device_get_softc(dev); - ALE_LOCK(sc); - if (pci_find_cap(sc->ale_dev, PCIY_PMG, &pmc) == 0) { - /* Disable PME and clear PME status. */ - pmstat = pci_read_config(sc->ale_dev, - pmc + PCIR_POWER_STATUS, 2); - if ((pmstat & PCIM_PSTAT_PMEENABLE) != 0) { - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->ale_dev, - pmc + PCIR_POWER_STATUS, pmstat, 2); - } - } /* Reset PHY. */ + ALE_LOCK(sc); ale_phy_reset(sc); ifp = sc->ale_ifp; if ((if_getflags(ifp) & IFF_UP) != 0) { diff --git a/sys/dev/ale/if_alevar.h b/sys/dev/ale/if_alevar.h index 2baff5106b81..74ed9edb0ff3 100644 --- a/sys/dev/ale/if_alevar.h +++ b/sys/dev/ale/if_alevar.h @@ -200,7 +200,6 @@ struct ale_softc { #define ALE_FLAG_PCIX 0x0002 #define ALE_FLAG_MSI 0x0004 #define ALE_FLAG_MSIX 0x0008 -#define ALE_FLAG_PMCAP 0x0010 #define ALE_FLAG_FASTETHER 0x0020 #define ALE_FLAG_JUMBO 0x0040 #define ALE_FLAG_RXCSUM_BUG 0x0080 diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c index 449cb9e07f3a..f49682285875 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -4503,10 +4503,9 @@ em_enable_wakeup(if_ctx_t ctx) device_t dev = iflib_get_dev(ctx); if_t ifp = iflib_get_ifp(ctx); int error = 0; - u32 pmc, ctrl, ctrl_ext, rctl; - u16 status; + u32 ctrl, ctrl_ext, rctl; - if (pci_find_cap(dev, PCIY_PMG, &pmc) != 0) + if (!pci_has_pm(dev)) return; /* @@ -4563,11 +4562,8 @@ em_enable_wakeup(if_ctx_t ctx) e1000_igp3_phy_powerdown_workaround_ich8lan(&sc->hw); pme: - status = pci_read_config(dev, pmc + PCIR_POWER_STATUS, 2); - status &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if (!error && (if_getcapenable(ifp) & IFCAP_WOL)) - status |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(dev, pmc + PCIR_POWER_STATUS, status, 2); + pci_enable_pme(dev); return; } diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c index 966647051c21..c8f35e80fb17 100644 --- a/sys/dev/fxp/if_fxp.c +++ b/sys/dev/fxp/if_fxp.c @@ -431,7 +431,7 @@ fxp_attach(device_t dev) uint32_t val; uint16_t data; u_char eaddr[ETHER_ADDR_LEN]; - int error, flags, i, pmc, prefer_iomap; + int error, flags, i, prefer_iomap; error = 0; sc = device_get_softc(dev); @@ -518,8 +518,7 @@ fxp_attach(device_t dev) if (sc->revision >= FXP_REV_82558_A4 && sc->revision != FXP_REV_82559S_A) { data = sc->eeprom[FXP_EEPROM_MAP_ID]; - if ((data & 0x20) != 0 && - pci_find_cap(sc->dev, PCIY_PMG, &pmc) == 0) + if ((data & 0x20) != 0 && pci_has_pm(sc->dev)) sc->flags |= FXP_FLAG_WOLCAP; } @@ -1056,24 +1055,17 @@ fxp_suspend(device_t dev) { struct fxp_softc *sc = device_get_softc(dev); if_t ifp; - int pmc; - uint16_t pmstat; FXP_LOCK(sc); ifp = sc->ifp; - if (pci_find_cap(sc->dev, PCIY_PMG, &pmc) == 0) { - pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); - if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) { - /* Request PME. */ - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - sc->flags |= FXP_FLAG_WOL; - /* Reconfigure hardware to accept magic frames. */ - if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING); - fxp_init_body(sc, 0); - } - pci_write_config(sc->dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) { + /* Request PME. */ + pci_enable_pme(sc->dev); + sc->flags |= FXP_FLAG_WOL; + /* Reconfigure hardware to accept magic frames. */ + if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING); + fxp_init_body(sc, 0); } fxp_stop(sc); @@ -1092,17 +1084,11 @@ fxp_resume(device_t dev) { struct fxp_softc *sc = device_get_softc(dev); if_t ifp = sc->ifp; - int pmc; - uint16_t pmstat; FXP_LOCK(sc); - if (pci_find_cap(sc->dev, PCIY_PMG, &pmc) == 0) { + if (pci_has_pm(sc->dev)) { sc->flags &= ~FXP_FLAG_WOL; - pmstat = pci_read_config(sc->dev, pmc + PCIR_POWER_STATUS, 2); - /* Disable PME and clear PME status. */ - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->dev, pmc + PCIR_POWER_STATUS, pmstat, 2); if ((sc->flags & FXP_FLAG_WOLCAP) != 0) CSR_WRITE_1(sc, FXP_CSR_PMDR, CSR_READ_1(sc, FXP_CSR_PMDR)); diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c index 7402f89d56ff..318d2770911c 100644 --- a/sys/dev/igc/if_igc.c +++ b/sys/dev/igc/if_igc.c @@ -2450,10 +2450,9 @@ igc_enable_wakeup(if_ctx_t ctx) device_t dev = iflib_get_dev(ctx); if_t ifp = iflib_get_ifp(ctx); int error = 0; - u32 pmc, ctrl, rctl; - u16 status; + u32 ctrl, rctl; - if (pci_find_cap(dev, PCIY_PMG, &pmc) != 0) + if (!pci_has_pm(dev)) return; /* @@ -2487,11 +2486,8 @@ igc_enable_wakeup(if_ctx_t ctx) IGC_WRITE_REG(&sc->hw, IGC_WUFC, sc->wol); pme: - status = pci_read_config(dev, pmc + PCIR_POWER_STATUS, 2); - status &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if (!error && (if_getcapenable(ifp) & IFCAP_WOL)) - status |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(dev, pmc + PCIR_POWER_STATUS, status, 2); + pci_enable_pme(dev); return; } diff --git a/sys/dev/jme/if_jme.c b/sys/dev/jme/if_jme.c index 05a67d34b6f8..7b1904d88db2 100644 --- a/sys/dev/jme/if_jme.c +++ b/sys/dev/jme/if_jme.c @@ -626,7 +626,7 @@ jme_attach(device_t dev) struct mii_data *mii; uint32_t reg; uint16_t burst; - int error, i, mii_flags, msic, msixc, pmc; + int error, i, mii_flags, msic, msixc; error = 0; sc = device_get_softc(dev); @@ -816,8 +816,7 @@ jme_attach(device_t dev) /* JMC250 supports Tx/Rx checksum offload as well as TSO. */ if_setcapabilities(ifp, IFCAP_HWCSUM | IFCAP_TSO4); if_sethwassist(ifp, JME_CSUM_FEATURES | CSUM_TSO); - if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) { - sc->jme_flags |= JME_FLAG_PMCAP; + if (pci_has_pm(dev)) { if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC, 0); } if_setcapenable(ifp, if_getcapabilities(ifp)); @@ -1567,12 +1566,10 @@ jme_setwol(struct jme_softc *sc) { if_t ifp; uint32_t gpr, pmcs; - uint16_t pmstat; - int pmc; JME_LOCK_ASSERT(sc); - if (pci_find_cap(sc->jme_dev, PCIY_PMG, &pmc) != 0) { + if (!pci_has_pm(sc->jme_dev)) { /* Remove Tx MAC/offload clock to save more power. */ if ((sc->jme_flags & JME_FLAG_TXCLK) != 0) CSR_WRITE_4(sc, JME_GHC, CSR_READ_4(sc, JME_GHC) & @@ -1607,11 +1604,8 @@ jme_setwol(struct jme_softc *sc) ~(GHC_TX_OFFLD_CLK_100 | GHC_TX_MAC_CLK_100 | GHC_TX_OFFLD_CLK_1000 | GHC_TX_MAC_CLK_1000)); /* Request PME. */ - pmstat = pci_read_config(sc->jme_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->jme_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->jme_dev); if ((if_getcapenable(ifp) & IFCAP_WOL) == 0) { /* No WOL, PHY power down. */ jme_phy_down(sc); @@ -1638,21 +1632,11 @@ jme_resume(device_t dev) { struct jme_softc *sc; if_t ifp; - uint16_t pmstat; - int pmc; sc = device_get_softc(dev); - JME_LOCK(sc); - if (pci_find_cap(sc->jme_dev, PCIY_PMG, &pmc) == 0) { - pmstat = pci_read_config(sc->jme_dev, - pmc + PCIR_POWER_STATUS, 2); - /* Disable PME clear PME status. */ - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->jme_dev, - pmc + PCIR_POWER_STATUS, pmstat, 2); - } /* Wakeup PHY. */ + JME_LOCK(sc); jme_phy_up(sc); ifp = sc->jme_ifp; if ((if_getflags(ifp) & IFF_UP) != 0) { diff --git a/sys/dev/jme/if_jmevar.h b/sys/dev/jme/if_jmevar.h index c22c0dee1077..5be250567f8c 100644 --- a/sys/dev/jme/if_jmevar.h +++ b/sys/dev/jme/if_jmevar.h @@ -190,7 +190,6 @@ struct jme_softc { #define JME_FLAG_PCIX 0x00000004 #define JME_FLAG_MSI 0x00000008 #define JME_FLAG_MSIX 0x00000010 -#define JME_FLAG_PMCAP 0x00000020 #define JME_FLAG_FASTETH 0x00000040 #define JME_FLAG_NOJUMBO 0x00000080 #define JME_FLAG_RXCLK 0x00000100 diff --git a/sys/dev/nfe/if_nfe.c b/sys/dev/nfe/if_nfe.c index 15f4cd1f7c7b..27a2a3315db4 100644 --- a/sys/dev/nfe/if_nfe.c +++ b/sys/dev/nfe/if_nfe.c @@ -608,7 +608,7 @@ nfe_attach(device_t dev) (IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO), 0); } - if (pci_find_cap(dev, PCIY_PMG, ®) == 0) + if (pci_has_pm(dev)) if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC, 0); if_setcapenable(ifp, if_getcapabilities(ifp)); @@ -3311,12 +3311,10 @@ nfe_set_wol(struct nfe_softc *sc) { if_t ifp; uint32_t wolctl; - int pmc; - uint16_t pmstat; NFE_LOCK_ASSERT(sc); - if (pci_find_cap(sc->nfe_dev, PCIY_PMG, &pmc) != 0) + if (!pci_has_pm(sc->nfe_dev)) return; ifp = sc->nfe_ifp; if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) @@ -3336,9 +3334,6 @@ nfe_set_wol(struct nfe_softc *sc) NFE_RX_START); } /* Request PME if WOL is requested. */ - pmstat = pci_read_config(sc->nfe_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->nfe_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->nfe_dev); } diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c index c7c2b3c99d5a..d0df48e76feb 100644 --- a/sys/dev/nge/if_nge.c +++ b/sys/dev/nge/if_nge.c @@ -915,7 +915,7 @@ nge_attach(device_t dev) * supply(3VAUX) to drive PME such that checking PCI power * management capability is necessary. */ - if (pci_find_cap(sc->nge_dev, PCIY_PMG, &i) == 0) + if (pci_has_pm(sc->nge_dev)) if_setcapabilitiesbit(ifp, IFCAP_WOL, 0); if_setcapenable(ifp, if_getcapabilities(ifp)); @@ -2514,12 +2514,10 @@ nge_wol(struct nge_softc *sc) { if_t ifp; uint32_t reg; - uint16_t pmstat; - int pmc; NGE_LOCK_ASSERT(sc); - if (pci_find_cap(sc->nge_dev, PCIY_PMG, &pmc) != 0) + if (!pci_has_pm(sc->nge_dev)) return; ifp = sc->nge_ifp; @@ -2560,11 +2558,8 @@ nge_wol(struct nge_softc *sc) } /* Request PME. */ - pmstat = pci_read_config(sc->nge_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->nge_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->nge_dev); } /* @@ -2599,23 +2594,11 @@ nge_resume(device_t dev) { struct nge_softc *sc; if_t ifp; - uint16_t pmstat; - int pmc; sc = device_get_softc(dev); NGE_LOCK(sc); ifp = sc->nge_ifp; - if (pci_find_cap(sc->nge_dev, PCIY_PMG, &pmc) == 0) { - /* Disable PME and clear PME status. */ - pmstat = pci_read_config(sc->nge_dev, - pmc + PCIR_POWER_STATUS, 2); - if ((pmstat & PCIM_PSTAT_PMEENABLE) != 0) { - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->nge_dev, - pmc + PCIR_POWER_STATUS, pmstat, 2); - } - } if (if_getflags(ifp) & IFF_UP) { if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING); nge_init_locked(sc); diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index 69593e68d36f..0d4f1dddf46a 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -1685,7 +1685,7 @@ re_attach(device_t dev) if (if_getcapabilities(ifp) & IFCAP_HWCSUM) if_setcapabilitiesbit(ifp, IFCAP_VLAN_HWCSUM, 0); /* Enable WOL if PM is supported. */ - if (pci_find_cap(sc->rl_dev, PCIY_PMG, ®) == 0) + if (pci_has_pm(sc->rl_dev)) if_setcapabilitiesbit(ifp, IFCAP_WOL, 0); if_setcapenable(ifp, if_getcapabilities(ifp)); if_setcapenablebit(ifp, 0, (IFCAP_WOL_UCAST | IFCAP_WOL_MCAST)); @@ -3861,13 +3861,11 @@ static void re_setwol(struct rl_softc *sc) { if_t ifp; - int pmc; - uint16_t pmstat; uint8_t v; RL_LOCK_ASSERT(sc); - if (pci_find_cap(sc->rl_dev, PCIY_PMG, &pmc) != 0) + if (!pci_has_pm(sc->rl_dev)) return; ifp = sc->rl_ifp; @@ -3929,22 +3927,18 @@ re_setwol(struct rl_softc *sc) */ /* Request PME if WOL is requested. */ - pmstat = pci_read_config(sc->rl_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->rl_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->rl_dev); } static void re_clrwol(struct rl_softc *sc) { - int pmc; uint8_t v; RL_LOCK_ASSERT(sc); - if (pci_find_cap(sc->rl_dev, PCIY_PMG, &pmc) != 0) + if (!pci_has_pm(sc->rl_dev)) return; /* Enable config register write. */ diff --git a/sys/dev/rl/if_rl.c b/sys/dev/rl/if_rl.c index cd60561ad2d8..e7da6ad635bc 100644 --- a/sys/dev/rl/if_rl.c +++ b/sys/dev/rl/if_rl.c @@ -640,7 +640,7 @@ rl_attach(device_t dev) const struct rl_type *t; struct sysctl_ctx_list *ctx; struct sysctl_oid_list *children; - int error = 0, hwrev, i, phy, pmc, rid; + int error = 0, hwrev, i, phy, rid; int prefer_iomap, unit; uint16_t rl_did = 0; char tn[32]; @@ -803,8 +803,7 @@ rl_attach(device_t dev) if_setinitfn(ifp, rl_init); if_setcapabilities(ifp, IFCAP_VLAN_MTU); /* Check WOL for RTL8139B or newer controllers. */ - if (sc->rl_type == RL_8139 && - pci_find_cap(sc->rl_dev, PCIY_PMG, &pmc) == 0) { + if (sc->rl_type == RL_8139 && pci_has_pm(sc->rl_dev)) { hwrev = CSR_READ_4(sc, RL_TXCFG) & RL_TXCFG_HWREV; switch (hwrev) { case RL_HWREV_8139B: @@ -1974,24 +1973,13 @@ rl_resume(device_t dev) { struct rl_softc *sc; if_t ifp; - int pmc; - uint16_t pmstat; sc = device_get_softc(dev); ifp = sc->rl_ifp; RL_LOCK(sc); - if ((if_getcapabilities(ifp) & IFCAP_WOL) != 0 && - pci_find_cap(sc->rl_dev, PCIY_PMG, &pmc) == 0) { - /* Disable PME and clear PME status. */ - pmstat = pci_read_config(sc->rl_dev, - pmc + PCIR_POWER_STATUS, 2); - if ((pmstat & PCIM_PSTAT_PMEENABLE) != 0) { - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->rl_dev, - pmc + PCIR_POWER_STATUS, pmstat, 2); - } + if ((if_getcapabilities(ifp) & IFCAP_WOL) != 0) { /* * Clear WOL matching such that normal Rx filtering * wouldn't interfere with WOL patterns. @@ -2039,8 +2027,6 @@ static void rl_setwol(struct rl_softc *sc) { if_t ifp; - int pmc; - uint16_t pmstat; uint8_t v; RL_LOCK_ASSERT(sc); @@ -2048,8 +2034,6 @@ rl_setwol(struct rl_softc *sc) ifp = sc->rl_ifp; if ((if_getcapabilities(ifp) & IFCAP_WOL) == 0) return; - if (pci_find_cap(sc->rl_dev, PCIY_PMG, &pmc) != 0) - return; /* Enable config register write. */ CSR_WRITE_1(sc, RL_EECMD, RL_EE_MODE); @@ -2082,11 +2066,8 @@ rl_setwol(struct rl_softc *sc) CSR_WRITE_1(sc, RL_EECMD, RL_EEMODE_OFF); /* Request PME if WOL is requested. */ - pmstat = pci_read_config(sc->rl_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->rl_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->rl_dev); } static void diff --git a/sys/dev/sis/if_sis.c b/sys/dev/sis/if_sis.c index 64a43b2bf51e..5e7ae206ce93 100644 --- a/sys/dev/sis/if_sis.c +++ b/sys/dev/sis/if_sis.c @@ -898,7 +898,7 @@ sis_attach(device_t dev) u_char eaddr[ETHER_ADDR_LEN]; struct sis_softc *sc; if_t ifp; - int error = 0, pmc; + int error = 0; sc = device_get_softc(dev); @@ -1066,7 +1066,7 @@ sis_attach(device_t dev) if_setsendqlen(ifp, SIS_TX_LIST_CNT - 1); if_setsendqready(ifp); - if (pci_find_cap(sc->sis_dev, PCIY_PMG, &pmc) == 0) { + if (pci_has_pm(sc->sis_dev)) { if (sc->sis_type == SIS_TYPE_83815) if_setcapabilitiesbit(ifp, IFCAP_WOL, 0); else @@ -2313,8 +2313,6 @@ sis_wol(struct sis_softc *sc) { if_t ifp; uint32_t val; - uint16_t pmstat; - int pmc; ifp = sc->sis_ifp; if ((if_getcapenable(ifp) & IFCAP_WOL) == 0) @@ -2341,20 +2339,13 @@ sis_wol(struct sis_softc *sc) /* Enable silent RX mode. */ SIS_SETBIT(sc, SIS_CSR, SIS_CSR_RX_ENABLE); } else { - if (pci_find_cap(sc->sis_dev, PCIY_PMG, &pmc) != 0) - return; val = 0; if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) val |= SIS_PWRMAN_WOL_MAGIC; CSR_WRITE_4(sc, SIS_PWRMAN_CTL, val); /* Request PME. */ - pmstat = pci_read_config(sc->sis_dev, - pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->sis_dev, - pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->sis_dev); } } diff --git a/sys/dev/ste/if_ste.c b/sys/dev/ste/if_ste.c index 06e25175c617..678ed65ce14a 100644 --- a/sys/dev/ste/if_ste.c +++ b/sys/dev/ste/if_ste.c @@ -905,7 +905,7 @@ ste_attach(device_t dev) struct ste_softc *sc; if_t ifp; uint16_t eaddr[ETHER_ADDR_LEN / 2]; - int error = 0, phy, pmc, prefer_iomap, rid; + int error = 0, phy, prefer_iomap, rid; sc = device_get_softc(dev); sc->ste_dev = dev; @@ -1020,7 +1020,7 @@ ste_attach(device_t dev) */ if_setifheaderlen(ifp, sizeof(struct ether_vlan_header)); if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0); - if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) + if (pci_has_pm(dev)) if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC, 0); if_setcapenable(ifp, if_getcapabilities(ifp)); #ifdef DEVICE_POLLING @@ -1994,21 +1994,9 @@ ste_resume(device_t dev) { struct ste_softc *sc; if_t ifp; - int pmc; - uint16_t pmstat; sc = device_get_softc(dev); STE_LOCK(sc); - if (pci_find_cap(sc->ste_dev, PCIY_PMG, &pmc) == 0) { - /* Disable PME and clear PME status. */ - pmstat = pci_read_config(sc->ste_dev, - pmc + PCIR_POWER_STATUS, 2); - if ((pmstat & PCIM_PSTAT_PMEENABLE) != 0) { - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->ste_dev, - pmc + PCIR_POWER_STATUS, pmstat, 2); - } - } ifp = sc->ste_ifp; if ((if_getflags(ifp) & IFF_UP) != 0) { if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING); @@ -2097,13 +2085,11 @@ static void ste_setwol(struct ste_softc *sc) { if_t ifp; - uint16_t pmstat; uint8_t val; - int pmc; STE_LOCK_ASSERT(sc); - if (pci_find_cap(sc->ste_dev, PCIY_PMG, &pmc) != 0) { + if (!pci_has_pm(sc->ste_dev)) { /* Disable WOL. */ CSR_READ_1(sc, STE_WAKE_EVENT); CSR_WRITE_1(sc, STE_WAKE_EVENT, 0); @@ -2118,9 +2104,6 @@ ste_setwol(struct ste_softc *sc) val |= STE_WAKEEVENT_MAGICPKT_ENB | STE_WAKEEVENT_WAKEONLAN_ENB; CSR_WRITE_1(sc, STE_WAKE_EVENT, val); /* Request PME. */ - pmstat = pci_read_config(sc->ste_dev, pmc + PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->ste_dev, pmc + PCIR_POWER_STATUS, pmstat, 2); + pci_enable_pme(sc->ste_dev); } diff --git a/sys/dev/vge/if_vge.c b/sys/dev/vge/if_vge.c index 9f71049a150b..a8ae8bf93857 100644 --- a/sys/dev/vge/if_vge.c +++ b/sys/dev/vge/if_vge.c @@ -1024,10 +1024,8 @@ vge_attach(device_t dev) sc->vge_expcap = cap; } else sc->vge_flags |= VGE_FLAG_JUMBO; - if (pci_find_cap(dev, PCIY_PMG, &cap) == 0) { + if (pci_has_pm(dev)) sc->vge_flags |= VGE_FLAG_PMCAP; - sc->vge_pmcap = cap; - } rid = 0; msic = pci_msi_count(dev); if (msi_disable == 0 && msic > 0) { @@ -2446,20 +2444,9 @@ vge_resume(device_t dev) { struct vge_softc *sc; if_t ifp; - uint16_t pmstat; sc = device_get_softc(dev); VGE_LOCK(sc); - if ((sc->vge_flags & VGE_FLAG_PMCAP) != 0) { - /* Disable PME and clear PME status. */ - pmstat = pci_read_config(sc->vge_dev, - sc->vge_pmcap + PCIR_POWER_STATUS, 2); - if ((pmstat & PCIM_PSTAT_PMEENABLE) != 0) { - pmstat &= ~PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->vge_dev, - sc->vge_pmcap + PCIR_POWER_STATUS, pmstat, 2); - } - } vge_clrwol(sc); /* Restart MII auto-polling. */ vge_miipoll_start(sc); @@ -2838,7 +2825,6 @@ static void vge_setwol(struct vge_softc *sc) { if_t ifp; - uint16_t pmstat; uint8_t val; VGE_LOCK_ASSERT(sc); @@ -2890,13 +2876,8 @@ vge_setwol(struct vge_softc *sc) val |= VGE_STICKHW_DS0 | VGE_STICKHW_DS1; CSR_WRITE_1(sc, VGE_PWRSTAT, val); /* Request PME if WOL is requested. */ - pmstat = pci_read_config(sc->vge_dev, sc->vge_pmcap + - PCIR_POWER_STATUS, 2); - pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE); if ((if_getcapenable(ifp) & IFCAP_WOL) != 0) - pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE; - pci_write_config(sc->vge_dev, sc->vge_pmcap + PCIR_POWER_STATUS, - pmstat, 2); + pci_enable_pme(sc->vge_dev); } static void diff --git a/sys/dev/vge/if_vgevar.h b/sys/dev/vge/if_vgevar.h index 84bd7bcb0fc5..d2b1cf8e4b2a 100644 --- a/sys/dev/vge/if_vgevar.h +++ b/sys/dev/vge/if_vgevar.h @@ -191,7 +191,6 @@ struct vge_softc { #define VGE_FLAG_SUSPENDED 0x4000 *** 126 LINES SKIPPED *** From nobody Tue Apr 29 20:33:08 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnBpX6S7pz5vWh6; Tue, 29 Apr 2025 20:33: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnBpX3pqsz45Gw; Tue, 29 Apr 2025 20:33:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lpLN365jlUQjE0sf2hUN4OsgO3RTxAbLYZpRng3q/D8=; b=QmZe1CUWYefAx3XGVJEpdkVXER8lghOqmBnLDNOcBs/IVCeV+ifa2CnO6nllSkI6xs6Ce0 iezAZ1o6ugWlQJyvoLjSE+T8VzzaStMTkkUftxC+AELMpBoOzWEfYDFmVkPGgguDf9vxvA h54BcQw1GxG8aX9F8vZV7qsupB+46up8CVPJ9l5fVwZ2Qu7B8+VDvolwhMjNB7ZyY7BuUq BpDJxeILPMoWkiXtpUqbqHCKKA/PAMpRdcWZ9i1EonD2FquMDHox+l9TscrsnlUPjFE5SK IUUrtnyL5N6GOlmJ7O7I2lkgUAZzz3XhX62QH4Ke5YnXYRLzzaHcbL3PnEA/Yg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745958788; a=rsa-sha256; cv=none; b=ihnIpo/C7sF8RW3TwsoCWhfHwSeRMQmooZ1viWbdwOTXoQfrdNN0pmbX+JfyHDBW/FjI5U Vm22rz09dpIZ94lDFLXU0eOBOrrvQKK84DiPIhFD6JgJFwa6OiENCsOaM5JuCB6dV902Ud X8FVX/W7Xr0STjgOfjOdc/gPpIaAqNBzjNF/RL1wAKnlZYx0bqRmBhUYgFlkKBFM4oQYbn SwlscCPbp2cqrs4VKHCSjko26rfVZdoK4ZWqtNAIPU7vXSgewHNN5rTLe9frON66hOqfgH VqBDZU3bdfrM/CpGPbUxruOKf+NfFjDZf1bv2Q75oOoS831KFBjCDAoO6QW9qw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958788; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lpLN365jlUQjE0sf2hUN4OsgO3RTxAbLYZpRng3q/D8=; b=hBzJyWHvygc2uXHvrGzBXEoGbXaw1gn/9VffuJxAGT0VsgZRQzEyw6LkgDMVpU892+CrT9 BS2yrWB7108DjEMo7CbEUl20w1UX8S12ESdBUuCncfIruTsCtWXoQR+iFQ6pF+ILbmZ0hN u0YHKjFS/vMuH9X8f+a7dKoTjXJjtOgOYcpUlQBUrLub6b7d21YHRy+B9OiutH6Shic2s3 n8bqxrlPRiOpIj0EJDHHxIRC9+omPYBO5EYAcQ2+sKOr+HSnl3Kv/zsygiJcSxlk+oZLce K6FFU1VpNi/cHZG61+b1Opyp6CInaWNsgOm5+HyUg5dIuf+LGV4oRe11bwgpqg== 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 4ZnBpX3FyGzc5q; Tue, 29 Apr 2025 20:33:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TKX8Ci056159; Tue, 29 Apr 2025 20:33:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKX8qI056156; Tue, 29 Apr 2025 20:33:08 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:33:08 GMT Message-Id: <202504292033.53TKX8qI056156@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: eef4e44a41e4 - stable/13 - telnet: Prevent buffer overflow in the user prompt for SRA List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: eef4e44a41e467416322d0ee8907262e4bb07d49 Auto-Submitted: auto-generated The branch stable/13 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=eef4e44a41e467416322d0ee8907262e4bb07d49 commit eef4e44a41e467416322d0ee8907262e4bb07d49 Author: John Baldwin AuthorDate: 2025-04-16 13:41:03 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:45:59 +0000 telnet: Prevent buffer overflow in the user prompt for SRA The Secure RPC authenticator for telnet prompts the local user for the username to use for authentication. Previously it was using sprintf() into a buffer of 256 bytes, but the username received over the wire can be up to 255 bytes long which would overflow the prompt buffer. Fix this in two ways: First, use snprintf() and check for overflow. If the prompt buffer overflows, fail authentication without prompting the user. Second, add 10 bytes to the buffer size to account for the overhead of the prompt so that a maximally sized username fits. While here, replace a bare 255 in the subsequent telnet_gets call with an expression using sizeof() the relevant buffer. PR: 270263 Reported by: Robert Morris Tested on: CHERI Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D49832 (cherry picked from commit 5737c2ae06e143e49496df2ab5a64f76d5456012) --- contrib/telnet/libtelnet/sra.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/contrib/telnet/libtelnet/sra.c b/contrib/telnet/libtelnet/sra.c index 4a759685ca42..92ce5f6877d6 100644 --- a/contrib/telnet/libtelnet/sra.c +++ b/contrib/telnet/libtelnet/sra.c @@ -245,9 +245,10 @@ bad: void sra_reply(Authenticator *ap, unsigned char *data, int cnt) { - char uprompt[256],tuser[256]; + char uprompt[256 + 10]; /* +10 for "User (): " */ + char tuser[256]; Session_Key skey; - size_t i; + size_t i, len; if (cnt-- < 1) return; @@ -270,8 +271,15 @@ sra_reply(Authenticator *ap, unsigned char *data, int cnt) /* encode user */ memset(tuser,0,sizeof(tuser)); - sprintf(uprompt,"User (%s): ",UserNameRequested); - telnet_gets(uprompt,tuser,255,1); + len = snprintf(uprompt, sizeof(uprompt), "User (%s): ", + UserNameRequested); + if (len >= sizeof(uprompt)) { + if (auth_debug_mode) { + printf("SRA user name too long\r\n"); + } + return; + } + telnet_gets(uprompt, tuser, sizeof(tuser) - 1, 1); if (tuser[0] == '\n' || tuser[0] == '\r' ) strcpy(user,UserNameRequested); else { From nobody Tue Apr 29 20:33:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnBpZ1qPfz5vWLC; Tue, 29 Apr 2025 20:33:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnBpY4lKHz45bP; Tue, 29 Apr 2025 20:33:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zeTEJznTd8jx6XrQ5F2I7jChlxWEaWVd+AA2WLwZtmo=; b=NtrqKiWFV1crVivRXSCy1YlGKrPnUsSlLOfjaGNtSkzad/fC98QDEsSocK6vhR+fPhdAa8 /4TSDI7tfGT7SxEeF3C4e+Gu3s9OP2AgfGvJsOVNJcKNfoIMXKpxxhZpGMbAchXLCsM40g 8OLU2E6WEZK+l1nlROjskwLVeRx3QnwOxZuADBN6wkdjIgaXgbtSPfIuVkqiEltjaXH/uO ItybV/WIKsHI6UpLcdK8PB8UgSMRxY8i/VxTDsJOsrjDlzCxgfy/0OknZRKs6Di/BA3V5E 11NHTUz8cFwp7mGayRS6tf6vA4uhU1RPet2pVWkazfwJKO12C5W0+TFHI/jlpw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745958789; a=rsa-sha256; cv=none; b=d7BUDvlPqj0SmkZc8eXrTYZyascWcXUsAcH7HcV44YAJgUWyoWsLPKwZYusBSVA8Xv+rL5 ziuo4qm3O7Yc3vXhP9h3xYUauKGqaJIjJwV1HQLio7BW/zN1H+RuOk/vQtM4AvkUklG5v+ QFGaDLXZGD78tNqCc/NCikNqV98t5Cd/TN/bsM2z4L6W3rUeE7DCYojsen+WqQkGZdOWzr aOFvhvGCR+c+asaj+GG8saSCMKiAsrOJ0p0z4VOiBVJMEn9ehVl2Jw9l+BjfCbNlnX0PSy 4xvS+Tq/pX+EYCGzMKA3Kc6ReNSF7lWlWdXu9Ns7009WxO9MFrkubAHjiZ07qg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958789; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zeTEJznTd8jx6XrQ5F2I7jChlxWEaWVd+AA2WLwZtmo=; b=Yd7LChNyp/pdOS8xd2Vgp6EwEzEOulBXIb5MdnhsG8cAShiQ9pbUOFPQ7j2Tj1hHD4FZJM iF59BTc4l1ARTUlmo8PIl3GClxzlctb6aXlIklzoNcjKKarUJMT5id1Uye8Rn1/+kSYaJW szrMdffNWNb8EtKzpdDHswfunwVdxhnEUJUKX6pUWUti2dSibeApGw2N6GMlC0fCVQ6YqV BlHoXWy+axfuNgeHUtTHnmyjlV1f6sU0cXb331rZp/j1yfjVriZj4OM2mgwd0FW8enuVLR G+KyR5Rf5+XHrXrQdLXwpNwJAWHnGYOLyn/CryC2oJ37Y1Ta9hJ7hQsap1Sk0A== 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 4ZnBpY49x5zc5r; Tue, 29 Apr 2025 20:33:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TKX9KK056197; Tue, 29 Apr 2025 20:33:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKX9Ks056194; Tue, 29 Apr 2025 20:33:09 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:33:09 GMT Message-Id: <202504292033.53TKX9Ks056194@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 37032a39c5e9 - stable/13 - pcib: Ignore power fault detected if a power controller is not present List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 37032a39c5e9fcac3100bb7cfce3f2f3d701b5bd Auto-Submitted: auto-generated The branch stable/13 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=37032a39c5e9fcac3100bb7cfce3f2f3d701b5bd commit 37032a39c5e9fcac3100bb7cfce3f2f3d701b5bd Author: John Baldwin AuthorDate: 2025-04-22 02:08:01 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:46:30 +0000 pcib: Ignore power fault detected if a power controller is not present At least some PCI-express bridges exposed by Intel Volume Management Devices report bogus power faults in their slot status register. As a workaround, ignore the power fault detected flag if the slot capability register does not indicate support for a power controller. While the PCI-e spec does not explicitly state that the PFD flag should always be zero if a power controller is not present, parts of the spec do seem to assume this. For example, the flag is included in the "Power Controller Registers" register group in 6.7.2.4, and the definition of the value for this flag seems to presume the presence of a power controller: If a Power Controller that supports power fault detection is implemented, this bit is Set when the Power Controller detects a power fault at this slot. Note that, depending on hardware capability, it is possible that a power fault can be detected at any time, independent of the Power Controller Control setting or the occupancy of the slot. If power fault detection is not supported, this bit must not be Set. PR: 285993 Reported by: Jim Long Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49949 (cherry picked from commit 4c8b9f40cda7dd6b2de547b288d712c85998ce11) --- sys/dev/pci/pci_pci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 9e90cccdf083..86b57f28fd81 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -1072,7 +1072,8 @@ pcib_hotplug_inserted(struct pcib_softc *sc) return (false); /* A power fault implicitly turns off power to the slot. */ - if (sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) + if (sc->pcie_slot_cap & PCIEM_SLOT_CAP_PCP && + sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) return (false); /* If the MRL is disengaged, the slot is powered off. */ From nobody Tue Apr 29 20:33:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnBpb0rLkz5vWdh; Tue, 29 Apr 2025 20:33: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnBpZ5NzHz45Mp; Tue, 29 Apr 2025 20:33:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958790; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uePfROPuVU9ujs//zStlPBRubXaIsMmfg2t5m053qto=; b=TTOrnPt+G4Tz1e3m4gRdhDXTCl2IuvYdRgjzwi68AB1s3dcsaycWXgzamaCg3ZrKGHpm8d tnxEhrLerIdQA8yIJOAwZ6HVZNeT+Tb7OSGZsrLO0z/CN+hehaGkAykI+8vpkJtqc1vUpm eOHwNtMrFufAJgnkFowCayJFz0jszKu1JYajQbQdr4U8apqJ6d68CWU6cqijWT41+cOsWj qJmfGDaHey8eJ15zgjvvLLhJLGxezzYKLDCI1MB9XD9jzGQRiIWc3YHVtDKxHne9W4M/KX zz+2IxWQlwnDZyH7KEDcWTqwU9nsRTQQJbGQ8+6lsDhAJAlRKfu5EgzcJnem5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745958790; a=rsa-sha256; cv=none; b=XAHzHAcH9dvpsny03LgLtcP8LcyLwl0f+Nni7ZCIYbWsYjJrqzxanLSEVZokIfRXv3Vene nstV9pAWuyOnp+3A02kY4D5Nqb+MZsEoudMYKG8Bk5gf/jkzv/qTjOm6STZlCxMZXo9l+m EILLzYo9oXmlSXKX/zla8vJrQxHOazXkt3M/zD9nl9aVxHA5Db4mMNPIl+X6QYDvuxdvCu jmWTo5MyQpB6WmbTpfp365AmZL+g9a3shfreGW6goTiK7OGq8uBVxL+rQ7vcYN7vrGGfMe FZ/YxoyxrbS3lL2rFzuvk4U1t66EY0IUVP/yqTkzSjFbSKJAUzJqNNoveB2jNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745958790; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uePfROPuVU9ujs//zStlPBRubXaIsMmfg2t5m053qto=; b=eoohe7rLGLCRW9jpnpqmRbnkO9HpfjmEYftg4JT/fMaLSpeStCWr8DzEe+N3Por09L0Su4 c/nHlsngdgpIGRC4zUNb/iFJ8Fga+RVm6WG3L3I58GS8R5d4PNqRH32bJF6Tl7S+9N0Mqe UoOQ/XqXeERQTiLu/ZNNFRpnxd8igOrezb65oanzAfSaeq374cIJZSSpRrkImI4WEiaIgu 1rziumPyYc8US+IvzkBJNp9jnpp1poPC/4ctPXsL8OS/O6hUBRyfcDiEBSz65W4KXJhcnI lSLpqKNC6grX7Mx+z/qOE52zdNC8frSezclcidOws9TxzGIHsJbbM0c2O1WJ3A== 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 4ZnBpZ4pwZzc5s; Tue, 29 Apr 2025 20:33:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TKXAQ5056241; Tue, 29 Apr 2025 20:33:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKXAH6056238; Tue, 29 Apr 2025 20:33:10 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:33:10 GMT Message-Id: <202504292033.53TKXAH6056238@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 00c8c5e2c358 - stable/13 - pcib: Clear any pending slot status events during attach List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 00c8c5e2c35862d61ddb2618d5ecd08db1e9fb89 Auto-Submitted: auto-generated The branch stable/13 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=00c8c5e2c35862d61ddb2618d5ecd08db1e9fb89 commit 00c8c5e2c35862d61ddb2618d5ecd08db1e9fb89 Author: John Baldwin AuthorDate: 2025-04-22 02:08:17 +0000 Commit: John Baldwin CommitDate: 2025-04-29 14:46:43 +0000 pcib: Clear any pending slot status events during attach Any events left over from boot firmware, etc. are not meaningful so clear pending events during attach. If they are still pending they should remain asserted when the slot status register is re-read. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49950 (cherry picked from commit ff45e4759a38f44a0199b2948b7b1e987e7c71da) --- sys/dev/pci/pci_pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 86b57f28fd81..d780854761d6 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -1434,6 +1434,7 @@ pcib_setup_hotplug(struct pcib_softc *sc) /* Clear any events previously pending. */ pcie_write_config(dev, PCIER_SLOT_STA, sc->pcie_slot_sta, 2); + sc->pcie_slot_sta = pcie_read_config(dev, PCIER_SLOT_STA, 2); /* Enable HotPlug events. */ mask = PCIEM_SLOT_CTL_DLLSCE | PCIEM_SLOT_CTL_HPIE | From nobody Tue Apr 29 20:44:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnC384QKQz5vXGW; Tue, 29 Apr 2025 20:44:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnC383ZdTz3CPX; Tue, 29 Apr 2025 20:44:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745959444; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VUG6fkKecfqE6outM6u/ip7DtxBt+zb+GlZh6Qzhfnw=; b=LZlYX9DIpRw05P7Sdq3elk3rZ89WEB/IeLqzCZIGDwaDNI2EIaqEgcVlLDSc0bYG80fV1H y1qZoeZttUeRWxqQR6KytYmiUFrJoyG/FQgBo6IxRODKSXfvxhF67MPNyXQMNh70V5ohE5 /9vLyJE1zE1TjZF73gEUzyTAc0gr79VBXa3g7dBwlItJUep+UHRp/JAahHsGjcjpfZSHu8 eWPoEwoT5aLZnwbysCac44XDq6avmqh02SHJSggryhZBrOrp9FC0iKaTuhbnprzNj+uOLi zRgTBXhVG80QkiAmiD8Hd4KIUSZ/BHHFD0B6zMOwQ+yYwOlftQcCkkbiekIB5g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745959444; a=rsa-sha256; cv=none; b=t3SOWo3+lT99T7oHlNqCtb4T3U8GQFE/DKbhhpDE2GiBrFH4bl7rVjj5ZPACstbJ86/Yf4 V/+C9d42isHK1zK76GnpgseHijxuzJYCgQvkd9bDj5Z4VAEbBWbVz2vRGvwCYorr6CClCz m1IqHYI6o0Ry/7c7FAsRvhpl/9HVqR6WTUhaGQBVRIr4gEm9RrwSHyq95cXBv5CR+j1Xxs YK73PX7vA0w6DNby3TFZQu9CHrTp1V37Ech+Y826O/oVouRMc049YDxjZBjcOp/i0o2zOv v7A+wwBDtUTohqJ1t9gAnJ7JcpiW4UQEj40bjR4ulgC9MQ5Zg4Oyljpl48mYUg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745959444; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VUG6fkKecfqE6outM6u/ip7DtxBt+zb+GlZh6Qzhfnw=; b=TWJFWpH+7MbnJDs/I5o70jRi0GQ7qwb12EiDJRguu/YuOEMBecxY1fuVoDW6vQKbXFS52Q FHZR8lwJ70okqUqLNBNeGNzH94rzMVg+suEZqZfgah+JUxuatke7v7gRKkRCRniweNnrf5 jNK/xypIhZLWMWMrJ9F7lcU9hJGSynqlMDdAzCMANpA8+xe+/PBaGSoTvBTonQBiS1U7bx VKzo34r3N7nB1EP8RQ7q0veO875mVAFO1mpI52ye4WJO+zhdKOKglAGXgYlTgQy/uW6e6i l+qLDFcpPfnuNsIclzKWyOn5ir2+bO88rBtN5Qsb9Ws/PEEre7tcljbIN7o+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 4ZnC38399yzcPD; Tue, 29 Apr 2025 20:44:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TKi4Wa074783; Tue, 29 Apr 2025 20:44:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKi4UH074780; Tue, 29 Apr 2025 20:44:04 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:44:04 GMT Message-Id: <202504292044.53TKi4UH074780@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 51e6e35947fc - stable/14 - Update example from gcc6 to gcc13 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 51e6e35947fc646aceb88426666b726ee4756430 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=51e6e35947fc646aceb88426666b726ee4756430 commit 51e6e35947fc646aceb88426666b726ee4756430 Author: Warner Losh AuthorDate: 2024-05-09 14:16:15 +0000 Commit: John Baldwin CommitDate: 2025-04-29 20:42:56 +0000 Update example from gcc6 to gcc13 We only "support" gcc12 and gcc13 for cross building, for some value of "support". Update the example from gcc6 to gcc13. Sponsored by: Netflix (cherry picked from commit 52e41d1a5bd92ca1849a0f445915a4c6d63334e0) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5880347e1261..484822c19fe0 100644 --- a/Makefile +++ b/Makefile @@ -96,7 +96,7 @@ # # Once you have installed the necessary cross toolchain, simply pass # CROSS_TOOLCHAIN=${TARGET_ARCH}-gccN while building with the above steps, -# e.g., `make buildworld CROSS_TOOLCHAIN=amd64-gcc6`. +# e.g., `make buildworld CROSS_TOOLCHAIN=amd64-gcc13`. # # The ${TARGET_ARCH}-gccN packages are provided as flavors of the # devel/freebsd-gccN ports. From nobody Tue Apr 29 20:44:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnC3B1fCZz5vXJv; Tue, 29 Apr 2025 20:44: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnC395FNvz3CGc; Tue, 29 Apr 2025 20:44:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745959445; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sWJYz7XJTYzSgy45Hm8BXhpARUIbT1K7ToMgtE/IeMA=; b=dZgXNDVFmcuYjS8uyQ6iEd5+6XL/YDkxjT4lmOU7aczbrVmbar+9vY71NzUegiRIQTbJPW lauO0DlQFA783qn0HXlOFVzq084pOxzgzcIgWu+8RjQx06HIX38PuhZhhuOqvRVvsIIZuD 0vxCoCSU6yxsuFltxBp8Ltoe9JuuMpniRBZDObZqIvcxTBmt1RmTIPByLx8UrSpQQhhMQy tsjRowLSGvnAfdb643Ul1zG1vzybtxAYpmUBLi10d9jXbNx0WwJictajfgOE/L/BkfrqRq 6ELw7Ggig1uwDnYqiw0ptX4WXxGh/xdycbqGLKgh7KLYNGWM5slU+ukrdA6PmA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745959445; a=rsa-sha256; cv=none; b=ZR+MxNviXLBl1zCySXMqqrN0+jiBzcVVAF3biXl8plCBdujT6lZhwrWBVk/z+RmgeLtZCf S3DFQs36a7tjEZDjrLzx9d+gr0iedcBfpE/y76QI9JKOFYRsdbu9whDoW/OJ6L7IgIo3w6 me8aS54VikqHaxBwVI1EC0Bj2I7pkM2uZll71nyFviBx9PjucMPztVTxJOO62ITcGXJehf +e0pNURZHxUSDptF/71iOa0iSa/Ee23tHzBWDyWUOgomTVM0SYpbr9eMh2RGPp463GtoVR E2lzOCf2lwdCHG3n4mIjASPNTJYVQKm/TL0yAqz/WxcNUZd5lhGqiryq0DqyYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745959445; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sWJYz7XJTYzSgy45Hm8BXhpARUIbT1K7ToMgtE/IeMA=; b=n2TRX4GQSXHI2lTEhXTuEYOKnjMVZyM/DJ0e9BOnraaHA82dJMAuyK6SYf+dC0smUVks50 nku593tBS5qeCspXamgT6k8t8OYzjJV3vZIun0wqJ1E4f/zFzq19rBRaNUeUBEO90359Ax QqxLk7wpbVlEhpaNv+o1kStQq6ekeWJqnkD6tKJ65VcFFT/6L5F8XQusDvoSeiOzNmXYOz Bz3UbunPnWq6mOHGM/ag+lcsm2dJgtHAioIgjaJHJKz7lVzdObIFb47DnjDC01iZji76Ho 1m9X4cgHkM8Mr5zvOdcN9FMnvByBRObPDZOY/r7VzHPbAJ2mEw3xP0bxt6jDLg== 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 4ZnC394869zc6f; Tue, 29 Apr 2025 20:44:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TKi5ln074816; Tue, 29 Apr 2025 20:44:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKi55S074813; Tue, 29 Apr 2025 20:44:05 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:44:05 GMT Message-Id: <202504292044.53TKi55S074813@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 02663a236080 - stable/14 - .cirrus-ci: Update the non-manual GCC build job to GCC 14 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 02663a23608096e7703ed5aa28e1408d758f92fc Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=02663a23608096e7703ed5aa28e1408d758f92fc commit 02663a23608096e7703ed5aa28e1408d758f92fc Author: John Baldwin AuthorDate: 2025-03-03 16:51:47 +0000 Commit: John Baldwin CommitDate: 2025-04-29 20:43:03 +0000 .cirrus-ci: Update the non-manual GCC build job to GCC 14 Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D49159 (cherry picked from commit bd9709c2b33646d71d4d4b9c50b5b179c6041760) --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 5ec1a583255b..2bcb1985e68e 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -131,12 +131,12 @@ task: TOOLCHAIN: aarch64-gcc14 TOOLCHAIN_PKG: ${TOOLCHAIN} EXTRA_MAKE_FLAGS: -s - - name: amd64-gcc13 World and kernel build and boot smoke test (FreeBSD repo) + - name: amd64-gcc14 World and kernel build and boot smoke test (FreeBSD repo) only_if: $CIRRUS_REPO_FULL_NAME == 'freebsd/freebsd-src' && $CIRRUS_BRANCH =~ 'pull/.*' env: TARGET: amd64 TARGET_ARCH: amd64 - TOOLCHAIN: amd64-gcc13 + TOOLCHAIN: amd64-gcc14 TOOLCHAIN_PKG: ${TOOLCHAIN} EXTRA_MAKE_FLAGS: -s timeout_in: 120m From nobody Tue Apr 29 20:44:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnC3B6C8Yz5vXJw; Tue, 29 Apr 2025 20:44: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnC3B4zRGz3CPb; Tue, 29 Apr 2025 20:44:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745959446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+usUKYgT9/A9t4HqbAACnaSlKOsiG/bjUf8w7nHvmKw=; b=xxoqi4Pcin2t1D+uonqodYb8Hbt4Zavhzax1jCq9LMpMGIOf5gkn8pbOMSZs93C6jsZmod qfvMUJW/NBqCC1p2PwDdQ8ds1ihRD1j/ikmvXzruT3T+ZSoWvkHYYqp489qFMNWrq3+QIS QZAlmJB5FlndsVlVBMIzBk+teprc+lY6rMZIRUQhZsXNM/Gnidz8CIyKnQvDCoephZiYle +nK2M8cMrFjZIEkCVAUTPOsj6z/66qdCKTRQH3IvaZQgpEWan5l3g673Bhbxrd7ZYmurjA BTnIIfVnuGUhviG75Az1ORVtj0aF1sPeenG2wd8A/6L6QWpiXcnHLJ/sT6+7lw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745959446; a=rsa-sha256; cv=none; b=Vg5ShLN5vZl6ItD3IM6A2CD4WE5OqoIsu2DHPk6a65ZJJ1Ra4BI+8nEVZ99y9cjN7oBSUP iMFmZ08iT+3vuJjuFLy1LMg40NbEhtKa8NBw2dZuuRe0tLMVIMNunAI5VOWO9lXrc9gTYM YSd/AnTp4RTU1Qx3R6ZRErmrCTky1oIqriGdh1IoqyQCE72I4VZ1djmU/zngLso6AJKUzT Xf2Olq65w1Ka0zZ4XAqwDUzmwr48wMj9cyRZWQRtoGkBSs4ReW2lmn0WX4uV5jHqjxFlIt lHewOB5P5lJX6v12A0HBtc+oTfyr/HjSIi1CnAqGuRUg4sFtfmy70oQ1UEhbuQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745959446; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+usUKYgT9/A9t4HqbAACnaSlKOsiG/bjUf8w7nHvmKw=; b=KiN6MQlPNd/Wl81chO0HvN1dcrS+XcTyj281M3dUYP7svW7jGDH8zGtzmpEhpuooeR8KXG MtHlIasBLazssXKQKEqp1ojGoh2ViT7mYFv4QaBw7sH0YSJReriSUXh/56YpWOJ/RMscsX fZGhbYjtSm03fLru+CZwbRDQlAQIqrB7pmFh8hdoJevG+ILVm0Y3UPv9WQFq1EmJ3oHgQs U6ppJDYB5NCc3Pals19QTMtF+s9URmepdMstQcJw52oJv6wsqhpXj8IOTby6il649fsxj0 dDNlkCP1BLJJpqDy15RPaJa1x4oi/3AGg+uU32rlkizdsIeUuU/yCetdpm2RKA== 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 4ZnC3B4MFGzcLb; Tue, 29 Apr 2025 20:44:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TKi6Fa074849; Tue, 29 Apr 2025 20:44:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TKi6Xw074846; Tue, 29 Apr 2025 20:44:06 GMT (envelope-from git) Date: Tue, 29 Apr 2025 20:44:06 GMT Message-Id: <202504292044.53TKi6Xw074846@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 06ecf26346fa - stable/14 - universe: Update the default GCC toolchain to GCC 14 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 06ecf26346fa37530c6c4af689efa604a0b59063 Auto-Submitted: auto-generated The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=06ecf26346fa37530c6c4af689efa604a0b59063 commit 06ecf26346fa37530c6c4af689efa604a0b59063 Author: John Baldwin AuthorDate: 2025-03-03 16:51:53 +0000 Commit: John Baldwin CommitDate: 2025-04-29 20:43:10 +0000 universe: Update the default GCC toolchain to GCC 14 Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D49160 (cherry picked from commit d4c81623accede21c756b97e255367bdb664d1e6) --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 484822c19fe0..c2449c1fd29b 100644 --- a/Makefile +++ b/Makefile @@ -551,7 +551,7 @@ TARGET_ARCHES_${target}= ${MACHINE_ARCH_LIST_${target}} .endfor .if defined(USE_GCC_TOOLCHAINS) -_DEFAULT_GCC_VERSION= gcc12 +_DEFAULT_GCC_VERSION= gcc14 _GCC_VERSION= ${"${USE_GCC_TOOLCHAINS:Mgcc*}" != "":?${USE_GCC_TOOLCHAINS}:${_DEFAULT_GCC_VERSION}} TOOLCHAINS_amd64= amd64-${_GCC_VERSION} TOOLCHAINS_arm= armv6-${_GCC_VERSION} armv7-${_GCC_VERSION} From nobody Tue Apr 29 22:30:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnFQ34n7Zz5vdj9; Tue, 29 Apr 2025 22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnFQ26r5Vz4B7R; Tue, 29 Apr 2025 22:30:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745965834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jcQbwKawEvFogubhEAkYtFSRhY2D+Zf1/82aP02LLpI=; b=loZPqF2Lt9V+zyh8o/g4kdMhVfqHfeGQng1u0whtN6Oj8iECaY3CBMcjxZKk45ojx+Uw7l sssk5zS+m34aIafhBiWUAoLUIwp+LXkZ7b3WnvdcBimAVYuD043V9MmwgrBcbZyUOOSJAU 0Lh7lTyxHumtThzonTaPHuLPlNuMgTOboEJdl6QyiezZVIBSwo+8eRN0wdeDe6hfulYMic mcIv+p/SiEsEW5NFEtIVA0+NaSdWnieiDG77inkP2kIyd9B/tqwjb25VnR3HrLKPF6hs1Q t60ZQmG1nn5yAYZtFKsdKMD9Bb3xTX+ufrmS6EENTBdIIDsW1z7YCtp9C5jpYQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745965834; a=rsa-sha256; cv=none; b=O1VyU9bgAq+0SbIj54XhUW59uG5VbENgkF+qM+81ohNjo2l1d2kkLl4aUxtb8tum1NEUjw gPvN0799umt5LyJ+2m360UiU2Uk82OFwwFIQGbIzFChKeK1sLadG2aPbAayLrTTOtO9IE1 BTx2w69sI/PWG9ecOwY5jXn70eugpApKSNh0gTGc0YmFMu8jz4qpWs/J+i8CBwOlfn3YZX 0n9tN0Fx1SYctfvb0tGtfBY45ZkWK22cBzxkyaEBiIfjuhzmXVT3WZ8Qbzle0pqCLS3fU9 ZzfDQWvUTc78aGSjjL4J0MClX9Wnfr8A0u9rx2oLwlFEsAwZsbcON1AIQsKKTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745965834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jcQbwKawEvFogubhEAkYtFSRhY2D+Zf1/82aP02LLpI=; b=w1Oo6fuIV4vlRQS0PbLLCXcgFCuyGf6/XU/JHBF/HIiS13nUogBH4/rEsXOu4hg03670W5 /oeM/wz2XqSPehT8wHgXjENAx0BdcRDcOjKCPuJCM+KyXfsUrw47yIVP4FI8HMVZYsMN/r sKZE+1g/1VHjtBVxJz3ljIBg55rp7mfzYXerqBVKPLRaqLPJ/0XYvAbGFc9Kv2aFPDHgNi 6iBmGCllNQeyDpUn2vQjE48vrrLHkMu+z6kNdVhEUPsdXiF5Elz0uwTO7FJpiQuS7p1fGj tBWCZ4EU9R8BhCbiO3TrvrBmShCOWAcTjRLzvD0eWsq3bP6bF7kzbW7LKslMYQ== 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 4ZnFQ26HB8zgQc; Tue, 29 Apr 2025 22:30:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53TMUYDD073089; Tue, 29 Apr 2025 22:30:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53TMUY1L073086; Tue, 29 Apr 2025 22:30:34 GMT (envelope-from git) Date: Tue, 29 Apr 2025 22:30:34 GMT Message-Id: <202504292230.53TMUY1L073086@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: b6e8b845aeab - stable/14 - rtw89: merge Realtek's rtw89 driver based on Linux v6.14 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b6e8b845aeab65e208ac277f02d5d4007ae76403 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=b6e8b845aeab65e208ac277f02d5d4007ae76403 commit b6e8b845aeab65e208ac277f02d5d4007ae76403 Author: Bjoern A. Zeeb AuthorDate: 2025-04-24 08:58:54 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-29 22:29:51 +0000 rtw89: merge Realtek's rtw89 driver based on Linux v6.14 This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 38fec10eb60d687e30c8c6b5420d86e8149f7557 ( tag: v6.14 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit df279a26d3315e7abc9e6f0744137959a4c2fb86) --- sys/contrib/dev/rtw89/Kconfig | 22 +- sys/contrib/dev/rtw89/Makefile | 8 + sys/contrib/dev/rtw89/acpi.c | 64 ++ sys/contrib/dev/rtw89/acpi.h | 9 + sys/contrib/dev/rtw89/cam.c | 350 +++++-- sys/contrib/dev/rtw89/cam.h | 53 +- sys/contrib/dev/rtw89/chan.c | 579 ++++++++--- sys/contrib/dev/rtw89/chan.h | 38 +- sys/contrib/dev/rtw89/coex.c | 899 +++++++++++++--- sys/contrib/dev/rtw89/coex.h | 18 +- sys/contrib/dev/rtw89/core.c | 1496 +++++++++++++++++++-------- sys/contrib/dev/rtw89/core.h | 841 ++++++++++++--- sys/contrib/dev/rtw89/debug.c | 344 ++++--- sys/contrib/dev/rtw89/debug.h | 2 + sys/contrib/dev/rtw89/efuse.c | 150 +++ sys/contrib/dev/rtw89/efuse.h | 2 + sys/contrib/dev/rtw89/efuse_be.c | 52 +- sys/contrib/dev/rtw89/fw.c | 1689 +++++++++++++++++++++++-------- sys/contrib/dev/rtw89/fw.h | 508 ++++++++-- sys/contrib/dev/rtw89/mac.c | 981 ++++++++++++------ sys/contrib/dev/rtw89/mac.h | 179 +++- sys/contrib/dev/rtw89/mac80211.c | 969 +++++++++++++++--- sys/contrib/dev/rtw89/mac_be.c | 89 +- sys/contrib/dev/rtw89/pci.c | 193 +++- sys/contrib/dev/rtw89/pci.h | 52 +- sys/contrib/dev/rtw89/pci_be.c | 78 ++ sys/contrib/dev/rtw89/phy.c | 1061 ++++++++++++++----- sys/contrib/dev/rtw89/phy.h | 58 +- sys/contrib/dev/rtw89/phy_be.c | 12 +- sys/contrib/dev/rtw89/ps.c | 120 ++- sys/contrib/dev/rtw89/ps.h | 12 +- sys/contrib/dev/rtw89/reg.h | 95 +- sys/contrib/dev/rtw89/regd.c | 168 +-- sys/contrib/dev/rtw89/rtw8851b.c | 60 +- sys/contrib/dev/rtw89/rtw8851b_rfk.c | 140 +-- sys/contrib/dev/rtw89/rtw8851b_rfk.h | 18 +- sys/contrib/dev/rtw89/rtw8851be.c | 4 + sys/contrib/dev/rtw89/rtw8852a.c | 65 +- sys/contrib/dev/rtw89/rtw8852a.h | 4 +- sys/contrib/dev/rtw89/rtw8852a_rfk.c | 292 +++--- sys/contrib/dev/rtw89/rtw8852a_rfk.h | 17 +- sys/contrib/dev/rtw89/rtw8852ae.c | 4 + sys/contrib/dev/rtw89/rtw8852b.c | 53 +- sys/contrib/dev/rtw89/rtw8852b_common.c | 87 +- sys/contrib/dev/rtw89/rtw8852b_common.h | 24 +- sys/contrib/dev/rtw89/rtw8852b_rfk.c | 211 ++-- sys/contrib/dev/rtw89/rtw8852b_rfk.h | 20 +- sys/contrib/dev/rtw89/rtw8852be.c | 4 + sys/contrib/dev/rtw89/rtw8852bt.c | 855 ++++++++++++++++ sys/contrib/dev/rtw89/rtw8852bt.h | 2 + sys/contrib/dev/rtw89/rtw8852bt_rfk.c | 418 ++++++-- sys/contrib/dev/rtw89/rtw8852bt_rfk.h | 23 +- sys/contrib/dev/rtw89/rtw8852bte.c | 103 ++ sys/contrib/dev/rtw89/rtw8852c.c | 113 ++- sys/contrib/dev/rtw89/rtw8852c_rfk.c | 278 ++--- sys/contrib/dev/rtw89/rtw8852c_rfk.h | 17 +- sys/contrib/dev/rtw89/rtw8852ce.c | 4 + sys/contrib/dev/rtw89/rtw8922a.c | 275 ++++- sys/contrib/dev/rtw89/rtw8922a.h | 1 + sys/contrib/dev/rtw89/rtw8922a_rfk.c | 61 +- sys/contrib/dev/rtw89/rtw8922ae.c | 25 +- sys/contrib/dev/rtw89/sar.c | 65 +- sys/contrib/dev/rtw89/ser.c | 38 +- sys/contrib/dev/rtw89/txrx.h | 70 +- sys/contrib/dev/rtw89/util.h | 18 + sys/contrib/dev/rtw89/wow.c | 486 ++++++--- sys/contrib/dev/rtw89/wow.h | 21 + sys/modules/rtw89/Makefile | 4 +- 68 files changed, 11551 insertions(+), 3520 deletions(-) diff --git a/sys/contrib/dev/rtw89/Kconfig b/sys/contrib/dev/rtw89/Kconfig index 3c9f864805b1..b1c86cdd9c0e 100644 --- a/sys/contrib/dev/rtw89/Kconfig +++ b/sys/contrib/dev/rtw89/Kconfig @@ -12,6 +12,7 @@ if RTW89 config RTW89_CORE tristate + select WANT_DEV_COREDUMP config RTW89_PCI tristate @@ -28,6 +29,9 @@ config RTW89_8852B_COMMON config RTW89_8852B tristate +config RTW89_8852BT + tristate + config RTW89_8852C tristate @@ -68,6 +72,18 @@ config RTW89_8852BE 802.11ax PCIe wireless network (Wi-Fi 6) adapter +config RTW89_8852BTE + tristate "Realtek 8852BE-VT PCI wireless network (Wi-Fi 6) adapter" + depends on PCI + select RTW89_CORE + select RTW89_PCI + select RTW89_8852BT + select RTW89_8852B_COMMON + help + Select this option will enable support for 8852BE-VT chipset + + 802.11ax PCIe wireless network (Wi-Fi 6) adapter + config RTW89_8852CE tristate "Realtek 8852CE PCI wireless network (Wi-Fi 6E) adapter" depends on PCI @@ -80,17 +96,19 @@ config RTW89_8852CE 802.11ax PCIe wireless network (Wi-Fi 6E) adapter config RTW89_8922AE - tristate "Realtek 8922AE PCI wireless network (Wi-Fi 7) adapter" + tristate "Realtek 8922AE/8922AE-VS PCI wireless network (Wi-Fi 7) adapter" depends on PCI select RTW89_CORE select RTW89_PCI select RTW89_8922A help - Select this option will enable support for 8922AE chipset + Select this option will enable support for 8922AE/8922AE-VS chipset 802.11be PCIe wireless network (Wi-Fi 7) adapter supporting 2x2 2GHz/5GHz/6GHz 4096-QAM 160MHz channels. + The variant 8922AE-VS has the same features except 1024-QAM. + config RTW89_DEBUG bool diff --git a/sys/contrib/dev/rtw89/Makefile b/sys/contrib/dev/rtw89/Makefile index 1f1050a7a89d..c751013e811e 100644 --- a/sys/contrib/dev/rtw89/Makefile +++ b/sys/contrib/dev/rtw89/Makefile @@ -52,6 +52,14 @@ rtw89_8852b-objs := rtw8852b.o \ obj-$(CONFIG_RTW89_8852BE) += rtw89_8852be.o rtw89_8852be-objs := rtw8852be.o +obj-$(CONFIG_RTW89_8852BT) += rtw89_8852bt.o +rtw89_8852bt-objs := rtw8852bt.o \ + rtw8852bt_rfk.o \ + rtw8852bt_rfk_table.o + +obj-$(CONFIG_RTW89_8852BTE) += rtw89_8852bte.o +rtw89_8852bte-objs := rtw8852bte.o + obj-$(CONFIG_RTW89_8852C) += rtw89_8852c.o rtw89_8852c-objs := rtw8852c.o \ rtw8852c_table.o \ diff --git a/sys/contrib/dev/rtw89/acpi.c b/sys/contrib/dev/rtw89/acpi.c index 272795188f99..02d4526c1538 100644 --- a/sys/contrib/dev/rtw89/acpi.c +++ b/sys/contrib/dev/rtw89/acpi.c @@ -157,3 +157,67 @@ int rtw89_acpi_evaluate_dsm(struct rtw89_dev *rtwdev, return -ENOENT; } #endif + +int rtw89_acpi_evaluate_rtag(struct rtw89_dev *rtwdev, + struct rtw89_acpi_rtag_result *res) +{ + struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER, NULL}; + acpi_handle root, handle; + union acpi_object *obj; + acpi_status status; + u32 buf_len; + int ret = 0; + + root = ACPI_HANDLE(rtwdev->dev); + if (!root) + return -EOPNOTSUPP; + + status = acpi_get_handle(root, (acpi_string)"RTAG", &handle); + if (ACPI_FAILURE(status)) + return -EIO; + + status = acpi_evaluate_object(handle, NULL, NULL, &buf); + if (ACPI_FAILURE(status)) + return -EIO; + +#if defined(__linux__) + obj = buf.pointer; + if (obj->type != ACPI_TYPE_BUFFER) { +#elif defined(__FreeBSD__) + obj = buf.Pointer; + if (obj->Type != ACPI_TYPE_BUFFER) { +#endif + rtw89_debug(rtwdev, RTW89_DBG_ACPI, +#if defined(__linux__) + "acpi: expect buffer but type: %d\n", obj->type); +#elif defined(__FreeBSD__) + "acpi: expect buffer but type: %d\n", obj->Type); +#endif + ret = -EINVAL; + goto out; + } + +#if defined(__linux__) + buf_len = obj->buffer.length; +#elif defined(__FreeBSD__) + buf_len = obj->Buffer.Length; +#endif + if (buf_len != sizeof(*res)) { + rtw89_debug(rtwdev, RTW89_DBG_ACPI, "%s: invalid buffer length: %u\n", + __func__, buf_len); + ret = -EINVAL; + goto out; + } + +#if defined(__linux__) + *res = *(struct rtw89_acpi_rtag_result *)obj->buffer.pointer; +#elif defined(__FreeBSD__) + *res = *(struct rtw89_acpi_rtag_result *)obj->Buffer.Pointer; +#endif + + rtw89_hex_dump(rtwdev, RTW89_DBG_ACPI, "antenna_gain: ", res, sizeof(*res)); + +out: + ACPI_FREE(obj); + return ret; +} diff --git a/sys/contrib/dev/rtw89/acpi.h b/sys/contrib/dev/rtw89/acpi.h index d274be1775bf..b43ab106e44d 100644 --- a/sys/contrib/dev/rtw89/acpi.h +++ b/sys/contrib/dev/rtw89/acpi.h @@ -63,8 +63,17 @@ struct rtw89_acpi_dsm_result { } u; }; +struct rtw89_acpi_rtag_result { + u8 tag[4]; + u8 revision; + __le32 domain; + u8 ant_gain_table[RTW89_ANT_GAIN_CHAIN_NUM][RTW89_ANT_GAIN_SUBBAND_NR]; +} __packed; + int rtw89_acpi_evaluate_dsm(struct rtw89_dev *rtwdev, enum rtw89_acpi_dsm_func func, struct rtw89_acpi_dsm_result *res); +int rtw89_acpi_evaluate_rtag(struct rtw89_dev *rtwdev, + struct rtw89_acpi_rtag_result *res); #endif diff --git a/sys/contrib/dev/rtw89/cam.c b/sys/contrib/dev/rtw89/cam.c index 4557c6e035a9..8fa1e6c1ce13 100644 --- a/sys/contrib/dev/rtw89/cam.c +++ b/sys/contrib/dev/rtw89/cam.c @@ -135,8 +135,8 @@ again: } static int rtw89_cam_get_addr_cam_key_idx(struct rtw89_addr_cam_entry *addr_cam, - struct rtw89_sec_cam_entry *sec_cam, - struct ieee80211_key_conf *key, + const struct rtw89_sec_cam_entry *sec_cam, + const struct ieee80211_key_conf *key, u8 *key_idx) { u8 idx; @@ -211,25 +211,17 @@ static int rtw89_cam_get_addr_cam_key_idx(struct rtw89_addr_cam_entry *addr_cam, return 0; } -static int rtw89_cam_detach_sec_cam(struct rtw89_dev *rtwdev, - struct ieee80211_vif *vif, - struct ieee80211_sta *sta, - const struct rtw89_sec_cam_entry *sec_cam, - bool inform_fw) +static int __rtw89_cam_detach_sec_cam(struct rtw89_dev *rtwdev, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, + const struct rtw89_sec_cam_entry *sec_cam, + bool inform_fw) { - struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); - struct rtw89_vif *rtwvif; struct rtw89_addr_cam_entry *addr_cam; unsigned int i; int ret = 0; - if (!vif) { - rtw89_err(rtwdev, "No iface for deleting sec cam\n"); - return -EINVAL; - } - - rtwvif = (struct rtw89_vif *)vif->drv_priv; - addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + addr_cam = rtw89_get_addr_cam_of(rtwvif_link, rtwsta_link); for_each_set_bit(i, addr_cam->sec_cam_map, RTW89_SEC_CAM_IN_ADDR_CAM) { if (addr_cam->sec_ent[i] != sec_cam->sec_cam_idx) @@ -239,11 +231,11 @@ static int rtw89_cam_detach_sec_cam(struct rtw89_dev *rtwdev, } if (inform_fw) { - ret = rtw89_chip_h2c_dctl_sec_cam(rtwdev, rtwvif, rtwsta); + ret = rtw89_chip_h2c_dctl_sec_cam(rtwdev, rtwvif_link, rtwsta_link); if (ret) rtw89_err(rtwdev, "failed to update dctl cam del key: %d\n", ret); - ret = rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL); + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif_link, rtwsta_link, NULL); if (ret) rtw89_err(rtwdev, "failed to update cam del key: %d\n", ret); } @@ -251,25 +243,17 @@ static int rtw89_cam_detach_sec_cam(struct rtw89_dev *rtwdev, return ret; } -static int rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, - struct ieee80211_vif *vif, - struct ieee80211_sta *sta, - struct ieee80211_key_conf *key, - struct rtw89_sec_cam_entry *sec_cam) +static int __rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, + const struct ieee80211_key_conf *key, + const struct rtw89_sec_cam_entry *sec_cam) { - struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); - struct rtw89_vif *rtwvif; struct rtw89_addr_cam_entry *addr_cam; u8 key_idx = 0; int ret; - if (!vif) { - rtw89_err(rtwdev, "No iface for adding sec cam\n"); - return -EINVAL; - } - - rtwvif = (struct rtw89_vif *)vif->drv_priv; - addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + addr_cam = rtw89_get_addr_cam_of(rtwvif_link, rtwsta_link); if (key->cipher == WLAN_CIPHER_SUITE_WEP40 || key->cipher == WLAN_CIPHER_SUITE_WEP104) @@ -285,13 +269,13 @@ static int rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, addr_cam->sec_ent_keyid[key_idx] = key->keyidx; addr_cam->sec_ent[key_idx] = sec_cam->sec_cam_idx; set_bit(key_idx, addr_cam->sec_cam_map); - ret = rtw89_chip_h2c_dctl_sec_cam(rtwdev, rtwvif, rtwsta); + ret = rtw89_chip_h2c_dctl_sec_cam(rtwdev, rtwvif_link, rtwsta_link); if (ret) { rtw89_err(rtwdev, "failed to update dctl cam sec entry: %d\n", ret); return ret; } - ret = rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL); + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif_link, rtwsta_link, NULL); if (ret) { rtw89_err(rtwdev, "failed to update addr cam sec entry: %d\n", ret); @@ -302,6 +286,113 @@ static int rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, return 0; } +int rtw89_cam_attach_link_sec_cam(struct rtw89_dev *rtwdev, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, + u8 sec_cam_idx) +{ + struct rtw89_cam_info *cam_info = &rtwdev->cam_info; + const struct rtw89_sec_cam_entry *sec_cam; + + sec_cam = cam_info->sec_entries[sec_cam_idx]; + if (!sec_cam) + return -ENOENT; + + return __rtw89_cam_attach_sec_cam(rtwdev, rtwvif_link, rtwsta_link, + sec_cam->key_conf, sec_cam); +} + +static int rtw89_cam_detach_sec_cam(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + const struct rtw89_sec_cam_entry *sec_cam, + bool inform_fw) +{ + struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); + struct rtw89_sta_link *rtwsta_link; + struct rtw89_vif_link *rtwvif_link; + struct rtw89_vif *rtwvif; + unsigned int link_id; + int ret; + + if (!vif) { + rtw89_err(rtwdev, "No iface for deleting sec cam\n"); + return -EINVAL; + } + + rtwvif = vif_to_rtwvif(vif); + + if (rtwsta) + clear_bit(sec_cam->sec_cam_idx, rtwsta->pairwise_sec_cam_map); + + rtw89_vif_for_each_link(rtwvif, rtwvif_link, link_id) { + rtwsta_link = rtwsta ? rtwsta->links[link_id] : NULL; + if (rtwsta && !rtwsta_link) + continue; + + ret = __rtw89_cam_detach_sec_cam(rtwdev, rtwvif_link, rtwsta_link, + sec_cam, inform_fw); + if (ret) + return ret; + } + + return 0; +} + +static int rtw89_cam_attach_sec_cam(struct rtw89_dev *rtwdev, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta, + struct ieee80211_key_conf *key, + struct rtw89_sec_cam_entry *sec_cam) +{ + struct rtw89_sta *rtwsta = sta_to_rtwsta_safe(sta); + struct rtw89_sta_link *rtwsta_link; + struct rtw89_vif_link *rtwvif_link; + struct rtw89_vif *rtwvif; + unsigned int link_id; + int key_link_id; + int ret; + + if (!vif) { + rtw89_err(rtwdev, "No iface for adding sec cam\n"); + return -EINVAL; + } + + rtwvif = vif_to_rtwvif(vif); + + key_link_id = ieee80211_vif_is_mld(vif) ? key->link_id : 0; + if (key_link_id >= 0) { + rtwvif_link = rtwvif->links[key_link_id]; + rtwsta_link = rtwsta ? rtwsta->links[key_link_id] : NULL; + + if (!rtwvif_link || (rtwsta && !rtwsta_link)) { + rtw89_err(rtwdev, "No drv link for adding sec cam\n"); + return -ENOLINK; + } + + return __rtw89_cam_attach_sec_cam(rtwdev, rtwvif_link, + rtwsta_link, key, sec_cam); + } + + /* key_link_id < 0: MLD pairwise key */ + if (!rtwsta) { + rtw89_err(rtwdev, "No sta for adding MLD pairwise sec cam\n"); + return -EINVAL; + } + + rtw89_sta_for_each_link(rtwsta, rtwsta_link, link_id) { + rtwvif_link = rtwsta_link->rtwvif_link; + ret = __rtw89_cam_attach_sec_cam(rtwdev, rtwvif_link, + rtwsta_link, key, sec_cam); + if (ret) + return ret; + } + + set_bit(sec_cam->sec_cam_idx, rtwsta->pairwise_sec_cam_map); + + return 0; +} + static int rtw89_cam_sec_key_install(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta, @@ -340,6 +431,9 @@ static int rtw89_cam_sec_key_install(struct rtw89_dev *rtwdev, sec_cam->len = RTW89_SEC_CAM_LEN; sec_cam->ext_key = ext_key; memcpy(sec_cam->key, key->key, key->keylen); + + sec_cam->key_conf = key; + ret = rtw89_cam_send_sec_key_cmd(rtwdev, sec_cam); if (ret) { rtw89_err(rtwdev, "failed to send sec key cmd: %d\n", ret); @@ -384,20 +478,24 @@ int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev, break; case WLAN_CIPHER_SUITE_CCMP: hw_key_type = RTW89_SEC_KEY_TYPE_CCMP128; - key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + if (!chip->hw_mgmt_tx_encrypt) + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; break; case WLAN_CIPHER_SUITE_CCMP_256: hw_key_type = RTW89_SEC_KEY_TYPE_CCMP256; - key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + if (!chip->hw_mgmt_tx_encrypt) + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; ext_key = true; break; case WLAN_CIPHER_SUITE_GCMP: hw_key_type = RTW89_SEC_KEY_TYPE_GCMP128; - key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + if (!chip->hw_mgmt_tx_encrypt) + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; break; case WLAN_CIPHER_SUITE_GCMP_256: hw_key_type = RTW89_SEC_KEY_TYPE_GCMP256; - key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; + if (!chip->hw_mgmt_tx_encrypt) + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX; ext_key = true; break; case WLAN_CIPHER_SUITE_AES_CMAC: @@ -481,10 +579,10 @@ void rtw89_cam_deinit_bssid_cam(struct rtw89_dev *rtwdev, clear_bit(bssid_cam->bssid_cam_idx, cam_info->bssid_cam_map); } -void rtw89_cam_deinit(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) +void rtw89_cam_deinit(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link) { - struct rtw89_addr_cam_entry *addr_cam = &rtwvif->addr_cam; - struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + struct rtw89_addr_cam_entry *addr_cam = &rtwvif_link->addr_cam; + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif_link->bssid_cam; rtw89_cam_deinit_addr_cam(rtwdev, addr_cam); rtw89_cam_deinit_bssid_cam(rtwdev, bssid_cam); @@ -589,7 +687,7 @@ static int rtw89_cam_get_avail_bssid_cam(struct rtw89_dev *rtwdev, } int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, + struct rtw89_vif_link *rtwvif_link, struct rtw89_bssid_cam_entry *bssid_cam, const u8 *bssid) { @@ -609,7 +707,7 @@ int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, } bssid_cam->bssid_cam_idx = bssid_cam_idx; - bssid_cam->phy_idx = rtwvif->phy_idx; + bssid_cam->phy_idx = rtwvif_link->phy_idx; bssid_cam->len = BSSID_CAM_ENT_SIZE; bssid_cam->offset = 0; bssid_cam->valid = true; @@ -618,20 +716,21 @@ int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, return 0; } -void rtw89_cam_bssid_changed(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) +void rtw89_cam_bssid_changed(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link) { - struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif_link->bssid_cam; - ether_addr_copy(bssid_cam->bssid, rtwvif->bssid); + ether_addr_copy(bssid_cam->bssid, rtwvif_link->bssid); } -int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) +int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif_link *rtwvif_link) { - struct rtw89_addr_cam_entry *addr_cam = &rtwvif->addr_cam; - struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif->bssid_cam; + struct rtw89_addr_cam_entry *addr_cam = &rtwvif_link->addr_cam; + struct rtw89_bssid_cam_entry *bssid_cam = &rtwvif_link->bssid_cam; int ret; - ret = rtw89_cam_init_bssid_cam(rtwdev, rtwvif, bssid_cam, rtwvif->bssid); + ret = rtw89_cam_init_bssid_cam(rtwdev, rtwvif_link, bssid_cam, + rtwvif_link->bssid); if (ret) { rtw89_err(rtwdev, "failed to init bssid cam\n"); return ret; @@ -647,19 +746,27 @@ int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif) } int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, u8 *cmd) + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, u8 *cmd) { - struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif); - struct rtw89_bssid_cam_entry *bssid_cam = rtw89_get_bssid_cam_of(rtwvif, rtwsta); - u8 bss_color = vif->bss_conf.he_bss_color.color; + struct rtw89_bssid_cam_entry *bssid_cam = rtw89_get_bssid_cam_of(rtwvif_link, + rtwsta_link); + struct ieee80211_bss_conf *bss_conf; + u8 bss_color; u8 bss_mask; - if (vif->bss_conf.nontransmitted) + rcu_read_lock(); + + bss_conf = rtw89_vif_rcu_dereference_link(rtwvif_link, false); + bss_color = bss_conf->he_bss_color.color; + + if (bss_conf->nontransmitted) bss_mask = RTW89_BSSID_MATCH_5_BYTES; else bss_mask = RTW89_BSSID_MATCH_ALL; + rcu_read_unlock(); + FWCMD_SET_ADDR_BSSID_IDX(cmd, bssid_cam->bssid_cam_idx); FWCMD_SET_ADDR_BSSID_OFFSET(cmd, bssid_cam->offset); FWCMD_SET_ADDR_BSSID_LEN(cmd, bssid_cam->len); @@ -690,19 +797,30 @@ static u8 rtw89_cam_addr_hash(u8 start, const u8 *addr) } void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, const u8 *scan_mac_addr, u8 *cmd) { - struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif); - struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); - struct ieee80211_sta *sta = rtwsta_to_sta_safe(rtwsta); - const u8 *sma = scan_mac_addr ? scan_mac_addr : rtwvif->mac_addr; + struct ieee80211_vif *vif = rtwvif_link_to_vif(rtwvif_link); + struct rtw89_addr_cam_entry *addr_cam = + rtw89_get_addr_cam_of(rtwvif_link, rtwsta_link); + struct ieee80211_sta *sta = rtwsta_link_to_sta_safe(rtwsta_link); + struct ieee80211_link_sta *link_sta; + const u8 *sma = scan_mac_addr ? scan_mac_addr : rtwvif_link->mac_addr; u8 sma_hash, tma_hash, addr_msk_start; u8 sma_start = 0; u8 tma_start = 0; - u8 *tma = sta ? sta->addr : rtwvif->bssid; + const u8 *tma; + + rcu_read_lock(); + + if (sta) { + link_sta = rtw89_sta_rcu_dereference_link(rtwsta_link, true); + tma = link_sta->addr; + } else { + tma = rtwvif_link->bssid; + } if (addr_cam->addr_mask != 0) { addr_msk_start = __ffs(addr_cam->addr_mask); @@ -719,10 +837,10 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, FWCMD_SET_ADDR_LEN(cmd, addr_cam->len); FWCMD_SET_ADDR_VALID(cmd, addr_cam->valid); - FWCMD_SET_ADDR_NET_TYPE(cmd, rtwvif->net_type); - FWCMD_SET_ADDR_BCN_HIT_COND(cmd, rtwvif->bcn_hit_cond); - FWCMD_SET_ADDR_HIT_RULE(cmd, rtwvif->hit_rule); - FWCMD_SET_ADDR_BB_SEL(cmd, rtwvif->phy_idx); + FWCMD_SET_ADDR_NET_TYPE(cmd, rtwvif_link->net_type); + FWCMD_SET_ADDR_BCN_HIT_COND(cmd, rtwvif_link->bcn_hit_cond); + FWCMD_SET_ADDR_HIT_RULE(cmd, rtwvif_link->hit_rule); + FWCMD_SET_ADDR_BB_SEL(cmd, rtwvif_link->phy_idx); FWCMD_SET_ADDR_ADDR_MASK(cmd, addr_cam->addr_mask); FWCMD_SET_ADDR_MASK_SEL(cmd, addr_cam->mask_sel); FWCMD_SET_ADDR_SMA_HASH(cmd, sma_hash); @@ -744,20 +862,21 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, FWCMD_SET_ADDR_TMA4(cmd, tma[4]); FWCMD_SET_ADDR_TMA5(cmd, tma[5]); - FWCMD_SET_ADDR_PORT_INT(cmd, rtwvif->port); - FWCMD_SET_ADDR_TSF_SYNC(cmd, rtwvif->port); - FWCMD_SET_ADDR_TF_TRS(cmd, rtwvif->trigger); - FWCMD_SET_ADDR_LSIG_TXOP(cmd, rtwvif->lsig_txop); - FWCMD_SET_ADDR_TGT_IND(cmd, rtwvif->tgt_ind); - FWCMD_SET_ADDR_FRM_TGT_IND(cmd, rtwvif->frm_tgt_ind); - FWCMD_SET_ADDR_MACID(cmd, rtwsta ? rtwsta->mac_id : rtwvif->mac_id); - if (rtwvif->net_type == RTW89_NET_TYPE_INFRA) + FWCMD_SET_ADDR_PORT_INT(cmd, rtwvif_link->port); + FWCMD_SET_ADDR_TSF_SYNC(cmd, rtwvif_link->port); + FWCMD_SET_ADDR_TF_TRS(cmd, rtwvif_link->trigger); + FWCMD_SET_ADDR_LSIG_TXOP(cmd, rtwvif_link->lsig_txop); + FWCMD_SET_ADDR_TGT_IND(cmd, rtwvif_link->tgt_ind); + FWCMD_SET_ADDR_FRM_TGT_IND(cmd, rtwvif_link->frm_tgt_ind); + FWCMD_SET_ADDR_MACID(cmd, rtwsta_link ? rtwsta_link->mac_id : + rtwvif_link->mac_id); + if (rtwvif_link->net_type == RTW89_NET_TYPE_INFRA) FWCMD_SET_ADDR_AID12(cmd, vif->cfg.aid & 0xfff); - else if (rtwvif->net_type == RTW89_NET_TYPE_AP_MODE) + else if (rtwvif_link->net_type == RTW89_NET_TYPE_AP_MODE) FWCMD_SET_ADDR_AID12(cmd, sta ? sta->aid & 0xfff : 0); - FWCMD_SET_ADDR_WOL_PATTERN(cmd, rtwvif->wowlan_pattern); - FWCMD_SET_ADDR_WOL_UC(cmd, rtwvif->wowlan_uc); - FWCMD_SET_ADDR_WOL_MAGIC(cmd, rtwvif->wowlan_magic); + FWCMD_SET_ADDR_WOL_PATTERN(cmd, rtwvif_link->wowlan_pattern); + FWCMD_SET_ADDR_WOL_UC(cmd, rtwvif_link->wowlan_uc); + FWCMD_SET_ADDR_WOL_MAGIC(cmd, rtwvif_link->wowlan_magic); FWCMD_SET_ADDR_WAPI(cmd, addr_cam->wapi); FWCMD_SET_ADDR_SEC_ENT_MODE(cmd, addr_cam->sec_ent_mode); FWCMD_SET_ADDR_SEC_ENT0_KEYID(cmd, addr_cam->sec_ent_keyid[0]); @@ -776,18 +895,22 @@ void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, FWCMD_SET_ADDR_SEC_ENT4(cmd, addr_cam->sec_ent[4]); FWCMD_SET_ADDR_SEC_ENT5(cmd, addr_cam->sec_ent[5]); FWCMD_SET_ADDR_SEC_ENT6(cmd, addr_cam->sec_ent[6]); + + rcu_read_unlock(); } void rtw89_cam_fill_dctl_sec_cam_info_v1(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, struct rtw89_h2c_dctlinfo_ud_v1 *h2c) { - struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + struct rtw89_addr_cam_entry *addr_cam = + rtw89_get_addr_cam_of(rtwvif_link, rtwsta_link); struct rtw89_wow_param *rtw_wow = &rtwdev->wow; u8 *ptk_tx_iv = rtw_wow->key_info.ptk_tx_iv; - h2c->c0 = le32_encode_bits(rtwsta ? rtwsta->mac_id : rtwvif->mac_id, + h2c->c0 = le32_encode_bits(rtwsta_link ? rtwsta_link->mac_id : + rtwvif_link->mac_id, DCTLINFO_V1_C0_MACID) | le32_encode_bits(1, DCTLINFO_V1_C0_OP); @@ -858,18 +981,28 @@ void rtw89_cam_fill_dctl_sec_cam_info_v1(struct rtw89_dev *rtwdev, } void rtw89_cam_fill_dctl_sec_cam_info_v2(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, struct rtw89_h2c_dctlinfo_ud_v2 *h2c) { - struct rtw89_addr_cam_entry *addr_cam = rtw89_get_addr_cam_of(rtwvif, rtwsta); + struct ieee80211_sta *sta = rtwsta_link_to_sta_safe(rtwsta_link); + struct ieee80211_vif *vif = rtwvif_to_vif(rtwvif_link->rtwvif); + struct rtw89_vif *rtwvif = rtwvif_link->rtwvif; + struct rtw89_addr_cam_entry *addr_cam = + rtw89_get_addr_cam_of(rtwvif_link, rtwsta_link); + bool is_mld = sta ? sta->mlo : ieee80211_vif_is_mld(vif); struct rtw89_wow_param *rtw_wow = &rtwdev->wow; u8 *ptk_tx_iv = rtw_wow->key_info.ptk_tx_iv; + u8 *mld_sma, *mld_tma, *mld_bssid; - h2c->c0 = le32_encode_bits(rtwsta ? rtwsta->mac_id : rtwvif->mac_id, + h2c->c0 = le32_encode_bits(rtwsta_link ? rtwsta_link->mac_id : + rtwvif_link->mac_id, DCTLINFO_V2_C0_MACID) | le32_encode_bits(1, DCTLINFO_V2_C0_OP); + h2c->w2 = le32_encode_bits(is_mld, DCTLINFO_V2_W2_IS_MLD); + h2c->m2 = cpu_to_le32(DCTLINFO_V2_W2_IS_MLD); + h2c->w4 = le32_encode_bits(addr_cam->sec_ent_keyid[0], DCTLINFO_V2_W4_SEC_ENT0_KEYID) | le32_encode_bits(addr_cam->sec_ent_keyid[1], @@ -935,4 +1068,47 @@ void rtw89_cam_fill_dctl_sec_cam_info_v2(struct rtw89_dev *rtwdev, DCTLINFO_V2_W4_SEC_KEY_ID); h2c->m4 |= cpu_to_le32(DCTLINFO_V2_W4_SEC_KEY_ID); } + + if (!is_mld) + return; + + if (rtwvif_link->net_type == RTW89_NET_TYPE_INFRA) { + mld_sma = rtwvif->mac_addr; + mld_tma = vif->cfg.ap_addr; + mld_bssid = vif->cfg.ap_addr; + } else if (rtwvif_link->net_type == RTW89_NET_TYPE_AP_MODE && sta) { + mld_sma = rtwvif->mac_addr; + mld_tma = sta->addr; + mld_bssid = rtwvif->mac_addr; + } else { + return; + } + + h2c->w8 = le32_encode_bits(mld_sma[0], DCTLINFO_V2_W8_MLD_SMA_0) | + le32_encode_bits(mld_sma[1], DCTLINFO_V2_W8_MLD_SMA_1) | + le32_encode_bits(mld_sma[2], DCTLINFO_V2_W8_MLD_SMA_2) | + le32_encode_bits(mld_sma[3], DCTLINFO_V2_W8_MLD_SMA_3); + h2c->m8 = cpu_to_le32(DCTLINFO_V2_W8_ALL); + + h2c->w9 = le32_encode_bits(mld_sma[4], DCTLINFO_V2_W9_MLD_SMA_4) | + le32_encode_bits(mld_sma[5], DCTLINFO_V2_W9_MLD_SMA_5) | + le32_encode_bits(mld_tma[0], DCTLINFO_V2_W9_MLD_TMA_0) | + le32_encode_bits(mld_tma[1], DCTLINFO_V2_W9_MLD_TMA_1); + h2c->m9 = cpu_to_le32(DCTLINFO_V2_W9_ALL); + + h2c->w10 = le32_encode_bits(mld_tma[2], DCTLINFO_V2_W10_MLD_TMA_2) | + le32_encode_bits(mld_tma[3], DCTLINFO_V2_W10_MLD_TMA_3) | + le32_encode_bits(mld_tma[4], DCTLINFO_V2_W10_MLD_TMA_4) | + le32_encode_bits(mld_tma[5], DCTLINFO_V2_W10_MLD_TMA_5); + h2c->m10 = cpu_to_le32(DCTLINFO_V2_W10_ALL); + + h2c->w11 = le32_encode_bits(mld_bssid[0], DCTLINFO_V2_W11_MLD_BSSID_0) | + le32_encode_bits(mld_bssid[1], DCTLINFO_V2_W11_MLD_BSSID_1) | + le32_encode_bits(mld_bssid[2], DCTLINFO_V2_W11_MLD_BSSID_2) | + le32_encode_bits(mld_bssid[3], DCTLINFO_V2_W11_MLD_BSSID_3); + h2c->m11 = cpu_to_le32(DCTLINFO_V2_W11_ALL); + + h2c->w12 = le32_encode_bits(mld_bssid[4], DCTLINFO_V2_W12_MLD_BSSID_4) | + le32_encode_bits(mld_bssid[5], DCTLINFO_V2_W12_MLD_BSSID_5); + h2c->m12 = cpu_to_le32(DCTLINFO_V2_W12_ALL); } diff --git a/sys/contrib/dev/rtw89/cam.h b/sys/contrib/dev/rtw89/cam.h index 5d7b624c2dd4..8fd2d776408e 100644 --- a/sys/contrib/dev/rtw89/cam.h +++ b/sys/contrib/dev/rtw89/cam.h @@ -514,46 +514,58 @@ struct rtw89_h2c_dctlinfo_ud_v2 { #define DCTLINFO_V2_W7_SEC_ENT7 GENMASK(23, 16) #define DCTLINFO_V2_W7_SEC_ENT8 GENMASK(31, 24) #define DCTLINFO_V2_W7_ALL GENMASK(31, 0) -#define DCTLINFO_V2_W8_MLD_SMA_L_V1 GENMASK(31, 0) +#define DCTLINFO_V2_W8_MLD_SMA_0 GENMASK(7, 0) +#define DCTLINFO_V2_W8_MLD_SMA_1 GENMASK(15, 8) +#define DCTLINFO_V2_W8_MLD_SMA_2 GENMASK(23, 16) +#define DCTLINFO_V2_W8_MLD_SMA_3 GENMASK(31, 24) #define DCTLINFO_V2_W8_ALL GENMASK(31, 0) -#define DCTLINFO_V2_W9_MLD_SMA_H_V1 GENMASK(15, 0) -#define DCTLINFO_V2_W9_MLD_TMA_L_V1 GENMASK(31, 16) +#define DCTLINFO_V2_W9_MLD_SMA_4 GENMASK(7, 0) +#define DCTLINFO_V2_W9_MLD_SMA_5 GENMASK(15, 8) +#define DCTLINFO_V2_W9_MLD_TMA_0 GENMASK(23, 16) +#define DCTLINFO_V2_W9_MLD_TMA_1 GENMASK(31, 24) #define DCTLINFO_V2_W9_ALL GENMASK(31, 0) -#define DCTLINFO_V2_W10_MLD_TMA_H_V1 GENMASK(31, 0) +#define DCTLINFO_V2_W10_MLD_TMA_2 GENMASK(7, 0) +#define DCTLINFO_V2_W10_MLD_TMA_3 GENMASK(15, 8) +#define DCTLINFO_V2_W10_MLD_TMA_4 GENMASK(23, 16) +#define DCTLINFO_V2_W10_MLD_TMA_5 GENMASK(31, 24) #define DCTLINFO_V2_W10_ALL GENMASK(31, 0) -#define DCTLINFO_V2_W11_MLD_TA_BSSID_L_V1 GENMASK(31, 0) +#define DCTLINFO_V2_W11_MLD_BSSID_0 GENMASK(7, 0) +#define DCTLINFO_V2_W11_MLD_BSSID_1 GENMASK(15, 8) +#define DCTLINFO_V2_W11_MLD_BSSID_2 GENMASK(23, 16) +#define DCTLINFO_V2_W11_MLD_BSSID_3 GENMASK(31, 24) #define DCTLINFO_V2_W11_ALL GENMASK(31, 0) -#define DCTLINFO_V2_W12_MLD_TA_BSSID_H_V1 GENMASK(15, 0) +#define DCTLINFO_V2_W12_MLD_BSSID_4 GENMASK(7, 0) +#define DCTLINFO_V2_W12_MLD_BSSID_5 GENMASK(15, 8) #define DCTLINFO_V2_W12_ALL GENMASK(15, 0) -int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif *vif); -void rtw89_cam_deinit(struct rtw89_dev *rtwdev, struct rtw89_vif *vif); +int rtw89_cam_init(struct rtw89_dev *rtwdev, struct rtw89_vif_link *vif); +void rtw89_cam_deinit(struct rtw89_dev *rtwdev, struct rtw89_vif_link *vif); int rtw89_cam_init_addr_cam(struct rtw89_dev *rtwdev, struct rtw89_addr_cam_entry *addr_cam, const struct rtw89_bssid_cam_entry *bssid_cam); void rtw89_cam_deinit_addr_cam(struct rtw89_dev *rtwdev, struct rtw89_addr_cam_entry *addr_cam); int rtw89_cam_init_bssid_cam(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, + struct rtw89_vif_link *rtwvif_link, struct rtw89_bssid_cam_entry *bssid_cam, const u8 *bssid); void rtw89_cam_deinit_bssid_cam(struct rtw89_dev *rtwdev, struct rtw89_bssid_cam_entry *bssid_cam); void rtw89_cam_fill_addr_cam_info(struct rtw89_dev *rtwdev, - struct rtw89_vif *vif, - struct rtw89_sta *rtwsta, + struct rtw89_vif_link *vif, + struct rtw89_sta_link *rtwsta_link, const u8 *scan_mac_addr, u8 *cmd); void rtw89_cam_fill_dctl_sec_cam_info_v1(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, struct rtw89_h2c_dctlinfo_ud_v1 *h2c); void rtw89_cam_fill_dctl_sec_cam_info_v2(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, struct rtw89_h2c_dctlinfo_ud_v2 *h2c); int rtw89_cam_fill_bssid_cam_info(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif, - struct rtw89_sta *rtwsta, u8 *cmd); + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, u8 *cmd); int rtw89_cam_sec_key_add(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif, struct ieee80211_sta *sta, @@ -564,6 +576,11 @@ int rtw89_cam_sec_key_del(struct rtw89_dev *rtwdev, struct ieee80211_key_conf *key, bool inform_fw); void rtw89_cam_bssid_changed(struct rtw89_dev *rtwdev, - struct rtw89_vif *rtwvif); + struct rtw89_vif_link *rtwvif_link); void rtw89_cam_reset_keys(struct rtw89_dev *rtwdev); +int rtw89_cam_attach_link_sec_cam(struct rtw89_dev *rtwdev, + struct rtw89_vif_link *rtwvif_link, + struct rtw89_sta_link *rtwsta_link, + u8 sec_cam_idx); + #endif diff --git a/sys/contrib/dev/rtw89/chan.c b/sys/contrib/dev/rtw89/chan.c index 7f90d93dcdc0..4df4e04c3e67 100644 --- a/sys/contrib/dev/rtw89/chan.c +++ b/sys/contrib/dev/rtw89/chan.c @@ -10,6 +10,10 @@ #include "ps.h" #include "util.h" +static void rtw89_swap_chanctx(struct rtw89_dev *rtwdev, + enum rtw89_chanctx_idx idx1, + enum rtw89_chanctx_idx idx2); + static enum rtw89_subband rtw89_get_subband_type(enum rtw89_band band, u8 center_chan) { @@ -124,12 +128,12 @@ void rtw89_chan_create(struct rtw89_chan *chan, u8 center_chan, u8 primary_chan, } bool rtw89_assign_entity_chan(struct rtw89_dev *rtwdev, - enum rtw89_sub_entity_idx idx, + enum rtw89_chanctx_idx idx, const struct rtw89_chan *new) { struct rtw89_hal *hal = &rtwdev->hal; - struct rtw89_chan *chan = &hal->sub[idx].chan; - struct rtw89_chan_rcd *rcd = &hal->sub[idx].rcd; + struct rtw89_chan *chan = &hal->chanctx[idx].chan; + struct rtw89_chan_rcd *rcd = &hal->chanctx[idx].rcd; bool band_changed; rcd->prev_primary_channel = chan->primary_channel; @@ -153,7 +157,7 @@ int rtw89_iterate_entity_chan(struct rtw89_dev *rtwdev, lockdep_assert_held(&rtwdev->mutex); - for_each_set_bit(idx, hal->entity_map, NUM_OF_RTW89_SUB_ENTITY) { + for_each_set_bit(idx, hal->entity_map, NUM_OF_RTW89_CHANCTX) { chan = rtw89_chan_get(rtwdev, idx); ret = iterator(chan, data); if (ret) @@ -164,36 +168,36 @@ int rtw89_iterate_entity_chan(struct rtw89_dev *rtwdev, } static void __rtw89_config_entity_chandef(struct rtw89_dev *rtwdev, - enum rtw89_sub_entity_idx idx, + enum rtw89_chanctx_idx idx, const struct cfg80211_chan_def *chandef, bool from_stack) { struct rtw89_hal *hal = &rtwdev->hal; - hal->sub[idx].chandef = *chandef; + hal->chanctx[idx].chandef = *chandef; if (from_stack) set_bit(idx, hal->entity_map); } void rtw89_config_entity_chandef(struct rtw89_dev *rtwdev, - enum rtw89_sub_entity_idx idx, + enum rtw89_chanctx_idx idx, const struct cfg80211_chan_def *chandef) { __rtw89_config_entity_chandef(rtwdev, idx, chandef, true); } void rtw89_config_roc_chandef(struct rtw89_dev *rtwdev, - enum rtw89_sub_entity_idx idx, + enum rtw89_chanctx_idx idx, const struct cfg80211_chan_def *chandef) { struct rtw89_hal *hal = &rtwdev->hal; - enum rtw89_sub_entity_idx cur; + enum rtw89_chanctx_idx cur; *** 27387 LINES SKIPPED *** From nobody Wed Apr 30 03:13:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnMhz1qvgz5tjYy; Wed, 30 Apr 2025 03:13:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnMhy69pzz3CGH; Wed, 30 Apr 2025 03:13:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745982834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7udweF0nlcoNumJvEI+ei3uIhopxMUEJ+GWNiMLsr0=; b=jJbZOpZk65ywf5gm1v3ENOueunv6fE8Ij2E0Jb9UgMRA4jXbhgKP/uWDsW1BD3WFbmBUM0 TtkRkdK8lfoDFamxTcmy23+sPXuIUv22dtAaFIDQhY69kehQxvQ/u0FqfVuCjpYWNOgoJn 3z0cngkv4/GnP7nRybM9uZb3axDDx81/ZieiA8l2yQ9aMTx2JyMJ/Nc+1TKYHAqNlH3seY OnLUg0pov3BSxajazC3i1FPDL+JbRjzXSM7+rNZtYlduX16D1kxUyIGAZ/p4jYulBNCFwD y27lcL0+qQUkt++Gx6p15TGXzHL/79E5EhjgMRrvpy73OtqjkKxp6Gh+8fo9VA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745982834; a=rsa-sha256; cv=none; b=iaIfIvk97QiqZWVCAgAxp/13//Cgcv/Xm/X8ECpc8OtZS0yXrW8g/gSgeoaWM7AdBhhrPx uiDLJfYoPInSwcKm1hSF/cBl9KL90VIxB/oyWpkichiwEYLoPT+owaReOLmpZceUkLtb7+ pVqnn2vuW3uWP+O2tpF89LLdAKLWBD4IxAqyTnbjU46UibNvNv1+i+XFHU2HLITQ9vjZka ut1cOktv6tsZrdHLgI0WVpLvNfEluOgo76CDYUGMMC6AzqoOPowXf2wlzOFuoQKwOfbOnu gxkSJKlacqMMLVpmyGxU+btC3pshwoCHdo+XxauxqYSCKklTmAAUDKRICQIEgA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745982834; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W7udweF0nlcoNumJvEI+ei3uIhopxMUEJ+GWNiMLsr0=; b=HjAQVPipSIIQGbGAK32vW4IaU07U2IWuYpe5k3ZuunnuH14D65Mabn4R31UvwCI9KI2A5r R1Tbd2kWGpI+4Fi68IxOC62+vPQd9/O1AAo00xSGHesy6Fcbjl3zYvUxJBn5mEC/4x31JI DxdayIweudpVkAbZeeQLJUnYw5jQhcMtUrsDR7SYuyfsYa/nDOwzD/Zb6yi+ZDTWY6I9qC SrAaIMR11OMUsHJZnqBmeQz390txfk80HwRRPX9wAkpZ1CGgkvC7qcby3iCQLTEDcO7NXH rCygpvajOislk4vHMrOZAPvfldS7ETYWKo2OHRfX/zxdWpykMODlnJ2eOdsINA== 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 4ZnMhy5mDGznrB; Wed, 30 Apr 2025 03:13:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U3DshU004744; Wed, 30 Apr 2025 03:13:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U3DsDJ004741; Wed, 30 Apr 2025 03:13:54 GMT (envelope-from git) Date: Wed, 30 Apr 2025 03:13:54 GMT Message-Id: <202504300313.53U3DsDJ004741@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: 06fa889365b5 - stable/14 - rtld: symbolic and deepbind are equivalent for the refobj List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 06fa889365b51b4b06d26bf60f8d5b89f340b8b1 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=06fa889365b51b4b06d26bf60f8d5b89f340b8b1 commit 06fa889365b51b4b06d26bf60f8d5b89f340b8b1 Author: Konstantin Belousov AuthorDate: 2025-04-19 10:26:58 +0000 Commit: Konstantin Belousov CommitDate: 2025-04-30 03:13:12 +0000 rtld: symbolic and deepbind are equivalent for the refobj (cherry picked from commit d0ab6abbf5318fa09df1b145198d543c60f0685b) --- libexec/rtld-elf/rtld.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index cc504666c649..6375867d1db1 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -4624,12 +4624,13 @@ symlook_default(SymLook *req, const Obj_Entry *refobj) */ res = symlook_obj(&req1, refobj); if (res == 0 && (refobj->symbolic || - ELF_ST_VISIBILITY(req1.sym_out->st_other) == STV_PROTECTED)) { + ELF_ST_VISIBILITY(req1.sym_out->st_other) == STV_PROTECTED || + refobj->deepbind)) { req->sym_out = req1.sym_out; req->defobj_out = req1.defobj_out; assert(req->defobj_out != NULL); } - if (refobj->symbolic || req->defobj_out != NULL) + if (refobj->symbolic || req->defobj_out != NULL || refobj->deepbind) donelist_check(&donelist, refobj); if (!refobj->deepbind) From nobody Wed Apr 30 07:49:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpZ4S4kz5v2tw; Wed, 30 Apr 2025 07:49:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpZ3Z7Qz3G63; Wed, 30 Apr 2025 07:49:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HNmv8ZAep5lXeO+YfXxDJ4o6ZXVBd1rRzDhYEF2Rq2k=; b=Hrf/MugcetqEfcI1SMmJJzE/MyyDP2ZIy+IZtoffjd5lOe2xUR2qqRAeMFr+xyWekC315V G19vwgAjpWiEONx5TJPQIUM16nx+MFnHUoLoSWzaFW4/HfnzWCIgHk4HtwAXw2iL0A5By/ xeZ+P9RvmAj2D4/N8UL/0Kz+tNCm/i4xC6GQ+yfZ5L3JgjeKx/CFOD6W6QufS3rGt24goX TBjXNWX2aTS3bjFDdYz/Dk069HTJ8C7J7kgUawkQMThEYUfTLWIdgqR18ahpnN16uqu/3P ONgd0oB0mi2F0gyAl2QdUGgoR0FADwI699+zFRBH4gs7lWyc9lXEzWcwnyOLdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999350; a=rsa-sha256; cv=none; b=Y5OGQoICBNA/uwJSKWnJFonwrYzT8s0r3Fn7ThSc0DZjxSrvsHGx57BjH+jqw5Ym3MWPOg ZvN0AZna13k6tLJBjdAH4IqI4fMx8+jBP8oVrXSfAjd4L9YShSNS195lrufGM9EQaLZni7 DfzNI4L4bvVT/xlauUtNyPihXs2JTE7ersEbGnJuPu0NR9saiQM+oPv8DnvI5Tjy699WvE bHaLuGsfLwcl/TBO2xb8bAG81Jc86XcJyQ9Ht5EEvc2kwxkt+6Uu64eb3bCkqdIWpah2fF egIvTpE66YjQcPRwbIAIH7Y/FJZFbkzczTSrIG+GLBLHLI05VHVA4Gc8uwJV0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999350; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HNmv8ZAep5lXeO+YfXxDJ4o6ZXVBd1rRzDhYEF2Rq2k=; b=KaG8Q9lGjZdIGi7/uMda7MOrWEcVNIBhHnxtjzHpP5D3uy4lCYYKb5m4XGzedf+xoNmkxP JF9KvnEhC1GxFTROzcoEjKt4X6gCDfu2pZKaW5R3fWVVKFzVln3OV1gjMaGSL1hRFESJ7t NyAl2Q/15Q29pIdUkKsA+p7MiGPhn8mZLF/xAkx16ny62XaKzG9qgDqaV49LGOYP0N2n2F DPtmOH3Al1IAOU0674K6bqLj+22viqpdTmzbssEtO9VyjH9lXKYz8j7nQiAWj9arq7/Uk3 X5+c8npmmMlYzuAGhd3wkN/K7WFnqPtzD9L7mjsb5Q0/pLU6LOkUD1N2lFID+g== 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 4ZnTpZ35w6zwmQ; Wed, 30 Apr 2025 07:49:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nAjf011069; Wed, 30 Apr 2025 07:49:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nArJ011066; Wed, 30 Apr 2025 07:49:10 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:10 GMT Message-Id: <202504300749.53U7nArJ011066@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 6d2885d50e80 - stable/14 - ig4(4): Add Intel ACPI HID List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6d2885d50e8043b9596221385bdbc5a9082a7409 Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=6d2885d50e8043b9596221385bdbc5a9082a7409 commit 6d2885d50e8043b9596221385bdbc5a9082a7409 Author: Dmitry Luhtionov AuthorDate: 2025-02-02 07:22:55 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 ig4(4): Add Intel ACPI HID MFC after: 1 month (cherry picked from commit 64dcfa2593d4729f16cb3e2d97088a2e69900df1) --- sys/dev/ichiic/ig4_acpi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/ichiic/ig4_acpi.c b/sys/dev/ichiic/ig4_acpi.c index f88cca6cf13d..729e63a54ffa 100644 --- a/sys/dev/ichiic/ig4_acpi.c +++ b/sys/dev/ichiic/ig4_acpi.c @@ -55,6 +55,7 @@ static char *ig4iic_ids[] = { "INT33C3", "INT3432", "INT3433", + "INT3446", "80860F41", "808622C1", "AMDI0510", From nobody Wed Apr 30 07:49:11 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpb6CJKz5v2v0; Wed, 30 Apr 2025 07:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpb4TxTz3GDr; Wed, 30 Apr 2025 07:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999351; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/rkSVTlOalZbhKDrh9B29oW9ZtEOn/4m3n68CiTwBUU=; b=F27oYUl1FtTdVrr/balpXDw8tBHz3Xf34RZMeECyCbM3BhSeQaTGuBMjxAVvIQvp1g/WeA yrnHJbHye2CNU8DzGHM2wY2IRrgh62H5kOf27ViQ0GQ0hUm3NHs91XF4PDt0BWYFAjT67r UY3G6PSDzjIH7vrr9Y+hfZiNsNuucwqnfDu/6seV+YDBI2yVjckTUG47p7bM6nhCMALUfh HKcLNbroRbCunfy7/w1DRwOW2XcRcZBfh/G2GQe8OMj6RM/Wh6m1NPHZhrGO3Wnwim9fAF xWebd6HF0phz3Y5K3AoTUud48sbRoz90NA5odBBYIE3sDHMyeO6tjH6AgPAzPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999351; a=rsa-sha256; cv=none; b=DIyvF4r3MUqw0UDzHLYDEpiDlKGyYkjp+t2uME21DZz861PTFbv79iriSwGeN8fz8h6B7w YMOf4HqLtwFCMXuJZqz0WmnlwXZQx9AEtX9xKp7NwXjtGaK30XqsJ+BSyXXmhRIDxL/EBJ E0x3VkqYoDULPW7x+2t1YB+rtfeYpOXHcDUXRxgjXw5MOYYd7Qy9fSyyuo7QCu8JKpRRPn AsZYb7g6kXff0iPqWhxGYMtnWOYoVH+IQVcfxXakgKu3Q1GqppF6Tnk2BZspGQ0ayDStm0 aQhF6JCyuYXch+01YEldDTjNbcYjfZaHV7JYYQgl25TT37nX3WYnZ431SnpG6g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999351; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/rkSVTlOalZbhKDrh9B29oW9ZtEOn/4m3n68CiTwBUU=; b=RPzljHBdYWvr0356T97U5olJ7Y1J3Sa/2C/XXp/swekHXAjZrIyHNm3DayJNA4/RG1Oj12 xten1YSNeuWKc9HSiHw3FYHy9Q0cwxEPHA4s0B+nJeZEnyVOn4nQBIrYey0j5512TFMvhk GaNZmh8TXvcMcD2cRGBRDoJeV74LFXrckHsWTHr0fOlW5ETem9uIKrLERtNSB0awfDAsX8 d+rJUc1+3hT20UGMTImKluktXmY38n9z+e/UvjkmSaNwSu/b4GhZV81Hjj+n1q/GgJGDwX my9rzgiJlAljektU00N27z7xEVQTgZDyXRBZc/iyOfLbqRYm/7n3R8uhQuQobg== 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 4ZnTpb43KpzwmR; Wed, 30 Apr 2025 07:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nBi9011101; Wed, 30 Apr 2025 07:49:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nBCE011098; Wed, 30 Apr 2025 07:49:11 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:11 GMT Message-Id: <202504300749.53U7nBCE011098@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 6616f35456d1 - stable/14 - acpi_asus_wmi(4): Add EVDEV support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6616f35456d174cf0f9792eaddd6ccd56c5a5085 Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=6616f35456d174cf0f9792eaddd6ccd56c5a5085 commit 6616f35456d174cf0f9792eaddd6ccd56c5a5085 Author: Vladimir Kondratyev AuthorDate: 2025-03-17 15:45:14 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 acpi_asus_wmi(4): Add EVDEV support Use input event device to export hotkey events. Sponsored by: Future Crew LLC MFC after: 1 month Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D48982 (cherry picked from commit 5e41194bfcc54fb506070f7a01d5bc00326cde66) --- sys/dev/acpi_support/acpi_asus_wmi.c | 140 +++++++++++++++++++++++++++++++- sys/modules/acpi/acpi_asus_wmi/Makefile | 1 + 2 files changed, 140 insertions(+), 1 deletion(-) diff --git a/sys/dev/acpi_support/acpi_asus_wmi.c b/sys/dev/acpi_support/acpi_asus_wmi.c index 853696e67f84..80beee2fea7f 100644 --- a/sys/dev/acpi_support/acpi_asus_wmi.c +++ b/sys/dev/acpi_support/acpi_asus_wmi.c @@ -26,6 +26,7 @@ #include #include "opt_acpi.h" +#include "opt_evdev.h" #include #include #include @@ -41,6 +42,12 @@ #include #include "acpi_wmi_if.h" +#ifdef EVDEV_SUPPORT +#include +#include +#define NO_KEY KEY_RESERVED +#endif + #define _COMPONENT ACPI_OEM ACPI_MODULE_NAME("ASUS-WMI") @@ -110,6 +117,9 @@ struct acpi_asus_wmi_softc { struct sysctl_oid *sysctl_tree; int dsts_id; int handle_keys; +#ifdef EVDEV_SUPPORT + struct evdev_dev *evdev; +#endif }; static struct { @@ -253,6 +263,82 @@ static struct { { NULL, 0, NULL, 0 } }; +#ifdef EVDEV_SUPPORT +static const struct { + UINT32 notify; + uint16_t key; +} acpi_asus_wmi_evdev_map[] = { + { 0x20, KEY_BRIGHTNESSDOWN }, + { 0x2f, KEY_BRIGHTNESSUP }, + { 0x30, KEY_VOLUMEUP }, + { 0x31, KEY_VOLUMEDOWN }, + { 0x32, KEY_MUTE }, + { 0x35, KEY_SCREENLOCK }, + { 0x38, KEY_PROG3 }, /* Armoury Crate */ + { 0x40, KEY_PREVIOUSSONG }, + { 0x41, KEY_NEXTSONG }, + { 0x43, KEY_STOPCD }, /* Stop/Eject */ + { 0x45, KEY_PLAYPAUSE }, + { 0x4f, KEY_LEFTMETA }, /* Fn-locked "Windows" Key */ + { 0x4c, KEY_MEDIA }, /* WMP Key */ + { 0x50, KEY_EMAIL }, + { 0x51, KEY_WWW }, + { 0x55, KEY_CALC }, + { 0x57, NO_KEY }, /* Battery mode */ + { 0x58, NO_KEY }, /* AC mode */ + { 0x5C, KEY_F15 }, /* Power Gear key */ + { 0x5D, KEY_WLAN }, /* Wireless console Toggle */ + { 0x5E, KEY_WLAN }, /* Wireless console Enable */ + { 0x5F, KEY_WLAN }, /* Wireless console Disable */ + { 0x60, KEY_TOUCHPAD_ON }, + { 0x61, KEY_SWITCHVIDEOMODE }, /* SDSP LCD only */ + { 0x62, KEY_SWITCHVIDEOMODE }, /* SDSP CRT only */ + { 0x63, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + CRT */ + { 0x64, KEY_SWITCHVIDEOMODE }, /* SDSP TV */ + { 0x65, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + TV */ + { 0x66, KEY_SWITCHVIDEOMODE }, /* SDSP CRT + TV */ + { 0x67, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + CRT + TV */ + { 0x6B, KEY_TOUCHPAD_TOGGLE }, + { 0x6E, NO_KEY }, /* Low Battery notification */ + { 0x71, KEY_F13 }, /* General-purpose button */ + { 0x79, NO_KEY }, /* Charger type dectection notification */ + { 0x7a, KEY_ALS_TOGGLE }, /* Ambient Light Sensor Toggle */ + { 0x7c, KEY_MICMUTE }, + { 0x7D, KEY_BLUETOOTH }, /* Bluetooth Enable */ + { 0x7E, KEY_BLUETOOTH }, /* Bluetooth Disable */ + { 0x82, KEY_CAMERA }, + { 0x86, KEY_PROG1 }, /* MyASUS Key */ + { 0x88, KEY_RFKILL }, /* Radio Toggle Key */ + { 0x8A, KEY_PROG1 }, /* Color enhancement mode */ + { 0x8C, KEY_SWITCHVIDEOMODE }, /* SDSP DVI only */ + { 0x8D, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + DVI */ + { 0x8E, KEY_SWITCHVIDEOMODE }, /* SDSP CRT + DVI */ + { 0x8F, KEY_SWITCHVIDEOMODE }, /* SDSP TV + DVI */ + { 0x90, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + CRT + DVI */ + { 0x91, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + TV + DVI */ + { 0x92, KEY_SWITCHVIDEOMODE }, /* SDSP CRT + TV + DVI */ + { 0x93, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + CRT + TV + DVI */ + { 0x95, KEY_MEDIA }, + { 0x99, KEY_PHONE }, /* Conflicts with fan mode switch */ + { 0xA0, KEY_SWITCHVIDEOMODE }, /* SDSP HDMI only */ + { 0xA1, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + HDMI */ + { 0xA2, KEY_SWITCHVIDEOMODE }, /* SDSP CRT + HDMI */ + { 0xA3, KEY_SWITCHVIDEOMODE }, /* SDSP TV + HDMI */ + { 0xA4, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + CRT + HDMI */ + { 0xA5, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + TV + HDMI */ + { 0xA6, KEY_SWITCHVIDEOMODE }, /* SDSP CRT + TV + HDMI */ + { 0xA7, KEY_SWITCHVIDEOMODE }, /* SDSP LCD + CRT + TV + HDMI */ + { 0xAE, KEY_FN_F5 }, /* Fn+F5 fan mode on 2020+ */ + { 0xB3, KEY_PROG4 }, /* AURA */ + { 0xB5, KEY_CALC }, + { 0xC4, KEY_KBDILLUMUP }, + { 0xC5, KEY_KBDILLUMDOWN }, + { 0xC6, NO_KEY }, /* Ambient Light Sensor notification */ + { 0xFA, KEY_PROG2 }, /* Lid flip action */ + { 0xBD, KEY_PROG2 }, /* Lid flip action on ROG xflow laptops */ +}; +#endif + ACPI_SERIAL_DECL(asus_wmi, "ASUS WMI device"); static void acpi_asus_wmi_identify(driver_t *driver, device_t parent); @@ -290,6 +376,9 @@ static driver_t acpi_asus_wmi_driver = { DRIVER_MODULE(acpi_asus_wmi, acpi_wmi, acpi_asus_wmi_driver, 0, 0); MODULE_DEPEND(acpi_asus_wmi, acpi_wmi, 1, 1, 1); MODULE_DEPEND(acpi_asus_wmi, acpi, 1, 1, 1); +#ifdef EVDEV_SUPPORT +MODULE_DEPEND(acpi_asus_wmi, evdev, 1, 1, 1); +#endif static void acpi_asus_wmi_identify(driver_t *driver, device_t parent) @@ -437,6 +526,27 @@ next: } ACPI_SERIAL_END(asus_wmi); +#ifdef EVDEV_SUPPORT + if (sc->notify_guid != NULL) { + sc->evdev = evdev_alloc(); + evdev_set_name(sc->evdev, device_get_desc(dev)); + evdev_set_phys(sc->evdev, device_get_nameunit(dev)); + evdev_set_id(sc->evdev, BUS_HOST, 0, 0, 1); + evdev_support_event(sc->evdev, EV_SYN); + evdev_support_event(sc->evdev, EV_KEY); + for (i = 0; i < nitems(acpi_asus_wmi_evdev_map); i++) { + if (acpi_asus_wmi_evdev_map[i].key != NO_KEY) + evdev_support_key(sc->evdev, + acpi_asus_wmi_evdev_map[i].key); + } + + if (evdev_register(sc->evdev) != 0) { + acpi_asus_wmi_detach(dev); + return (ENXIO); + } + } +#endif + return (0); } @@ -447,8 +557,12 @@ acpi_asus_wmi_detach(device_t dev) ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); - if (sc->notify_guid) + if (sc->notify_guid) { ACPI_WMI_REMOVE_EVENT_HANDLER(dev, sc->notify_guid); +#ifdef EVDEV_SUPPORT + evdev_free(sc->evdev); +#endif + } return (0); } @@ -540,6 +654,27 @@ acpi_asus_wmi_free_buffer(ACPI_BUFFER* buf) { } } +#ifdef EVDEV_SUPPORT +static void +acpi_asus_wmi_push_evdev_event(struct evdev_dev *evdev, UINT32 notify) +{ + int i; + uint16_t key; + + for (i = 0; i < nitems(acpi_asus_wmi_evdev_map); i++) { + if (acpi_asus_wmi_evdev_map[i].notify == notify && + acpi_asus_wmi_evdev_map[i].key != NO_KEY) { + key = acpi_asus_wmi_evdev_map[i].key; + evdev_push_key(evdev, key, 1); + evdev_sync(evdev); + evdev_push_key(evdev, key, 0); + evdev_sync(evdev); + break; + } + } +} +#endif + static void acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) { @@ -557,6 +692,9 @@ acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) code = obj->Integer.Value; acpi_UserNotify("ASUS", ACPI_ROOT_OBJECT, code); +#ifdef EVDEV_SUPPORT + acpi_asus_wmi_push_evdev_event(sc->evdev, code); +#endif } if (code && sc->handle_keys) { /* Keyboard backlight control. */ diff --git a/sys/modules/acpi/acpi_asus_wmi/Makefile b/sys/modules/acpi/acpi_asus_wmi/Makefile index 0e831bf05e47..e0e21fa05d8c 100644 --- a/sys/modules/acpi/acpi_asus_wmi/Makefile +++ b/sys/modules/acpi/acpi_asus_wmi/Makefile @@ -4,5 +4,6 @@ KMOD= acpi_asus_wmi CFLAGS+=-I${SRCTOP}/sys/dev/acpi_support SRCS= acpi_asus_wmi.c opt_acpi.h acpi_if.h acpi_wmi_if.h device_if.h bus_if.h +SRCS+= opt_evdev.h .include From nobody Wed Apr 30 07:49:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpc6cT8z5v2jK; Wed, 30 Apr 2025 07:49:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpc57WQz3GBj; Wed, 30 Apr 2025 07:49:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9ybA87ZFRFGXlATT123mgnZflwp3GQxjtG8xPh9SIdQ=; b=bnB9iE/WowxbaM4D+AuH9rVajmfmWoGMDutMGK85y85ySRKKUP6XkJi/Md1nU3GMAFCXWc r8zo3yzhnnsdbfOur29vYBeNj96m1Sa/1ChLbHEJAoAF4IcK4vEzm4ShzBnV6CWWz56ZLq 4PSkWpSwi6+uq1/magIN2RHtaSe4uv2OIZ4FzOj1WM2u3xVacs82LbCxi/GO80pWv9nXKA vwRZUybz2vgbJy0n7C6Zpgt/AQDQtXcRADV33x430HrhZ0EFUW03mQ6gqsj6UNeoHCNTx6 2xGWFJnBdigSIFv/sxNmlSNoYDq59q3l8CJ5FcjMrxhbyCPPKUfekiIYrJPmTQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999352; a=rsa-sha256; cv=none; b=Kj8SMldh8TfB4co1u5jUof7G+IUm6pBJKlKtbhFfuooUBH/rPvz0jB8VknqV0hc9a1jE7f PqOIvzdZTTPV6x/Hh8XzjM/dal1GiguoRs0XbQOhbGgmuTDg3y+dCAQ5eAi9nMNYaxsGdJ hPi0ebwETn+3/ezHLVurRgZcVkifxvxLzx3UGoCOLKSB3edxN+IvDxOkSMsxgfQFJUX8SZ D6oRJiiK7HIGZLqzoCUJ6IKJxMmCfIt0UopU086FtZlugeo1DrBfaUp3tHaewZfCl/s1QY SGzx6vwfjhmh2Dj7WVBMU0JLpO8auB3qgDUWhPsg/w9o4tsOZb/XbRPwsbArTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9ybA87ZFRFGXlATT123mgnZflwp3GQxjtG8xPh9SIdQ=; b=gbYToHAAiNFZEr39F+Bq/NfFhVLDObW+3507E8GOX14vRWtRqNRk/T3r3hSKZn3Zt1ZCGh xrMqXb475F8HdaxR2WG2nrzKi8zVyvfBJd9CcSX452C21crwFv95W3nyPRy+Bcr1fTkpKa HCSLyDJFVQj64bABcW0ohBHUDirm9+U3z58BLa9cIPjRNJaaIFpd6hI1pEhW4ASOxjL4ik Fobc2+0MN4rERATb7dyo7KR3B7dlCLwgzC1Qw27VJsT3ygORFynK+m72NlD2WSw0+hr6Ih 537QvmhPcrhARPKrvm2QGMYH+zEyfE5DEEQQjLQaW0gRIvNxp7B+y4EILBJgIA== 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 4ZnTpc4kYczxP4; Wed, 30 Apr 2025 07:49:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nCgI011133; Wed, 30 Apr 2025 07:49:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nCIw011130; Wed, 30 Apr 2025 07:49:12 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:12 GMT Message-Id: <202504300749.53U7nCIw011130@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 9b5f1a6cd682 - stable/14 - acpi_asus_wmi(4): Improve keyboard backlight support. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9b5f1a6cd68272d249a2fe236a1d292ae7fefac2 Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=9b5f1a6cd68272d249a2fe236a1d292ae7fefac2 commit 9b5f1a6cd68272d249a2fe236a1d292ae7fefac2 Author: Vladimir Kondratyev AuthorDate: 2025-03-17 15:45:14 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 acpi_asus_wmi(4): Improve keyboard backlight support. - Fix maximal keyboard backlight level, Although Linux source code comment says that backlight level is encoded in 3 bits of data, actual code limits maximum level to 3. - Add backlight(9) support for keyboard - Turn off/on keyboard backlight on suspend/resume Sponsored by: Future Crew LLC MFC after: 1 month Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D48983 (cherry picked from commit f134662a1a5726d78880385002a03b8fe68805f6) --- share/man/man4/acpi_asus_wmi.4 | 10 ++- sys/dev/acpi_support/acpi_asus_wmi.c | 136 +++++++++++++++++++++++++++++++- sys/modules/acpi/acpi_asus_wmi/Makefile | 2 +- 3 files changed, 142 insertions(+), 6 deletions(-) diff --git a/share/man/man4/acpi_asus_wmi.4 b/share/man/man4/acpi_asus_wmi.4 index 10db9ba6ca59..438ac11b078a 100644 --- a/share/man/man4/acpi_asus_wmi.4 +++ b/share/man/man4/acpi_asus_wmi.4 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 2, 2012 +.Dd March 25, 2024 .Dt ACPI_ASUS_WMI 4 .Os .Sh NAME @@ -72,11 +72,19 @@ Number of other variables under the same sysctl branch are model-specific. Defaults for these variables can be set in .Xr sysctl.conf 5 , which is parsed at boot-time. +.Sh FILES +.Bl -tag -width "/dev/backlight/acpi_asus_wmi0" -compact +.It Pa /dev/backlight/acpi_asus_wmi0 +Keyboard +.Xr backlight 8 +device node. +.El .Sh SEE ALSO .Xr acpi 4 , .Xr acpi_asus 4 , .Xr acpi_video 4 , .Xr sysctl.conf 5 , +.Xr backlight 8 , .Xr devd 8 , .Xr sysctl 8 .Sh HISTORY diff --git a/sys/dev/acpi_support/acpi_asus_wmi.c b/sys/dev/acpi_support/acpi_asus_wmi.c index 80beee2fea7f..968de5fe5e87 100644 --- a/sys/dev/acpi_support/acpi_asus_wmi.c +++ b/sys/dev/acpi_support/acpi_asus_wmi.c @@ -42,6 +42,9 @@ #include #include "acpi_wmi_if.h" +#include +#include "backlight_if.h" + #ifdef EVDEV_SUPPORT #include #include @@ -117,6 +120,8 @@ struct acpi_asus_wmi_softc { struct sysctl_oid *sysctl_tree; int dsts_id; int handle_keys; + struct cdev *kbd_bkl; + uint32_t kbd_bkl_level; #ifdef EVDEV_SUPPORT struct evdev_dev *evdev; #endif @@ -345,6 +350,8 @@ static void acpi_asus_wmi_identify(driver_t *driver, device_t parent); static int acpi_asus_wmi_probe(device_t dev); static int acpi_asus_wmi_attach(device_t dev); static int acpi_asus_wmi_detach(device_t dev); +static int acpi_asus_wmi_suspend(device_t dev); +static int acpi_asus_wmi_resume(device_t dev); static int acpi_asus_wmi_sysctl(SYSCTL_HANDLER_ARGS); static int acpi_asus_wmi_sysctl_set(struct acpi_asus_wmi_softc *sc, int dev_id, @@ -357,12 +364,26 @@ static int acpi_wpi_asus_get_devstate(struct acpi_asus_wmi_softc *sc, static int acpi_wpi_asus_set_devstate(struct acpi_asus_wmi_softc *sc, UINT32 dev_id, UINT32 ctrl_param, UINT32 *retval); static void acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context); +static int acpi_asus_wmi_backlight_update_status(device_t dev, + struct backlight_props *props); +static int acpi_asus_wmi_backlight_get_status(device_t dev, + struct backlight_props *props); +static int acpi_asus_wmi_backlight_get_info(device_t dev, + struct backlight_info *info); static device_method_t acpi_asus_wmi_methods[] = { + /* Device interface */ DEVMETHOD(device_identify, acpi_asus_wmi_identify), DEVMETHOD(device_probe, acpi_asus_wmi_probe), DEVMETHOD(device_attach, acpi_asus_wmi_attach), DEVMETHOD(device_detach, acpi_asus_wmi_detach), + DEVMETHOD(device_suspend, acpi_asus_wmi_suspend), + DEVMETHOD(device_resume, acpi_asus_wmi_resume), + + /* Backlight interface */ + DEVMETHOD(backlight_update_status, acpi_asus_wmi_backlight_update_status), + DEVMETHOD(backlight_get_status, acpi_asus_wmi_backlight_get_status), + DEVMETHOD(backlight_get_info, acpi_asus_wmi_backlight_get_info), DEVMETHOD_END }; @@ -376,10 +397,35 @@ static driver_t acpi_asus_wmi_driver = { DRIVER_MODULE(acpi_asus_wmi, acpi_wmi, acpi_asus_wmi_driver, 0, 0); MODULE_DEPEND(acpi_asus_wmi, acpi_wmi, 1, 1, 1); MODULE_DEPEND(acpi_asus_wmi, acpi, 1, 1, 1); +MODULE_DEPEND(acpi_asus_wmi, backlight, 1, 1, 1); #ifdef EVDEV_SUPPORT MODULE_DEPEND(acpi_asus_wmi, evdev, 1, 1, 1); #endif +static const uint32_t acpi_asus_wmi_backlight_levels[] = { 0, 33, 66, 100 }; + +static inline uint32_t +devstate_to_kbd_bkl_level(UINT32 val) +{ + return (acpi_asus_wmi_backlight_levels[val & 0x3]); +} + +static inline UINT32 +kbd_bkl_level_to_devstate(uint32_t bkl) +{ + UINT32 val; + int i; + + for (i = 0; i < nitems(acpi_asus_wmi_backlight_levels); i++) { + if (bkl < acpi_asus_wmi_backlight_levels[i]) + break; + } + val = (i - 1) & 0x3; + if (val != 0) + val |= 0x80; + return(val); +} + static void acpi_asus_wmi_identify(driver_t *driver, device_t parent) { @@ -418,6 +464,7 @@ acpi_asus_wmi_attach(device_t dev) struct acpi_asus_wmi_softc *sc; UINT32 val; int dev_id, i; + bool have_kbd_bkl = false; ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); @@ -502,6 +549,10 @@ next: if (val == 0) continue; break; + case ASUS_WMI_DEVID_KBD_BACKLIGHT: + sc->kbd_bkl_level = devstate_to_kbd_bkl_level(val); + have_kbd_bkl = true; + /* FALLTHROUGH */ default: if ((val & ASUS_WMI_DSTS_PRESENCE_BIT) == 0) continue; @@ -541,12 +592,22 @@ next: } if (evdev_register(sc->evdev) != 0) { + device_printf(dev, "Can not register evdev\n"); acpi_asus_wmi_detach(dev); return (ENXIO); } } #endif + if (have_kbd_bkl) { + sc->kbd_bkl = backlight_register("acpi_asus_wmi", dev); + if (sc->kbd_bkl == NULL) { + device_printf(dev, "Can not register backlight\n"); + acpi_asus_wmi_detach(dev); + return (ENXIO); + } + } + return (0); } @@ -557,6 +618,9 @@ acpi_asus_wmi_detach(device_t dev) ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); + if (sc->kbd_bkl != NULL) + backlight_destroy(sc->kbd_bkl); + if (sc->notify_guid) { ACPI_WMI_REMOVE_EVENT_HANDLER(dev, sc->notify_guid); #ifdef EVDEV_SUPPORT @@ -567,6 +631,34 @@ acpi_asus_wmi_detach(device_t dev) return (0); } +static int +acpi_asus_wmi_suspend(device_t dev) +{ + struct acpi_asus_wmi_softc *sc = device_get_softc(dev); + + if (sc->kbd_bkl != NULL) { + ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); + acpi_wpi_asus_set_devstate(sc, + ASUS_WMI_DEVID_KBD_BACKLIGHT, 0, NULL); + } + + return (0); +} + +static int +acpi_asus_wmi_resume(device_t dev) +{ + struct acpi_asus_wmi_softc *sc = device_get_softc(dev); + + if (sc->kbd_bkl != NULL) { + ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); + acpi_wpi_asus_set_devstate(sc, ASUS_WMI_DEVID_KBD_BACKLIGHT, + kbd_bkl_level_to_devstate(sc->kbd_bkl_level), NULL); + } + + return (0); +} + static int acpi_asus_wmi_sysctl(SYSCTL_HANDLER_ARGS) { @@ -615,7 +707,7 @@ acpi_asus_wmi_sysctl_get(struct acpi_asus_wmi_softc *sc, int dev_id) val &= ASUS_WMI_DSTS_BRIGHTNESS_MASK; break; case ASUS_WMI_DEVID_KBD_BACKLIGHT: - val &= 0x7; + val &= 0x3; break; default: if (val & ASUS_WMI_DSTS_UNKNOWN_BIT) @@ -636,7 +728,7 @@ acpi_asus_wmi_sysctl_set(struct acpi_asus_wmi_softc *sc, int dev_id, int arg, in switch(dev_id) { case ASUS_WMI_DEVID_KBD_BACKLIGHT: - arg = min(0x7, arg); + arg = min(0x3, arg); if (arg != 0) arg |= 0x80; break; @@ -701,9 +793,9 @@ acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) if (code == 0xc4 || code == 0xc5) { acpi_wpi_asus_get_devstate(sc, ASUS_WMI_DEVID_KBD_BACKLIGHT, &val); - val &= 0x7; + val &= 0x3; if (code == 0xc4) { - if (val < 0x7) + if (val < 0x3) val++; } else if (val > 0) val--; @@ -711,6 +803,7 @@ acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) val |= 0x80; acpi_wpi_asus_set_devstate(sc, ASUS_WMI_DEVID_KBD_BACKLIGHT, val, NULL); + sc->kbd_bkl_level = devstate_to_kbd_bkl_level(val); } /* Touchpad control. */ if (code == 0x6b) { @@ -767,3 +860,38 @@ acpi_wpi_asus_set_devstate(struct acpi_asus_wmi_softc *sc, return (acpi_asus_wmi_evaluate_method(sc->wmi_dev, ASUS_WMI_METHODID_DEVS, dev_id, ctrl_param, retval)); } + +static int +acpi_asus_wmi_backlight_update_status(device_t dev, struct backlight_props + *props) +{ + struct acpi_asus_wmi_softc *sc = device_get_softc(dev); + + acpi_wpi_asus_set_devstate(sc, ASUS_WMI_DEVID_KBD_BACKLIGHT, + kbd_bkl_level_to_devstate(props->brightness), NULL); + sc->kbd_bkl_level = props->brightness; + + return (0); +} + +static int +acpi_asus_wmi_backlight_get_status(device_t dev, struct backlight_props *props) +{ + struct acpi_asus_wmi_softc *sc = device_get_softc(dev); + + props->brightness = sc->kbd_bkl_level; + props->nlevels = nitems(acpi_asus_wmi_backlight_levels); + memcpy(props->levels, acpi_asus_wmi_backlight_levels, + sizeof(acpi_asus_wmi_backlight_levels)); + + return (0); +} + +static int +acpi_asus_wmi_backlight_get_info(device_t dev, struct backlight_info *info) +{ + info->type = BACKLIGHT_TYPE_KEYBOARD; + strlcpy(info->name, "ASUS Keyboard", BACKLIGHTMAXNAMELENGTH); + + return (0); +} diff --git a/sys/modules/acpi/acpi_asus_wmi/Makefile b/sys/modules/acpi/acpi_asus_wmi/Makefile index e0e21fa05d8c..52f48f953125 100644 --- a/sys/modules/acpi/acpi_asus_wmi/Makefile +++ b/sys/modules/acpi/acpi_asus_wmi/Makefile @@ -4,6 +4,6 @@ KMOD= acpi_asus_wmi CFLAGS+=-I${SRCTOP}/sys/dev/acpi_support SRCS= acpi_asus_wmi.c opt_acpi.h acpi_if.h acpi_wmi_if.h device_if.h bus_if.h -SRCS+= opt_evdev.h +SRCS+= opt_evdev.h backlight_if.h .include From nobody Wed Apr 30 07:49:13 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpf3MBlz5v2jN; Wed, 30 Apr 2025 07:49:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpd6kjBz3GMs; Wed, 30 Apr 2025 07:49:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AJ7DzhvCDAtp+MZUl4uWJeILdJot31iAKQD8YOmdFPI=; b=W2s2dlyM+pL5IMtjRiE3DgYJYo7cdUeuVszEe+pmLmzoi2BA2quw2nx38n97NxTmmOCwGj mM0O6aVFtJ/EZ0sEQfx+uVtu//ZChMG6MfqlOSnS/nQLb2qs6duHRseaI+RAoabefXEdps o9NF6UjTdxkeOkTwjl28y/A82hf6P7RXnI00AyC9OlQ5HgvRMjs/RNP8Wv3Af5yioRJJqW sUweJiG8GmtRf3X+0ZN9E8iiKBsOEPYDCTsbvcB6rPDGRzBoBg2CnY4/Dyn1jqilZZtcMo Z4rs0EyJFEFDSb5maYB0b/mhTEo0SoOahMjTVaHH6HRXlNbvuLVHly5hqIGaLg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999354; a=rsa-sha256; cv=none; b=rnVwi1QtIrQYPQtlbRWcOYVsoVMwVO9Hc35HK3SBWLsTorJA0YRzwIUpgJENB7B/A+j0oI vinWG0QeOluxMTQPKtjv5ENlmLfedx02uQTFgTvNkqnSDFzuzW0LCkiv4QcnkVJNDONCUX WuurzuDSyboblw0LuFXWWZvFfjNYks222Z+ryJKXjODS9/ZxldjT2xY5QmhDG8AEgiJeio SNOZW5xvoWR+MbwBnjzh0pfRM9cmevmAQWew14BgTXO7Nwd912N4+YJIX9UlzzjG6x1TX/ 6D8/TAOvZKM1yAnAvSOcktjaCt6hwQUojfvxhN2RwwpxPjyLMQRs8Z4KxkCSNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AJ7DzhvCDAtp+MZUl4uWJeILdJot31iAKQD8YOmdFPI=; b=e1wuIipdMiVvlyhaR6/tuxpEd9YGs0xdQQ5ky2+1fW0QmwnNYylYj9qa1DR4eP/Zk4OMN/ EE4JpHSXXNYxiwvRf/PZqH6TF6cZFJe4RHLNHV/bnkxqLM6BfRO3BE41Ol6802bZKF9IeO U2I8xkkZH9KK53nMFeONcjYoKgeqEu/+otSwOfbVHFmb9MgtORnRHUO69p+fHu83GDKGR1 sb4YCzJh2Y6Haevye4tp2mNQLFzDUluLlBROL+qbSn0tSmdX30D1ZENBfnuOFc7TqPkGkH R6gZqS9Zwbu4EBt7/6OP3ZIHoihwvrtNjjDrpwMlHM7SZ28Fc/kXimG1ZxGwig== 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 4ZnTpd5zrQzx7s; Wed, 30 Apr 2025 07:49:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nDun011165; Wed, 30 Apr 2025 07:49:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nDmN011162; Wed, 30 Apr 2025 07:49:13 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:13 GMT Message-Id: <202504300749.53U7nDmN011162@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: f530b1236274 - stable/14 - acpi_asus_wmi(4): Add support for WMI event queue List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f530b12362740d9fa0a87cc0949ef4ff2caa7f19 Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=f530b12362740d9fa0a87cc0949ef4ff2caa7f19 commit f530b12362740d9fa0a87cc0949ef4ff2caa7f19 Author: Vladimir Kondratyev AuthorDate: 2025-03-17 15:45:14 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 acpi_asus_wmi(4): Add support for WMI event queue Event codes are expected to be retrieved from a queue on at least some models. Specifically, very likely the ACPI WMI devices with _UID ATK are queued whereas those with ASUSWMI are not. Sponsored by: Future Crew LLC MFC after: 1 month Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D48984 (cherry picked from commit d5bf6a7245cc7825d17ebb00d1e7f07ae6dc32e6) --- sys/dev/acpi_support/acpi_asus_wmi.c | 89 ++++++++++++++++++++++++++++++------ 1 file changed, 76 insertions(+), 13 deletions(-) diff --git a/sys/dev/acpi_support/acpi_asus_wmi.c b/sys/dev/acpi_support/acpi_asus_wmi.c index 968de5fe5e87..e3d16b9345ee 100644 --- a/sys/dev/acpi_support/acpi_asus_wmi.c +++ b/sys/dev/acpi_support/acpi_asus_wmi.c @@ -112,6 +112,12 @@ ACPI_MODULE_NAME("ASUS-WMI") #define ASUS_WMI_DSTS_BRIGHTNESS_MASK 0x000000FF #define ASUS_WMI_DSTS_MAX_BRIGTH_MASK 0x0000FF00 +/* Events */ +#define ASUS_WMI_EVENT_QUEUE_SIZE 0x10 +#define ASUS_WMI_EVENT_QUEUE_END 0x1 +#define ASUS_WMI_EVENT_MASK 0xFFFF +#define ASUS_WMI_EVENT_VALUE_ATK 0xFF + struct acpi_asus_wmi_softc { device_t dev; device_t wmi_dev; @@ -120,6 +126,7 @@ struct acpi_asus_wmi_softc { struct sysctl_oid *sysctl_tree; int dsts_id; int handle_keys; + bool event_queue; struct cdev *kbd_bkl; uint32_t kbd_bkl_level; #ifdef EVDEV_SUPPORT @@ -363,6 +370,8 @@ static int acpi_wpi_asus_get_devstate(struct acpi_asus_wmi_softc *sc, UINT32 dev_id, UINT32 *retval); static int acpi_wpi_asus_set_devstate(struct acpi_asus_wmi_softc *sc, UINT32 dev_id, UINT32 ctrl_param, UINT32 *retval); +static int acpi_asus_wmi_get_event_code(device_t wmi_dev, UINT32 notify, + int *code); static void acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context); static int acpi_asus_wmi_backlight_update_status(device_t dev, struct backlight_props *props); @@ -463,7 +472,7 @@ acpi_asus_wmi_attach(device_t dev) { struct acpi_asus_wmi_softc *sc; UINT32 val; - int dev_id, i; + int dev_id, i, code; bool have_kbd_bkl = false; ACPI_FUNCTION_TRACE((char *)(uintptr_t) __func__); @@ -577,6 +586,23 @@ next: } ACPI_SERIAL_END(asus_wmi); + /* Detect and flush event queue */ + if (sc->dsts_id == ASUS_WMI_METHODID_DSTS2) { + for (i = 0; i <= ASUS_WMI_EVENT_QUEUE_SIZE; i++) { + if (acpi_asus_wmi_get_event_code(sc->wmi_dev, + ASUS_WMI_EVENT_VALUE_ATK, &code) != 0) { + device_printf(dev, + "Can not flush event queue\n"); + break; + } + if (code == ASUS_WMI_EVENT_QUEUE_END || + code == ASUS_WMI_EVENT_MASK) { + sc->event_queue = true; + break; + } + } + } + #ifdef EVDEV_SUPPORT if (sc->notify_guid != NULL) { sc->evdev = evdev_alloc(); @@ -746,6 +772,24 @@ acpi_asus_wmi_free_buffer(ACPI_BUFFER* buf) { } } +static int +acpi_asus_wmi_get_event_code(device_t wmi_dev, UINT32 notify, int *code) +{ + ACPI_BUFFER response = { ACPI_ALLOCATE_BUFFER, NULL }; + ACPI_OBJECT *obj; + int error = 0; + + if (ACPI_FAILURE(ACPI_WMI_GET_EVENT_DATA(wmi_dev, notify, &response))) + return (EIO); + obj = (ACPI_OBJECT*) response.Pointer; + if (obj && obj->Type == ACPI_TYPE_INTEGER) + *code = obj->Integer.Value & ASUS_WMI_EVENT_MASK; + else + error = EINVAL; + acpi_asus_wmi_free_buffer(&response); + return (error); +} + #ifdef EVDEV_SUPPORT static void acpi_asus_wmi_push_evdev_event(struct evdev_dev *evdev, UINT32 notify) @@ -768,20 +812,11 @@ acpi_asus_wmi_push_evdev_event(struct evdev_dev *evdev, UINT32 notify) #endif static void -acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) +acpi_asus_wmi_handle_event(struct acpi_asus_wmi_softc *sc, int code) { - device_t dev = context; - ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, notify); UINT32 val; - int code = 0; - struct acpi_asus_wmi_softc *sc = device_get_softc(dev); - ACPI_BUFFER response = { ACPI_ALLOCATE_BUFFER, NULL }; - ACPI_OBJECT *obj; - ACPI_WMI_GET_EVENT_DATA(sc->wmi_dev, notify, &response); - obj = (ACPI_OBJECT*) response.Pointer; - if (obj && obj->Type == ACPI_TYPE_INTEGER) { - code = obj->Integer.Value; + if (code != 0) { acpi_UserNotify("ASUS", ACPI_ROOT_OBJECT, code); #ifdef EVDEV_SUPPORT @@ -814,7 +849,35 @@ acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) ASUS_WMI_DEVID_TOUCHPAD, val, NULL); } } - acpi_asus_wmi_free_buffer(&response); +} + +static void +acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) +{ + device_t dev = context; + struct acpi_asus_wmi_softc *sc = device_get_softc(dev); + int code = 0, i = 1; + + ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, notify); + + if (sc->event_queue) + i += ASUS_WMI_EVENT_QUEUE_SIZE; + do { + if (acpi_asus_wmi_get_event_code(sc->wmi_dev, notify, &code) + != 0) { + device_printf(dev, "Failed to get event code\n"); + return; + } + if (code == ASUS_WMI_EVENT_QUEUE_END || + code == ASUS_WMI_EVENT_MASK) + return; + acpi_asus_wmi_handle_event(sc, code); + if (notify != ASUS_WMI_EVENT_VALUE_ATK) + return; + } while (--i != 0); + if (sc->event_queue) + device_printf(dev, "Can not read event queue, " + "last code: 0x%x\n", code); } static int From nobody Wed Apr 30 07:49:14 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTph0lXlz5v33K; Wed, 30 Apr 2025 07:49: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpg0438z3G6D; Wed, 30 Apr 2025 07:49:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hSBhpvjYK5IEvWMX/S+E6NLAJXlcey25hBz/7zkNU/M=; b=BKCTfugOiP4UCf6qIhlYMtc4ic+2lVfhmNLd0GSRolEGPBnicLzTm7Pb0skl+ONI6lQDL4 TnmyYyGIfoo8bqDISATxslBAQIZILU4qFJKgc5D6NpKS3HItPabuBu34Qm3I9PG8lSBLZ/ P5NyB9IlqDNSo4T+a5geeV0qNVpRuN/LN5ZZa8d6mGXBeuRvp1B33VG1hUn1y1RGNr01Bf 32z2+SEzJ7Qw1iMT12krN+knqvu8W/FDJdoE4Eli7IBoPnHqTl4hOJQLcrWxCzLSFmozTA 4CpiW0nchWbxZidIFLnQcftPR5yGcpYg365mFz9KhdRnRzhtbYymgVmZaDcCjQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999355; a=rsa-sha256; cv=none; b=QhXYSMQZnDAPoQY5BWhervwWsCu9GMXwy0pUYwzIseUng5KViCd3he+nFeLO3XeJr648Ws EL74qP/CavJ026+PhmqWEeehu0EwYdaSr/nNx9pVgMzqQwTmrmPgcES3hDftUjb3LsDgKE YVda5qwqc2RzRdVXpm36hqOYz4mlZwJpqL3mDJ2oX5PVr2BrU5xUda8/FtqsMa+JbNvjst igpt3muJ2zrIld21NOPMlP3QEyi9QTij09zg1Dt09paY9jSl7u+SuS2yVCPvm4Urh00zxd wVldTqGpjr2eFGxZR3JU6hacfpN3OjW8Yqda2d2L1awDY/xeJiWD8BXBku7cWg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hSBhpvjYK5IEvWMX/S+E6NLAJXlcey25hBz/7zkNU/M=; b=j1brbWAWjz6CZN7bQ8JsXQHtilEONL1MtjIOw7UtMhXzILfQbaMtG+ggea+imXrwlJ/bgk 6VMfpGNJBLv5c1ImJuDnx3Q32+tfAxXPOOi56b0CO6sIJRCvw9/UEDa1Xum+s+bgv+Li5/ WIPyPqV0HYqFEuLB7zqvRLJHR5azWCNJ0cy/XPgfuxenZVAXQy6mENFJEn46yclkrwwhjW OtY+UKhNRSFbMYvfX6AcAEXWnpor95rq/qo0HLOojb4PP0qXk4uxywjU0leC+TrIWedGgO 78RaLCHg6wY5bdSHBh2XMyMtyoS4tAIbxhIC+fNWFeESar2gLsgOYnNZ1NJUiA== 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 4ZnTpf6dvczxC6; Wed, 30 Apr 2025 07:49:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nEJS011200; Wed, 30 Apr 2025 07:49:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nEMS011197; Wed, 30 Apr 2025 07:49:14 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:14 GMT Message-Id: <202504300749.53U7nEMS011197@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: a55479cbfb62 - stable/14 - acpi_asus_wmi(4): Handle TUF-specific hotkeys internally List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a55479cbfb62fb5cbe9eaf59ad01e5685dec593d Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=a55479cbfb62fb5cbe9eaf59ad01e5685dec593d commit a55479cbfb62fb5cbe9eaf59ad01e5685dec593d Author: Vladimir Kondratyev AuthorDate: 2025-03-17 15:45:14 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 acpi_asus_wmi(4): Handle TUF-specific hotkeys internally - Cycle TUF laptop RGB mode on AURA key press - Switch TUF 'Throttle Thermal Policy' with 'Fan' key Sponsored by: Future Crew LLC MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D48985 (cherry picked from commit 027b93c2f5e1b84d9e4569f127b632c704c53b73) --- sys/dev/acpi_support/acpi_asus_wmi.c | 62 +++++++++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/sys/dev/acpi_support/acpi_asus_wmi.c b/sys/dev/acpi_support/acpi_asus_wmi.c index e3d16b9345ee..0e9c35d42793 100644 --- a/sys/dev/acpi_support/acpi_asus_wmi.c +++ b/sys/dev/acpi_support/acpi_asus_wmi.c @@ -99,9 +99,11 @@ ACPI_MODULE_NAME("ASUS-WMI") #define ASUS_WMI_DEVID_CARDREADER 0x00080013 #define ASUS_WMI_DEVID_TOUCHPAD 0x00100011 #define ASUS_WMI_DEVID_TOUCHPAD_LED 0x00100012 +#define ASUS_WMI_DEVID_TUF_RGB_MODE 0x00100056 #define ASUS_WMI_DEVID_THERMAL_CTRL 0x00110011 #define ASUS_WMI_DEVID_FAN_CTRL 0x00110012 #define ASUS_WMI_DEVID_PROCESSOR_STATE 0x00120012 +#define ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY 0x00120075 /* DSTS masks */ #define ASUS_WMI_DSTS_STATUS_BIT 0x00000001 @@ -129,6 +131,8 @@ struct acpi_asus_wmi_softc { bool event_queue; struct cdev *kbd_bkl; uint32_t kbd_bkl_level; + uint32_t tuf_rgb_mode; + uint32_t ttp_mode; #ifdef EVDEV_SUPPORT struct evdev_dev *evdev; #endif @@ -272,6 +276,12 @@ static struct { .dev_id = ASUS_WMI_DEVID_PROCESSOR_STATE, .flag_rdonly = 1 }, + { + .name = "throttle_thermal_policy", + .dev_id = ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY, + .description = "Throttle Thermal Policy " + "(0 - default, 1 - overboost, 2 - silent)", + }, { NULL, 0, NULL, 0 } }; @@ -365,7 +375,7 @@ static int acpi_asus_wmi_sysctl_set(struct acpi_asus_wmi_softc *sc, int dev_id, int arg, int oldarg); static int acpi_asus_wmi_sysctl_get(struct acpi_asus_wmi_softc *sc, int dev_id); static int acpi_asus_wmi_evaluate_method(device_t wmi_dev, int method, - UINT32 arg0, UINT32 arg1, UINT32 *retval); + UINT32 arg0, UINT32 arg1, UINT32 arg2, UINT32 *retval); static int acpi_wpi_asus_get_devstate(struct acpi_asus_wmi_softc *sc, UINT32 dev_id, UINT32 *retval); static int acpi_wpi_asus_set_devstate(struct acpi_asus_wmi_softc *sc, @@ -528,14 +538,14 @@ next: /* Initialize. */ if (!acpi_asus_wmi_evaluate_method(sc->wmi_dev, - ASUS_WMI_METHODID_INIT, 0, 0, &val) && bootverbose) + ASUS_WMI_METHODID_INIT, 0, 0, 0, &val) && bootverbose) device_printf(dev, "Initialization: %#x\n", val); if (!acpi_asus_wmi_evaluate_method(sc->wmi_dev, - ASUS_WMI_METHODID_SPEC, 0, 0x9, &val) && bootverbose) + ASUS_WMI_METHODID_SPEC, 0, 0x9, 0, &val) && bootverbose) device_printf(dev, "WMI BIOS version: %d.%d\n", val >> 16, val & 0xFF); if (!acpi_asus_wmi_evaluate_method(sc->wmi_dev, - ASUS_WMI_METHODID_SFUN, 0, 0, &val) && bootverbose) + ASUS_WMI_METHODID_SFUN, 0, 0, 0, &val) && bootverbose) device_printf(dev, "SFUN value: %#x\n", val); ACPI_SERIAL_BEGIN(asus_wmi); @@ -720,6 +730,13 @@ acpi_asus_wmi_sysctl_get(struct acpi_asus_wmi_softc *sc, int dev_id) ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); ACPI_SERIAL_ASSERT(asus_wmi); + switch(dev_id) { + case ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY: + return (sc->ttp_mode); + default: + break; + } + acpi_wpi_asus_get_devstate(sc, dev_id, &val); switch(dev_id) { @@ -758,6 +775,10 @@ acpi_asus_wmi_sysctl_set(struct acpi_asus_wmi_softc *sc, int dev_id, int arg, in if (arg != 0) arg |= 0x80; break; + case ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY: + arg = min(0x2, arg); + sc->ttp_mode = arg; + break; } acpi_wpi_asus_set_devstate(sc, dev_id, arg, NULL); @@ -848,6 +869,31 @@ acpi_asus_wmi_handle_event(struct acpi_asus_wmi_softc *sc, int code) acpi_wpi_asus_set_devstate(sc, ASUS_WMI_DEVID_TOUCHPAD, val, NULL); } + /* Throttle thermal policy control. */ + if (code == 0xae) { + sc->ttp_mode++; + if (sc->ttp_mode > 2) + sc->ttp_mode = 0; + acpi_wpi_asus_set_devstate(sc, + ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY, + sc->ttp_mode, NULL); + } + /* TUF laptop RGB mode control. */ + if (code == 0xb3) { + const uint32_t cmd = 0xb4; /* Save to BIOS */ + const uint32_t r = 0xff, g = 0xff, b = 0xff; + const uint32_t speed = 0xeb; /* Medium */ + if (sc->tuf_rgb_mode < 2) + sc->tuf_rgb_mode++; + else if (sc->tuf_rgb_mode == 2) + sc->tuf_rgb_mode = 10; + else sc->tuf_rgb_mode = 0; + acpi_asus_wmi_evaluate_method(sc->wmi_dev, + ASUS_WMI_METHODID_DEVS, + ASUS_WMI_DEVID_TUF_RGB_MODE, + cmd | (sc->tuf_rgb_mode << 8) | (r << 16) | (g << 24), + b | (speed << 8), NULL); + } } } @@ -882,9 +928,9 @@ acpi_asus_wmi_notify(ACPI_HANDLE h, UINT32 notify, void *context) static int acpi_asus_wmi_evaluate_method(device_t wmi_dev, int method, - UINT32 arg0, UINT32 arg1, UINT32 *retval) + UINT32 arg0, UINT32 arg1, UINT32 arg2, UINT32 *retval) { - UINT32 params[2] = { arg0, arg1 }; + UINT32 params[3] = { arg0, arg1, arg2 }; UINT32 result; ACPI_OBJECT *obj; ACPI_BUFFER in = { sizeof(params), ¶ms }; @@ -912,7 +958,7 @@ acpi_wpi_asus_get_devstate(struct acpi_asus_wmi_softc *sc, { return (acpi_asus_wmi_evaluate_method(sc->wmi_dev, - sc->dsts_id, dev_id, 0, retval)); + sc->dsts_id, dev_id, 0, 0, retval)); } static int @@ -921,7 +967,7 @@ acpi_wpi_asus_set_devstate(struct acpi_asus_wmi_softc *sc, { return (acpi_asus_wmi_evaluate_method(sc->wmi_dev, - ASUS_WMI_METHODID_DEVS, dev_id, ctrl_param, retval)); + ASUS_WMI_METHODID_DEVS, dev_id, ctrl_param, 0, retval)); } static int From nobody Wed Apr 30 07:49:17 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpk0zwgz5v2fS; Wed, 30 Apr 2025 07:49: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpj1Pf6z3GVM; Wed, 30 Apr 2025 07:49:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Qie6v5TlrCwR0vADAmeQfu8k7Lhk2c1k4+XlXd/sSus=; b=qpbbfIJA0GqkFSOjYKUiU+hmiQOwLxvYHyTsn1Umr2DWo67kIKvBAlayf/67GVce7db66u BeF07Of8kBtHXz7CI/xprEd4LNkDcyJ8NrlGxd+E84p+s0yAiTUIrUSPq12T6KccODMCmW /apRm7XCqaAK1TaTeVzYue88Ve4ZxwK9bqA08qeUi0Lc/27dRcwyJ762Y72wpYk1po39my bMaa3MaDtQ87Zq9X/GySs45cMmgQXzetZ+W+IwdgdoVIgTATn/s+XtLCZB3GXQU+NjcNyC KgU3UmDBYoROsErMEw634EcVV54vWlrMML3qnJjVLtr6qVnqwT+NFfQqas8SzA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999357; a=rsa-sha256; cv=none; b=BJC7HcoN14G3+vw6UK+urHH9T1ycQ23Or+mJocZwuZrevTaTGD+YB+C/epvovpvdrHbmDa vVtQ+HuU8Os9OaFmvRqnvrL57AIeqiJgZifzeTzhhU36QFD9kajWmZ9iM0OBqcIWUWZOEj d+M04s4eI/bG5lTbpmVV9PFPLrAXcMxEe/tmfZtLQyCT9jHp/NIlVLwz00lCdoLBROM9Kw IMeEdKbjXrhQ+zD+sPTegIN3EaLp5DtsHxav/0gkh/vxlJ2jZLdmDTPo2+CKja+HgggYrM Ao1/egP4o/3K5vvCGr880oO/j1Ui86diG0NynzYzhFaIAX3PlAns2bEHCY9yxQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Qie6v5TlrCwR0vADAmeQfu8k7Lhk2c1k4+XlXd/sSus=; b=qBwZBQ+li+gt+BxtwGU4r2wccvnUHg5p5vzIfPcf7cJ5XMcvshgK2Q0LTV8nI74opKRzA0 fcu4yrjN7SSS/563GBVjaWu/21tfRmBT1TkpuFCWa3bR/g3nqVyU3JVmVBuo/BKeFch8p3 rDsDQY/P43zfakuCNQ/CpoABOXvDvOz4VxyNQnjqlkslLV9PeR7AJdj6qYBa4l2MSmpFRl dkNAbYkBUPKxWyzz/xd3BCsu2uNryuGGvJtlzECS5ewXI1PiX0jI5GJb7ItthL/rKQrvb3 a7HyOiNRFzIgsWq8nlLW4GjaNx+DXTAOs+oNKIJT0f3oeJWZwZYnYE6TsSv33Q== 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 4ZnTpj10rQzxMp; Wed, 30 Apr 2025 07:49:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nH9d011268; Wed, 30 Apr 2025 07:49:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nHw0011265; Wed, 30 Apr 2025 07:49:17 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:17 GMT Message-Id: <202504300749.53U7nHw0011265@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 2880e12cc902 - stable/14 - hidraw(4): Return length of written data from HIDIOCS* ioctls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2880e12cc9022a7e1e129cd60ae43de34178c61e Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=2880e12cc9022a7e1e129cd60ae43de34178c61e commit 2880e12cc9022a7e1e129cd60ae43de34178c61e Author: Vladimir Kondratyev AuthorDate: 2025-04-27 09:07:35 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 hidraw(4): Return length of written data from HIDIOCS* ioctls To match Linux. MFC after: 3 days (cherry picked from commit 5ea0f1e63dbddc5452e2d85fcc03ba03a3d9cf84) --- sys/dev/hid/hidraw.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/dev/hid/hidraw.c b/sys/dev/hid/hidraw.c index 7aca66e2dd1d..f573b3db1391 100644 --- a/sys/dev/hid/hidraw.c +++ b/sys/dev/hid/hidraw.c @@ -885,7 +885,10 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, default: panic("Invalid report type"); } - return (hid_set_report(sc->sc_dev, addr, len, reptype, id)); + error = hid_set_report(sc->sc_dev, addr, len, reptype, id); + if (error == 0) + td->td_retval[0] = IOCPARM_LEN(cmd); + return (error); case HIDIOCGFEATURE(0): case HIDIOCGINPUT(0): From nobody Wed Apr 30 07:49:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpl0cv5z5v37L; Wed, 30 Apr 2025 07:49: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpk2VvGz3GPn; Wed, 30 Apr 2025 07:49:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1WWh2Lc5u4DeWULcRzuLcnwyc1+VO4nY7Imrpn/F40U=; b=QdNsH9CP63Un5bFLfTEXnfCjeq3k0a0CSE4SDos+d9NpQcdQQMteFDhe9rnZtyWJkEAQ5q JUnr/e7jEZnjqSNohsd8QeZ6wfY/xkdy7XSTcsjeLsAtoEv8nzXEJbqpyUkLFurU0RQA78 JsSBiWcl3bVYuoXOEaQantgjSC3DPC9hZ3I9BbO/ple6bLMVPW7aEmGutGo07qFFb3PamY 1wpE+gjOIkMM4Tb6cU14KUaXapSeXhabDgq4PCUdsSJBbalzqN4rWEwFs2EiCtCzipUQc8 cCZ0EKlUTgVkhXILplV1TPIzD6WIGWEFNCchA1pyRHKCRBBsCrSgU25AaZFrtQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999358; a=rsa-sha256; cv=none; b=OHWFN8abiX/tTXjDthlUWbngWI6tw3PyrX9bI6hjDxxcWm9SHnL8oy9JDYTeML7cb39EgV qiJ9ifz761DNsOYRtBYxbnOkfNV8PxLsT5e6kNEUlvnwG9mwfp2/stGs2HI2E3ygISjR0P 2dj2nF8OpZ/iVm64Epsh3Hh2vyqIIJWiQRBqyBRJkflOvpxA3qijgzFzl5GvkpT6+wm+/t dXDPH5t1RZzsOBQh31tt/2aD4/FHjdWjnuu8c72iVxMojaxngnBCti37hJG+CFq1i9amHS EAAZ0GLs1qb3lhy8gfCPS9VJcNwcVQzyjEPATouk8HBmCnfqq0PLs2ukz/GeGw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999358; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1WWh2Lc5u4DeWULcRzuLcnwyc1+VO4nY7Imrpn/F40U=; b=NDnF1NbkpNfkL9FZEn4eO2A2fdgJDjbZG8AonmrIV6AuL7ao1VBnKa1hzyqcY8plSwOXMt QooDMFREHAo62Hk3Us1/+lwyOzGZWGt9bB8XRLGPvoJ+DjUNqTm2AdC8pFSI1c1yKcj03S FGp9s6u2Ucal/nqmkKKpOTq826Yb1DQ3dFotUt7neBBC88D8IT/2Ex0L1fnO2c2FK7SM8N lT6ewzU9SkeQTSwwtmLP7uSfJ2Xvw3wteTJpiH8A0FgSryLgNWAcjOVOL/IYhipknqZnzX fg+Cfi6ZeezdBATJG3pMcm6oEpWzPGuQfrw3Io2Vq9U5BNxrfz1kNhvSTJ1grQ== 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 4ZnTpk245yzx7t; Wed, 30 Apr 2025 07:49:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nIwp011300; Wed, 30 Apr 2025 07:49:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nI1P011297; Wed, 30 Apr 2025 07:49:18 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:18 GMT Message-Id: <202504300749.53U7nI1P011297@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: d04cc28f9759 - stable/14 - hidraw(4): Return actual length of read data from HIDIOCG* ioctls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d04cc28f9759829a74db30d067be8a5c5e304c8d Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=d04cc28f9759829a74db30d067be8a5c5e304c8d commit d04cc28f9759829a74db30d067be8a5c5e304c8d Author: Vladimir Kondratyev AuthorDate: 2025-04-27 09:07:35 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:23 +0000 hidraw(4): Return actual length of read data from HIDIOCG* ioctls To match Linux. MFC after: 3 days (cherry picked from commit 8d4d08d571c64d8f040c2cd1d8f98844251a2238) --- sys/dev/hid/hidraw.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/dev/hid/hidraw.c b/sys/dev/hid/hidraw.c index f573b3db1391..c9d29b836d43 100644 --- a/sys/dev/hid/hidraw.c +++ b/sys/dev/hid/hidraw.c @@ -915,8 +915,14 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, default: panic("Invalid report type"); } - return (hid_get_report(sc->sc_dev, addr, len, NULL, - reptype, id)); + error = hid_get_report(sc->sc_dev, addr, len, &actsize, + reptype, id); + if (error == 0) { + if (id == 0) + actsize++; + td->td_retval[0] = actsize; + } + return (error); case HIDIOCGRAWUNIQ(0): strlcpy(addr, sc->sc_hw->serial, len); From nobody Wed Apr 30 07:49:15 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpj4w0Zz5v398; Wed, 30 Apr 2025 07:49: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTph0rFtz3GHS; Wed, 30 Apr 2025 07:49:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KxhgAdziLklLTVeWDbE+rmgFgD58hIGPsBq/5r4S9uM=; b=LTc+7FurxLpyt/6GxgE7jqoFALihHrJJs3j4xrS1q6f1kN7IDg4/f/9OCqVs6u2+T1aKVy og321fx063FLyCsymtK45IPyGd5a+z6io8VCxjXE/K+YVmsJ5TkMoiiHsDC3zYK/6WwxI0 7ScE8Cc6l409Mhtlw/hPajQn0sjyQJvcMuIAibzrKWt2LijmgyGh6W7jCuYUU/16GHZ9nS BTw7+e2DIaqaSDUDLHTiyjgzPa6bZl7XP4+xpeQerdJiW/8vPQ83mntpUKWj1n9WDAFic5 FeA42p4FeumO1pQPTONH9hNT632HHFqms5hs+8jIEj9IILcAH/0lB5mm0pi6ow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999356; a=rsa-sha256; cv=none; b=cYlnT/P7Wy4zJxKToE5Fj2S2fNlroUgfn0jxDHqtyaiRKUUAjap7VQN6tPzhVeFJabvPaz eYTJvIARrhJKE+Ok5Oruz1F+ly+aAnjiYWw89QE5z1WvEIWPbL/aUHTbkuI8ziC1xyV8fF IBB1DyfYkaRmerGaIW8WhXx0aTfwxdijHVrPScJZq+NJhYA3/dr8yvM/QRJjVeSfaCJrp7 hT+RxIbiKmVsgL0kuJf/FYMtVuZ/UVChlW7/rJPvhqWmYtb7G30Uh9AkABcsHkmvtrZVeS 0OUSxLqtSec4CEd8doduC2wuYtZM1zRFgG/8fMyNJgsMbOP8uEmN4uKJlwAUYA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KxhgAdziLklLTVeWDbE+rmgFgD58hIGPsBq/5r4S9uM=; b=QD0GH4cgepj2FsUWvmzeZayJ5dr45Z612YU0TxtOnM5N+K0oZS7NApFYM8m04KHkHtutMo 75xUd89s/O7dymNrnpQQ4NdZ37JlcfFVEWqnn9NxHl7gSlnVW6PuR6D7nnStdpW2XcCpTK Aet0APSwEa4mtb/qHRzvLUCqsOtZgQ8haT24Xxk7o87O5zr06s3dqlO9+aMd7aTIH6gB9T ZWMm9/QN7cxeXvEkSeXyJdrwfEDCI6/OcpIzqwSdPhFRzwd0sQyPnikpiffh/XBHNMnRrE nWHVFf+/4F/5XuXPKki4AT/wVEW3SFWk+69huoGbDNrmeFMNuf5tEjDU17B0Fg== 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 4ZnTph0NrZzxC7; Wed, 30 Apr 2025 07:49:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nF6l011236; Wed, 30 Apr 2025 07:49:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nFhC011233; Wed, 30 Apr 2025 07:49:15 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:15 GMT Message-Id: <202504300749.53U7nFhC011233@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 7545c8c116b1 - stable/14 - hidraw(4): Add additional hidraw input/output report ioctls List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7545c8c116b111e418f31eadfe6fba775a9e3dea Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=7545c8c116b111e418f31eadfe6fba775a9e3dea commit 7545c8c116b111e418f31eadfe6fba775a9e3dea Author: Vladimir Kondratyev AuthorDate: 2025-04-27 09:07:35 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:22 +0000 hidraw(4): Add additional hidraw input/output report ioctls to Linux hidraw compatibility API. Respective Linux commit f43d3870cafa made by Dean Camera message is: Currently the hidraw module can only read and write feature HID reports on demand, via dedicated ioctls. Input reports are read from the device through the read() interface, while output reports are written through the write interface(). This is insufficient; it is desirable in many situations to be able to read and write input and output reports through the control interface to cover additional scenarios: - Reading an input report by its report ID, to get initial state - Writing an input report, to set initial input state in the device - Reading an output report by its report ID, to obtain current state - Writing an output report by its report ID, out of band This patch adds these missing ioctl requests to read and write the remaining HID report types. Note that not all HID backends will neccesarily support this (e.g. while the USB link layer supports setting Input reports, others may not). FreeBSD native uhid(4) compatible API already has similar ioctls. MFC after: 3 days (cherry picked from commit fd6690e2d5cd5b15fce2c74ab0cac77a83514f6a) --- share/man/man4/hidraw.4 | 12 ++++++++---- sys/dev/hid/hidraw.c | 38 ++++++++++++++++++++++++++++++++++---- sys/dev/hid/hidraw.h | 4 ++++ sys/dev/usb/usb_ioctl.h | 2 +- 4 files changed, 47 insertions(+), 9 deletions(-) diff --git a/share/man/man4/hidraw.4 b/share/man/man4/hidraw.4 index f8eb9a21e9d7..0353e49a7425 100644 --- a/share/man/man4/hidraw.4 +++ b/share/man/man4/hidraw.4 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd August 6, 2023 +.Dd April 27, 2025 .Dt HIDRAW 4 .Os .Sh NAME @@ -206,10 +206,12 @@ into the memory specified by .Va buf . .It Dv HIDIOCGFEATURE(len) Pq Vt "void[] buf" -Get a feature report from the device. +.It Dv HIDIOCGINPUT(len) Pq Vt "void[] buf" +.It Dv HIDIOCGOUTPUT(len) Pq Vt "void[] buf" +Get respectively a feature, input or output report from the device. Copies a maximum of .Va len -bytes of the feature report data into the memory specified by +bytes of the report data into the memory specified by .Va buf . The first byte of the supplied buffer should be set to the report number of the requested report. @@ -218,7 +220,9 @@ The report will be returned starting at the first byte of the buffer (ie: the report number is not returned). This call may fail if the device does not support this feature. .It Dv HIDIOCSFEATURE(len) Pq Vt "void[] buf" -Set a feature Report in the device. +.It Dv HIDIOCSINPUT(len) Pq Vt "void[] buf" +.It Dv HIDIOCSOUTPUT(len) Pq Vt "void[] buf" +Set respectively a feature, input or output Report in the device. The value of the report is specified by the .Va buf and the diff --git a/sys/dev/hid/hidraw.c b/sys/dev/hid/hidraw.c index 45ef1995063e..7aca66e2dd1d 100644 --- a/sys/dev/hid/hidraw.c +++ b/sys/dev/hid/hidraw.c @@ -3,7 +3,7 @@ * * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. - * Copyright (c) 2020 Vladimir Kondratyev + * Copyright (c) 2020, 2025 Vladimir Kondratyev * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lennart@augustsson.net) at @@ -573,6 +573,7 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, hid_size_t actsize; int id, len; int error = 0; + uint8_t reptype; DPRINTFN(2, "cmd=%lx\n", cmd); @@ -860,6 +861,8 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, return (0); case HIDIOCSFEATURE(0): + case HIDIOCSINPUT(0): + case HIDIOCSOUTPUT(0): if (!(sc->sc_fflags & FWRITE)) return (EPERM); if (len < 2) @@ -869,10 +872,24 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, addr = (uint8_t *)addr + 1; len--; } - return (hid_set_report(sc->sc_dev, addr, len, - HID_FEATURE_REPORT, id)); + switch (IOCBASECMD(cmd)) { + case HIDIOCSFEATURE(0): + reptype = HID_FEATURE_REPORT; + break; + case HIDIOCSINPUT(0): + reptype = HID_INPUT_REPORT; + break; + case HIDIOCSOUTPUT(0): + reptype = HID_OUTPUT_REPORT; + break; + default: + panic("Invalid report type"); + } + return (hid_set_report(sc->sc_dev, addr, len, reptype, id)); case HIDIOCGFEATURE(0): + case HIDIOCGINPUT(0): + case HIDIOCGOUTPUT(0): if (!(sc->sc_fflags & FREAD)) return (EPERM); if (len < 2) @@ -882,8 +899,21 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, addr = (uint8_t *)addr + 1; len--; } + switch (IOCBASECMD(cmd)) { + case HIDIOCGFEATURE(0): + reptype = HID_FEATURE_REPORT; + break; + case HIDIOCGINPUT(0): + reptype = HID_INPUT_REPORT; + break; + case HIDIOCGOUTPUT(0): + reptype = HID_OUTPUT_REPORT; + break; + default: + panic("Invalid report type"); + } return (hid_get_report(sc->sc_dev, addr, len, NULL, - HID_FEATURE_REPORT, id)); + reptype, id)); case HIDIOCGRAWUNIQ(0): strlcpy(addr, sc->sc_hw->serial, len); diff --git a/sys/dev/hid/hidraw.h b/sys/dev/hid/hidraw.h index 4095ddb388bb..41aaf285fac3 100644 --- a/sys/dev/hid/hidraw.h +++ b/sys/dev/hid/hidraw.h @@ -92,5 +92,9 @@ struct hidraw_devinfo { #define HIDIOCSFEATURE(len) _IOC(IOC_IN, 'U', 35, len) #define HIDIOCGFEATURE(len) _IOC(IOC_INOUT, 'U', 36, len) #define HIDIOCGRAWUNIQ(len) _IOC(IOC_OUT, 'U', 37, len) +#define HIDIOCSINPUT(len) _IOC(IOC_IN, 'U', 38, len) +#define HIDIOCGINPUT(len) _IOC(IOC_INOUT, 'U', 39, len) +#define HIDIOCSOUTPUT(len) _IOC(IOC_IN, 'U', 40, len) +#define HIDIOCGOUTPUT(len) _IOC(IOC_INOUT, 'U', 41, len) #endif /* _HID_HIDRAW_H */ diff --git a/sys/dev/usb/usb_ioctl.h b/sys/dev/usb/usb_ioctl.h index 6d9184723816..85979b9cf778 100644 --- a/sys/dev/usb/usb_ioctl.h +++ b/sys/dev/usb/usb_ioctl.h @@ -239,7 +239,7 @@ struct usb_gen_quirk { #define USB_DEVICESTATS _IOR ('U', 5, struct usb_device_stats) #define USB_DEVICEENUMERATE _IOW ('U', 6, int) -/* Generic HID device. Numbers 26 and 30-39 are occupied by hidraw. */ +/* Generic HID device. Numbers 26 and 30-49 are occupied by hidraw. */ #define USB_GET_REPORT_DESC _IOWR('U', 21, struct usb_gen_descriptor) #define USB_SET_IMMED _IOW ('U', 22, int) #define USB_GET_REPORT _IOWR('U', 23, struct usb_gen_descriptor) From nobody Wed Apr 30 07:49:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnTpm1d9vz5v2ff; Wed, 30 Apr 2025 07:49: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnTpl3M2Cz3GNt; Wed, 30 Apr 2025 07:49:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BdoN1o1qZz4i85PeNYPzJCI5FFLaVsc4v3yzNNtZVcw=; b=l0znJyroezY+TTlowZ5sDS+q66cBvbNddTppBlS981VEqAEL4ZUaYX95+rjvFI9VrZ+s0l U/9S+KdT9NoDBBxDV1X9PkFL+8uuQI5IqRaFefLSHVsQB4NTbC6orBHyiFuCN/Rh6dEQU8 AiU9yI0oJjNe36ExRg+IDo+jZRK8iDrbhSscVUZnHB48B3+/g3k/jpoprTEPzZC+kiStTi ZyHTdFTRyD+t47IQ0x7Ys0BuMuXqFsK5Doy5JvaPakYoNL2Dq967IOf+zEXMy/cd4M22c4 b/l443r6qHyfkhqoqFmzfonCMgU6SQA8WL/iaDsavHNwpFWVWrjbKnaCWIa0YA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999359; a=rsa-sha256; cv=none; b=L0CqfOv81HQ0SDu4LAeaYPg2+Tk66C56EIM/A5UWY4tDXU2hG1EQZgvHyXblF4GWcyzzQ2 /Fd+hlcDmzwtXoImd1xjTvVtnJ2i1z7YepA2BYxjrRKPakXdfWcvaj1sEhoKjLpWhsm/XU 9rNhyrjyrybih7gVHwHk0N1/C6NPhvHVdGHFo9DaX48AIOxqqgLHuuXQlAJkwiM5VtFGBP h+0KRaxXMtLaU8CVRhJskQxVVZ3FgnOTDhG3mSHDXbp/pqTvd4lS3P1MReZVpN4XApPDE6 pE0BpDI8Oz3P6jPxoeoVKdisQYjNZ62nGuUzjY33C3jZ5lBOh1y9rqYMSanrTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BdoN1o1qZz4i85PeNYPzJCI5FFLaVsc4v3yzNNtZVcw=; b=UoiZABWruW5tg4bzTkNO3jZdYsK4sdMLI1HU5c8QmJgXSfAdc0scQ27C4kKWhxeuVLcsXQ AgVtiAvRqqB+noDeatKbLwf0Mh7GN4WjQ/bqkT9xOWb0vt8z5lt9Z8x5qSrVfpHxiRIeEU /Kd2uOusTo7rrIFwaF3k0RJoeBu6QrxwrhqaOhfq5S0uIxYrQ6ehKMYj+TFtSYCZKVWaWT kRrlEeEnX1084rFwfG5Zi/4xmdKCybRo6VxXNBtmyQSs+Qt1eVWQEflv5UHRJWfo6CJUEB RASsDjNfkfeeubZ3bzRuePjQOvswOZqb2N/BMTZrWxY497/j4bW2dfTt7iYxAg== 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 4ZnTpl2y9fzx7v; Wed, 30 Apr 2025 07:49:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7nJDv011334; Wed, 30 Apr 2025 07:49:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7nJ2J011331; Wed, 30 Apr 2025 07:49:19 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:49:19 GMT Message-Id: <202504300749.53U7nJ2J011331@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 2c23fc90e566 - stable/14 - hidraw(4): Force switch to hidraw mode on HIDIOCGRDESC ioctl List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2c23fc90e5669eba373c89865dc2209227dca3be Auto-Submitted: auto-generated The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=2c23fc90e5669eba373c89865dc2209227dca3be commit 2c23fc90e5669eba373c89865dc2209227dca3be Author: Vladimir Kondratyev AuthorDate: 2025-04-27 09:07:35 +0000 Commit: Vladimir Kondratyev CommitDate: 2025-04-30 07:32:23 +0000 hidraw(4): Force switch to hidraw mode on HIDIOCGRDESC ioctl To match documentation. Reported by: Ihor Dutchak PR: 286155 MFC after: 3 days (cherry picked from commit fe4bdd889b5d722faa3a66e2c7d9a248e527cdb2) --- sys/dev/hid/hidraw.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/dev/hid/hidraw.c b/sys/dev/hid/hidraw.c index c9d29b836d43..9b6f83d34d08 100644 --- a/sys/dev/hid/hidraw.c +++ b/sys/dev/hid/hidraw.c @@ -829,6 +829,9 @@ hidraw_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flag, */ if (size >= HID_MAX_DESCRIPTOR_SIZE) return (EINVAL); + mtx_lock(&sc->sc_mtx); + sc->sc_state.uhid = false; + mtx_unlock(&sc->sc_mtx); buf = HIDRAW_LOCAL_ALLOC(local_buf, size); error = hid_get_rdesc(sc->sc_dev, buf, size); if (error == 0) { From nobody Wed Apr 30 07:58:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnV1Q5BnPz5v3gN; Wed, 30 Apr 2025 07:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnV1Q3mm8z3Kjp; Wed, 30 Apr 2025 07:58:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y9LSJwIjjvTOdAuUOrjQ8qEP5hbrQt67UsZfSe82r68=; b=gIhBqkaD+96XfgPOL/eZ57TqLLoLwuru5HrIyUdIR9X8c1Ur7zWNBrZDXg9Ize0GVe2mhG wsmYmX7BKD+B113GUcyAeoAV2u6xhX5HJc/gSyEqJjXIBEZ10cdy3jpZ/jkxULu16Ub3qI 3CRRmEVq2gKkVAuLcZHrnmSB0Rmf2VSUnA6vlrYFRRGTcez8/JMb66/LCmNGc/mjkcMSp4 ydDm4kTUp8D4uIYQ81ptdxWs7Yf5eo3apTP4TSiJaXkpu9EZOljlOy/P9/XuEvnn4eR1J4 0bE2lTb9FSVDQg7UdEHG9kxa3yLWCnlJsbtsbenlIq25PR6KivbdIoAY7UJJug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745999914; a=rsa-sha256; cv=none; b=Tj7F1CNnqy6QZutsoUj3CcMLaYwrUR1sBCDYKwLDcJJA7JoAJno2I4BGv++ArBG7Yc+aXp Q9LLmLgm+eKB1cT1uyxblzcBg58L7FTWJ2HujHP5QKswHr+WkDPa/iXy76/UuODjWv0yUd rHQlIH/zbynWUsViUOiVcdg4e6MCmocPrpyqoSreH1LpsNl0qn+r5w6C5smMfp2x429lNc l3hZYKMSruvKqYw3uONddtpCntVn+2OeXa4q12vzPIknUFYII5/rPWl8Bfc0czzgeyAVMf suJxRTDBwDllLOtWXMlB/ny/3L+JpToRSVU1CqfWxp/BAPE/Ul52ozs+ItmNng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745999914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y9LSJwIjjvTOdAuUOrjQ8qEP5hbrQt67UsZfSe82r68=; b=ZslN4BrlDHkSyTWKufqCDx8Bm7TGFDYa1IZmnO8fZ7APUnrBHTwnNFxWhpmUK13Pp6ULhA pFAwYUFU/MLw80Rw+CV9a3Ixmd5OrTJ32NjUIHJbndq06l4NsBZMPieaSCReeCDp/HIzql hxvazJTD07nvlqDlrOd+R2Mebk4o32Uxbx6lDcLWWQnpndnT3VWMTujjMY19M0OtIPQi4e tmx1YlSbfzJoLTU+qNObMHszaWuO3icoxWG+rlNchWvMerxkF3UXFN/uuPYAiXOZ7ialEc RT8CMFhIU0TWaXQbzpPORQkn0Jms/rmaM49Z02fp9IDrbu4w5tPge18YnHcd3A== 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 4ZnV1Q303CzxgT; Wed, 30 Apr 2025 07:58:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U7wYeT029944; Wed, 30 Apr 2025 07:58:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U7wY6k029941; Wed, 30 Apr 2025 07:58:34 GMT (envelope-from git) Date: Wed, 30 Apr 2025 07:58:34 GMT Message-Id: <202504300758.53U7wY6k029941@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dave Cottlehuber Subject: git: f5418217dbc6 - stable/14 - release: use "runtime" instead of "minimal" for OCI image name List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dch X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f5418217dbc6c3f9317479183b06fff6be147ab3 Auto-Submitted: auto-generated The branch stable/14 has been updated by dch: URL: https://cgit.FreeBSD.org/src/commit/?id=f5418217dbc6c3f9317479183b06fff6be147ab3 commit f5418217dbc6c3f9317479183b06fff6be147ab3 Author: Dave Cottlehuber AuthorDate: 2025-04-27 23:46:47 +0000 Commit: Dave Cottlehuber CommitDate: 2025-04-30 07:55:41 +0000 release: use "runtime" instead of "minimal" for OCI image name The runtime name is taken from the main pkg-base package that this image is built off. Sponsored by: SkunkWerks, GmbH MFC after: 3 days Reviewed by: dfr, emaste Differential Revision: https://reviews.freebsd.org/D50043 (cherry picked from commit a0165254bfeb5e310f92d4e0c88fcb5c6ea802bf) --- release/Makefile.oci | 4 ++-- .../tools/{oci-image-minimal.conf => oci-image-runtime.conf} | 0 share/examples/oci/Containerfile.pkg | 12 ++++++------ share/examples/oci/README | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/release/Makefile.oci b/release/Makefile.oci index e4b5df580055..2290f2acbcff 100644 --- a/release/Makefile.oci +++ b/release/Makefile.oci @@ -5,7 +5,7 @@ # .if defined(WITH_OCIIMAGES) && !empty(WITH_OCIIMAGES) -OCI_IMAGES= static dynamic minimal +OCI_IMAGES= static dynamic runtime .endif oci-install: @@ -19,7 +19,7 @@ oci-install: OCI_TARGETS= OCI_DEPS_static= OCI_DEPS_dynamic= container-image-static.txz -OCI_DEPS_minimal= container-image-dynamic.txz +OCI_DEPS_runtime= container-image-dynamic.txz .for _IMG in ${OCI_IMAGES} OCI_TARGETS+= container-image-${_IMG}.txz diff --git a/release/tools/oci-image-minimal.conf b/release/tools/oci-image-runtime.conf similarity index 100% rename from release/tools/oci-image-minimal.conf rename to release/tools/oci-image-runtime.conf diff --git a/share/examples/oci/Containerfile.pkg b/share/examples/oci/Containerfile.pkg index ed8ac7caf4b6..074c470affc9 100644 --- a/share/examples/oci/Containerfile.pkg +++ b/share/examples/oci/Containerfile.pkg @@ -1,18 +1,18 @@ -# This is an example showing how to extend the freebsd-minimal OCI image by +# This is an example showing how to extend the freebsd-runtime OCI image by # installing additional packages while keeping the resulting image as small as # possible. -# The OS version matching the desired freebsd-minimal image -ARG version=15.0-CURRENT-amd64 +# The OS version matching the desired freebsd-runtime image +ARG version=14.snap -# Select freebsd-minimal as our starting point. -FROM localhost/freebsd-minimal:${version} +# Select freebsd-runtime as our starting point. +FROM localhost/freebsd-runtime:${version} # A list of package(s) to install ARG packages # Install package management tools. We specify 'FreeBSD' as the repository to -# use for downloading pkg since the freebsd-minimal image has both FreeBSD and +# use for downloading pkg since the freebsd-runtime image has both FreeBSD and # FreeBSD-base pkg repo configs installed and FreeBSD-base does not contain the # pkg package. RUN env ASSUME_ALWAYS_YES=yes pkg bootstrap -r FreeBSD && pkg update diff --git a/share/examples/oci/README b/share/examples/oci/README index 212687251754..890641cee300 100644 --- a/share/examples/oci/README +++ b/share/examples/oci/README @@ -1,4 +1,4 @@ -This example Containerfile shows how to add packages to freebsd-minimal while +This example Containerfile shows how to add packages to freebsd-runtime while minimising the package metadata overhead. For instance, To build a new image called 'my-new-image:latest' containing the From nobody Wed Apr 30 08:03:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnV7X51GDz5v43m; Wed, 30 Apr 2025 08:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnV7X3dhrz3LjB; Wed, 30 Apr 2025 08:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=usS0jnN0YYQtXcMi5Z2qFKPdzziU+dbp/LzEY0s+H1U=; b=j0Ora7I2hZaFGpPy9ieY2d5CTL4QUTtsa9G5yDgXyrWoHO7BKYxvOi6hOayBzQf4eVnzPh DSHEZZRQhuJdD2y3kPaMY4/qQ2q+QxkWmQUOdBHpOd8zcXQByyA9GyuHNJzKdWrGbZblHN zURvu4TpgrckXHfXBHUuOHGVa5r9BSAovH8pq0v0aVKC/YrQ+vnk1tTvp+LAdxJ/Zdz5cK 2a3aqveTHSKRga2mq5NQOmg3PKtuSHpsMarwlPXDkT4YMpgLMxjZq+aC3bFddx2fFBIADP yWpRQRnAQd7UlD2IY6XIgTs9SKp9Tw58fY4teog5Icp44en6mLfLJQk5neR1mg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746000232; a=rsa-sha256; cv=none; b=IRevdWg+hgB30Tc74Nb1eKAhTh2lFldAr+ntMIYOge47dvPHN1ItZsmaiLWHBtF6xbfVwS jL5rpcPB2XNOgIgUOWU4vPEw5/+a1wlcjQkCNNpDYl/4BX+SHYlpn07v+enKw0hj6VJxLi n9ET4WvEsRja2XEu1AA66Gf9d0dcmnPG2SlaOuu7egD0DEUhaRYrJKr3P4Dty/WNPpjNsP 0QyJYX9BP1BnUD5Fy2wxzKr+8lcTdHUy3LuRlq1bUaUidFulHpAvfQ59gCrqI5gaSz2zYq zhVp5TmUDCMULjwp8mRWEXWcRNwUbibl+PCC0litmcvkeLsxrxX3dbHjpxzffw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=usS0jnN0YYQtXcMi5Z2qFKPdzziU+dbp/LzEY0s+H1U=; b=T/Fs+N2CXkD8sBTb/icAPgAUkjhFtZmwfeiZLo8ieUJAy4ZKdF98JrtFHKsleT26sOuFg9 YTloGJAAWSFv11S8/vm0ypSFCAol0AqUn6/8qkpADXZt/4V9VkA+3TZrNlaQQEcMZqkLTJ qnnz8sA9OctvDKj2eMVdDIWwB7brNCFmG3r6Ufa6DLZZx4hPVya/y/o9KUxtc8Xi9CbAYh mrAFVY3/FDNPMOrNaMnIunqa2P1OW+ahlP4bRiZLML79bGSoQhbouNRXdW6a7+ZJ/b8vAi DfGDbtqjUHbmKARqYRtfN7jKmLYtezmlGOR5qMx4HiWQhOcDpVqPId6GN/lXJw== 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 4ZnV7X31NvzxW9; Wed, 30 Apr 2025 08:03:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U83q9h048297; Wed, 30 Apr 2025 08:03:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U83qaG048294; Wed, 30 Apr 2025 08:03:52 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:03:52 GMT Message-Id: <202504300803.53U83qaG048294@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: 86baac4a2eb2 - stable/14 - termcap: add entry for Alacritty List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 86baac4a2eb23f1a70d5361b4bb947c93289f604 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=86baac4a2eb23f1a70d5361b4bb947c93289f604 commit 86baac4a2eb23f1a70d5361b4bb947c93289f604 Author: Siva Mahadevan AuthorDate: 2025-04-04 13:50:29 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 08:03:27 +0000 termcap: add entry for Alacritty Out of the box on other platforms, alacritty reports `TERM=alacritty`. This requires an updated terminfo/termcap database that contains an entry for `alacritty`. Prior to this change, when you ssh into a FreeBSD machine using a default configuration of alacritty on a client system, it reports this in `motd(5)`: ``` No entry for terminal type "alacritty"; using dumb terminal settings. ``` This change adds a termcap entry for alacritty, converted from the upstream-provided `alacritty.info` using `tic -C`. Signed-off-by: Siva Mahadevan MFC After: 3 days (cherry picked from commit 7a4c662f407f074287f42cf0652dff74a294bf0e) --- share/termcap/termcap | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/share/termcap/termcap b/share/termcap/termcap index f5f1ca82e886..27e0ce018539 100644 --- a/share/termcap/termcap +++ b/share/termcap/termcap @@ -4772,6 +4772,44 @@ foot|foot terminal emulator:\ :bw:hs:\ :ds=\E]2;\E\\:fs=\E\\:kb=\177:ts=\E]2;:vb=\E]555\E\\:\ :tc=xterm-256color: + +alacritty|alacritty terminal emulator:\ + :cc:\ + :Co#256:pa#32767:\ + :AB=\E[48;5;%dm:AF=\E[38;5;%dm:\ + :..Ic=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\:\ + :Sb@:Sf@:oc=\E]104\007:r1=\Ec\E]104\007:\ + :tc=alacritty+common: + +alacritty-direct|alacritty with direct color indexing:\ + :Co#16777216:pa#32767:\ + :..AB=\E[%?%p1%{8}%<%t4%p1%d%e48\:2\:\:%p1%{65536}%/%d\:%p1%{256}%/%{255}%&%d\:%p1%{255}%&%d%;m:\ + :..AF=\E[%?%p1%{8}%<%t3%p1%d%e38\:2\:\:%p1%{65536}%/%d\:%p1%{256}%/%{255}%&%d\:%p1%{255}%&%d%;m:\ + :Ic@:Sb@:Sf@:op=\E[39;49m:tc=alacritty+common: + +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (acsc removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +alacritty+common|base fragment for alacritty:\ + :am:bs:hs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :K2=\EOE:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:\ + :UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[J:\ + :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=\r:\ + :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\n:\ + :ds=\E]2;\007:ec=\E[%dX:ei=\E[4l:fs=^G:ho=\E[H:im=\E[4h:\ + :is=\E[!p\E[?3;4l\E[4l\E>:k1=\EOP:k2=\EOQ:k3=\EOR:\ + :k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\ + :kd=\EOB:ke=\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[0m:mh=\E[2m:\ + :mm=\E[?1034h:mo=\E[?1034l:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\ + :se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\ + :te=\E[?1049l\E[23;0;0t:ti=\E[?1049h\E[22;0;0t:\ + :ts=\E]2;:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:\ + :ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: # # END OF TERMCAP # ------------------------ From nobody Wed Apr 30 08:03:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnV7Y5fVHz5v4LH; Wed, 30 Apr 2025 08:03: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnV7Y4Bcpz3M30; Wed, 30 Apr 2025 08:03:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000233; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6na6mWRxH1xbYWWkFjSJFzqOLwsQH6Yp9zxdiLTxJo8=; b=vOf3rTh1RoGL98lgfI5NhyTFG1Txd0qLYhjUXd9ORyoGJ8WSInvcc+w5qdPmCFjPz8pnsI ZmWOLb+2QppURJSFyUZDqzPhyc4ge5MWj9XMU8ZQXFXFC2BMZ6e80FVQ9+dUG9wLTSLSo6 kzDe7aw2QdAHAkxgNxyml+ri8W4SmFZYKqdQsge/cC/sbiMoNsRD+Jl641sORrT/vIPB02 RGn+OFHhHduvxVUBYJ8lVHjg1OKJol6IFGVAYy012qHZ73l9j7/jGB2Olb7D1WUhv3naSy 1zQDspllTjFP5cne5SNYm0wJ9WAe9Ip+bOoYu0vlEI7Y0ZOOQm4itSvWFYl7fw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746000233; a=rsa-sha256; cv=none; b=dROKYd6GTiBEhozWkb8UXwEmVDxipavofXqyw2wy0zJhtU+FTPYvBdknqB1xdZlVT/Pai6 R/jpKGhvkl/hJoQhJ9NLPsME1yfREmFteyU6i2kb+nxNIQlsAw3G9jXFXNSpxscgFhcLDH aOdvWEFK7MWWVynnI/BvgbBvYyS2jYhkAfSTUc/s7GoDfmm3zCeUEGHLIbCjIEn/yGCv6e ZusMO86kBHf6X+uwG6OGoxWOwsdjI9bnC+mR4gdHp+bwE+q3BECFFIpBub3GU2nSQpQBVt 96gsCifrq9MMTtUQnZzQH0TqkA+VKehBAR71Ha6kKw5Z45l662aoS5/86w78LQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000233; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6na6mWRxH1xbYWWkFjSJFzqOLwsQH6Yp9zxdiLTxJo8=; b=i8Hg0lucCBGnuCuMWIoAllwvYPq/BfFmkI1kMkYSBC6DGkKKosKtTAnf1yuZEdBNlOWeLt NP2hpjmR8QOEtfo17jkHPoNttkJV0D5QEMLqXSDosvWRTa/pEDfUE7MTboWKsAxZsIqyHj q8uhXa8QDUqQDItAQ1he78BUCck4pKANiZOY/nA9EyEzB0TNT3x2qjFZFh5El9VQxEdU7w BbosI5H1caDec0k7v4W8VB7uzB9QMDw9xhKNa70fXv92dj+nuIUMzLdccBmoJc5JSsS4Aw 2Dz5AzLDzMTSPiBA+P9OuLxbtp4vQA0HoB/3ktvj4WxKKt8of4P8Q1JuS69jAw== 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 4ZnV7Y3nlHzxrg; Wed, 30 Apr 2025 08:03:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U83roN048332; Wed, 30 Apr 2025 08:03:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U83rkF048329; Wed, 30 Apr 2025 08:03:53 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:03:53 GMT Message-Id: <202504300803.53U83rkF048329@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: 9225ca95c09c - stable/14 - pci_vendors: update to 2025-03-09 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9225ca95c09cb0e22575dbb436d92906aa2a3075 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=9225ca95c09cb0e22575dbb436d92906aa2a3075 commit 9225ca95c09cb0e22575dbb436d92906aa2a3075 Author: Baptiste Daroussin AuthorDate: 2025-04-16 20:34:59 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 08:03:27 +0000 pci_vendors: update to 2025-03-09 (cherry picked from commit 9b397d784bcfff49f467b879f0d425412d55b094) --- share/misc/pci_vendors | 646 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 554 insertions(+), 92 deletions(-) diff --git a/share/misc/pci_vendors b/share/misc/pci_vendors index 0eebacf92d41..6dfe12dfc8ad 100644 --- a/share/misc/pci_vendors +++ b/share/misc/pci_vendors @@ -1,8 +1,8 @@ # # List of PCI ID's # -# Version: 2024.11.25 -# Date: 2024-11-25 03:15:02 +# Version: 2025.03.09 +# Date: 2025-03-09 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at https://pci-ids.ucw.cz/. @@ -44,6 +44,7 @@ 7a0f DMA (Direct Memory Access) Controller # Found on some boards with two sockets 7a10 Hyper Transport Bridge Controller + 7a13 7A2000 PCH Gigabit Ethernet Controller 7a14 EHCI USB Controller 7a15 Vivante GPU (Graphics Processing Unit) 7a18 SATA 3 AHCI Controller @@ -52,6 +53,7 @@ 7a24 OHCI USB Controller # Found on 7A2000 PCH 7a25 LG100 GPU + 7a27 7A2000 PCH I2S Controller 7a29 PCI-to-PCI Bridge 7a34 xHCI USB Controller # Found on 7A2000 PCH @@ -149,6 +151,7 @@ 0101 GP101 0102 GP102 0201 GP201 + 0202 GP202 0721 Sapphire, Inc. 0731 Jingjia Microelectronics Co Ltd 7200 JM7200 Series GPU @@ -1111,8 +1114,13 @@ 1000 04db 3808N iMR ROMB 1000 04dc 3808N iMR ROMB 1000 04dd 3808N iMR ROMB +# String pulled from Broadcom storcli "Product Name" + 1000 40d5 MegaRAID 9540-8i +# String pulled from Broadcom storcli "Product Name" + 1000 40d6 MegaRAID 9520-8i 1000 40d8 MegaRAID 9524-8i 1000 40e0 MegaRAID 9540-2M2 + 1028 1a3d BOSS-MR1 1028 2172 PERC H355 Adapter 1028 2173 PERC H355 Front 1028 2174 PERC H350 Mini @@ -1213,6 +1221,7 @@ 9100 INI-9100/9100W SCSI Host # nee ATI Technologies, Inc. 1002 Advanced Micro Devices, Inc. [AMD/ATI] + 1114 Krackan [Radeon 840M / 860M Graphics] 1304 Kaveri 1305 Kaveri 1306 Kaveri @@ -1257,6 +1266,7 @@ 1551 Arlene 1552 Pooky 1561 Anubis + 1586 Strix Halo [Radeon Graphics / Radeon 8050S Graphics / Radeon 8060S Graphics] 15bf Phoenix1 15c8 Phoenix2 15d8 Picasso/Raven 2 [Radeon Vega Series / Radeon Vega Mobile Series] @@ -3981,7 +3991,7 @@ 1849 5120 Radeon RX 5600 XT 1da2 e409 Sapphire Technology Limited Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] 1da2 e410 Sapphire NITRO+ RX 5700 XT - 1da2 e411 Radeon RX 5600 XT + 1da2 e411 Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] 7340 Navi 14 [Radeon RX 5500/5500M / Pro 5500M] 7341 Navi 14 [Radeon Pro W5500] 7347 Navi 14 [Radeon Pro W5500M] @@ -4090,6 +4100,7 @@ 74a9 Aqua Vanjaram [Instinct MI300X HF] 74b5 Aqua Vanjaram [Instinct MI300X VF] 74bd Aqua Vanjaram [Instinct MI300X HF] + 7550 Navi 48 [RX 9070/9070 XT] 7833 RS350 Host Bridge 7834 RS350 [Radeon 9100 PRO/XT IGP] 7835 RS350M [Mobility Radeon 9000 IGP] @@ -4361,7 +4372,7 @@ 9840 Kabini HDMI/DP Audio 1043 8623 AM1I-A Motherboard 1849 9840 QC5000-ITX/PH - 9850 Mullins [Radeon R3 Graphics] + 9850 Mullins [Radeon R2/R3 Graphics] 9851 Mullins [Radeon R4/R5 Graphics] 1179 f928 Beema [Radeon R5 Graphics] 9852 Mullins [Radeon R2 Graphics] @@ -4937,6 +4948,8 @@ 1014 04fc PCIe3 x8 12Gb Quad SAS RAID+ Adapter(580A) 04ed Internal Shared Memory (ISM) virtual PCI device 0611 4769 Cryptographic Adapter + 06a7 Spyre Accelerator + 06a8 Spyre Accelerator Virtual Function 3022 QLA3022 Network Adapter 4022 QLA3022 Network Adapter ffff MPIC-2 interrupt controller @@ -5015,11 +5028,35 @@ 1101 K8 [Athlon64/Opteron] Address Map 1102 K8 [Athlon64/Opteron] DRAM Controller 1103 K8 [Athlon64/Opteron] Miscellaneous Control + 1110 Krackan Internal PCIe GPP Bridge 0 to Bus A + 1111 Krackan Internal PCIe GPP Bridge 0 to Bus B + 1112 Krackan Internal PCIe GPP Bridge 0 to Bus C + 1113 Krackan PCIe Dummy Function + 1116 Krackan PCIe Dummy Function + 1117 Krackan PCIe Dummy Function + 1122 Krackan Root Complex + 1123 Krackan IOMMU 1200 Family 10h Processor HyperTransport Configuration 1201 Family 10h Processor Address Map 1202 Family 10h Processor DRAM Controller 1203 Family 10h Processor Miscellaneous Control 1204 Family 10h Processor Link Control + 1248 Krackan Data Fabric; Function 0 + 1249 Krackan Data Fabric; Function 1 + 124a Krackan Data Fabric; Function 2 + 124b Krackan Data Fabric; Function 3 + 124c Krackan Data Fabric; Function 4 + 124d Krackan Data Fabric; Function 5 + 124e Krackan Data Fabric; Function 6 + 124f Krackan Data Fabric; Function 7 + 12b8 Strix Halo Data Fabric; Function 0 + 12b9 Strix Halo Data Fabric; Function 1 + 12ba Strix Halo Data Fabric; Function 2 + 12bb Strix Halo Data Fabric; Function 3 + 12bc Strix Halo Data Fabric; Function 4 + 12bd Strix Halo Data Fabric; Function 5 + 12be Strix Halo Data Fabric; Function 6 + 12bf Strix Halo Data Fabric; Function 7 12c0 Turin Data Fabric; Function 0 12c1 Turin Data Fabric; Function 1 12c2 Turin Data Fabric; Function 2 @@ -5244,13 +5281,13 @@ 14f6 Phoenix Data Fabric; Function 6 14f7 Phoenix Data Fabric; Function 7 1502 AMD IPU Device - 1507 Strix Root Complex - 1508 Strix IOMMU - 1509 Strix Dummy Host Bridge - 150a Strix PCIe USB4 Bridge - 150b Strix GPP Bridge - 150c Strix Internal GPP Bridge to Bus [C:A] - 150d Strix PCIe Dummy function + 1507 Strix/Strix Halo Root Complex + 1508 Strix/Strix Halo IOMMU + 1509 Strix/Strix Halo Dummy Host Bridge + 150a Strix/Strix Halo PCIe USB4 Bridge + 150b Strix/Strix Halo GPP Bridge + 150c Strix/Strix Halo Internal GPP Bridge to Bus [C:A] + 150d Strix/Strix Halo PCIe Dummy Function 1510 Family 14h Processor Root Complex 174b 1001 PURE Fusion Mini 1512 Family 14h Processor Root Port @@ -5275,6 +5312,7 @@ 153c Turin RCEC 153d Turin PCIe Dummy Host Bridge 153e Turin GPP Bridge + 01de fff8 Cosmo Baseboard 1540 Kryptos/Cato/Garfield/Garfield+/Arlene/Pooky HT Configuration 1541 Kryptos/Cato/Garfield/Garfield+/Arlene/Pooky Address Maps 1542 Kryptos/Cato/Garfield/Garfield+/Arlene/Pooky DRAM Configuration @@ -5295,6 +5333,7 @@ 1555 Turin Internal PCIe GPP Bridge to Bus [D:C] 1556 Turin PCIe Dummy Function 1557 Turin USB 3.1 xHCI + 1559 Turin Secondary PCIe Dummy Function 155b Anubis Root Complex 155c Anubis IOMMU 155d Anubis UMI PCIe Dummy Bridge @@ -5344,6 +5383,7 @@ 15b5 Stoney NB Performance Monitor 15b6 Raphael/Granite Ridge USB 3.1 xHCI 15b7 Raphael/Granite Ridge USB 3.1 xHCI + 15b8 Raphael/Granite Ridge USB 2.0 xHCI 15bc Stoney PCIe [GFX,GPP] Bridge [4:0] 15be Stoney Audio Processor 15c4 Phoenix USB4/Thunderbolt NHI controller #1 @@ -5542,8 +5582,8 @@ 1716 Family 12h/14h Processor Function 5 1718 Family 12h/14h Processor Function 6 1719 Family 12h/14h Processor Function 7 - 17e0 Strix CCP/ASP - 17f0 Strix Neural Processing Unit + 17e0 Strix/Krackan/Strix Halo CCP/ASP + 17f0 Strix/Krackan/Strix Halo Neural Processing Unit 2000 79C97x [PCnet32 LANCE] 1014 2000 NetFinity 10/100 Fast Ethernet 1022 2000 PCnet - Fast 79C971 @@ -5623,6 +5663,7 @@ 43f5 600 Series Chipset PCIe Switch Downstream Port 43f6 600 Series Chipset SATA Controller 43f7 600 Series Chipset USB 3.2 Controller + 43fd 800 Series Chipset USB 3.x XHCI Controller 57a3 Matisse PCIe GPP Bridge 57a4 Matisse PCIe GPP Bridge 57ad Matisse Switch Upstream @@ -7282,6 +7323,7 @@ 1055 Microchip Technology / SMSC 7430 LAN7430 7431 LAN7431 + 1059 01a0 RD10055 M.2 Dual 1GbE-T1 40m 9130 SLC90E66 [Victory66] IDE 9460 SLC90E66 [Victory66] ISA 9462 SLC90E66 [Victory66] USB @@ -13148,10 +13190,12 @@ 22bd AD106M High Definition Audio Controller 22be AD107 High Definition Audio Controller 2302 GH100 + 230e GH100 [H20 NVL16] 2313 GH100 [H100 CNX] 2321 GH100 [H100L 94GB] 2322 GH100 [H800 PCIe] 2324 GH100 [H800] + 2328 GH100 [H20B] 2329 GH100 [H20] 232c GH100 [H20 HBM3e] 2330 GH100 [H100 SXM5 80GB] @@ -13272,6 +13316,7 @@ 2684 AD102 [GeForce RTX 4090] 2685 AD102 [GeForce RTX 4090 D] 2689 AD102 [GeForce RTX 4070 Ti SUPER] + 26af AD102 [PG137] 26b1 AD102GL [RTX 6000 Ada Generation] 26b2 AD102GL [RTX 5000 Ada Generation] 26b3 AD102GL [RTX 5880 Ada Generation] @@ -13280,6 +13325,7 @@ 26b8 AD102GL [L40G] 26b9 AD102GL [L40S] 26ba AD102GL [L20] + 26bb AD102GL [L30] 26f5 AD102GL [L40 CNX] 2702 AD103 [GeForce RTX 4080 SUPER] 2703 AD103 [GeForce RTX 4080 SUPER] @@ -13318,6 +13364,7 @@ 2882 AD107 [GeForce RTX 4060] 28a0 AD107M [GeForce RTX 4060 Max-Q / Mobile] 28a1 AD107M [GeForce RTX 4050 Max-Q / Mobile] + 28a3 AD107M [GeForce RTX 3050 A Laptop GPU] 28b0 AD107GL [RTX 2000 / 2000E Ada Generation] 28b8 AD107GLM [RTX 2000 Ada Generation Laptop GPU] 28b9 AD107GLM [RTX 1000 Ada Generation Laptop GPU] @@ -13325,12 +13372,20 @@ 28bb AD107GLM [RTX 500 Ada Generation Laptop GPU] 28e0 AD107M [GeForce RTX 4060 Max-Q / Mobile] 28e1 AD107M [GeForce RTX 4050 Max-Q / Mobile] + 28e3 AD107M [GeForce RTX 3050 A Laptop GPU] 28f8 AD107GLM [RTX 2000 Ada Generation Embedded GPU] 2900 GB100 [Reserved Dev ID A] + 2901 GB100 [B200] + 2920 GB100 [TS4] 2940 GB100 [Reserved Dev ID B] - 2941 GB100 [GB200 SKU] - 2980 GB102 - 29c0 GB102 + 2941 GB100 [HGX GB200] + 2980 GB102 [Reserved Dev ID A] + 29bc GB102 [B100] + 29c0 GB102 [Reserved Dev ID B] + 2b85 GB202 [GeForce RTX 5090] + 2b87 GB202 [GeForce RTX 5090 D] + 2c02 GB203 [GeForce RTX 5080] + 2c05 GB203 [GeForce RTX 5070 Ti] 2c18 GB203M / GN22 [GeForce RTX 5090 Max-Q / Mobile] 2c19 GB203M / GN22 [GeForce RTX 5080 Max-Q / Mobile] 2c2c GB6-256(N22W-ES-A1) @@ -13338,12 +13393,16 @@ 2c59 GB203M / GN22-X9 [GeForce RTX 5080 Max-Q / Mobile] 2d18 AD108M [GeForce RTX 5070 Max-Q / Mobile] 2d19 AD108M [GeForce RTX 5060 Max-Q / Mobile] + 2d2c GB6-128 (N22Y-ES-A1) 2d58 AD108M [GeForce RTX 5070 Max-Q / Mobile] 2d59 AD108M [GeForce RTX 5060 Max-Q / Mobile] 2d98 AD108M [GeForce RTX 5050 Max-Q / Mobile] 2dd8 AD108M [GeForce RTX 5050 Max-Q / Mobile] + 2f04 GN22 [GeForce RTX 5070] 2f18 AD108M [GeForce RTX 5070 Ti Max-Q / Mobile] 2f58 AD108M [GeForce RTX 5070 Ti Max-Q / Mobile] + 31c0 GB110 + 3340 GB120 10df Emulex Corporation 0720 OneConnect NIC (Skyhawk) 103c 1934 FlexFabric 20Gb 2-port 650M Adapter @@ -13445,6 +13504,7 @@ f500 LPe37000/LPe38000 Series 32Gb/64Gb Fibre Channel Adapter 1014 06c1 PCIe4 4-Port 32Gb Fibre Channel Adapter for POWER (FC EN1L/EN1M; CCIN 2CFC) 1014 06c2 PCIe4 2-Port 64Gb Fibre Channel Adapter for POWER (FC EN1N/EN1P; CCIN 2CFD) + 1590 0454 Synergy 5331C 32Gb Fibre Channel Host Bus Adapter f600 LPe37100S/LPe38100S Series 32Gb/64Gb Fibre Channel Adapter f700 LP7000 Fibre Channel Host Adapter f701 LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2) @@ -13608,6 +13668,7 @@ 1af4 1100 QEMU Virtual Machine 8125 RTL8125 2.5GbE Controller 4c52 2022 LRES2022PT Single-port 2.5Gb Ethernet Network Adapter + 8126 RTL8126 5GbE Controller 8129 RTL-8129 10ec 8129 RT8129 Fast Ethernet Adapter 11ec 8129 RTL8111/8168 PCIe Gigabit Ethernet (misconfigured) @@ -15946,15 +16007,22 @@ 117c 00a2 Celerity FC-321E 117c 00a3 Celerity FC-322E 117c 00ac Celerity FC-324E + 117c 40a6 ThunderLink TLFC-3162 + 117c 40a7 ThunderLink TLFC-3322 + 00a5 ExpressSAS 24Gb/s SAS/SATA HBA + 117c 00d0 ExpressSAS H24F0 + 117c 00d1 ExpressSAS H240F + 117c 00d2 ExpressSAS H240N 00bb Celerity FC 32/64Gb/s Gen 7 Fibre Channel HBA 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 + 117c 00d4 Celerity FC-644E 00c5 ExpressNVM PCIe Gen4 Switch 117c 00c6 ExpressNVM S48F PCIe Gen4 - 117c 00c7 ExpressNVM S468 PCIe Gen4 + 117c 00cb ExpressNVM S4FF PCIe Gen4 00e6 ExpressSAS GT 12Gb/s SAS/SATA HBA 117c 00c0 ExpressSAS H1280 GT 117c 00c1 ExpressSAS H1208 GT @@ -15968,9 +16036,11 @@ 117c 0070 ExpressSAS H1280 117c 0071 ExpressSAS H1208 117c 0080 ExpressSAS H1244 + 117c 40ae ThunderLink TLSH-3128 8072 ExpressSAS 12Gb/s SAS/SATA HBA 117c 0072 ExpressSAS H12F0 117c 0073 ExpressSAS H120F + 117c 0081 ExpressSAS H1248 117c 0082 ExpressSAS H1288 117d Becton & Dickinson 117e T/R Systems @@ -16821,7 +16891,20 @@ 11f6 2011 ReadyLink 100TX 9881 RL100TX Fast Ethernet 11f7 Scientific Atlanta -11f8 PMC-Sierra Inc. +# née PMC-Sierra Inc. +11f8 Microchip Technology + 5000 PM50100 Switchtec PFX 100xG5 Fanout PCIe Switch + 5028 PM50028 Switchtec PFX 28xG5 Fanout PCIe Switch + 5036 PM50036 Switchtec PFX 36xG5 Fanout PCIe Switch + 5052 PM50052 Switchtec PFX 52xG5 Fanout PCIe Switch + 5068 PM50068 Switchtec PFX 68xG5 Fanout PCIe Switch + 5084 PM50084 Switchtec PFX 84xG5 Fanout PCIe Switch + 5100 PM51100 Switchtec PSX 100xG5 Programmable PCIe Switch + 5128 PM51028 Switchtec PSX 28xG5 Programmable PCIe Switch + 5136 PM51036 Switchtec PSX 36xG5 Programmable PCIe Switch + 5152 PM51052 Switchtec PSX 52xG5 Programmable PCIe Switch + 5168 PM51068 Switchtec PSX 68xG5 Programmable PCIe Switch + 5184 PM51084 Switchtec PSX 84xG5 Programmable PCIe Switch 5220 BR522x [PMC-Sierra maxRAID SAS Controller] 7364 PM7364 [FREEDM - 32 Frame Engine & Datalink Mgr] 7375 PM7375 [LASAR-155 ATM SAR] @@ -18251,6 +18334,40 @@ 51b9 6500 ION NVMe SSD 1028 22e6 Ent NVMe 6500 RI 30.72TB 1028 22f6 Ent NVMe 6500 RI FIPS 30.72TB + 51bb 9550 PRO NVMe SSD + 1028 2318 MTFDLBQ30T7THA-1BK1JABDA + 1028 2319 MTFDLBQ15T3THA-1BK1JABDA + 1028 231a MTFDLBQ7T6THA-1BK1JABDA + 1028 231b MTFDLBQ3T8THA-1BK1JABDA + 1028 2320 MTFDLAL30T7THA-1BK1JABDA + 1028 2321 MTFDLAL15T3THA-1BK1JABDA + 1028 2322 MTFDLAL7T6THA-1BK1JABDA + 1028 2323 MTFDLAL3T8THA-1BK1JABDA + 1028 2328 MTFDLAL30T7THA-1BK1DFCDA + 1028 2329 MTFDLAL15T3THA-1BK1DFCDA + 1028 232a MTFDLAL7T6THA-1BK1DFCDA + 1028 232b MTFDLAL3T8THA-1BK1DFCDA + 1028 235c MTFDLBQ30T7THA-1BK1DFCDA + 1028 235d MTFDLBQ15T3THA-1BK1DFCDA + 1028 235e MTFDLBQ7T6THA-1BK1DFCDA + 1028 235f MTFDLBQ3T8THA-1BK1DFCDA + 51bd 9550 MAX NVMe SSD + 1028 231c MTFDLBQ25T6THB-1BK1JABDA + 1028 231d MTFDLBQ12T8THB-1BK1JABDA + 1028 231e MTFDLBQ6T4THB-1BK1JABDA + 1028 231f MTFDLBQ3T2THB-1BK1JABDA + 1028 2324 MTFDLAL25T6THB-1BK1JABDA + 1028 2325 MTFDLAL12T8THB-1BK1JABDA + 1028 2326 MTFDLAL6T4THB-1BK1JABDA + 1028 2327 MTFDLAL3T2THB-1BK1JABDA + 1028 232c MTFDLAL25T6THB-1BK1DFCDA + 1028 232d MTFDLAL12T8THB-1BK1DFCDA + 1028 232e MTFDLAL6T4THB-1BK1DFCDA + 1028 232f MTFDLAL3T2THB-1BK1DFCDA + 1028 2360 MTFDLBQ25T6THB-1BK1DFCDA + 1028 2361 MTFDLBQ12T8THB-1BK1DFCDA + 1028 2362 MTFDLBQ6T4THB-1BK1DFCDA + 1028 2363 MTFDLBQ3T2THB-1BK1DFCDA 51c0 7400 PRO NVMe SSD 1028 2162 EC NVMe OPAL 7400 RI M.2 480GB 1028 2163 EC NVMe OPAL 7400 RI M.2 960GB @@ -18321,6 +18438,11 @@ 1028 2293 DC NVMe SED 7450 MU U.2 12.8TB 1028 2294 DC NVMe ISE 7450 MU U.2 12.8TB 1344 3000 U.3 1600GB [MTFDKCB1T6TFS/MTFDKCC1T6TFS] + 51cb 6550 ION NVMe SSD + 1028 2379 MTFDLBQ61T4THL-1BK1JABDA + 1028 23a6 MTFDLBQ30T7THL-1BK1JABDA + 1028 23a7 MTFDLAL61T4THL-1BK1JABDA + 1028 23a8 MTFDLAL30T7THL-1BK1JABDA 5404 2210 NVMe SSD [Cobain] 5405 2300 NVMe SSD [Santana] 5407 3400 NVMe SSD [Hendrix] @@ -18330,6 +18452,9 @@ 5414 3460 NVMe SSD 5415 3500 NVMe SSD 5416 2550 NVMe SSD (DRAM-less) + 5425 2500 NVMe SSD (DRAM-less) + 5427 2650 NVMe SSD (DRAM-less) + 5429 2600 NVMe SSD (DRAM-less) 6001 2100AI NVMe SSD [Nitro] 1345 Arescom Inc 1347 Odetics @@ -18509,9 +18634,9 @@ 0206 GPS180PEX GPS Receiver (PCI Express) 0207 GLN180PEX GPS/GLONASS receiver (PCI Express) 0208 GPS180AMC GPS Receiver (PCI Express / MicroTCA / AdvancedMC) - 0209 GNS181PEX GPS/Galileo/GLONASS/BEIDOU receiver (PCI Express) + 0209 GNS181PEX GNSS receiver (PCI Express) 020a GPS183PEX GPS Receiver (PCI Express) - 020b GNS183PEX GPS/Galileo/GLONASS/BEIDOU receiver (PCI Express) + 020b GNS183PEX GNSS receiver (PCI Express) 0301 TCR510PCI IRIG Timecode Reader 0302 TCR167PCI IRIG Timecode Reader 0303 TCR511PCI IRIG Timecode Reader @@ -19952,6 +20077,7 @@ 6089 T62100-6089 Unified Wire Ethernet Controller 608a T62100-608a Unified Wire Ethernet Controller 6092 T62100-KR Unified Wire Ethernet Controller + 01de fff8 Cosmo Baseboard 01de fff9 Gimlet Baseboard 6401 T6225-CR Unified Wire Ethernet Controller 6402 T6225-SO-CR Unified Wire Ethernet Controller @@ -19978,6 +20104,7 @@ 6489 T62100-6089 Unified Wire Ethernet Controller 648a T62100-608a Unified Wire Ethernet Controller 6492 T62100-KR Unified Wire Ethernet Controller + 01de fff8 Cosmo Baseboard 01de fff9 Gimlet Baseboard 6501 T6225-CR Unified Wire Storage Controller 6502 T6225-SO-CR Unified Wire Storage Controller @@ -20165,6 +20292,8 @@ a80b NVMe SSD Controller PM9B1 (DRAM-less) a80c NVMe SSD Controller S4LV008[Pascal] a80d NVMe SSD Controller PM9C1a (DRAM-less) + a80e NVMe SSD Controller PM9D3a + a80f BM9C1 QLC NVME SSD (DRAM-less) a820 NVMe SSD Controller 171X 1028 1f95 Express Flash NVMe XS1715 SSD 400GB 1028 1f96 Express Flash NVMe XS1715 SSD 800GB @@ -20450,6 +20579,7 @@ 14a3 Maverick Networks 14a4 Lite-On Technology Corporation 2100 CA1-8D128 NVMe SSD + 21f1 Plextor NVMe SSD 2200 CX2-8B256, CX2-8B512 NVMe SSD 22a0 EP2-KB960 NVMe SSD 22f1 M8Pe Series NVMe SSD @@ -20457,6 +20587,7 @@ 23f1 M9PeG, M9PeGN, M9PeY NVMe SSD 2f00 CAZ-82512 NVMe SSD 3500 CA5-8D512 NVMe SSD + 35f1 PLEXTOR PX-256M9PGN+ NVMe SSD # Wrong vendor ID used 4318 Broadcom BCM4318 [AirForce One 54g] 802.11g WLAN Controller 5100 CB1-SD256, CB1-SD512 NVMe SSD @@ -20541,7 +20672,7 @@ 7922 MT7922 802.11ax PCI Express Wireless Network Adapter 1a3b 5300 ASUS PCE-AXE59BT 7961 MT7921 802.11ax PCI Express Wireless Network Adapter - 7988 MT7988 PCIe Host Bridge [Filogic 880] + 7988 MT7988 PCI Express Host Bridge [Filogic 880] 7990 MT7996 802.11be PCI Express Wireless Network Adapter (Port 0) 7991 MT7996 802.11be PCI Express Wireless Network Adapter (Port 1) 8650 MT7650 Bluetooth @@ -21069,6 +21200,7 @@ 16d4 BCM57402 NetXtreme-E Ethernet Partition 16d5 BCM57407 NetXtreme-E 10GBase-T Ethernet Controller 16d6 BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller + 1059 01b0 RD10057 10GbE interface 117c 00cd FastFrame N4S2 Dual-port 10Gb Ethernet Adapter 14e4 1202 BCM957412M4122C OCP 1x25G Type1 wRoCE 14e4 4120 NetXtreme E-Series Advanced Dual-port 10Gb SFP+ Ethernet Network Daughter Card @@ -21152,6 +21284,7 @@ 17aa 3a23 IdeaPad S10e 1750 BCM57508 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet 117c 00cf FastFrame N412 Dual-port 100Gb Ethernet Adapter + 117c 40d6 ThunderLink TLNS-5102 Dual-port 100Gb Ethernet Adapter 14e4 2100 NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter (BCM957508-P2100G) 14e4 5208 NetXtreme-E Dual-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957508-N2100G) 14e4 520a NetXtreme-E Dual-port 100G DSFP Ethernet OCP 3.0 Adapter (BCM957508-N2100GD) @@ -21161,6 +21294,7 @@ 1751 BCM57504 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb Ethernet 1028 09d4 PowerEdge XR11/XR12 LOM 1028 0b1b PowerEdge XR5610 LOM + 117c 00da FastFrame N424 Quad-port 25Gb Ethernet Adapter 14e4 4250 NetXtreme-E Quad-port 25G SFP28 Ethernet PCIe4.0 x16 Adapter (BCM957504-P425G) 14e4 5045 NetXtreme-E BCM57504 4x25G OCP3.0 14e4 5100 NetXtreme-E Single-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957504-N1100G) @@ -21184,19 +21318,24 @@ 14e4 9325 BCM57608 2x200G OCP Ethernet NIC 14e4 9326 BCM57608 2x100G OCP Ethernet NIC 14e4 9340 BCM57608 4x100G OCP Ethernet NIC + 14e4 9345 BCM57608 4x25G OCP Ethernet NIC 14e4 d125 BCM57608 2x200G PCIe Ethernet NIC 1800 BCM57502 NetXtreme-E Ethernet Partition 1801 BCM57504 NetXtreme-E Ethernet Partition + 1590 0420 Ethernet NPAR 6310C Adapter 1802 BCM57508 NetXtreme-E Ethernet Partition 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Partition 1803 BCM57502 NetXtreme-E RDMA Partition 1804 BCM57504 NetXtreme-E RDMA Partition + 1590 0420 Ethernet NPAR RoCE 6310C Adapter 1805 BCM57508 NetXtreme-E RDMA Partition 14e4 df24 NetXtreme-E NGM2100D BCM57508 2x100G KR Mezz RDMA Partition 1806 BCM5750X NetXtreme-E Ethernet Virtual Function 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Virtual Function + 1590 0420 Ethernet SRIOV 6310C Adapter 1807 BCM5750X NetXtreme-E RDMA Virtual Function 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Virtual Function + 1590 0420 Ethernet SRIOV RoCE 6310C Adapter 1808 BCM5750X NetXtreme-E Ethernet Virtual Function 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Virtual Function 1809 BCM5750X NetXtreme-E RDMA Virtual Function @@ -21439,9 +21578,11 @@ 4717 BCM47xx Sentry5 USB Device Controller 4718 Sentry5 Crypto Accelerator 4719 BCM47xx/53xx RoboSwitch Core + 471a BCM47xx EHCI Host Controller 4720 BCM4712 MIPS CPU 4727 BCM4313 802.11bgn Wireless Network Adapter 1028 0010 Inspiron M5010 / XPS 8300 + 472a BCM47xx xHCI Host Controller 5365 BCM5365P Sentry5 Host Bridge 5600 BCM5600 StrataSwitch 24+2 Ethernet Switch Controller 5605 BCM5605 StrataSwitch 24+2 Ethernet Switch Controller @@ -21471,6 +21612,7 @@ 5f71 BRCM4387 Bluetooth Controller # Bluetooth PCI function of the BRCM4377 Wireless Network Adapter 5fa0 BRCM4377 Bluetooth Controller + 8411 BCM47xx PCIe Bridge 8602 BCM7400/BCM7405 Serial ATA Controller 9026 CN99xx [ThunderX2] Integrated USB 3.0 xHCI Host Controller 9027 CN99xx [ThunderX2] Integrated AHCI/SATA 3 Host Controller @@ -22231,6 +22373,8 @@ 0225 CX9 Family [ConnectX-9 Secure Flash Recovery-RMA] 0226 CX10 Family [ConnectX-10 Flash Recovery] 0227 CX10 Family [ConnectX-10 Secure Flash Recovery-RMA] + 0228 CX9 PCIe Switch Family [ConnectX-9 PCIe Switch Flash Recovery] + 0229 CX9 PCIe Switch Family [ConnectX-9 PCIe Switch Secure Flash Recovery-RMA] 024e MT53100 [Spectrum-2, Flash recovery mode] 024f MT53100 [Spectrum-2, Secure Flash recovery mode] 0250 Spectrum-3, Flash recovery mode @@ -22258,6 +22402,8 @@ 0278 Quantum-4 in Flash Recovery Mode 0279 Quantum-4 RMA 027a Eros Chiplet + 027c Quantum-5 in Flash Recovery Mode + 027d Quantum-5 RMA 0281 NPS-600 Flash Recovery 0282 ArcusE Flash recovery 0283 ArcusE RMA @@ -22269,6 +22415,12 @@ 0288 Arcus2 0289 Arcus2 RMA 0290 SagittaZ + 0292 Arcus3 Flash Recovery + 0293 Arcus3 RMA + 02a0 Quantum-6 in Flash Recovery Mode + 02a1 Quantum-6 RMA + 02a2 Spectrum-7 in Flash Recovery Mode + 02a3 Spectrum-7 RMA 1002 MT25400 Family [ConnectX-2 Virtual Function] 1003 MT27500 Family [ConnectX-3] 1014 04b5 PCIe3 40GbE RoCE Converged Host Bus Adapter for Power @@ -22320,6 +22472,8 @@ 1012 MT27600 Family [Connect-IB Virtual Function] 1013 MT27700 Family [ConnectX-4] 1014 04f7 PCIe3 2-port 100 GbE (NIC and RoCE) QSFP28 Adapter for Power + 117c 00af FastFrame N351 Single-port 50Gb Ethernet Adapter + 117c 00b0 FastFrame N352 Dual-port 50Gb Ethernet Adapter 15b3 0003 Mellanox Technologies ConnectX-4 Stand-up single-port 40GbE MCX413A-BCAT 15b3 0005 Mellanox Technologies ConnectX-4 Stand-up single-port 40GbE MCX415A-BCAT 15b3 0006 MCX416A-BCAT, ConnectX-4 EN, 40/56GbE 2P, PCIe3.0 x16 @@ -22330,6 +22484,9 @@ 15b3 0050 ConnectX-4 100 GbE Dual Port QSFP28 Adapter 1014 MT27700 Family [ConnectX-4 Virtual Function] 1015 MT27710 Family [ConnectX-4 Lx] + 117c 00b4 FastFrame N322 Dual-port 25Gb Ethernet Adapter + 117c 40b7 ThunderLink TLN3-3252 Dual-port 25Gb Ethernet Adapter + 117c 40b8 ThunderLink TLN3-3102 Dual-port 10Gb Ethernet Adapter 15b3 0001 ConnectX-4 Lx EN network interface card, 25GbE single-port SFP28, PCIe3.0 x8, tall bracket, ROHS R6 15b3 0003 Stand-up ConnectX-4 Lx EN, 25GbE dual-port SFP28, PCIe3.0 x8, MCX4121A-ACAT 15b3 0004 ConnectX-4 Lx Stand-up dual-port 10GbE MCX4121A-XCAT @@ -22348,6 +22505,8 @@ 1e81 0c10 25GbE dual-port SFP28, PCIe3.0 x8 [3SC10] 1016 MT27710 Family [ConnectX-4 Lx Virtual Function] 1017 MT27800 Family [ConnectX-5] + 117c 00b1 FastFrame N311 Single-port 10Gb Ethernet Adapter + 117c 00b2 FastFrame N312 Dual-port 10Gb Ethernet Adapter 15b3 0006 ConnectX-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT 15b3 0007 Mellanox ConnectX-5 MCX516A-CCAT 15b3 0020 ConnectX-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT @@ -22462,6 +22621,7 @@ b200 ArcusE b201 LibraE b202 Arcus2 + b203 Arcus3 c2d1 BlueField DPU Family Auxiliary Communication Channel [BlueField Family] c2d2 MT416842 BlueField SoC management interfac c2d3 MT42822 BlueField-2 SoC Management Interface @@ -22482,11 +22642,14 @@ cf80 Spectrum-4 cf82 Spectrum-5 cf84 Spectrum-6 + cf86 Spectrum-7 d2f0 Quantum HDR (200Gbps) switch d2f2 Quantum-2 NDR (400Gbps) switch d2f4 Quantum-3 d2f6 Quantum-3CPO d2f8 Quantum-4 + d2fa Quantum-5 + d2fc Quantum-6 15b4 CCI/TRIAD 15b5 Cimetrics Inc 15b6 Texas Memory Systems Inc @@ -22539,7 +22702,9 @@ 5036 WD PC SN5000S M.2 2280 NVMe SSD (DRAM-less) 5041 WD Blue SN580 NVMe SSD (DRAM-less) 5042 WD Black SN770M NVMe SSD (DRAM-less) + 5045 WD_BLACK SN7100 NVMe SSD (DRAM-less) 5046 SanDisk Extreme NVMe SSD (DRAM-less) + 5049 SN8000S NVMe SSD 15b8 ADDI-DATA GmbH 1001 APCI1516 SP controller (16 digi outputs) 1003 APCI1032 SP controller (32 digi inputs w/ opto coupler) @@ -23645,7 +23810,6 @@ # 250GB nvme ssd from lenovo, can be found in Thinkpad x380 yoga 0005 LENSE30256GMSP34MEAT3TA 0006 LENSE30512GMSP34MEAT3TA - 3181 ThinkCentre M75n IoT 402b Intel 82599ES 10Gb 2-port Server Adapter X520-2 9602 RS780/RS880 PCI to PCI bridge (int gfx) 17ab Phillips Components @@ -24407,12 +24571,20 @@ 1924 802b XtremeScale X2552 OCP 2.0 Dual Port SFP28 1924 802c XtremeScale X2522-25G PCIe Dual Port SFP28 1924 802d XtremeScale X2562 OCP 3.0 Dual Port SFP28 + 0c03 NS9480 1/10/25/40/50/100Gb Ethernet Controller PLUS + 1924 8031 X4522 Express and Enterprise Ethernet Adapter + 1924 8032 X4542 Express and Enterprise Ethernet Adapter 1803 SFC9020 10G Ethernet Controller (Virtual Function) 1813 SFL9021 10GBASE-T Ethernet Controller (Virtual Function) 1903 SFC9120 10G Ethernet Controller (Virtual Function) 1923 SFC9140 10/40G Ethernet Controller (Virtual Function) 1a03 SFC9220 10/40G Ethernet Controller (Virtual Function) 1b03 XtremeScale SFC9250 10/25/40/50/100G Ethernet Controller (Virtual Function) + 1c03 NS9480 1/10/25/40/50/100Gb Ethernet Controller PLUS (Virtual Function) + 2c03 NS9480 1/10/25/40/50/100Gb Ethernet Controller + 1924 8031 X4522 Enterprise Ethernet Adapter + 1924 8032 X4542 Enterprise Ethernet Adapter + 3c03 NS9480 1/10/25/40/50/100Gb Ethernet Controller (Virtual Function) 6703 SFC4000 rev A iSCSI/Onload [Solarstorm] 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard] 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard] @@ -24682,6 +24854,7 @@ 5021 PS5021-E21 PCIe4 NVMe Controller (DRAM-less) 5026 PS5026-E26 PCIe5 NVMe Controller 5027 PS5027-E27T PCIe4 NVMe Controller (DRAM-less) + 5031 PS5031-E31T PCIe5 NVMe Controller 1989 Montilio Inc. 0001 RapidFile Bridge 8001 RapidFile @@ -25213,6 +25386,10 @@ 1824 ASM1824 12-Port PCIe x8 Gen2 Packet Switch 2142 ASM2142/ASM3142 USB 3.1 Host Controller 1462 7a72 H270 PC MATE + 2421 ASM4242 PCIe Switch Upstream Port + 2423 ASM4242 PCIe Switch Downstream Port + 2425 ASM4242 USB 4 / Thunderbolt 3 Host Router + 2426 ASM4242 USB 3.2 xHCI Controller 2806 ASM2806 4-Port PCIe x2 Gen3 Packet Switch 2812 ASM2812 6-Port PCIe x4 Gen3 Packet Switch 2824 ASM2824 PCIe Gen3 Packet Switch @@ -25415,6 +25592,7 @@ 2720 Ultrastar DC SN650 NVMe SSD 2721 Ultrastar DC SN650 NVMe SSD 2722 Ultrastar DC SN655 NVMe SSD + 2751 Ultrastar DC SN861 NVMe SSD 3001 RapidFlex C2000 NVMe Initiator 3714 PC SN730 NVMe SSD 3734 PC SN730 NVMe SSD @@ -25533,6 +25711,7 @@ # Nytro 5060H (Rocinante High Performance) non-SED 1bb1 0181 Nytro 5060H 1bb1 01a1 Nytro XP7102 + 0155 Nytro 5x50 NVMe SSD 5012 FireCuda/IronWolf 510 SSD 5013 BarraCuda Q5 NVMe SSD (DRAM-less) 5016 FireCuda 520/IronWolf 525 SSD @@ -25568,6 +25747,8 @@ 5236 PCIe 4TG2-P Controller 1bcd Apacer Technology 0120 NVMe SSD Drive 960GB + 0180 PB4480 NVMe PCIe SSD (DRAM-less) + 0310 NVMe SSD Drive 480GB 1bcf NEC Corporation 001c Vector Engine 1.0 1bd0 Astronics Corporation @@ -25600,6 +25781,7 @@ 1007 NS6610G1U320, NS6510G1U384 NVME SSD 100c NS8510G1Uxxx, NS8610G1Uxxx NVME SSD 100e NS8500G2Uxxxx, NS8600G2Uxxxx NVME SSD + 100f NS6500G2UXXXX,NS6600G2UXXXX NVME SSD 1bee IXXAT Automation GmbH 0002 CAN-IB100/PCIe 0003 CAN-IB200/PCIe @@ -25743,7 +25925,9 @@ 1739 BC701 NVMe Solid State Drive 174a Gold P31/BC711/PC711 NVMe Solid State Drive 1959 Platinum P41/PC801 NVMe Solid State Drive + 1969 PC811 NVMe Solid State Drive 1d59 BC901 NVMe Solid State Drive (DRAM-less) + 1f69 PVC10 NVMe Solid State Drive (DRAM-less) 2204 960GB TLC PCIe Gen3 x4 NVMe M.2 22110 2427 PE6010 NVMe Solid State Drive 2429 PE6011 NVMe Solid State Drive @@ -25928,16 +26112,24 @@ 1ea0 2201 TP2511 Series U.2 NVMe Datacenter SSD(7.68TB) 1ea0 2210 TP2510 Series E3.S NVMe Datacenter SSD(7.68TB) 1ea0 2211 TP2511 Series E3.S NVMe Datacenter SSD(7.68TB) + 1ea0 2301 TP2511 Series U.2 NVMe Datacenter SSD (15.36TB) 0540 PBlaze4 NVMe SSD 0550 PBlaze5 700/900 0555 PBlaze5 510/516 0557 PBlaze5 910/916 1c63 Science and Research Centre of Computer Technology (JSC "NICEVT") 0008 K1927BB1Ya [EC8430] Angara Interconnection Network Adapter +# Other World Computing +1c7a OWC 1c7e TTTech Computertechnik AG 0200 zFAS Debug Port 1c7f Elektrobit Austria GmbH + 0300 EBX3 5100 EB5100 + 7200 EB 7200 Automotive logging and replay card +# This is a EB7200 card compatibly with a EB PCIe driver + 7201 EB7200 with EB PCIe Driver Interface + 7211 EB7210 1c8a TSF5 Corporation 0001 Hunter PCI Express 1c8c Mobiveil, Inc. @@ -25969,6 +26161,7 @@ 1cb8 Dawning Information Industry Co., Ltd. 1cc1 ADATA Technology Co., Ltd. 1202 IM2P32A8 NVMe SSD (DRAM-less) + 1602 LEGEND 900 NVMe SSD (DRAM-less) # SX6000LNP 2263 XPG SX6000 Lite NVMe SSD (DRAM-less) 32a8 SM2P32A8 NVMe SSD (DRAM-less) @@ -25990,10 +26183,12 @@ 621a LEGEND 850 NVMe SSD (DRAM-less) 622a LEGEND 960 NVMe SSD 624a LEGEND 700, XPG GAMMIX S20 NVMe SSD (DRAM-less) + 625a LEGEND 850 LITE NVMe SSD (DRAM-less) # 1TB 627a LEGEND 800 NVMe SSD (DRAM-less) # 500GB 628a LEGEND 800 NVMe SSD (DRAM-less) + 633a LEGEND 900 NVMe SSD (DRAM-less) 642a XPG GAMMIX S50 CORE NVMe SSD (DRAM-less) 8201 XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive 1cc4 Shenzhen Unionmemory Information System Ltd. @@ -26015,7 +26210,7 @@ 17ab AH631 PCIe 3.0 NVMe SSD 256GB 2263 AM611 PCIe 3.0 x2 NVMe SSD 256GB 5008 AM610 PCIe 3.0 x2 NVMe SSD 128GB, 256GB - 5012 RPITJ512PED2OWX NVMe SSD 512GB + 5012 AH530 PCIe 3.0 NVMe SSD 512GB 5212 AM521 PCIe 3.0 NVMe SSD 256GB 6201 AM620 PCIe 3.0 NVMe SSD 128GB 6202 AM620 PCIe 3.0 NVMe SSD 256GB @@ -26024,10 +26219,14 @@ 6302 AM630 PCIe 4.0 NVMe SSD 256GB 6303 AM630 PCIe 4.0 x4 NVMe SSD Controller 6304 AM630 PCIe 4.0 NVMe SSD 1024GB + 660c RPETJ1T24MHP2QDQ PCIe 4.0 NVMe SSD 1024GB + 6a01 AM620 PCIe 3.0 NVMe SSD 128GB 6a02 AM6A0 PCIe 4.0 NVMe SSD 256GB 6a03 RPETJ512MKP1QDQ PCIe 4.0 NVMe SSD 512GB (DRAM-less) + 6a04 RPETJ1T24MKP2QDQ PCIe 4.0 NVMe SSD 1024GB (DRAM-less) 6a13 RPJYJ512MKN1QWQ PCIe 4.0 NVMe SSD 512GB (DRAM-less) 6a14 RPEYJ1T24MKN2QWY PCIe 4.0 NVMe SSD 1024GB (DRAM-less) + 6b04 AM6B0 PCIe 4.0 NVMe SSD 6b13 RPJYJ512MLR1QWY PCIe 4.0 NVMe SSD 512GB (DRAM-less) 6b14 RPJYJ1T24MLR1HWY PCIe 4.0 NVMe SSD 1024GB (DRAM-less) 8030 NVMe SSD Controller UH8X2X/UH7X2X series @@ -26051,6 +26250,10 @@ 1cc4 3123 NVMe SSD UH712a U.2 3.84TB 1cc4 3124 NVMe SSD UH712a U.2 7.68TB 1cc4 3125 NVMe SSD UH712a U.2 15.36TB + 1ea0 4124 NVMe SSD TP3511 U.2 7.68TB + 1ea0 4125 NVMe SSD TP3511 U.2 15.36TB + 1ea0 4224 NVMe SSD TP3511 E3.S 7.68TB + 1ea0 4225 NVMe SSD TP3511 E3.S 15.36TB 1cc5 Embedded Intelligence, Inc. 0100 PCIe-CAN-02 Dual CAN bus (9-pin male). PCI Express x1. 0101 PCIe-CAN-01 Single CAN bus (9-pin male). PCI Express x1. @@ -26232,6 +26435,8 @@ 00c0 Turbocard3 Accelerator 0140 Open Network Interface Card 40G e004 AB01/EMB01 Development Board +1d2a KAYA Instruments + 1000 Frame grabber 1d37 NovaSparks 0013 PM3 0014 PM4 @@ -26278,9 +26483,11 @@ 14c0 AQC113C NBase-T/IEEE 802.3an Ethernet Controller [Marvell Scalable mGig] 80b1 AQtion AQC100S NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G] 87b1 AQtion AQC107S NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G] + 1c7a de2b Thunderbolt 10G Ethernet Adapter 93c0 AQtion AQC114CS NBase-T/IEEE 802.3bz Ethernet Controller [Antigua 5G] 94c0 AQtion AQC113CS NBase-T/IEEE 802.3an Ethernet Controller [Antigua 10G] 1043 87f5 ProArt X570-CREATOR WIFI + 1043 8812 ASUS XG-C100C 10G PCI-E Network Adapter d107 AQtion AQC107 NBase-T/IEEE 802.3an Ethernet Controller [Atlantic 10G] 1043 8741 XG-C100C d108 AQC108 NBase-T/IEEE 802.3bz Ethernet Controller [AQtion] @@ -26417,6 +26624,7 @@ 0102 Codensity D408 PCIe Gen4 NVMe SSD 0202 Codensity T408 Video Encoding-Decoding Accelerator 0401 Quadra Video Processing Unit (VPU) + 0411 Quadra Video Processing Unit (VPU) Virtual Function # nee Fuzhou Rockchip Electronics Co., Ltd 1d87 Rockchip Electronics Co., Ltd 0100 RK3399 PCI Express Root Port @@ -26497,6 +26705,8 @@ # PCIe accelerator card for Deep Learning training tasks 1020 Gaudi2 AI Training Accelerator 1060 Gaudi3 AI Training Accelerator + 1063 Gaudi3 AI Training Accelerator Add-In Family + 1da3 1063 HL-338 Gaudi3 AI Accelerator PCIe Add-In Card 1da8 Corigine, Inc. 3800 Network Flow Processor 3800 3803 Network Flow Processor 3800 Virtual Function @@ -26525,12 +26735,17 @@ dc36 LDMA Controller [X100 Series] dc38 LSD_CFG Controller [X100 Series] dc3a SWITCH Controller [X100 Series] + dc3b MAC Controller [D3000M Series] dc3c GPU_DMA Controller [X100 Series] + dc3e DCController [E2000 Series] + dc3f SATA Controller [D3000M Series] 1dbb NGD Systems, Inc. 1dbe INNOGRIT Corporation - 5216 NVMe SSD Controller IG5216 (DRAM-less) - 5220 NVMe SSD Controller IG5220 (DRAM-less) - 5236 NVMe SSD Controller IG5236 + 5208 NVMe SSD Controller IG5208 [Shasta] (DRAM-less) + 5216 NVMe SSD Controller IG5216 [Shasta+] (DRAM-less) + 5220 NVMe SSD Controller IG5220 [RainierQX] (DRAM-less) + 5222 NVMe SSD Controller IG5222 [RainierX] (DRAM-less) + 5236 NVMe SSD Controller IG5236 [RainierPC] 1dbe 4001 Dongting-B1 DC SSD M.2 480GB 1dbe 4002 Dongting-B1 DC SSD M.2 960GB 5636 NVMe DC SSD IG5636 @@ -26549,6 +26764,14 @@ 1dbe 2004 Dongting-N2 DC SSD U.2 3840GB 1dbe 2005 Dongting-N2 DC SSD U.2 6400GB 1dbe 2006 Dongting-N2 DC SSD U.2 7680GB + 1dbe 2118 Dongting-N2Q DC QLC SSD U.2 15360GB + 1dbe 2190 Dongting-N2Q DC QLC SSD U.2 30720GB + 1dbe 2201 Dongting-N2 2000 DC SSD U.2 1600GB + 1dbe 2202 Dongting-N2 2000 DC SSD U.2 1920GB + 1dbe 2203 Dongting-N2 2000 DC SSD U.2 3200GB + 1dbe 2204 Dongting-N2 2000 DC SSD U.2 3840GB + 1dbe 2205 Dongting-N2 2000 DC SSD U.2 6400GB + 1dbe 2206 Dongting-N2 2000 DC SSD U.2 7680GB 1dbe 3001 Donghu-Z2 DC ZNS SSD U.2 4000GB 1dbe 3002 Donghu-Z2 DC ZNS SSD U.2 8000GB 5666 NVMe SSD Controller IG5666 @@ -26561,6 +26784,9 @@ 1dbe 5008 Dongting-N3 DC SSD U.2 15360GB 1dbe 5009 Dongting-N3 DC SSD U.2 25600GB 1dbe 5010 Dongting-N3 DC SSD U.2 30720GB + 1dbe 5118 Dongting-N3Q DC QLC SSD U.2 15360GB + 1dbe 5190 Dongting-N3Q DC QLC SSD U.2 30720GB + 1dbe 6116 Dongting-Z3Q DC ZNS SSD U.2 7680GB 5669 NVMe SSD Controller IG5669 [Tacoma] 1dbf Guizhou Huaxintong Semiconductor Technology Co., Ltd 0401 StarDragon4800 PCI Express Root Port @@ -26575,6 +26801,15 @@ 0010 N-10m2 NVMe SSD 0016 N-16 0020 EN-20 BGA NVMe SSD (DRAM-less) + 0030 N-30m2 NVMe SSD + 0036 N-36m2 NVMe SSD + 1200 D1200 NVMe SSD + 3000 N3000 NVMe SSD + 3002 N3002 NVMe SSD + 3602 N3602 NVMe SSD + 4131 A1x NVMe SSD Series + 4432 D2x NVMe SSD Series + 5200 N5200 NVMe SSD 1dd8 AMD Pensando Systems 0002 DSC2 Elba Upstream Port 1dd8 100e Distributed Services Card @@ -26588,6 +26823,10 @@ 1dd8 500d DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4 1dd8 500e DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R5 1dd8 500f DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4-T + 0008 DSC3 Salina Upstream Port + 1dd8 100e Distributed Services Card + 1dd8 5200 DSC3-2Q400 100/200/400G 2-port DDR5 128G eMMC G3 Services Card + 1dd8 5201 POLLARA-1Q400 100/200/400G 1-port Card 1000 DSC Capri Upstream Port 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB @@ -26621,6 +26860,8 @@ 1dd8 500d DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4 1dd8 500e DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R5 1dd8 500f DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4-T + 1dd8 5200 DSC3-2Q400 100/200/400G 2-port DDR5 128G eMMC G3 Services Card + 1dd8 5201 POLLARA-1Q400 100/200/400G 1-port Card 1002 DSC Ethernet Controller 1dd8 100e Distributed Services Card 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB @@ -26643,6 +26884,8 @@ 1dd8 500d DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4 1dd8 500e DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R5 1dd8 500f DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4-T + 1dd8 5200 DSC3-2Q400 100/200/400G 2-port DDR5 128G eMMC G3 Services Card + 1dd8 5201 POLLARA-1Q400 100/200/400G 1-port Card 1003 DSC Ethernet Controller VF 1dd8 100e Distributed Services Card 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB @@ -26665,6 +26908,8 @@ 1dd8 500d DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4 1dd8 500e DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R5 1dd8 500f DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4-T + 1dd8 5200 DSC3-2Q400 100/200/400G 2-port DDR5 128G eMMC G3 Services Card + 1dd8 5201 POLLARA-1Q400 100/200/400G 1-port Card 1004 DSC Management Controller 1dd8 100e Distributed Services Card 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB @@ -26687,6 +26932,8 @@ 1dd8 500d DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4 1dd8 500e DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R5 1dd8 500f DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 DPU R4-T + 1dd8 5200 DSC3-2Q400 100/200/400G 2-port DDR5 128G eMMC G3 Services Card + 1dd8 5201 POLLARA-1Q400 100/200/400G 1-port Card 1005 DSC NVMe Controller 1dd8 100e Distributed Services Card 1dd8 5001 DSC2-200 50/100/200G 2-port 32G RAM 64G eMMC G2 Services Card *** 783 LINES SKIPPED *** From nobody Wed Apr 30 08:03:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnV7b3mtsz5v3bW; Wed, 30 Apr 2025 08:03:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnV7Z5tpNz3LjD; Wed, 30 Apr 2025 08:03:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000234; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YOS0vR8y7INbwbOtR1fxMykKBBkED7dyB1PyFYO1bBE=; b=CNTv1aQoFQEK6bP4XjEStRLxbzNNd/jLLgOHhlJGcxbEMqLc4FqiC/4kr64+DHXdt6PU8O kYhsEF0b2Ogvd7wznJgDv9Flw++kXFSD0wTwOkQutk8XZ2wb9bKDrD6huvXEbmsu+x+odm vcNlD3HidzOAWS6zhKVRUS622r3IWkqseP4CSXO7AB27mZ6sOQ9SRtwcs9mQoWxsrT8uFo bnQPRiMxZ/8J9Iq/e8yml9EyAF0imT0EnzA0Nre2j25wdngI2VclLmzc/HCgHrN0hmPuSO 3NV2zQ0mSoljHKAKYE/7UoNBx4g7PhjtnjK8HlBb499gQ29es5sLjWCZTo4l0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746000234; a=rsa-sha256; cv=none; b=hupYvHpbxlJ44jMFPonBDNPPVCqu9GCcprq8AvzP3SoKhbem/qG4VcoNiWSlOxksbQmMOY tABnPAA89ZcgRrRRYBAcB+n813drWHMvjO4T8m+iv4pgDmuXutpzyksuD4mGzdTOaOv5fn pmILDj8g0sgRvaetO2JM1oE3/gyLyaVySV8wx6IzAED2ec/jtzDuR5s3KaEa72Y5BkGsWX B8PoqA8J/knxQK6U0qxmn18lxegyVZq764rFFNC3oWfRSd54LCOt9QBhEQzfbrpv0rDQRS 4SLt6ihUk70MDofrCBeBQuGczbIDDWCu/+KtalyaGmMJ44YH4BJRpmTcuD0PSA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000234; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YOS0vR8y7INbwbOtR1fxMykKBBkED7dyB1PyFYO1bBE=; b=kpAIWUFdzjS1HVyArPkFfO39BZhyYB6/SN4dMlpMlJsn+Hp3LVPRzrJ7XERuhMcH0sRHzT Zt+qD1UL/dnu4+andk0CrjJMZZmofhWx1LDls/Nf8KnGYZJTe9VDozTmukhcRmwtCGaaLt QIfuNPl6cQ4+eN/AI/fTxAlZZsrKbtW/E/1oCTVuRLho//AHl3DOOVlUIgY+S0HNkDv0N8 dizhUtW9AAdNJ6SWUwk23xQrtiV5rderWaVAbaWtLnZZCfSiGzjMsLQTAeKJze2LDw7TTk x/WfhE1PVNxcLpOD+27Xc9q945iz6fqS8BrZ2ZY2FrVboaJLSNN6kpjaxxTEEw== 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 4ZnV7Z59x7zxDm; Wed, 30 Apr 2025 08:03:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U83s3h048367; Wed, 30 Apr 2025 08:03:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U83sF1048364; Wed, 30 Apr 2025 08:03:54 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:03:54 GMT Message-Id: <202504300803.53U83sF1048364@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: 004f8bd94710 - stable/14 - usb_vendors: update to 2025-04-01 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 004f8bd94710d34bccf4210ffbbbf227b0cb052a Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=004f8bd94710d34bccf4210ffbbbf227b0cb052a commit 004f8bd94710d34bccf4210ffbbbf227b0cb052a Author: Baptiste Daroussin AuthorDate: 2025-04-16 20:35:53 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 08:03:27 +0000 usb_vendors: update to 2025-04-01 (cherry picked from commit 8c3aac52f5efe80720f35c578a9644609000a99c) --- share/misc/usb_vendors | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/share/misc/usb_vendors b/share/misc/usb_vendors index 3304de282c18..3e72fe4045e6 100644 --- a/share/misc/usb_vendors +++ b/share/misc/usb_vendors @@ -9,8 +9,8 @@ # The latest version can be obtained from # http://www.linux-usb.org/usb.ids # -# Version: 2024.12.04 -# Date: 2024-12-04 20:34:02 +# Version: 2025.04.01 +# Date: 2025-04-01 20:34:02 # # Vendors, devices and interfaces. Please keep sorted. @@ -23112,6 +23112,8 @@ 357d Sharkoon 7788 JMicron JMS567 ATA/ATAPI Bridge 3636 InVibro +3752 Arculus Holdings, LLC + 0001 AuthentiKey 3767 Fanatec 0101 Speedster 3 Forceshock Wheel 3838 WEM @@ -23699,6 +23701,7 @@ 0029 AX200 Bluetooth 0032 AX210 Bluetooth 0033 AX211 Bluetooth + 0036 BE200 Bluetooth 0716 Modem Flashloader 07da Centrino Bluetooth Wireless Transceiver 07db Atom C2000 Root Hub From nobody Wed Apr 30 08:03:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnV7d463Pz5v4Nn; Wed, 30 Apr 2025 08:03: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnV7d1Z5mz3LgG; Wed, 30 Apr 2025 08:03:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000237; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fjsxMDrSOK5O/Ixk7s2Fyy3lW5lQFqWlJk9rbfB6SWc=; b=v6Q91spL509TjmDBxp4NuUBZ01X0KFO3FcUNT/r7//ez3ESFj68mM2lOj3wm5uuEiO+khg 4t6e6PRXp8Ekw8KG6q51vv4yU/cnN4tUwZW+Bgj7eMLZtSaZzc+8idWJTt4KWNSRi0MTHL 8uDQKDt3AhBh5AQOi/FVwPhUZ9usEjgT5ZPxWXl/ycdkLKLJz3LmkWzXfTJ4yuUpMs/UbF XIRW2jdb5QRVkJd1MoBcV9yi60qTWrbg+zWP1PIrT3zvCknqh2/tTuZTFliqY69Z6VcRoq elaWhSWdzXVkzWP/304xgPe4ScDpk7Hr8MjJ4lUoydVdwS1vYk+tzFzi0xUANg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746000237; a=rsa-sha256; cv=none; b=fOyTuZhWWVNj7G6sxXlmMqXbE3faZ6JwoeXJO6f5DRM4k6bSeux2lhiNR8PvkDrawuzdY3 waXi4HjexzAAShtQldVk/7B+UH1wSRaZUc8t7DZo3pmVWRlCM5Z4yandT0HjGFX9NI5qig WzXWWaoLdKNiZnnxTXsAftL1D781EcA/JbkdgVxhfK0f0cgN5bFgILXOx6QI2dBFqucuuo 1kMwWDCZykIi2hf4I+jgR5P0x1du1zoiiZE8mheN1jamDi6fdEJV2nr05uEfTkEI07AFwi WDpkUKPpCHGsReZ167J36c2RMTbuNCVobf4l9xx9X/i/0+7H//NCExPcn1g71g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000237; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fjsxMDrSOK5O/Ixk7s2Fyy3lW5lQFqWlJk9rbfB6SWc=; b=e/fP2FYfEYrv0STiYaIKxZzlbkFANhucwEqxWeHP5Nc/fy5zXQeP8bQP8267y1zgYchvFR vfuybQXtbfvzGZnbTVUU2hK0rl+2WH7icVobdo27N2lK0HfJ4pDStuQc0OOEZZ8bd3Jwi5 trxR5T8VfBIdAqV/Iw9szQpWgkaGl7gTuVWRxysgZcFtbq1hLxvlam5XS9PLbFq4lyvCOA npo6j6CqlifXzMnqk3at55xRPyAZSOqJCwiRlLx7u4pVFOuDRAwGQDI9je10bL7eG4qfGS 6XKPewdGLr4xkEEN+80UYOpiDGXU50uMT8dls8YYx6wmFvm3a3Nz0P6dlHT4FQ== 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 4ZnV7c6Mm3zxQ2; Wed, 30 Apr 2025 08:03:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U83uuw048441; Wed, 30 Apr 2025 08:03:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U83u9G048438; Wed, 30 Apr 2025 08:03:56 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:03:56 GMT Message-Id: <202504300803.53U83u9G048438@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: 28a38dc945cf - stable/14 - nuageinit: fix luacheck nit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 28a38dc945cff4b1991bca0b031d790713c55b94 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=28a38dc945cff4b1991bca0b031d790713c55b94 commit 28a38dc945cff4b1991bca0b031d790713c55b94 Author: Baptiste Daroussin AuthorDate: 2025-04-23 14:49:46 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 08:03:27 +0000 nuageinit: fix luacheck nit Reported by: jlduran (cherry picked from commit 18d74dc0cd9e832a8786a916de1af1c801cb1cb8) --- libexec/nuageinit/nuage.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index fffd1b6d23aa..e58069164130 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -135,7 +135,7 @@ local function adduser(pwd) cmd = cmd .. extraargs .. " -c '" .. pwd.gecos cmd = cmd .. "' -d '" .. pwd.homedir .. "' -s " .. pwd.shell .. postcmd - local f = io.popen(cmd, "w") + f = io.popen(cmd, "w") if input then f:write(input) end From nobody Wed Apr 30 08:03:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnV7d1fnmz5v4Nk; Wed, 30 Apr 2025 08:03: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnV7c0tpBz3Lcs; Wed, 30 Apr 2025 08:03:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=shgjA0Xpb0Ynm2NF4sEgt0HWc4QfMdT8smpVoILrVYY=; b=KBxxSMMpL3mNom5Ft4NrMqm2xmoYakDAfR6n0XbPPp/MShdiqeQ1eo7y6jH1jM5Rd//Aqu xLhTGZd6ejfoXRQ2qcCC/u3agc4qTrOCHQ0cOCj2V3n7BYEevL/52MhFRYRHHWiDsxDyXn gMg+DbKo//hG6t3HD/j/JAYuus+muzEsoq5GzeTy3BCaeI/a8udAigjV13B64QDYBYYfJU cYnTFZwk08q+DnPuBqjRBSQu56r+mhzBKsiok/pgVF1qt+TuBHxHcsqMdt+bePrpD3Dj44 wwrXIo0kFqo216MTnV4VT0+WUlqTDEZQGCCZv7OaCFyic0pvvWhdGYtDnAQDmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746000236; a=rsa-sha256; cv=none; b=Z1tG5RfMsOYDTJz7RFXHzn75QmyPKuWlfLuwMPoM4oes6Xn/OG2qpltUBEDHzZVspFmI07 uqV8lVgZEz5u3Vh6ymZ/pzWUzoVjN5LXsL38SDU/t6TyafOtfpdegMc0bGEgreLpC39HtB D9a90En24ksqpWHbRsOs+LLIx4i4bKa2D8cYZc1yQkWN8sCADx4g3QbY7VLiWdG4ydUyT2 NZ2X/2kB6eP0iKamSJ+1SqHqBs5kcHUmjkYyjUuXN81pVIpze23a+Vs+wNGwCMl9rf013b Bf8TGJb0/3b1T4aP8JWqBmc6Q/KiRJs+1IWZixdfHZDcHTs281xqqJ9TyBV/eg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000236; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=shgjA0Xpb0Ynm2NF4sEgt0HWc4QfMdT8smpVoILrVYY=; b=d8pfzqYy6n9uYwQXpiXAfWLau+4FQVmbQy7Q/EOY1eKUBp1vnvhKSw3jSUBuD/hPCbVZd+ v4MA7cHPm/9JEX1TZQXH/TQsJBYib76Z4kpMXbwdcOCogfTLdp/zowQebXAksM5YnKvugp UcOE9wTrjA5cHCQHsO7zHLW++3sOcOHV21LPfl9+9fYrMNkkOSu9XJy5jXv3KUnenY/KOA fH3ji+95cxe/4Z94d6l3SV4Ca+Yg9G/ltAgy2FXBp4hCLSqqiJphQHZwJTDrZfhNqLHiPe U+6y6CRmr795Ls3gJVHXkHp2f6KOD08bpWZ3WqfKKTcIk5crkyLQX2kz4aFa/w== 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 4ZnV7b5k45zxhG; Wed, 30 Apr 2025 08:03:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U83tLI048406; Wed, 30 Apr 2025 08:03:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U83ttQ048403; Wed, 30 Apr 2025 08:03:55 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:03:55 GMT Message-Id: <202504300803.53U83ttQ048403@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: 63aa7c5fb8dd - stable/14 - nuageinint: implement ssh_pwauth List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 63aa7c5fb8dd0223ab270a907b90e7e01b532d73 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=63aa7c5fb8dd0223ab270a907b90e7e01b532d73 commit 63aa7c5fb8dd0223ab270a907b90e7e01b532d73 Author: Baptiste Daroussin AuthorDate: 2025-04-17 16:04:26 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 08:03:27 +0000 nuageinint: implement ssh_pwauth ssh_pwauth sets the value in sshd_config for the password authentication This implementation tries to avoid touching the file if cloudinit request for what is already the default value. MFC After: 3 days Sponsored by: OVHCloud Reviewed by: kevans, jlduran Differential Revision: https://reviews.freebsd.org/D49875 (cherry picked from commit f85d08682782f7ef49aecf2edacd81184561de87) --- libexec/nuageinit/nuage.lua | 36 +++++++++++++++++++++++- libexec/nuageinit/nuageinit | 7 +++++ libexec/nuageinit/tests/nuageinit.sh | 54 ++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 1 deletion(-) diff --git a/libexec/nuageinit/nuage.lua b/libexec/nuageinit/nuage.lua index 978de02a63fc..fffd1b6d23aa 100644 --- a/libexec/nuageinit/nuage.lua +++ b/libexec/nuageinit/nuage.lua @@ -228,6 +228,39 @@ local function addsshkey(homedir, key) end end +local function update_sshd_config(key, value) + local sshd_config = "/etc/ssh/sshd_config" + local root = os.getenv("NUAGE_FAKE_ROOTDIR") + if root then + sshd_config = root .. sshd_config + end + local f = assert(io.open(sshd_config, "r+")) + local tgt = assert(io.open(sshd_config .. ".nuageinit", "w")) + local found = false + local pattern = "^%s*"..key:lower().."%s+(%w+)%s*#?.*$" + while true do + local line = f:read() + if line == nil then break end + local _, _, val = line:lower():find(pattern) + if val then + found = true + if val == value then + assert(tgt:write(line .. "\n")) + else + assert(tgt:write(key .. " " .. value .. "\n")) + end + else + assert(tgt:write(line .. "\n")) + end + end + if not found then + assert(tgt:write(key .. " " .. value .. "\n")) + end + assert(f:close()) + assert(tgt:close()) + os.rename(sshd_config .. ".nuageinit", sshd_config) +end + local n = { warn = warnmsg, err = errmsg, @@ -236,7 +269,8 @@ local n = { sethostname = sethostname, adduser = adduser, addgroup = addgroup, - addsshkey = addsshkey + addsshkey = addsshkey, + update_sshd_config = update_sshd_config } return n diff --git a/libexec/nuageinit/nuageinit b/libexec/nuageinit/nuageinit index 88e8b6c4c2cd..341330e68128 100755 --- a/libexec/nuageinit/nuageinit +++ b/libexec/nuageinit/nuageinit @@ -352,6 +352,13 @@ if line == "#cloud-config" then network:close() routing:close() end + if obj.ssh_pwauth ~= nil then + local value = "no" + if obj.ssh_pwauth then + value = "yes" + end + nuage.update_sshd_config("PasswordAuthentication", value) + end else local res, err = os.execute(path .. "/" .. ud) if not res then diff --git a/libexec/nuageinit/tests/nuageinit.sh b/libexec/nuageinit/tests/nuageinit.sh index 7e1310c4f0f9..d3b1d5e6df2e 100644 --- a/libexec/nuageinit/tests/nuageinit.sh +++ b/libexec/nuageinit/tests/nuageinit.sh @@ -19,6 +19,7 @@ atf_test_case config2_pubkeys_meta_data atf_test_case config2_network atf_test_case config2_network_static_v4 atf_test_case config2_ssh_keys +atf_test_case nocloud_userdata_cloudconfig_ssh_pwauth args_body() { @@ -459,6 +460,58 @@ blabla atf_check -o inline:"${_expected}" cat ${PWD}/etc/ssh/ssh_host_ed25519_key.pub } + +nocloud_userdata_cloudconfig_ssh_pwauth_head() +{ + atf_set "require.user" root +} +nocloud_userdata_cloudconfig_ssh_pwauth_body() +{ + mkdir -p etc + cat > etc/master.passwd << EOF +root:*:0:0::0:0:Charlie &:/root:/bin/sh +sys:*:1:0::0:0:Sys:/home/sys:/bin/sh +EOF + pwd_mkdb -d etc "${PWD}"/etc/master.passwd + cat > etc/group << EOF +wheel:*:0:root +users:*:1: +EOF + mkdir -p media/nuageinit + printf "instance-id: iid-local01\n" > "${PWD}"/media/nuageinit/meta-data + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +ssh_pwauth: true +EOF + mkdir -p etc/ssh/ + touch etc/ssh/sshd_config + + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o inline:"PasswordAuthentication yes\n" cat etc/ssh/sshd_config + + # Same value we don't touch anything + printf " PasswordAuthentication yes # I want password\n" > etc/ssh/sshd_config + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o inline:" PasswordAuthentication yes # I want password\n" cat etc/ssh/sshd_config + + printf " PasswordAuthentication no # Should change\n" > etc/ssh/sshd_config + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o inline:"PasswordAuthentication yes\n" cat etc/ssh/sshd_config + + cat > media/nuageinit/user-data << 'EOF' +#cloud-config +ssh_pwauth: false +EOF + + printf " PasswordAuthentication no # no passwords\n" > etc/ssh/sshd_config + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o inline:" PasswordAuthentication no # no passwords\n" cat etc/ssh/sshd_config + + printf " PasswordAuthentication yes # Should change\n" > etc/ssh/sshd_config + atf_check -o empty -e empty /usr/libexec/nuageinit "${PWD}"/media/nuageinit nocloud + atf_check -o inline:"PasswordAuthentication no\n" cat etc/ssh/sshd_config +} + atf_init_test_cases() { atf_add_test_case args @@ -474,4 +527,5 @@ atf_init_test_cases() atf_add_test_case config2_network atf_add_test_case config2_network_static_v4 atf_add_test_case config2_ssh_keys + atf_add_test_case nocloud_userdata_cloudconfig_ssh_pwauth } From nobody Wed Apr 30 08:07:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnVD24961z5v4MM; Wed, 30 Apr 2025 08:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnVD21sstz3NqY; Wed, 30 Apr 2025 08:07:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b73Jb41q3EdjhQbpqH2zKgv7gDIH3VVVE2THhBwy8xQ=; b=Xc5Q2goCdb7cMsGd4CWRE89FDsKYSGcvdjsAxtMmXWJGI+VQ6VReJGDMOBXDrWa+q1Mi9X 1ACqyo0v3ZRbu8XPPms0zOe/o84pnD4DeI/Mm5d8Ecr9UcJZjU8JnxHXAcsRwypUPhnZFz 51WCirtKsm69ZOCe70aMC+wGq7JCnwWsO/uX8RssCjuJFZTDM48gta7+oiOB2VfRucfjbf wBsx2bd5YuyKOKKaqIXWM9+4rfs+/aavIXAUczj++z09lluhfRw18H2LsxqUV9Y/pS6GUW VCV6BDBexDQFS1pkj59xz9koTAXcPQK0qo2hdp5nUICg5lmLSMxv1TBP4lfDAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746000466; a=rsa-sha256; cv=none; b=vwLxUimYZI/inJxPAAirpuVhsA6JtqGFXyXy+a4nxnB6HYXpoHlu5W8lr1wh6bMAVHHcZJ mrpHzzoRGSweT6Q2l+eR5CqkomdzMkDgHLmCk5ch6MkhaSj6mfCOd9GQO8Elt84eY05X1c i5nkB0MBjL7SYoNmTR1S/B/yX51Fu5CvzqQre3xw6+GDeNVAEYg/2uJYJMAZjJm5eLBBE5 mQvlQKFUvCg9GvpajZHAt3FFdc9BwUELQKdjm0w3cnGDTzVUoV78ii940SAuyPKc0T+WaU mEWDDBZZF+nZziEZ2PzPyH6+LIuLdT++/QDHojAMoeP9r6BX3ktQ17PnKMgXOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746000466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=b73Jb41q3EdjhQbpqH2zKgv7gDIH3VVVE2THhBwy8xQ=; b=OrsXB8madlZRfNAe1h2aLh1ucgXpCS/HnECWS9hAKFJoY6GUWonpLKFib2CO5P9siqENct N7ynM4KCRrmEr4lc9ocfIlPru/BQg1e6TENbincuDc6HeVeaKOUiA6KQ6i2gWBW9HQm5GG MQBRCUSxtURPpzdAwHmbCSQHcP3iDIdwv0CH6BEtwHDscHFkIl5djNRVZN9iXz737+uYg/ DzRHxOB+GzTOF0VWFa40LzzxxFrzndsQl2ZvKzHoVW7MIEm4bkJl1jBC+x1OvNkiQZSgrL NEBYEd3ju83fKnJwBRdUVWM1UWrsXuwMdVOwCIu/hEKwK60S1hVo1Lu68dKZng== 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 4ZnVD21R6qzxQ4; Wed, 30 Apr 2025 08:07:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53U87kja049822; Wed, 30 Apr 2025 08:07:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53U87klY049819; Wed, 30 Apr 2025 08:07:46 GMT (envelope-from git) Date: Wed, 30 Apr 2025 08:07:46 GMT Message-Id: <202504300807.53U87klY049819@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: e7a517bee5a7 - stable/14 - libedit: import vendor snapshot 2025-01-03 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e7a517bee5a7c167605ee0ed3cb56586de2a92d0 Auto-Submitted: auto-generated The branch stable/14 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=e7a517bee5a7c167605ee0ed3cb56586de2a92d0 commit e7a517bee5a7c167605ee0ed3cb56586de2a92d0 Author: Baptiste Daroussin AuthorDate: 2025-04-16 20:21:05 +0000 Commit: Baptiste Daroussin CommitDate: 2025-04-30 08:07:39 +0000 libedit: import vendor snapshot 2025-01-03 (cherry picked from commit 136d69caf03bc38de95c4df34c5a683e9ce81bfa) --- contrib/libedit/Makefile | 14 ++- contrib/libedit/chared.c | 6 +- contrib/libedit/chartype.c | 12 +-- contrib/libedit/common.c | 7 +- contrib/libedit/edit.expsym | 204 ++++++++++++++++++++++++++++++++++++ contrib/libedit/editline.3 | 4 +- contrib/libedit/editline.7 | 6 +- contrib/libedit/el.c | 5 +- contrib/libedit/el.h | 5 +- contrib/libedit/eln.c | 12 ++- contrib/libedit/emacs.c | 10 +- contrib/libedit/filecomplete.c | 6 +- contrib/libedit/filecomplete.h | 5 +- contrib/libedit/history.c | 13 ++- contrib/libedit/keymacro.c | 8 +- contrib/libedit/libedit.pc | 12 +++ contrib/libedit/literal.c | 6 +- contrib/libedit/map.c | 5 +- contrib/libedit/read.c | 5 +- contrib/libedit/readline.c | 24 +++-- contrib/libedit/readline/readline.h | 38 ++++--- contrib/libedit/refresh.c | 14 ++- contrib/libedit/search.c | 7 +- contrib/libedit/sig.c | 6 +- contrib/libedit/sys.h | 4 +- contrib/libedit/tokenizer.c | 10 +- 26 files changed, 350 insertions(+), 98 deletions(-) diff --git a/contrib/libedit/Makefile b/contrib/libedit/Makefile index 105a6a92e0ee..f7cd3baf885f 100644 --- a/contrib/libedit/Makefile +++ b/contrib/libedit/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.66 2019/10/13 07:28:10 mrg Exp $ +# $NetBSD: Makefile,v 1.70 2023/08/03 14:56:36 rin Exp $ # @(#)Makefile 8.1 (Berkeley) 6/4/93 USE_SHLIBDIR= yes @@ -21,6 +21,12 @@ SRCS = chared.c chartype.c common.c el.c eln.c emacs.c filecomplete.c \ MAN= editline.3 editrc.5 editline.7 +FILES+= libedit.pc +FILESOWN_libedit.pc= ${BINOWN} +FILESGRP_libedit.pc= ${BINGRP} +FILESMODE_libedit.pc= ${NONBINMODE} +FILESDIR_libedit.pc= /usr/lib/pkgconfig + MLINKS= \ editline.3 el_deletestr.3 \ editline.3 el_end.3 \ @@ -138,6 +144,6 @@ COPTS.tokenizer.c+= -Wno-cast-qual COPTS.tokenizern.c+= -Wno-cast-qual .endif -COPTS.history.c+= ${GCC_NO_STRINGOP_OVERFLOW} -COPTS.historyn.c+= ${GCC_NO_STRINGOP_OVERFLOW} -COPTS.readline.c+= ${GCC_NO_STRINGOP_TRUNCATION} ${GCC_NO_STRINGOP_OVERFLOW} +COPTS.history.c+= ${CC_WNO_STRINGOP_OVERFLOW} +COPTS.historyn.c+= ${CC_WNO_STRINGOP_OVERFLOW} +COPTS.readline.c+= ${CC_WNO_STRINGOP_TRUNCATION} ${CC_WNO_STRINGOP_OVERFLOW} diff --git a/contrib/libedit/chared.c b/contrib/libedit/chared.c index 03d31ddeec85..72d84e46740f 100644 --- a/contrib/libedit/chared.c +++ b/contrib/libedit/chared.c @@ -1,4 +1,4 @@ -/* $NetBSD: chared.c,v 1.63 2022/10/30 19:11:31 christos Exp $ */ +/* $NetBSD: chared.c,v 1.64 2024/06/29 14:13:14 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)chared.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: chared.c,v 1.63 2022/10/30 19:11:31 christos Exp $"); +__RCSID("$NetBSD: chared.c,v 1.64 2024/06/29 14:13:14 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -319,6 +319,8 @@ cv_prev_word(wchar_t *p, wchar_t *low, int n, int (*wtest)(wint_t)) test = (*wtest)(*p); while ((p >= low) && (*wtest)(*p) == test) p--; + if (p < low) + return low; } p++; diff --git a/contrib/libedit/chartype.c b/contrib/libedit/chartype.c index 9c74cfeb677a..b731d63bafb5 100644 --- a/contrib/libedit/chartype.c +++ b/contrib/libedit/chartype.c @@ -1,4 +1,4 @@ -/* $NetBSD: chartype.c,v 1.36 2022/10/30 19:11:31 christos Exp $ */ +/* $NetBSD: chartype.c,v 1.37 2023/08/10 20:38:00 mrg Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: chartype.c,v 1.36 2022/10/30 19:11:31 christos Exp $"); +__RCSID("$NetBSD: chartype.c,v 1.37 2023/08/10 20:38:00 mrg Exp $"); #endif /* not lint && not SCCSID */ #include @@ -235,17 +235,17 @@ ct_visual_string(const wchar_t *s, ct_buffer_t *conv) } /* failed to encode, need more buffer space */ - used = dst - conv->wbuff; + uintptr_t sused = (uintptr_t)dst - (uintptr_t)conv->wbuff; if (ct_conv_wbuff_resize(conv, conv->wsize + CT_BUFSIZ) == -1) return NULL; - dst = conv->wbuff + used; + dst = conv->wbuff + sused; } if (dst >= (conv->wbuff + conv->wsize)) { /* sigh */ - used = dst - conv->wbuff; + uintptr_t sused = (uintptr_t)dst - (uintptr_t)conv->wbuff; if (ct_conv_wbuff_resize(conv, conv->wsize + CT_BUFSIZ) == -1) return NULL; - dst = conv->wbuff + used; + dst = conv->wbuff + sused; } *dst = L'\0'; diff --git a/contrib/libedit/common.c b/contrib/libedit/common.c index f33c29650d79..e038956464c4 100644 --- a/contrib/libedit/common.c +++ b/contrib/libedit/common.c @@ -1,4 +1,4 @@ -/* $NetBSD: common.c,v 1.49 2020/03/30 06:54:37 ryo Exp $ */ +/* $NetBSD: common.c,v 1.50 2024/06/30 16:29:42 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)common.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: common.c,v 1.49 2020/03/30 06:54:37 ryo Exp $"); +__RCSID("$NetBSD: common.c,v 1.50 2024/06/30 16:29:42 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -222,7 +222,8 @@ ed_move_to_end(EditLine *el, wint_t c __attribute__((__unused__))) return CC_REFRESH; } #ifdef VI_MOVE - el->el_line.cursor--; + if (el->el_line.cursor > el->el_line.buffer) + el->el_line.cursor--; #endif } return CC_CURSOR; diff --git a/contrib/libedit/edit.expsym b/contrib/libedit/edit.expsym new file mode 100644 index 000000000000..c5d021b31a65 --- /dev/null +++ b/contrib/libedit/edit.expsym @@ -0,0 +1,204 @@ +_el_fn_complete +_el_fn_sh_complete +_rl_abort_internal +_rl_complete_mark_directories +_rl_completion_prefix_display_length +_rl_echoing_p +_rl_erase_entire_line +_rl_print_completions_horizontally +_rl_qsort_string_compare +add_history +append_history +clear_history +completion_matches +ct_decode_string +ct_encode_string +current_history +el_beep +el_cursor +el_deletestr +el_deletestr1 +el_end +el_get +el_getc +el_gets +el_init +el_init_fd +el_insertstr +el_line +el_parse +el_push +el_replacestr +el_reset +el_resize +el_set +el_source +el_wget +el_wgetc +el_wgets +el_winsertstr +el_wline +el_wparse +el_wpush +el_wreplacestr +el_wset +emacs_ctlx_keymap +emacs_meta_keymap +emacs_standard_keymap +filename_completion_function +fn_complete +fn_complete2 +fn_display_match_list +fn_filename_completion_function +fn_tilde_expand +free_history_entry +get_history_event +history +history_arg_extract +history_base +history_end +history_expand +history_expansion_char +history_get +history_get_history_state +history_inhibit_expansion_function +history_init +history_is_stifled +history_length +history_list +history_max_entries +history_no_expand_chars +history_offset +history_search +history_search_pos +history_search_prefix +history_set_pos +history_subst_char +history_tokenize +history_total_bytes +history_truncate_file +history_w +history_wend +history_winit +max_input_history +next_history +previous_history +read_history +readline +readline_echoing_p +remove_history +replace_history_entry +rl_abort +rl_add_defun +rl_already_prompted +rl_attempted_completion_function +rl_attempted_completion_over +rl_basic_quote_characters +rl_basic_word_break_characters +rl_bind_key +rl_bind_key_in_map +rl_callback_handler_install +rl_callback_handler_remove +rl_callback_read_char +rl_catch_signals +rl_catch_sigwinch +rl_cleanup_after_signal +rl_complete +rl_completer_quote_characters +rl_completer_word_break_characters +rl_completion_append_character +rl_completion_display_matches_hook +rl_completion_entry_function +rl_completion_matches +rl_completion_query_items +rl_completion_suppress_append +rl_completion_type +rl_completion_word_break_hook +rl_copy_text +rl_crlf +rl_delete_text +rl_deprep_term_function +rl_deprep_terminal +rl_ding +rl_directory_completion_hook +rl_display_match_list +rl_display_prompt +rl_done +rl_echo_signal_char +rl_end +rl_erase_empty_line +rl_event_hook +rl_filename_completion_desired +rl_filename_completion_function +rl_forced_update_display +rl_free_line_state +rl_generic_bind +rl_get_keymap +rl_get_previous_history +rl_get_screen_size +rl_getc_function +rl_ignore_completion_duplicates +rl_inhibit_completion +rl_initialize +rl_insert +rl_insert_text +rl_instream +rl_kill_text +rl_library_version +rl_line_buffer +rl_linefunc +rl_make_bare_keymap +rl_message +rl_newline +rl_on_new_line +rl_outstream +rl_parse_and_bind +rl_point +rl_pre_input_hook +rl_prep_term_function +rl_prep_terminal +rl_prompt +rl_prompt_saved +rl_read_init_file +rl_read_key +rl_readline_name +rl_readline_state +rl_readline_version +rl_redisplay +rl_redisplay_function +rl_replace_line +rl_reset_after_signal +rl_reset_terminal +rl_resize_terminal +rl_restore_prompt +rl_save_prompt +rl_set_key +rl_set_keyboard_input_timeout +rl_set_keymap +rl_set_keymap_name +rl_set_prompt +rl_set_screen_size +rl_sort_completion_matches +rl_special_prefixes +rl_startup1_hook +rl_startup_hook +rl_stuff_char +rl_terminal_name +rl_variable_bind +stifle_history +tilde_expand +tok_end +tok_init +tok_line +tok_reset +tok_str +tok_wend +tok_winit +tok_wline +tok_wreset +tok_wstr +unstifle_history +username_completion_function +using_history +where_history +write_history diff --git a/contrib/libedit/editline.3 b/contrib/libedit/editline.3 index f104dcc07c7a..465af0e655df 100644 --- a/contrib/libedit/editline.3 +++ b/contrib/libedit/editline.3 @@ -1,4 +1,4 @@ -.\" $NetBSD: editline.3,v 1.101 2021/08/15 10:12:54 wiz Exp $ +.\" $NetBSD: editline.3,v 1.102 2024/02/04 18:47:27 andvar Exp $ .\" .\" Copyright (c) 1997-2014 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -512,7 +512,7 @@ If the .Fa flag argument is non-zero, then .Nm editline -attempts to recover from read errors, ignoring the first interrrupted +attempts to recover from read errors, ignoring the first interrupted error, and trying to reset the input file descriptor to reset non-blocking I/O. This is disabled by default, and desirable only when .Nm editline diff --git a/contrib/libedit/editline.7 b/contrib/libedit/editline.7 index 863bab96d519..9a96fca47fa5 100644 --- a/contrib/libedit/editline.7 +++ b/contrib/libedit/editline.7 @@ -1,4 +1,4 @@ -.\" $NetBSD: editline.7,v 1.5 2016/05/09 21:27:55 christos Exp $ +.\" $NetBSD: editline.7,v 1.6 2024/04/06 13:36:11 christos Exp $ .\" $OpenBSD: editline.7,v 1.1 2016/04/20 01:11:45 schwarze Exp $ .\" .\" Copyright (c) 2016 Ingo Schwarze @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd May 7, 2016 +.Dd April 6, 2024 .Dt EDITLINE 7 .Os .Sh NAME @@ -546,7 +546,7 @@ It is an error if the cursor is already at the end of the edit buffer. .It Ic em-set-mark Pq emacs: Ctrl-Q, NUL Set the mark at the current cursor position. -.It Ic em-toggle-overwrite Pq not bound by default +.It Ic em-toggle-overwrite Pq insert Switch from insert to overwrite mode or vice versa. .It Ic em-universal-argument Pq not bound by default If in argument input mode, multiply the argument by 4. diff --git a/contrib/libedit/el.c b/contrib/libedit/el.c index 2c06e32de9ff..577fda821870 100644 --- a/contrib/libedit/el.c +++ b/contrib/libedit/el.c @@ -1,4 +1,4 @@ -/* $NetBSD: el.c,v 1.101 2022/10/30 19:11:31 christos Exp $ */ +/* $NetBSD: el.c,v 1.102 2025/01/03 00:40:08 rillig Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)el.c 8.2 (Berkeley) 1/3/94"; #else -__RCSID("$NetBSD: el.c,v 1.101 2022/10/30 19:11:31 christos Exp $"); +__RCSID("$NetBSD: el.c,v 1.102 2025/01/03 00:40:08 rillig Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -274,7 +274,6 @@ el_wset(EditLine *el, int op, ...) default: rv = -1; EL_ABORT((el->el_errfile, "Bad op %d\n", op)); - break; } break; } diff --git a/contrib/libedit/el.h b/contrib/libedit/el.h index 757137839eb8..a1e9cea11747 100644 --- a/contrib/libedit/el.h +++ b/contrib/libedit/el.h @@ -1,4 +1,4 @@ -/* $NetBSD: el.h,v 1.46 2021/08/15 10:08:41 christos Exp $ */ +/* $NetBSD: el.h,v 1.48 2025/01/03 00:40:08 rillig Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -58,6 +58,7 @@ #define NARROW_HISTORY 0x040 #define NO_RESET 0x080 #define FIXIO 0x100 +#define FROM_ELLINE 0x200 typedef unsigned char el_action_t; /* Index to command array */ @@ -152,7 +153,7 @@ libedit_private EditLine *el_init_internal(const char *, FILE *, FILE *, __FILE__, __LINE__); \ fprintf a; \ abort(); \ - } while( /*CONSTCOND*/0); + } while (0) #else #define EL_ABORT(a) abort() #endif diff --git a/contrib/libedit/eln.c b/contrib/libedit/eln.c index 563ec2a672a9..660e1988cc26 100644 --- a/contrib/libedit/eln.c +++ b/contrib/libedit/eln.c @@ -1,4 +1,4 @@ -/* $NetBSD: eln.c,v 1.37 2022/01/11 18:30:15 christos Exp $ */ +/* $NetBSD: eln.c,v 1.38 2024/05/17 02:59:08 christos Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: eln.c,v 1.37 2022/01/11 18:30:15 christos Exp $"); +__RCSID("$NetBSD: eln.c,v 1.38 2024/05/17 02:59:08 christos Exp $"); #endif /* not lint && not SCCSID */ #include @@ -365,6 +365,10 @@ el_line(EditLine *el) size_t offset; const wchar_t *p; + if (el->el_flags & FROM_ELLINE) + return info; + + el->el_flags |= FROM_ELLINE; info->buffer = ct_encode_string(winfo->buffer, &el->el_lgcyconv); offset = 0; @@ -377,6 +381,10 @@ el_line(EditLine *el) offset += ct_enc_width(*p); info->lastchar = info->buffer + offset; + if (el->el_chared.c_resizefun) + (*el->el_chared.c_resizefun)(el, el->el_chared.c_resizearg); + el->el_flags &= ~FROM_ELLINE; + return info; } diff --git a/contrib/libedit/emacs.c b/contrib/libedit/emacs.c index 0636c28b26fc..19a9cf191168 100644 --- a/contrib/libedit/emacs.c +++ b/contrib/libedit/emacs.c @@ -1,4 +1,4 @@ -/* $NetBSD: emacs.c,v 1.36 2016/05/09 21:46:56 christos Exp $ */ +/* $NetBSD: emacs.c,v 1.38 2024/06/29 17:28:07 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)emacs.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: emacs.c,v 1.36 2016/05/09 21:46:56 christos Exp $"); +__RCSID("$NetBSD: emacs.c,v 1.38 2024/06/29 17:28:07 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -134,11 +134,11 @@ em_yank(EditLine *el, wint_t c __attribute__((__unused__))) return CC_ERROR; el->el_chared.c_kill.mark = el->el_line.cursor; - cp = el->el_line.cursor; /* open the space, */ c_insert(el, (int)(el->el_chared.c_kill.last - el->el_chared.c_kill.buf)); + cp = el->el_line.cursor; /* copy the chars */ for (kp = el->el_chared.c_kill.buf; kp < el->el_chared.c_kill.last; kp++) *cp++ = *kp; @@ -448,12 +448,12 @@ em_copy_prev_word(EditLine *el, wint_t c __attribute__((__unused__))) if (el->el_line.cursor == el->el_line.buffer) return CC_ERROR; - oldc = el->el_line.cursor; /* does a bounds check */ cp = c__prev_word(el->el_line.cursor, el->el_line.buffer, el->el_state.argument, ce__isword); - c_insert(el, (int)(oldc - cp)); + c_insert(el, (int)(el->el_line.cursor - cp)); + oldc = el->el_line.cursor; for (dp = oldc; cp < oldc && dp < el->el_line.lastchar; cp++) *dp++ = *cp; diff --git a/contrib/libedit/filecomplete.c b/contrib/libedit/filecomplete.c index ee017fb406d5..a2001a4be955 100644 --- a/contrib/libedit/filecomplete.c +++ b/contrib/libedit/filecomplete.c @@ -1,4 +1,4 @@ -/* $NetBSD: filecomplete.c,v 1.72 2023/02/03 22:01:42 christos Exp $ */ +/* $NetBSD: filecomplete.c,v 1.73 2023/04/25 17:51:32 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: filecomplete.c,v 1.72 2023/02/03 22:01:42 christos Exp $"); +__RCSID("$NetBSD: filecomplete.c,v 1.73 2023/04/25 17:51:32 christos Exp $"); #endif /* not lint && not SCCSID */ #include @@ -459,11 +459,11 @@ out: el_free(expname); return rs; } + /* * returns list of completions for text given * non-static for readline. */ -char ** completion_matches(const char *, char *(*)(const char *, int)); char ** completion_matches(const char *text, char *(*genfunc)(const char *, int)) { diff --git a/contrib/libedit/filecomplete.h b/contrib/libedit/filecomplete.h index 796ae7ab3276..884586c438f7 100644 --- a/contrib/libedit/filecomplete.h +++ b/contrib/libedit/filecomplete.h @@ -1,4 +1,4 @@ -/* $NetBSD: filecomplete.h,v 1.14 2021/09/26 13:45:54 christos Exp $ */ +/* $NetBSD: filecomplete.h,v 1.15 2023/04/25 17:51:32 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -48,4 +48,7 @@ void fn_display_match_list(EditLine *, char **, size_t, size_t, char *fn_tilde_expand(const char *); char *fn_filename_completion_function(const char *, int); +/* XXX: readline */ +char **completion_matches(const char *, char *(*)(const char *, int)); + #endif diff --git a/contrib/libedit/history.c b/contrib/libedit/history.c index 73cfa6b8ead9..8395b329784d 100644 --- a/contrib/libedit/history.c +++ b/contrib/libedit/history.c @@ -1,4 +1,4 @@ -/* $NetBSD: history.c,v 1.63 2019/10/08 19:17:57 christos Exp $ */ +/* $NetBSD: history.c,v 1.64 2024/07/11 05:41:24 kre Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)history.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: history.c,v 1.63 2019/10/08 19:17:57 christos Exp $"); +__RCSID("$NetBSD: history.c,v 1.64 2024/07/11 05:41:24 kre Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -45,6 +45,7 @@ __RCSID("$NetBSD: history.c,v 1.63 2019/10/08 19:17:57 christos Exp $"); * hist.c: TYPE(History) access functions */ #include +#include #include #include #include @@ -842,8 +843,6 @@ history_save_fp(TYPE(History) *h, size_t nelem, FILE *fp) static ct_buffer_t conv; #endif - if (fchmod(fileno(fp), S_IRUSR|S_IWUSR) == -1) - goto done; if (ftell(fp) == 0 && fputs(hist_cookie, fp) == EOF) goto done; ptr = h_malloc((max_size = 1024) * sizeof(*ptr)); @@ -891,7 +890,11 @@ history_save(TYPE(History) *h, const char *fname) FILE *fp; int i; - if ((fp = fopen(fname, "w")) == NULL) + if ((i = open(fname, O_WRONLY|O_CREAT|O_TRUNC, + S_IRUSR|S_IWUSR)) == -1) + return -1; + + if ((fp = fdopen(i, "w")) == NULL) return -1; i = history_save_fp(h, (size_t)-1, fp); diff --git a/contrib/libedit/keymacro.c b/contrib/libedit/keymacro.c index cef24a1752e6..38ae9be58df9 100644 --- a/contrib/libedit/keymacro.c +++ b/contrib/libedit/keymacro.c @@ -1,4 +1,4 @@ -/* $NetBSD: keymacro.c,v 1.24 2019/07/23 10:18:52 christos Exp $ */ +/* $NetBSD: keymacro.c,v 1.25 2025/01/03 00:40:08 rillig Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)key.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: keymacro.c,v 1.24 2019/07/23 10:18:52 christos Exp $"); +__RCSID("$NetBSD: keymacro.c,v 1.25 2025/01/03 00:40:08 rillig Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -346,7 +346,6 @@ node__try(EditLine *el, keymacro_node_t *ptr, const wchar_t *str, default: EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ptr->type)); - break; } switch (ptr->type = ntype) { @@ -359,7 +358,6 @@ node__try(EditLine *el, keymacro_node_t *ptr, const wchar_t *str, break; default: EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); - break; } } else { /* still more chars to go */ @@ -444,7 +442,6 @@ node__put(EditLine *el, keymacro_node_t *ptr) break; default: EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ptr->type)); - break; } el_free(ptr); } @@ -614,7 +611,6 @@ keymacro_kprint(EditLine *el, const wchar_t *key, keymacro_value_t *val, break; default: EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); - break; } else (void) fprintf(el->el_outfile, fmt, ct_encode_string(key, diff --git a/contrib/libedit/libedit.pc b/contrib/libedit/libedit.pc new file mode 100644 index 000000000000..c08a8ba70b12 --- /dev/null +++ b/contrib/libedit/libedit.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: libedit +Description: command line editor library providing generic line editing, history, and tokenization functions. +Version: 3.1 +Requires: +Libs: -Wl,-R${libdir} -L${libdir} -ledit +Libs.private: -ltermcap +Cflags: -I${includedir} -I${includedir}/readline diff --git a/contrib/libedit/literal.c b/contrib/libedit/literal.c index f6eac26937e8..f6f63cb3fb06 100644 --- a/contrib/libedit/literal.c +++ b/contrib/libedit/literal.c @@ -1,4 +1,4 @@ -/* $NetBSD: literal.c,v 1.5 2019/07/23 13:10:11 christos Exp $ */ +/* $NetBSD: literal.c,v 1.6 2024/12/05 22:21:53 christos Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: literal.c,v 1.5 2019/07/23 13:10:11 christos Exp $"); +__RCSID("$NetBSD: literal.c,v 1.6 2024/12/05 22:21:53 christos Exp $"); #endif /* not lint && not SCCSID */ /* @@ -85,7 +85,7 @@ literal_add(EditLine *el, const wchar_t *buf, const wchar_t *end, int *wp) w = wcwidth(end[1]); /* column width of the visible char */ *wp = (int)w; - if (w <= 0) /* we require something to be printed */ + if (w < 0) /* non-printable characters are negative */ return 0; len = (size_t)(end - buf); diff --git a/contrib/libedit/map.c b/contrib/libedit/map.c index 57d3038ab2e9..2ac661993baf 100644 --- a/contrib/libedit/map.c +++ b/contrib/libedit/map.c @@ -1,4 +1,4 @@ -/* $NetBSD: map.c,v 1.55 2022/10/30 19:11:31 christos Exp $ */ +/* $NetBSD: map.c,v 1.56 2025/01/03 00:40:08 rillig Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)map.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: map.c,v 1.55 2022/10/30 19:11:31 christos Exp $"); +__RCSID("$NetBSD: map.c,v 1.56 2025/01/03 00:40:08 rillig Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -1390,7 +1390,6 @@ map_bind(EditLine *el, int argc, const wchar_t **argv) /* coverity[dead_error_begin] */ default: EL_ABORT((el->el_errfile, "Bad XK_ type %d\n", ntype)); - break; } return 0; } diff --git a/contrib/libedit/read.c b/contrib/libedit/read.c index 8026ca4a209b..4d068e9f4097 100644 --- a/contrib/libedit/read.c +++ b/contrib/libedit/read.c @@ -1,4 +1,4 @@ -/* $NetBSD: read.c,v 1.108 2022/10/30 19:11:31 christos Exp $ */ +/* $NetBSD: read.c,v 1.109 2025/01/03 00:40:08 rillig Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)read.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: read.c,v 1.108 2022/10/30 19:11:31 christos Exp $"); +__RCSID("$NetBSD: read.c,v 1.109 2025/01/03 00:40:08 rillig Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -265,7 +265,6 @@ read_getcmd(EditLine *el, el_action_t *cmdnum, wchar_t *ch) return -1; default: EL_ABORT((el->el_errfile, "Bad XK_ type \n")); - break; } } } while (cmd == ED_SEQUENCE_LEAD_IN); diff --git a/contrib/libedit/readline.c b/contrib/libedit/readline.c index ef3abd4b6daa..3b9b6ac6afcb 100644 --- a/contrib/libedit/readline.c +++ b/contrib/libedit/readline.c @@ -1,4 +1,4 @@ -/* $NetBSD: readline.c,v 1.178 2022/12/02 19:23:15 christos Exp $ */ +/* $NetBSD: readline.c,v 1.182 2024/03/26 18:02:04 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: readline.c,v 1.178 2022/12/02 19:23:15 christos Exp $"); +__RCSID("$NetBSD: readline.c,v 1.182 2024/03/26 18:02:04 christos Exp $"); #endif /* not lint && not SCCSID */ #include @@ -51,7 +51,9 @@ __RCSID("$NetBSD: readline.c,v 1.178 2022/12/02 19:23:15 christos Exp $"); #include #include +#define completion_matches xxx_completion_matches #include "readline/readline.h" +#undef completion_matches #include "el.h" #include "fcns.h" #include "filecomplete.h" @@ -101,7 +103,7 @@ int max_input_history = 0; char history_expansion_char = '!'; char history_subst_char = '^'; char *history_no_expand_chars = expand_chars; -Function *history_inhibit_expansion_function = NULL; +rl_linebuf_func_t *history_inhibit_expansion_function = NULL; char *history_arg_extract(int start, int end, const char *str); int rl_inhibit_completion = 0; @@ -122,11 +124,11 @@ int rl_filename_completion_desired = 0; int rl_ignore_completion_duplicates = 0; int readline_echoing_p = 1; int _rl_print_completions_horizontally = 0; -VFunction *rl_redisplay_function = NULL; +rl_voidfunc_t *rl_redisplay_function = NULL; rl_hook_func_t *rl_startup_hook = NULL; -VFunction *rl_completion_display_matches_hook = NULL; -VFunction *rl_prep_term_function = (VFunction *)rl_prep_terminal; -VFunction *rl_deprep_term_function = (VFunction *)rl_deprep_terminal; +rl_compdisp_func_t *rl_completion_display_matches_hook = NULL; +rl_vintfunc_t *rl_prep_term_function = (rl_vintfunc_t *)rl_prep_terminal; +rl_voidfunc_t *rl_deprep_term_function = (rl_voidfunc_t *)rl_deprep_terminal; KEYMAP_ENTRY_ARRAY emacs_meta_keymap; unsigned long rl_readline_state = RL_STATE_NONE; int _rl_complete_mark_directories; @@ -400,7 +402,7 @@ rl_initialize(void) * Allow the use of the Delete/Insert keys. */ el_set(e, EL_BIND, "\\e[3~", "ed-delete-next-char", NULL); - el_set(e, EL_BIND, "\\e[2~", "ed-quoted-insert", NULL); + el_set(e, EL_BIND, "\\e[2~", "em-toggle-overwrite", NULL); /* * Ctrl-left-arrow and Ctrl-right-arrow for word moving. @@ -1978,7 +1980,7 @@ rl_complete(int ignore __attribute__((__unused__)), int invoking_key) _rl_update_pos(); /* Just look at how many global variables modify this operation! */ - return fn_complete(e, + return fn_complete2(e, (rl_compentry_func_t *)rl_completion_entry_function, rl_attempted_completion_function, ct_decode_string(rl_basic_word_break_characters, &wbreak_conv), @@ -1986,7 +1988,7 @@ rl_complete(int ignore __attribute__((__unused__)), int invoking_key) _rl_completion_append_character_function, (size_t)rl_completion_query_items, &rl_completion_type, &rl_attempted_completion_over, - &rl_point, &rl_end); + &rl_point, &rl_end, 0); } @@ -2573,7 +2575,7 @@ void rl_reset_after_signal(void) { if (rl_prep_term_function) - (*rl_prep_term_function)(); + (*rl_prep_term_function)(1); } void diff --git a/contrib/libedit/readline/readline.h b/contrib/libedit/readline/readline.h index 2bd0b7e80ab6..03e2d2eb8e1e 100644 --- a/contrib/libedit/readline/readline.h +++ b/contrib/libedit/readline/readline.h @@ -1,4 +1,4 @@ -/* $NetBSD: readline.h,v 1.53 2022/02/19 17:45:02 christos Exp $ */ +/* $NetBSD: readline.h,v 1.55 2023/04/25 17:51:32 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -37,12 +37,13 @@ /* list of readline stuff supported by editline library's readline wrapper */ /* typedefs */ -typedef int Function(const char *, int); -typedef char *CPFunction(const char *, int); -typedef void VFunction(void); +typedef int rl_linebuf_func_t(const char *, int); +typedef void rl_voidfunc_t(void); +typedef void rl_vintfunc_t(int); typedef void rl_vcpfunc_t(char *); typedef char **rl_completion_func_t(const char *, int, int); typedef char *rl_compentry_func_t(const char *, int); +typedef void rl_compdisp_func_t(char **, int, int); typedef int rl_command_func_t(int, int); typedef int rl_hook_func_t(void); typedef int rl_icppfunc_t(char **); @@ -64,7 +65,7 @@ typedef struct _keymap_entry { #define ISFUNC 0 #define ISKMAP 1 #define ISMACR 2 - Function *function; + rl_linebuf_func_t *function; } KEYMAP_ENTRY; #define KEYMAP_SIZE 256 @@ -111,9 +112,7 @@ extern const char *rl_readline_name; extern FILE *rl_instream; extern FILE *rl_outstream; extern char *rl_line_buffer; -extern int rl_point, rl_end; -extern int history_base, history_length; -extern int max_input_history; +extern int rl_point, rl_end; extern const char *rl_basic_quote_characters; extern const char *rl_basic_word_break_characters; extern char *rl_completer_word_break_characters; @@ -127,12 +126,23 @@ extern int rl_completion_query_items; extern const char *rl_special_prefixes; extern int rl_completion_append_character; extern int rl_inhibit_completion; -extern rl_hook_func_t *rl_pre_input_hook; -extern rl_hook_func_t *rl_startup_hook; +extern rl_hook_func_t *rl_pre_input_hook; +extern rl_hook_func_t *rl_startup_hook; extern char *rl_terminal_name; extern int rl_already_prompted; extern char *rl_prompt; extern int rl_done; +extern rl_vcpfunc_t *rl_linefunc; +extern rl_hook_func_t *rl_startup1_hook; +extern char *rl_prompt_saved; +extern int history_base, history_length; +extern int history_offset; +extern char history_expansion_char; +extern char history_subst_char; +extern char *history_no_expand_chars; +extern rl_linebuf_func_t *history_inhibit_expansion_function; +extern int max_input_history; + /* * The following is not implemented */ @@ -145,10 +155,10 @@ extern KEYMAP_ENTRY_ARRAY emacs_standard_keymap, *** 193 LINES SKIPPED *** From nobody Wed Apr 30 17:21:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW10TQgz5thjp; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW057S2z3Lxb; Wed, 30 Apr 2025 17:21:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oW11wNzlYPlGWEOGL91D+38Ie6ZzAnH5t6zvpx0nLZU=; b=GC1w1ec+MtLVYH33aotKr/0skDFwDV4uHw37X4N3nDlv+IXC9uVIDooaHJvk/nMJVwGyCr 2j24HEhu7REBwlv8W5zp0zwo0mmiJA7vW5wfIbg6kH1RRWtSxKQ2V/Rzi3emVV6+vrVY/t FN8kAVW4+flrZ46OEgeQ12RMW7KFDvARAvnZJhDjJ1aQ7z6C3/WY1ToQZ+hR6eQpvdmQ2s 3UukmhlZhvj4JGuCduGFSs0PBFJ++NAZ8ToHYFvRQAn67G9714e/Gtr4QSRUkF7m4805kZ FiHIDX8ILrXKmkaqwtK35qDDw2Zb15pBSz1nVc47TC5W8BjEzuHS7BrozG51iA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033692; a=rsa-sha256; cv=none; b=N1zvZjCwoZn5CGEdh5Voo3rfctw7mYSA5Id808dMBUylsCO34NNL14mNugDpU+C3uAwcfU 8XnkV/++IzbRQjXj9jOHUi39+4GkjWENqztS3yYi0oBscrwylMGAxZHmfQKqLldjEQbv6t SjNr9JaJ6iIrZwzN2npInMHa3a/fKsL3pHDfB2T4mlaJpLv6fKeIWqK4xEQktptoRAE+fX ZL90MvfdB1UtRB2o7TXWVus7pudzxHAWSndodQQ6qvvkUFWHFxEjanc/Xs8/52UQWypGHC 8xqturKUT4L68jQA85vpgObCiMd1TLMetuM5NUQsL8eu9+Tj34s04ngoDCX6XQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033692; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oW11wNzlYPlGWEOGL91D+38Ie6ZzAnH5t6zvpx0nLZU=; b=LITtkd3d/BW1Bt/f7wfWDZCteBRGch3SLZpoLAfevRIsSeYAei9V/RVqDjlWRzAd3/YA2T m00E+dWPVEoZjK4ZLDaAbTCIM1o0M1lSVY9+qZFnDijEnPIGIBH2Kb/m15RQOu4FY+30jE 23R0jYi4qRd2Ue0tKWEM7Lhe6JYUO4gqmAElhor64G+HCp4c7qWHkYranvu8s4xqLlDJyG DTzRn8tpLVsnULOp/pjBlo4UifIOeh9SrJzoKpwyxKogtvgjweYea7rA8Gpbh0kWeFYQUI U6IheuWun+h6iz1Hz/CNQcaehZsZgBDxjtvOu2sfUUny9c1gZXjPx3CjNfn1qQ== 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 4ZnkW04hQyzmD; Wed, 30 Apr 2025 17:21:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLWAs093394; Wed, 30 Apr 2025 17:21:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLWwP093391; Wed, 30 Apr 2025 17:21:32 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:32 GMT Message-Id: <202504301721.53UHLWwP093391@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: 05e6c3afbc40 - stable/14 - mpi3mr: add missing terminator entry to mpi3mr_identifiers 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 05e6c3afbc40d28a7b643abe218cc0c5c00511ae Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=05e6c3afbc40d28a7b643abe218cc0c5c00511ae commit 05e6c3afbc40d28a7b643abe218cc0c5c00511ae Author: Chuck Silvers AuthorDate: 2024-01-19 23:58:41 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:50 +0000 mpi3mr: add missing terminator entry to mpi3mr_identifiers array Reported by: KASAN Sponsored by: Netflix Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D43519 (cherry picked from commit 2f2da21740b462e52e81880c82b4584be5ce6195) --- sys/dev/mpi3mr/mpi3mr_pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index c1c0211aab4e..1548d577a726 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -89,6 +89,7 @@ struct mpi3mr_ident { } mpi3mr_identifiers[] = { { MPI3_MFGPAGE_VENDORID_BROADCOM, MPI3_MFGPAGE_DEVID_SAS4116, 0xffff, 0xffff, 0, "Broadcom MPIMR 3.0 controller" }, + { 0 } }; DRIVER_MODULE(mpi3mr, pci, mpi3mr_pci_driver, 0, 0); From nobody Wed Apr 30 17:21:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW22fK6z5tj1j; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW16Gnxz3Lvh; Wed, 30 Apr 2025 17:21:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033693; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lDg6x+9amn6fjPqGoeu/HEraEU7kOhMlzZysm5GyRLk=; b=MZl+qc7nxyS8DB8sIOQy94qabiXNmIbg+3Sv2zHk+C/Bc5MYHvlFxacZEGTIaJZ/2ufI2H AYyyekFwaEdlCqnS17s8QNko5+Neys4TD0JzIYq2H6LHVS1Gs98/HirQ40tyyuydTOMJ6i Dalqw5WhGVKq6wFPTkDQRIEXYmc3W8TF3Bnv3b0QjZUtOL1LI+HDErpb3za87whhL+4Uy7 zFTK+83q1MnfttZPgazeGSCmC/m/hvYPCv0nsQ4E43M1KCx6BIAsOXOuNrSTYEg2FWgRor wQA3+Al2eb/CNXHlCH9VBzMElxm6QIouzaFijJ4nL8ILQoRDfYAVxuglCkkM0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033693; a=rsa-sha256; cv=none; b=t6sp8qFRC8y5KGb4gz4s4Ljyf0L2W4nQ/0uMnmiuA7iwn63eFJxF4boxbH8iOLTkFbiNgQ DWRrblL/o4oDf6Y7FuvNZNZYPn+/k/7hlw2Ux4DUPqvB64eG6LVZn+XN0SDBlIQvsqCcuJ fO5wng6ib53RWgw0YMAJuoTh4/YPUTAREmvTS0Mx0faKr1ThR2yrHPSzdqBIezJayXxpGE h6JL0uXCBzjPRHbNIRNLgdd4sb1u7ZNCtbmt/9jYL9RBSn6HZj36sPAUNQOWJhAArqzjTk mlKyeqQTQi09jxF3dJ8VdQrMJ8yv6x0y1vqaWPTwbSlOlBL0nHGETxmKeuTLhA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033693; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lDg6x+9amn6fjPqGoeu/HEraEU7kOhMlzZysm5GyRLk=; b=ZN4tCDNn8GtwBQ26gGBNiJIygQw62BymJvYbhHULzLh7/JU2OEJo8PtcXVaoh4wqiZJtCx tpOU8AT+6sL7vt4n/rR5YK89vYtLJg0eNaRm7BF/if3WZr/JM9iIgYtJDCudj9FpzM+0xg y8fSJpujlIX5OOiscgqCnZ741Z4+X06soEJ+kHHb3r1lTgpWBCQYmUwjeueTCy7I/5seDT 5eZetqpQxN2fCrBy/KBBvQrjcc/XKKnxI5F3JfPGkLUREfSuDinEOW+yvwnAcaMwNltJOj 9WMyj1yReZYYbY7uqEXQ1HA35E4I4FOpM6pIJ+/b0ApuuuTSw5VPjHloy6+AzA== 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 4ZnkW15cWlzRF; Wed, 30 Apr 2025 17:21:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLXAH093428; Wed, 30 Apr 2025 17:21:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLXHZ093425; Wed, 30 Apr 2025 17:21:33 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:33 GMT Message-Id: <202504301721.53UHLXHZ093425@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: 25607ef4852a - stable/14 - mpi3mr: Fix confusion over | and & List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 25607ef4852ac23cd699cad624500f7d55cdebd1 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=25607ef4852ac23cd699cad624500f7d55cdebd1 commit 25607ef4852ac23cd699cad624500f7d55cdebd1 Author: Warner Losh AuthorDate: 2023-12-11 02:44:47 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:50 +0000 mpi3mr: Fix confusion over | and & Use sc->mpi3mr_debug & MPI3MR_IOT over the | version to test if a bit is set. CID: 1529718 Sponsored by: Netflix (cherry picked from commit 34f0a01b6bd4ff0e61a7066729515148400e0982) --- sys/dev/mpi3mr/mpi3mr_cam.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index 7cc7c76cc202..ed47d69832ba 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1188,7 +1188,7 @@ mpi3mr_enqueue_request(struct mpi3mr_softc *sc, struct mpi3mr_cmd *cm) mpi3mr_dprint(sc, MPI3MR_IOT, "VD: Setting divert flag for tg_id(%d), persist_id(%d)\n", tg->id, targ->per_id); - if (sc->mpi3mr_debug | MPI3MR_IOT) + if (sc->mpi3mr_debug & MPI3MR_IOT) mpi3mr_print_cdb(ccb); mpi3mr_set_io_divert_for_all_vd_in_tg(sc, tg, 1); @@ -1210,7 +1210,7 @@ mpi3mr_enqueue_request(struct mpi3mr_softc *sc, struct mpi3mr_cmd *cm) mpi3mr_dprint(sc, MPI3MR_IOT, "PD: Setting divert flag for persist_id(%d)\n", targ->per_id); - if (sc->mpi3mr_debug | MPI3MR_IOT) + if (sc->mpi3mr_debug & MPI3MR_IOT) mpi3mr_print_cdb(ccb); } } From nobody Wed Apr 30 17:21:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW34wJkz5thyB; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW26wfQz3MB1; Wed, 30 Apr 2025 17:21:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vyi5EF6ZM+S0kmD4Vg1p0rEax26IWi7oGgPZqLwIotI=; b=GNioeoFay3iMMDWs14V/mzlCfQ2x8J4LKU0b2s2925TZ3Vui1yAe84ev2xyNOxd6a6lsQ9 og5q4pgdlw47vlF9Dmn4jcUW3pBbDYE84/npJv6wN77MHZ0+uCrZ2nuLzo3gVnX9jqA7Hd YfH1Ufvi6760h6TV4QvcGmmX187BtkDtrtdFqvH1kSTOH8wVEemctkqu/3QNi03jkOLVHH /GHWTgRHYiTINjOx0cTeultKDfCr1TYzv98qjwL88EblsxhDczeNvU1XZoT25qF6EjoniR 4yCOudbX6af4I1WitKWn/+29iJWim/yj7Ej76XeKyHixNIpihlJ+TNADQlUnhA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033695; a=rsa-sha256; cv=none; b=WXoSGEu0bV9wTpTYwalsw8Miv5fSdlOUuvv4VgkObExxsKjGk1LL4Rp2re9O+UyUwZnuK5 HCO4XbTdPUK1YR3dztZOsBN4dkx5nNH408rqWsEzt0mAM5FhJ9Ggx2QTH7f+3yCtg/dXLJ yOdj08ZvDiOaggEAKkla6ccxG5YAlrJBjSSnwMqbJu529qVgy4t5i7zpjjXRBrOoPyg1U9 T1nc5ZpZgvsOvf1SksS5VCV9C2kt8SF+ialV8msdR1GqWemUnWqwJrGpJJ2p/cHbYc5ks8 tHF66hXPJdAlkFDWnDu3IyeCkgoNLVXCd3sgnAWUOE9yWuDABpJz02qJcHaPqQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vyi5EF6ZM+S0kmD4Vg1p0rEax26IWi7oGgPZqLwIotI=; b=J1x58tszZwo7mRvFP3n5KBKnPMvTfAOy7+G0ftRtizCVjIZwrAyzDYqn9V+bjnxC+z1xYs zz5PmbQhANupN0G1l4AXMFww7fp1VgYUG3Uo/IHF3qywfsKbSizali8A6uxccLt85JzwhG czdNdKi89SVki43wGP3Lt02IL5jd+/LQkjNtknRNoxpQAJCzC+mFTkher9JLUlFNALIyKV B4Jbg0pCKWaD8UrIKCCbiv5iawQ6uqA0bJQlNTAdrOvA+M6+KhBGZdCiBPRzDi5OBCUQRl WjPAoAbn3izRqxZCSOZel9Et9hvQ7Vl3Dh8/g3PvyRt0v4grRpKfchuqXqbL0w== 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 4ZnkW26BfTz9T; Wed, 30 Apr 2025 17:21:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLY8c093468; Wed, 30 Apr 2025 17:21:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLY5n093465; Wed, 30 Apr 2025 17:21:34 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:34 GMT Message-Id: <202504301721.53UHLY5n093465@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: 85be8c09ab4b - stable/14 - mpi3mr: Block devices persist despite being offlined during reset List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 85be8c09ab4b2c2389bc8b0c7d6bfecebd3c413c Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=85be8c09ab4b2c2389bc8b0c7d6bfecebd3c413c commit 85be8c09ab4b2c2389bc8b0c7d6bfecebd3c413c Author: Chandrakanth patil AuthorDate: 2024-03-13 18:03:19 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:50 +0000 mpi3mr: Block devices persist despite being offlined during reset The driver removes the drive from the OS if firmware sends 'device added' event with hidden bit or inaccessible status. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44421 (cherry picked from commit 0d7056458db5b5dd7fdc5ccd8abab73e3ee76a20) --- sys/dev/mpi3mr/mpi3mr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 01ecceb430d6..fa7623b56285 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -5669,6 +5669,8 @@ static void mpi3mr_rfresh_tgtdevs(struct mpi3mr_softc *sc) if (target->exposed_to_os) mpi3mr_remove_device_from_os(sc, target->dev_handle); mpi3mr_remove_device_from_list(sc, target, true); + } else if (target->is_hidden && target->exposed_to_os) { + mpi3mr_remove_device_from_os(sc, target->dev_handle); } } From nobody Wed Apr 30 17:21:35 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW45VZ7z5thmC; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW406bSz3Lxg; Wed, 30 Apr 2025 17:21:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033696; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rTjOlODVzLHtYbpy39ZRNCRLGd+ckkllv2bHVTE4BMI=; b=l37Pyk3aWK2x2CCQZtuAN5r8FSk0HiBzvwLE/1hP2i6kney0rxnFJ0fqa2DJXsD326n3HW ntJuIsyyqBEO9+VtMMPRv+oGS5Tx2KpvhUDYZinkjlq8+sDASJbIVbKtp2YyM/koi1eTgQ UwyWSNsnW+LMsIpaYtVYBa6lcrrTRdqF2ucdy++wi7MCwTjm5WpVx7iXd/nzkemAhf5ZaL vvYjTQ1aYSs4D2SZIX0PTWSwhXgO0VSEvRn703kTnKbPOQ6QnVrqROFb5izeNHV7Gj5bea 7jqXKE+f6VOB8afQbbO+FM4aVWmq/xtJEHq+/EvL+XxUHILj8urFPJafn23uNg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033696; a=rsa-sha256; cv=none; b=hLgMKIH1FgmpRMaEjyJ5DCry8Cmtm+ocn0OGVqzMRmyQFxy+0/HLcsvYCVzgMCBgYb4P+b 2u0bIIikbY3fsYnlpn5VPEdcNvQIRXnd1crhK2a/jfIRCkwfmBLXiDTtReibQx3wssmC83 NoyoSSbO5IDBom846nZRBABYdHPC/rfQEXYYnOBqZ6GeFrw8JgurZrjH/WJjxLENjX6i1m y0tomdkLokmIXKWlHOjDaRWHSyYbAqMy10yaaI2MrgPf2T4xPujfgMJmjm2DzekjVUfvC9 v16L3zE6bEtmuU5Sk6nINtZUEHR3xqV6KW18On0tv54gkR7K4TD9pfCQ7Kx5nQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033696; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rTjOlODVzLHtYbpy39ZRNCRLGd+ckkllv2bHVTE4BMI=; b=phKPtr26+I9PIdnNLmxXK6gCk3tQlv8HiAgiF9CdBAkv7P3xuc8XKJVDXZBB/m49CdK6hl O3AnD4J40tAZeGhaI9VZ/06OfXotngwaculF14acajhFygI5A1lVg3urZJ0nP+MN7uzwhl RCeLziNP9v9tbvfvPkllJIBB/CcJc0YAQCYRIuaXPck82k1h7vmm1fTDSV+hSZnMaa+5BP JdzE0enVMsUaOEn+fu2ZSitqvt3QuHFa9a1RxOvx/R2aJjgcf3dbKOz8S17h9+59O55Nne 8c02Ph7lj2jvflTGymLVq+VGA7+qZcHmaUsqLLep6CU6smjXZx9Q0WK/07lsIw== 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 4ZnkW36rLfzjv; Wed, 30 Apr 2025 17:21:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLZm4093506; Wed, 30 Apr 2025 17:21:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLZVh093503; Wed, 30 Apr 2025 17:21:35 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:35 GMT Message-Id: <202504301721.53UHLZVh093503@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: a24be14366a7 - stable/14 - mpi3mr: Controller state check before enabling PEL List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: a24be14366a72ed59888e17ba4d05620b9cf36b9 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=a24be14366a72ed59888e17ba4d05620b9cf36b9 commit a24be14366a72ed59888e17ba4d05620b9cf36b9 Author: Chandrakanth patil AuthorDate: 2024-03-14 17:14:53 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: Controller state check before enabling PEL Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44422 (cherry picked from commit 042808f74707d3ce89e89463d4a03f81df6fd45a) --- sys/dev/mpi3mr/mpi3mr_app.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sys/dev/mpi3mr/mpi3mr_app.c b/sys/dev/mpi3mr/mpi3mr_app.c index f0dee22518a8..811f6e2f08af 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.c +++ b/sys/dev/mpi3mr/mpi3mr_app.c @@ -1642,6 +1642,18 @@ mpi3mr_pel_enable(struct mpi3mr_softc *sc, struct mpi3mr_ioctl_pel_enable pel_enable; mpi3mr_dprint(sc, MPI3MR_TRACE, "%s() line: %d\n", __func__, __LINE__); + if (sc->unrecoverable) { + device_printf(sc->mpi3mr_dev, "Issue IOCTL: controller is in unrecoverable state\n"); + return EFAULT; + } + if (sc->reset_in_progress) { + device_printf(sc->mpi3mr_dev, "Issue IOCTL: reset in progress\n"); + return EAGAIN; + } + if (sc->block_ioctls) { + device_printf(sc->mpi3mr_dev, "Issue IOCTL: IOCTLs are blocked\n"); + return EAGAIN; + } if ((data_out_sz != sizeof(pel_enable) || (pel_enable.pel_class > MPI3_PEL_CLASS_FAULT))) { From nobody Wed Apr 30 17:21:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW53v12z5tj1m; Wed, 30 Apr 2025 17:21:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW51Ps8z3MBB; Wed, 30 Apr 2025 17:21:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033697; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nZtdDjJ28aM7IlKbO1zIPgc17yxtzbH5LUfGgM1hfDE=; b=DoQX9UMMi9xcKpChuy5Zcxwf5V4J8MvopDw3b5BVV7puVeZnhyMq0/z+f7QO8JgCwI7pcN 93R5bsQcSkBBrtuInosCE6PdEGjVgfhhOlX+g4XnP/aS6yoNniHSwl0A2oyhsYJgeB4Wum em+BzEAqIwpkiAEXzCIY+EE+HTuX5K4F7eTqe9o8UdpAXN0G/HH+fVphQH+RvO1ajmY8P0 CEVUTpLF1PsRHkRXWA8gno5m2BA9Sx1jgJvruw14HEPSB7oaOOUTC2aKt958kqHnHLuxnx SsXTFUslX3C9Pmosg82GN1bEu5/1MgQIRSZtObroJTBPRBdttI6Qj1dtxIqMWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033697; a=rsa-sha256; cv=none; b=mtxD1dcmKWSdpa3isUXYq92AlvgfmhB5FrNpFaER89dZZiwSPx1KDX+Y5p4pqV2G2mH6NH Z0mM26UOtjdOUI+84i12GAEY6hG2SMxq+aKUaHyOwp/yg6YQjVLHYlNZrGDUes3+tZrpkJ cjvXfzPqmo/WpuQyp1NUE0xcPcWE/AFwLgMRrZFuSvMAOxjbaLR05ulx8dLehmWkLSRsLF VK9BOQMu2Pd9DFMzlBQjlZrJJ4WmlCsxUJVcwDVKijnTaNEzHwukTOxROe0Pss3QdRQQFA IrFEE2vpXEEg62aXL97e61uakZx2UsIrg0B/BdrXTAM/MZf8kUk7ehvsr9fV5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033697; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nZtdDjJ28aM7IlKbO1zIPgc17yxtzbH5LUfGgM1hfDE=; b=TQMWueRbnQzGrhwbqI2nkgKDyq0IpizjERwvhr/DBYzwZyTAZv9wm+tEWfPuO29dDFqh0E OdAQAPiHid19bpUQF8H4iH0xCxbYvvx0aytdyAB343thhta8fRYfMM3yiVoEmD1LtBBq8v 0RabTxMjv1e9LHtzf3WQF4lP7Ot3eGxAztjAHogamhM9ZsXvT+J7riVvl2+W5IiQih+KbH TSsv9KDjDLlaFiwhLkOqsQASDUWT65n8H6L3zfqN0VyCGvLd/WyNWQvLz0X31MlE7s8bwt OJESX1pUksKkmogte3szsmmqREJJzjc6Uw8TngohhTdu33Ais9J0U+tEsYKdhQ== 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 4ZnkW510Fpzd7; Wed, 30 Apr 2025 17:21:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLbes093540; Wed, 30 Apr 2025 17:21:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLbXO093537; Wed, 30 Apr 2025 17:21:37 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:37 GMT Message-Id: <202504301721.53UHLbXO093537@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: 3e1b3b3d15cd - stable/14 - mpi3mr: poll reply queue and add MPI3MR_DEV_REMOVE_HS_COMPLETED flag List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 3e1b3b3d15cd40337f2842b4483a66513f988e49 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3e1b3b3d15cd40337f2842b4483a66513f988e49 commit 3e1b3b3d15cd40337f2842b4483a66513f988e49 Author: Chandrakanth patil AuthorDate: 2024-03-14 17:47:06 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: poll reply queue and add MPI3MR_DEV_REMOVE_HS_COMPLETED flag An outstanding IO counter per target check has been added before deleting the target from the OS which will poll the reply queue if there are any outstanding IOs are found. A new flag, named "MPI3MR_DEV_REMOVE_HS_COMPLETED," is added. If a remove event for a target occurs and before the deletion of the target resource if the add event for another target arrives reusing the same target ID then this flag will prevent the removal of the target reference. This flag ensures synchronization between the interrupt top and bottom half during target removal and addition events. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44423 (cherry picked from commit 701d776c98e015160c2d0e3f4fdaf980d1d5dc83) --- sys/dev/mpi3mr/mpi3mr.c | 19 ++++++++----------- sys/dev/mpi3mr/mpi3mr.h | 3 +-- sys/dev/mpi3mr/mpi3mr_cam.c | 27 ++++++++++++++++++--------- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index fa7623b56285..a5f4215f29ca 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -3478,6 +3478,7 @@ static void mpi3mr_dev_rmhs_complete_iou(struct mpi3mr_softc *sc, { U16 cmd_idx = drv_cmd->host_tag - MPI3MR_HOSTTAG_DEVRMCMD_MIN; struct delayed_dev_rmhs_node *delayed_dev_rmhs = NULL; + struct mpi3mr_target *tgtdev = NULL; mpi3mr_dprint(sc, MPI3MR_EVENT, "%s :dev_rmhs_iouctrl_complete:handle(0x%04x), ioc_status(0x%04x), loginfo(0x%08x)\n", @@ -3498,6 +3499,13 @@ static void mpi3mr_dev_rmhs_complete_iou(struct mpi3mr_softc *sc, "%s :dev removal handshake failed after all retries: handle(0x%04x)\n", __func__, drv_cmd->dev_handle); } else { + mtx_lock_spin(&sc->target_lock); + TAILQ_FOREACH(tgtdev, &sc->cam_sc->tgt_list, tgt_next) { + if (tgtdev->dev_handle == drv_cmd->dev_handle) + tgtdev->state = MPI3MR_DEV_REMOVE_HS_COMPLETED; + } + mtx_unlock_spin(&sc->target_lock); + mpi3mr_dprint(sc, MPI3MR_INFO, "%s :dev removal handshake completed successfully: handle(0x%04x)\n", __func__, drv_cmd->dev_handle); @@ -3605,18 +3613,7 @@ static void mpi3mr_dev_rmhs_send_tm(struct mpi3mr_softc *sc, U16 handle, U8 retrycount = 5; struct mpi3mr_drvr_cmd *drv_cmd = cmdparam; struct delayed_dev_rmhs_node *delayed_dev_rmhs = NULL; - struct mpi3mr_target *tgtdev = NULL; - mtx_lock_spin(&sc->target_lock); - TAILQ_FOREACH(tgtdev, &sc->cam_sc->tgt_list, tgt_next) { - if ((tgtdev->dev_handle == handle) && - (iou_rc == MPI3_CTRL_OP_REMOVE_DEVICE)) { - tgtdev->state = MPI3MR_DEV_REMOVE_HS_STARTED; - break; - } - } - mtx_unlock_spin(&sc->target_lock); - if (drv_cmd) goto issue_cmd; do { diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index ca1f42a4a7e5..7dc1b3ba3fc2 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -447,8 +447,7 @@ enum mpi3mr_cmd_state { enum mpi3mr_target_state { MPI3MR_DEV_CREATED = 1, - MPI3MR_DEV_REMOVE_HS_STARTED = 2, - MPI3MR_DEV_DELETED = 3, + MPI3MR_DEV_REMOVE_HS_COMPLETED = 2, }; struct mpi3mr_cmd { diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index ed47d69832ba..6d9869e74235 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1823,6 +1823,17 @@ int mpi3mr_remove_device_from_os(struct mpi3mr_softc *sc, U16 handle) target->flags |= MPI3MRSAS_TARGET_INREMOVAL; + if (mpi3mr_atomic_read(&target->outstanding)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "there are [%2d] outstanding IOs on target: %d" + "Poll reply queue once\n", mpi3mr_atomic_read(&target->outstanding), + target->per_id); + mpi3mr_poll_pend_io_completions(sc); + if (mpi3mr_atomic_read(&target->outstanding)) + mpi3mr_dprint(sc, MPI3MR_ERROR, "[%2d] outstanding IOs present on target: %d" + "despite poll\n", mpi3mr_atomic_read(&target->outstanding), + target->per_id); + } + while (mpi3mr_atomic_read(&target->outstanding) && (i < 30)) { i++; if (!(i % 2)) { @@ -1849,18 +1860,16 @@ out: void mpi3mr_remove_device_from_list(struct mpi3mr_softc *sc, struct mpi3mr_target *target, bool must_delete) { + if ((must_delete == false) && + (target->state != MPI3MR_DEV_REMOVE_HS_COMPLETED)) + return; + mtx_lock_spin(&sc->target_lock); - if ((target->state == MPI3MR_DEV_REMOVE_HS_STARTED) || - (must_delete == true)) { - TAILQ_REMOVE(&sc->cam_sc->tgt_list, target, tgt_next); - target->state = MPI3MR_DEV_DELETED; - } + TAILQ_REMOVE(&sc->cam_sc->tgt_list, target, tgt_next); mtx_unlock_spin(&sc->target_lock); - if (target->state == MPI3MR_DEV_DELETED) { - free(target, M_MPI3MR); - target = NULL; - } + free(target, M_MPI3MR); + target = NULL; return; } From nobody Wed Apr 30 17:21:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW70wpxz5tj1q; Wed, 30 Apr 2025 17:21:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW631Klz3Lvt; Wed, 30 Apr 2025 17:21:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6U4AkcDoPKLm1+YbeH6SFijtnpGr7E4KOb25NNcGFaM=; b=BRXT8MbIS40qaIqOd9b9lX2ezAZYzeE1ktMjflnPVtRXfDCzLdNytDlNncit1lH+PRz/7q aXqv7DKOBaMGim65kRJCSViV5vZfbj9bAI4ixUVYK56ak+VBR6nPBg9PMNzant6dnyJnJM lCCyUNSijGJbdpexAtcN0wK67rYqcnv7u/52cfjXoP4WpBfmlqPVDAzasO2Ed6C5g23RrQ STjsoLS0MHAsYT5Gm1QfA8/KTxyQkTdP17tFEFXUST0JyXWIApTEGTeEr93nBfq3INoNOC VijoQeEVWn0Hl20IqitM5RPJwjTqTadZzjy+49GpM6Z/Qld7g23+mya1DWVsqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033698; a=rsa-sha256; cv=none; b=b2rxJq3f/s+i95Wv+sfUEDw6l3bBS6+ZSKMXR+V/RI444co/iI3wZDn21rgrXUVDneWc3A pOerdnlFCwdrvonFJVG/W19U67W3GH39sUzdrVMRjuIdv1/AthCY5JOq8XrLuITQ4AN/2F /8yG/HjInSOBrx2hWp7zdmTC1HSCqk36b8Y0V9+t9L6jy8lEOCVVjqEfhSvaJkvQb8FK81 3x5FN3S2e6y/oXSzHhv5Yr33PAZpd9psXDpsiNG6LA2bPx6YLMTPzrc1ox/tHi0iRTLfh0 ZqJfiPRzNN46pKDms6H6XxXt8Rxb4HDVvgrp6hpWrvX8dYuqdvnAUq2WumsLjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6U4AkcDoPKLm1+YbeH6SFijtnpGr7E4KOb25NNcGFaM=; b=CO25ugZKVUzGuTTXbEK+6yNOQptRC3CnKjkv0VWYWy59pKn1u+vQl4rZRM7AIvVIVXsRlf YuJHaAY+ZoUP8Um9GWYEocjXTFfOWv2xcjhLhqdNSS3v3KlmH5U5PBGJ70l+EFaXueFaYr VIHb7V0a3WGjaJt4mNm3q6vo4tG56S+NsB7VJvOrULv36B03ZaVnX+v88XmVuOj9NtIyhv 1kEaezl7mzPF28GRMJJqLZUau/GgYvJ5xHP7h640OTujhhKZhzhJDjKV54jLY/IjHdUD1s yPjJWJJIpF5P5CK81nMqTdi/1fyPUr7jS4+oJjwJYG7sB0iWiV1GfgA/aeo0mg== 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 4ZnkW61x4YzRG; Wed, 30 Apr 2025 17:21:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLcp5093574; Wed, 30 Apr 2025 17:21:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLcIP093571; Wed, 30 Apr 2025 17:21:38 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:38 GMT Message-Id: <202504301721.53UHLcIP093571@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: d22c5b277ae4 - stable/14 - mpi3mr: Decrement per controller and per target counter post reset List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d22c5b277ae412c5bb21d5badbdf4e2901d6a189 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=d22c5b277ae412c5bb21d5badbdf4e2901d6a189 commit d22c5b277ae412c5bb21d5badbdf4e2901d6a189 Author: Chandrakanth patil AuthorDate: 2024-03-14 18:12:49 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: Decrement per controller and per target counter post reset Post controller reset, If any device removal events arrive, and if there are any outstanding IOs then the driver will unnecessarily wait in the loop for 30 seconds before removing the device from the OS. reset target outstanding IO counter and controller outstanding IO counter and remove the redundant wait loop. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44424 (cherry picked from commit 571f1d0638fa6b3a08f84118a33e53f941f0820c) --- sys/dev/mpi3mr/mpi3mr.c | 2 ++ sys/dev/mpi3mr/mpi3mr_cam.c | 12 ------------ 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index a5f4215f29ca..ab17ea4e2692 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -5693,6 +5693,8 @@ static void mpi3mr_flush_io(struct mpi3mr_softc *sc) if (cmd->callout_owner) { ccb = (union ccb *)(cmd->ccb); ccb->ccb_h.status = CAM_SCSI_BUS_RESET; + mpi3mr_atomic_dec(&sc->fw_outstanding); + mpi3mr_atomic_dec(&cmd->targ->outstanding); mpi3mr_cmd_done(sc, cmd); } else { cmd->ccb = NULL; diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index 6d9869e74235..c4e08b399712 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1803,7 +1803,6 @@ out: int mpi3mr_remove_device_from_os(struct mpi3mr_softc *sc, U16 handle) { - U32 i = 0; int retval = 0; struct mpi3mr_target *target; @@ -1834,17 +1833,6 @@ int mpi3mr_remove_device_from_os(struct mpi3mr_softc *sc, U16 handle) target->per_id); } - while (mpi3mr_atomic_read(&target->outstanding) && (i < 30)) { - i++; - if (!(i % 2)) { - mpi3mr_dprint(sc, MPI3MR_INFO, - "[%2d]waiting for " - "waiting for outstanding commands to complete on target: %d\n", - i, target->per_id); - } - DELAY(1000 * 1000); - } - if (target->exposed_to_os && !sc->reset_in_progress) { mpi3mr_rescan_target(sc, target); mpi3mr_dprint(sc, MPI3MR_INFO, From nobody Wed Apr 30 17:21:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW85WZxz5tj1y; Wed, 30 Apr 2025 17:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW76L5lz3Ly8; Wed, 30 Apr 2025 17:21:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033700; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QXO4fUslb7ORiwOYgdUveYHsVKxc9LZF8u8Ggl1sGgg=; b=sRv3ex18qdyybnZDz+BEyOJztj1ligkq8mt0DDYS/bO+DwteqpD/kTjMGaX13AvXcBajkH yT0VwvGYJCOXD+wYx4QWzKrP5psK2OTjP0e2rlY0OF+zgDSuyZQ4his5pphacoSn7r7xlD 9gskpyNZ26kj5TsUWGLW6zMueaMldPA5MocJ8JlphaZDyNCDwNofKExPAD7dY4jM5ENhK1 SwnYMVk8KWERWN0OrnhKGZHBtUDUFbwLRaeP4mw8H91EPzHDb0snbgjIHMmMzb5PgMXWva +4Lh3PAlsBPBe2w9gGXmOL6psFPlAQLLAMCc4n3mIzp0noDz3687KrngttoCmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033700; a=rsa-sha256; cv=none; b=tbqgo+37X7bGLvrpNb9qdLtTlIV1cr0bZZ/cb6kRkwsBgJLPgK7jfShhu8FQfT7VCAq2Ta 5zFSmfXNX+kNaeZdyotqi3xDap1QTCiSS/3tCzuYbvyVrgSWNeh2w/p0iXdv0AOTXfLWKQ 0uoh5Su8uOu1a6BKqkCqS1BS0ooApRGWO9Wdw7r6Wk9kjvBAk9oxStzG8kcRhzX3Bsh/o2 uDiUupF5fHQ6mYVLTNVu++q+x2jHyeHjNKuW4LczpLNhetDKeDhyGrtNZupolmUlfNQemu RvjuT4Cz3yQ4oVACrGhb1OBqok9P7M1fJia37Wp0MfCv57uY3TCApBbKrTXC+g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033700; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QXO4fUslb7ORiwOYgdUveYHsVKxc9LZF8u8Ggl1sGgg=; b=rB39RQuMuEGmr30jYIdd73stnGXTmuvMjH4ET68oVA6MoqFgxPtuxYHZ9ZNIlNmwFCASEs oiwUsTs4gEjhd5MoYnsYaTJC3uvluBfVAUEXu3mLV60TueYi418DM9Obouj22gOwU1eSDD axp9hhIWFq2N1eb0IQQF/H2JQOSfUCCe5FwcUtJBJ3JYaeI2dFtNNcePJ/FrY/79mJc/fd q/OjGaGIaiguKAt0vit0oU/PxgtPCyYwIaWT8ijHlZA6p7jSe+x7RWzR2tSNRV5ZD2b+GU dMFS3VpE2NG6qTZg3nZvnVG9oAPW1VGW3t6hDqjecNBSXOKOLBTG2hOaI9Fe1w== 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 4ZnkW72Rlnzjw; Wed, 30 Apr 2025 17:21:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLdBG093884; Wed, 30 Apr 2025 17:21:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLdXX093866; Wed, 30 Apr 2025 17:21:39 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:39 GMT Message-Id: <202504301721.53UHLdXX093866@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: 897fcbe89391 - stable/14 - mpi3mr: Update consumer index of admin and operational reply queues after every 100 replies List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 897fcbe893912e0e0bdf3116cc1f599e5e8fb210 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=897fcbe893912e0e0bdf3116cc1f599e5e8fb210 commit 897fcbe893912e0e0bdf3116cc1f599e5e8fb210 Author: Chandrakanth patil AuthorDate: 2024-03-14 18:41:07 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: Update consumer index of admin and operational reply queues after every 100 replies Instead of updating the ConsumerIndex of the Admin and Operational ReplyQueues after processing all replies in the queue, it will now be periodically updated after processing every 100 replies. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44425 (cherry picked from commit eb7a4b35de89a0e22f1fb373df33d79135b68dd8) --- sys/dev/mpi3mr/mpi3mr.c | 14 +++++++++++++- sys/dev/mpi3mr/mpi3mr.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index ab17ea4e2692..41981dce0c5f 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -4389,6 +4389,7 @@ static int mpi3mr_complete_admin_cmd(struct mpi3mr_softc *sc) U32 num_adm_reply = 0; U64 reply_dma = 0; Mpi3DefaultReplyDescriptor_t *reply_desc; + U16 threshold_comps = 0; mtx_lock_spin(&sc->admin_reply_lock); if (sc->admin_in_use == false) { @@ -4426,6 +4427,11 @@ static int mpi3mr_complete_admin_cmd(struct mpi3mr_softc *sc) if ((reply_desc->ReplyFlags & MPI3_REPLY_DESCRIPT_FLAGS_PHASE_MASK) != exp_phase) break; + + if (++threshold_comps == MPI3MR_THRESHOLD_REPLY_COUNT) { + mpi3mr_regwrite(sc, MPI3_SYSIF_ADMIN_REPLY_Q_CI_OFFSET, adm_reply_ci); + threshold_comps = 0; + } } while (1); mpi3mr_regwrite(sc, MPI3_SYSIF_ADMIN_REPLY_Q_CI_OFFSET, adm_reply_ci); @@ -4838,7 +4844,7 @@ int mpi3mr_complete_io_cmd(struct mpi3mr_softc *sc, U32 num_op_replies = 0; U64 reply_dma = 0; Mpi3DefaultReplyDescriptor_t *reply_desc; - U16 req_qid = 0; + U16 req_qid = 0, threshold_comps = 0; mtx_lock_spin(&op_reply_q->q_lock); if (op_reply_q->in_use == false) { @@ -4883,6 +4889,12 @@ int mpi3mr_complete_io_cmd(struct mpi3mr_softc *sc, if ((reply_desc->ReplyFlags & MPI3_REPLY_DESCRIPT_FLAGS_PHASE_MASK) != exp_phase) break; + + if (++threshold_comps == MPI3MR_THRESHOLD_REPLY_COUNT) { + mpi3mr_regwrite(sc, MPI3_SYSIF_OPER_REPLY_Q_N_CI_OFFSET(op_reply_q->qid), reply_ci); + threshold_comps = 0; + } + } while (1); diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index 7dc1b3ba3fc2..6838e7fe616a 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -124,6 +124,8 @@ #define MPI3MR_OP_REP_Q_QD 1024 #define MPI3MR_OP_REP_Q_QD_A0 4096 +#define MPI3MR_THRESHOLD_REPLY_COUNT 100 + #define MPI3MR_CHAINSGE_SIZE MPI3MR_4K_PGSZ #define MPI3MR_SGEFLAGS_SYSTEM_SIMPLE_END_OF_LIST \ From nobody Wed Apr 30 17:21:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkW92JxGz5tj3H; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW83gClz3Lw4; Wed, 30 Apr 2025 17:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033700; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yQk/io+FOeWlV5UVwc8MAAQeXzb5eoaBgaTZ4opoIEE=; b=Osy41VsShvs39I3rHAwKpNJR0VDXz4ewg3EzCB9VLwRKppHlIlqpzoXKUpj7yOb3mi/nuB 92UiGibTMB96VJkFXeV5jZBeEGOKEAh1hE86Kn4R81FYhZMM71UCtLICHZtRS70wMjFNVg 3gxlo4rNdsr/GMcqLKkQv9Y0sJ/3KCXZNpKpQTR9vf1hPObNy4jZ7L2GJ6ERXe1rVM2Zdv nox4AyLngfWoE0BYfMOgJk8YApP5X4YGBzY/2Xd4fsvZkHr0DD7HOv69e6V2x+qLSQuItk Qk5/qghZGa3tek6xBWdIAW7Jip9TmGNMKSm18cL0brVxpJvpjVVWp+/2erwZtA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033700; a=rsa-sha256; cv=none; b=xBt/rXCMADIO++hU/Tx7rRtC2WbDdi0d3nhEk9znslVplXhKigwiK4/UC4Wz3p3C+DOT29 ifc1EpvAyTD/WXiOePJREI8LbJEmbXG5S+AaY1m7zGV/1qGT9cDr7rQUtUC3xFSloIii+D Eb2GQEV6ZDhamYp5j8E2c3yijaBME3e3dpq4tsdWKNEj2YxL44pR0KHvhHQLZNfm387RRj jEQnbk6iei0Lanr54NjuHuUBIg0DvW0LVEWvvthOlK3VJQTIcZaQSGHOLPSOPn6jyPq2Dt x7Sjh2cHvgeAR2ja/SHscvCSs/6+cd4/e7CKlvnSbCNTLJMXNPREluGUTLEcgw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033700; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yQk/io+FOeWlV5UVwc8MAAQeXzb5eoaBgaTZ4opoIEE=; b=ITaOYHmi3MCKgWw7sxL2NgI9QRcU//Q0wbgt4+1LxJ5SMNUY0Q5wX4VBi3xr0hupaodtY/ YipBzXcxbREwrUWx5LFB2wuGtUyGLIuH8ivLtrJTonwgWpHuCXQH1c9aD/JKOMhYMGYEol 9A1tcxxyJcxUIzzz1ccCWWGeXxYHPNR6rfeQxJCRjkVZId7K9HIe/rGgMIwKApW6n2Ln1W RymB2kz3xiSlYXssx4V+5DxfdNXf+U9n1GYZXzJRrPzGJJKoy7G/vERs8UKMypwPs5ExUp V5x70L7QkqN46L5yVk9fErLU+rmEQ8+y21lLG68v7k5Ll2rirBcDDP4fOmMVwQ== 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 4ZnkW83GMMzmG; Wed, 30 Apr 2025 17:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLeSj094932; Wed, 30 Apr 2025 17:21:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLebf094929; Wed, 30 Apr 2025 17:21:40 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:40 GMT Message-Id: <202504301721.53UHLebf094929@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: 40089481d099 - stable/14 - mpi3mr: diag fault success beyond F000 fault 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 40089481d099ab2cba79abdbe3a693b6151c49e2 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=40089481d099ab2cba79abdbe3a693b6151c49e2 commit 40089481d099ab2cba79abdbe3a693b6151c49e2 Author: Chandrakanth patil AuthorDate: 2024-03-19 06:47:57 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: diag fault success beyond F000 fault code Accept any fault as successful for diagnostic fault reset, not just the 0xF000 code. print fault information and return. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44426 (cherry picked from commit 4034d7061a112b78d60cdb581c2d71f7cfa9f74e) --- sys/dev/mpi3mr/mpi3mr.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 41981dce0c5f..f90fcff69f85 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1404,14 +1404,10 @@ mpi3mr_soft_reset_success(U32 ioc_status, U32 ioc_config) static inline bool mpi3mr_diagfault_success(struct mpi3mr_softc *sc, U32 ioc_status) { - U32 fault; - if (!(ioc_status & MPI3_SYSIF_IOC_STATUS_FAULT)) return false; - fault = mpi3mr_regread(sc, MPI3_SYSIF_FAULT_OFFSET) & MPI3_SYSIF_FAULT_CODE_MASK; - if (fault == MPI3_SYSIF_FAULT_CODE_DIAG_FAULT_RESET) - return true; - return false; + mpi3mr_print_fault_info(sc); + return true; } /** From nobody Wed Apr 30 17:21:41 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWB2j10z5tj3M; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkW94lVCz3Lyd; Wed, 30 Apr 2025 17:21:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NMSFvKSzlZwZUxRtmM8GV0fggKGwBinMDpKZ1NhOleo=; b=w0Iwgtl3ueMMn6dE7i8qDbElxXyapexaHNKt6r7oALLmEeXpflJM3ceyD8gwaRhfz5u1cv fOaDNg21L0cv62KhcNGdErA6b97IXFUP1MSX750nMl3AIvBxxkD18x5y4zdzCrl8fDrCRm W61oYqyp0/gW+vKomqm6VUqAvwhWUM4SjC+KZQA8Yn0AG7x7povsaTg0DHtJPrfqctlF95 9AIp1yZgldaOZ3ctjAGzLNhHunKfD2qalvHpiNjD9/zyPcn8+4cWrlFxVbFQVFPYumUDJO qzQ5qbNXBS4X9wtwSuHOoN6Qb7WTst/DkRCgL8T8qp+2bp50ADjzjR5+FADhLg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033701; a=rsa-sha256; cv=none; b=dGopIlQej/i//XQYPmWvOkywNCtjelMK1V2aXxqKvF4FX7hitUASv/IVb6u/qpgxI62/p1 bMjEg8pMO/rsY+q+vC4ZlvIw62PmXWIyGiicHfBRnF7vckSBcQlFmWcBL2yGgACgGWXx/o iqXlO3c2TOFcei4OjXeL58l4zSqc1JkSBlZUGQTXvXWFTDirg9BcbtBb+gFFdfZTmOEDyv rlBHWRTaK882VdcyOh625vxjFK1l1ZJj4qF7mRQBG5KcQgCPvHMluqbbYQIGoNv5eK2SUw 5NRdDS5cnwUXydsl0cJh8uaH18/pcKK6O7d1vnScrGFNjXyH0NwLVoz5x6X/SA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NMSFvKSzlZwZUxRtmM8GV0fggKGwBinMDpKZ1NhOleo=; b=nqbaNluiyrAf6g/3i/rdrK+hwtOOag6CRLH298lv3okJdGciTFvVZv7RA3ObTSpFvADrdf rm2eBnCXaC7noLZdkS6gs1X+s+tjNgR7q1Gy7a3ozkI6ZFODjR4gqEOLiyM2W7Lq48qMVK RtASU4h/uKGd4h2gOy3PSEegKtrgsPR9imWPxItupfWUGeD5pmdc3bn9X/NYO4JsKUJCaj G3Yf9+EanjO76F0i/6Qz+aBqsL7Y5wxpknCr8OM8a20mehfZuTc2TXLn2RjcZzSx5uo2SJ jr5kO5o/RDaEGblBwa7HlVQy8N0O5nGFqVgbobmZIzwq2/JWaiBC2aKuSZluNQ== 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 4ZnkW94C18z9W; Wed, 30 Apr 2025 17:21:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLfTw094974; Wed, 30 Apr 2025 17:21:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLfAD094971; Wed, 30 Apr 2025 17:21:41 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:41 GMT Message-Id: <202504301721.53UHLfAD094971@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: 14283d89e4a9 - stable/14 - mpi3mr: Adding FreeBSD OS Type to Fault/Reset Reason 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 14283d89e4a99237384df7227929a3c393216931 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=14283d89e4a99237384df7227929a3c393216931 commit 14283d89e4a99237384df7227929a3c393216931 Author: Chandrakanth patil AuthorDate: 2024-03-19 06:56:44 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: Adding FreeBSD OS Type to Fault/Reset Reason Code The driver is modified to add FreeBSD OS type in the upper nibble of the fault/reset reason code for appropriate qualification of the reason code. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44427 (cherry picked from commit 3012fa8faef262c615672fc90319c777b4e3dffc) --- sys/dev/mpi3mr/mpi3mr.c | 29 +++++++++++++++++++---------- sys/dev/mpi3mr/mpi3mr.h | 7 +++++-- sys/dev/mpi3mr/mpi3mr_cam.c | 2 +- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index f90fcff69f85..f88e467510a0 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -84,7 +84,7 @@ static void mpi3mr_port_enable_complete(struct mpi3mr_softc *sc, struct mpi3mr_drvr_cmd *drvrcmd); static void mpi3mr_flush_io(struct mpi3mr_softc *sc); static int mpi3mr_issue_reset(struct mpi3mr_softc *sc, U16 reset_type, - U32 reset_reason); + U16 reset_reason); static void mpi3mr_dev_rmhs_send_tm(struct mpi3mr_softc *sc, U16 handle, struct mpi3mr_drvr_cmd *cmdparam, U8 iou_rc); static void mpi3mr_dev_rmhs_complete_iou(struct mpi3mr_softc *sc, @@ -187,7 +187,7 @@ poll_for_command_completion(struct mpi3mr_softc *sc, * Return: None. */ static void -mpi3mr_trigger_snapdump(struct mpi3mr_softc *sc, U32 reason_code) +mpi3mr_trigger_snapdump(struct mpi3mr_softc *sc, U16 reason_code) { U32 host_diagnostic, timeout = MPI3_SYSIF_DIAG_SAVE_TIMEOUT * 10; @@ -222,7 +222,7 @@ mpi3mr_trigger_snapdump(struct mpi3mr_softc *sc, U32 reason_code) * * Return: None. */ -static void mpi3mr_check_rh_fault_ioc(struct mpi3mr_softc *sc, U32 reason_code) +static void mpi3mr_check_rh_fault_ioc(struct mpi3mr_softc *sc, U16 reason_code) { U32 ioc_status; @@ -1168,9 +1168,9 @@ static inline void mpi3mr_clear_resethistory(struct mpi3mr_softc *sc) * * Return: 0 on success, -1 on failure. */ -static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U32 reset_reason) +static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) { - U32 ioc_config, timeout, ioc_status; + U32 ioc_config, timeout, ioc_status, scratch_pad0; int retval = -1; mpi3mr_dprint(sc, MPI3MR_INFO, "Issuing Message Unit Reset(MUR)\n"); @@ -1179,7 +1179,12 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U32 reset_reason) return retval; } mpi3mr_clear_resethistory(sc); - mpi3mr_regwrite(sc, MPI3_SYSIF_SCRATCHPAD0_OFFSET, reset_reason); + + scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << + MPI3MR_RESET_REASON_OSTYPE_SHIFT) | + (sc->facts.ioc_num << + MPI3MR_RESET_REASON_IOCNUM_SHIFT) | reset_reason); + mpi3mr_regwrite(sc, MPI3_SYSIF_SCRATCHPAD0_OFFSET, scratch_pad0); ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); ioc_config &= ~MPI3_SYSIF_IOC_CONFIG_ENABLE_IOC; mpi3mr_regwrite(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET, ioc_config); @@ -5762,11 +5767,11 @@ static inline void mpi3mr_set_diagsave(struct mpi3mr_softc *sc) * Return: 0 on success, non-zero on failure. */ static int mpi3mr_issue_reset(struct mpi3mr_softc *sc, U16 reset_type, - U32 reset_reason) + U16 reset_reason) { int retval = -1; U8 unlock_retry_count = 0; - U32 host_diagnostic, ioc_status, ioc_config; + U32 host_diagnostic, ioc_status, ioc_config, scratch_pad0; U32 timeout = MPI3MR_RESET_ACK_TIMEOUT * 10; if ((reset_type != MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET) && @@ -5820,7 +5825,11 @@ static int mpi3mr_issue_reset(struct mpi3mr_softc *sc, U16 reset_type, unlock_retry_count, host_diagnostic); } while (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_DIAG_WRITE_ENABLE)); - mpi3mr_regwrite(sc, MPI3_SYSIF_SCRATCHPAD0_OFFSET, reset_reason); + scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << + MPI3MR_RESET_REASON_OSTYPE_SHIFT) | + (sc->facts.ioc_num << + MPI3MR_RESET_REASON_IOCNUM_SHIFT) | reset_reason); + mpi3mr_regwrite(sc, MPI3_SYSIF_SCRATCHPAD0_OFFSET, scratch_pad0); mpi3mr_regwrite(sc, MPI3_SYSIF_HOST_DIAG_OFFSET, host_diagnostic | reset_type); if (reset_type == MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET) { @@ -5899,7 +5908,7 @@ inline void mpi3mr_cleanup_event_taskq(struct mpi3mr_softc *sc) * Return: 0 on success, non-zero on failure. */ int mpi3mr_soft_reset_handler(struct mpi3mr_softc *sc, - U32 reset_reason, bool snapdump) + U16 reset_reason, bool snapdump) { int retval = 0, i = 0; enum mpi3mr_iocstate ioc_state; diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index 6838e7fe616a..59d4c64be3cb 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -142,6 +142,9 @@ #define MAX_MGMT_ADAPTERS 8 #define MPI3MR_WAIT_BEFORE_CTRL_RESET 5 +#define MPI3MR_RESET_REASON_OSTYPE_FREEBSD 0x4 +#define MPI3MR_RESET_REASON_OSTYPE_SHIFT 28 +#define MPI3MR_RESET_REASON_IOCNUM_SHIFT 20 struct mpi3mr_mgmt_info { uint16_t count; @@ -962,7 +965,7 @@ void mpi3mr_cleanup_event_taskq(struct mpi3mr_softc *sc); void mpi3mr_hexdump(void *buf, int sz, int format); int mpi3mr_soft_reset_handler(struct mpi3mr_softc *sc, - U32 reset_reason, bool snapdump); + U16 reset_reason, bool snapdump); void mpi3mrsas_release_simq_reinit(struct mpi3mr_cam_softc *cam_sc); void @@ -984,6 +987,6 @@ void mpi3mr_set_io_divert_for_all_vd_in_tg(struct mpi3mr_softc *sc, enum mpi3mr_iocstate mpi3mr_get_iocstate(struct mpi3mr_softc *sc); void mpi3mr_poll_pend_io_completions(struct mpi3mr_softc *sc); void int_to_lun(unsigned int lun, U8 *req_lun); -void trigger_reset_from_watchdog(struct mpi3mr_softc *sc, U8 reset_type, U32 reset_reason); +void trigger_reset_from_watchdog(struct mpi3mr_softc *sc, U8 reset_type, U16 reset_reason); void mpi3mr_alloc_ioctl_dma_memory(struct mpi3mr_softc *sc); #endif /*MPI3MR_H_INCLUDED*/ diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index c4e08b399712..7a29ec592339 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -455,7 +455,7 @@ void mpi3mr_poll_pend_io_completions(struct mpi3mr_softc *sc) } void -trigger_reset_from_watchdog(struct mpi3mr_softc *sc, U8 reset_type, U32 reset_reason) +trigger_reset_from_watchdog(struct mpi3mr_softc *sc, U8 reset_type, U16 reset_reason) { if (sc->reset_in_progress) { mpi3mr_dprint(sc, MPI3MR_INFO, "Another reset is in progress, no need to trigger the reset\n"); From nobody Wed Apr 30 17:21:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWC6JsVz5thsh; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWB5SJJz3MKQ; Wed, 30 Apr 2025 17:21:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yjcf+tL0sCZF06wWl7wgCbcwfyu8uUpT0P66QafLrHY=; b=kie57juA4qYNTMs550ZCRjBKuSaMNBbGopsy7ay+41xA234VQvcV2cKRuBDPMHk5p3n1E4 Ur6fEj3nuyFaQdeb3UL1RpXJkAXNd9ViMdUCqBTJzCjhUI7aTApK8nFTGgDbraVsBgA48W ArGnzl3WLQZPhr1J6AdBaJN/hTyi8aZ8iaNXPP4W9dbxyeTt+RQKZo/8YX2dCbvqqgv+eZ zBMrnqDfzafOzjeXEhhaxmJa6N8fGNPVbIdwUwBJqCJcz09IXHDJRYpD/kO7a7bsR9NLZu SaWFvJ8x6NFDBfG6p4Kq0awVIAH7ec6ndYbcpBgIM9pPzvTIVo8bB1JLu4/nFg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033702; a=rsa-sha256; cv=none; b=KFauriKMLVUiX/yTtxo/DiUm9m5vfVrpicDSmLSwmqqM1CuKpJpb15TepSsn41+yqSu17K p5r2xwdf6tUrFu7u69VeuBL8BCHjEEnanecE7TcmrRYF8+2bsC3NzIIL6arbtkC0KfKaCr 1UhMex/dY95pn3bPRT313phpdaw3nCNW+9LL5/1U5we9h+WiuW3+lPHJrHKImdZ1UaWC4t 4HMnXaxDvuMdDZesIF59yOzVDqspkwxYecSe3gTbM7HfY4JWDEJ24HJX4SsnaPSCTXor/y FP+8oXPMSDlef8G9AFUll/gdvIfcolZI2M8EkZK63CCMsyC6huN1yiy4m6ol2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yjcf+tL0sCZF06wWl7wgCbcwfyu8uUpT0P66QafLrHY=; b=mospw8zfWV5EQS8WdOGQnIt/PF9e9wmEbKCQs3qL95imGnnPhV2v8WqMyoSeKu8gm76Egl wey6Txcfp1iAD7R8B/7lwFcII7fu2g5eZ+948dEQ/Y+yRA7rPkUYB6AIgBgI7pJKbdI1Xi IRm2FlkN+PydHFULTN9UQWo+/otUSk0V65o7hi9CjwhuGVn2NPxBN0NW6q2ayLvJsGGs4O RkU5lHRp+N17N/oGeupVWm62tHmxhmOVzJ2XPL5g7SdhfQ41A0wex6Oz6cCxg506hJxcOx vVUizvJYZyi5ndFXzgIX9P2RbDXONVdWFltEToPhL4/n66wYbFLMEs99oZ4M+g== 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 4ZnkWB51J7z9X; Wed, 30 Apr 2025 17:21:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLgQV095007; Wed, 30 Apr 2025 17:21:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLgN7095004; Wed, 30 Apr 2025 17:21:42 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:42 GMT Message-Id: <202504301721.53UHLgN7095004@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: 3635f18ee639 - stable/14 - mpi3mr: mpi headers update to latest List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 3635f18ee63946ed3816840e9afa13b9ab311e2f Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3635f18ee63946ed3816840e9afa13b9ab311e2f commit 3635f18ee63946ed3816840e9afa13b9ab311e2f Author: Chandrakanth patil AuthorDate: 2024-03-19 07:23:07 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:51 +0000 mpi3mr: mpi headers update to latest Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44428 (cherry picked from commit baabb919345f05e9892c4048a1521e5da1403060) --- sys/dev/mpi3mr/mpi/mpi30_api.h | 4 +- sys/dev/mpi3mr/mpi/mpi30_cnfg.h | 170 +++++++++++++++++++++++++++-------- sys/dev/mpi3mr/mpi/mpi30_image.h | 49 +++++----- sys/dev/mpi3mr/mpi/mpi30_init.h | 11 +-- sys/dev/mpi3mr/mpi/mpi30_ioc.h | 80 +++++++++-------- sys/dev/mpi3mr/mpi/mpi30_pci.h | 5 +- sys/dev/mpi3mr/mpi/mpi30_raid.h | 5 +- sys/dev/mpi3mr/mpi/mpi30_sas.h | 5 +- sys/dev/mpi3mr/mpi/mpi30_targ.h | 10 ++- sys/dev/mpi3mr/mpi/mpi30_tool.h | 8 +- sys/dev/mpi3mr/mpi/mpi30_transport.h | 29 +++--- sys/dev/mpi3mr/mpi/mpi30_type.h | 5 +- sys/dev/mpi3mr/mpi3mr.c | 26 +++--- sys/dev/mpi3mr/mpi3mr_cam.c | 4 +- 14 files changed, 251 insertions(+), 160 deletions(-) diff --git a/sys/dev/mpi3mr/mpi/mpi30_api.h b/sys/dev/mpi3mr/mpi/mpi30_api.h index aa7b54ec470e..0c070672a16b 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_api.h +++ b/sys/dev/mpi3mr/mpi/mpi30_api.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without diff --git a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h index d1ae2ebfa372..410ed0471f78 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h +++ b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -185,7 +185,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER * Common definitions used by Configuration Pages * ****************************************************************************/ -/**** Defines for Negotiated Link Rates ****/ +/**** Defines for NegotiatedLinkRates ****/ #define MPI3_SAS_NEG_LINK_RATE_LOGICAL_MASK (0xF0) #define MPI3_SAS_NEG_LINK_RATE_LOGICAL_SHIFT (4) #define MPI3_SAS_NEG_LINK_RATE_PHYSICAL_MASK (0x0F) @@ -486,6 +486,7 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_GENERIC (0x00) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_CABLE_MGMT (0x10) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_ACTIVE_CABLE_OVERCURRENT (0x20) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_ACK_REQUIRED (0x02) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_MASK (0x01) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_EDGE (0x00) @@ -1073,7 +1074,7 @@ typedef struct _MPI3_MAN_PAGE12 #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_PUSH_PULL (0x0000) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_OPEN_DRAIN (0x0001) -/**** Defines for the SioClkFreq field ****/ +/**** Defines for the SClockFreq field ****/ #define MPI3_MAN12_SIO_CLK_FREQ_MIN (32) /* 32 Hz min SIO Clk Freq */ #define MPI3_MAN12_SIO_CLK_FREQ_MAX (100000) /* 100 KHz max SIO Clk Freq */ @@ -1306,7 +1307,7 @@ typedef struct _MPI3_MAN_PAGE20 #define MPI3_MAN20_ALLOWEDPERSON_EHBA_ALLOWED (0x01) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_NOT_ALLOWED (0x00) -/**** Defines for the NonpremuimFeatures field ****/ +/**** Defines for the NonpremiumFeatures field ****/ #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_MASK (0x01) #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_ENABLED (0x00) #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_DISABLED (0x01) @@ -1338,6 +1339,23 @@ typedef struct _MPI3_MAN_PAGE21 #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_DEFAULT (0x00000000) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_OEM_SPECIFIC (0x00000001) +/***************************************************************************** + * Manufacturing Page 22 * + ****************************************************************************/ + +typedef struct _MPI3_MAN_PAGE22 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U32 Reserved08; /* 0x08 */ + U16 NumEUI64; /* 0x0C */ + U16 Reserved0E; /* 0x0E */ + U64 BaseEUI64; /* 0x10 */ +} MPI3_MAN_PAGE22, MPI3_POINTER PTR_MPI3_MAN_PAGE22, + Mpi3ManPage22_t, MPI3_POINTER pMpi3ManPage22_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_MAN22_PAGEVERSION (0x00) + /***************************************************************************** * Manufacturing Pages 32-63 (ProductSpecific) * ****************************************************************************/ @@ -1434,13 +1452,21 @@ typedef struct _MPI3_IO_UNIT_PAGE2 * IO Unit Page 3 * ****************************************************************************/ +typedef enum _MPI3_IOUNIT3_THRESHOLD +{ + MPI3_IOUNIT3_THRESHOLD_WARNING = 0, + MPI3_IOUNIT3_THRESHOLD_CRITICAL = 1, + MPI3_IOUNIT3_THRESHOLD_FATAL = 2, + MPI3_IOUNIT3_THRESHOLD_LOW = 3, + MPI3_IOUNIT3_NUM_THRESHOLDS +} MPI3_IOUNIT3_THRESHOLD; + typedef struct _MPI3_IO_UNIT3_SENSOR { U16 Flags; /* 0x00 */ U8 ThresholdMargin; /* 0x02 */ U8 Reserved03; /* 0x03 */ - U16 Threshold[3]; /* 0x04 */ - U16 Reserved0A; /* 0x0A */ + U16 Threshold[MPI3_IOUNIT3_NUM_THRESHOLDS]; /* 0x04 */ U32 Reserved0C; /* 0x0C */ U32 Reserved10; /* 0x10 */ U32 Reserved14; /* 0x14 */ @@ -1448,6 +1474,7 @@ typedef struct _MPI3_IO_UNIT3_SENSOR Mpi3IOUnit3Sensor_t, MPI3_POINTER pMpi3IOUnit3Sensor_t; /**** Defines for the Flags field ****/ +#define MPI3_IOUNIT3_SENSOR_FLAGS_LOW_THRESHOLD_VALID (0x0020) #define MPI3_IOUNIT3_SENSOR_FLAGS_FATAL_EVENT_ENABLED (0x0010) #define MPI3_IOUNIT3_SENSOR_FLAGS_FATAL_ACTION_ENABLED (0x0008) #define MPI3_IOUNIT3_SENSOR_FLAGS_CRITICAL_EVENT_ENABLED (0x0004) @@ -1591,7 +1618,7 @@ typedef struct _MPI3_IO_UNIT_PAGE5 #define MPI3_IOUNIT5_FLAGS_POWER_CAPABLE_SPINUP (0x02) #define MPI3_IOUNIT5_FLAGS_AUTO_PORT_ENABLE (0x01) -/**** Defines for the PHY field ****/ +/**** Defines for the Phy field ****/ #define MPI3_IOUNIT5_PHY_SPINUP_GROUP_MASK (0x03) /***************************************************************************** @@ -1621,11 +1648,33 @@ typedef struct _MPI3_IO_UNIT_PAGE6 #define MPI3_IOUNIT8_DIGEST_MAX (1) #endif /* MPI3_IOUNIT8_DIGEST_MAX */ -typedef union _MPI3_IOUNIT8_DIGEST +typedef union _MPI3_IOUNIT8_RAW_DIGEST { U32 Dword[16]; U16 Word[32]; U8 Byte[64]; +} MPI3_IOUNIT8_RAW_DIGEST, MPI3_POINTER PTR_MPI3_IOUNIT8_RAW_DIGEST, + Mpi3IOUnit8RawDigest_t, MPI3_POINTER pMpi3IOUnit8RawDigest_t; + +typedef struct _MPI3_IOUNIT8_METADATA_DIGEST +{ + U8 SlotStatus; /* 0x00 */ + U8 Reserved01[3]; /* 0x01 */ + U32 Reserved04[3]; /* 0x04 */ + MPI3_IOUNIT8_RAW_DIGEST DigestData; /* 0x10 */ +} MPI3_IOUNIT8_METADATA_DIGEST, MPI3_POINTER PTR_MPI3_IOUNIT8_METADATA_DIGEST, + Mpi3IOUnit8MetadataDigest_t, MPI3_POINTER pMpi3IOUnit8MetadataDigest_t; + +/**** Defines for the SlotStatus field ****/ +#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_UNUSED (0x00) +#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_UPDATE_PENDING (0x01) +#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_VALID (0x03) +#define MPI3_IOUNIT8_METADATA_DIGEST_SLOTSTATUS_INVALID (0x07) + +typedef union _MPI3_IOUNIT8_DIGEST +{ + MPI3_IOUNIT8_RAW_DIGEST RawDigest[MPI3_IOUNIT8_DIGEST_MAX]; + MPI3_IOUNIT8_METADATA_DIGEST MetadataDigest[MPI3_IOUNIT8_DIGEST_MAX]; } MPI3_IOUNIT8_DIGEST, MPI3_POINTER PTR_MPI3_IOUNIT8_DIGEST, Mpi3IOUnit8Digest_t, MPI3_POINTER pMpi3IOUnit8Digest_t; @@ -1633,8 +1682,9 @@ typedef struct _MPI3_IO_UNIT_PAGE8 { MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ U8 SBMode; /* 0x08 */ - U8 SbState; /* 0x09 */ - U16 Reserved0A; /* 0x0A */ + U8 SBState; /* 0x09 */ + U8 Flags; /* 0x0A */ + U8 Reserved0A; /* 0x0B */ U8 NumSlots; /* 0x0C */ U8 SlotsAvailable; /* 0x0D */ U8 CurrentKeyEncryptionAlgo; /* 0x0E */ @@ -1642,22 +1692,27 @@ typedef struct _MPI3_IO_UNIT_PAGE8 MPI3_VERSION_UNION CurrentSvn; /* 0x10 */ U32 Reserved14; /* 0x14 */ U32 CurrentKey[128]; /* 0x18 */ - MPI3_IOUNIT8_DIGEST Digest[MPI3_IOUNIT8_DIGEST_MAX]; /* 0x218 */ /* variable length */ + MPI3_IOUNIT8_DIGEST Digest; /* 0x218 */ /* variable length */ } MPI3_IO_UNIT_PAGE8, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE8, Mpi3IOUnitPage8_t, MPI3_POINTER pMpi3IOUnitPage8_t; /**** Defines for the PageVersion field ****/ -#define MPI3_IOUNIT8_PAGEVERSION (0x00) +#define MPI3_IOUNIT8_PAGEVERSION (0x00) /**** Defines for the SBMode field ****/ -#define MPI3_IOUNIT8_SBMODE_SECURE_DEBUG (0x04) -#define MPI3_IOUNIT8_SBMODE_HARD_SECURE (0x02) -#define MPI3_IOUNIT8_SBMODE_CONFIG_SECURE (0x01) +#define MPI3_IOUNIT8_SBMODE_SECURE_DEBUG (0x04) +#define MPI3_IOUNIT8_SBMODE_HARD_SECURE (0x02) +#define MPI3_IOUNIT8_SBMODE_CONFIG_SECURE (0x01) /**** Defines for the SBState field ****/ -#define MPI3_IOUNIT8_SBSTATE_SVN_UPDATE_PENDING (0x04) -#define MPI3_IOUNIT8_SBSTATE_KEY_UPDATE_PENDING (0x02) -#define MPI3_IOUNIT8_SBSTATE_SECURE_BOOT_ENABLED (0x01) +#define MPI3_IOUNIT8_SBSTATE_SVN_UPDATE_PENDING (0x04) +#define MPI3_IOUNIT8_SBSTATE_KEY_UPDATE_PENDING (0x02) +#define MPI3_IOUNIT8_SBSTATE_SECURE_BOOT_ENABLED (0x01) + +/**** Defines for the Flags field ****/ +#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_MASK (0x07) +#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_RAW (0x00) +#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_DIGEST_WITH_METADATA (0x01) /***************************************************************************** * IO Unit Page 9 * @@ -1908,6 +1963,38 @@ typedef struct _MPI3_IO_UNIT_PAGE15 /**** Defines for the NumPowerBudgetData field ****/ #define MPI3_IOUNIT15_NUMPOWERBUDGETDATA_POWER_BUDGETING_DISABLED (0x00) +/***************************************************************************** + * IO Unit Page 16 * + ****************************************************************************/ + +#ifndef MPI3_IOUNIT16_ERROR_MAX +#define MPI3_IOUNIT16_ERROR_MAX (1) +#endif /* MPI3_IOUNIT16_ERROR_MAX */ + +typedef struct _MPI3_IOUNIT16_ERROR +{ + U32 Offset; /* 0x00 */ + U32 Reserved04; /* 0x04 */ + U64 Count; /* 0x08 */ + U64 Timestamp; /* 0x10 */ +} MPI3_IOUNIT16_ERROR, MPI3_POINTER PTR_MPI3_IOUNIT16_ERROR, + Mpi3IOUnit16Error_t, MPI3_POINTER pMpi3IOUnit16Error_t; + +typedef struct _MPI3_IO_UNIT_PAGE16 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U64 TotalErrorCount; /* 0x08 */ + U32 Reserved10[3]; /* 0x10 */ + U8 NumErrors; /* 0x1C */ + U8 MaxErrorsTracked; /* 0x1D */ + U16 Reserved1E; /* 0x1E */ + MPI3_IOUNIT16_ERROR Error[MPI3_IOUNIT16_ERROR_MAX]; /* 0x20 */ /* variable length */ +} MPI3_IO_UNIT_PAGE16, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE16, + Mpi3IOUnitPage16_t, MPI3_POINTER pMpi3IOUnitPage16_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT16_PAGEVERSION (0x00) + /***************************************************************************** * IOC Configuration Pages * ****************************************************************************/ @@ -1973,7 +2060,8 @@ typedef struct _MPI3_IOC_PAGE2 * Driver Configuration Pages * ****************************************************************************/ -/**** Defines for the Flags field ****/ +/**** Defines for the Flags field in Driver Pages 10, 20, and 30 ****/ +/**** NOT used in Driver Page 1 Flags field ****/ #define MPI3_DRIVER_FLAGS_ADMINRAIDPD_BLOCKED (0x0010) #define MPI3_DRIVER_FLAGS_OOBRAIDPD_BLOCKED (0x0008) #define MPI3_DRIVER_FLAGS_OOBRAIDVD_BLOCKED (0x0004) @@ -2006,7 +2094,7 @@ typedef struct _MPI3_ALLOWED_CMD_NVME } MPI3_ALLOWED_CMD_NVME, MPI3_POINTER PTR_MPI3_ALLOWED_CMD_NVME, Mpi3AllowedCmdNvme_t, MPI3_POINTER pMpi3AllowedCmdNvme_t; -/**** Defines for the CommandFlags field ****/ +/**** Defines for the NVMeCmdFlags field ****/ #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_MASK (0x80) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_IO (0x00) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_ADMIN (0x80) @@ -2057,6 +2145,8 @@ typedef struct _MPI3_DRIVER_PAGE0 #define MPI3_DRIVER0_PAGEVERSION (0x00) /**** Defines for the BSDOptions field ****/ +#define MPI3_DRIVER0_BSDOPTS_DEVICEEXPOSURE_DISABLE (0x00000020) +#define MPI3_DRIVER0_BSDOPTS_WRITECACHE_DISABLE (0x00000010) #define MPI3_DRIVER0_BSDOPTS_HEADLESS_MODE_ENABLE (0x00000008) #define MPI3_DRIVER0_BSDOPTS_DIS_HII_CONFIG_UTIL (0x00000004) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_MASK (0x00000003) @@ -2263,14 +2353,6 @@ typedef union _MPI3_SECURITY_NONCE } MPI3_SECURITY_NONCE, MPI3_POINTER PTR_MPI3_SECURITY_NONCE, Mpi3SecurityNonce_t, MPI3_POINTER pMpi3SecurityNonce_t; -typedef union _MPI3_SECURITY_ROOT_DIGEST -{ - U32 Dword[16]; - U16 Word[32]; - U8 Byte[64]; -} MPI3_SECURITY_ROOT_DIGEST, MPI3_POINTER PTR_MPI3_SECURITY_ROOT_DIGEST, - Mpi3SecurityRootDigest_t, MPI3_POINTER pMpi3SecurityRootDigest_t; - /***************************************************************************** * Security Page 0 * ****************************************************************************/ @@ -2382,17 +2464,25 @@ typedef struct _MPI3_SECURITY_PAGE1 #define MPI3_SECURITY2_TRUSTED_ROOT_MAX 1 #endif /* MPI3_SECURITY2_TRUSTED_ROOT_MAX */ +#ifndef MPI3_SECURITY2_ROOT_LEN +#define MPI3_SECURITY2_ROOT_LEN 4 +#endif /* MPI3_SECURITY2_ROOT_LEN */ + typedef struct _MPI3_SECURITY2_TRUSTED_ROOT { U8 Level; /* 0x00 */ U8 HashAlgorithm; /* 0x01 */ U16 TrustedRootFlags; /* 0x02 */ U32 Reserved04[3]; /* 0x04 */ - MPI3_SECURITY_ROOT_DIGEST RootDigest; /* 0x10 */ + U8 Root[MPI3_SECURITY2_ROOT_LEN]; /* 0x10 */ /* variable length */ } MPI3_SECURITY2_TRUSTED_ROOT, MPI3_POINTER PTR_MPI3_SECURITY2_TRUSTED_ROOT, Mpi3Security2TrustedRoot_t, MPI3_POINTER pMpi3Security2TrustedRoot_t; /**** Defines for the TrustedRootFlags field ****/ +#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_MASK (0xF000) +#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_SHIFT (12) +#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_DIGEST (0x0000) +#define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_ROOTFORM_DERCERT (0x1000) #define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_HASHALGOSOURCE_MASK (0x0006) #define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_HASHALGOSOURCE_SHIFT (1) #define MPI3_SECURITY2_TRUSTEDROOT_TRUSTEDROOTFLAGS_HASHALGOSOURCE_HA_FIELD (0x0000) @@ -2407,7 +2497,8 @@ typedef struct _MPI3_SECURITY_PAGE2 MPI3_SECURITY_NONCE Nonce; /* 0x50 */ U32 Reserved90[3]; /* 0x90 */ U8 NumRoots; /* 0x9C */ - U8 Reserved9D[3]; /* 0x9D */ + U8 Reserved9D; /* 0x9D */ + U16 RootElementSize; /* 0x9E */ MPI3_SECURITY2_TRUSTED_ROOT TrustedRoot[MPI3_SECURITY2_TRUSTED_ROOT_MAX]; /* 0xA0 */ /* variable length */ } MPI3_SECURITY_PAGE2, MPI3_POINTER PTR_MPI3_SECURITY_PAGE2, Mpi3SecurityPage2_t, MPI3_POINTER pMpi3SecurityPage2_t; @@ -3052,7 +3143,7 @@ typedef struct _MPI3_SAS_PHY_PAGE4 * Common definitions used by PCIe Configuration Pages * ****************************************************************************/ -/**** Defines for Negotiated Link Rates ****/ +/**** Defines for NegotiatedLinkRates ****/ #define MPI3_PCIE_LINK_RETIMERS_MASK (0x30) #define MPI3_PCIE_LINK_RETIMERS_SHIFT (4) #define MPI3_PCIE_NEG_LINK_RATE_MASK (0x0F) @@ -3219,8 +3310,8 @@ typedef struct _MPI3_PCIE_IO_UNIT_PAGE1 #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_BACKPLANE_ERROR (0x60000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_MASK (0x1C000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_NONE (0x00000000) -#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_DEASSERT (0x04000000) -#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_ASSERT (0x08000000) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_ENABLE (0x04000000) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_DISABLE (0x08000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_BACKPLANE_ERROR (0x0C000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PARTIAL_CAPACITY_ENABLE (0x00000100) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_OVERRIDE_DISABLE (0x00000080) @@ -3362,12 +3453,14 @@ typedef struct _MPI3_PCIE_SWITCH_PAGE1 /**** Defines for the PageVersion field ****/ #define MPI3_PCIESWITCH1_PAGEVERSION (0x00) -/**** Defines for the FLAGS field ****/ +/**** Defines for the Flags field ****/ #define MPI3_PCIESWITCH1_FLAGS_ASPMSTATE_MASK (0x0C) #define MPI3_PCIESWITCH1_FLAGS_ASPMSTATE_SHIFT (2) + /*** use MPI3_PCIE_ASPM_ENABLE_ defines for ASPMState field values ***/ #define MPI3_PCIESWITCH1_FLAGS_ASPMSUPPORT_MASK (0x03) #define MPI3_PCIESWITCH1_FLAGS_ASPMSUPPORT_SHIFT (0) + /*** use MPI3_PCIE_ASPM_SUPPORT_ defines for ASPMSupport field values ***/ /**** Defines for the NegotiatedLinkRate field - use MPI3_PCIE_NEG_LINK_RATE_ defines ****/ @@ -3454,6 +3547,8 @@ typedef struct _MPI3_ENCLOSURE_PAGE0 U16 SEPDevHandle; /* 0x1A */ U8 ChassisSlot; /* 0x1C */ U8 Reserved1D[3]; /* 0x1D */ + U32 ReceptacleIDs; /* 0x20 */ + U32 Reserved24; /* 0x24 */ } MPI3_ENCLOSURE_PAGE0, MPI3_POINTER PTR_MPI3_ENCLOSURE_PAGE0, Mpi3EnclosurePage0_t, MPI3_POINTER pMpi3EnclosurePage0_t; @@ -3474,7 +3569,8 @@ typedef struct _MPI3_ENCLOSURE_PAGE0 #define MPI3_ENCLS0_FLAGS_MNG_IOC_SES (0x0001) #define MPI3_ENCLS0_FLAGS_MNG_SES_ENCLOSURE (0x0002) -/**** Defines for the PhysicalPort field - use MPI3_DEVICE0_PHYPORT_ defines ****/ +/**** Defines for the ReceptacleIDs field ****/ +#define MPI3_ENCLS0_RECEPTACLEIDS_NOT_REPORTED (0x00000000) /***************************************************************************** * Device Configuration Pages * @@ -3577,7 +3673,7 @@ typedef struct _MPI3_DEVICE0_PCIE_FORMAT #define MPI3_DEVICE0_PCIE_CAP_ASPM_SHIFT (6) /*** use MPI3_PCIE_ASPM_SUPPORT_ defines for ASPM field values ***/ -/**** Defines for the RecoverMethod field ****/ +/**** Defines for the RecoveryInfo field ****/ #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_MASK (0xE0) #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_NS_MGMT (0x00) #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_FORMAT (0x20) diff --git a/sys/dev/mpi3mr/mpi/mpi30_image.h b/sys/dev/mpi3mr/mpi/mpi30_image.h index 7b953cb3b1a6..917763b3e921 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_image.h +++ b/sys/dev/mpi3mr/mpi/mpi30_image.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_IMAGE_H #define MPI30_IMAGE_H 1 @@ -119,12 +118,19 @@ typedef struct _MPI3_COMPONENT_IMAGE_HEADER #define MPI3_IMAGE_HEADER_SIGNATURE1_RMC (0x20434D52) /* string "RMC " */ #define MPI3_IMAGE_HEADER_SIGNATURE1_SMM (0x204D4D53) /* string "SMM " */ #define MPI3_IMAGE_HEADER_SIGNATURE1_PSW (0x20575350) /* string "PSW " */ - +#define MPI3_IMAGE_HEADER_SIGNATURE1_CSW (0x20575343) /* string "CSW " */ /**** Definitions for Signature2 field ****/ #define MPI3_IMAGE_HEADER_SIGNATURE2_VALUE (0x50584546) /**** Definitions for Flags field ****/ +#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MASK (0x00000300) +#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_UNSPECIFIED (0x00000000) +#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_NOT_SIGNED (0x00000100) +#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MICROSOFT_SIGNED (0x00000200) +#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_MASK (0x000000C0) +#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_DEVICE_CERT (0x00000000) +#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_ALIAS_CERT (0x00000040) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_MASK (0x00000030) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_CDI (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_DI (0x00000010) @@ -216,12 +222,14 @@ typedef struct _MPI3_CI_MANIFEST_MPI /* defines for the ReleaseLevel field */ #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_DEV (0x00) +#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_PRE_PRODUCTION (0x08) #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_PREALPHA (0x10) #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_ALPHA (0x20) #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_BETA (0x30) #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_RC (0x40) #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_GCA (0x50) #define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_POINT (0x60) +#define MPI3_CI_MANIFEST_MPI_RELEASE_LEVEL_DIAG (0xF0) /* defines for the Flags field */ #define MPI3_CI_MANIFEST_MPI_FLAGS_DIAG_AUTHORIZATION (0x01) @@ -314,9 +322,9 @@ typedef struct _MPI3_SUPPORTED_DEVICES_DATA } MPI3_SUPPORTED_DEVICES_DATA, MPI3_POINTER PTR_MPI3_SUPPORTED_DEVICES_DATA, Mpi3SupportedDevicesData_t, MPI3_POINTER pMpi3SupportedDevicesData_t; -#ifndef MPI3_ENCRYPTED_HASH_MAX -#define MPI3_ENCRYPTED_HASH_MAX (1) -#endif /* MPI3_ENCRYPTED_HASH_MAX */ +#ifndef MPI3_PUBLIC_KEY_MAX +#define MPI3_PUBLIC_KEY_MAX (1) +#endif /* MPI3_PUBLIC_KEY_MAX */ /* Encrypted Hash Entry Format */ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY @@ -325,8 +333,10 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY U8 HashAlgorithm; /* 0x01 */ U8 EncryptionAlgorithm; /* 0x02 */ U8 Reserved03; /* 0x03 */ - U32 Reserved04; /* 0x04 */ - U32 EncryptedHash[MPI3_ENCRYPTED_HASH_MAX]; /* 0x08 */ /* variable length */ + U16 PublicKeySize; /* 0x04 */ + U16 SignatureSize; /* 0x06 */ + U32 PublicKey[MPI3_PUBLIC_KEY_MAX]; /* 0x08 */ /* variable length */ + /* Signature - offset of this field must be calculated */ /* variable length */ } MPI3_ENCRYPTED_HASH_ENTRY, MPI3_POINTER PTR_MPI3_ENCRYPTED_HASH_ENTRY, Mpi3EncryptedHashEntry_t, MPI3_POINTER pMpi3EncryptedHashEntry_t; @@ -358,24 +368,9 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P256 (0x07) /* NIST secp256r1 curve */ #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P384 (0x08) /* NIST secp384r1 curve */ #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P521 (0x09) /* NIST secp521r1 curve */ - - -#ifndef MPI3_PUBLIC_KEY_MAX -#define MPI3_PUBLIC_KEY_MAX (1) -#endif /* MPI3_PUBLIC_KEY_MAX */ - -/* Encrypted Key with Hash Entry Format */ -typedef struct _MPI3_ENCRYPTED_KEY_WITH_HASH_ENTRY -{ - U8 HashImageType; /* 0x00 */ - U8 HashAlgorithm; /* 0x01 */ - U8 EncryptionAlgorithm; /* 0x02 */ - U8 Reserved03; /* 0x03 */ - U32 Reserved04; /* 0x04 */ - U32 PublicKey[MPI3_PUBLIC_KEY_MAX]; /* 0x08 */ /* variable length */ - /* EncryptedHash - offset of this field must be calculated */ /* variable length */ -} MPI3_ENCRYPTED_KEY_WITH_HASH_ENTRY, MPI3_POINTER PTR_MPI3_ENCRYPTED_KEY_WITH_HASH_ENTRY, - Mpi3EncryptedKeyWithHashEntry_t, MPI3_POINTER pMpi3EncryptedKeyWithHashEntry_t; +#define MPI3_ENCRYPTION_ALGORITHM_LMS_HSS (0x0A) /* Leighton-Micali Signature (LMS) - + * Hierarchical Signature System (HSS) + */ #ifndef MPI3_ENCRYPTED_HASH_ENTRY_MAX #define MPI3_ENCRYPTED_HASH_ENTRY_MAX (1) diff --git a/sys/dev/mpi3mr/mpi/mpi30_init.h b/sys/dev/mpi3mr/mpi/mpi30_init.h index c0ba14909ac1..361fb690fbe6 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_init.h +++ b/sys/dev/mpi3mr/mpi/mpi30_init.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_INIT_H #define MPI30_INIT_H 1 @@ -78,7 +77,7 @@ typedef struct _MPI3_SCSI_IO_REQUEST U16 ChangeCount; /* 0x08 */ U16 DevHandle; /* 0x0A */ U32 Flags; /* 0x0C */ - U32 SkipCount; /* 0x10 */ + U32 IOCUseOnly10; /* 0x10 */ U32 DataLength; /* 0x14 */ U8 LUN[8]; /* 0x18 */ MPI3_SCSI_IO_CDB_UNION CDB; /* 0x20 */ @@ -91,10 +90,12 @@ typedef struct _MPI3_SCSI_IO_REQUEST #define MPI3_SCSIIO_MSGFLAGS_DIVERT_TO_FIRMWARE (0x40) /**** Defines for the Flags field ****/ -#define MPI3_SCSIIO_FLAGS_LARGE_CDB (0x60000000) +#define MPI3_SCSIIO_FLAGS_LARGE_CDB_MASK (0x60000000) #define MPI3_SCSIIO_FLAGS_CDB_16_OR_LESS (0x00000000) #define MPI3_SCSIIO_FLAGS_CDB_GREATER_THAN_16 (0x20000000) #define MPI3_SCSIIO_FLAGS_CDB_IN_SEPARATE_BUFFER (0x40000000) +#define MPI3_SCSIIO_FLAGS_CDB_PRODUCT_SPECIFIC (0x60000000) +#define MPI3_SCSIIO_FLAGS_IOC_USE_ONLY_27_MASK (0x18000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_MASK (0x07000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SIMPLEQ (0x00000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_HEADOFQ (0x01000000) diff --git a/sys/dev/mpi3mr/mpi/mpi30_ioc.h b/sys/dev/mpi3mr/mpi/mpi30_ioc.h index 77f6be5b2694..2d45a55b89e8 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_ioc.h +++ b/sys/dev/mpi3mr/mpi/mpi30_ioc.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_IOC_H #define MPI30_IOC_H 1 @@ -76,17 +75,19 @@ typedef struct _MPI3_IOC_INIT_REQUEST Mpi3IOCInitRequest_t, MPI3_POINTER pMpi3IOCInitRequest_t; /**** Defines for the MsgFlags field ****/ -#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03) -#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00) -#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01) -#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_INLINE (0x02) -#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_BOTH (0x03) +#define MPI3_IOCINIT_MSGFLAGS_WRITESAMEDIVERT_SUPPORTED (0x08) +#define MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED (0x04) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_INLINE (0x02) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_BOTH (0x03) /**** Defines for the WhoInit field ****/ -#define MPI3_WHOINIT_NOT_INITIALIZED (0x00) -#define MPI3_WHOINIT_ROM_BIOS (0x02) -#define MPI3_WHOINIT_HOST_DRIVER (0x03) -#define MPI3_WHOINIT_MANUFACTURER (0x04) +#define MPI3_WHOINIT_NOT_INITIALIZED (0x00) +#define MPI3_WHOINIT_ROM_BIOS (0x02) +#define MPI3_WHOINIT_HOST_DRIVER (0x03) +#define MPI3_WHOINIT_MANUFACTURER (0x04) /**** Defines for the DriverInformationAddress field */ typedef struct _MPI3_DRIVER_INFO_LAYOUT @@ -173,6 +174,8 @@ typedef struct _MPI3_IOC_FACTS_DATA U16 MaxIOThrottleGroup; /* 0x62 */ U16 IOThrottleLow; /* 0x64 */ U16 IOThrottleHigh; /* 0x66 */ + U32 DiagFdlSize; /* 0x68 */ + U32 DiagTtySize; /* 0x6C */ } MPI3_IOC_FACTS_DATA, MPI3_POINTER PTR_MPI3_IOC_FACTS_DATA, Mpi3IOCFactsData_t, MPI3_POINTER pMpi3IOCFactsData_t; @@ -183,13 +186,13 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_MASK (0x00000600) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_FIXED_THRESHOLD (0x00000000) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_OUTSTANDING_IO (0x00000200) -#define MPI3_IOCFACTS_CAPABILITY_COMPLETE_RESET_CAPABLE (0x00000100) -#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_TRACE_ENABLED (0x00000080) -#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_FW_ENABLED (0x00000040) -#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_DRIVER_ENABLED (0x00000020) -#define MPI3_IOCFACTS_CAPABILITY_ADVANCED_HOST_PD_ENABLED (0x00000010) -#define MPI3_IOCFACTS_CAPABILITY_RAID_CAPABLE (0x00000008) -#define MPI3_IOCFACTS_CAPABILITY_MULTIPATH_ENABLED (0x00000002) +#define MPI3_IOCFACTS_CAPABILITY_COMPLETE_RESET_SUPPORTED (0x00000100) +#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_TRACE_SUPPORTED (0x00000080) +#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_FW_SUPPORTED (0x00000040) +#define MPI3_IOCFACTS_CAPABILITY_SEG_DIAG_DRIVER_SUPPORTED (0x00000020) +#define MPI3_IOCFACTS_CAPABILITY_ADVANCED_HOST_PD_SUPPORTED (0x00000010) +#define MPI3_IOCFACTS_CAPABILITY_RAID_SUPPORTED (0x00000008) +#define MPI3_IOCFACTS_CAPABILITY_MULTIPATH_SUPPORTED (0x00000002) #define MPI3_IOCFACTS_CAPABILITY_COALESCE_CTRL_SUPPORTED (0x00000001) /**** WhoInit values are defined under IOCInit Request Message definition ****/ @@ -234,22 +237,29 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_MAX_DATA_LENGTH_NOT_REPORTED (0x0000) /**** Defines for the Flags field ****/ -#define MPI3_IOCFACTS_FLAGS_SIGNED_NVDATA_REQUIRED (0x00010000) -#define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_MASK (0x0000FF00) -#define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_SHIFT (8) -#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK (0x00000030) -#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_NOT_STARTED (0x00000000) -#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_IN_PROGRESS (0x00000010) -#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_COMPLETE (0x00000020) -#define MPI3_IOCFACTS_FLAGS_PERSONALITY_MASK (0x0000000F) -#define MPI3_IOCFACTS_FLAGS_PERSONALITY_EHBA (0x00000000) -#define MPI3_IOCFACTS_FLAGS_PERSONALITY_RAID_DDR (0x00000002) +#define MPI3_IOCFACTS_FLAGS_SIGNED_NVDATA_REQUIRED (0x00010000) +#define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_MASK (0x0000FF00) +#define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_SHIFT (8) +#define MPI3_IOCFACTS_FLAGS_MAX_REQ_PER_REPLY_QUEUE_LIMIT (0x00000040) +#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK (0x00000030) +#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_NOT_STARTED (0x00000000) +#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_IN_PROGRESS (0x00000010) +#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_COMPLETE (0x00000020) +#define MPI3_IOCFACTS_FLAGS_PERSONALITY_MASK (0x0000000F) +#define MPI3_IOCFACTS_FLAGS_PERSONALITY_EHBA (0x00000000) +#define MPI3_IOCFACTS_FLAGS_PERSONALITY_RAID_DDR (0x00000002) /**** Defines for the IOThrottleDataLength field ****/ -#define MPI3_IOCFACTS_IO_THROTTLE_DATA_LENGTH_NOT_REQUIRED (0x0000) +#define MPI3_IOCFACTS_IO_THROTTLE_DATA_LENGTH_NOT_REQUIRED (0x0000) -/**** Defines for the IOThrottleDataLength field ****/ -#define MPI3_IOCFACTS_MAX_IO_THROTTLE_GROUP_NOT_REQUIRED (0x0000) +/**** Defines for the MaxIOThrottleGroup field ****/ +#define MPI3_IOCFACTS_MAX_IO_THROTTLE_GROUP_NOT_REQUIRED (0x0000) + +/**** Defines for the DiagFdlSize field ****/ +#define MPI3_IOCFACTS_DIAGFDLSIZE_NOT_SUPPORTED (0x00000000) + +/**** Defines for the DiagTtySize field ****/ +#define MPI3_IOCFACTS_DIAGTTYSIZE_NOT_SUPPORTED (0x00000000) /***************************************************************************** * Management Passthrough Request Message * @@ -440,9 +450,9 @@ typedef struct _MPI3_EVENT_NOTIFICATION_REQUEST } MPI3_EVENT_NOTIFICATION_REQUEST, MPI3_POINTER PTR_MPI3_EVENT_NOTIFICATION_REQUEST, Mpi3EventNotificationRequest_t, MPI3_POINTER pMpi3EventNotificationRequest_t; -/**** Defines for the SASBroadcastPrimitiveMasks field - use MPI3_EVENT_PRIMITIVE_ values ****/ +/**** Defines for the SASBroadcastPrimitiveMasks field - use MPI3_EVENT_BROADCAST_PRIMITIVE_ values ****/ -/**** Defines for the SASNotifyPrimitiveMasks field - use MPI3_EVENT_NOTIFY_ values ****/ +/**** Defines for the SASNotifyPrimitiveMasks field - use MPI3_EVENT_NOTIFY_PRIMITIVE_ values ****/ /**** Defines for the EventMasks field - use MPI3_EVENT_ values ****/ @@ -716,7 +726,7 @@ typedef struct _MPI3_EVENT_SAS_TOPO_PHY_ENTRY { U16 AttachedDevHandle; /* 0x00 */ U8 LinkRate; /* 0x02 */ - U8 Status; /* 0x03 */ + U8 PhyStatus; /* 0x03 */ } MPI3_EVENT_SAS_TOPO_PHY_ENTRY, MPI3_POINTER PTR_MPI3_EVENT_SAS_TOPO_PHY_ENTRY, Mpi3EventSasTopoPhyEntry_t, MPI3_POINTER pMpi3EventSasTopoPhyEntry_t; diff --git a/sys/dev/mpi3mr/mpi/mpi30_pci.h b/sys/dev/mpi3mr/mpi/mpi30_pci.h index f15dab2a5a9c..008ec7059b76 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_pci.h +++ b/sys/dev/mpi3mr/mpi/mpi30_pci.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_PCI_H #define MPI30_PCI_H 1 diff --git a/sys/dev/mpi3mr/mpi/mpi30_raid.h b/sys/dev/mpi3mr/mpi/mpi30_raid.h index fe2c4baffd3c..85941544e8fe 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_raid.h +++ b/sys/dev/mpi3mr/mpi/mpi30_raid.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_RAID_H #define MPI30_RAID_H 1 diff --git a/sys/dev/mpi3mr/mpi/mpi30_sas.h b/sys/dev/mpi3mr/mpi/mpi30_sas.h index c28de07c9fdd..fc55fba4747f 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_sas.h +++ b/sys/dev/mpi3mr/mpi/mpi30_sas.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_SAS_H #define MPI30_SAS_H 1 diff --git a/sys/dev/mpi3mr/mpi/mpi30_targ.h b/sys/dev/mpi3mr/mpi/mpi30_targ.h index d9aee48a6437..646b5287d502 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_targ.h +++ b/sys/dev/mpi3mr/mpi/mpi30_targ.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_TARG_H #define MPI30_TARG_H 1 @@ -191,7 +190,7 @@ typedef struct _MPI3_TARGET_ASSIST_REQUEST U16 QueueTag; /* 0x12 */ U16 IoIndex; /* 0x14 */ U16 InitiatorConnectionTag; /* 0x16 */ - U32 SkipCount; /* 0x18 */ + U32 IOCUseOnly18; /* 0x18 */ U32 DataLength; /* 0x1C */ U32 PortTransferLength; /* 0x20 */ U32 PrimaryReferenceTag; /* 0x24 */ @@ -206,6 +205,8 @@ typedef struct _MPI3_TARGET_ASSIST_REQUEST #define MPI3_TARGET_ASSIST_MSGFLAGS_METASGL_VALID (0x80) /**** Defines for the Flags field ****/ +#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_23_MASK (0x00800000) +#define MPI3_TARGET_ASSIST_FLAGS_IOC_USE_ONLY_22_MASK (0x00400000) #define MPI3_TARGET_ASSIST_FLAGS_REPOST_CMD_BUFFER (0x00200000) #define MPI3_TARGET_ASSIST_FLAGS_AUTO_STATUS (0x00100000) #define MPI3_TARGET_ASSIST_FLAGS_DATADIRECTION_MASK (0x000C0000) @@ -243,6 +244,7 @@ typedef struct _MPI3_TARGET_STATUS_SEND_REQUEST Mpi3TargetStatusSendRequest_t, MPI3_POINTER pMpi3TargetStatusSendRequest_t; /**** Defines for the Flags field ****/ +#define MPI3_TSS_FLAGS_IOC_USE_ONLY_6_MASK (0x0040) #define MPI3_TSS_FLAGS_REPOST_CMD_BUFFER (0x0020) #define MPI3_TSS_FLAGS_AUTO_SEND_GOOD_STATUS (0x0010) diff --git a/sys/dev/mpi3mr/mpi/mpi30_tool.h b/sys/dev/mpi3mr/mpi/mpi30_tool.h index 55fb53601863..e11ddf068555 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_tool.h +++ b/sys/dev/mpi3mr/mpi/mpi30_tool.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_TOOL_H #define MPI30_TOOL_H 1 @@ -366,6 +365,7 @@ typedef struct _MPI3_DIAG_BUFFER_POST_REQUEST #define MPI3_DIAG_BUFFER_TYPE_FW (0x02) #define MPI3_DIAG_BUFFER_TYPE_DRIVER (0x10) #define MPI3_DIAG_BUFFER_TYPE_FDL (0x20) +#define MPI3_DIAG_BUFFER_TYPE_TTY (0x30) #define MPI3_DIAG_BUFFER_MIN_PRODUCT_SPECIFIC (0xF0) #define MPI3_DIAG_BUFFER_MAX_PRODUCT_SPECIFIC (0xFF) @@ -388,7 +388,7 @@ typedef struct _MPI3_DRIVER_BUFFER_HEADER } MPI3_DRIVER_BUFFER_HEADER, MPI3_POINTER PTR_MPI3_DRIVER_BUFFER_HEADER, Mpi3DriverBufferHeader_t, MPI3_POINTER pMpi3DriverBufferHeader_t; -/**** Defines for the Type field ****/ +/**** Defines for the Signature field ****/ #define MPI3_DRIVER_DIAG_BUFFER_HEADER_SIGNATURE_CIRCULAR (0x43495243) /**** Defines for the Flags field ****/ diff --git a/sys/dev/mpi3mr/mpi/mpi30_transport.h b/sys/dev/mpi3mr/mpi/mpi30_transport.h index 436496411309..860c27a2dd42 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_transport.h +++ b/sys/dev/mpi3mr/mpi/mpi30_transport.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -37,10 +37,8 @@ * * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * - */ - -/* - * Version History + * + * Version History * --------------- * * Date Version Description @@ -72,7 +70,11 @@ * 09-02-22 03.00.27.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 27. * 10-20-22 03.00.27.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 27 - Interim Release 1. * 12-02-22 03.00.28.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 28. - * 02-24-22 03.00.29.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 29. + * 02-24-23 03.00.29.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 29. + * 05-19-23 03.00.30.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 30. + * 08-18-23 03.00.30.01 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 30 - Interim Release 1. + * 11-17-23 03.00.31.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 31 + * 02-16-24 03.00.32.00 Corresponds to Fusion-MPT MPI 3.0 Specification Rev 32 */ #ifndef MPI30_TRANSPORT_H #define MPI30_TRANSPORT_H 1 @@ -101,7 +103,7 @@ typedef union _MPI3_VERSION_UNION /****** Version constants for this revision ****/ #define MPI3_VERSION_MAJOR (3) #define MPI3_VERSION_MINOR (0) -#define MPI3_VERSION_UNIT (29) +#define MPI3_VERSION_UNIT (32) #define MPI3_VERSION_DEV (0) /****** DevHandle definitions *****/ @@ -425,15 +427,9 @@ typedef struct _MPI3_STATUS_REPLY_DESCRIPTOR } MPI3_STATUS_REPLY_DESCRIPTOR, MPI3_POINTER PTR_MPI3_STATUS_REPLY_DESCRIPTOR, Mpi3StatusReplyDescriptor_t, MPI3_POINTER pMpi3StatusReplyDescriptor_t; -/**** Defines for the IOCStatus field ****/ -#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_LOGINFOAVAIL (0x8000) -#define MPI3_REPLY_DESCRIPT_STATUS_IOCSTATUS_STATUS_MASK (0x7FFF) +/**** Use MPI3_IOCSTATUS_ defines for the IOCStatus field ****/ -/**** Defines for the IOCLogInfo field ****/ -#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_MASK (0xF0000000) -#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_NO_INFO (0x00000000) -#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_TYPE_SAS (0x30000000) -#define MPI3_REPLY_DESCRIPT_STATUS_IOCLOGINFO_DATA_MASK (0x0FFFFFFF) +/**** Use MPI3_IOCLOGINFO_ defines for the IOCLogInfo field ****/ /***************************************************************************** * Union of Reply Descriptors * @@ -652,7 +648,6 @@ typedef struct _MPI3_DEFAULT_REPLY #define MPI3_FUNCTION_MAX_PRODUCT_SPECIFIC (0xFF) /* End of the product-specific range of function codes */ /**** Defines for IOCStatus ****/ -#define MPI3_IOCSTATUS_LOG_INFO_AVAIL_MASK (0x8000) #define MPI3_IOCSTATUS_LOG_INFO_AVAILABLE (0x8000) #define MPI3_IOCSTATUS_STATUS_MASK (0x7FFF) diff --git a/sys/dev/mpi3mr/mpi/mpi30_type.h b/sys/dev/mpi3mr/mpi/mpi30_type.h index 267ede701762..815becadcf25 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_type.h +++ b/sys/dev/mpi3mr/mpi/mpi30_type.h @@ -1,7 +1,7 @@ /* - * SPDX-License-Identifier: BSD-2-Clause + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,7 +38,6 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ - #ifndef MPI30_TYPE_H #define MPI30_TYPE_H 1 diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index f88e467510a0..2dba58e34360 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2269,7 +2269,7 @@ mpi3mr_display_ioc_info(struct mpi3mr_softc *sc) printf("Capabilities=("); *** 99 LINES SKIPPED *** From nobody Wed Apr 30 17:21:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWD5gbZz5thk7; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWC6Qv1z3M6b; Wed, 30 Apr 2025 17:21:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a6BjOc+GA18Bhz79bNZDkC6bNrPcQBSpCVWp1aKIV0g=; b=NtF45qjeVuAhgvanEtftIkK8iG7xSY7bG/GUF6/a2PQ1z0Xc+Hw1ocVeI/LL5ox3n6Ps2D zerBfshP6TRaVm3eaVRY1+XiGp2dCf5p1uYhCIfLQaQFyqdat+IG7id1UkFVbFtI5Jon5t 3C43+96YBN2ZcFPfy99323uafFFYvxQsjq9xOY5YSkDmN+8a6A9ONobujFqu137R10Rsli ciyTzaIrCS/PxPF+4ozH9UiznZmWzLF6TDfBXI/rPSqEJ44s4RbzgIZWrcP+6B9psZHriO 35CyceYqGsvyWrgdg+oDi5zZEx7RNLe8dqpRH7k7rdITwoZkZgFO5Zs379m1ug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033703; a=rsa-sha256; cv=none; b=cIMyWkJngBvEfiVgjjvUIrRyR8d5zk0FvsT/mKh/EFh+lUf45W8whehg1vq97VCJ0bF9zk XzcdQeyRH9Pw8PpBP8TaDDl0IG/CNdzPueH2KTchIcaf+jr8rhWsrK52BJlBo/nF16LIi1 dgt9NqqiMcwSeF7+aOd6CSTDoRMhCN3omkC/1ORU+Lj42P5/I4im1HR7j18Wh/lqfLY/+0 Ck0kNOjtC9Jl2y7dnzq5wZCZ108MR5iOLrriCXh8f+FlXto4pxhnG/lnjqLj4kXwjwCzfR tbUed1xGArBsZEnh1n4VPIix2EWvqhdx3BhaJZaY/FovvXLc9x/7qYT17xybcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=a6BjOc+GA18Bhz79bNZDkC6bNrPcQBSpCVWp1aKIV0g=; b=vATlZ4xHuIasb8+P6SVWkacXUq6bT5aK8ykRMzWpE2OlQgq4Qx7kWI5j8X6cseacwl3ikS pI4l2JeNx8h2I8+ZWwZUGY31ueQFcI+wl+77tmcSj3jcexPSDZjkl9kNGUH2XD1d2OMfEj 92px3PurNmND8g0OTs8uF61KIDc4omRVxEh8TrgCDvE4THpN59lXUDO8qVF5yVowzuD8wD kMq4yN9aDl2h5seZOc00x4c4PJ9cydy6AklkTKO5H7sv/YgIiqwD1UAX5g693YCqMeQ3OK pHo1pD9HmAv1mUB92YZK7mQGWxezPm8hcIp9n2Yyshw2p5D5JYRgQHaKcd1auQ== 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 4ZnkWC5zHPzgc; Wed, 30 Apr 2025 17:21:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLhCi095040; Wed, 30 Apr 2025 17:21:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLhQL095037; Wed, 30 Apr 2025 17:21:43 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:43 GMT Message-Id: <202504301721.53UHLhQL095037@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: 8fa8f7a84823 - stable/14 - mpi3mr: copyright year update to 2024 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 8fa8f7a84823d6e45c3e03185bfcc376f4f169a9 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=8fa8f7a84823d6e45c3e03185bfcc376f4f169a9 commit 8fa8f7a84823d6e45c3e03185bfcc376f4f169a9 Author: Chandrakanth patil AuthorDate: 2024-03-19 07:25:04 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: copyright year update to 2024 Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44429 (cherry picked from commit 945c3ce49ed127de6ccd6d55a944d8a58291c315) --- sys/dev/mpi3mr/mpi3mr.c | 2 +- sys/dev/mpi3mr/mpi3mr.h | 2 +- sys/dev/mpi3mr/mpi3mr_app.c | 2 +- sys/dev/mpi3mr/mpi3mr_app.h | 2 +- sys/dev/mpi3mr/mpi3mr_cam.c | 2 +- sys/dev/mpi3mr/mpi3mr_cam.h | 2 +- sys/dev/mpi3mr/mpi3mr_pci.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 2dba58e34360..03fea4bdfcc7 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2016-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index 59d4c64be3cb..de8c1a574133 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_app.c b/sys/dev/mpi3mr/mpi3mr_app.c index 811f6e2f08af..e98c6e2e942c 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.c +++ b/sys/dev/mpi3mr/mpi3mr_app.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_app.h b/sys/dev/mpi3mr/mpi3mr_app.h index 733aeb0ae53d..b0d62157db3c 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.h +++ b/sys/dev/mpi3mr/mpi3mr_app.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index f1bbfcc91bbb..d4cb7e9265dd 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_cam.h b/sys/dev/mpi3mr/mpi3mr_cam.h index 4f3ce47751e9..3a0526217f86 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.h +++ b/sys/dev/mpi3mr/mpi3mr_cam.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index 1548d577a726..95bd39c90964 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2023, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena From nobody Wed Apr 30 17:21:44 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWF5fdpz5thkB; Wed, 30 Apr 2025 17:21:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWF08b9z3MHT; Wed, 30 Apr 2025 17:21:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e9Xe92dXl509UyIlkvypXuOSi6fx5VtKq0Jr3zDXr64=; b=ZL3Q6vpFn585zfefMr+WyUwiPe6QdnecBqZvMqEK1ACUMyVPYDf8d6/Yjo2Jwa2/a2i7bm /djNy12mQdseulUQk32fyRDzBUiQwo5u/vdc1OXhf1uqF9QzsJoMqSzsMg84v6EVWHm+4V rGzK9PsHQslqkw0YwIwKJi08TEvik3dKb4pZ+oaosZ1flBqIR0ll8XK3bTQPrGco3iOBiA DhDkrrxk5b1qMsAUXpnH+wEMJ2nbsfAZqZAfnUMaDpVOsW3azklypDSUSikIpepjciV924 t9gsldWqyNoOgPj/j8f6OBZ8CPFAV4bDfzM3fzYiDv+HEef/ivUDXpVnaGGN+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033705; a=rsa-sha256; cv=none; b=a32xqVn3MdVIc71l5gdGHSTwvBAC8Y/HHiXBv+ymF9KlvcjeQqli8FQekYAixK5o2ZCQKm vVAuc8lNe56bYeyZ/51I9lqol2f4iEkRS8x953+oIZISPMFqVFunIpOVddDIZVXrNxpjnV PhQ3qTMRaW5bi7Y0FoQfp2gejPAyx6Z4zLBU8c1dckVcCJryrMfQUCCY/WVdcjH5Al4kfk SK+2of/SiFx2dNoEq8p2o3mwJFVoKhwpPtjtyXMayH20kEZ0dzgQQkjbHUXnQVy9cmaoJO V5pUrURMAWstMtbCgQ7s8zVIABRHRXo3HH6khxfRe2LQXZJNU3WQiN6+0qO+SA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033705; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e9Xe92dXl509UyIlkvypXuOSi6fx5VtKq0Jr3zDXr64=; b=re2ktwJ1S7AANFnNsKxFuIzOYMimdRPTyjMZRk5rH9Ev0Xfa4PaE3a9AcCjRtCABo42OXg osLuf1HaCTTIql9/JhhIN2Ccr+W461qVlunQQVet052XBT2kUn2XXAT7xN+ympF7+neZdT 26REZj6Bk5oxsr9QcLoyktGV9pfo3uTt1YLmJfc/cr8r4hF573azJDPOBBYvE1CUW1iFlN 4+Symx4dAU/pYcssjvj6llt9xW3FOUg2Hm1n3fCtuichPwinUjShvPzp3Ahx/b+gENDppF JLG989gBje9BZjvVv4vMSXki0dBEXSSQsG1fNaI6TNtb6o58QQgdLoc4QAEY4g== 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 4ZnkWD6fp8zgf; Wed, 30 Apr 2025 17:21:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLisV095073; Wed, 30 Apr 2025 17:21:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLim4095070; Wed, 30 Apr 2025 17:21:44 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:44 GMT Message-Id: <202504301721.53UHLim4095070@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: 810abb12585d - stable/14 - mpi3mr: driver version update to 8.10.0.1.0 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 810abb12585dbd79bb325f8ff64be702b6346a20 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=810abb12585dbd79bb325f8ff64be702b6346a20 commit 810abb12585dbd79bb325f8ff64be702b6346a20 Author: Chandrakanth patil AuthorDate: 2024-03-19 07:29:01 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: driver version update to 8.10.0.1.0 Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44430 (cherry picked from commit df595fc43e908d8e85601cf6136fbcf0a60fd0f9) --- sys/dev/mpi3mr/mpi3mr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index de8c1a574133..2f91b0b702dd 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -88,8 +88,8 @@ #include #include "mpi/mpi30_api.h" -#define MPI3MR_DRIVER_VERSION "8.6.0.2.0" -#define MPI3MR_DRIVER_RELDATE "17th May 2023" +#define MPI3MR_DRIVER_VERSION "8.10.0.1.0" +#define MPI3MR_DRIVER_RELDATE "19th Mar 2024" #define MPI3MR_DRIVER_NAME "mpi3mr" From nobody Wed Apr 30 17:21:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWH4r63z5tj3X; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWH1jpLz3MCr; Wed, 30 Apr 2025 17:21:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tAiktpL+qlsNrTk39r4qdsbiO3p64o+1ntT4ir1hPzw=; b=GYZeKaV7gjTgtTd7q5+EQEn5EMDjr5hJJzFa8ndelCTGwDXy615u+5zi1INTHo7cBijMjy r66EjQXekfDd/aB6UUnXagiib9pol4BlmtQ+4RPWKCcL10mIn0keSoJ8B4etp6Z7vaGELx 7ZiBoOyf9lLyRO6mKkDQ/C2ztx/EvqP8AZgCqCUacKRCiD1j7VT40gIpKLDQZoyyF1kOr2 wfxDc0JfK/I1Pbw/XAx0BSb+Age8UVkLWs896UycW9xWSf6AivfHCdv+WJDBn3ebEnmt02 j/haATjVmdqCIacWgqQ2U6Nzj9UYrhYghSXVhcp6dP5kJ9lgTcaOqZNrzL8+3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033707; a=rsa-sha256; cv=none; b=H140pku/c4KiFhcvnIRg8INiS+AUQhwwthIYKP41kDTGxi0LIU6eI43FJ1uSjdof7nWS3e mQ4S8xZVbIPNelVKkgHnT7mhgCFn0YLqF4ydLGuPDb8HkJEZsoQIRWgbi643w7YYudluEQ /5fe4rkk6XtG40+Qa2bd6Ukdxp/WhSomGorZ39kaLrpVKbaIRiI6/eDvWI0ZEpOu4HleTQ 5YVrrNHQyOn4Wp9yF08crqVJksFAYfi5tEXqFBVuhxeaADGCQuJ3dgpuTDyemDCOkAD7vd fzM4+pH6FHs8BeSkE1wdraJa3Yocxjno98XVfAziA7xnlv+lAWYz5u5Z0wOJNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033707; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tAiktpL+qlsNrTk39r4qdsbiO3p64o+1ntT4ir1hPzw=; b=CuQEZUxX+h4evewy1o8Vi/JubD4KCa0GO6JeWyDJ6Wd9fnMi/LnbfS66X42kDbydiqz2iD LJ+soWVXpWVCafLii8IAV9iqoZe/oWwkPG1Uz4Awz47jS8a5Zz08CHdYDUxztyBRpKRzHS stDHcSPJ3xHbWTNw5ioHQBsi1h7vQNHuNXlwXgsIiEw1snGp5lOl1K2MUZGKhkrO5Ssqc0 lbkFF1T+COaVljrIzB/VJdkgD+/FH2ul5L5hoV7mMjOESH4BcMV384v4lrrSu0o/DZM2P2 TH0QLwH92fCNZbB+uCa+wDO7N6c6Yri0zcHJmk3tAwHoJ33cxQES508242sWxA== 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 4ZnkWH1KWYzgh; Wed, 30 Apr 2025 17:21:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLlSl095146; Wed, 30 Apr 2025 17:21:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLlx0095143; Wed, 30 Apr 2025 17:21:47 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:47 GMT Message-Id: <202504301721.53UHLlx0095143@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: 1fc80c01391e - stable/14 - mpi3mr: Track IO per target counter during queue poll with local variable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 1fc80c01391e58fa484021e37b4ca36307bb340b Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=1fc80c01391e58fa484021e37b4ca36307bb340b commit 1fc80c01391e58fa484021e37b4ca36307bb340b Author: Chandrakanth patil AuthorDate: 2024-06-06 10:28:38 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: Track IO per target counter during queue poll with local variable Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44494 (cherry picked from commit 8d3c3b52423f9740da424aa6dd73a20e694a9e08) --- sys/dev/mpi3mr/mpi3mr_cam.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index dca194a5c8cd..537811077164 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1840,6 +1840,7 @@ int mpi3mr_remove_device_from_os(struct mpi3mr_softc *sc, U16 handle) { int retval = 0; struct mpi3mr_target *target; + unsigned int target_outstanding; mpi3mr_dprint(sc, MPI3MR_EVENT, "Removing Device (dev_handle: %d)\n", handle); @@ -1857,16 +1858,17 @@ int mpi3mr_remove_device_from_os(struct mpi3mr_softc *sc, U16 handle) target->flags |= MPI3MRSAS_TARGET_INREMOVAL; - if (mpi3mr_atomic_read(&target->outstanding)) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "there are [%2d] outstanding IOs on target: %d" - "Poll reply queue once\n", mpi3mr_atomic_read(&target->outstanding), - target->per_id); - mpi3mr_poll_pend_io_completions(sc); - if (mpi3mr_atomic_read(&target->outstanding)) - mpi3mr_dprint(sc, MPI3MR_ERROR, "[%2d] outstanding IOs present on target: %d" - "despite poll\n", mpi3mr_atomic_read(&target->outstanding), - target->per_id); - } + target_outstanding = mpi3mr_atomic_read(&target->outstanding); + if (target_outstanding) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "there are [%2d] outstanding IOs on target: %d " + "Poll reply queue once\n", target_outstanding, target->per_id); + mpi3mr_poll_pend_io_completions(sc); + target_outstanding = mpi3mr_atomic_read(&target->outstanding); + if (target_outstanding) + target_outstanding = mpi3mr_atomic_read(&target->outstanding); + mpi3mr_dprint(sc, MPI3MR_ERROR, "[%2d] outstanding IOs present on target: %d " + "despite poll\n", target_outstanding, target->per_id); + } if (target->exposed_to_os && !sc->reset_in_progress) { mpi3mr_rescan_target(sc, target); From nobody Wed Apr 30 17:21:45 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWH07lZz5thqS; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWG1T9vz3MF7; Wed, 30 Apr 2025 17:21:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033706; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5SegivgK3VbcxxI+DLx0ft85Ipoct0kdqZwfPcld1BA=; b=AY4P7oPsLKYcxE6LK9fM4VlsYyWTSytpo2ykPVB9Csi8M819N5skd5gkit2Htrk8OtExj/ 2XWTu9zqH6Si1BxM0+CcUm6sl6i2HjNmvs2UqL2+shrY2QIZ3tfGJ2EvnxIhhxyZQdmX3F blisX9shMBSLM3QioQm9oQAhi667cFhwAIiEG8XfD5q+qeIqQCO6j6+k8Z3VpeVReuwI1s ltLqeZLWoFvLtjt6f0ik61xm+pzH0rtgcU+fiFW8dwF4SF89sGsGwH/+mqScVFhRUJ2c7l N53aY/6yLRGoVbq0ym0bq0Qb1t449vCJzoKUIMqG+SRQQP8/3vVjPPIGLrByEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033706; a=rsa-sha256; cv=none; b=M2gK4pWhFxeaoYC2p3OaMrFQXl4pbIEv5Kdw6DhWYH18b8nm1d4jL7dT/PURepJwqHWO6k 4T+AACgrLomrn9GQZzhlRn9aS/5+qXB+Yjra+w3M0uK+YGQXARvtDY3RlFmjMMKoazh5ct iATvhxFsOCVbOEIeK2sCWsCWzYjbEVlTBlK1/gZpEbPjOMiHXus0iWAQGDxeqc1NzThiJ6 HMGJByZTsxqtOhoj0HY/a6XnTQnrlAF/YrUtXDAty4P1a44HAgTbnQDp2p/vGi5lPXnHmU MCGVXeVjA0HzMpR490rTjcSkLTJXkyNikOVIjZA/I96wU3YwcgKuYINFecu36Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033706; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5SegivgK3VbcxxI+DLx0ft85Ipoct0kdqZwfPcld1BA=; b=Ejl/pBl8dTcQFBqnmU+XSwyJhG3NFjZOYzoA9mqCXZNlmkWTFcI1K2H+GTkiXd8ECXD15Q /2Y8ofw+cwcDiB/I0bdteEjiDTPhcsmHvg19kMsjO+d/RPUeQp7ifbSS/NQvzV1de8rlVI +K8anpLL7OMCn5jN+BFY0x3nBFuPO9S6Z5Ro5hjipCeK2HkEBGh59o0KkdS6gdsFCefU/C T7YV309v8XFpPHiBd0o6GHNephEl1SYqCFJ6OquEb9GCny47o+bSyeA5JTWw63GN8iaUt2 l5GQLrXU/8Ye+Y3du5aqhGPhrR5en96p1TNbI7I8vEWzSKK0ZKCQPd2LTA0SUw== 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 4ZnkWG0Xptzjy; Wed, 30 Apr 2025 17:21:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLjWp095107; Wed, 30 Apr 2025 17:21:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLjlw095104; Wed, 30 Apr 2025 17:21:45 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:45 GMT Message-Id: <202504301721.53UHLjlw095104@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: 80b069913d49 - stable/14 - mpi3mr: Divert large WriteSame IOs to firmware if unmap and ndob bits are set List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 80b069913d496bd73b0ea8e515b6bf3706530ea1 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=80b069913d496bd73b0ea8e515b6bf3706530ea1 commit 80b069913d496bd73b0ea8e515b6bf3706530ea1 Author: Chandrakanth patil AuthorDate: 2024-06-06 08:38:52 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: Divert large WriteSame IOs to firmware if unmap and ndob bits are set Firmware advertises the transfer lenght for writesame commands to driver during init. So for any writesame IOs with ndob and unmap bit set and transfer lengh is greater than the max write same length specified by the firmware, then direct those commands to firmware instead of hardware otherwise hardware will break. Reviewed by: imp Approved by: imp Differential revision: https://reviews.freebsd.org/D44452 (cherry picked from commit 3f3a15543a6721100dda0e4219eb48ecbe35731a) --- sys/dev/mpi3mr/mpi3mr.c | 16 ++++++++++++++++ sys/dev/mpi3mr/mpi3mr.h | 2 ++ sys/dev/mpi3mr/mpi3mr_cam.c | 35 +++++++++++++++++++++++++++++++++++ sys/dev/mpi3mr/mpi3mr_cam.h | 1 + sys/modules/mpi3mr/Makefile | 3 +++ 5 files changed, 57 insertions(+) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 03fea4bdfcc7..a7bc459c1db8 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2177,6 +2177,8 @@ static int mpi3mr_issue_iocinit(struct mpi3mr_softc *sc) time_in_msec = (now.tv_sec * 1000 + now.tv_usec/1000); iocinit_req.TimeStamp = htole64(time_in_msec); + iocinit_req.MsgFlags |= MPI3_IOCINIT_MSGFLAGS_WRITESAMEDIVERT_SUPPORTED; + init_completion(&sc->init_cmds.completion); retval = mpi3mr_submit_admin_cmd(sc, &iocinit_req, sizeof(iocinit_req)); @@ -3340,6 +3342,19 @@ void mpi3mr_update_device(struct mpi3mr_softc *sc, break; } + switch (flags & MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_MASK) { + case MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_256_LB: + tgtdev->ws_len = 256; + break; + case MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_2048_LB: + tgtdev->ws_len = 2048; + break; + case MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_NO_LIMIT: + default: + tgtdev->ws_len = 0; + break; + } + switch (tgtdev->dev_type) { case MPI3_DEVICE_DEVFORM_SAS_SATA: { @@ -5649,6 +5664,7 @@ static void mpi3mr_invalidate_devhandles(struct mpi3mr_softc *sc) target->io_throttle_enabled = 0; target->io_divert = 0; target->throttle_group = NULL; + target->ws_len = 0; } } mtx_unlock_spin(&sc->target_lock); diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index 2f91b0b702dd..fa50ed035fc2 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -232,6 +232,8 @@ extern char fmt_os_ver[16]; #define MPI3MR_PERIODIC_DELAY 1 /* 1 second heartbeat/watchdog check */ +#define WRITE_SAME_32 0x0d + struct completion { unsigned int done; struct mtx lock; diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index d4cb7e9265dd..dca194a5c8cd 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -83,6 +83,7 @@ #include "mpi3mr.h" #include /* XXX for pcpu.h */ #include /* XXX for PCPU_GET */ +#include #define smp_processor_id() PCPU_GET(cpuid) @@ -102,6 +103,37 @@ extern void mpi3mr_add_sg_single(void *paddr, U8 flags, U32 length, static U32 event_count; +static +inline void mpi3mr_divert_ws(Mpi3SCSIIORequest_t *req, + struct ccb_scsiio *csio, + U16 ws_len) +{ + U8 unmap = 0, ndob = 0; + U32 num_blocks = 0; + U8 opcode = scsiio_cdb_ptr(csio)[0]; + U16 service_action = ((scsiio_cdb_ptr(csio)[8] << 8) | scsiio_cdb_ptr(csio)[9]); + + + if (opcode == WRITE_SAME_16 || + (opcode == VARIABLE_LEN_CDB && + service_action == WRITE_SAME_32)) { + + int unmap_ndob_index = (opcode == WRITE_SAME_16) ? 1 : 10; + + unmap = scsiio_cdb_ptr(csio)[unmap_ndob_index] & 0x08; + ndob = scsiio_cdb_ptr(csio)[unmap_ndob_index] & 0x01; + num_blocks = get_unaligned_be32(scsiio_cdb_ptr(csio) + + ((opcode == WRITE_SAME_16) ? 10 : 28)); + + /* Check conditions for diversion to firmware */ + if (unmap && ndob && num_blocks > ws_len) { + req->MsgFlags |= MPI3_SCSIIO_MSGFLAGS_DIVERT_TO_FIRMWARE; + req->Flags = htole32(le32toh(req->Flags) | + MPI3_SCSIIO_FLAGS_DIVERT_REASON_WRITE_SAME_TOO_LARGE); + } + } +} + static void mpi3mr_prepare_sgls(void *arg, bus_dma_segment_t *segs, int nsegs, int error) { @@ -1080,6 +1112,9 @@ mpi3mr_action_scsiio(struct mpi3mr_cam_softc *cam_sc, union ccb *ccb) break; } + if (targ->ws_len) + mpi3mr_divert_ws(req, csio, targ->ws_len); + req->Flags = htole32(mpi_control); if (csio->ccb_h.flags & CAM_CDB_POINTER) diff --git a/sys/dev/mpi3mr/mpi3mr_cam.h b/sys/dev/mpi3mr/mpi3mr_cam.h index 3a0526217f86..115ce0c4b8d7 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.h +++ b/sys/dev/mpi3mr/mpi3mr_cam.h @@ -121,6 +121,7 @@ struct mpi3mr_target { struct mpi3mr_throttle_group_info *throttle_group; uint64_t q_depth; enum mpi3mr_target_state state; + uint16_t ws_len; }; struct mpi3mr_cam_softc { diff --git a/sys/modules/mpi3mr/Makefile b/sys/modules/mpi3mr/Makefile index 3f1f63a94ac3..39aa2e3f0ddd 100644 --- a/sys/modules/mpi3mr/Makefile +++ b/sys/modules/mpi3mr/Makefile @@ -6,6 +6,9 @@ SRCS= mpi3mr_pci.c mpi3mr.c mpi3mr_cam.c mpi3mr_app.c SRCS+= opt_cam.h SRCS+= device_if.h bus_if.h pci_if.h +CFLAGS+= -I${SRCTOP}/sys/compat/linuxkpi/common/include +DEBUG_FLAGS= -g + .include CWARNFLAGS.mpi3mr_sas.c= ${NO_WUNNEEDED_INTERNAL_DECL} From nobody Wed Apr 30 17:21:48 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWJ6Mq8z5tj1Y; Wed, 30 Apr 2025 17:21:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWJ2yHQz3MT6; Wed, 30 Apr 2025 17:21:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9MzWPmV/Z7q9LD7Po6f8CYBymw28zfmpVcWZUPROZ6g=; b=NtPVX1N4j3nxxrAN8+n47SbiLx6Cja+eQ78/rvEKGa4/F1Vk2kCc2a2WHS4pNHtoAXwac9 ORTpuGNXvM/4WaDGd5DIroergRTttYGQWQFtEKEHJq07S7HVfuwtxLGKD5miB/wvyNDRTb NZo4LoCKaEleW8IUEnvuzEQbB6oYdDKIUZ9LOM90kiYt2g8bbkoi2dn31AZ+MeC7Cpt4Bh pbOOU7gDyT8W4kDjbNaES+01YeIurCjovpArH1/gmLCSSHldIirDbM/ardRo7DIA8FhkuY R6g6FlOAPqt994i6KZH41WZrj1mnwrqEvZ2aetDdt35O4OfFeV/KoQsKZs8lLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033708; a=rsa-sha256; cv=none; b=eoN+tb74qNyAyRiARcn3YJCcqOdYZqbd+gRNjNbxI3JPIHuKMlRyM6W3OJfSw3wmxj7IuG RjapC+KMUdl9+6NaWAi4zMNsKHnPF3NukaaFbzrAxL5QFVXkBUQngrxcZTPUf6sVdjrjkq aGAm9oE7at45aVsi8bAgCvrEBY7FOdT9zqUUeEnIuUnnxsX918L9+c3nrBSK/17ILmO1pJ LAB6LpQQTw8cTRdcpGZecxdPw7cfvVvbl4qqjXjgl1MZVnjN94XzXAWT/IDFn32ZXUaAy6 9Xl5r1csIaxi1UPM4FaW6o5a0szLYbx0VbfRWoUq4a+yCeD4ZWhoXYZYFCZfZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033708; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9MzWPmV/Z7q9LD7Po6f8CYBymw28zfmpVcWZUPROZ6g=; b=vGM+eimSREH8TlLuC2VV+67+y8lQY9FUiBLGGFhl7ZGzZT6FQ8YjKDSKbxsJKoLKKusRth 07k/vnv4MpP2o/dM2tUQ0uD1J2Dvxa3OdcILnRujR4aFyU7oFO9SAz8Zz8cFfNUMpplBxY Y7ZaL3OagzMxD6EByeLQQ5b+WAgN49XKhIMcmYgNtXThv9bXO+2t/OEVPA1FqN+Bv2VoUD N9F2niMl3ijVR4zjNUkPpNLHUxAj9RLOgz2IdFU0BxhBOVCPudcdqoyMM2pKsBYu94dzki X5J6naxMmPOBRyA2DAj2M3+uSOKO4WJMTwvJwKa5ccHOnyJcy6mufd3EDkoNyw== 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 4ZnkWJ2JbSzZq; Wed, 30 Apr 2025 17:21:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLmK9095179; Wed, 30 Apr 2025 17:21:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLm2T095176; Wed, 30 Apr 2025 17:21:48 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:48 GMT Message-Id: <202504301721.53UHLm2T095176@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: 46d0fea77eb4 - stable/14 - mpi3mr: configure larger max I/O size if the HBA firmware supports it List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org 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/14 X-Git-Reftype: branch X-Git-Commit: 46d0fea77eb4429eee37481a333a72d6b987647a Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=46d0fea77eb4429eee37481a333a72d6b987647a commit 46d0fea77eb4429eee37481a333a72d6b987647a Author: Chuck Silvers AuthorDate: 2025-04-23 23:11:32 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: configure larger max I/O size if the HBA firmware supports it The max I/O size that an mpi3mr HBA supports is reported in the IOCFacts structure (with 0 representing the legacy max I/O size of 1 MB). By default, set the max I/O size of devices attached to mpi3mr controllers to the smaller of the HBA's max I/O size and the kernel's maxphys. Allow this default to be overriden by a global tunable "hw.mpi3mr.max_sgl_entries" or by a per-controller tunable "dev.mpi3mr.N.max_sgl_entries". Sponsored by: Netflix Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D49090 (cherry picked from commit f2605f67a13eb1f1427ee58a097791ca25359a5e) --- sys/dev/mpi3mr/mpi3mr.c | 11 +++++++++-- sys/dev/mpi3mr/mpi3mr.h | 12 +++++++++--- sys/dev/mpi3mr/mpi3mr_cam.c | 10 ++++++---- sys/dev/mpi3mr/mpi3mr_pci.c | 18 +++++++++++++++++- 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index a7bc459c1db8..8c4bd3c3ad35 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1618,6 +1618,7 @@ static int mpi3mr_process_factsdata(struct mpi3mr_softc *sc, (facts_data->MaxPCIeSwitches); sc->facts.max_sasexpanders = (facts_data->MaxSASExpanders); + sc->facts.max_data_length = facts_data->MaxDataLength; sc->facts.max_sasinitiators = (facts_data->MaxSASInitiators); sc->facts.max_enclosures = (facts_data->MaxEnclosures); @@ -1652,6 +1653,10 @@ static int mpi3mr_process_factsdata(struct mpi3mr_softc *sc, sc->facts.io_throttle_low = facts_data->IOThrottleLow; sc->facts.io_throttle_high = facts_data->IOThrottleHigh; + if (sc->facts.max_data_length == MPI3_IOCFACTS_MAX_DATA_LENGTH_NOT_REPORTED) + sc->facts.max_data_length = MPI3MR_DEFAULT_MAX_IO_SIZE; + else + sc->facts.max_data_length *= MPI3MR_PAGE_SIZE_4K; /*Store in 512b block count*/ if (sc->facts.io_throttle_data_length) sc->io_throttle_data_length = @@ -2512,7 +2517,9 @@ static int mpi3mr_alloc_chain_bufs(struct mpi3mr_softc *sc) goto out_failed; } - sz = MPI3MR_CHAINSGE_SIZE; + if (sc->max_sgl_entries > sc->facts.max_data_length / PAGE_SIZE) + sc->max_sgl_entries = sc->facts.max_data_length / PAGE_SIZE; + sz = sc->max_sgl_entries * sizeof(Mpi3SGESimple_t); if (bus_dma_tag_create(sc->mpi3mr_parent_dmat, /* parent */ 4096, 0, /* algnmnt, boundary */ @@ -4962,7 +4969,7 @@ mpi3mr_alloc_requests(struct mpi3mr_softc *sc) struct mpi3mr_cmd *cmd; int i, j, nsegs, ret; - nsegs = MPI3MR_SG_DEPTH; + nsegs = sc->max_sgl_entries; ret = bus_dma_tag_create( sc->mpi3mr_parent_dmat, /* parent */ 1, 0, /* algnmnt, boundary */ sc->dma_loaddr, /* lowaddr */ diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index fa50ed035fc2..bcc8df020c1d 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -96,10 +96,11 @@ #define MPI3MR_NAME_LENGTH 32 #define IOCNAME "%s: " +#define MPI3MR_DEFAULT_MAX_IO_SIZE (1 * 1024 * 1024) + #define SAS4116_CHIP_REV_A0 0 #define SAS4116_CHIP_REV_B0 1 -#define MPI3MR_SG_DEPTH (MPI3MR_4K_PGSZ/sizeof(Mpi3SGESimple_t)) #define MPI3MR_MAX_SECTORS 2048 #define MPI3MR_MAX_CMDS_LUN 7 #define MPI3MR_MAX_CDB_LENGTH 16 @@ -110,7 +111,12 @@ #define MPI3MR_RAID_QDEPTH 128 #define MPI3MR_NVME_QDEPTH 128 +/* Definitions for internal SGL and Chain SGL buffers */ #define MPI3MR_4K_PGSZ 4096 +#define MPI3MR_PAGE_SIZE_4K 4096 +#define MPI3MR_DEFAULT_SGL_ENTRIES 256 +#define MPI3MR_MAX_SGL_ENTRIES 2048 + #define MPI3MR_AREQQ_SIZE (2 * MPI3MR_4K_PGSZ) #define MPI3MR_AREPQ_SIZE (4 * MPI3MR_4K_PGSZ) #define MPI3MR_AREQ_FRAME_SZ 128 @@ -126,8 +132,6 @@ #define MPI3MR_THRESHOLD_REPLY_COUNT 100 -#define MPI3MR_CHAINSGE_SIZE MPI3MR_4K_PGSZ - #define MPI3MR_SGEFLAGS_SYSTEM_SIMPLE_END_OF_LIST \ (MPI3_SGE_FLAGS_ELEMENT_TYPE_SIMPLE | MPI3_SGE_FLAGS_DLAS_SYSTEM | \ MPI3_SGE_FLAGS_END_OF_LIST) @@ -336,6 +340,7 @@ struct mpi3mr_ioc_facts U16 max_perids; U16 max_pds; U16 max_sasexpanders; + U32 max_data_length; U16 max_sasinitiators; U16 max_enclosures; U16 max_pcieswitches; @@ -672,6 +677,7 @@ struct mpi3mr_softc { struct mtx target_lock; U16 max_host_ios; + U32 max_sgl_entries; bus_dma_tag_t chain_sgl_list_tag; struct mpi3mr_chain *chain_sgl_list; U16 chain_bitmap_sz; diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index 537811077164..80dadb9f4283 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -177,7 +177,7 @@ static void mpi3mr_prepare_sgls(void *arg, bus_dmamap_sync(sc->buffer_dmat, cm->dmamap, BUS_DMASYNC_PREWRITE); - KASSERT(nsegs <= MPI3MR_SG_DEPTH && nsegs > 0, + KASSERT(nsegs <= sc->max_sgl_entries && nsegs > 0, ("%s: bad SGE count: %d\n", device_get_nameunit(sc->mpi3mr_dev), nsegs)); KASSERT(scsiio_req->DataLength != 0, ("%s: Data segments (%d), but DataLength == 0\n", @@ -219,7 +219,7 @@ static void mpi3mr_prepare_sgls(void *arg, chain = chain_req->buf; chain_dma = chain_req->buf_phys; - memset(chain_req->buf, 0, PAGE_SIZE); + memset(chain_req->buf, 0, sc->max_sgl_entries * sizeof(Mpi3SGESimple_t)); sges_in_segment = sges_left; chain_length = sges_in_segment * sizeof(Mpi3SGESimple_t); @@ -1155,7 +1155,7 @@ mpi3mr_action_scsiio(struct mpi3mr_cam_softc *cam_sc, union ccb *ccb) return; case CAM_DATA_VADDR: case CAM_DATA_BIO: - if (csio->dxfer_len > (MPI3MR_SG_DEPTH * MPI3MR_4K_PGSZ)) { + if (csio->dxfer_len > (sc->max_sgl_entries * PAGE_SIZE)) { mpi3mr_set_ccbstatus(ccb, CAM_REQ_TOO_BIG); mpi3mr_release_command(cm); xpt_done(ccb); @@ -1306,8 +1306,10 @@ mpi3mr_cam_action(struct cam_sim *sim, union ccb *ccb) { struct mpi3mr_cam_softc *cam_sc; struct mpi3mr_target *targ; + struct mpi3mr_softc *sc; cam_sc = cam_sim_softc(sim); + sc = cam_sc->sc; mpi3mr_dprint(cam_sc->sc, MPI3MR_TRACE, "ccb func_code 0x%x target id: 0x%x\n", ccb->ccb_h.func_code, ccb->ccb_h.target_id); @@ -1358,7 +1360,7 @@ mpi3mr_cam_action(struct cam_sim *sim, union ccb *ccb) "PCI device target_id: %u max io size: %u\n", ccb->ccb_h.target_id, cpi->maxio); } else { - cpi->maxio = PAGE_SIZE * (MPI3MR_SG_DEPTH - 1); + cpi->maxio = PAGE_SIZE * (sc->max_sgl_entries - 1); } mpi3mr_set_ccbstatus(ccb, CAM_REQ_CMP); break; diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index 95bd39c90964..194401c5a847 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -178,12 +178,15 @@ mpi3mr_get_tunables(struct mpi3mr_softc *sc) sc->reset_in_progress = 0; sc->reset.type = 0; sc->iot_enable = 1; + sc->max_sgl_entries = maxphys / PAGE_SIZE; + /* * Grab the global variables. */ TUNABLE_INT_FETCH("hw.mpi3mr.debug_level", &sc->mpi3mr_debug); TUNABLE_INT_FETCH("hw.mpi3mr.ctrl_reset", &sc->reset.type); TUNABLE_INT_FETCH("hw.mpi3mr.iot_enable", &sc->iot_enable); + TUNABLE_INT_FETCH("hw.mpi3mr.max_sgl_entries", &sc->max_sgl_entries); /* Grab the unit-instance variables */ snprintf(tmpstr, sizeof(tmpstr), "dev.mpi3mr.%d.debug_level", @@ -197,6 +200,10 @@ mpi3mr_get_tunables(struct mpi3mr_softc *sc) snprintf(tmpstr, sizeof(tmpstr), "dev.mpi3mr.%d.iot_enable", device_get_unit(sc->mpi3mr_dev)); TUNABLE_INT_FETCH(tmpstr, &sc->iot_enable); + + snprintf(tmpstr, sizeof(tmpstr), "dev.mpi3mr.%d.max_sgl_entries", + device_get_unit(sc->mpi3mr_dev)); + TUNABLE_INT_FETCH(tmpstr, &sc->max_sgl_entries); } static struct mpi3mr_ident * @@ -443,7 +450,16 @@ mpi3mr_pci_attach(device_t dev) sc->mpi3mr_dev = dev; mpi3mr_get_tunables(sc); - + + if (sc->max_sgl_entries > MPI3MR_MAX_SGL_ENTRIES) + sc->max_sgl_entries = MPI3MR_MAX_SGL_ENTRIES; + else if (sc->max_sgl_entries < MPI3MR_DEFAULT_SGL_ENTRIES) + sc->max_sgl_entries = MPI3MR_DEFAULT_SGL_ENTRIES; + else { + sc->max_sgl_entries /= MPI3MR_DEFAULT_SGL_ENTRIES; + sc->max_sgl_entries *= MPI3MR_DEFAULT_SGL_ENTRIES; + } + if ((error = mpi3mr_initialize_ioc(sc, MPI3MR_INIT_TYPE_INIT)) != 0) { mpi3mr_dprint(sc, MPI3MR_ERROR, "FW initialization failed\n"); goto load_failed; From nobody Wed Apr 30 17:21:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWM1qckz5tj1h; Wed, 30 Apr 2025 17:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWL4ZSqz3MP8; Wed, 30 Apr 2025 17:21:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033710; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7RPuXFLjdUAB0wfffgyFl9UIFMZBoIu+nm+EqVgbS/s=; b=yQ1z/yqUYovbZ1tPaHNDMWHnryqc+oK+o/fLbsH5dktzQMmkh2DZpR58nOOyBw3mzjaUsE nAQl0ilA822tJkkECJ+S6ofVxc1MMaQUpKK60FcXV/X8vS8mfNtLFCYQoRV3W2vzn0IC7D GZ9SFDwyepWYh8a3izEvPrSuw9QoVhJbmOEDW3TyAijGhz8K7uVRnGIKQdSGHnpVR5KH7h 7qNPIxFOb0FZNmsNJTrtRmHzpieR49dEqNZqYI6Udy/F9cxt0z/FRChpJ5zu9fvHLedPYF 6R1KD50PbAy7bYuwjd7BJqWvXhxhhF2krXxeS0NMboDin+LWGCWnIGiWgTaRiQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033710; a=rsa-sha256; cv=none; b=E11UD7ADGfspKtwqPAW/GlWnp/nDfsTmnuU250XXnBugiqMn0sPgc2891VRcsS+bbWQfd/ OkAmtk6Ya5d3/3X9EuOQA4+uA/RglC7rZwHspOZcpFYxyn+E3TGDbniT6M4uoQhMNg2vxF k5hZ32e7mS1LAhqjgOEAXGFE8d/B8Y3182ILg7gliy9vUvim1nf6qEhA8nqTauFmCNRQxs RNdqy8ZVsSUJGjHanT3gwFSzpBGwnK+pAnXSaofwiFAnvpLNeEUyvJYvgORcmaYtxqJz4S mfwXJWq084j2M7aaSdit2ijkY1/CRON7yEi9uxVK9/GJX2spnfGcnWas12b+5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033710; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7RPuXFLjdUAB0wfffgyFl9UIFMZBoIu+nm+EqVgbS/s=; b=gBrKhG7H6ykp6Srhr/PId776Wl7PXqOmAzNu/gLYYfMpb2yHLpHjrtjeKztQzE52+8lhHT F8/4dAguaa/dre4kJWiOFPOc64IpZ7XgZAIZGEiIT2AmUggdNQLX4baq/UkuwdDtcF5Syy o6kBSrHCklsVOgxuOcaiCJHg9wAVhNcgHsNbTjsmhD7Mhk2yjT3wAL8fsBNopGK0xwxqZ4 IR9y9euWE7x60dQOysCsuBb2EShGMRySX0RK3yPQ+oaPLMxQu/K7tAJRYzI8f3PFlWotwT H0wRJMJhj6GuL5zhoNVhbnyVTsIoctNjGsC+8Ktsmf1upvsY2eEfqh1OTp76KA== 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 4ZnkWL47fLzZs; Wed, 30 Apr 2025 17:21:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLocN095250; Wed, 30 Apr 2025 17:21:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLoq1095246; Wed, 30 Apr 2025 17:21:50 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:50 GMT Message-Id: <202504301721.53UHLoq1095246@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: 22b4023cba4e - stable/14 - mpi3mr: Set Driver Capability for OS Exposure in IOCInit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 22b4023cba4e40520090eefff5bdf8b841f754a8 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=22b4023cba4e40520090eefff5bdf8b841f754a8 commit 22b4023cba4e40520090eefff5bdf8b841f754a8 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:34:12 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: Set Driver Capability for OS Exposure in IOCInit This patch updates the driver to set the OSExposure field in DriverCapability during IOCInit to MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL(0x1), aligning with the latest MPI specification version 36. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49745 (cherry picked from commit d14c4ea0caebb9d0ddb613e348cb8c1a19e8d8fc) --- sys/dev/mpi3mr/mpi3mr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 8c4bd3c3ad35..cbf87f99faec 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2146,7 +2146,7 @@ static int mpi3mr_issue_iocinit(struct mpi3mr_softc *sc) strcpy(drvr_info->DriverName, MPI3MR_DRIVER_NAME); strcpy(drvr_info->DriverVersion, MPI3MR_DRIVER_VERSION); strcpy(drvr_info->DriverReleaseDate, MPI3MR_DRIVER_RELDATE); - drvr_info->DriverCapabilities = 0; + drvr_info->DriverCapabilities = MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL; memcpy((U8 *)&sc->driver_info, (U8 *)drvr_info, sizeof(sc->driver_info)); memset(&iocinit_req, 0, sizeof(iocinit_req)); From nobody Wed Apr 30 17:21:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWL1lsYz5thmc; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWK3mVXz3MRB; Wed, 30 Apr 2025 17:21:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033709; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IS4jh0ZLvrxKsE1nkK0Dw/tBQVKIG1LkrA7Al9xpUOA=; b=Bj1OZTXQpKtuMXxnt/JEXy0JcWWNbi/q9cXkh2VKtfe7Xs4rqO45AGfpqPX0lN48YkQsPo riofk+B3B2jTRnLo0fZ+5dgPWRlA9AHBkj7g6GWBTezt3fCurUIoiIG7H2gKNw+UMA5etX gXp3rAJgONykiiyP0aksoo2sMDm2XusCSgkezwwMW2pHnlbzcTp/1gpnnDi6n4yfT0X+9B 1jgi7DFXX3ehMmViBg8C33uzohtBSHwbTgwd64TcxnyavNLAYqOlD1pIQwNbQ9ZtYar5HE bzQlzeXuBegXtTI3xjrdnGcly6G7G4KMSRJPM4Kl3J5ZLwMYjayy37+EV185vA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033709; a=rsa-sha256; cv=none; b=VfljwIeU+98PidSi6zKwCjg/aLw0spyJzuiWcFCypHe/uvmpeQQfPlKWJBYWZx9Fw2psBd bst2wgdE6u1aNETKV16gdqGkoExoLbiRBEEFjXJbejLRLYzJV7BQiqV+2ooVYAjOYUcRi8 PaYRFProDDFLjD6GtNjjPcmVBUsSMynEeQkkFbm5loOdz9tmZEbVXJ8LlDB+16T/xACFeg /Gk0OFcPuzmUprQ0D24SeG8Q8r+VsbM+GVRWlS7C4nlX3TU38gdMGYVUxjCC/XarUVQNp9 nfwGA5l5zekA8mqg8iNdkbcuOVOcGh8sD5qTaiz7/zkCZUTTUuoAh10J4/foWA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033709; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IS4jh0ZLvrxKsE1nkK0Dw/tBQVKIG1LkrA7Al9xpUOA=; b=qBo/ga2rzIatb18piUOPwkDDnGYr8Qg7wNq+Mo3pwo0GwVMQt2xzPCgbCgvIQdIuIBVjoD ndei8YPgfLCUXOCOyfkytF+qZI8YOdMHBwnQ12Lvi/NEA/Peuqkn67Y4CQ1nI7yv2oLdYc k94RqNykINu8+/QAQmC6PZGbQf+mG3MhWG1NvvAeeaac9CnnyMOK+18oZRNVa7XNON+XA/ 1t//gc59LA+gaqQdfGEYt+TiNopcEyQn43mlzuwyxGd7QezjOTOI/DjBnhuBEXB/iGWaxK ui8FQgMP08bY+KdKgryVp0Za04oGPKW+kozka169j85TYsuvfKATNQdvwJbLZQ== 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 4ZnkWK3C8Pzk0; Wed, 30 Apr 2025 17:21:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLnXM095212; Wed, 30 Apr 2025 17:21:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLnpv095209; Wed, 30 Apr 2025 17:21:49 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:49 GMT Message-Id: <202504301721.53UHLnpv095209@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: 60cf1576501d - stable/14 - mpi3mr: Update MPI Header to Version 36 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 60cf1576501def5df068f8e2ad353d8f8ac2e2e3 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=60cf1576501def5df068f8e2ad353d8f8ac2e2e3 commit 60cf1576501def5df068f8e2ad353d8f8ac2e2e3 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:23:44 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:52 +0000 mpi3mr: Update MPI Header to Version 36 Updated the MPI header files to version 36 to align with the latest MPI specification. This includes updated structures, field definitions, and constants required for compatibility with updated firmware. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49743 (cherry picked from commit 92f340d137ba5d6db7610ba1dae35842e2c9c8ea) --- sys/dev/mpi3mr/mpi/mpi30_api.h | 2 +- sys/dev/mpi3mr/mpi/mpi30_cnfg.h | 200 ++++++++++++++++++++++++++++++++++- sys/dev/mpi3mr/mpi/mpi30_image.h | 26 +++-- sys/dev/mpi3mr/mpi/mpi30_init.h | 10 +- sys/dev/mpi3mr/mpi/mpi30_ioc.h | 32 +++++- sys/dev/mpi3mr/mpi/mpi30_pci.h | 5 +- sys/dev/mpi3mr/mpi/mpi30_raid.h | 3 +- sys/dev/mpi3mr/mpi/mpi30_sas.h | 4 +- sys/dev/mpi3mr/mpi/mpi30_targ.h | 11 +- sys/dev/mpi3mr/mpi/mpi30_tool.h | 7 +- sys/dev/mpi3mr/mpi/mpi30_transport.h | 79 +++++++++----- sys/dev/mpi3mr/mpi/mpi30_type.h | 3 +- 12 files changed, 336 insertions(+), 46 deletions(-) diff --git a/sys/dev/mpi3mr/mpi/mpi30_api.h b/sys/dev/mpi3mr/mpi/mpi30_api.h index 0c070672a16b..8b05deb7717c 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_api.h +++ b/sys/dev/mpi3mr/mpi/mpi30_api.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without diff --git a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h index 410ed0471f78..d4cec3330a56 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_cnfg.h +++ b/sys/dev/mpi3mr/mpi/mpi30_cnfg.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -64,6 +64,7 @@ * Configuration Page Attributes * ****************************************************************************/ #define MPI3_CONFIG_PAGEATTR_MASK (0xF0) +#define MPI3_CONFIG_PAGEATTR_SHIFT (4) #define MPI3_CONFIG_PAGEATTR_READ_ONLY (0x00) #define MPI3_CONFIG_PAGEATTR_CHANGEABLE (0x10) #define MPI3_CONFIG_PAGEATTR_PERSISTENT (0x20) @@ -84,58 +85,79 @@ /**** Device PageAddress Format ****/ #define MPI3_DEVICE_PGAD_FORM_MASK (0xF0000000) +#define MPI3_DEVICE_PGAD_FORM_SHIFT (28) #define MPI3_DEVICE_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_DEVICE_PGAD_FORM_HANDLE (0x20000000) #define MPI3_DEVICE_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_DEVICE_PGAD_HANDLE_SHIFT (0) /**** SAS Expander PageAddress Format ****/ #define MPI3_SAS_EXPAND_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SAS_EXPAND_PGAD_FORM_SHIFT (28) #define MPI3_SAS_EXPAND_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_SAS_EXPAND_PGAD_FORM_HANDLE_PHY_NUM (0x10000000) #define MPI3_SAS_EXPAND_PGAD_FORM_HANDLE (0x20000000) #define MPI3_SAS_EXPAND_PGAD_PHYNUM_MASK (0x00FF0000) #define MPI3_SAS_EXPAND_PGAD_PHYNUM_SHIFT (16) #define MPI3_SAS_EXPAND_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_SAS_EXPAND_PGAD_HANDLE_SHIFT (0) /**** SAS Phy PageAddress Format ****/ #define MPI3_SAS_PHY_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SAS_PHY_PGAD_FORM_SHIFT (28) #define MPI3_SAS_PHY_PGAD_FORM_PHY_NUMBER (0x00000000) #define MPI3_SAS_PHY_PGAD_PHY_NUMBER_MASK (0x000000FF) +#define MPI3_SAS_PHY_PGAD_PHY_NUMBER_SHIFT (0) /**** SAS Port PageAddress Format ****/ #define MPI3_SASPORT_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SASPORT_PGAD_FORM_SHIFT (28) #define MPI3_SASPORT_PGAD_FORM_GET_NEXT_PORT (0x00000000) #define MPI3_SASPORT_PGAD_FORM_PORT_NUM (0x10000000) #define MPI3_SASPORT_PGAD_PORT_NUMBER_MASK (0x000000FF) +#define MPI3_SASPORT_PGAD_PORT_NUMBER_SHIFT (0) /**** Enclosure PageAddress Format ****/ #define MPI3_ENCLOS_PGAD_FORM_MASK (0xF0000000) +#define MPI3_ENCLOS_PGAD_FORM_SHIFT (28) #define MPI3_ENCLOS_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_ENCLOS_PGAD_FORM_HANDLE (0x10000000) #define MPI3_ENCLOS_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_ENCLOS_PGAD_HANDLE_SHIFT (0) /**** PCIe Switch PageAddress Format ****/ #define MPI3_PCIE_SWITCH_PGAD_FORM_MASK (0xF0000000) +#define MPI3_PCIE_SWITCH_PGAD_FORM_SHIFT (28) #define MPI3_PCIE_SWITCH_PGAD_FORM_GET_NEXT_HANDLE (0x00000000) #define MPI3_PCIE_SWITCH_PGAD_FORM_HANDLE_PORT_NUM (0x10000000) #define MPI3_PCIE_SWITCH_PGAD_FORM_HANDLE (0x20000000) #define MPI3_PCIE_SWITCH_PGAD_PORTNUM_MASK (0x00FF0000) #define MPI3_PCIE_SWITCH_PGAD_PORTNUM_SHIFT (16) #define MPI3_PCIE_SWITCH_PGAD_HANDLE_MASK (0x0000FFFF) +#define MPI3_PCIE_SWITCH_PGAD_HANDLE_SHIFT (0) /**** PCIe Link PageAddress Format ****/ #define MPI3_PCIE_LINK_PGAD_FORM_MASK (0xF0000000) +#define MPI3_PCIE_LINK_PGAD_FORM_SHIFT (28) #define MPI3_PCIE_LINK_PGAD_FORM_GET_NEXT_LINK (0x00000000) #define MPI3_PCIE_LINK_PGAD_FORM_LINK_NUM (0x10000000) #define MPI3_PCIE_LINK_PGAD_LINKNUM_MASK (0x000000FF) +#define MPI3_PCIE_LINK_PGAD_LINKNUM_SHIFT (0) /**** Security PageAddress Format ****/ #define MPI3_SECURITY_PGAD_FORM_MASK (0xF0000000) +#define MPI3_SECURITY_PGAD_FORM_SHIFT (28) #define MPI3_SECURITY_PGAD_FORM_GET_NEXT_SLOT (0x00000000) #define MPI3_SECURITY_PGAD_FORM_SLOT_NUM (0x10000000) #define MPI3_SECURITY_PGAD_SLOT_GROUP_MASK (0x0000FF00) #define MPI3_SECURITY_PGAD_SLOT_GROUP_SHIFT (8) #define MPI3_SECURITY_PGAD_SLOT_MASK (0x000000FF) +#define MPI3_SECURITY_PGAD_SLOT_SHIFT (0) + +/**** Instance PageAddress Format ****/ +#define MPI3_INSTANCE_PGAD_INSTANCE_MASK (0x0000FFFF) +#define MPI3_INSTANCE_PGAD_INSTANCE_SHIFT (0) + /***************************************************************************** * Configuration Request Message * @@ -149,7 +171,8 @@ typedef struct _MPI3_CONFIG_REQUEST U8 IOCUseOnly06; /* 0x06 */ U8 MsgFlags; /* 0x07 */ U16 ChangeCount; /* 0x08 */ - U16 Reserved0A; /* 0x0A */ + U8 ProxyIOCNumber; /* 0x0A */ + U8 Reserved0B; /* 0x0B */ U8 PageVersion; /* 0x0C */ U8 PageNumber; /* 0x0D */ U8 PageType; /* 0x0E */ @@ -212,6 +235,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_APHYINFO_BREAK_REPLY_CAPABLE (0x00000010) #define MPI3_SAS_APHYINFO_REASON_MASK (0x0000000F) +#define MPI3_SAS_APHYINFO_REASON_SHIFT (0) #define MPI3_SAS_APHYINFO_REASON_UNKNOWN (0x00000000) #define MPI3_SAS_APHYINFO_REASON_POWER_ON (0x00000001) #define MPI3_SAS_APHYINFO_REASON_HARD_RESET (0x00000002) @@ -231,6 +255,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PHYINFO_STATUS_VACANT (0x80000000) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_MASK (0x18000000) +#define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_SHIFT (27) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_ACTIVE (0x00000000) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_PARTIAL (0x08000000) #define MPI3_SAS_PHYINFO_PHY_POWER_CONDITION_SLUMBER (0x10000000) @@ -247,6 +272,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PHYINFO_ZONING_ENABLED (0x00100000) #define MPI3_SAS_PHYINFO_REASON_MASK (0x000F0000) +#define MPI3_SAS_PHYINFO_REASON_SHIFT (16) #define MPI3_SAS_PHYINFO_REASON_UNKNOWN (0x00000000) #define MPI3_SAS_PHYINFO_REASON_POWER_ON (0x00010000) #define MPI3_SAS_PHYINFO_REASON_HARD_RESET (0x00020000) @@ -266,12 +292,14 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PHYINFO_PARTIAL_PATHWAY_TIME_SHIFT (8) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_MASK (0x000000F0) +#define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_SHIFT (4) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_DIRECT (0x00000000) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_SUBTRACTIVE (0x00000010) #define MPI3_SAS_PHYINFO_ROUTING_ATTRIBUTE_TABLE (0x00000020) /**** Defines for the ProgrammedLinkRate field ****/ #define MPI3_SAS_PRATE_MAX_RATE_MASK (0xF0) +#define MPI3_SAS_PRATE_MAX_RATE_SHIFT (4) #define MPI3_SAS_PRATE_MAX_RATE_NOT_PROGRAMMABLE (0x00) #define MPI3_SAS_PRATE_MAX_RATE_1_5 (0x80) #define MPI3_SAS_PRATE_MAX_RATE_3_0 (0x90) @@ -279,6 +307,7 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_SAS_PRATE_MAX_RATE_12_0 (0xB0) #define MPI3_SAS_PRATE_MAX_RATE_22_5 (0xC0) #define MPI3_SAS_PRATE_MIN_RATE_MASK (0x0F) +#define MPI3_SAS_PRATE_MIN_RATE_SHIFT (0) #define MPI3_SAS_PRATE_MIN_RATE_NOT_PROGRAMMABLE (0x00) #define MPI3_SAS_PRATE_MIN_RATE_1_5 (0x08) #define MPI3_SAS_PRATE_MIN_RATE_3_0 (0x09) @@ -288,12 +317,14 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER /**** Defines for the HwLinkRate field ****/ #define MPI3_SAS_HWRATE_MAX_RATE_MASK (0xF0) +#define MPI3_SAS_HWRATE_MAX_RATE_SHIFT (4) #define MPI3_SAS_HWRATE_MAX_RATE_1_5 (0x80) #define MPI3_SAS_HWRATE_MAX_RATE_3_0 (0x90) #define MPI3_SAS_HWRATE_MAX_RATE_6_0 (0xA0) #define MPI3_SAS_HWRATE_MAX_RATE_12_0 (0xB0) #define MPI3_SAS_HWRATE_MAX_RATE_22_5 (0xC0) #define MPI3_SAS_HWRATE_MIN_RATE_MASK (0x0F) +#define MPI3_SAS_HWRATE_MIN_RATE_SHIFT (0) #define MPI3_SAS_HWRATE_MIN_RATE_1_5 (0x08) #define MPI3_SAS_HWRATE_MIN_RATE_3_0 (0x09) #define MPI3_SAS_HWRATE_MIN_RATE_6_0 (0x0A) @@ -331,6 +362,9 @@ typedef struct _MPI3_CONFIG_PAGE_HEADER #define MPI3_MFGPAGE_DEVID_SAS5116_MPI_NS (0x00B5) #define MPI3_MFGPAGE_DEVID_SAS5116_NVME_NS (0x00B6) #define MPI3_MFGPAGE_DEVID_SAS5116_PCIE_SWITCH (0x00B8) +#define MPI3_MFGPAGE_DEVID_SAS5248_MPI (0x00F0) +#define MPI3_MFGPAGE_DEVID_SAS5248_MPI_NS (0x00F1) +#define MPI3_MFGPAGE_DEVID_SAS5248_PCIE_SWITCH (0x00F2) /***************************************************************************** * Manufacturing Page 0 * @@ -478,20 +512,28 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY /**** Defines for FunctionFlags when FunctionCode is ISTWI_RESET ****/ #define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_MASK (0x01) +#define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_SHIFT (0) #define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_ISTWI (0x00) #define MPI3_MAN6_GPIO_ISTWI_RESET_FUNCTIONFLAGS_DEVSELECT_RECEPTACLEID (0x01) /**** Defines for Param1 (Flags) when FunctionCode is EXT_INTERRUPT ****/ #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_MASK (0xF0) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_SHIFT (4) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_GENERIC (0x00) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_CABLE_MGMT (0x10) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_SOURCE_ACTIVE_CABLE_OVERCURRENT (0x20) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_ACK_REQUIRED (0x02) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_MASK (0x01) +#define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_SHIFT (0) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_EDGE (0x00) #define MPI3_MAN6_GPIO_EXTINT_PARAM1_FLAGS_TRIGGER_LEVEL (0x01) +/**** Defines for Param1 (LEVEL) when FunctionCode is OVER_TEMPERATURE ****/ +#define MPI3_MAN6_GPIO_OVER_TEMP_PARAM1_LEVEL_WARNING (0x00) +#define MPI3_MAN6_GPIO_OVER_TEMP_PARAM1_LEVEL_CRITICAL (0x01) +#define MPI3_MAN6_GPIO_OVER_TEMP_PARAM1_LEVEL_FATAL (0x02) + /**** Defines for Param1 (PHY STATE) when FunctionCode is PORT_STATUS_GREEN ****/ #define MPI3_MAN6_GPIO_PORT_GREEN_PARAM1_PHY_STATUS_ALL_UP (0x00) #define MPI3_MAN6_GPIO_PORT_GREEN_PARAM1_PHY_STATUS_ONE_OR_MORE_UP (0x01) @@ -507,9 +549,11 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY /**** Defines for the Flags field ****/ #define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_MASK (0x0100) +#define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_SHIFT (8) #define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_FAST_EDGE (0x0100) #define MPI3_MAN6_GPIO_FLAGS_SLEW_RATE_SLOW_EDGE (0x0000) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_MASK (0x00C0) +#define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_SHIFT (6) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_100OHM (0x0000) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_66OHM (0x0040) #define MPI3_MAN6_GPIO_FLAGS_DRIVE_STRENGTH_50OHM (0x0080) @@ -519,6 +563,7 @@ typedef struct _MPI3_MAN6_GPIO_ENTRY #define MPI3_MAN6_GPIO_FLAGS_ACTIVE_HIGH (0x0008) #define MPI3_MAN6_GPIO_FLAGS_BI_DIR_ENABLED (0x0004) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_MASK (0x0003) +#define MPI3_MAN6_GPIO_FLAGS_DIRECTION_SHIFT (0) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_INPUT (0x0000) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_OPEN_DRAIN_OUTPUT (0x0001) #define MPI3_MAN6_GPIO_FLAGS_DIRECTION_OPEN_SOURCE_OUTPUT (0x0002) @@ -571,9 +616,11 @@ typedef struct _MPI3_MAN7_RECEPTACLE_INFO /**** Defines for PEDClk field ****/ #define MPI3_MAN7_PEDCLK_ROUTING_MASK (0x10) +#define MPI3_MAN7_PEDCLK_ROUTING_SHIFT (4) #define MPI3_MAN7_PEDCLK_ROUTING_DIRECT (0x00) #define MPI3_MAN7_PEDCLK_ROUTING_CLOCK_BUFFER (0x10) #define MPI3_MAN7_PEDCLK_ID_MASK (0x0F) +#define MPI3_MAN7_PEDCLK_ID_SHIFT (0) #ifndef MPI3_MAN7_RECEPTACLE_INFO_MAX #define MPI3_MAN7_RECEPTACLE_INFO_MAX (1) @@ -595,6 +642,7 @@ typedef struct _MPI3_MAN_PAGE7 /**** Defines for Flags field ****/ #define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_MASK (0x01) +#define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_SHIFT (0) #define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_0 (0x00) #define MPI3_MAN7_FLAGS_BASE_ENCLOSURE_LEVEL_1 (0x01) @@ -966,6 +1014,7 @@ typedef struct _MPI3_MAN11_BOARD_FAN_DEVICE_FORMAT /**** Defines for the Flags field ****/ #define MPI3_MAN11_BOARD_FAN_FLAGS_FAN_CTRLR_TYPE_MASK (0x07) +#define MPI3_MAN11_BOARD_FAN_FLAGS_FAN_CTRLR_TYPE_SHIFT (0) #define MPI3_MAN11_BOARD_FAN_FLAGS_FAN_CTRLR_TYPE_AMC6821 (0x00) typedef union _MPI3_MAN11_DEVICE_SPECIFIC_FORMAT @@ -1068,9 +1117,11 @@ typedef struct _MPI3_MAN_PAGE12 #define MPI3_MAN12_FLAGS_GROUP_ID_DISABLED (0x0100) #define MPI3_MAN12_FLAGS_SIO_CLK_FILTER_ENABLED (0x0004) #define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_MASK (0x0002) +#define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_SHIFT (1) #define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_PUSH_PULL (0x0000) #define MPI3_MAN12_FLAGS_SCLOCK_SLOAD_TYPE_OPEN_DRAIN (0x0002) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_MASK (0x0001) +#define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_SHIFT (0) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_PUSH_PULL (0x0000) #define MPI3_MAN12_FLAGS_SDATAOUT_TYPE_OPEN_DRAIN (0x0001) @@ -1090,6 +1141,7 @@ typedef struct _MPI3_MAN_PAGE12 /*** Defines for the Pattern field ****/ #define MPI3_MAN12_PATTERN_RATE_MASK (0xE0000000) +#define MPI3_MAN12_PATTERN_RATE_SHIFT (29) #define MPI3_MAN12_PATTERN_RATE_2_HZ (0x00000000) #define MPI3_MAN12_PATTERN_RATE_4_HZ (0x20000000) #define MPI3_MAN12_PATTERN_RATE_8_HZ (0x40000000) @@ -1301,14 +1353,17 @@ typedef struct _MPI3_MAN_PAGE20 /**** Defines for the AllowedPersonalities field ****/ #define MPI3_MAN20_ALLOWEDPERSON_RAID_MASK (0x02) +#define MPI3_MAN20_ALLOWEDPERSON_RAID_SHIFT (1) #define MPI3_MAN20_ALLOWEDPERSON_RAID_ALLOWED (0x02) #define MPI3_MAN20_ALLOWEDPERSON_RAID_NOT_ALLOWED (0x00) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_MASK (0x01) +#define MPI3_MAN20_ALLOWEDPERSON_EHBA_SHIFT (0) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_ALLOWED (0x01) #define MPI3_MAN20_ALLOWEDPERSON_EHBA_NOT_ALLOWED (0x00) /**** Defines for the NonpremiumFeatures field ****/ #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_MASK (0x01) +#define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_SHIFT (0) #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_ENABLED (0x00) #define MPI3_MAN20_NONPREMUIM_DISABLE_PD_DEGRADED_DISABLED (0x01) @@ -1329,13 +1384,16 @@ typedef struct _MPI3_MAN_PAGE21 /**** Defines for the Flags field ****/ #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_MASK (0x00000060) +#define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_SHIFT (5) #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_BLOCK (0x00000000) #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_ALLOW (0x00000020) #define MPI3_MAN21_FLAGS_UNCERTIFIED_DRIVES_WARN (0x00000040) #define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_MASK (0x00000008) +#define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_SHIFT (3) #define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_ALLOW (0x00000000) #define MPI3_MAN21_FLAGS_BLOCK_SSD_WR_CACHE_CHANGE_PREVENT (0x00000008) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_MASK (0x00000001) +#define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_SHIFT (0) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_DEFAULT (0x00000000) #define MPI3_MAN21_FLAGS_SES_VPD_ASSOC_OEM_SPECIFIC (0x00000001) @@ -1408,18 +1466,21 @@ typedef struct _MPI3_IO_UNIT_PAGE1 /**** Defines for the Flags field ****/ #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_MASK (0x00000030) +#define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_SHIFT (4) #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_ENABLE (0x00000000) #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_DISABLE (0x00000010) #define MPI3_IOUNIT1_FLAGS_NVME_WRITE_CACHE_NO_MODIFY (0x00000020) #define MPI3_IOUNIT1_FLAGS_ATA_SECURITY_FREEZE_LOCK (0x00000008) #define MPI3_IOUNIT1_FLAGS_WRITE_SAME_BUFFER (0x00000004) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_MASK (0x00000003) +#define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_SHIFT (0) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_ENABLE (0x00000000) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_DISABLE (0x00000001) #define MPI3_IOUNIT1_FLAGS_SATA_WRITE_CACHE_UNCHANGED (0x00000002) /**** Defines for the DMDReport PCIe/SATA/SAS fields ****/ #define MPI3_IOUNIT1_DMD_REPORT_DELAY_TIME_MASK (0x7F) +#define MPI3_IOUNIT1_DMD_REPORT_DELAY_TIME_SHIFT (0) #define MPI3_IOUNIT1_DMD_REPORT_UNIT_16_SEC (0x80) /***************************************************************************** @@ -1445,6 +1506,7 @@ typedef struct _MPI3_IO_UNIT_PAGE2 #define MPI3_IOUNIT2_GPIO_FUNCTION_MASK (0xFFFC) #define MPI3_IOUNIT2_GPIO_FUNCTION_SHIFT (2) #define MPI3_IOUNIT2_GPIO_SETTING_MASK (0x0001) +#define MPI3_IOUNIT2_GPIO_SETTING_SHIFT (0) #define MPI3_IOUNIT2_GPIO_SETTING_OFF (0x0000) #define MPI3_IOUNIT2_GPIO_SETTING_ON (0x0001) @@ -1620,6 +1682,7 @@ typedef struct _MPI3_IO_UNIT_PAGE5 /**** Defines for the Phy field ****/ #define MPI3_IOUNIT5_PHY_SPINUP_GROUP_MASK (0x03) +#define MPI3_IOUNIT5_PHY_SPINUP_GROUP_SHIFT (0) /***************************************************************************** * IO Unit Page 6 * @@ -1700,6 +1763,7 @@ typedef struct _MPI3_IO_UNIT_PAGE8 #define MPI3_IOUNIT8_PAGEVERSION (0x00) /**** Defines for the SBMode field ****/ +#define MPI3_IOUNIT8_SBMODE_HARD_SECURE_RECERTIFIED (0x08) #define MPI3_IOUNIT8_SBMODE_SECURE_DEBUG (0x04) #define MPI3_IOUNIT8_SBMODE_HARD_SECURE (0x02) #define MPI3_IOUNIT8_SBMODE_CONFIG_SECURE (0x01) @@ -1710,10 +1774,15 @@ typedef struct _MPI3_IO_UNIT_PAGE8 #define MPI3_IOUNIT8_SBSTATE_SECURE_BOOT_ENABLED (0x01) /**** Defines for the Flags field ****/ +#define MPI3_IOUNIT8_FLAGS_CURRENT_KEY_IOUNIT17 (0x08) #define MPI3_IOUNIT8_FLAGS_DIGESTFORM_MASK (0x07) +#define MPI3_IOUNIT8_FLAGS_DIGESTFORM_SHIFT (0) #define MPI3_IOUNIT8_FLAGS_DIGESTFORM_RAW (0x00) #define MPI3_IOUNIT8_FLAGS_DIGESTFORM_DIGEST_WITH_METADATA (0x01) +/**** Use MPI3_ENCRYPTION_ALGORITHM_ defines (see mpi30_image.h) for the CurrentKeyEncryptionAlgo field ****/ +/**** Use MPI3_HASH_ALGORITHM defines (see mpi30_image.h) for the KeyDigestHashAlgo field ****/ + /***************************************************************************** * IO Unit Page 9 * ****************************************************************************/ @@ -1740,6 +1809,7 @@ typedef struct _MPI3_IO_UNIT_PAGE9 /**** Defines for the FirstDevice field ****/ #define MPI3_IOUNIT9_FIRSTDEVICE_UNKNOWN (0xFFFF) +#define MPI3_IOUNIT9_FIRSTDEVICE_IN_DRIVER_PAGE_0 (0xFFFE) /***************************************************************************** * IO Unit Page 10 * @@ -1765,6 +1835,7 @@ typedef struct _MPI3_IO_UNIT_PAGE10 /**** Defines for the Flags field ****/ #define MPI3_IOUNIT10_FLAGS_VALID (0x01) #define MPI3_IOUNIT10_FLAGS_ACTIVEID_MASK (0x02) +#define MPI3_IOUNIT10_FLAGS_ACTIVEID_SHIFT (1) #define MPI3_IOUNIT10_FLAGS_ACTIVEID_FIRST_REGION (0x00) #define MPI3_IOUNIT10_FLAGS_ACTIVEID_SECOND_REGION (0x02) #define MPI3_IOUNIT10_FLAGS_PBLP_EXPECTED (0x80) @@ -1846,6 +1917,7 @@ typedef struct _MPI3_IO_UNIT_PAGE12 #define MPI3_IOUNIT12_FLAGS_NUMPASSES_32 (0x00000200) #define MPI3_IOUNIT12_FLAGS_NUMPASSES_64 (0x00000300) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_MASK (0x00000003) +#define MPI3_IOUNIT12_FLAGS_PASSPERIOD_SHIFT (0) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_DISABLED (0x00000000) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_500US (0x00000001) #define MPI3_IOUNIT12_FLAGS_PASSPERIOD_1MS (0x00000002) @@ -1956,6 +2028,7 @@ typedef struct _MPI3_IO_UNIT_PAGE15 /**** Defines for the Flags field ****/ #define MPI3_IOUNIT15_FLAGS_EPRINIT_INITREQUIRED (0x04) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_MASK (0x03) +#define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_SHIFT (0) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_NOT_SUPPORTED (0x00) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_WITHOUT_POWER_BRAKE_GPIO (0x01) #define MPI3_IOUNIT15_FLAGS_EPRSUPPORT_WITH_POWER_BRAKE_GPIO (0x02) @@ -1995,6 +2068,90 @@ typedef struct _MPI3_IO_UNIT_PAGE16 /**** Defines for the PageVersion field ****/ #define MPI3_IOUNIT16_PAGEVERSION (0x00) +/***************************************************************************** + * IO Unit Page 17 * + ****************************************************************************/ + +#ifndef MPI3_IOUNIT17_CURRENTKEY_MAX +#define MPI3_IOUNIT17_CURRENTKEY_MAX (1) +#endif /* MPI3_IOUNIT17_CURRENTKEY_MAX */ + +typedef struct _MPI3_IO_UNIT_PAGE17 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 NumInstances; /* 0x08 */ + U8 Instance; /* 0x09 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C[4]; /* 0x0C */ + U16 KeyLength; /* 0x1C */ + U8 EncryptionAlgorithm; /* 0x1E */ + U8 Reserved1F; /* 0x1F */ + U32 CurrentKey[MPI3_IOUNIT17_CURRENTKEY_MAX]; /* 0x20 */ /* variable length */ +} MPI3_IO_UNIT_PAGE17, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE17, + Mpi3IOUnitPage17_t, MPI3_POINTER pMpi3IOUnitPage17_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT17_PAGEVERSION (0x00) + +/**** Use MPI3_ENCRYPTION_ALGORITHM_ defines (see mpi30_image.h) for the EncryptionAlgorithm field ****/ + +/***************************************************************************** + * IO Unit Page 18 * + ****************************************************************************/ + +typedef struct _MPI3_IO_UNIT_PAGE18 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U8 Flags; /* 0x08 */ + U8 PollInterval; /* 0x09 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C; /* 0x0C */ +} MPI3_IO_UNIT_PAGE18, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE18, + Mpi3IOUnitPage18_t, MPI3_POINTER pMpi3IOUnitPage18_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT18_PAGEVERSION (0x00) + +/**** Defines for the Flags field ****/ +#define MPI3_IOUNIT18_FLAGS_DIRECTATTACHED_ENABLE (0x01) + +/**** Defines for the PollInterval field ****/ +#define MPI3_IOUNIT18_POLLINTERVAL_DISABLE (0x00) + +/***************************************************************************** + * IO Unit Page 19 * + ****************************************************************************/ + +#ifndef MPI3_IOUNIT19_DEVICE_MAX +#define MPI3_IOUNIT19_DEVICE_MAX (1) +#endif /* MPI3_IOUNIT19_DEVICE_MAX */ + +typedef struct _MPI3_IOUNIT19_DEVICE_ +{ + U16 Temperature; /* 0x00 */ + U16 DevHandle; /* 0x02 */ + U16 PersistentID; /* 0x04 */ + U16 Reserved06; /* 0x06 */ +} MPI3_IOUNIT19_DEVICE, MPI3_POINTER PTR_MPI3_IOUNIT19_DEVICE, + Mpi3IOUnit19Device_t, MPI3_POINTER pMpi3IOUnit19Device_t; + +/**** Defines for the Temperature field ****/ +#define MPI3_IOUNIT19_DEVICE_TEMPERATURE_UNAVAILABLE (0x8000) + +typedef struct _MPI3_IO_UNIT_PAGE19 +{ + MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ + U16 NumDevices; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ + U32 Reserved0C; /* 0x0C */ + MPI3_IOUNIT19_DEVICE Device[MPI3_IOUNIT19_DEVICE_MAX]; /* 0x10 */ +} MPI3_IO_UNIT_PAGE19, MPI3_POINTER PTR_MPI3_IO_UNIT_PAGE19, + Mpi3IOUnitPage19_t, MPI3_POINTER pMpi3IOUnitPage19_t; + +/**** Defines for the PageVersion field ****/ +#define MPI3_IOUNIT19_PAGEVERSION (0x00) + + /***************************************************************************** * IOC Configuration Pages * ****************************************************************************/ @@ -2096,9 +2253,11 @@ typedef struct _MPI3_ALLOWED_CMD_NVME /**** Defines for the NVMeCmdFlags field ****/ #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_MASK (0x80) +#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_SHIFT (7) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_IO (0x00) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_SUBQ_TYPE_ADMIN (0x80) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_CMDSET_MASK (0x3F) +#define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_CMDSET_SHIFT (0) #define MPI3_DRIVER_ALLOWEDCMD_NVMECMDFLAGS_CMDSET_NVM (0x00) typedef union _MPI3_ALLOWED_CMD @@ -2135,7 +2294,7 @@ typedef struct _MPI3_DRIVER_PAGE0 U8 TURInterval; /* 0x0F */ U8 Reserved10; /* 0x10 */ U8 SecurityKeyTimeout; /* 0x11 */ - U16 Reserved12; /* 0x12 */ + U16 FirstDevice; /* 0x12 */ U32 Reserved14; /* 0x14 */ U32 Reserved18; /* 0x18 */ } MPI3_DRIVER_PAGE0, MPI3_POINTER PTR_MPI3_DRIVER_PAGE0, @@ -2150,10 +2309,15 @@ typedef struct _MPI3_DRIVER_PAGE0 #define MPI3_DRIVER0_BSDOPTS_HEADLESS_MODE_ENABLE (0x00000008) #define MPI3_DRIVER0_BSDOPTS_DIS_HII_CONFIG_UTIL (0x00000004) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_MASK (0x00000003) +#define MPI3_DRIVER0_BSDOPTS_REGISTRATION_SHIFT (0) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_IOC_AND_DEVS (0x00000000) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_IOC_ONLY (0x00000001) #define MPI3_DRIVER0_BSDOPTS_REGISTRATION_IOC_AND_INTERNAL_DEVS (0x00000002) +/**** Defines for the FirstDevice field ****/ +#define MPI3_DRIVER0_FIRSTDEVICE_IGNORE1 (0x0000) +#define MPI3_DRIVER0_FIRSTDEVICE_IGNORE2 (0xFFFF) + /***************************************************************************** * Driver Page 1 * ****************************************************************************/ @@ -2161,7 +2325,8 @@ typedef struct _MPI3_DRIVER_PAGE1 { MPI3_CONFIG_PAGE_HEADER Header; /* 0x00 */ U32 Flags; /* 0x08 */ - U32 Reserved0C; /* 0x0C */ + U8 TimeStampUpdate; /* 0x0C */ + U8 Reserved0D[3]; /* 0x0D */ U16 HostDiagTraceMaxSize; /* 0x10 */ U16 HostDiagTraceMinSize; /* 0x12 */ U16 HostDiagTraceDecrementSize; /* 0x14 */ @@ -2387,6 +2552,7 @@ typedef struct _MPI3_SECURITY_PAGE0 /**** Defines for the CertChainFlags field ****/ #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_MASK (0x0E) +#define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_SHIFT (1) #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_UNUSED (0x00) #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_CERBERUS (0x02) #define MPI3_SECURITY0_CERTCHAIN_FLAGS_AUTH_API_SPDM (0x04) @@ -2425,6 +2591,7 @@ typedef struct _MPI3_SECURITY1_KEY_RECORD /**** Defines for the Flags field ****/ #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_MASK (0x1F) +#define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_SHIFT (0) #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_NOT_VALID (0x00) #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_HMAC (0x01) #define MPI3_SECURITY1_KEY_RECORD_FLAGS_TYPE_AES (0x02) @@ -2560,6 +2727,7 @@ typedef struct _MPI3_SAS_IO_UNIT_PAGE0 /**** Defines for the PortFlags field ****/ #define MPI3_SASIOUNIT0_PORTFLAGS_DISC_IN_PROGRESS (0x08) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_MASK (0x03) +#define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_SHIFT (0) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_IOUNIT1 (0x00) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_DYNAMIC (0x01) #define MPI3_SASIOUNIT0_PORTFLAGS_AUTO_PORT_CONFIG_BACKPLANE (0x02) @@ -2624,6 +2792,7 @@ typedef struct _MPI3_SAS_IO_UNIT_PAGE1 #define MPI3_SASIOUNIT1_CONTROL_SUBTRACTIVE_ILLEGAL (0x0004) #define MPI3_SASIOUNIT1_CONTROL_FIRST_LVL_DISC_ONLY (0x0002) #define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_MASK (0x0001) +#define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_SHIFT (0) #define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_DEVICE_NAME (0x0000) #define MPI3_SASIOUNIT1_CONTROL_HARD_RESET_SAS_ADDRESS (0x0001) @@ -2653,6 +2822,7 @@ typedef struct _MPI3_SAS_IO_UNIT_PAGE1 #define MPI3_SASIOUNIT1_MMLR_MAX_RATE_12_0 (0xB0) #define MPI3_SASIOUNIT1_MMLR_MAX_RATE_22_5 (0xC0) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_MASK (0x0F) +#define MPI3_SASIOUNIT1_MMLR_MIN_RATE_SHIFT (0) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_6_0 (0x0A) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_12_0 (0x0B) #define MPI3_SASIOUNIT1_MMLR_MIN_RATE_22_5 (0x0C) @@ -3147,6 +3317,7 @@ typedef struct _MPI3_SAS_PHY_PAGE4 #define MPI3_PCIE_LINK_RETIMERS_MASK (0x30) #define MPI3_PCIE_LINK_RETIMERS_SHIFT (4) #define MPI3_PCIE_NEG_LINK_RATE_MASK (0x0F) +#define MPI3_PCIE_NEG_LINK_RATE_SHIFT (0) #define MPI3_PCIE_NEG_LINK_RATE_UNKNOWN (0x00) #define MPI3_PCIE_NEG_LINK_RATE_PHY_DISABLED (0x01) #define MPI3_PCIE_NEG_LINK_RATE_2_5 (0x02) @@ -3190,6 +3361,7 @@ typedef struct _MPI3_PCIE_IO_UNIT0_PHY_DATA /**** Defines for the LinkFlags field ****/ #define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_MASK (0x10) +#define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_SHIFT (4) #define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_IOUNIT1 (0x00) #define MPI3_PCIEIOUNIT0_LINKFLAGS_CONFIG_SOURCE_BKPLANE (0x10) #define MPI3_PCIEIOUNIT0_LINKFLAGS_ENUM_IN_PROGRESS (0x08) @@ -3266,6 +3438,7 @@ typedef struct _MPI3_PCIE_IO_UNIT1_PHY_DATA /**** Defines for the LinkFlags field ****/ #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_MASK (0x03) +#define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_SHIFT (0) #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_DIS_SEPARATE_REFCLK (0x00) #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_EN_SRIS (0x01) #define MPI3_PCIEIOUNIT1_LINKFLAGS_PCIE_CLK_MODE_EN_SRNS (0x02) @@ -3304,11 +3477,13 @@ typedef struct _MPI3_PCIE_IO_UNIT_PAGE1 /**** Defines for the ControlFlags field ****/ #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_MASK (0xE0000000) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_SHIFT (29) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_NONE (0x00000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_DEASSERT (0x20000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_ASSERT (0x40000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_PERST_OVERRIDE_BACKPLANE_ERROR (0x60000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_MASK (0x1C000000) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_SHIFT (26) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_NONE (0x00000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_ENABLE (0x04000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_REFCLK_OVERRIDE_DISABLE (0x08000000) @@ -3322,6 +3497,7 @@ typedef struct _MPI3_PCIE_IO_UNIT_PAGE1 #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_CLOCK_OVERRIDE_MODE_SRIS_ENABLED (0x00000010) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_CLOCK_OVERRIDE_MODE_SRNS_ENABLED (0x00000020) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_MASK (0x0000000F) +#define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_SHIFT (0) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_USE_BACKPLANE (0x00000000) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_MAX_2_5 (0x00000002) #define MPI3_PCIEIOUNIT1_CONTROL_FLAGS_LINK_RATE_OVERRIDE_MAX_5_0 (0x00000003) @@ -3557,14 +3733,17 @@ typedef struct _MPI3_ENCLOSURE_PAGE0 /**** Defines for the Flags field ****/ #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_MASK (0xC000) +#define MPI3_ENCLS0_FLAGS_ENCL_TYPE_SHIFT (0xC000) #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_VIRTUAL (0x0000) #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_SAS (0x4000) #define MPI3_ENCLS0_FLAGS_ENCL_TYPE_PCIE (0x8000) #define MPI3_ENCLS0_FLAGS_CHASSIS_SLOT_VALID (0x0020) #define MPI3_ENCLS0_FLAGS_ENCL_DEV_PRESENT_MASK (0x0010) +#define MPI3_ENCLS0_FLAGS_ENCL_DEV_PRESENT_SHIFT (4) #define MPI3_ENCLS0_FLAGS_ENCL_DEV_NOT_FOUND (0x0000) #define MPI3_ENCLS0_FLAGS_ENCL_DEV_PRESENT (0x0010) #define MPI3_ENCLS0_FLAGS_MNG_MASK (0x000F) +#define MPI3_ENCLS0_FLAGS_MNG_SHIFT (0) #define MPI3_ENCLS0_FLAGS_MNG_UNKNOWN (0x0000) #define MPI3_ENCLS0_FLAGS_MNG_IOC_SES (0x0001) #define MPI3_ENCLS0_FLAGS_MNG_SES_ENCLOSURE (0x0002) @@ -3646,6 +3825,7 @@ typedef struct _MPI3_DEVICE0_PCIE_FORMAT /**** Defines for DeviceInfo bitfield ****/ #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_MASK (0x0007) +#define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_SHIFT (0) #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_NO_DEVICE (0x0000) #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_NVME_DEVICE (0x0001) #define MPI3_DEVICE0_PCIE_DEVICE_INFO_TYPE_SWITCH_DEVICE (0x0002) @@ -3675,9 +3855,11 @@ typedef struct _MPI3_DEVICE0_PCIE_FORMAT /**** Defines for the RecoveryInfo field ****/ #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_MASK (0xE0) +#define MPI3_DEVICE0_PCIE_RECOVER_METHOD_SHIFT (5) #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_NS_MGMT (0x00) #define MPI3_DEVICE0_PCIE_RECOVER_METHOD_FORMAT (0x20) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_MASK (0x1F) +#define MPI3_DEVICE0_PCIE_RECOVER_REASON_SHIFT (0) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_NO_NS (0x00) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_NO_NSID_1 (0x01) #define MPI3_DEVICE0_PCIE_RECOVER_REASON_TOO_MANY_NS (0x02) @@ -3724,6 +3906,11 @@ typedef struct _MPI3_DEVICE0_VD_FORMAT /**** Defines for the Flags field ****/ #define MPI3_DEVICE0_VD_FLAGS_IO_THROTTLE_GROUP_QD_MASK (0xF000) #define MPI3_DEVICE0_VD_FLAGS_IO_THROTTLE_GROUP_QD_SHIFT (12) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_MASK (0x0003) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_SHIFT (0) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_HDD (0x0000) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_SSD (0x0001) +#define MPI3_DEVICE0_VD_FLAGS_OSEXPOSURE_NO_GUIDANCE (0x0002) typedef union _MPI3_DEVICE0_DEV_SPEC_FORMAT { @@ -3801,6 +3988,7 @@ typedef struct _MPI3_DEVICE_PAGE0 #define MPI3_DEVICE0_ASTATUS_SIF_UDMA_SN (0x27) #define MPI3_DEVICE0_ASTATUS_SIF_ZONING_VIOLATION (0x28) #define MPI3_DEVICE0_ASTATUS_SIF_NOT_ADDRESSABLE (0x29) +#define MPI3_DEVICE0_ASTATUS_SIF_DEVICE_FAULT (0x2A) #define MPI3_DEVICE0_ASTATUS_SIF_MAX (0x2F) /* PCIe Access Status Codes */ #define MPI3_DEVICE0_ASTATUS_PCIE_UNKNOWN (0x30) @@ -3836,6 +4024,7 @@ typedef struct _MPI3_DEVICE_PAGE0 /**** Defines for the Flags field ****/ #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_MASK (0xE000) +#define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_SHIFT (13) #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_NO_LIMIT (0x0000) #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_256_LB (0x2000) #define MPI3_DEVICE0_FLAGS_MAX_WRITE_SAME_2048_LB (0x4000) @@ -3869,7 +4058,8 @@ typedef struct _MPI3_DEVICE1_PCIE_FORMAT U16 DeviceID; /* 0x02 */ U16 SubsystemVendorID; /* 0x04 */ U16 SubsystemID; /* 0x06 */ - U32 Reserved08; /* 0x08 */ + U16 ReadyTimeout; /* 0x08 */ + U16 Reserved0A; /* 0x0A */ U8 RevisionID; /* 0x0C */ U8 Reserved0D; /* 0x0D */ U16 PCIParameters; /* 0x0E */ diff --git a/sys/dev/mpi3mr/mpi/mpi30_image.h b/sys/dev/mpi3mr/mpi/mpi30_image.h index 917763b3e921..73451d80fe58 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_image.h +++ b/sys/dev/mpi3mr/mpi/mpi30_image.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ + #ifndef MPI30_IMAGE_H #define MPI30_IMAGE_H 1 @@ -125,13 +126,16 @@ typedef struct _MPI3_COMPONENT_IMAGE_HEADER /**** Definitions for Flags field ****/ #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MASK (0x00000300) +#define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_SHIFT (8) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_UNSPECIFIED (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_NOT_SIGNED (0x00000100) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_UEFI_MICROSOFT_SIGNED (0x00000200) #define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_MASK (0x000000C0) +#define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_SHIFT (6) #define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_DEVICE_CERT (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_CERT_CHAIN_FORMAT_ALIAS_CERT (0x00000040) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_MASK (0x00000030) +#define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_SHIFT (4) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_CDI (0x00000000) #define MPI3_IMAGE_HEADER_FLAGS_DEVICE_KEY_BASIS_DI (0x00000010) #define MPI3_IMAGE_HEADER_FLAGS_SIGNED_NVDATA (0x00000008) @@ -332,7 +336,7 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY U8 HashImageType; /* 0x00 */ U8 HashAlgorithm; /* 0x01 */ U8 EncryptionAlgorithm; /* 0x02 */ - U8 Reserved03; /* 0x03 */ + U8 Flags; /* 0x03 */ U16 PublicKeySize; /* 0x04 */ U16 SignatureSize; /* 0x06 */ U32 PublicKey[MPI3_PUBLIC_KEY_MAX]; /* 0x08 */ /* variable length */ @@ -342,16 +346,20 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY /* defines for the HashImageType field */ -#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_SIGNATURE (0x03) +#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_HASH (0x03) +#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_HASH_1_OF_2 (0x04) +#define MPI3_HASH_IMAGE_TYPE_KEY_WITH_HASH_2_OF_2 (0x05) /* defines for the HashAlgorithm field */ #define MPI3_HASH_ALGORITHM_VERSION_MASK (0xE0) +#define MPI3_HASH_ALGORITHM_VERSION_SHIFT (5) #define MPI3_HASH_ALGORITHM_VERSION_NONE (0x00) #define MPI3_HASH_ALGORITHM_VERSION_SHA1 (0x20) /* Obsolete */ #define MPI3_HASH_ALGORITHM_VERSION_SHA2 (0x40) #define MPI3_HASH_ALGORITHM_VERSION_SHA3 (0x60) #define MPI3_HASH_ALGORITHM_SIZE_MASK (0x1F) +#define MPI3_HASH_ALGORITHM_SIZE_SHIFT (0) #define MPI3_HASH_ALGORITHM_SIZE_UNUSED (0x00) #define MPI3_HASH_ALGORITHM_SIZE_SHA256 (0x01) #define MPI3_HASH_ALGORITHM_SIZE_SHA512 (0x02) @@ -368,9 +376,15 @@ typedef struct _MPI3_ENCRYPTED_HASH_ENTRY #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P256 (0x07) /* NIST secp256r1 curve */ #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P384 (0x08) /* NIST secp384r1 curve */ #define MPI3_ENCRYPTION_ALGORITHM_ECDSA_P521 (0x09) /* NIST secp521r1 curve */ -#define MPI3_ENCRYPTION_ALGORITHM_LMS_HSS (0x0A) /* Leighton-Micali Signature (LMS) - - * Hierarchical Signature System (HSS) - */ +#define MPI3_ENCRYPTION_ALGORITHM_LMS_HSS (0x0A) /* Leighton-Micali Signature (LMS) */ + /* Hierarchical Signature System (HSS) */ +#define MPI3_ENCRYPTION_ALGORITHM_ML_DSA_87 (0x0B) /* Module-Lattice-Based Sig Algo - Category 5 */ +#define MPI3_ENCRYPTION_ALGORITHM_ML_DSA_65 (0x0C) /* Module-Lattice-Based Sig Algo - Category 3 */ +#define MPI3_ENCRYPTION_ALGORITHM_ML_DSA_44 (0x0D) /* Module-Lattice-Based Sig Algo - Category 2 */ + +/* defines for the Flags field */ +#define MPI3_ENCRYPTED_HASH_ENTRY_FLAGS_PAIRED_KEY_MASK (0x0F) +#define MPI3_ENCRYPTED_HASH_ENTRY_FLAGS_PAIRED_KEY_SHIFT (0) #ifndef MPI3_ENCRYPTED_HASH_ENTRY_MAX #define MPI3_ENCRYPTED_HASH_ENTRY_MAX (1) diff --git a/sys/dev/mpi3mr/mpi/mpi30_init.h b/sys/dev/mpi3mr/mpi/mpi30_init.h index 361fb690fbe6..c24725972162 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_init.h +++ b/sys/dev/mpi3mr/mpi/mpi30_init.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ + #ifndef MPI30_INIT_H #define MPI30_INIT_H 1 @@ -91,12 +92,15 @@ typedef struct _MPI3_SCSI_IO_REQUEST /**** Defines for the Flags field ****/ #define MPI3_SCSIIO_FLAGS_LARGE_CDB_MASK (0x60000000) +#define MPI3_SCSIIO_FLAGS_LARGE_CDB_SHIFT (29) #define MPI3_SCSIIO_FLAGS_CDB_16_OR_LESS (0x00000000) #define MPI3_SCSIIO_FLAGS_CDB_GREATER_THAN_16 (0x20000000) #define MPI3_SCSIIO_FLAGS_CDB_IN_SEPARATE_BUFFER (0x40000000) #define MPI3_SCSIIO_FLAGS_CDB_PRODUCT_SPECIFIC (0x60000000) #define MPI3_SCSIIO_FLAGS_IOC_USE_ONLY_27_MASK (0x18000000) +#define MPI3_SCSIIO_FLAGS_IOC_USE_ONLY_27_SHIFT (27) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_MASK (0x07000000) +#define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SHIFT (24) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_SIMPLEQ (0x00000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_HEADOFQ (0x01000000) #define MPI3_SCSIIO_FLAGS_TASKATTRIBUTE_ORDEREDQ (0x02000000) @@ -104,12 +108,15 @@ typedef struct _MPI3_SCSI_IO_REQUEST #define MPI3_SCSIIO_FLAGS_CMDPRI_MASK (0x00F00000) #define MPI3_SCSIIO_FLAGS_CMDPRI_SHIFT (20) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_MASK (0x000C0000) +#define MPI3_SCSIIO_FLAGS_DATADIRECTION_SHIFT (18) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_NO_DATA_TRANSFER (0x00000000) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_WRITE (0x00040000) #define MPI3_SCSIIO_FLAGS_DATADIRECTION_READ (0x00080000) #define MPI3_SCSIIO_FLAGS_DMAOPERATION_MASK (0x00030000) +#define MPI3_SCSIIO_FLAGS_DMAOPERATION_SHIFT (16) #define MPI3_SCSIIO_FLAGS_DMAOPERATION_HOST_PI (0x00010000) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_MASK (0x000000F0) +#define MPI3_SCSIIO_FLAGS_DIVERT_REASON_SHIFT (4) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_IO_THROTTLING (0x00000010) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_WRITE_SAME_TOO_LARGE (0x00000020) #define MPI3_SCSIIO_FLAGS_DIVERT_REASON_PROD_SPECIFIC (0x00000080) @@ -167,6 +174,7 @@ typedef struct _MPI3_SCSI_IO_REPLY /**** Defines for the SCSIState field ****/ #define MPI3_SCSI_STATE_SENSE_MASK (0x03) +#define MPI3_SCSI_STATE_SENSE_SHIFT (0) #define MPI3_SCSI_STATE_SENSE_VALID (0x00) #define MPI3_SCSI_STATE_SENSE_FAILED (0x01) #define MPI3_SCSI_STATE_SENSE_BUFF_Q_EMPTY (0x02) diff --git a/sys/dev/mpi3mr/mpi/mpi30_ioc.h b/sys/dev/mpi3mr/mpi/mpi30_ioc.h index 2d45a55b89e8..dc7b478536c3 100644 --- a/sys/dev/mpi3mr/mpi/mpi30_ioc.h +++ b/sys/dev/mpi3mr/mpi/mpi30_ioc.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause-FreeBSD * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * Broadcom Inc. (Broadcom) MPI3MR Adapter FreeBSD * */ + #ifndef MPI30_IOC_H #define MPI30_IOC_H 1 @@ -78,6 +79,7 @@ typedef struct _MPI3_IOC_INIT_REQUEST #define MPI3_IOCINIT_MSGFLAGS_WRITESAMEDIVERT_SUPPORTED (0x08) #define MPI3_IOCINIT_MSGFLAGS_SCSIIOSTATUSREPLY_SUPPORTED (0x04) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_MASK (0x03) +#define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SHIFT (0) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_NOT_USED (0x00) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_SEPARATED (0x01) #define MPI3_IOCINIT_MSGFLAGS_HOSTMETADATA_INLINE (0x02) @@ -103,6 +105,13 @@ typedef struct _MPI3_DRIVER_INFO_LAYOUT } MPI3_DRIVER_INFO_LAYOUT, MPI3_POINTER PTR_MPI3_DRIVER_INFO_LAYOUT, Mpi3DriverInfoLayout_t, MPI3_POINTER pMpi3DriverInfoLayout_t; +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_MASK (0x00000003) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_SHIFT (0) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_GUIDANCE (0x00000000) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_NO_SPECIAL (0x00000001) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_REPORT_AS_HDD (0x00000002) +#define MPI3_IOCINIT_DRIVERCAP_OSEXPOSURE_REPORT_AS_SSD (0x00000003) + /***************************************************************************** * IOCFacts Request Message * ****************************************************************************/ @@ -181,9 +190,11 @@ typedef struct _MPI3_IOC_FACTS_DATA /**** Defines for the IOCCapabilities field ****/ #define MPI3_IOCFACTS_CAPABILITY_NON_SUPERVISOR_MASK (0x80000000) +#define MPI3_IOCFACTS_CAPABILITY_NON_SUPERVISOR_SHIFT (31) #define MPI3_IOCFACTS_CAPABILITY_SUPERVISOR_IOC (0x00000000) #define MPI3_IOCFACTS_CAPABILITY_NON_SUPERVISOR_IOC (0x80000000) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_MASK (0x00000600) +#define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_SHIFT (9) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_FIXED_THRESHOLD (0x00000000) #define MPI3_IOCFACTS_CAPABILITY_INT_COALESCE_OUTSTANDING_IO (0x00000200) #define MPI3_IOCFACTS_CAPABILITY_COMPLETE_RESET_SUPPORTED (0x00000100) @@ -210,6 +221,7 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_EXCEPT_SAS_DISABLED (0x1000) #define MPI3_IOCFACTS_EXCEPT_SAFE_MODE (0x0800) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_MASK (0x0700) +#define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_SHIFT (8) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_NONE (0x0000) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_LOCAL_VIA_MGMT (0x0100) #define MPI3_IOCFACTS_EXCEPT_SECURITY_KEY_EXT_VIA_MGMT (0x0200) @@ -222,7 +234,10 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_EXCEPT_MANUFACT_CHECKSUM_FAIL (0x0020) #define MPI3_IOCFACTS_EXCEPT_FW_CHECKSUM_FAIL (0x0010) #define MPI3_IOCFACTS_EXCEPT_CONFIG_CHECKSUM_FAIL (0x0008) +#define MPI3_IOCFACTS_EXCEPT_BLOCKING_BOOT_EVENT (0x0004) +#define MPI3_IOCFACTS_EXCEPT_SECURITY_SELFTEST_FAILURE (0x0002) #define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_MASK (0x0001) +#define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_SHIFT (0) #define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_PRIMARY (0x0000) #define MPI3_IOCFACTS_EXCEPT_BOOTSTAT_SECONDARY (0x0001) @@ -242,10 +257,12 @@ typedef struct _MPI3_IOC_FACTS_DATA #define MPI3_IOCFACTS_FLAGS_DMA_ADDRESS_WIDTH_SHIFT (8) #define MPI3_IOCFACTS_FLAGS_MAX_REQ_PER_REPLY_QUEUE_LIMIT (0x00000040) #define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_MASK (0x00000030) +#define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_SHIFT (4) #define MPI3_IOCFACTS_FLAGS_INITIAL_PORT_ENABLE_NOT_STARTED (0x00000000) *** 549 LINES SKIPPED *** From nobody Wed Apr 30 17:21:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWP30Vwz5tj3s; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWN6976z3MJx; Wed, 30 Apr 2025 17:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UNSAqU5NUYEuw2vr+ZvabsEbkufnITTSzj2r+KOH6zA=; b=qJt1A2BsIhLmw10n5iWmPbdMYlOarSsRExgxSW2IsUQVmy2Aj73tXRY25ESpbAVk3EiZvx lE6fHSmarV13Lu14RY0ceTuOkvYtwHldEstkYthEd4ffGYSbrrf1D0Q9rvdIO0txQuQ+1V T5Sl6RUo4nmKrQz0NTcTBGKOM1jBKiziI3mcKlGgmeYoD1vi+qcxyTc+O+V6DvGvkxB2ZP bNXL/GxAO8v7PN6y/J/3XbRIQH1HAcTxFMKqFfCWt5UfeheFZuiLA5CuchZ7AZG/KKLEDj m86ruCgkhZsn6Og8olhJi5ZofNC59Qn6Q2SAMY83wKEP6uq3bnWCLqxjbd41Sg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033712; a=rsa-sha256; cv=none; b=MqzQV90/YX+J2Ic6czHn/ulz500u74MPkSAQ70R7A02FWXSDEIeO0nI8dVZdBVEAetm2/m Fg4QTrCtUz2sUvXesTq6d3Y4FqLlDfjnXfKx3nNST2piaiCX1aJgnigRnmdpEyVergo2M2 ZIfINoW1WuECyR4Av6bNxb5MjYPXIBr+MDjYY0cDMwH/6LEDhSYbYP3kLXeHAoAfNrmQ1A wkAsHsGNosCelASZum91LZ10PNJUuRMRmK5du5glcwmoFI54IV7aj1G7qaLitbgkp5KlF7 gkyv1obNd6LCgQSAiRg3UAwu8ysKRhSatgcE3k+qgHc+Z0PzO0IVeJ3YyfzbjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UNSAqU5NUYEuw2vr+ZvabsEbkufnITTSzj2r+KOH6zA=; b=h8UsiCZpsYXvuMwopXhMY7SFlP5II4ZmuVH7qmIfH7GDFOfrGGgIc/EE+LYTGqId+p+BmV D0f4Op1hbs6ch7A4waPpJf/DYjKBwzoVXXLi91P3dZcid4eW7AbVac1KfTEzwRC6bBE57y A8wA1/adt813Q+5em5E0lgmcUFQ2PMqyYj3TDA7OzXUEEFK0OC4YZ3Q3vFbEEHD+6Eyj+D adoZe+W2wdtUiRmARvZOVJWLSqVawTyfjzBNh4s0B7qVDZwh0a3/J1MC4lgUej/6EhlwQo 7jm/Bq/y/jvDNn/FeTZayDwyHymTaPwFobKd8TzEKf+ysgWNvqubZsUjqxRWBw== 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 4ZnkWN5mBZzmP; Wed, 30 Apr 2025 17:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLq0j095326; Wed, 30 Apr 2025 17:21:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLqES095323; Wed, 30 Apr 2025 17:21:52 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:52 GMT Message-Id: <202504301721.53UHLqES095323@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: 05cf85775b2a - stable/14 - mpi3mr: Handle Insufficient Power Fault 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 05cf85775b2a120211ce5530acffd3b335543593 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=05cf85775b2a120211ce5530acffd3b335543593 commit 05cf85775b2a120211ce5530acffd3b335543593 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:35:23 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Handle Insufficient Power Fault Code The driver now checks for insufficient power faults during the load phase and immediately fails initialization instead of retrying. Additionally, if an insufficient power fault is detected by the watchdog after the controller is up, the controller is marked as unrecoverable instead of triggering a reset. This improves fault handling and avoids unnecessary recovery attempts in low-power conditions. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49747 (cherry picked from commit 116c8b18a2b5278df0d1982a683193c3dba6f30c) --- sys/dev/mpi3mr/mpi3mr.c | 50 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index bfb032a86c5b..1611f2c4aceb 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2785,18 +2785,37 @@ retry_init: } if (ioc_state != MRIOC_STATE_RESET) { - mpi3mr_print_fault_info(sc); - mpi3mr_dprint(sc, MPI3MR_ERROR, "issuing soft reset to bring to reset state\n"); - retval = mpi3mr_issue_reset(sc, - MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET, - MPI3MR_RESET_FROM_BRINGUP); - if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, - "%s :Failed to soft reset IOC, error 0x%d\n", - __func__, retval); + if (ioc_state == MRIOC_STATE_FAULT) { + mpi3mr_print_fault_info(sc); + + U32 fault = mpi3mr_regread(sc, MPI3_SYSIF_FAULT_OFFSET) & + MPI3_SYSIF_FAULT_CODE_MASK; + if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) + mpi3mr_dprint(sc, MPI3MR_INFO, + "controller faulted due to insufficient power. " + "try by connecting it in a different slot\n"); + goto err; + + U32 host_diagnostic; + timeout = MPI3_SYSIF_DIAG_SAVE_TIMEOUT * 10; + do { + host_diagnostic = mpi3mr_regread(sc, MPI3_SYSIF_HOST_DIAG_OFFSET); + if (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_SAVE_IN_PROGRESS)) + break; + DELAY(100 * 1000); + } while (--timeout); + } + mpi3mr_dprint(sc, MPI3MR_ERROR, "issuing soft reset to bring to reset state\n"); + retval = mpi3mr_issue_reset(sc, + MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET, + MPI3MR_RESET_FROM_BRINGUP); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, + "%s :Failed to soft reset IOC, error 0x%d\n", + __func__, retval); goto err_retry; - } - } + } + } ioc_state = mpi3mr_get_iocstate(sc); @@ -3166,6 +3185,15 @@ mpi3mr_watchdog_thread(void *arg) sc->unrecoverable = 1; break; } + + if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) { + mpi3mr_dprint(sc, MPI3MR_INFO, + "controller faulted due to insufficient power, marking" + " controller as unrecoverable\n"); + sc->unrecoverable = 1; + break; + } + if ((fault == MPI3_SYSIF_FAULT_CODE_DIAG_FAULT_RESET) || (fault == MPI3_SYSIF_FAULT_CODE_SOFT_RESET_IN_PROGRESS) || (sc->reset_in_progress)) From nobody Wed Apr 30 17:21:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWN2XSxz5tj3r; Wed, 30 Apr 2025 17:21:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWM5bpTz3MMD; Wed, 30 Apr 2025 17:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033711; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZSSH8h/pl2oDTg84yKUV5xNgSNBSJsaoakuZPnpqsqg=; b=mTNFIkBkfpN7D5V4AJl1KVeWfg4hCt/3HYnMQro7aGLXsVTNiWzAwJSJfWA9S4710R4OB0 N+hqn5/g32liuES9DD7ChRqo5UinS0xIgUtSbCiUmuT0l3njZIErxOozUKtKRid7HNNPqV i9P6AN+p+4x6uLIHySPUj6zqdcRQ0MP5ryNqmK1NNe3KXuuRS+h1F2PmrgELlPqYzRhKRm L73ia88NLT/K6dya20/s8j0nZcBnid+sxf6nWxOBHN3eIJY08IqdK6f8mspL2UvBLkRLd1 syvTnu/bR0xsZ4l+OscWmE8jy9LuYXHnAA192zFsq8KItaukj+wrurDTEuRpFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033711; a=rsa-sha256; cv=none; b=DL3VUpuGnd0RkjDiY5jMpU+OcoW8etXI/nAPaiZdPGi9Rqm4V3aZXbsdFyhvPOqOv7sYKy XtJZPxmISTg3hfV0biDFgUxP9C+6lcvXbbVeukLGyKmPU+doAHYLysYtgiQqivLmMBBuuL vJlEXeFNLIW2H9wI6PlfNA+EZzyLzR10cBWTMLh+fe1AvCzXKuAMB3/rskE1m9xLH6ia6W vzcSIqQ+VNIlov/CzL4uorn5bXRrJdr2hceeMbWnv0MZfZ2AJis5LX/lq0NDX0j2/q2kiu opOlXA6OfK+XfhjcV/zT0//e+LygrxW9s1uB3RiV8eGiKw0I08Oawuyblb6D7Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033711; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZSSH8h/pl2oDTg84yKUV5xNgSNBSJsaoakuZPnpqsqg=; b=f/qwVUGQ/OXdUJR/DcSqxzKqEgtsql5CB/I2BZvu8nctgdwKY072bFlX/UP5AnYQkBVJjU nnTOLxKViObfrO072ffNMQITDn2F1Z5qLFP54iqXHVy4TrJw5eK7/PQaa4MYMp85voS85Z 5P0RLsSnkWE6zhWGVkdj8y7VHvZOS/lw8cuCbRLKoKffj/w95/p4837+/LtY+Qva9DhqDA LpWSYdzgj7JPy7cBgsXQ+Ez39P/7KFq0Gaj+4uP8imrf21o3xg2sMNIA3HJNrG4/vlEkjD 5JjwybLbV9me7bwSmiNaVdLaTsWuUxk2hJXE+egmS5urZuGYHwVW4kddY/w95g== 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 4ZnkWM4qNzzk1; Wed, 30 Apr 2025 17:21:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLpwj095285; Wed, 30 Apr 2025 17:21:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLpWG095282; Wed, 30 Apr 2025 17:21:51 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:51 GMT Message-Id: <202504301721.53UHLpWG095282@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: 94ede6230de2 - stable/14 - mpi3mr: Enhance Controller Enable Retry Logic in Host Drivers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 94ede6230de240b4a733ceb55f3557674b41c8b4 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=94ede6230de240b4a733ceb55f3557674b41c8b4 commit 94ede6230de240b4a733ceb55f3557674b41c8b4 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:34:54 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Enhance Controller Enable Retry Logic in Host Drivers This patch improves the retry logic during the IOC enable process. If a controller faults or if the reset history bit is detected during the ready status check, the driver will retry initialization up to three times or until 510 seconds have passed. A soft reset will also be issued if the controller is detected while waiting for the ready status. This enhances reliability during controller initialization. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49746 (cherry picked from commit e977ed50bb2b9fce5e285756673286c5fcfb1f31) --- sys/dev/mpi3mr/mpi3mr.c | 216 ++++++++++++++++++++++++++---------------------- 1 file changed, 118 insertions(+), 98 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index cbf87f99faec..bfb032a86c5b 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1148,7 +1148,7 @@ enum mpi3mr_iocstate mpi3mr_get_iocstate(struct mpi3mr_softc *sc) return MRIOC_STATE_RESET_REQUESTED; } -static inline void mpi3mr_clear_resethistory(struct mpi3mr_softc *sc) +static inline void mpi3mr_clear_reset_history(struct mpi3mr_softc *sc) { U32 ioc_status; @@ -1178,7 +1178,7 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) mpi3mr_dprint(sc, MPI3MR_ERROR, "IOC is unrecoverable MUR not issued\n"); return retval; } - mpi3mr_clear_resethistory(sc); + mpi3mr_clear_reset_history(sc); scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << MPI3MR_RESET_REASON_OSTYPE_SHIFT) | @@ -1193,7 +1193,7 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) do { ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); if ((ioc_status & MPI3_SYSIF_IOC_STATUS_RESET_HISTORY)) { - mpi3mr_clear_resethistory(sc); + mpi3mr_clear_reset_history(sc); ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); if (!((ioc_status & MPI3_SYSIF_IOC_STATUS_READY) || @@ -1223,24 +1223,44 @@ static int mpi3mr_mur_ioc(struct mpi3mr_softc *sc, U16 reset_reason) * * Return: 0 on success, appropriate error on failure. */ -static int mpi3mr_bring_ioc_ready(struct mpi3mr_softc *sc) +static int mpi3mr_bring_ioc_ready(struct mpi3mr_softc *sc, + U64 *start_time) { - U32 ioc_config, timeout; - enum mpi3mr_iocstate current_state; + enum mpi3mr_iocstate current_state; + U32 ioc_status; + int retval; - ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); - ioc_config |= MPI3_SYSIF_IOC_CONFIG_ENABLE_IOC; + U32 ioc_config = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); + ioc_config |= MPI3_SYSIF_IOC_CONFIG_ENABLE_IOC; mpi3mr_regwrite(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET, ioc_config); - timeout = sc->ready_timeout * 10; - do { - current_state = mpi3mr_get_iocstate(sc); - if (current_state == MRIOC_STATE_READY) - return 0; - DELAY(100 * 1000); - } while (--timeout); + if (*start_time == 0) + *start_time = ticks; + + do { + ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); + if (ioc_status & (MPI3_SYSIF_IOC_STATUS_FAULT | MPI3_SYSIF_IOC_STATUS_RESET_HISTORY)) { + if (ioc_status & MPI3_SYSIF_IOC_STATUS_FAULT) { + mpi3mr_print_fault_info(sc); + retval = mpi3mr_issue_reset(sc, MPI3_SYSIF_HOST_DIAG_RESET_ACTION_SOFT_RESET, MPI3MR_RESET_FROM_BRINGUP); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Failed to soft reset the IOC, error 0x%d\n", __func__, retval); + return -1; + } + } + mpi3mr_clear_reset_history(sc); + return EAGAIN; + } + + current_state = mpi3mr_get_iocstate(sc); + if (current_state == MRIOC_STATE_READY) + return 0; + + DELAY(100 * 1000); - return -1; + } while (((ticks - *start_time) / hz) < sc->ready_timeout); + + return -1; } static const struct { @@ -2718,14 +2738,16 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) { int retval = 0; enum mpi3mr_iocstate ioc_state; - U64 ioc_info; + U64 ioc_info, start_ticks = 0; U32 ioc_status, ioc_control, i, timeout; Mpi3IOCFactsData_t facts_data; char str[32]; U32 size; + U8 retry = 0; sc->cpu_count = mp_ncpus; +retry_init: ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); ioc_control = mpi3mr_regread(sc, MPI3_SYSIF_IOC_CONFIG_OFFSET); ioc_info = mpi3mr_regread64(sc, MPI3_SYSIF_IOC_INFO_LOW_OFFSET); @@ -2733,28 +2755,25 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) mpi3mr_dprint(sc, MPI3MR_INFO, "SOD ioc_status: 0x%x ioc_control: 0x%x " "ioc_info: 0x%lx\n", ioc_status, ioc_control, ioc_info); - /*The timeout value is in 2sec unit, changing it to seconds*/ + /*The timeout value is in 2sec unit, changing it to seconds*/ sc->ready_timeout = ((ioc_info & MPI3_SYSIF_IOC_INFO_LOW_TIMEOUT_MASK) >> MPI3_SYSIF_IOC_INFO_LOW_TIMEOUT_SHIFT) * 2; ioc_state = mpi3mr_get_iocstate(sc); - mpi3mr_dprint(sc, MPI3MR_INFO, "IOC state: %s IOC ready timeout: %d\n", mpi3mr_iocstate_name(ioc_state), sc->ready_timeout); - if (ioc_state == MRIOC_STATE_BECOMING_READY || - ioc_state == MRIOC_STATE_RESET_REQUESTED) { - timeout = sc->ready_timeout * 10; - do { - DELAY(1000 * 100); - } while (--timeout); - + timeout = sc->ready_timeout * 10; + do { ioc_state = mpi3mr_get_iocstate(sc); - mpi3mr_dprint(sc, MPI3MR_INFO, - "IOC in %s state after waiting for reset time\n", - mpi3mr_iocstate_name(ioc_state)); - } + + if (ioc_state != MRIOC_STATE_BECOMING_READY && + ioc_state != MRIOC_STATE_RESET_REQUESTED) + break; + + DELAY(1000 * 100); + } while (--timeout); if (ioc_state == MRIOC_STATE_READY) { retval = mpi3mr_mur_ioc(sc, MPI3MR_RESET_FROM_BRINGUP); @@ -2775,44 +2794,48 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) mpi3mr_dprint(sc, MPI3MR_ERROR, "%s :Failed to soft reset IOC, error 0x%d\n", __func__, retval); - goto out_failed; + goto err_retry; } } - + ioc_state = mpi3mr_get_iocstate(sc); if (ioc_state != MRIOC_STATE_RESET) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Cannot bring IOC to reset state\n"); - goto out_failed; + goto err_retry; } retval = mpi3mr_setup_admin_qpair(sc); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to setup Admin queues, error 0x%x\n", retval); - goto out_failed; + if (retval == ENOMEM) + goto err; + goto err_retry; } - - retval = mpi3mr_bring_ioc_ready(sc); + + retval = mpi3mr_bring_ioc_ready(sc, &start_ticks); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to bring IOC ready, error 0x%x\n", - retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to bring IOC ready, error 0x%x\n", retval); + if (retval == EAGAIN) + goto err_retry; + goto err; } + if (init_type == MPI3MR_INIT_TYPE_INIT) { retval = mpi3mr_alloc_interrupts(sc, 1); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate interrupts, error 0x%x\n", retval); - goto out_failed; + goto err; } - + retval = mpi3mr_setup_irqs(sc); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to setup ISR, error 0x%x\n", retval); - goto out_failed; + goto err; } } @@ -2872,25 +2895,30 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) retval = mpi3mr_issue_iocfacts(sc, &facts_data); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Facts, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Facts, error: 0x%x\n", retval); - goto out_failed; + if (retval == ENOMEM) + goto err; + goto err_retry; } retval = mpi3mr_process_factsdata(sc, &facts_data); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "IOC Facts data processing failedi, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "IOC Facts data processing failed, error: 0x%x\n", retval); - goto out_failed; + goto err_retry; } sc->num_io_throttle_group = sc->facts.max_io_throttle_group; mpi3mr_atomic_set(&sc->pend_large_data_sz, 0); - + if (init_type == MPI3MR_INIT_TYPE_RESET) { retval = mpi3mr_validate_fw_update(sc); - if (retval) - goto out_failed; + if (retval) { + if (retval == ENOMEM) + goto err; + goto err_retry; + } } else { sc->reply_sz = sc->facts.reply_sz; } @@ -2899,25 +2927,27 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) retval = mpi3mr_reply_alloc(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated reply and sense buffers, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated reply and sense buffers, error: 0x%x\n", retval); - goto out_failed; + goto err; } - + if (init_type == MPI3MR_INIT_TYPE_INIT) { retval = mpi3mr_alloc_chain_bufs(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated chain buffers, retval: 0x%x\n", - retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocated chain buffers, error: 0x%x\n", + retval); + goto err; } } - + retval = mpi3mr_issue_iocinit(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Init, retval: 0x%x\n", - retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to Issue IOC Init, error: 0x%x\n", + retval); + if (retval == ENOMEM) + goto err; + goto err_retry; } mpi3mr_print_fw_pkg_ver(sc); @@ -2925,77 +2955,84 @@ int mpi3mr_initialize_ioc(struct mpi3mr_softc *sc, U8 init_type) sc->reply_free_q_host_index = sc->num_reply_bufs; mpi3mr_regwrite(sc, MPI3_SYSIF_REPLY_FREE_HOST_INDEX_OFFSET, sc->reply_free_q_host_index); - + sc->sense_buf_q_host_index = sc->num_sense_bufs; - + mpi3mr_regwrite(sc, MPI3_SYSIF_SENSE_BUF_FREE_HOST_INDEX_OFFSET, sc->sense_buf_q_host_index); if (init_type == MPI3MR_INIT_TYPE_INIT) { retval = mpi3mr_alloc_interrupts(sc, 0); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate interrupts, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate interrupts, error: 0x%x\n", retval); - goto out_failed; + goto err; } retval = mpi3mr_setup_irqs(sc); if (retval) { - printf(IOCNAME "Failed to setup ISR, error: 0x%x\n", - sc->name, retval); - goto out_failed; + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to setup ISR, error: 0x%x\n", retval); + goto err; } mpi3mr_enable_interrupts(sc); } else mpi3mr_enable_interrupts(sc); - - retval = mpi3mr_create_op_queues(sc); + retval = mpi3mr_create_op_queues(sc); if (retval) { mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to create operational queues, error: %d\n", retval); - goto out_failed; + if (retval == ENOMEM) + goto err; + goto err_retry; } if (!sc->throttle_groups && sc->num_io_throttle_group) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "allocating memory for throttle groups\n"); size = sizeof(struct mpi3mr_throttle_group_info); sc->throttle_groups = (struct mpi3mr_throttle_group_info *) malloc(sc->num_io_throttle_group * size, M_MPI3MR, M_NOWAIT | M_ZERO); - if (!sc->throttle_groups) - goto out_failed; + if (!sc->throttle_groups) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "throttle groups memory allocation failed\n"); + goto err; + } } if (init_type == MPI3MR_INIT_TYPE_RESET) { - mpi3mr_dprint(sc, MPI3MR_INFO, "Re-register events\n"); + mpi3mr_dprint(sc, MPI3MR_XINFO, "Re-register events\n"); retval = mpi3mr_register_events(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to re-register events, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to re-register events, error: 0x%x\n", retval); - goto out_failed; + goto err_retry; } mpi3mr_dprint(sc, MPI3MR_INFO, "Issuing Port Enable\n"); retval = mpi3mr_issue_port_enable(sc, 0); if (retval) { - mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to issue port enable, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_INFO, "Failed to issue port enable, error: 0x%x\n", retval); - goto out_failed; + goto err_retry; } } retval = mpi3mr_pel_alloc(sc); if (retval) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate memory for PEL, retval: 0x%x\n", + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to allocate memory for PEL, error: 0x%x\n", retval); - goto out_failed; + goto err; } - + return retval; -out_failed: +err_retry: + if ((retry++ < 2) && (((ticks - start_ticks) / hz) < (sc->ready_timeout - 60))) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Retrying controller initialization," + "retry_count: %d\n", retry); + goto retry_init; + } +err: retval = -1; return retval; } @@ -5735,23 +5772,6 @@ static void mpi3mr_flush_io(struct mpi3mr_softc *sc) } } } -/** - * mpi3mr_clear_reset_history - Clear reset history - * @sc: Adapter instance reference - * - * Write the reset history bit in IOC Status to clear the bit, - * if it is already set. - * - * Return: Nothing. - */ -static inline void mpi3mr_clear_reset_history(struct mpi3mr_softc *sc) -{ - U32 ioc_status; - - ioc_status = mpi3mr_regread(sc, MPI3_SYSIF_IOC_STATUS_OFFSET); - if (ioc_status & MPI3_SYSIF_IOC_STATUS_RESET_HISTORY) - mpi3mr_regwrite(sc, MPI3_SYSIF_IOC_STATUS_OFFSET, ioc_status); -} /** * mpi3mr_set_diagsave - Set diag save bit for snapdump From nobody Wed Apr 30 17:21:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWR3H9Zz5tj2X; Wed, 30 Apr 2025 17:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWR0Y5Jz3Mft; Wed, 30 Apr 2025 17:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033715; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ixoQQnSJtsyS+M6L+eNh5YWXRU4LZ/bGMljHV3dHoPg=; b=U7sVB8dwzey5tttJBLJLqkm/m39ZgPArNGkUIhITMSKcln4kB0gWRWpDFlF7dzBHY8DOu5 lRYcefYLBnMYFPIIpTsn9HTRjnbCuq9CD7KEOvE3hbkxDrUIyC5mWp6UXlNhQE8DHM9kWt 3XqRuvjUyv11ISo47ymd14+m5QNV1NSUrpc/bOVm+lasFOnKEI9iWs89WzYNwgktFqJPIh pYlC+zfoFHVi1S0IIsfsP0mXIAcue4ksaRaFusjAsvfY2xk2phwbnjdIwLB/Ov8ZXUhzLT I2Mj1720sLRqwewmUIm9Su3VY2PoxjxfBUhFWmYq/Hi+Cl49zB2vI2miqtN+Iw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033715; a=rsa-sha256; cv=none; b=S2qrCwRaEtsrwzCWIoyOfe5klG6Yx8mfcu0pyVAMK/Wc0eaHs6DfqrQ9IjtYZKX1asYWNm rsndUb4KRUWLs6/tsLsXqDFvOfvuCEoaKGEzt0gZhs/QsVH2IiU1cTGulFUThC9UMuWTER 925riYaUmd0SfFaneZ5ydzkYESJYQdwo3eEGgbILmbuV+5Qf4u+Y4DLJw1xL+CJyfB3QHL EXn7djor7kN1kqa7TLbNa93kUR2Xi48fE6/vvHJa0aK2wImoC2qMlLI/c605zEyFezwQ9s tkaV/ZSOWDO9VYL+aPTyyLLeigIp1MFqMmq2HK/wOUKfzmWjUhPwA+soX2ZLcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033715; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ixoQQnSJtsyS+M6L+eNh5YWXRU4LZ/bGMljHV3dHoPg=; b=GgmkTNJDeS2YqBdn5iR7MDUps6iF+0yGx+rwyLFf2ERD3f1Y33L04RL0MbX9i6qCRwZd4+ 38VXFLl2t9gd6K6EYPTjUn2fzflY1UegOgQyI5JwtznTgQg/sLpziZ8lrnoub/FHMXZ1wM PlpY70RROmnDksNkKeMHq3vQ0y9WVzTQe5poPusruJgXeMrd1LSsrqVsbnnPT71NrkYPvM f6/Kb+w0hBMNgnU3aXH2ruZCG7g43rlXCZJM41zs/2G5l8iTmRx6luHYVVracks7uqGv4I Ka52aSQ4vxEZ7zmgYxgnl/bA8sN4/aDEuKmfeg3Ilz/TLr/DZOtAcqGIpGJxRA== 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 4ZnkWR08tlzmR; Wed, 30 Apr 2025 17:21:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLsDJ095395; Wed, 30 Apr 2025 17:21:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLsBi095392; Wed, 30 Apr 2025 17:21:54 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:54 GMT Message-Id: <202504301721.53UHLsBi095392@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: 9980fb4d87ae - stable/14 - mpi3mr: Block I/Os While Task Management is in Progress List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 9980fb4d87ae68a48554444b8c4048dd73194c70 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=9980fb4d87ae68a48554444b8c4048dd73194c70 commit 9980fb4d87ae68a48554444b8c4048dd73194c70 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:39:43 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Block I/Os While Task Management is in Progress The driver previously blocked I/Os only for OS-initiated task management commands. This patch extends the behavior to also block I/Os during application-initiated task management operations (excluding Task Abort). Before submitting such commands to the firmware, I/O submissions are paused for the respective device. Once the command completes, I/O operations are resumed. This ensures safe and consistent task management handling. [[ Note: Warner landed this with the pending suggestion since this change is good enough for 14.3, but chs' suggestion for better atomics needs to be implemented soon ]] Discussed with: imp, chs Differential Revision: https://reviews.freebsd.org/D49749 (cherry picked from commit 49445b54638f7b2d45942edd61c70fe0baa28f37) --- sys/dev/mpi3mr/mpi3mr_app.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sys/dev/mpi3mr/mpi3mr_app.c b/sys/dev/mpi3mr/mpi3mr_app.c index e98c6e2e942c..6d056e96109c 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.c +++ b/sys/dev/mpi3mr/mpi3mr_app.c @@ -798,6 +798,8 @@ mpi3mr_app_mptcmds(struct cdev *dev, u_long cmd, void *uarg, struct mpi3mr_ioctl_mpt_dma_buffer *dma_buffers = NULL, *dma_buff = NULL; struct mpi3mr_ioctl_mpirepbuf *mpirepbuf = NULL; struct mpi3mr_ioctl_mptcmd *karg = (struct mpi3mr_ioctl_mptcmd *)uarg; + struct mpi3mr_target *tgtdev = NULL; + Mpi3SCSITaskMgmtRequest_t *tm_req = NULL; sc = mpi3mr_app_get_adp_instance(karg->mrioc_id); @@ -1061,6 +1063,18 @@ mpi3mr_app_mptcmds(struct cdev *dev, u_long cmd, void *uarg, } } + if (mpi_header->Function == MPI3_FUNCTION_SCSI_TASK_MGMT) { + tm_req = (Mpi3SCSITaskMgmtRequest_t *)mpi_request; + if (tm_req->TaskType != MPI3_SCSITASKMGMT_TASKTYPE_ABORT_TASK) { + tgtdev = mpi3mr_find_target_by_dev_handle(sc->cam_sc, tm_req->DevHandle); + if (!tgtdev) { + rval = ENODEV; + goto out; + } + mpi3mr_atomic_inc(&tgtdev->block_io); + } + } + sc->ioctl_cmds.state = MPI3MR_CMD_PENDING; sc->ioctl_cmds.is_waiting = 1; sc->ioctl_cmds.callback = NULL; @@ -1179,6 +1193,9 @@ mpi3mr_app_mptcmds(struct cdev *dev, u_long cmd, void *uarg, sc->mpi3mr_aen_triggered = 0; out_failed: + if (tgtdev) + mpi3mr_atomic_dec(&tgtdev->block_io); + sc->ioctl_cmds.is_senseprst = 0; sc->ioctl_cmds.sensebuf = NULL; sc->ioctl_cmds.state = MPI3MR_CMD_NOTUSED; From nobody Wed Apr 30 17:21:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWQ1Y5Vz5tj1m; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWP6ztmz3MXZ; Wed, 30 Apr 2025 17:21:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ePRYEfEvetqvHFq2umXbI9C5z1boNR5WhpIdo9nTkTo=; b=Qp5J3pEXlHdSDn2EcrH4f4d0AwvaR+jrfrMjAFfOFxKl22GSc9vvTtyQA/tMRIr9NoSFE+ cPkWTKranj+mE6a5q8WDhAzIB1P/btLovIn2WlkWr/eHvhES5LaaNQtVVqOcTPPMfMGIAS 3QNYSACWkmRZYZy7AfoQs4oEa0tQUUnn3mh9t+G6wkqk/87tPm5vvTL9GP74a0rhR+rxnM E05NVu/JMJmxTRb4JBFRpPoSEHqLXzk7w8kQMAs3mSYjdZCB571G2KPgs6gL0ALUZtaCQI c3ihICiYnYKJkOASD8MBCrgvos0YhmuqInTmmBaUavTd0o9cjbhF1TDMhxGaQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033713; a=rsa-sha256; cv=none; b=SQogFQRm/kuyKLfQVZjLa+zLX7pYsfW1V1Fis6Nu+7Je74Pkg/UAoAuul/q1mOcD3Ra6GG dTBSUiTGqKWHKZBhLAyLT8pdXWyAHAp7GfBceJbDEwkLVVF/4mHD7bcgTL3j8lbd5PQ7Y/ i4BOfT0szZ2aZqJpBSujwxItNzEnzZcW72yzfOjbHHJKjG49t916JvzdeANnY9cSiLl8Xz e5YpjML3k33uY1MFeZJ95VNjxEtFZBNxSZ9Ctjag9il8WMzSuYCfmtZza7cpOmfv948mQ8 iNQWS0qOSsEfVGEvdrsPAjvfuR4w/KPzKA9axSljgqrYBSOOr3YUlsiQvaa/aQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033713; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ePRYEfEvetqvHFq2umXbI9C5z1boNR5WhpIdo9nTkTo=; b=bzyWqGC+oc9hfzzCiJ1LPayQa16rvO5/GuUMpDyxhGdzyowc9ASCcI84Ex9q2k8YDZDyhv qlsTd2ijN4hK+8Sbl65CQnG2WSsTWyVgTlq8iFYM6hIdEurUMtqa0xksvA9iTSbm6CnvJG O4DDe1Ed3lims0HUrGfNMCrvJhU9gUHVN3sjaWnoRe1XttYZg6TAu0UJ8ySYGP0r1J6ZX3 o4vbWotmWnCv/7Xc3U/GpXkS4jXs3tEDlrIQ5X3N13WGrNJJzli4qJ3tKUVlaH+ZeT5EBs 0Zqoa7OAxqVwTANNaOb3Zr5EI2Im9zi8jD64SW8JEa4XX95nzdQqduXwUukNiA== 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 4ZnkWP6L6Dz1CmK; Wed, 30 Apr 2025 17:21:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLrIn095361; Wed, 30 Apr 2025 17:21:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLrO3095358; Wed, 30 Apr 2025 17:21:53 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:53 GMT Message-Id: <202504301721.53UHLrO3095358@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: 19981894d133 - stable/14 - mpi3mr: Add NVData Parameter for Host Timestamp Synchronization List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 19981894d1330a1a3c655bfad82923bceebdf7d5 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=19981894d1330a1a3c655bfad82923bceebdf7d5 commit 19981894d1330a1a3c655bfad82923bceebdf7d5 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:39:23 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Add NVData Parameter for Host Timestamp Synchronization The driver now retrieves the Time Stamp value from Driver Page 1 during load and after controller reset. If the value is valid, it is used to enable periodic host timestamp synchronization. This adds a tunable NVData parameter to control the behavior of host time sync, enhancing flexibility and platform-specific control. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49748 (cherry picked from commit e80317babdb9044962dcbf16c69633579cd90b00) --- sys/dev/mpi3mr/mpi3mr.c | 325 ++++++++++++++++++++++++++++++++++++++++++++ sys/dev/mpi3mr/mpi3mr.h | 14 +- sys/dev/mpi3mr/mpi3mr_pci.c | 25 +++- 3 files changed, 362 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 1611f2c4aceb..407947fa812b 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1339,6 +1339,7 @@ static const struct { "diagnostic buffer post timeout" }, { MPI3MR_RESET_FROM_FIRMWARE, "firmware asynchronus reset" }, + { MPI3MR_RESET_FROM_CFG_REQ_TIMEOUT, "configuration request timeout" }, { MPI3MR_RESET_REASON_COUNT, "Reset reason count" }, }; @@ -1916,6 +1917,15 @@ static int mpi3mr_reply_alloc(struct mpi3mr_softc *sc) goto out_failed; } + sc->cfg_cmds.reply = malloc(sc->reply_sz, + M_MPI3MR, M_NOWAIT | M_ZERO); + + if (!sc->cfg_cmds.reply) { + printf(IOCNAME "Cannot allocate memory for cfg_cmds.reply\n", + sc->name); + goto out_failed; + } + sc->ioctl_cmds.reply = malloc(sc->reply_sz, M_MPI3MR, M_NOWAIT | M_ZERO); if (!sc->ioctl_cmds.reply) { printf(IOCNAME "Cannot allocate memory for ioctl_cmds.reply\n", @@ -2878,6 +2888,12 @@ retry_init: sc->init_cmds.dev_handle = MPI3MR_INVALID_DEV_HANDLE; sc->init_cmds.host_tag = MPI3MR_HOSTTAG_INITCMDS; + mtx_init(&sc->cfg_cmds.completion.lock, "CFG commands lock", NULL, MTX_DEF); + sc->cfg_cmds.reply = NULL; + sc->cfg_cmds.state = MPI3MR_CMD_NOTUSED; + sc->cfg_cmds.dev_handle = MPI3MR_INVALID_DEV_HANDLE; + sc->cfg_cmds.host_tag = MPI3MR_HOSTTAG_CFGCMDS; + mtx_init(&sc->ioctl_cmds.completion.lock, "IOCTL commands lock", NULL, MTX_DEF); sc->ioctl_cmds.reply = NULL; sc->ioctl_cmds.state = MPI3MR_CMD_NOTUSED; @@ -3043,6 +3059,9 @@ retry_init: goto err; } + if (mpi3mr_cfg_get_driver_pg1(sc) != 0) + mpi3mr_dprint(sc, MPI3MR_ERROR, "Failed to get the cfg driver page1\n"); + return retval; err_retry: @@ -3120,6 +3139,116 @@ out: return retval; } +static int mpi3mr_timestamp_sync(struct mpi3mr_softc *sc) +{ + int retval = 0; + struct timeval current_time; + int64_t time_in_msec; + Mpi3IoUnitControlRequest_t iou_ctrl = {0}; + + mtx_lock(&sc->init_cmds.completion.lock); + if (sc->init_cmds.state & MPI3MR_CMD_PENDING) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: command is in use\n"); + mtx_unlock(&sc->init_cmds.completion.lock); + return -1; + } + + sc->init_cmds.state = MPI3MR_CMD_PENDING; + sc->init_cmds.is_waiting = 1; + sc->init_cmds.callback = NULL; + iou_ctrl.HostTag = htole64(MPI3MR_HOSTTAG_INITCMDS); + iou_ctrl.Function = MPI3_FUNCTION_IO_UNIT_CONTROL; + iou_ctrl.Operation = MPI3_CTRL_OP_UPDATE_TIMESTAMP; + getmicrotime(¤t_time); + time_in_msec = (int64_t)current_time.tv_sec * 1000 + current_time.tv_usec/1000; + iou_ctrl.Param64[0] = htole64(time_in_msec); + + init_completion(&sc->init_cmds.completion); + + retval = mpi3mr_submit_admin_cmd(sc, &iou_ctrl, sizeof(iou_ctrl)); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "timestamp sync: Admin Post failed\n"); + goto out_unlock; + } + + wait_for_completion_timeout(&sc->init_cmds.completion, + (MPI3MR_INTADMCMD_TIMEOUT)); + + if (!(sc->init_cmds.state & MPI3MR_CMD_COMPLETE)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: command timed out\n"); + sc->init_cmds.is_waiting = 0; + + if (!(sc->init_cmds.state & MPI3MR_CMD_RESET)) + mpi3mr_check_rh_fault_ioc(sc, MPI3MR_RESET_FROM_TSU_TIMEOUT); + + retval = -1; + goto out_unlock; + } + + if (((sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK) != MPI3_IOCSTATUS_SUCCESS) && + (sc->init_cmds.ioc_status != MPI3_IOCSTATUS_SUPERVISOR_ONLY)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: Failed IOCStatus(0x%04x) " + " Loginfo(0x%08x) \n", (sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK), + sc->init_cmds.ioc_loginfo); + retval = -1; + } + +out_unlock: + sc->init_cmds.state = MPI3MR_CMD_NOTUSED; + mtx_unlock(&sc->init_cmds.completion.lock); + + return retval; +} + +void +mpi3mr_timestamp_thread(void *arg) +{ + struct mpi3mr_softc *sc = (struct mpi3mr_softc *)arg; + U64 elapsed_time = 0; + + sc->timestamp_thread_active = 1; + mtx_lock(&sc->reset_mutex); + while (1) { + + if (sc->mpi3mr_flags & MPI3MR_FLAGS_SHUTDOWN || + (sc->unrecoverable == 1)) { + mpi3mr_dprint(sc, MPI3MR_INFO, + "Exit due to %s from %s\n", + sc->mpi3mr_flags & MPI3MR_FLAGS_SHUTDOWN ? "Shutdown" : + "Hardware critical error", __func__); + break; + } + mtx_unlock(&sc->reset_mutex); + + while (sc->reset_in_progress) { + if (elapsed_time) + elapsed_time = 0; + if (sc->unrecoverable) + break; + pause("mpi3mr_timestamp_thread", hz / 5); + } + + if (elapsed_time++ >= sc->ts_update_interval * 60) { + mpi3mr_timestamp_sync(sc); + elapsed_time = 0; + } + + /* + * Sleep for 1 second if we're not exiting, then loop to top + * to poll exit status and hardware health. + */ + mtx_lock(&sc->reset_mutex); + if (((sc->mpi3mr_flags & MPI3MR_FLAGS_SHUTDOWN) == 0) && + (!sc->unrecoverable) && (!sc->reset_in_progress)) { + msleep(&sc->timestamp_chan, &sc->reset_mutex, PRIBIO, + "mpi3mr_timestamp", 1 * hz); + } + } + mtx_unlock(&sc->reset_mutex); + sc->timestamp_thread_active = 0; + kproc_exit(0); +} + void mpi3mr_watchdog_thread(void *arg) { @@ -4399,6 +4528,9 @@ static void mpi3mr_process_admin_reply_desc(struct mpi3mr_softc *sc, case MPI3MR_HOSTTAG_INITCMDS: cmdptr = &sc->init_cmds; break; + case MPI3MR_HOSTTAG_CFGCMDS: + cmdptr = &sc->cfg_cmds; + break; case MPI3MR_HOSTTAG_IOCTLCMDS: cmdptr = &sc->ioctl_cmds; break; @@ -5304,6 +5436,184 @@ out_failed: mpi3mr_free_ioctl_dma_memory(sc); } +static void inline +mpi3mr_free_dma_mem(struct mpi3mr_softc *sc, + struct dma_memory_desc *mem_desc) +{ + if (mem_desc->dma_addr) + bus_dmamap_unload(mem_desc->tag, mem_desc->dmamap); + + if (mem_desc->addr != NULL) { + bus_dmamem_free(mem_desc->tag, mem_desc->addr, mem_desc->dmamap); + mem_desc->addr = NULL; + } + + if (mem_desc->tag != NULL) + bus_dma_tag_destroy(mem_desc->tag); +} + +static int +mpi3mr_alloc_dma_mem(struct mpi3mr_softc *sc, + struct dma_memory_desc *mem_desc) +{ + int retval; + + if (bus_dma_tag_create(sc->mpi3mr_parent_dmat, /* parent */ + 4, 0, /* algnmnt, boundary */ + sc->dma_loaddr, /* lowaddr */ + sc->dma_hiaddr, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + mem_desc->size, /* maxsize */ + 1, /* nsegments */ + mem_desc->size, /* maxsize */ + 0, /* flags */ + NULL, NULL, /* lockfunc, lockarg */ + &mem_desc->tag)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Cannot allocate DMA tag\n", __func__); + return ENOMEM; + } + + if (bus_dmamem_alloc(mem_desc->tag, (void **)&mem_desc->addr, + BUS_DMA_NOWAIT, &mem_desc->dmamap)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Cannot allocate DMA memory\n", __func__); + retval = ENOMEM; + goto out; + } + + bzero(mem_desc->addr, mem_desc->size); + + bus_dmamap_load(mem_desc->tag, mem_desc->dmamap, mem_desc->addr, mem_desc->size, + mpi3mr_memaddr_cb, &mem_desc->dma_addr, BUS_DMA_NOWAIT); + + if (!mem_desc->addr) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Cannot load DMA map\n", __func__); + retval = ENOMEM; + goto out; + } + return 0; +out: + mpi3mr_free_dma_mem(sc, mem_desc); + return retval; +} + +static int +mpi3mr_post_cfg_req(struct mpi3mr_softc *sc, Mpi3ConfigRequest_t *cfg_req) +{ + int retval; + + mtx_lock(&sc->cfg_cmds.completion.lock); + if (sc->cfg_cmds.state & MPI3MR_CMD_PENDING) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue cfg request: cfg command is in use\n"); + mtx_unlock(&sc->cfg_cmds.completion.lock); + return -1; + } + + sc->cfg_cmds.state = MPI3MR_CMD_PENDING; + sc->cfg_cmds.is_waiting = 1; + sc->cfg_cmds.callback = NULL; + sc->cfg_cmds.ioc_status = 0; + sc->cfg_cmds.ioc_loginfo = 0; + + cfg_req->HostTag = htole16(MPI3MR_HOSTTAG_CFGCMDS); + cfg_req->Function = MPI3_FUNCTION_CONFIG; + cfg_req->PageType = MPI3_CONFIG_PAGETYPE_DRIVER; + cfg_req->PageNumber = 1; + cfg_req->PageAddress = 0; + + init_completion(&sc->cfg_cmds.completion); + + retval = mpi3mr_submit_admin_cmd(sc, cfg_req, sizeof(*cfg_req)); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue cfg request: Admin Post failed\n"); + goto out; + } + + wait_for_completion_timeout(&sc->cfg_cmds.completion, + (MPI3MR_INTADMCMD_TIMEOUT)); + + if (!(sc->cfg_cmds.state & MPI3MR_CMD_COMPLETE)) { + if (!(sc->cfg_cmds.state & MPI3MR_CMD_RESET)) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "config request command timed out\n"); + mpi3mr_check_rh_fault_ioc(sc, MPI3MR_RESET_FROM_CFG_REQ_TIMEOUT); + } + retval = -1; + sc->cfg_cmds.is_waiting = 0; + goto out; + } + + if ((sc->cfg_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK) != + MPI3_IOCSTATUS_SUCCESS ) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "config request failed, IOCStatus(0x%04x) " + " Loginfo(0x%08x) \n",(sc->cfg_cmds.ioc_status & + MPI3_IOCSTATUS_STATUS_MASK), sc->cfg_cmds.ioc_loginfo); + retval = -1; + } + +out: + sc->cfg_cmds.state = MPI3MR_CMD_NOTUSED; + mtx_unlock(&sc->cfg_cmds.completion.lock); + return retval; +} + +static int mpi3mr_process_cfg_req(struct mpi3mr_softc *sc, + Mpi3ConfigRequest_t *cfg_req, + Mpi3ConfigPageHeader_t *cfg_hdr, + void *cfg_buf, U32 cfg_buf_sz) +{ + int retval; + struct dma_memory_desc mem_desc = {0}; + + if (cfg_req->Action == MPI3_CONFIG_ACTION_PAGE_HEADER) + mem_desc.size = sizeof(Mpi3ConfigPageHeader_t); + else { + mem_desc.size = le16toh(cfg_hdr->PageLength) * 4; + cfg_req->PageLength = cfg_hdr->PageLength; + cfg_req->PageVersion = cfg_hdr->PageVersion; + } + + retval = mpi3mr_alloc_dma_mem(sc, &mem_desc); + if (retval) { + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Failed to allocate DMA memory\n", __func__); + return retval; + } + + mpi3mr_add_sg_single(&cfg_req->SGL, MPI3MR_SGEFLAGS_SYSTEM_SIMPLE_END_OF_LIST, + mem_desc.size, mem_desc.dma_addr); + + retval = mpi3mr_post_cfg_req(sc, cfg_req); + if (retval) + mpi3mr_dprint(sc, MPI3MR_ERROR, "%s: Failed to post config request\n", __func__); + else + memcpy(cfg_buf, mem_desc.addr, min(mem_desc.size, cfg_buf_sz)); + + mpi3mr_free_dma_mem(sc, &mem_desc); + return retval; +} + +int mpi3mr_cfg_get_driver_pg1(struct mpi3mr_softc *sc) +{ + int retval; + Mpi3DriverPage1_t driver_pg1 = {0}; + Mpi3ConfigPageHeader_t cfg_hdr = {0}; + Mpi3ConfigRequest_t cfg_req = {0}; + + cfg_req.Action = MPI3_CONFIG_ACTION_PAGE_HEADER; + retval = mpi3mr_process_cfg_req(sc, &cfg_req, NULL, &cfg_hdr, sizeof(cfg_hdr)); + if (retval) + goto error; + + cfg_req.Action = MPI3_CONFIG_ACTION_READ_CURRENT; + retval = mpi3mr_process_cfg_req(sc, &cfg_req, &cfg_hdr, &driver_pg1, sizeof(driver_pg1)); + +error: + if (!retval && driver_pg1.TimeStampUpdate) + sc->ts_update_interval = driver_pg1.TimeStampUpdate; + else + sc->ts_update_interval = MPI3MR_TSUPDATE_INTERVAL; + + return retval; +} + void mpi3mr_destory_mtx(struct mpi3mr_softc *sc) { @@ -5335,6 +5645,9 @@ mpi3mr_destory_mtx(struct mpi3mr_softc *sc) if (mtx_initialized(&sc->init_cmds.completion.lock)) mtx_destroy(&sc->init_cmds.completion.lock); + if (mtx_initialized(&sc->cfg_cmds.completion.lock)) + mtx_destroy(&sc->cfg_cmds.completion.lock); + if (mtx_initialized(&sc->ioctl_cmds.completion.lock)) mtx_destroy(&sc->ioctl_cmds.completion.lock); @@ -5513,6 +5826,11 @@ mpi3mr_free_mem(struct mpi3mr_softc *sc) sc->init_cmds.reply = NULL; } + if (sc->cfg_cmds.reply) { + free(sc->cfg_cmds.reply, M_MPI3MR); + sc->cfg_cmds.reply = NULL; + } + if (sc->ioctl_cmds.reply) { free(sc->ioctl_cmds.reply, M_MPI3MR); sc->ioctl_cmds.reply = NULL; @@ -5630,6 +5948,9 @@ static void mpi3mr_flush_drv_cmds(struct mpi3mr_softc *sc) cmdptr = &sc->init_cmds; mpi3mr_drv_cmd_comp_reset(sc, cmdptr); + cmdptr = &sc->cfg_cmds; + mpi3mr_drv_cmd_comp_reset(sc, cmdptr); + cmdptr = &sc->ioctl_cmds; mpi3mr_drv_cmd_comp_reset(sc, cmdptr); @@ -5673,6 +5994,7 @@ static void mpi3mr_memset_buffers(struct mpi3mr_softc *sc) memset(sc->admin_reply, 0, sc->admin_reply_q_sz); memset(sc->init_cmds.reply, 0, sc->reply_sz); + memset(sc->cfg_cmds.reply, 0, sc->reply_sz); memset(sc->ioctl_cmds.reply, 0, sc->reply_sz); memset(sc->host_tm_cmds.reply, 0, sc->reply_sz); memset(sc->pel_cmds.reply, 0, sc->reply_sz); @@ -6015,6 +6337,9 @@ int mpi3mr_soft_reset_handler(struct mpi3mr_softc *sc, sc->reset_in_progress = 1; sc->block_ioctls = 1; + if (sc->timestamp_thread_active) + wakeup(&sc->timestamp_chan); + while (mpi3mr_atomic_read(&sc->pend_ioctls) && (i < PEND_IOCTLS_COMP_WAIT_TIME)) { ioc_state = mpi3mr_get_iocstate(sc); if (ioc_state == MRIOC_STATE_FAULT) diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index bcc8df020c1d..e1d757b04eba 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -142,6 +142,7 @@ #define MPI3MR_HOSTTAG_PELABORT 3 #define MPI3MR_HOSTTAG_PELWAIT 4 #define MPI3MR_HOSTTAG_TMS 5 +#define MPI3MR_HOSTTAG_CFGCMDS 6 #define MAX_MGMT_ADAPTERS 8 #define MPI3MR_WAIT_BEFORE_CTRL_RESET 5 @@ -164,7 +165,7 @@ extern char fmt_os_ver[16]; raw_os_ver[3], raw_os_ver[4], raw_os_ver[5],\ raw_os_ver[6]); #define MPI3MR_NUM_DEVRMCMD 1 -#define MPI3MR_HOSTTAG_DEVRMCMD_MIN (MPI3MR_HOSTTAG_TMS + 1) +#define MPI3MR_HOSTTAG_DEVRMCMD_MIN (MPI3MR_HOSTTAG_CFGCMDS + 1) #define MPI3MR_HOSTTAG_DEVRMCMD_MAX (MPI3MR_HOSTTAG_DEVRMCMD_MIN + \ MPI3MR_NUM_DEVRMCMD - 1) #define MPI3MR_INTERNALCMDS_RESVD MPI3MR_HOSTTAG_DEVRMCMD_MAX @@ -238,6 +239,8 @@ extern char fmt_os_ver[16]; #define WRITE_SAME_32 0x0d +#define MPI3MR_TSUPDATE_INTERVAL 900 + struct completion { unsigned int done; struct mtx lock; @@ -314,6 +317,7 @@ enum mpi3mr_reset_reason { MPI3MR_RESET_FROM_SCSIIO_TIMEOUT = 26, MPI3MR_RESET_FROM_FIRMWARE = 27, MPI3MR_DEFAULT_RESET_REASON = 28, + MPI3MR_RESET_FROM_CFG_REQ_TIMEOUT = 29, MPI3MR_RESET_REASON_COUNT, }; @@ -556,6 +560,7 @@ struct mpi3mr_softc { char driver_name[MPI3MR_NAME_LENGTH]; int bars; bus_addr_t dma_loaddr; + bus_addr_t dma_hiaddr; u_int mpi3mr_debug; struct mpi3mr_reset reset; int max_msix_vectors; @@ -689,6 +694,7 @@ struct mpi3mr_softc { struct mpi3mr_drvr_cmd host_tm_cmds; struct mpi3mr_drvr_cmd dev_rmhs_cmds[MPI3MR_NUM_DEVRMCMD]; struct mpi3mr_drvr_cmd evtack_cmds[MPI3MR_NUM_EVTACKCMD]; + struct mpi3mr_drvr_cmd cfg_cmds; U16 devrem_bitmap_sz; void *devrem_bitmap; @@ -766,6 +772,10 @@ struct mpi3mr_softc { struct dma_memory_desc ioctl_chain_sge; struct dma_memory_desc ioctl_resp_sge; bool ioctl_sges_allocated; + struct proc *timestamp_thread_proc; + void *timestamp_chan; + u_int8_t timestamp_thread_active; + U32 ts_update_interval; }; static __inline uint64_t @@ -978,6 +988,7 @@ void mpi3mrsas_release_simq_reinit(struct mpi3mr_cam_softc *cam_sc); void mpi3mr_watchdog_thread(void *arg); +void mpi3mr_timestamp_thread(void *arg); void mpi3mr_add_device(struct mpi3mr_softc *sc, U16 per_id); int mpi3mr_remove_device(struct mpi3mr_softc *sc, U16 handle); int @@ -997,4 +1008,5 @@ void mpi3mr_poll_pend_io_completions(struct mpi3mr_softc *sc); void int_to_lun(unsigned int lun, U8 *req_lun); void trigger_reset_from_watchdog(struct mpi3mr_softc *sc, U8 reset_type, U16 reset_reason); void mpi3mr_alloc_ioctl_dma_memory(struct mpi3mr_softc *sc); +int mpi3mr_cfg_get_driver_pg1(struct mpi3mr_softc *sc); #endif /*MPI3MR_H_INCLUDED*/ diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index 194401c5a847..808349f26827 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -332,6 +332,13 @@ mpi3mr_ich_startup(void *arg) mtx_unlock(&sc->mpi3mr_mtx); + error = mpi3mr_kproc_create(mpi3mr_timestamp_thread, sc, + &sc->timestamp_thread_proc, 0, 0, + "mpi3mr_timestamp_thread%d", + device_get_unit(sc->mpi3mr_dev)); + if (error) + device_printf(sc->mpi3mr_dev, "Error %d starting timestamp thread\n", error); + error = mpi3mr_kproc_create(mpi3mr_watchdog_thread, sc, &sc->watchdog_thread, 0, 0, "mpi3mr_watchdog%d", device_get_unit(sc->mpi3mr_dev)); @@ -474,7 +481,7 @@ mpi3mr_pci_attach(device_t dev) mpi3mr_dprint(sc, MPI3MR_ERROR, "CAM attach failed\n"); goto load_failed; } - + sc->mpi3mr_ich.ich_func = mpi3mr_ich_startup; sc->mpi3mr_ich.ich_arg = sc; if (config_intrhook_establish(&sc->mpi3mr_ich) != 0) { @@ -664,10 +671,26 @@ mpi3mr_pci_detach(device_t dev) mtx_lock(&sc->reset_mutex); sc->mpi3mr_flags |= MPI3MR_FLAGS_SHUTDOWN; + if (sc->timestamp_thread_active) + wakeup(&sc->timestamp_chan); + if (sc->watchdog_thread_active) wakeup(&sc->watchdog_chan); mtx_unlock(&sc->reset_mutex); + i = 0; + while (sc->timestamp_thread_active && (i < 180)) { + i++; + if (!(i % 5)) { + mpi3mr_dprint(sc, MPI3MR_INFO, + "[%2d]waiting for " + "timestamp thread to quit reset %d\n", i, + sc->timestamp_thread_active); + } + pause("mpi3mr_shutdown", hz); + } + + i = 0; while (sc->reset_in_progress && (i < PEND_IOCTLS_COMP_WAIT_TIME)) { i++; if (!(i % 5)) { From nobody Wed Apr 30 17:21:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWT4sDzz5thmq; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWT2zCkz3Mb7; Wed, 30 Apr 2025 17:21:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033717; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xMwYA3Y50u+k2m1h3aCzqSCecM5AFYedyuE6R1L3/cI=; b=iH2eGA0O/AcUve2EaB5ZfKNXJ5rs3F3RKRenukAkuF4p/EYJM6rA7RVP/8iBzwMfDC0Z/J yS8odJyw8YeGaSVa+d1RJjHpO7XKehsxPo1v75imb3XESo3jL3xC+2qVIFA/oKeCszIx81 0RNpjGrps78jOGks7bzdyeN/r87fOSnHTbx5cJFQBycOgpCbAXmtldbu8CzcXQ7B667lHZ 61mcOYW9fBrq5xsLxyaexhRwMvPaoa3IFk2E9o95HOzmyZM7PeCuPnvjKCJdhIUkNWE89B YsC6kSolmGDHReVIBEFx2LithWgzxW8jnrNSjfBAsVw+u+5x/kJ1a9dqURAFVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033717; a=rsa-sha256; cv=none; b=EqBPl18LPpxA/EKKRw6BMfPx5lASBX3t1/UNPmpyQzLEvq6XQkQ/dPqUNiznlziHPVAnSn pgSwW6dzki+Cdj2+gd6nnWzo1A1qsXVJx02jhUox5BcUT4wq6Dr+c/+6Rmv9D2tIPZDKFs jkHHKDKxhzv3vtlHyC9ZMEBJ0C/3kndUN6FYVbLOwQCHqLvch8zDyC2mAuv0VnwlXE+NlL zvszWGim665gdQ59a1PmQxY9m8R0hH2HrqVuoy4Bu28j6IRBDHyKwTaKoZEFQgy7RHQTST 0HCdRArw560/3pC7P7YWehei/102P4quCkv4frXecBaVhBPAeCuzBZ235ytKQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033717; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xMwYA3Y50u+k2m1h3aCzqSCecM5AFYedyuE6R1L3/cI=; b=d/c66q6IsSG6xmiAM8VGQhpcA0YwLUOf807x42l/j3pvXy/PwD3vF3BsJ3qYy1KrgpWdV6 rj8Hk2hE+MXolYc4ROSsRtRmaJ3KCklyk60+amqfir23qFsadooLhRQ/Q85Mu7q2oh70lP 1B+DVL96n3xwlzqQugVWidIhVW871qMzcCZW+XlozKVJ6kqRTgNK3FrWVT0bpKlKRrs1sy v0iAxyVfKlCGJ0pQQwQaXZErHVei7WxpF8/F1WT47nf9KOastYWM0rabN6iZWzQtdp9uqT Oma9be9DptzrB84bCUevDImpqlX7JYrY6YknF6z+6AyXoHh8ppUkv+jzxhK66Q== 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 4ZnkWT1pxrz9g; Wed, 30 Apr 2025 17:21:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLvGQ095465; Wed, 30 Apr 2025 17:21:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLvs5095462; Wed, 30 Apr 2025 17:21:57 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:57 GMT Message-Id: <202504301721.53UHLvs5095462@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: 07070742fa71 - stable/14 - mpi3mr: Process LOG Data Events in Interrupt Top Half for Early Notification List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 07070742fa7159368621baae6d547656e4b4752f Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=07070742fa7159368621baae6d547656e4b4752f commit 07070742fa7159368621baae6d547656e4b4752f Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:14 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Process LOG Data Events in Interrupt Top Half for Early Notification The driver now processes LOG Data events in the interrupt top half instead of the bottom half. This allows LOG events to be handled immediately upon receipt, reducing latency and enabling early notification to the Library or applications. This change ensures LOG event handling occurs closer to the firmware's generation point, improving alignment with event-driven diagnostic and monitoring mechanisms. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49751 (cherry picked from commit df8a74fca036a0ba8026f3ae3da830dffb922faa) --- sys/dev/mpi3mr/mpi3mr.c | 7 ++++++- sys/dev/mpi3mr/mpi3mr_cam.c | 13 ------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 5c4df9cef0b6..e18fc0a9df74 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -4385,11 +4385,16 @@ static void mpi3mr_process_events(struct mpi3mr_softc *sc, break; } case MPI3_EVENT_DEVICE_INFO_CHANGED: - case MPI3_EVENT_LOG_DATA: { process_evt_bh = 1; break; } + case MPI3_EVENT_LOG_DATA: + { + mpi3mr_app_save_logdata(sc, (char*)event_reply->EventData, + le16toh(event_reply->EventDataLength) * 4); + break; + } case MPI3_EVENT_ENERGY_PACK_CHANGE: { mpi3mr_energypackchg_evt_th(sc, event_reply); diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index 80dadb9f4283..6a1a08d7b081 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1676,14 +1676,6 @@ mpi3mr_process_sastopochg_evt(struct mpi3mr_softc *sc, struct mpi3mr_fw_event_wo return; } -static inline void -mpi3mr_logdata_evt_bh(struct mpi3mr_softc *sc, - struct mpi3mr_fw_event_work *fwevt) -{ - mpi3mr_app_save_logdata(sc, fwevt->event_data, - fwevt->event_data_size); -} - static void mpi3mr_pcietopochg_evt_debug(struct mpi3mr_softc *sc, Mpi3EventDataPcieTopologyChangeList_t *event_data) @@ -2036,11 +2028,6 @@ mpi3mr_fw_work(struct mpi3mr_softc *sc, struct mpi3mr_fw_event_work *fw_event) mpi3mr_process_pcietopochg_evt(sc, fw_event); break; } - case MPI3_EVENT_LOG_DATA: - { - mpi3mr_logdata_evt_bh(sc, fw_event); - break; - } default: mpi3mr_dprint(sc, MPI3MR_TRACE,"Unhandled event 0x%0X\n", fw_event->event); From nobody Wed Apr 30 17:21:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWS4b8Jz5tj7L; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWS1gb3z3MQ2; Wed, 30 Apr 2025 17:21:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o57Ekg23dSewJAQSmFsACz4iRuUsvElwoYnDzijUg5s=; b=q9zWKYB3GiB3Gj8u5rNldwg3tXxr7q3hmwlWif4cYq+UMnMpkZEtRBz6QqR+kkMMxqaCuN N+tbU1BZrKciawMysJEGCr80yxJ9UMafUKBqbL4mu0kA0MOPcIem9BrGKmOYWHKTtiIyap pPPIqq5EoNoxIiHlOUcmUe7ALBcruaiFCun7uaGFd5NAB5qGN/khMUvH95iVawhpjcqNUl Yhh73x5c9fyU/QJAONaY0KZCIOTd7xEplmWb6IfhTsMtPvdPHoaYwVGZmzNE4ZY+FWCAF2 sJEGpNZAAMRK4mMsFqd8rycLl2Gdpr713sX8L52J1kQ7RkvVk9ymZh/TLYrD7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033716; a=rsa-sha256; cv=none; b=ezl+wXWByWK4J80GG85bEbaBgp69GYEqUtqrol9NGnT42JiJO9rtLaTHipH70BDyCd0ixR aELzCICKbV6lEDl/j04FiQm+mhBlsHWTVLQBgsFGSX4043kCT7U5+Fq6YecPTlYnuG1X1v +qTCsSkT6L6BxLnHz5MlT/F9hsXrgQe34LghywjUnaKKhguSiMLvGHntllsQBfTrFx8Br2 gWk+Fm2fuBQAFXSouDtjUa+nIBNz+JF4u+cEur6tBh0+/svOwUQ7V6bHSN8S3uubtyKe8r F+KqjJTXiogkd+ulRjpDtPVfMKwBO/J19Zt+Orr4Fg/z7pdk/CzN3dYmvsfo5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o57Ekg23dSewJAQSmFsACz4iRuUsvElwoYnDzijUg5s=; b=TIplIi9Ct2giK6b/lskkvykj3wyOUc696EYiaQK37OMcpgg5KkZzkjCSMeXBDcHht2g7Jk uKJp96qhSrtigYzP6/vHs6klqfc9i6RJtWAx7a8cBc06Z4NCkh7m/PpPhoyQwTjsyk5VO1 3BxyHhYs7ledME/erY0Hqt21KG1bvIRMG8Wbvi/A64qOe2XC8FxX4PyIVFF7ewvetsdrV2 VKVWOPQqiRKmKBK/UsGyzRHjKyaBL9gn6y7BzJCPmNugX6sMrpuxT2H2zjOstnt2X/GUeH 572Dio21StA02t1hb4aCbvfAPe20VH6fF+dcO3DscAkPBVv25/sZ7+vmbYc+MA== 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 4ZnkWS0ztsz1CmM; Wed, 30 Apr 2025 17:21:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLul2095430; Wed, 30 Apr 2025 17:21:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLuqQ095427; Wed, 30 Apr 2025 17:21:56 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:56 GMT Message-Id: <202504301721.53UHLuqQ095427@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: ec6fea480da5 - stable/14 - mpi3mr: Enable Diag Save for All Diagnostic Fault Cases List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ec6fea480da5570534a4d9e8af7af56de411df79 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=ec6fea480da5570534a4d9e8af7af56de411df79 commit ec6fea480da5570534a4d9e8af7af56de411df79 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:04 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:53 +0000 mpi3mr: Enable Diag Save for All Diagnostic Fault Cases This patch ensures the driver sets the Diag Save bit for all diagnostic fault conditions before issuing a Diagnostic Fault Reset. The firmware now incorporates logic to manage snapdump saving and requires the driver to always set the Diag Save bit to enable this feature. This change supports improved diagnostic data collection and fault handling. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49750 (cherry picked from commit b854677d970a11e87929fa95d0e4067f911faa62) --- sys/dev/mpi3mr/mpi3mr.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index 407947fa812b..5c4df9cef0b6 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -6214,6 +6214,9 @@ static int mpi3mr_issue_reset(struct mpi3mr_softc *sc, U16 reset_type, unlock_retry_count, host_diagnostic); } while (!(host_diagnostic & MPI3_SYSIF_HOST_DIAG_DIAG_WRITE_ENABLE)); + if (reset_type == MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT) + mpi3mr_set_diagsave(sc); + scratch_pad0 = ((MPI3MR_RESET_REASON_OSTYPE_FREEBSD << MPI3MR_RESET_REASON_OSTYPE_SHIFT) | (sc->facts.ioc_num << @@ -6407,10 +6410,14 @@ out: mpi3mr_app_send_aen(sc); } } else { - mpi3mr_issue_reset(sc, - MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT, reset_reason); + ioc_state = mpi3mr_get_iocstate(sc); + if (ioc_state != MRIOC_STATE_FAULT) + mpi3mr_issue_reset(sc, + MPI3_SYSIF_HOST_DIAG_RESET_ACTION_DIAG_FAULT, reset_reason); + sc->unrecoverable = 1; sc->reset_in_progress = 0; + sc->block_ioctls = 0; } mpi3mr_dprint(sc, MPI3MR_INFO, "Soft Reset: %s\n", ((retval == 0) ? "SUCCESS" : "FAILED")); From nobody Wed Apr 30 17:21:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWW0RYCz5thwW; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWV3Lp6z3MbF; Wed, 30 Apr 2025 17:21:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4T1rbyanAhxv/jfiRs6IQrske16fcrs9FP7vimo8g/A=; b=t55z0jvua9wa2BYuwKl46XxPL1/+DJMHd3Xw4U9eWzDnAyGcE9qhv1zMBzi2JwTsfoHOm6 zamt7+J68BeTlU3RjdBlcjCSsy6DhcmPN89e2XQhrFxt91g8Gak4JUK/husUeTVQ4LMRB8 mEBwy9ie7daBudoMOTbZa9f1491ObRZJQ1lYi2bkC623qNOP0m9HwDc50EPaxUivdOxQrz eDsRtyNikoqlPNN6vTmhsONTBRwG6+iKd6hnYzJJXYw6wuK3yamnflRnIGF8qgDz2OAT1d mkamNzoZfUPfbzF3Fxb+NaJ3pDp7uXsEBLBny8KLPXN4kHgj8PUVE8vil9wvDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033718; a=rsa-sha256; cv=none; b=GPciqCZ/+WzbO4+oOhafLthGngKladplX+ctNFS4b0qYFcccj3HAZmmwwLfCVJF4uphhw0 94LJOzTDnDRNwA4EbhRZose8YV8naf9T1JGdycVaL/7Sd/TL8NpMRKy44Taf57KSGP0dJa PbZFB+2dk6jzE65rN7p4ZDIOxhhX57rxA/HLmE/pNs6sMxAs8i+NWDQGq0AV/qcU3Q1onF VJap1D+lcop4kr5Yfncy9CgR841OqMQrgebnVvefR8hvLHu7JHN4IW/kqaKa0j21QZ1XsL nTTeBzWcdwHrohdOrWmNJC9+sQhvyooKKfg7zWJdLpAQ14y7m5CHTtQSMbOAMw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033718; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4T1rbyanAhxv/jfiRs6IQrske16fcrs9FP7vimo8g/A=; b=LAMtyg1mTuN6BkedwFHjOMWvf1qQgiH9pZZCEGCpZ1nCHtXgOJKThUTJSnyELaaDggoQJP IphdThM08uGHEjlStVI9Lt1KxX+mJOGAvlngtZVdD1qQeQUtqOMNJDXBhcO10LdX95nQn4 V4hXrCnoNhUvS+zuOVCvUEh0M/UpOuNnOdAQM0xLyI5nrMbG7dbFLbw5VJ0uCKAlBSqkwI iTMyHf0QBiJmxTJ5N1v+4Uvvtw91iRNYbVstPlZv2j0jHOP+hmH/kCbTH3GcyVOJNyLSCJ PAhAFBTcSZGJnq34B+l1MX52hgoo1BF51IlcyT4BzTdvg72OyQMSEG0J4J2Uqw== 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 4ZnkWV2hrczgk; Wed, 30 Apr 2025 17:21:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLwRC095505; Wed, 30 Apr 2025 17:21:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLwXh095502; Wed, 30 Apr 2025 17:21:58 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:58 GMT Message-Id: <202504301721.53UHLwXh095502@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: f76b6e1c075b - stable/14 - mpi3mr: Update Copyright Year to 2025 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: f76b6e1c075b2c5f96361e6f0aaab12aea58a92b Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f76b6e1c075b2c5f96361e6f0aaab12aea58a92b commit f76b6e1c075b2c5f96361e6f0aaab12aea58a92b Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:25 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:54 +0000 mpi3mr: Update Copyright Year to 2025 All driver source files have been updated to reflect the year 2025. This change is cosmetic and does not affect functionality. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49752 (cherry picked from commit 69be9a247b845b35146fed4575dacb565c9c18ba) --- sys/dev/mpi3mr/mpi3mr.c | 2 +- sys/dev/mpi3mr/mpi3mr.h | 2 +- sys/dev/mpi3mr/mpi3mr_app.c | 2 +- sys/dev/mpi3mr/mpi3mr_app.h | 2 +- sys/dev/mpi3mr/mpi3mr_cam.c | 2 +- sys/dev/mpi3mr/mpi3mr_cam.h | 2 +- sys/dev/mpi3mr/mpi3mr_pci.c | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index e18fc0a9df74..a8bd83c3bef4 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2016-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2016-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index e1d757b04eba..b887c1e234a5 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_app.c b/sys/dev/mpi3mr/mpi3mr_app.c index 6d056e96109c..7f568c01e3e5 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.c +++ b/sys/dev/mpi3mr/mpi3mr_app.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_app.h b/sys/dev/mpi3mr/mpi3mr_app.h index b0d62157db3c..a02c83ad32fe 100644 --- a/sys/dev/mpi3mr/mpi3mr_app.h +++ b/sys/dev/mpi3mr/mpi3mr_app.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index 6a1a08d7b081..b1fbd8e55134 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_cam.h b/sys/dev/mpi3mr/mpi3mr_cam.h index 115ce0c4b8d7..a6c41226b2e5 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.h +++ b/sys/dev/mpi3mr/mpi3mr_cam.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena diff --git a/sys/dev/mpi3mr/mpi3mr_pci.c b/sys/dev/mpi3mr/mpi3mr_pci.c index 808349f26827..b436541b26c0 100644 --- a/sys/dev/mpi3mr/mpi3mr_pci.c +++ b/sys/dev/mpi3mr/mpi3mr_pci.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2020-2024, Broadcom Inc. All rights reserved. + * Copyright (c) 2020-2025, Broadcom Inc. All rights reserved. * Support: * * Authors: Sumit Saxena From nobody Wed Apr 30 17:21:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWW6kfvz5tj4C; Wed, 30 Apr 2025 17:21: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWW3xCSz3MYn; Wed, 30 Apr 2025 17:21:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rPuk0+RMqdA2W6cro4R1XvvVnq8Ypws6sDgf2Vcn2as=; b=ywVY1dICGFAjQ4TKQTssdR6geWW2m5p6PhHa/lpdVMrn6QZi/SeTmQRmYDyJ13olanpwWO wOmPmvPdFN6O/YelXl4BxnX//6vwdbFbCtDQDVOdmtPsleZzsLpKyKNG1RFAxssH6olR5A 6ptcF6zoFjIlk6AbBptIyn0wcOF9VXVepOs0ucRckd7joB+OYtM0hPinn9fbadz3SQGhjH aHPDgUQhsyEzEDmr+frfPuNf5g7A5QsMx0etiA6EIuQ62F7ygNj7TuZ/qsyN63CyKzynO8 S6SlO/nNOilqiXvwXEzPcGvrGLfYB/gQ5FcwxUUG50VWb8NQHqvj+B/kN0YUOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033719; a=rsa-sha256; cv=none; b=u63enj9kYqCKknjGc/4QrKdg/1jQ6YgNSeXv8eqNeBRg7vqFJskad7bXB4gVnBWHwYdaPk N1/hsGPDATDVEz+AY2gAwDTLpZ5AfX3+Hrd8Q+f+adYf033rqmXLsypPLCxrGImNEoBJur NPJmH2k4iDnSclgmhtgR5s+pdk8QmVLcvSvOkNVnAWD7ooSJNSL7cWiU7k0rB6z6EVK4RW P3RZnTFi2g7rhHkhUg0Rin5dEtZF8HmQYgxHQAi0VodKDEggdiXF3rp0HxI0dSLFHfdLpP Kz8m7qOzRgYcdGRfhk0Tf9z8t5wJOytiOtMcBKHZGfmJ6R2+XdIRYzSoF75qeg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rPuk0+RMqdA2W6cro4R1XvvVnq8Ypws6sDgf2Vcn2as=; b=m5ztlOl9F85lSoMpIQnSeXLWpkP3Jbrj2MBPNnaMfNi7NvDh45Qf95W9YJazcKr2y3gY5E QWFeG8ShuA7VEohPAhUHJrHuYgn+ZVEhDCFqdeuJwsWpE0DeXhhjfXdWWNQ2LPYmG+0HOd RUFmks7tU3qFI3vgsIx3emzk6Kv4cs36RWnIZmwcAE6FXnpIyARSkUEwu4qEOrpTztSply 19qQTJH4V7tNk/1po8mL3CbWbowfNdov5+xq0mUR6k88wNcYCOkUYgHPqmrwlZOfsYgO0y 2PY3+sMKeMRQs00zp+XAJr1azlLlkb8gENWwlX/nwHXef1TCEH3oJJcDwHRi9Q== 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 4ZnkWW3N5XzdD; Wed, 30 Apr 2025 17:21:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHLxa7095540; Wed, 30 Apr 2025 17:21:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHLxPI095537; Wed, 30 Apr 2025 17:21:59 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:21:59 GMT Message-Id: <202504301721.53UHLxPI095537@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: e6d4b221ba7c - stable/14 - mpi3mr: Update Driver Version to 8.14.0.2.0 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e6d4b221ba7c58d4f86335bc57ed429d84d95258 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e6d4b221ba7c58d4f86335bc57ed429d84d95258 commit e6d4b221ba7c58d4f86335bc57ed429d84d95258 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:35 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:54 +0000 mpi3mr: Update Driver Version to 8.14.0.2.0 The driver version has been updated to 8.14.0.2.0 to reflect the latest release. This is a version-only update with no functional code changes. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49753 (cherry picked from commit f4d51d3e1a90dabbed26aacf1b58e20e23a19342) --- sys/dev/mpi3mr/mpi3mr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.h b/sys/dev/mpi3mr/mpi3mr.h index b887c1e234a5..d2d25deae13c 100644 --- a/sys/dev/mpi3mr/mpi3mr.h +++ b/sys/dev/mpi3mr/mpi3mr.h @@ -88,8 +88,8 @@ #include #include "mpi/mpi30_api.h" -#define MPI3MR_DRIVER_VERSION "8.10.0.1.0" -#define MPI3MR_DRIVER_RELDATE "19th Mar 2024" +#define MPI3MR_DRIVER_VERSION "8.14.0.2.0" +#define MPI3MR_DRIVER_RELDATE "9th Apr 2025" #define MPI3MR_DRIVER_NAME "mpi3mr" From nobody Wed Apr 30 17:22:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWb2cSkz5tjNC; Wed, 30 Apr 2025 17:22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWZ73qdz3MmY; Wed, 30 Apr 2025 17:22:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sbscoxYr1owb/934R5jFobDiupkIni/uKcF9QjAfD4U=; b=x1AsFJS3vILeFYr35dvIEhWj4hnWletJej3mwcm/85EOf2IcugSDB1S5yZBPwM5I3Q4ts8 Gsuw/ShVSWR7KgGdUskcxPDC7EDFNsbXVAKxvNw+Qm5nhWZaiHoVsyVp7djrtkUoM7hbGW 7bMGzaA1X+Z4GLPQfMSNSmC3lnzK8SemE1PpAKOI4zF+jnaMcR1gmEu4TESkqb1cvq6/C3 sFZlV3/Lvs87TZtpH32IAbQX1SnJ1KudQgWlG9sj+K2riNqX2nJlCrrwoqWfbV7N0mQb57 btONSo1hRBr2zfFUjTnO88bdyMO9OIuVPD1wI/+G9etJpRq0dkGYNosUjRHMTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033723; a=rsa-sha256; cv=none; b=La/U3O82X9jAuJ4hc32ipKyM0fSrhkvXkpRLYOWidF7kGNZlFlvQpC/0yCUURMoMsXnJKY 2lRGDp29drqAg+RuiCcINQxyFubVq6DAGFJBZ7VkpLknam6JsYDNLtxM5JWXeLzZU3VrVI aXVNDgojvrVhzxOetWNJCayx+Rw96hRgsxEYGbU0Ku2QORoaPcJ9xGFPAT6HJpG4cnNT+g GFEEQNSK/2Q2XcNnk1zcE4ZB/nF+6yuN4FNF240f6uScljhn1iTUSP+cOet1UcZjDAvEMW WKknP94VT31Poh3xCzpt7iC1UDI9CReDIa/D1Cm5G0K2jQ+4atCb+G/NzXC/KA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sbscoxYr1owb/934R5jFobDiupkIni/uKcF9QjAfD4U=; b=qoYQnUprn7Be5Kg4ObYdVNXSHMNcNfwmsjkzXyNO4+2rCQUqniwUtalGIvSEPB4GNysEIO 5Ph5NX37Tkp/o7bm7YVVmjJIfhM5LHpsgs7s58iNWnQcQxcl9qoEepOCAoxJhrq96QCrns Fu7VSUzcmeKeZRwFqQLZP/FnO89qXlMgfb0GNJzW90hkhR43IS0XcbhSPz/4mMnRuQs2jj sGC15g4tNlLWz96tmHejdL1TDEKiAJKoEv2PbrnS2ugWWJIu8oh4manV7gNWTghh7FQRHc ELCrgCmcXQLUojCGx/BBtrLhK+irDxeEmVoWyMHSu7cfSze4dGzzrAWz7+GKyA== 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 4ZnkWZ66SYzl4; Wed, 30 Apr 2025 17:22:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHM2ST095671; Wed, 30 Apr 2025 17:22:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHM2bK095668; Wed, 30 Apr 2025 17:22:02 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:22:02 GMT Message-Id: <202504301722.53UHM2bK095668@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: 3abb5750c321 - stable/14 - mpi3mr: Broadcom's MPT-Fusion version 4 is amd64 and aarch64 only List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3abb5750c32154a1ec1a8e9914c3657dc41271b4 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=3abb5750c32154a1ec1a8e9914c3657dc41271b4 commit 3abb5750c32154a1ec1a8e9914c3657dc41271b4 Author: Warner Losh AuthorDate: 2025-04-28 14:27:18 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:06:54 +0000 mpi3mr: Broadcom's MPT-Fusion version 4 is amd64 and aarch64 only Broadcom's MPT-Fusion version 4 driver only works on 64-bit systems, and has only been tested in amd64 and aarch64, so move it's building to just those. I didn't notice this in the review and neglected to test those cases (since I knew it didn't work there, so was a blind spot). Pointy-hat: imp Fixes: 9cdd40759617 Sponsored-by: Netflix Sponsored by: Netflix (cherry picked from commit 2f721943bf20e53b0ba7b5032a2900d0beb67413) --- sys/amd64/conf/NOTES | 3 +++ sys/arm64/conf/NOTES | 4 ++++ sys/conf/NOTES | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES index db93a47165d6..08d096cd800e 100644 --- a/sys/amd64/conf/NOTES +++ b/sys/amd64/conf/NOTES @@ -68,6 +68,9 @@ device tdfx # Enable 3Dfx Voodoo support # device smartpqi +# Broadcom MPT Fusion, version 4, is 64-bit only +device mpi3mr # LSI-Logic MPT-Fusion 4 + # # Network interfaces: # diff --git a/sys/arm64/conf/NOTES b/sys/arm64/conf/NOTES index add17c6bf0ea..3934bf47c9e7 100644 --- a/sys/arm64/conf/NOTES +++ b/sys/arm64/conf/NOTES @@ -94,6 +94,10 @@ device ice_ddp # Intel 800 Series DDP Package # Etherswitch devices device e6000sw # Marvell mv88e6085 based switches +# Storage +# Broadcom MPT Fusion, version 4, is 64-bit only +device mpi3mr # LSI-Logic MPT-Fusion 4 + # MMC/SD/SDIO Card slot support device sdhci_xenon # Marvell Xenon SD/MMC controller device aw_mmc # Allwinner SD/MMC controller diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 695bcb5f3ef6..6de8eab73027 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1588,7 +1588,8 @@ envvar hint.isp.0.topology="nport-only" envvar hint.isp.0.portwnn="w50000000aaaa0000" envvar hint.isp.0.nodewnn="w50000000aaaa0001" device ispfw -device mpi3mr # LSI-Logic MPT-Fusion 4 +# Only works on aarch64 and amd64 +#device mpi3mr # LSI-Logic MPT-Fusion 4 device mpr # LSI-Logic MPT-Fusion 3 device mps # LSI-Logic MPT-Fusion 2 device mpt # LSI-Logic MPT-Fusion From nobody Wed Apr 30 17:22:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWZ18GNz5tj26; Wed, 30 Apr 2025 17:22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWY5n8tz3Mkc; Wed, 30 Apr 2025 17:22:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tota2aTDl+pMDdZGdDjEXj6XIEKakYpB6Q1YoKLpImM=; b=HbdMhSxcwQkx1UpKuElc84THHew6LuHg7x6n39R5Yqnjwl3n048R4ejkfzR/B3G4Stda5H nH8vIoPKe/3Vy2mwegrUpzBQAoLANhmTVa3DL9ebGtNdBaUfrv1BgZY7hoGpTiLR9KUC7l A6tQbAkREBPBtXYk/ve2OvX5AYETQPonG+H67dPffaRTTskT4WRG5wnXDfYwcC1d03h5JT brK0L2e2Uw3HN5KpHl07XaUpdyOe4641zO6mTskMALFe47Vo2jFq67mCWCjRVqgd6Yjfps 9PTwpIdGk/fFjKTLCsmSLfLGLphr4wwJUEsU7yvUSUEu2nSy3Jq54c4yn728Zw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033721; a=rsa-sha256; cv=none; b=ssEi3qkHxW3/xrxS/SZASvaa0tAWc4T/KzhafYV6uhF9kcqMy6vgtog7ASUrk4+ru3IwuC 5kOqHQcDY17bfiHQcRSdjvmQhpZHFKNSUAeHtuti0i4GuHyUw+X1Qhfhyu6YUAPhCwdFIB Sf1yx+P3LKEsJnysI/ZCovc9wzYmCpiCaSfv2emDZFqFUn9PM2Hr7zBIck1YzJJBkVmDi5 DhyqXtdiZkhRnorZ5sNRecDenToJ2bEJ2sxgBmL2T1eW09nnqXV+JazZp5MXD44TxaSgV2 wFJ/50Y7OQ5DbbjLP3ASvPN9oBS2NFOh5hBxKuApMMtWUnNXFOI82qD7yDGKpA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033721; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Tota2aTDl+pMDdZGdDjEXj6XIEKakYpB6Q1YoKLpImM=; b=HCDTGihqMCpGw1fWT81Ao1L8iGK5LPf0r8LOEcusAVrTd7XgVVgNAMUye0E8ujojRf8Wzk LRan6Z6D+g/vsB0QzT3yuOAhTJPsEN9+NRMlgsZImSDazNFJ6JFJ6J5iLLN/gFiNWlUrPf 8z2tXiUJZzfehv4Keovh/9ujtg6IQaFQylm/ENJ63ASFNv+H+O5FUWR5CPpYOT2nCpkYiX 3ngFSAL5ZLe0bhU9bQ4PryMVK4LBII8QP6w4CxNnypdVuM6HSVjMqQwJyPKUKPyQwUK7RY 5FB+qHT5JwxlY6+qlrgc1Vqs6cIYJqdqzELeVznTmgtQw8ahIsKx54T+clZT5w== 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 4ZnkWY5HlxzyL; Wed, 30 Apr 2025 17:22:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHM1Cw095633; Wed, 30 Apr 2025 17:22:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHM1Nx095630; Wed, 30 Apr 2025 17:22:01 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:22:01 GMT Message-Id: <202504301722.53UHM1Nx095630@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: e2b8fb2202c2 - stable/14 - mpi3mr: Allow driver to be in-kenrel and add to GENERIC List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: e2b8fb2202c224bb9b0e0f3333d5be5343267e89 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e2b8fb2202c224bb9b0e0f3333d5be5343267e89 commit e2b8fb2202c224bb9b0e0f3333d5be5343267e89 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:40:45 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:06:54 +0000 mpi3mr: Allow driver to be in-kenrel and add to GENERIC Registered the mpi3mr driver source files in sys/conf/files, enabling it to be compiled into the base kernel image. This matches the approach used for existing Broadcom drivers such as mrsas, mps, and mpr. Add mpi3mr to sys/conf/NOTES. With this change, the mpi3mr driver will be built as part of the base kernel, allowing automatic loading during boot when supported hardware is detected. Below changes are suggested by chs@: - Corrected the file name typo mistake in /sys/conf/files from mpi3mr_app.c.c to mpi3mr_app.c - Added mpi3mr driver entries in "sys/amd64/conf/GENERIC" and "sys/i386/conf/GENERIC" Reviewed by: ssaxena, chs, imp Differential Revision: https://reviews.freebsd.org/D49754 (cherry picked from commit 9cdd40759617b15fdd6939d33f67aa2c9d2a6b1e) --- sys/amd64/conf/GENERIC | 1 + sys/conf/NOTES | 1 + sys/conf/files | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 8ad3a3ccd425..c4177429c999 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -148,6 +148,7 @@ device isp # Qlogic family device mpt # LSI-Logic MPT-Fusion device mps # LSI-Logic MPT-Fusion 2 device mpr # LSI-Logic MPT-Fusion 3 +device mpi3mr # LSI-Logic MPT-Fusion 4 device sym # NCR/Symbios Logic device isci # Intel C600 SAS controller device ocs_fc # Emulex FC adapters diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 20465d9aaf32..695bcb5f3ef6 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -1588,6 +1588,7 @@ envvar hint.isp.0.topology="nport-only" envvar hint.isp.0.portwnn="w50000000aaaa0000" envvar hint.isp.0.nodewnn="w50000000aaaa0001" device ispfw +device mpi3mr # LSI-Logic MPT-Fusion 4 device mpr # LSI-Logic MPT-Fusion 3 device mps # LSI-Logic MPT-Fusion 2 device mpt # LSI-Logic MPT-Fusion diff --git a/sys/conf/files b/sys/conf/files index 34f57c32361a..c793c0814fde 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -2479,6 +2479,11 @@ dev/mrsas/mrsas.c optional mrsas dev/mrsas/mrsas_cam.c optional mrsas dev/mrsas/mrsas_ioctl.c optional mrsas dev/mrsas/mrsas_fp.c optional mrsas +dev/mpi3mr/mpi3mr.c optional mpi3mr +dev/mpi3mr/mpi3mr_pci.c optional mpi3mr +dev/mpi3mr/mpi3mr_app.c optional mpi3mr +dev/mpi3mr/mpi3mr_cam.c optional mpi3mr \ + compile-with "${LINUXKPI_C}" dev/msk/if_msk.c optional msk dev/mvs/mvs.c optional mvs dev/mvs/mvs_if.m optional mvs From nobody Wed Apr 30 17:22:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZnkWY03Vjz5tjKg; Wed, 30 Apr 2025 17:22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZnkWX4j7Qz3MmL; Wed, 30 Apr 2025 17:22:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E0NZeMcCsZovppH+Q1SZVwhzeYXbd7nL8HAXlHuVZpE=; b=FsY8AjNdhN6/vp/L68+v6u0StGQwjjh4G2y/1aA1NprAndc1eDS5DDiilWAtgFiYdaqnfg gAxMnIs6PURh0eRRaQpQUpUwoJZEr+RK4ls+EW1ZS3sIlrwuaxBM9vrvOH0+kPnvk9NUkB BW5P0hJevbMaPlHo6DEMNgacgdRy0QR8/R2XTFJ8me74h+1xOXpattj6z2J+0M4JaNhQ7w zSraEusRDvHqf7N1Nse+A50EsZW+Sq89ixoWn055RYgbSQAGG3tFS2T9dyokaGfjpLa/41 A/SnfHieHsuDthcnOeLX7H1ObpVbUXyT8H6xU8TUaYNQ1ilqzSV5TmC7mC3DfQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746033720; a=rsa-sha256; cv=none; b=K2iuysNALtDS/R8jGZ0igm0w/ySFtHO7AudInFFME3MiRwENg90AJ6t2cwYNj0hEXQFRGB As7GYAXFKJYltiZEvv4DSNrZMx9++v8kGxniyeiYP4h0xdlfmsOYAUbQW61/zLEFgPL/ph eknEuUoxcEUdbz79YEYadLozB6slX4HVarjxrrIBP9AN+hOznpjNFRi4cOF8UMG+dZU4Si cD8CFaCrQiJQV14wPTUuZDTAYrhfxh6peFtPPkZdJp80UgtkT3BJXYq9oc3eTpdfpGYvNI IbOlxSNIIS7j7zgaJPp+SltHuNgqINh6qNjE1sng/efXF6PWNoHLZAALdlCLwQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746033720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=E0NZeMcCsZovppH+Q1SZVwhzeYXbd7nL8HAXlHuVZpE=; b=lZBhHtZjO2OhnYjNRuRVCFkTmUVPBXiCi58m+eg+cT9aVIwOjoMxyzlCzSqtQQP5EhyNBQ SwyJqg4vgxlSrsJq+ScOe3/CaObg8a0YTO6yyA7tKNpsXpSmW6wQKu6+D59zBeDeWDiGWR Pmjb+U8pz18FPQWU/fU1GTyBUNoLyWtZD4i6OHAdloGEwFKnAFSoa0RMFiT8w9BDJByk+W sslAL9cPfOYteLMwYOS+kXiOTuSARMabc9kTAIASfsyL0+c6fq0EJMKDfiT8QHG/MsRPSq tmAFRe7/NgnLaKHjXqM9fbOQG1+wPcjZoC4vjz2fC2I3v93ZEceT/nhNuaZKYg== 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 4ZnkWX4K5jzkv; Wed, 30 Apr 2025 17:22:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53UHM0ed095599; Wed, 30 Apr 2025 17:22:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53UHM0Ej095596; Wed, 30 Apr 2025 17:22:00 GMT (envelope-from git) Date: Wed, 30 Apr 2025 17:22:00 GMT Message-Id: <202504301722.53UHM0Ej095596@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: b794f3126c82 - stable/14 - mpi3mr: modified the log messages to be on a single line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b794f3126c823850f4a13ffa73ea4885013f4fd4 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=b794f3126c823850f4a13ffa73ea4885013f4fd4 commit b794f3126c823850f4a13ffa73ea4885013f4fd4 Author: Chandrakanth patil AuthorDate: 2025-04-27 23:41:19 +0000 Commit: Warner Losh CommitDate: 2025-04-30 17:05:54 +0000 mpi3mr: modified the log messages to be on a single line qThis change was made after feedback from upstream, aiming to align with the style guide for consistent log formatting. No functional changes were made to the driver, only the formatting of the log messages. Reviewed by: ssaxena, imp Differential Revision: https://reviews.freebsd.org/D49799 (cherry picked from commit 4494ea5406f79a6cb2d3631a723eb286ca96a9b9) --- sys/dev/mpi3mr/mpi3mr.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr.c b/sys/dev/mpi3mr/mpi3mr.c index a8bd83c3bef4..77266dddae10 100644 --- a/sys/dev/mpi3mr/mpi3mr.c +++ b/sys/dev/mpi3mr/mpi3mr.c @@ -2802,8 +2802,7 @@ retry_init: MPI3_SYSIF_FAULT_CODE_MASK; if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) mpi3mr_dprint(sc, MPI3MR_INFO, - "controller faulted due to insufficient power. " - "try by connecting it in a different slot\n"); + "controller faulted due to insufficient power, try by connecting it in a different slot\n"); goto err; U32 host_diagnostic; @@ -3187,9 +3186,8 @@ static int mpi3mr_timestamp_sync(struct mpi3mr_softc *sc) if (((sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK) != MPI3_IOCSTATUS_SUCCESS) && (sc->init_cmds.ioc_status != MPI3_IOCSTATUS_SUPERVISOR_ONLY)) { - mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: Failed IOCStatus(0x%04x) " - " Loginfo(0x%08x) \n", (sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK), - sc->init_cmds.ioc_loginfo); + mpi3mr_dprint(sc, MPI3MR_ERROR, "Issue timestamp sync: Failed IOCStatus(0x%04x) Loginfo(0x%08x)\n", + (sc->init_cmds.ioc_status & MPI3_IOCSTATUS_STATUS_MASK), sc->init_cmds.ioc_loginfo); retval = -1; } @@ -3317,8 +3315,7 @@ mpi3mr_watchdog_thread(void *arg) if (fault == MPI3_SYSIF_FAULT_CODE_INSUFFICIENT_PCI_SLOT_POWER) { mpi3mr_dprint(sc, MPI3MR_INFO, - "controller faulted due to insufficient power, marking" - " controller as unrecoverable\n"); + "controller faulted due to insufficient power, marking controller as unrecoverable\n"); sc->unrecoverable = 1; break; } From nobody Thu May 1 06:38:26 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zp4BV3xFBz5thG6; Thu, 01 May 2025 06:38: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zp4BV36Ymz3shM; Thu, 01 May 2025 06:38:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746081506; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Em/P2dwfpnahH87GtbDKo5vWcULj+LRpK6wD8Ey+ClM=; b=H9IKwMKzY2MG090Fcr9I640N1Z5ajGJ30nZ6bk8dQdht7QOd6FEfOC0UAGa0AkMRF9xy// Qc8Fvl5As1PDHo2ryYJp+ZK7psQQH7V1k9kt5oEaJVgjV+Pr1UEhm/HepiWb3If/pBmbqA A/kHRarTd3Gscdc55RzYnv2pH4C3vxr2/4TjbaUIoGqkIpoKkV3HP5OaJjSQBbf2EgOJyp ueM4/jIDJLKchvwrT6TFBDAIhSsd7nRS+Dwce7+42M2qbpUeUIWXvF/dptxLoXrJYDi0wE ksi8B3izOnlvshYw06pM4l/pyI5djoOgzDf281O+XZl9D8e790Moz7oZ/FgjSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746081506; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Em/P2dwfpnahH87GtbDKo5vWcULj+LRpK6wD8Ey+ClM=; b=IAyaXvrZopzZmIHWawtK/PmhA2hf0crqho7WLhHTH1KBDfqmiL87Fm7NItU2BtDt0SW2OF PNr9xPAVY6StJUzL/hRVWL7fMWG5+JSeXysz/+I/A3K3B9LTmfYiYd/rX0IFQVPw/NiilM yXYXbCVsTUsJh/mqEnUuC/HWJh0DW7OZyUtRmi/tIh40FSHhttu8SUU54Svt63C2KdciOT zJci18r3yO10t9Kv1ObL/WjfHkJODuMPCV266hGr+9x89T6rDgHf03N/pCAE82z10JXFrr p89wDcTbB0CdUgY0t+rgXbZwnf2dxLPuM9Tz0VLFlOppM0mKjGoQz905N5uR5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746081506; a=rsa-sha256; cv=none; b=S7t8xUZ+7YEkPz6CI9V8MhOK4yHvE5EPdNcEeC2MNiAtMUCwDLbsOTgKS4HGjAJDpqBLk4 kZ9dcBCpE15TLRwKGq5A1vSXt6YHieRCux1u5ORAyjScfuD3yLzVAfab8NLqXAr+ipTBmh yFoznW64Mzan1Qua2FE6ZmiDOfDkJcHU4lrAl8FwJXzsW+9SVsNeYktZF1MhvPaUpirujW c3F7or6KfR4KgFieuBkwkWiMYqD0CE86qM0W08+LaLJWQQ3qdgS3wgKEg6lKS9wyFr7mlI m7Ukf8Lq4sAR62zcjbufX5iGv9Am8RezIRduHh4Vy7YSoImvQNEUNHN3bel8fw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zp4BV2P6cz2JN; Thu, 01 May 2025 06:38:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5416cQov075834; Thu, 1 May 2025 06:38:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5416cQtr075831; Thu, 1 May 2025 06:38:26 GMT (envelope-from git) Date: Thu, 1 May 2025 06:38:26 GMT Message-Id: <202505010638.5416cQtr075831@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Philip Paeps Subject: git: 4aed98a65ac9 - stable/14 - zoneinfo: also install tzdata.zi and version List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: philip X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4aed98a65ac91a65dc711fe1df5bdd1842d5c391 Auto-Submitted: auto-generated The branch stable/14 has been updated by philip: URL: https://cgit.FreeBSD.org/src/commit/?id=4aed98a65ac91a65dc711fe1df5bdd1842d5c391 commit 4aed98a65ac91a65dc711fe1df5bdd1842d5c391 Author: Philip Paeps AuthorDate: 2025-04-01 08:09:37 +0000 Commit: Philip Paeps CommitDate: 2025-05-01 00:51:12 +0000 zoneinfo: also install tzdata.zi and version Build and install the shrunk version of the time zone database required by libc++ 19 std::chrono::current_zone (etc). While here, also install the tzdata 'version' file to align more closely with other vendors. PR: 282377 Reviewed by: dim, emaste, imp Differential Revision: https://reviews.freebsd.org/D49577 (cherry picked from commit 91506dba7f2eb147eeb55ec30640bc11755a1e8e) --- share/zoneinfo/Makefile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/share/zoneinfo/Makefile b/share/zoneinfo/Makefile index d4b37ce991aa..54d715916b71 100644 --- a/share/zoneinfo/Makefile +++ b/share/zoneinfo/Makefile @@ -99,6 +99,20 @@ zonefiles: ${TDATA} (umask 022; cd ${.CURDIR}; \ ${ZIC:Uzic} -D -d ${TZBUILDDIR} ${ZICFLAGS} -m ${NOBINMODE} \ ${LEAPFILE} ${TZFILES}) + (umask 022; cd ${TZBUILDDIR}; \ + read -r version <${CONTRIBDIR}version && \ + LC_ALL=C awk \ + -v DATAFORM='main' \ + -v PACKRATDATA='' \ + -v PACKRATLIST='' \ + -f ${CONTRIBDIR}ziguard.awk ${TZFILES} >${TZBUILDDIR}/main.zi; \ + LC_ALL=C awk \ + -v dataform='main' \ + -v deps='zishrink.awk' \ + -v redo='posix_only' \ + -v version="$$version" \ + -f ${CONTRIBDIR}zishrink.awk \ + main.zi >tzdata.zi; rm main.zi) (cd ${TZBUILDDIR} && find * -type f | LC_ALL=C sort) > ${.TARGET} beforeinstall: install-zoneinfo @@ -114,6 +128,8 @@ install-zoneinfo: ${CONTRIBDIR}/zone.tab ${DESTDIR}/usr/share/zoneinfo/ ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ ${CONTRIBDIR}/zone1970.tab ${DESTDIR}/usr/share/zoneinfo/ + ${INSTALL} ${TAG_ARGS} -o ${BINOWN} -g ${BINGRP} -m ${NOBINMODE} \ + ${CONTRIBDIR}/version ${DESTDIR}/usr/share/zoneinfo/ afterinstall: # From nobody Thu May 1 06:49:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zp4RX0krFz5tj58; Thu, 01 May 2025 06:49: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zp4RX004qz41hf; Thu, 01 May 2025 06:49:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746082184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UUXY0QfMHXx3gvJ+73fpB95gBs1q0KmLdLJvBrCMMWs=; b=Lo1avG/GTfi8rtQk1AwNswKQ10rcYAZmaVizWtCkPEaPwR3s/yJ4yNMqL3agDWKGDLlwC3 jIioVd6S4ZzvrAwyksOqX8dXbwrDQMoom6nzZNrSPBhnYBmf9L7GM0Q81Ip6vWPVqfFnrw avM1ZcXeNjv73ZdLY3TYfL2HujNS7gqIXrlgV0GZklcf2qm5+yeE88UaKi3IWPnSgUFn8n tZmgln6xlktW/3iQCCPwvHUFl3pthHQrdwpuY0f/umpuN55X2nOhvUgXaQ+tObiZUhVEW5 aI8/9y/tWgQMQRh/y5IMx7/uc5Qzz5J2st8VYdbJpqGI4xrRzH5JlABdRZp6ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746082184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UUXY0QfMHXx3gvJ+73fpB95gBs1q0KmLdLJvBrCMMWs=; b=uFU/wSfInfWuaV+H9Q6JO/hzdTSnWOGt8xRsWIOgwOucGG3Y97i5hUF5+QGQ8Qe26FTVa+ IiiPIDjNPu80ECZzJ+j42ZUBgNm+a2ayK2PHt9qDtyBq8dCSJ8zL2SDMOkWSTDXBN0mcJK NnJpVN6hV1hHOFIy+XE7waQIBKQTQYCWqF+X5pt4wo3J1vp6I8h2NzqeH3uMTJZi84vXxS 8jjqUvaWm55FzqkmIIhAQo4PIwFFcUhXPxuprov6m7YssKxzlRdkJdellhr9C04pSw7T7A G4nhEIt6bkfQwjQ20gxX82gSKKtuzmfbZsBh5355pOq2XbFdovVk1TPCCynVDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746082184; a=rsa-sha256; cv=none; b=mGiwoYkXMOxNa4vtSbi53cZb6rUIYrxJGNL6C/PAzpOEbupKEvon2Y42SGUebAXiruuDH/ 8snHq7qpnMG1Q+7ytxFvnyopIDOGQ+YFwFD48+sgUQkgR+za7KL7cobdt1ih2iRJKPSprY 85s+KmGXCZ5oxwdXiiSKwIL7eW382HxbAhMVB4rnIvqpnSRVITAcvLXqGGTqIwYuOsCpQA m8EMpXtrCh8nZWAcLV6vgPgJR7XMcUj8lSUYD61wiDUxjeI0PyGGjO73FUi4EghOs2MKUd 8iYY+HRKu8B8se5btE1pKrdgla9bJkN/upoUKX/9mqdYyIHN78/LCIBHM/gOaw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zp4RW6f2rz1q0; Thu, 01 May 2025 06:49:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5416nhN5094912; Thu, 1 May 2025 06:49:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5416nhGU094908; Thu, 1 May 2025 06:49:43 GMT (envelope-from git) Date: Thu, 1 May 2025 06:49:43 GMT Message-Id: <202505010649.5416nhGU094908@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: 41813f983dfd - stable/14 - ath(4): 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 41813f983dfd98bd91ff205871273a98562b78a7 Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=41813f983dfd98bd91ff205871273a98562b78a7 commit 41813f983dfd98bd91ff205871273a98562b78a7 Author: Gordon Bergling AuthorDate: 2025-04-28 09:22:10 +0000 Commit: Gordon Bergling CommitDate: 2025-05-01 06:48:16 +0000 ath(4): Fix a typo in a source code comment - s/chang/change/ (cherry picked from commit 3ad86f460fa81ecc036fb5af25848f10b68b4019) --- sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c b/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c index 9352c6decd82..04b75dd09662 100644 --- a/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c +++ b/sys/dev/ath/ath_hal/ar5212/ar5212_rfgain.c @@ -324,7 +324,7 @@ ar5212GetRfgain(struct ath_hal *ah) ahp->ah_rfgainState = HAL_RFGAIN_NEED_CHANGE; /* for ap51 */ ahp->ah_cwCalRequire = AH_TRUE; - /* Request IQ recalibration for temperature chang */ + /* Request IQ recalibration for temperature change */ ahp->ah_bIQCalibration = IQ_CAL_INACTIVE; } } From nobody Thu May 1 12:18:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpCl12KKKz5v5TN; Thu, 01 May 2025 12:18:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpCl04sm9z3wZf; Thu, 01 May 2025 12:18:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746101916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CuDfDZP/1BMkFvILNEInaNXHPC4gGKbmaB77Jb8JsMY=; b=INU2nz5VerIAJ6Pnr0ZI8OJNlXoCvG4Nulz0I9ehGtFg0b5T5av1S/tNZ5SWlh1w3ISp5u lNNQ3dCS8fi6lisc5P/dPhs/bsPH0ugnYJN1kC9aMlFar92zdYVWTMgvuPzTHkkbQZAqtN S4tzqkCy1A4PUU4TX8otW5XUJnEq0xemfORrgvf041We6FNbhN4Zpi3Odk5zxyBhIq2IAH uU2SjPKQkFTH/OYkIS1nqT+hmq9gPkZUoBLf7NPAuGfPIePJztwdOrFaOHEUcTxLubpdGR OiXY7spPxH6b0udNaK4XsszHoLOJkiE9hUMLL9KUcLxeVqWAFE1XKdVNlF7h1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746101916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CuDfDZP/1BMkFvILNEInaNXHPC4gGKbmaB77Jb8JsMY=; b=qRCuvdSBKNibyBCnxZgv+wu4uCJWvfbMMEzHdOFtjduKiV0emzp/Q5JeybVsO28pBnAXxW A8Uq2waLPt5MdtR8XWjiGoVzdS6IaUSAPGBCHKblbed8IJkLulhh1YuR1L9sU/bNkFLUCC jbHv3ugyDCcrGsgMMrurN73/P5etsm1C2VdqGLc7u+grGoXtYDI08UV4g/pHIzHJrmdCof oUZDMxSbd/i9cMvJCX0Mrep0LNDfgtRz7scOsUabm1pPQmIyNFz/7LajxpSPKhllHqmQtu uk7DH0XBPUXNu6kQFo6O+TQEJnpf+wnSuT8oBaJwGmosNId/79Ul5IkimLyJug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746101916; a=rsa-sha256; cv=none; b=tsytkxdYQuwZgSOfhkQ+Tt40LBcu7P8IO1FyoizazXPiObJZKK86WWPchdTLfge5mZTUWY wweasVRRL2+8CAoOeLgOwMlriTf7Oino1y6OpnhJ8GbfeZqh5RlytNSyPMIFJS3DgSyFNM Hmjz2AQtOkOsYBhGm7nc4+n9gqAPEJHqPa1fw9qIdZhXObJMlrRZNVhSeJ7pLn9v4H8sgW 2VrRAJD0auhD32JFR8TpFv1jkEqNg/JRszml8744z3i1F7N7EiM0RoGz7V/OxaPWaUv+lb gjbhi1XLOojD+jFT0ry32efkpFZcI/A4T7pyeU4mAFWRJ2IC7//y42L9eLFv4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpCl043cyzC5C; Thu, 01 May 2025 12:18:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541CIawc010661; Thu, 1 May 2025 12:18:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541CIa5k010658; Thu, 1 May 2025 12:18:36 GMT (envelope-from git) Date: Thu, 1 May 2025 12:18:36 GMT Message-Id: <202505011218.541CIa5k010658@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 72f62f3367c0 - stable/14 - networking.7: Clarifications List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 72f62f3367c0103d5ade9d0c9f48f8e230e0ab20 Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=72f62f3367c0103d5ade9d0c9f48f8e230e0ab20 commit 72f62f3367c0103d5ade9d0c9f48f8e230e0ab20 Author: Alexander Ziaee AuthorDate: 2025-02-19 16:46:04 +0000 Commit: Alexander Ziaee CommitDate: 2025-05-01 12:18:16 +0000 networking.7: Clarifications + standardize my license formatting with style guides + remove loading now-automatically loaded last-gen tethering driver + show contemporary internal hardware drivers for examples + tweak example language to hopefully improve clarity MFC after: 3 days Reviewed by: adrian, mhorne, Quentin Thebault Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49762 (cherry picked from commit 70b66cf804345902bb5baadd27448c4bf5251552) --- share/man/man7/networking.7 | 48 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/share/man/man7/networking.7 b/share/man/man7/networking.7 index acd61f2864a7..2174577eb6a3 100644 --- a/share/man/man7/networking.7 +++ b/share/man/man7/networking.7 @@ -1,53 +1,51 @@ -.\"- -.\" SPDX-License-Identifier: BSD-2-Clause .\" .\" Copyright (c) 2024 Alexander Ziaee. Ohio. .\" -.Dd April 17, 2024 -.Dt "NETWORKING" 7 +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd March 21, 2025 +.Dt NETWORKING 7 .Os .Sh NAME .Nm networking , .Nm wifi .Nd quickstart guide to connecting to a network .Sh DESCRIPTION -In the following examples, it is assumed that we are connecting to Ethernet -with the first interface found by the -.Xr em 4 +In the following examples, it is assumed that +we are connecting to Ethernet with the first interface found by the +.Xr ix 4 driver, and Wi-Fi with the first interface found by the -.Xr iwn 4 +.Xr iwlwifi 4 driver, though your hardware will vary. .Sh EXAMPLES .Bl -tag -width 0n -.It Sy Connecting to an Ethernet network with DHCP: -.Bd -literal -offset 2n -.Ic # dhclient em0 -.Ed -.It Sy Connecting to a cellular network with USB tethering: +.It Sy Example 1: Connecting to an Ethernet network with DHCP .Pp -Load the USB tethering driver, -.Xr urndis 4 : +Ask for a DHCP lease on the first Intel 10Gb Ethernet interface: .Bd -literal -offset 2n -.Ic # kldload urndis +.Ic # dhclient ix0 .Ed +.It Sy Example 2: Connecting to a cellular network with USB tethering .Pp -Ask for a DHCP lease on the USB tethering interface: +Ask for a DHCP lease on the first USB tethering interface: .Bd -literal -offset 2n .Ic # dhclient ue0 .Ed -.It Sy Connecting to a Wi-Fi network: +.It Sy Example 3: Connecting to a Wi-Fi network .Pp Identify your Wi-Fi hardware: .Bd -literal -offset 2n .Ic % sysctl net.wlan.devices .Ed .Pp -Configure your Wi-Fi hardware as wlan0 interface: +Create the +.Sy wlan0 +interface with the first Intel Wi-Fi adapter: .Bd -literal -offset 2n -.Ic # sysrc wlans_iwn0="wlan0" +.Ic # sysrc wlans_iwlwifi0="wlan0" .Ed .Pp -Set that interface to negotiate a DHCP lease with +Set that interface to ask for a DHCP lease with .Xr wpa_supplicant 8 : .Bd -literal -offset 2n .Ic # sysrc ifconfig_wlan0="WPA SYNCDHCP" @@ -55,6 +53,7 @@ Set that interface to negotiate a DHCP lease with .Pp Enter the details of the Wi-Fi network: .Bd -literal -offset 2n +.Ic # cd /etc/ .Ic # wpa_passphrase \(dqmyssid\(dq \(dqmypassphrase\(dq >> wpa_supplicant.conf .Ed .Pp @@ -62,12 +61,11 @@ Restart the network interface daemon: .Bd -literal -offset 2n .Ic # service netif restart .Ed -.Pp -.It Sy Scanning for Wi-Fi networks: +.It Sy Example 4: Scanning for Wi-Fi networks .Bd -literal -offset 2n .Ic % ifconfig wlan0 scan .Ed -.It Sy Airplane mode: +.It Sy Example 5: Airplane mode .Bd -literal -offset 2n .Ic # service netif stop .Ed @@ -91,3 +89,5 @@ will need to be escaped for commonly using .Ql \e , see the manual page for your shell for more details. +.Pp +Stopping the network interface service also stops internal networking. From nobody Thu May 1 13:50:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpFnG4GYKz5vCdB; Thu, 01 May 2025 13:50: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpFnG3htsz3btx; Thu, 01 May 2025 13:50:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746107442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cJejuqKRawlAYMoL9CCLJZk/xZmIdyhTjJgwNJQbdq0=; b=hN8hb+H1zFqU8lSwxinB4w7oBhVbchVG+MvZPeJc956SSBvboQEp2b11vnZIBi40X4unQF UlEBpeXeWxZ2Jf2SS64f5VLXF36XqmzH8J5vNYk1rr4vRXrjAH7a9avq7/cqwBi6vkKeoS E95uQQ9TwdLNDX30dtJUzGUDWtvDmDTv+v5arPS1LsFbZVjEN1B8HZItk3Ni6QSClBjniY 8xYgrS8lqaeesCKf0no+StRljrC0mBRNI8eDjqt6fonU6K0SmUd3ssLqlt/6A+p4mwJA5S sPK7c3xS2liNg9mThcN/HxG5NhNfKviWdGReSMTUiKmQafXmwsbWbVTo3LzTKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746107442; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cJejuqKRawlAYMoL9CCLJZk/xZmIdyhTjJgwNJQbdq0=; b=GaPXVOWNbniCuVCtqqdeaNR/4vlfptSNimNGL2HoXYmrMfa42Q877+w61RzxPVEY1uTHEx HxXEzod+7054my5umrwke9uGz+GsjR5RKFROp/y3wfUo78GRJC9B5tbzst4KfRqvj2XiI9 JB29cs92mkbtwJvIUMjqLZgzdveatJN6dpCUINnN+Qz1EjQ1lozIkte9d2qJ3ido7m4xWo c8ZooNU4pkPCD28G3Ejh+DLAQcNmuUcw/CWDUxyb4X081y+HmoFi+uUFwNS7DhsrVYUZ9l Ot4SoqdjyP46j7bpwmdK6J3YgZmyeW4FlRbjsnENdoOClSCc8rMFmMgl+WEMJQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746107442; a=rsa-sha256; cv=none; b=q/TKSUIwbqYgwxMzDeDhrCTW50rcUqZcRfiiep9pT9qWMxCOszTbsI/+D5UQ5lGtYEs9s5 hrKvel+EnvD70P6+3+e7YeXoOxooxnaqrlFErkOAR6VklazpHnI97GN1EtWN9d02usq/mr frLnjaAphZ/HDaBrmVMmdAyoNloh6fkLcnqHBVjD+qYemuDx1pgTTd/DHSguPKbEplqwW9 rHKyWWP0vNcWl9J6IHNqSmUjU0LhO6Twm4Mq3Pk8n0yGN+M5QhsLyYOXFv4PtakowUoEu9 DDOwFsLRcvfhEw4IPdOwCL+e1WUj7q3RurRF+3A3hu4GXKK8VQbugOTxkI7juw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpFnG38hSzVBp; Thu, 01 May 2025 13:50:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541DogX1087305; Thu, 1 May 2025 13:50:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Dog1Q087302; Thu, 1 May 2025 13:50:42 GMT (envelope-from git) Date: Thu, 1 May 2025 13:50:42 GMT Message-Id: <202505011350.541Dog1Q087302@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: fb85ce09f6ce - stable/14 - ascii(7): Correct the history 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: fb85ce09f6ce979c2cd7228737015eba12cfa1e7 Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=fb85ce09f6ce979c2cd7228737015eba12cfa1e7 commit fb85ce09f6ce979c2cd7228737015eba12cfa1e7 Author: Gordon Bergling AuthorDate: 2025-01-04 08:25:39 +0000 Commit: Gordon Bergling CommitDate: 2025-05-01 13:48:48 +0000 ascii(7): Correct the history section The man page ascii(7) first appears in the first edition manual. Reviewed by: imp, Alexander Ziaee Obtained from: OpenBSD Differential Revision: https://reviews.freebsd.org/D48224 (cherry picked from commit 6145586a6c74e99969d74384066ecaf6580a8015) --- share/man/man7/ascii.7 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/share/man/man7/ascii.7 b/share/man/man7/ascii.7 index d390fd420133..11f4f63ccb47 100644 --- a/share/man/man7/ascii.7 +++ b/share/man/man7/ascii.7 @@ -25,9 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" @(#)ascii.7 8.1 (Berkeley) 6/5/93 -.\" -.Dd November 12, 2022 +.Dd January 4, 2025 .Dt ASCII 7 .Os .Sh NAME @@ -194,4 +192,4 @@ ESC ESCape An .Nm manual page appeared in -.At v2 . +.At v1 . From nobody Thu May 1 16:35:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpKQt5NQkz5vQ2N; Thu, 01 May 2025 16:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpKQt2yK4z47Qx; Thu, 01 May 2025 16:35:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746117302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GczIX9zz1V14rUybRKRhEQq302HZkr3jXk3vK0QiJ4g=; b=SVabefehEKhWYsFISwBX4j9T1QV9t+TOokIpL8kjq8gp0oh2+pONQpxQilAk2h4d/bZhI+ eLIiW5dDTm9rjgM+yJtAo6tJZ24sJeYNgTkp9qodQ76bQ5tf+ZmVMqc4eETfdNjfMn/kw5 /MVCkrmY3hQfuzqTZXrwzmUWY2trCwnTJnIelnSjdhiNVfqnh4uEdJRZF588F+yZCx2RkF uKKBaVmT/z/XZ/hPZTUtONuqopfqn8FTrLFg7av96w+vmaRZYCKDMyanjqyAhjaJVaD+fY eRdK69l7LqmtVPvWdPp5YlXTO7VaKUK3O83Y19I14R4W34FUXsOuBJU9fKm94g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746117302; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GczIX9zz1V14rUybRKRhEQq302HZkr3jXk3vK0QiJ4g=; b=CqgV2H1qcUa9VvWA1OetkJuwb0CgQW8evY/WgR49+F94upS4CyP0wRcskSs+VVAE9DyVuK anRXmJmGL1cUVdkusD2GssdMy0OSiLLqlekyenm8YTymMqzmFNRqJWmadUvx94EMO/3Iko GTlgAivcTUN8VacVFm7n27L+cAADZPQgTelvYCNRA+15LpHmwstNrNK8ESH9Komualy/R+ PQ5qwpua7GiQ8/Dpm+6zfHRGoXBRV+ERmwhSQXZb+oJ+bnkPU74GvrCGjuCgAVr7ow/WUQ flwuXozM5HY5Wvi7UQ5Q+jY9w34JiwTI18fv81shB2q8HjbQcPe6M8zhfgZuaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746117302; a=rsa-sha256; cv=none; b=p3G9kQNpd7zm62efjDt9lKgUAy3s2YL7PlCG2SkSBCW+il1KKQoTHKH7I7KRvCIdjt+uvK IJZ+LMZ3DO1pd0AgsLaSJVMdZBUExSFzzvJ0kCWRqhgY2ZIvWZQqc/khKD8RRsy0hgvVBL +viMTMH/OsG2VWdGq8F8dhAUg2Pcg8+sobOlbeHEhl6HCsFrijWrffamIMtxtYVtx+9OFS cgavXwkZ3bXsJhZfiYaV8vRMjVZs6mQtvFdeBnzUENeDD/c5PpCxKOiLausI4HsR9qLmH7 F6y2vs/x5rmvbKLXjkXvaKoaq9jQ1OKYt67y2xfX0Xf5G0OoG5WoPleM31H04A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpKQt2W5LzcNv; Thu, 01 May 2025 16:35:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541GZ25c096129; Thu, 1 May 2025 16:35:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541GZ2IN096126; Thu, 1 May 2025 16:35:02 GMT (envelope-from git) Date: Thu, 1 May 2025 16:35:02 GMT Message-Id: <202505011635.541GZ2IN096126@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Sergey A. Osokin" Subject: git: 49551440803d - stable/14 - bsd-family-tree: add FreeBSD 13.5 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 49551440803d4265ef2a3513992fd78f215c6972 Auto-Submitted: auto-generated The branch stable/14 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=49551440803d4265ef2a3513992fd78f215c6972 commit 49551440803d4265ef2a3513992fd78f215c6972 Author: Maxim Konovalov AuthorDate: 2025-03-15 16:52:05 +0000 Commit: Sergey A. Osokin CommitDate: 2025-05-01 16:34:01 +0000 bsd-family-tree: add FreeBSD 13.5 (cherry picked from commit 2bc9d7a3ac8dce2138e409b31a7f727303b38167) --- share/misc/bsd-family-tree | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index 7cd4b6fe0d3d..d727b981bda1 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -469,10 +469,12 @@ FreeBSD 5.2 | | | | | | | 15 | | | | | | FreeBSD | | | | | | | 13.4 | | | OpenBSD 7.6 | - | FreeBSD | | | | | - | 14.2 | | | | | - | | | NetBSD | | - | | | 10.1 | | + | FreeBSD | | | | | | + | 14.2 | | | | | | + | | | | NetBSD | | + | | | | 10.1 | | + | FreeBSD | | | | + | 13.5 | | | | | | | | | FreeBSD 15 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -914,6 +916,7 @@ FreeBSD 13.4 2024-09-17 [FBD] OpenBSD 7.6 2024-10-08 [OBD] FreeBSD 14.2 2024-12-03 [FBD] NetBSD 10.1 2024-12-16 [NBD] +FreeBSD 13.5 2025-03-11 [FBD] Bibliography ------------------------ From nobody Thu May 1 16:35:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpKQv5S8Lz5vPkP; Thu, 01 May 2025 16:35: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpKQv3sppz47Ks; Thu, 01 May 2025 16:35:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746117303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3LocJGglkHdaG+EdY9uAG9SnNT8/seA9gUWveGeFhcY=; b=Bs8lRbR5AqsRpzQLo72MegrPgJBP5dF2hw3NPzPi+nA+OaV7KIa4cVgYYtzjqhhMpkUuAB isLB99OQH+EYHe6JMLPXeXGSd1ei8GnMER4amMGTt7cSzbp3Rr2X1JVzrDrT4j5JoVioC0 kNKM0vIFJVo8y4Av9iAafaRlCoM4hXtiG7kM64N7JMXzVa3V0vjmRUeRKNJVuCIHx+12Jw ybiC7/6ma5hgBtoZHOZtfaHhXDWDAvBKzjtAb4bfHdxs04cP26otDN1gD+772p/DL1flwc FG4HRS0x1tkz6ewQyoc8kt81+b6xXi9n/JRz7q8rwS2WCYCTWv8Sl/O50gmamQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746117303; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3LocJGglkHdaG+EdY9uAG9SnNT8/seA9gUWveGeFhcY=; b=GSWBlPM9c9qtvblOmaqlAUWebTi6m1jhV5goVgk60shh6u109e8kagWrEvrQ6Brfq1zyiB lcjp1WMDoN9rL13TCb6aqncgjmjXSVBna0W6JtPDoP8UTFasZhQWN0Z0Ryot3vGTO/wgoI Z/RV3Efyhg2SMj1oDT44THhXk256024F5vthH3JndrY7fOYGIdyEe+FPCRfoWSrTRn/suY GRICg7vBHDTo/fUFHAGhn783Uw2nzsMNYjKHa/mLVAthMEiI8sJ76fcdZul6jfh+C2zHd+ N8bh8kcTDw+2SMzHqnt+FG0X61UzVJfZKGzZ4OdKdrU9BGLN/jGyJpUPc0gJ/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746117303; a=rsa-sha256; cv=none; b=ZDGDmQB+u3oz4I/Sn07tIN1s2Q5ssHLStK8l1agZdUAyQTr5XVjxIq4JpNbBxyljPay1Vu KKRrTIzh9vW9IYjjTNsMLnviOHkBxvin6uI6X1d9vn16filvHJNOpQzDbbuyGyoMh/CJV/ IyrWL5L41dNdIQPSc5i58zs7cYGI27VxcTmJjn1Kg37hRYuJ5uK5P3dE/+bUwRQyFXQNfq VmBDD4GFK+nIJzsQ0J4MJNAS9yT5HSc8MS1+YrMNpdyZ6w7PgY9Ny/ggiHiiOz6RF6e6Eo DYSvAZdCqv8el9T4OgAClamOYZsX7x94qEOv0WALGAcjwj0R8iH4DkFSZI1HVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpKQv3T8Lzc7X; Thu, 01 May 2025 16:35:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541GZ3gV096171; Thu, 1 May 2025 16:35:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541GZ3t2096166; Thu, 1 May 2025 16:35:03 GMT (envelope-from git) Date: Thu, 1 May 2025 16:35:03 GMT Message-Id: <202505011635.541GZ3t2096166@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Sergey A. Osokin" Subject: git: ce9eaeeb9280 - stable/14 - bsd-family-tree: add OpenBSD 7.7 release List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: osa X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ce9eaeeb9280193a7c5a14e34432404f722d7ef6 Auto-Submitted: auto-generated The branch stable/14 has been updated by osa: URL: https://cgit.FreeBSD.org/src/commit/?id=ce9eaeeb9280193a7c5a14e34432404f722d7ef6 commit ce9eaeeb9280193a7c5a14e34432404f722d7ef6 Author: Maxim Konovalov AuthorDate: 2025-04-27 21:56:31 +0000 Commit: Sergey A. Osokin CommitDate: 2025-05-01 16:34:30 +0000 bsd-family-tree: add OpenBSD 7.7 release (cherry picked from commit b08bc953f1b704573838ddf34348df67d0c7fcea) --- share/misc/bsd-family-tree | 2 ++ 1 file changed, 2 insertions(+) diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree index d727b981bda1..65ed070c4f96 100644 --- a/share/misc/bsd-family-tree +++ b/share/misc/bsd-family-tree @@ -475,6 +475,7 @@ FreeBSD 5.2 | | | | | | | | 10.1 | | | FreeBSD | | | | | 13.5 | | | | + | | | OpenBSD 7.7 | | | | | | FreeBSD 15 -current | NetBSD -current OpenBSD -current DragonFly -current | | | | | @@ -917,6 +918,7 @@ OpenBSD 7.6 2024-10-08 [OBD] FreeBSD 14.2 2024-12-03 [FBD] NetBSD 10.1 2024-12-16 [NBD] FreeBSD 13.5 2025-03-11 [FBD] +OpenBSD 7.7 2025-04-28 [OBD] Bibliography ------------------------ From nobody Thu May 1 17:56:08 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpMDT2Vmwz5vVpH; Thu, 01 May 2025 17:56:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMDT17Z2z4475; Thu, 01 May 2025 17:56:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122169; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xFg3bIx2XCtl9gfVJzH9zp1GANblStzqxanLyhREaY4=; b=Nbvq9wPEWJxOwS0wfSX19MMGcqZMffidjDndeMhxoNnQTBuAjeeXt0/kibwAsOw8WSICMC vbfcycgp8ytXDfTt4xGeJsRhryZRzbm5FmXWpu5zUZ2Ls3HaruvfA7jcyFKy82ix9AIEYp qdA7fAD0+bRqN4BBk4Z7vkoJaGrsg1V3OVlFeKQQb6gK37l4TD9r946Jpghu9TLwP3kali VOybpaKshoiuvz1ei8H6L2kCH5YkTPNvPDIUZtZ4pJN+pcS815j+COe78YOrbDeiS0Us2w 7iONX2GPadQ4BtvsIRefNPU5NGlyAIwgSufRtMWQ/MeeIzaFMkX0O5wXK5nwHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122169; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xFg3bIx2XCtl9gfVJzH9zp1GANblStzqxanLyhREaY4=; b=hnDAtOO9VND8Pg2kRcpo66nSO+Tgm1xpGaT6c5CFBnhhANQj+H/uDrcdr64bfcIvJ9hUZK zHxyOfaU8VnkLvn6HRftdl97/9RH4XEDUaDJ+Cz7dWjvJSs9EJEsgSqaXflB7mY0w225TZ MkWEikphp0Sy17WDBIhif1EnAWv5QBytw7AJ+OqU0qOvKsTCT6eqBZa47jfP5TUDUmwmkV 6RZcLdPAMai2jq41ncFlilV9TOCRVU5N7zzS95WSsPkKjLKA3HhJvVkHQrGuUU1SQZhbJ3 mx8p99BY63P/EopDzDhMNKO/FmO/mcU13dV4NgvDh/QWz0bUR6RXmbn3x0azHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122169; a=rsa-sha256; cv=none; b=MWEbgavFS5JPGlg7DEddYancE5CIfAR+5H6BQ6NfvovIJPoLV6IXdj/EAgIHdPbPGAly14 /giB8pxs73Xz8zQNIXScaEqBXMIOV8eMIhBro6nrvXm2YHtesY6w7adKhcqXJaShU8AHHg 2yr82eckCij7YLBGWCCPZJfmXrdMp/vALk0/Q3PThY2MjD0CZqlL7s1qtL8awuraKe1NWJ SIRZPcvDCiZ2LDkVfwngMsTKsz9n4R3DpP7plKxRu2aLw9Hl9v9iVf9isTYAkzxktx5dTn rnncvrwpfNF/7IjBDYlCGNhiiFI96I928PYAhGVg+jkZbc/OxPBNHxKZnPbG9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpMDT0kkMzdq4; Thu, 01 May 2025 17:56:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541Hu9vI046087; Thu, 1 May 2025 17:56:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Hu8fS046084; Thu, 1 May 2025 17:56:08 GMT (envelope-from git) Date: Thu, 1 May 2025 17:56:08 GMT Message-Id: <202505011756.541Hu8fS046084@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Arthur Kiyanovski Subject: git: 3f4a674a8ee4 - stable/14 - ena: Fix misconfiguration when requesting regular LLQ List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3f4a674a8ee430dec7c72c45ffe759eabefa7a1f Auto-Submitted: auto-generated The branch stable/14 has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=3f4a674a8ee430dec7c72c45ffe759eabefa7a1f commit 3f4a674a8ee430dec7c72c45ffe759eabefa7a1f Author: David Arinzon AuthorDate: 2025-04-22 10:54:18 +0000 Commit: Arthur Kiyanovski CommitDate: 2025-05-01 17:51:52 +0000 ena: Fix misconfiguration when requesting regular LLQ Patch 0a33c047a443 introduced new values to hw.ena.force_large_llq_header. The default value of 2 means no preference, while 0 and 1 act as the previous false and true respectively, which allowed forcefully setting regular or large LLQ. There are 2 ways to force the driver to select regular LLQ: 1. Setting hw.ena.force_large_llq_header = 0 via sysctl. 2. Turning on ena express, which makes the recommendation by the FW to be regular LLQ. When the device supports large LLQ but the driver is forced to regular LLQ, llq_config->llq_ring_entry_size_value is never initialized and since it is a variable allocated on the stack, it stays garbage. Since this variable is involved in calculating max_entries_in_tx_burst, it could cause the maximum burst size to be zero. This causes the driver to ignore the real maximum burst size of the device, leading to driver resets in devices that have a maximum burst size (Nitro v4 and on. see [1] for more information). In case the garbage value is 0, the calculation of max_entries_in_tx_burst divides by 0 and causes kernel panic. The patch modifies the logic to take into account all use-cases and ensure that the relevant fields are properly initialized. [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html Fixes: 0a33c047a443 ("ena: Support LLQ entry size recommendation from device") Approved by: cperciva (mentor) Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D50040 (cherry picked from commit 56c45700f2ae15755358f2da8266247613c564df) --- sys/dev/ena/ena.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c index f0b6cec1bb61..af158b5aea1d 100644 --- a/sys/dev/ena/ena.c +++ b/sys/dev/ena/ena.c @@ -2759,22 +2759,41 @@ static inline void ena_set_llq_configurations(struct ena_llq_configurations *llq_config, struct ena_admin_feature_llq_desc *llq, struct ena_adapter *adapter) { + bool use_large_llq; + llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER; llq_config->llq_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY; llq_config->llq_num_decs_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2; - if ((llq->entry_size_ctrl_supported & ENA_ADMIN_LIST_ENTRY_SIZE_256B) != 0) { - if ((ena_force_large_llq_header == ENA_LLQ_HEADER_SIZE_POLICY_LARGE) || - (ena_force_large_llq_header == ENA_LLQ_HEADER_SIZE_POLICY_DEFAULT && - llq->entry_size_recommended == ENA_ADMIN_LIST_ENTRY_SIZE_256B)) { - llq_config->llq_ring_entry_size = - ENA_ADMIN_LIST_ENTRY_SIZE_256B; - llq_config->llq_ring_entry_size_value = 256; - adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_256B; - } + + switch (ena_force_large_llq_header) + { + case ENA_LLQ_HEADER_SIZE_POLICY_REGULAR: + use_large_llq = false; + break; + case ENA_LLQ_HEADER_SIZE_POLICY_LARGE: + use_large_llq = true; + break; + case ENA_LLQ_HEADER_SIZE_POLICY_DEFAULT: + use_large_llq = + (llq->entry_size_recommended == ENA_ADMIN_LIST_ENTRY_SIZE_256B); + break; + default: + use_large_llq = false; + ena_log(adapter->pdev, WARN, + "force_large_llq_header should have values [0-2]\n"); + break; + } + + if (!(llq->entry_size_ctrl_supported & ENA_ADMIN_LIST_ENTRY_SIZE_256B)) + use_large_llq = false; + + if (use_large_llq) { + llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_256B; + llq_config->llq_ring_entry_size_value = 256; + adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_256B; } else { - llq_config->llq_ring_entry_size = - ENA_ADMIN_LIST_ENTRY_SIZE_128B; + llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B; llq_config->llq_ring_entry_size_value = 128; adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_128B; } From nobody Thu May 1 17:56:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpMDV3pl7z5vVrp; Thu, 01 May 2025 17:56:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMDV2CSVz4476; Thu, 01 May 2025 17:56:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FiCnVbO4EsHVHG29t+OFaROhj/kA3sHFBrlMim7/x5E=; b=GN0aVvH1LAQDF2KzawMJ6qnIfFhTrI6e2LwA43jLOgiUgiyRQ4rx7rZecA3fkDbcarHryH sC3A6errpBsVijhimtMzmfgTPPYX1kidOmQYX5FyRze9sd8MSN80hqwlboMEFfCmTJ0+Ra bsgyZ9kP622/VMOQXnghzNtcQ5SO8JhOUrX5bvhiTESkGYvkmpw8B8zpm9+KCWhBNyzqPv 14CxLwe3wI5Z3pftWwyJLb/dHiT2Ct8cTuXSTI1RKdulUIrwD/5e7gCcrkvoM5tkbLGbPX QdVQkCZjeU/B3NzqWGIUfDQR7oRiMGnW/Lt5uYSFzWW+Sbc21rDm2j5AhgvQiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746122170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FiCnVbO4EsHVHG29t+OFaROhj/kA3sHFBrlMim7/x5E=; b=eaJk9WZEhdFbF+SV3yHdNvfWRFjacn3fs7eN3JghlPVEs1lOgG65NqG9wQv7/EKz7guDcv ggSJdYCnMTnOdyEh+jmgppj3hhIyWaqYkEbGeq3GVmh+utKuBAshRooL0SHkkrP39rwmhi eltkEu1I5SrVdtR1qSGm8VcMXARyncvh07Zoili/SsJ4uVV0bsILkBEdI2KRem0PqFIXww NfaFZiVMfaKVn+TEOaPLFoHuQyMF0YRz8QIBr3X4LQkzRGcyUzYwq5LuNjyn7+FAcU1yqs z60vQHUgZyGavngUqnVzTwgrf6fRl1CCjj7oNbqJXGjj43O7MwrDNnCPpmCHkg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746122170; a=rsa-sha256; cv=none; b=LCDGOEwcK8dSQXMzlXcTmPE/Y35gRwaB+3X3zH14B0epAR2i6a78amxy/XqguU1+nVw25D AXWYCKq5VeV7qs+3fqfm5ADNsr8ivVcQWflrUlRTQP78iNZyNHj2WxM0QlVBj3VOfbji18 00NYId1W55v94R3bCQEyWq2BqWUjAWzhcPa2sysWRFjdFx+uce6+4m6JHWqNw5o69YNLpT hhxQSs6ML97qJPBa8h4KRmhbLokGjySeUKID5Kujqqc9dO0dXHrU/P/2uWcSLyauIOPTyH ggALmJN4Y+tPSnmrpJhmWCu3157TarYlf0vzIcW0GOGUWA+WWI0ojkDDrApjcA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpMDV1jCQzfTN; Thu, 01 May 2025 17:56:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541HuA8p046119; Thu, 1 May 2025 17:56:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541HuAmL046117; Thu, 1 May 2025 17:56:10 GMT (envelope-from git) Date: Thu, 1 May 2025 17:56:10 GMT Message-Id: <202505011756.541HuAmL046117@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Arthur Kiyanovski Subject: git: a1685d25601e - stable/14 - ena: Bump driver version to v2.8.1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a1685d25601ee7abfaf6d6a993932ae3318e070e Auto-Submitted: auto-generated The branch stable/14 has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=a1685d25601ee7abfaf6d6a993932ae3318e070e commit a1685d25601ee7abfaf6d6a993932ae3318e070e Author: Arthur Kiyanovski AuthorDate: 2025-04-25 17:19:32 +0000 Commit: Arthur Kiyanovski CommitDate: 2025-05-01 17:51:52 +0000 ena: Bump driver version to v2.8.1 Changes since 2.8.0: Bug Fixes: * Fix LLQ normal width misconfiguration * Check for errors when detaching children first, not last Minor Changes: * Remove \n from sysctl description Approved by: cperciva (mentor) Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D50041 (cherry picked from commit 59b30c1a864ee8a22c2e9912301cb88674f714c9) --- sys/dev/ena/ena.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ena/ena.h b/sys/dev/ena/ena.h index 06bdfad97ed4..3b01605b4ba7 100644 --- a/sys/dev/ena/ena.h +++ b/sys/dev/ena/ena.h @@ -39,7 +39,7 @@ #define ENA_DRV_MODULE_VER_MAJOR 2 #define ENA_DRV_MODULE_VER_MINOR 8 -#define ENA_DRV_MODULE_VER_SUBMINOR 0 +#define ENA_DRV_MODULE_VER_SUBMINOR 1 #define ENA_DRV_MODULE_NAME "ena" From nobody Thu May 1 18:15:15 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpMfX1LtFz5vX2s; Thu, 01 May 2025 18:15: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMfW6hWhz4NY0; Thu, 01 May 2025 18:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746123315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VKtdggBlm2yISymaMvgtjlF2T05IlXKESsZOAn4rg3w=; b=FCDm0NQmJSNyC8Mo1jbOxGFgoRX+JvEe0hliOnv4VWDM0Qqx3XSkDtjXZWQH6puTZiBVQq bCJnjstrTkUzcQyMh6TmliFBCCKr0TIr82hdH8b97Fpy54nKgbP2iFJj9FLMYnHtED7azn qqV0itAUHAh2PLsxC962zx7CzpTwnLuR5ogFNyYxeBIR6rS5cD+MmX2PhCkB/kWgeLTYLd CKpH0UcINNDs349XTBfb6XbuiYpVKJfBg6lhojHyRLKAjBjU46GZorqcCZGahb4xbazzif TBQ2zohs9nuNYQdJHyxBkOloiXGo++vIwp08XvOubXug6juBQCCGOFUGCXaYVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746123315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VKtdggBlm2yISymaMvgtjlF2T05IlXKESsZOAn4rg3w=; b=geTBkbD39cMzW8/wqIPr7+WXqFSdW5h7uf/75tj5vhej4kUx6H+McVqoHldVK8zTYI7Uxe /6fgR1dxM31frxgn6jmbvNL3pvDQ6rB7EUTey1XldHav3kMIcS95s/MhFqJKXnOJSNcVEb GW9CEBEWkC9Pc0P6kMS2kpG05buqJA/Qi0rp/GaHVFJl9gm+9PQP8ATOTl9EvPbzBNbHsO V5wL1Qo9/8U6D9mEWIBvfTeS76UEeaVncwpKKFgGawhw/Gfgw8yVLFePScFhOJkMLHbqEz Ojh8SHYg8xgewZDpE46y19T7DdSjAp6cAb52REfIScA6Y5UROQzcYA61hXrEoA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746123315; a=rsa-sha256; cv=none; b=ZuzRnDAgZDTpYbZUaE++1HD29C6cUden7IK9gKEUmIWJNHXHfyufmHzF61AqbuVS7JyBC0 X/twrr6EBI7QgNiQclOfVaz+p4439ucsm1CL+f/b0l6kinQZE0/LyOUoCekuDUard+L0Mt qDMN3DorIv1MfLvWnkoAE1zvcgjPm2sa6MQ1KH/+nNFWvSV5Sk5tXDmjBRM8EBVGbLNi+v QJIIQG9gDja166YkndR3iktv4b1buDru516Eaxi9JqTFelQGc2THX+acqhlg8RqDz0faPI 4nzNWygthGGaRxs8Izff0aU7+1asuyepzVs6pJr77D1zqjeX0nMFUE8cgGnXNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpMfW6HYxzfjL; Thu, 01 May 2025 18:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541IFFnf084883; Thu, 1 May 2025 18:15:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541IFFpH084880; Thu, 1 May 2025 18:15:15 GMT (envelope-from git) Date: Thu, 1 May 2025 18:15:15 GMT Message-Id: <202505011815.541IFFpH084880@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Arthur Kiyanovski Subject: git: 162b5bbb4048 - stable/13 - ena: Fix misconfiguration when requesting regular LLQ List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 162b5bbb4048d0ba99d759616c127ba04c9289c3 Auto-Submitted: auto-generated The branch stable/13 has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=162b5bbb4048d0ba99d759616c127ba04c9289c3 commit 162b5bbb4048d0ba99d759616c127ba04c9289c3 Author: David Arinzon AuthorDate: 2025-04-22 10:54:18 +0000 Commit: Arthur Kiyanovski CommitDate: 2025-05-01 18:14:30 +0000 ena: Fix misconfiguration when requesting regular LLQ Patch 0a33c047a443 introduced new values to hw.ena.force_large_llq_header. The default value of 2 means no preference, while 0 and 1 act as the previous false and true respectively, which allowed forcefully setting regular or large LLQ. There are 2 ways to force the driver to select regular LLQ: 1. Setting hw.ena.force_large_llq_header = 0 via sysctl. 2. Turning on ena express, which makes the recommendation by the FW to be regular LLQ. When the device supports large LLQ but the driver is forced to regular LLQ, llq_config->llq_ring_entry_size_value is never initialized and since it is a variable allocated on the stack, it stays garbage. Since this variable is involved in calculating max_entries_in_tx_burst, it could cause the maximum burst size to be zero. This causes the driver to ignore the real maximum burst size of the device, leading to driver resets in devices that have a maximum burst size (Nitro v4 and on. see [1] for more information). In case the garbage value is 0, the calculation of max_entries_in_tx_burst divides by 0 and causes kernel panic. The patch modifies the logic to take into account all use-cases and ensure that the relevant fields are properly initialized. [1]: https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html Fixes: 0a33c047a443 ("ena: Support LLQ entry size recommendation from device") Approved by: cperciva (mentor) Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D50040 (cherry picked from commit 56c45700f2ae15755358f2da8266247613c564df) --- sys/dev/ena/ena.c | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c index a0d3cf28861e..f9342ad91ae2 100644 --- a/sys/dev/ena/ena.c +++ b/sys/dev/ena/ena.c @@ -2760,22 +2760,41 @@ static inline void ena_set_llq_configurations(struct ena_llq_configurations *llq_config, struct ena_admin_feature_llq_desc *llq, struct ena_adapter *adapter) { + bool use_large_llq; + llq_config->llq_header_location = ENA_ADMIN_INLINE_HEADER; llq_config->llq_stride_ctrl = ENA_ADMIN_MULTIPLE_DESCS_PER_ENTRY; llq_config->llq_num_decs_before_header = ENA_ADMIN_LLQ_NUM_DESCS_BEFORE_HEADER_2; - if ((llq->entry_size_ctrl_supported & ENA_ADMIN_LIST_ENTRY_SIZE_256B) != 0) { - if ((ena_force_large_llq_header == ENA_LLQ_HEADER_SIZE_POLICY_LARGE) || - (ena_force_large_llq_header == ENA_LLQ_HEADER_SIZE_POLICY_DEFAULT && - llq->entry_size_recommended == ENA_ADMIN_LIST_ENTRY_SIZE_256B)) { - llq_config->llq_ring_entry_size = - ENA_ADMIN_LIST_ENTRY_SIZE_256B; - llq_config->llq_ring_entry_size_value = 256; - adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_256B; - } + + switch (ena_force_large_llq_header) + { + case ENA_LLQ_HEADER_SIZE_POLICY_REGULAR: + use_large_llq = false; + break; + case ENA_LLQ_HEADER_SIZE_POLICY_LARGE: + use_large_llq = true; + break; + case ENA_LLQ_HEADER_SIZE_POLICY_DEFAULT: + use_large_llq = + (llq->entry_size_recommended == ENA_ADMIN_LIST_ENTRY_SIZE_256B); + break; + default: + use_large_llq = false; + ena_log(adapter->pdev, WARN, + "force_large_llq_header should have values [0-2]\n"); + break; + } + + if (!(llq->entry_size_ctrl_supported & ENA_ADMIN_LIST_ENTRY_SIZE_256B)) + use_large_llq = false; + + if (use_large_llq) { + llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_256B; + llq_config->llq_ring_entry_size_value = 256; + adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_256B; } else { - llq_config->llq_ring_entry_size = - ENA_ADMIN_LIST_ENTRY_SIZE_128B; + llq_config->llq_ring_entry_size = ENA_ADMIN_LIST_ENTRY_SIZE_128B; llq_config->llq_ring_entry_size_value = 128; adapter->llq_policy = ENA_ADMIN_LIST_ENTRY_SIZE_128B; } From nobody Thu May 1 18:15:16 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpMfY3X8Dz5vXGf; Thu, 01 May 2025 18:15: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpMfY0XSrz4NSM; Thu, 01 May 2025 18:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746123317; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8IPh797ahS25EPkPyjk9+FM4u3eiIewQMh+ZEw1DQV8=; b=tc85uvTQtOSUFKImJFA03XmVMhXqwEi3A/8HFRWsa90x521mdFdA1Za1yAytGCuT3e2chw TL8cUmyocF6DmLtFA10efTJO+Yigsynpj4AYNkfKxvdHOx1/qjhkx6vJACbjfqXBVAtn0N 3KPSUkqLH5xXzoGicEb514wKynRRj4fIzcUJsau7aQWaUizp6IYGB8SBK2OueicwzqQoCM i02BUZv6HsL330NgxnbloED6frBxsJ+6xg/k4pUjL1Ur84NKeuKVRWA1kDmpMeZSMuSngW xjmQ0OhkweLzaJGlSaFPSjxkdunav0+k3hJ/6Hxb+a5gzncA8OoeuJiuCC6MwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746123317; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8IPh797ahS25EPkPyjk9+FM4u3eiIewQMh+ZEw1DQV8=; b=WlzSDkyUwZz6bkR5kVRHnEpO/NoY02dKAjDZcsubMMtEa9rtrugMDQTdS/ASKobk26PYYW vuziER+gHPqnSbOjvX4a0zrtVgTsugieJYpC/zlBQRkJazfVwb+sUx4vrUw05zw69rhDOa XzyOuSfmL+HKCocGbwkiTtQjV/KipQOj1DoLwUoOmxCUbrEWNY3obMI5jJ7jRidlN3cS8p /6hN+8s4lZwEHVoIfPZ+8ViWQ1EUMnxsEmQSPu7PuTHZ9MwK9iJXfZlJheGHFQtyuv3R8P YrZ2T3sd73IO1Z8OAm78LtGII/nRdHH9ovyyHxTqQQ4Vwj7bmOhNws1zXrArMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746123317; a=rsa-sha256; cv=none; b=aJCckbOFnlcaDPnAtwanTXIayImnl0U0XeUQg2m5KPUCHtv0813htNKCx1yyrUO/mDu5/9 FTwhD0VX/J29/bsVg2BGQOXrB4hpCP/Pn4/r90BFBvB6IyklFjEtmDWB8+6958Ulw/pJpo CNMQ6b3JD5dP6zg/pK2nuB9LP7FY3D7f324QNCqRMgSbRLMdtQNWc/bv8qbQNVkGOZUimM uyt3M24FSP4S62f3Ep9OVBH8FtxQea05mOl6ZpagdJc/ooQB2vZCioDgUrhuC3HxaBcg8d c4RkieH6ZB7SVIIo2IR/oNV5N+dqC8Sw887ARfPudj2FLthbvoBfGuQ7FeJsCA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpMfY07Fqzfyd; Thu, 01 May 2025 18:15:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541IFG4Y084915; Thu, 1 May 2025 18:15:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541IFG53084912; Thu, 1 May 2025 18:15:16 GMT (envelope-from git) Date: Thu, 1 May 2025 18:15:16 GMT Message-Id: <202505011815.541IFG53084912@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Arthur Kiyanovski Subject: git: 7ea71ba86a57 - stable/13 - ena: Bump driver version to v2.8.1 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: akiyano X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7ea71ba86a57e10a313c7633a894f8c53afcd6c6 Auto-Submitted: auto-generated The branch stable/13 has been updated by akiyano: URL: https://cgit.FreeBSD.org/src/commit/?id=7ea71ba86a57e10a313c7633a894f8c53afcd6c6 commit 7ea71ba86a57e10a313c7633a894f8c53afcd6c6 Author: Arthur Kiyanovski AuthorDate: 2025-04-25 17:19:32 +0000 Commit: Arthur Kiyanovski CommitDate: 2025-05-01 18:14:30 +0000 ena: Bump driver version to v2.8.1 Changes since 2.8.0: Bug Fixes: * Fix LLQ normal width misconfiguration * Check for errors when detaching children first, not last Minor Changes: * Remove \n from sysctl description Approved by: cperciva (mentor) Sponsored by: Amazon, Inc. Differential Revision: https://reviews.freebsd.org/D50041 (cherry picked from commit 59b30c1a864ee8a22c2e9912301cb88674f714c9) --- sys/dev/ena/ena.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/ena/ena.h b/sys/dev/ena/ena.h index 06bdfad97ed4..3b01605b4ba7 100644 --- a/sys/dev/ena/ena.h +++ b/sys/dev/ena/ena.h @@ -39,7 +39,7 @@ #define ENA_DRV_MODULE_VER_MAJOR 2 #define ENA_DRV_MODULE_VER_MINOR 8 -#define ENA_DRV_MODULE_VER_SUBMINOR 0 +#define ENA_DRV_MODULE_VER_SUBMINOR 1 #define ENA_DRV_MODULE_NAME "ena" From nobody Thu May 1 18:58:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpNcV4gsmz5vZvr; Thu, 01 May 2025 18:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpNcV1wPFz3YyD; Thu, 01 May 2025 18:58:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746125914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ipYcOkBwiHwJgO+qxyea5/YvDlIKLj4nbTwmoah0Hzw=; b=U8c6u4RzA7CFX83zkAR30O4dDMQQHsKfQMWaaCZLA6xxYILNbjL3Yka7AI/cHXCTeHBJlE jo0hLz45jfRBlPYMJ4440JCnaV+vaJvPm1050I1vdkd/o2UxYgexMIDVAnYYyslXjJeOOD fpLe9ruKCTW7atMjW8MMb4vfdFmftDJSZwfYdbpkIrMRJ8/EIrvH0vvChf1l5sJcqnbOQ6 MXiZPH1bBw+T+2qSou8qAf+CStNExkyLk4EYhDXdeoLkFYIFs6cmzT478SfbRIkjYJ0xq6 MPnR4mBvtHHsOG1QdpL8s36U89X6BUvdhYls0gt4rVyMd3SCM1FfVAORpQ3JwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746125914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ipYcOkBwiHwJgO+qxyea5/YvDlIKLj4nbTwmoah0Hzw=; b=RRzuCdi/fb1ptcDHVXhzHYAhjjXywEHR76Y8EJF3CRJCdnerzdlV2A3iI1Pudk5Z6KZJnm 468o3IGcdF3U2P+Lv4qEf66pYz7RtfA0dL988LqgBsJcN9ANx2f7vETauRXnWKuAnJ4B6A 8CzKc1rSEHbLdw/g0qLFvv7Of5sGuRwoIpJzx04BmUwqTH4GKFbD7VKZCnt70a1im5tbT/ AUOX8odLMuUS7Q7W45Af3o0aMGiWmBedBYR27hH3UWYeKtv4zyL+ksXFdfZ22W1beKjpDT l0ANi9QtXV8KMccQJo6/NKf9VK9WAtBf5CP7wEvc7mpgQU55IBaWQozJ5mkaaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746125914; a=rsa-sha256; cv=none; b=hABQ5HfyP6AIDZxu+cqfgKdgBBjyRq1d8geLurB9JtkcwARAgh+/vZHjlhEvwobWgYouPM 5GYyLj4B2exhv0aI3QY1lXUhuQryAhYE2fojYVSJDeqP6dtiQ7DbpvojVzA6KiysLGAmyV viRCxVVl69RbEml95upQYFwzVexF9omHKSy0/vEMeX8OsOsLbcg0H7vLMhVr+7F6vmhAS8 ie9jj1COmH78n1UicyhSZwPoSIQiizk66m/zJ84uDf0G5cHv/kSV6hRvZyILGWkxFcW89P O2JADziTDuD0X/yvRPU04pIt5TD9twklcZp0DB7vzjzFgA4UXvLNCTRqvanq/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpNcV0ZDDzgm3; Thu, 01 May 2025 18:58:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541IwXxX060132; Thu, 1 May 2025 18:58:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541IwXjk060129; Thu, 1 May 2025 18:58:33 GMT (envelope-from git) Date: Thu, 1 May 2025 18:58:33 GMT Message-Id: <202505011858.541IwXjk060129@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 25f971766372 - stable/14 - tcp: 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 25f971766372ca97135e1cc15f46240c1d078348 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=25f971766372ca97135e1cc15f46240c1d078348 commit 25f971766372ca97135e1cc15f46240c1d078348 Author: Michael Tuexen AuthorDate: 2025-04-07 16:49:05 +0000 Commit: Michael Tuexen CommitDate: 2025-05-01 18:51:05 +0000 tcp: cleanup Remove the macros COPY_STAT and COPY_STAT_T, since they do not improve the readability of the code. No functional change intended. Thanks to glebius@ for suggesting the change. Reviewed by: glebius, rrs Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D49670 (cherry picked from commit 46fc12741e70f2d1f0510a0dacd2f9dd3aa116c0) --- sys/netinet/tcp_log_buf.c | 54 ++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/sys/netinet/tcp_log_buf.c b/sys/netinet/tcp_log_buf.c index 5142b3ebdd71..f540c7d3e70e 100644 --- a/sys/netinet/tcp_log_buf.c +++ b/sys/netinet/tcp_log_buf.c @@ -1840,40 +1840,36 @@ retry: log_buf->tlb_txbuf.tls_sb_ccc = 0; } /* Copy values from tp to the log entry. */ -#define COPY_STAT(f) log_buf->tlb_ ## f = tp->f -#define COPY_STAT_T(f) log_buf->tlb_ ## f = tp->t_ ## f - COPY_STAT_T(state); - COPY_STAT_T(starttime); - COPY_STAT(iss); - COPY_STAT_T(flags); - COPY_STAT(snd_una); - COPY_STAT(snd_max); - COPY_STAT(snd_cwnd); - COPY_STAT(snd_nxt); - COPY_STAT(snd_recover); - COPY_STAT(snd_wnd); - COPY_STAT(snd_ssthresh); - COPY_STAT_T(srtt); - COPY_STAT_T(rttvar); - COPY_STAT(rcv_up); - COPY_STAT(rcv_adv); - COPY_STAT_T(flags2); - COPY_STAT(rcv_nxt); - COPY_STAT(rcv_wnd); - COPY_STAT_T(dupacks); - COPY_STAT_T(segqlen); - COPY_STAT(snd_numholes); + log_buf->tlb_state = tp->t_state; + log_buf->tlb_starttime = tp->t_starttime; + log_buf->tlb_iss = tp->iss; + log_buf->tlb_flags = tp->t_flags; + log_buf->tlb_snd_una = tp->snd_una; + log_buf->tlb_snd_max = tp->snd_max; + log_buf->tlb_snd_cwnd = tp->snd_cwnd; + log_buf->tlb_snd_nxt = tp->snd_nxt; + log_buf->tlb_snd_recover = tp->snd_recover; + log_buf->tlb_snd_wnd = tp->snd_wnd; + log_buf->tlb_snd_ssthresh = tp->snd_ssthresh; + log_buf->tlb_srtt = tp->t_srtt; + log_buf->tlb_rttvar = tp->t_rttvar; + log_buf->tlb_rcv_up = tp->rcv_up; + log_buf->tlb_rcv_adv = tp->rcv_adv; + log_buf->tlb_flags2 = tp->t_flags2; + log_buf->tlb_rcv_nxt = tp->rcv_nxt; + log_buf->tlb_rcv_wnd = tp->rcv_wnd; + log_buf->tlb_dupacks = tp->t_dupacks; + log_buf->tlb_segqlen = tp->t_segqlen; + log_buf->tlb_snd_numholes = tp->snd_numholes; log_buf->tlb_flex1 = 0; log_buf->tlb_flex2 = 0; - COPY_STAT_T(fbyte_in); - COPY_STAT_T(fbyte_out); - COPY_STAT(snd_scale); - COPY_STAT(rcv_scale); + log_buf->tlb_fbyte_in = tp->t_fbyte_in; + log_buf->tlb_fbyte_out = tp->t_fbyte_out; + log_buf->tlb_snd_scale = tp->snd_scale; + log_buf->tlb_rcv_scale = tp->rcv_scale; log_buf->_pad[0] = 0; log_buf->_pad[1] = 0; log_buf->_pad[2] = 0; -#undef COPY_STAT -#undef COPY_STAT_T /* Copy stack-specific info. */ if (stackinfo != NULL) { memcpy(&log_buf->tlb_stackinfo, stackinfo, From nobody Thu May 1 19:01:26 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpNgq1c72z5vZqs; Thu, 01 May 2025 19:01: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpNgq14Ywz3cJ0; Thu, 01 May 2025 19:01:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746126087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xHEMv+4FXRnIfrbInfexKvkvlAyTAgmEGKUNjJ6Mbxg=; b=WQdbQM2rUQNsWxNyB4ivCojtw19b3GY/2dXxVHfVfEJldd57TlN07HddBrzIlR/E2U9yO8 pXqEQzMF77rSK2WvZFuaD97eN53uGr8V1xyBeY3PGAO1Ip6xPoo01adtlxr+64gQzXcx6P 2GBu3ahxuUxXJF06lhhZgqg5wMpcO6WrP/U0Thy7kNWOaw/jmJafvOFH78nSOv00EW9YfB vB6yKhiuQPqlXz//FvnOu9Wws2uasdl0/EugrSK9zGZFzgXCkvqiLPVtzegN6ClpEBYXCO lUUV3a8BHRxHqR0yd4MP9Uk9Xxp1u79yfuzPAfCQ56Y/T4RV4atZYJHyWCaxnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746126087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xHEMv+4FXRnIfrbInfexKvkvlAyTAgmEGKUNjJ6Mbxg=; b=koAQvwDW4bb9HH5Cna765o95ESFsv+UkHS3b5HVlLyVB6aKRVR7g0C5b/TQrEclOVYxdgk By4uCDC7cIt51tQiYnoxtoROvepw5csmTZNpojOLzPbVCmgHFDOXs/Gd6BHD4RufB5aD81 52pyhsiELZAoMlQLiMq/usTQ/SjH9hgyFAYlr3jqlCuoOjFClC33fSbFLOo1kdFMeFJeOJ uTolRjxpoCWQIrgrQfa9SG8gYWJ8wBMv1GJBLBHE1tDzWAme4IM/jYIMp17sLzaivmKIow w6/HAyauivPEfJyLPoc8mwCFI7139q7bcOomWBt5NpyiWGjAWbxJ/lpQwMVQqg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746126087; a=rsa-sha256; cv=none; b=h0GmN24Z0nQsBBFpkFqofRTQnwCNyaxFF3wDJ+d3812vAHAjaUKE5goNFU+WHSH5mibrxT fCAVBTykgosmi8XpeIn4v/CYHDeu1ro5rPJsGrKpYTDwe7cwuUh3M5MwTJeJMfQChdDJTt 2Xq/zJYyAat0hhY9dE1OzgRPEsuwjWeAQFKm24ZohAppw4jzRE4PxlRPeiBuQAc9yn57Tz pCQYAsZWEkfWszaiZYox7v58DrKrq5udX45REvwK5OE4sMD1vmSE/PnNlnPh6ilHXzyG/7 u8kkiVCiSXv104jUMPo2gfpVIDocyFVae3xo0IZLoA9yj7XwXlqnOF3BslEH2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpNgq0gTSzgYM; Thu, 01 May 2025 19:01:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541J1QvI075609; Thu, 1 May 2025 19:01:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541J1QIU075606; Thu, 1 May 2025 19:01:26 GMT (envelope-from git) Date: Thu, 1 May 2025 19:01:26 GMT Message-Id: <202505011901.541J1QIU075606@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: a1b159bb3e78 - stable/14 - symlink.2: document EOPNOTSUPP List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a1b159bb3e7892a51d54aeb699e2c6284924323a Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=a1b159bb3e7892a51d54aeb699e2c6284924323a commit a1b159bb3e7892a51d54aeb699e2c6284924323a Author: Michael Tuexen AuthorDate: 2025-04-14 22:03:19 +0000 Commit: Michael Tuexen CommitDate: 2025-05-01 19:00:52 +0000 symlink.2: document EOPNOTSUPP When the file system does not support symbolic links (like in the case of MSDOS), symlink() returns -1 and sets errno to EOPNOTSUPP. Document this behavior. Reviewed by: glebius, markj Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D49803 (cherry picked from commit dd9e59beebbb346f329dfd1de26a84da8afdcb1d) --- lib/libc/sys/symlink.2 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/libc/sys/symlink.2 b/lib/libc/sys/symlink.2 index bae615be5069..48d5cdeec11e 100644 --- a/lib/libc/sys/symlink.2 +++ b/lib/libc/sys/symlink.2 @@ -27,7 +27,7 @@ .\" .\" @(#)symlink.2 8.1 (Berkeley) 6/4/93 .\" -.Dd March 30, 2020 +.Dd April 15, 2025 .Dt SYMLINK 2 .Os .Sh NAME @@ -94,6 +94,10 @@ or the entire length of either path name exceeded 1023 characters. A component of the .Fa name2 path prefix does not exist. +.It Bq Er EOPNOTSUPP +The file system containing the file named by +.Fa name2 +does not support symbolic links. .It Bq Er EACCES A component of the .Fa name2 From nobody Thu May 1 19:02:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpNjb1F7Kz5vb0H; Thu, 01 May 2025 19:02: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpNjb0dQ3z3dLr; Thu, 01 May 2025 19:02:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746126179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NZtu0EMgnYgbiYOCgjd4PwcaW/Fms5H0dH+WBIQuvQI=; b=PEiCUSaqv+giAf6X6YFoWw4yoGKKzymKBIDUPYLSOlM5AhX+kjRbRHyXaUhsH2amVho8bs WCW+crX077XAkbqWgikKz8TIG32OvVH8poS4wt+Zpf2hQfyRoB87+g1G65SlK7V/wjpncB cj+RQhINoBGRB2hCGCYpPibGGX6xsQ+/y4WU5u8uG+waHAF+UaXXJ9cIsRJ21UuFMCXqVi ggwh6PSSjfwhAO/tEVymnhZdc1WbjJRPlGA6qxT9s6B1Gmnni1rw6J8st6SkG8UmIiBB8V ENBfjBvF523K8e8RzwtBfEHADCwxFvQaorZxxYNcy+9gftYOfTpL0n1hnYj87Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746126179; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NZtu0EMgnYgbiYOCgjd4PwcaW/Fms5H0dH+WBIQuvQI=; b=GM/MokpFaJmHMXphX5BDLNb9V6h6xOf9MijcHdJ8vyhF2ENrzg+U8PQGQAetyc44+zfjV0 HHLbObQV8SWLmH5+aDxSkI/VtmSedZCT3BU34cG0OSdrIuzXWQNz09OZg84WrBt+CDXIJk 1GG/TkhXU60I8r6iFRPjtlhW8DtGAMLcidNv16lvXgc8OwNIH8E0XpmK1i5wijfm6gnEH7 fb0Ly3KPHGu81EajZQtCBa7KEammpAeF40WOtjPKrMqwfV3hdgQIPR/PbZW8GKzg2OJYnq K0oNRxgiO5uwyjSlj9tWXkhmnuORs42eR+Qkbvr7lmdsUcuDiQ1657hBeU8i2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746126179; a=rsa-sha256; cv=none; b=FkkwB1XdkOLivwipGK1hswRI1HhhFywnUizKy7LmSIkV27hVmn5eQrXs9+/NDfrWxom3UA cZ2RYfytuQ9tqpmmvegGYADSDeJ2/apnd35yakjfxDZfcgKRJoMf2YpGpNeNPXcMQu2+y8 eJn/XNaUes7h5E0xmAcu21brqc7OPOrerlU6nbwumU9mmvwgps1IcC1T70SsTMcoNjk2vr 3XkwVXu62Lujjd6NSBnAiKrnxv/l4OcNLWayKg7IVGueC57H3y76/siFxUcKryzEEkbpPP sl65CK+newunH8/DkWyUIFDq68yvbMfeXH9UbfZVt3Y52hLSbxIrizv2f2sNnQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpNjZ74CLzgmw; Thu, 01 May 2025 19:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541J2wvh078415; Thu, 1 May 2025 19:02:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541J2wCM078412; Thu, 1 May 2025 19:02:58 GMT (envelope-from git) Date: Thu, 1 May 2025 19:02:58 GMT Message-Id: <202505011902.541J2wCM078412@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 0cd8d6dd11f8 - stable/14 - netstat: fix table header alignment for -x List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0cd8d6dd11f87a909bcf97f0245c2672024e606e Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=0cd8d6dd11f87a909bcf97f0245c2672024e606e commit 0cd8d6dd11f87a909bcf97f0245c2672024e606e Author: Michael Tuexen AuthorDate: 2025-04-21 16:23:19 +0000 Commit: Michael Tuexen CommitDate: 2025-05-01 19:01:47 +0000 netstat: fix table header alignment for -x Add a missing space before R-HIWA to align the table header with the table contents. Reviewed by: rrs, cc Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D49941 (cherry picked from commit 4294f7946e4cd8face2bfa16cedc5c0bf0d6c81e) --- usr.bin/netstat/inet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c index 3442666ce0bd..86354d680131 100644 --- a/usr.bin/netstat/inet.c +++ b/usr.bin/netstat/inet.c @@ -344,7 +344,7 @@ protopr(u_long off, const char *name, int af1, int proto) xo_emit(" {T:/%-11.11s}", "(state)"); } if (xflag) { - xo_emit("{T:/%-6.6s} {T:/%-6.6s} " + xo_emit(" {T:/%-6.6s} {T:/%-6.6s} " "{T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s} " "{T:/%-6.6s} {T:/%-6.6s} {T:/%-6.6s}", "R-HIWA", "S-HIWA", "R-LOWA", "S-LOWA", From nobody Thu May 1 19:51:20 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnN53G0z5vdqv; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnN3h0fz46Mp; Thu, 01 May 2025 19:51:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PZYdNNYIIxFuUSwhYXVLOX+pyfBnZWKLunOEevu5VNU=; b=BUa4k7jHpC7H+KLL3qJz/KQLpL2aId04uEhnI3Hd8GQkdSjYZ9oV8YZui5rK0ftchKg1vh P/lJThPMWBCbfAa3pTmUsrPUHNJtCJB0Zxs+3Km4FnoJ2ITLsUJqT0t1xbeE2K1IeDYGBL LNV+ZWYiJAnvXNvngAxMCfU4CvPSlP/g7GX9gLpXlCRYGjQFD52koyoXJ+LgghS5d1dlYy LVn9XG08k/bWlEqlHnce9ak6INk2+qrFpZsNse6Da0eYcz7npGnLHaOzSE/uJOJRb5TKFU cg9H2s2Skww4KFtmiT70FBmobhWKUY+/J2uixCj40CXKqIps1nrMHjGd5APcag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PZYdNNYIIxFuUSwhYXVLOX+pyfBnZWKLunOEevu5VNU=; b=FW9uN0zUJeWoJSirLPmy1BFDOB6Tivd60WkHvtVuJcYYX++JH2R7IshtMnzd26duhZ8AYS EKKlTCWW/enpyMkOCC8H1ZG0DBieK6WkV7Lr/hxm10/PImWE6QVu9vFAItG1Nmib8irdp/ rUhBdpa7uvP8V5nzgExgbIBqJ0/3bIxeR9wHJMBOvHbiEkQkfZhVQUw+C+i9P1rl4KLObn BDbbSqkxNRMSCRGz/Yxh3nEMO20dxqs6HiC9zf6lscIX+/BEijwQUXFAR44alsjV4ywSJO iJmFwHrvU09xR+S8HoQbNQ7Nq8gJLZzNFK46WEZ0HIXlCs1I0EO/hF8flM6QSA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129080; a=rsa-sha256; cv=none; b=Ay0iQ0FoDTt565A6zho0ZIIyt/uU1tYYE5pW/jq5zdecKMeDX1O9qC0FGHp+Ld9TKYXKp1 7l8VarQ/09mmKGktbf6OgB4YnrynEG2dc8hDjPzGmFWtOBbK+XOwRCWrJk7GkfNcWuftH6 /C2NJKS3sBEJ2PtIwads0vJrjzAXzHQzMdiw2xBT0e+agwraDTt/abm/5I4cLDTaSi6c3p gXm/1RY0hBt3EoyzrvP36fW81arKf5eZTVE/BC3fEG/h3HBDujuUn0Qt6lVkp1wnGZGGv9 IIjKRWG8mSyJUwHJ2ssxK1oqxqaU6rr5EEDs4eogDVpU9JBcoy5hxMZ0spFJXg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnN3GxFzj17; Thu, 01 May 2025 19:51:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpKIM066938; Thu, 1 May 2025 19:51:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpKaO066935; Thu, 1 May 2025 19:51:20 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:20 GMT Message-Id: <202505011951.541JpKaO066935@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: b4fb6e033914 - stable/14 - Extend description of -p to include interactions with -d and implying -x List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b4fb6e033914858c0454d8825cdf1f7df12ed295 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=b4fb6e033914858c0454d8825cdf1f7df12ed295 commit b4fb6e033914858c0454d8825cdf1f7df12ed295 Author: Benedict Reuschling AuthorDate: 2023-10-06 14:29:21 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:35:02 +0000 Extend description of -p to include interactions with -d and implying -x PR: 268052 Event: Oslo Hackathon Differential Revision: https://reviews.freebsd.org/D40595 (cherry picked from commit d6ae056e9dc96c2db45982ac358ba9ed716a9202) --- bin/ps/ps.1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 95f7f15e26ad..368d50b46abc 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -28,7 +28,7 @@ .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" -.Dd August 24, 2023 +.Dd October 6, 2023 .Dt PS 1 .Os .Sh NAME @@ -238,6 +238,11 @@ So the header texts for multiple keywords can be changed. If all keywords have empty header texts, no header line is written. .It Fl p Display information about processes which match the specified process IDs. +It implies the use of +.Fl x . +When combined with +.Fl d , +all descendent processes are included. .It Fl r Sort by current CPU usage, instead of the combination of controlling terminal and process ID. From nobody Thu May 1 19:51:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnQ28gXz5vdtm; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnP4lGsz46Br; Thu, 01 May 2025 19:51:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jFuQVWfz8OKyrPq9Hk6Ky6u8aUf3m0aA+QtxfEGxQk4=; b=C2kqdGaMptBrzj7Dinx1nZwsjKYv/Vyj+ywZkn/+qL74pXo1zZ3u43BnjMnB9chR2Gb2ss HlPPlC4viAKw55dYOkdkVOW6kAqtLXci56juQrV3OVasBIfqK6bWndag3K7inQfAzXa5Bk Jk/oMAh1dI5yxf4Q6yZfKG5V+P1ySlAs0QyH3ZIvXmTQNaoizagzo+VCkLEQvivmjiuNGO lJ0FoFB3YYRbEODGnwZICMIDV4W8w8J702xxzn9bRI++2rjWOkSaHu8mVAVfB0ide4XVgA Ty7tMLFYpYtWXypf0WqCMtUPu3mEW640M9rX19A1jHytEsmEv6Qcvj8aPZNBCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129081; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jFuQVWfz8OKyrPq9Hk6Ky6u8aUf3m0aA+QtxfEGxQk4=; b=mwHlE+6detnM4IM3QPQzFHyQm1/1Mi52gl7XE2M1Yb4xhsLsc/DDqPX+7R71E+7a5qikd6 FIi9rGR4Yqrmy898dY6zSMINf5J2Um376ez/alX36785P3teqvgrV1C6xiZgxYnZRCRYl0 At9DkEk6N18E1BB7KUXKE2Q5q7Wj7fLU0n/38vuDDLwijDYNnxu8mWGc6x8laHCeiJS0rs j3V+dfn1qLXgwY01PAbfS7RjSfe1S7PRpJxuB+WfVRIcyY4emXuh0eMzZWgA/5pcc+azPA /Mvlv/JEN3FlYHpEx2MxbS2ZZYVMZwi7DL0kb6ao3G0SLIzJVENyo0OWT59G5Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129081; a=rsa-sha256; cv=none; b=jX423UAtgEN5++0zIiASy0kP/Tp7vktu5TewHid3PkgeE8VuH8RkRp3Nv1z++q9rVniv/+ 5I23QSGe3W8YuNWR9nZ7ztucDVd/lfAXcr0AmBqfIxq4amslI6/rbmav710VTFSWI0Qg+X ewOXzBp8BdX54IVAsgX01GzcnTqFkmmiXUolCQ2j6Ad882aaZBeFI5vDuYF6XdTasG15HT 3Xyg/eYZkeE6fr+fAESFEdMPO3lKMroVn/B29SuC9tthemRY62weVbv6vAn6kZrwt06nMI LDtR6gqutFj7O/AA4UDRzDfVAk4Wtu0K9HMW0EJWDMGnBekuJxPb4bUMCdAwog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnP4JykzhyL; Thu, 01 May 2025 19:51:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpL0d066971; Thu, 1 May 2025 19:51:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpLN8066968; Thu, 1 May 2025 19:51:21 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:21 GMT Message-Id: <202505011951.541JpLN8066968@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 0a1d13469cd8 - stable/14 - ps.1: update regarding -D option and -p x/d interaction List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0a1d13469cd8f3561d676c7438d7abec0964dd3f Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=0a1d13469cd8f3561d676c7438d7abec0964dd3f commit 0a1d13469cd8f3561d676c7438d7abec0964dd3f Author: Benedict Reuschling AuthorDate: 2023-11-11 19:49:24 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:35:07 +0000 ps.1: update regarding -D option and -p x/d interaction The -p option does not imply -x, it is merely a different mode that ps uses. Remove that statement from the -p option, effectively rolling back d6ae056e9dc96c2db45982ac358ba9ed716a9202. pstef@ introduced the -D option in 5c0a1c15ff8cb66128f4826ace8ba91e0a31486d which also turns ps into a similar mode. List the -D option along with the others in the first sentence of the second paragraph of the DESCRIPTION section for completeness and correctness sake. Pointed out by: pstef@ Differential Revision: https://reviews.freebsd.org/D42552 (cherry picked from commit ba44650a0b1e3b0f52554380937a3ffc16d396f3) --- bin/ps/ps.1 | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 368d50b46abc..b231cc7a35d6 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -28,7 +28,7 @@ .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" -.Dd October 6, 2023 +.Dd November 11, 2023 .Dt PS 1 .Os .Sh NAME @@ -65,7 +65,7 @@ will also display processes that do not have controlling terminals. .Pp A different set of processes can be selected for display by using any combination of the -.Fl a , G , J , p , T , t , +.Fl a , D , G , J , p , T , t , and .Fl U options. @@ -238,11 +238,6 @@ So the header texts for multiple keywords can be changed. If all keywords have empty header texts, no header line is written. .It Fl p Display information about processes which match the specified process IDs. -It implies the use of -.Fl x . -When combined with -.Fl d , -all descendent processes are included. .It Fl r Sort by current CPU usage, instead of the combination of controlling terminal and process ID. From nobody Thu May 1 19:51:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnR1Vx3z5vdtq; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnQ61zBz46F0; Thu, 01 May 2025 19:51:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129082; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q0jQkEV+bKTerjXMqExqZ0mnADtvItG3Xkf6ywqoMa0=; b=strF33visX0J3OEUJjz+d9Ek83vGuFy6SWzMJp2FxxvFkC0oPTjNXWOClH8YJv43M4EGTb qh87j/H1ZxEkfuhzvhaDDlswIUSgM7/44EVspRnu7KMv+OHO0VCzuSneWKmQx4CwZ+U/7K C0X9bCJYeKJAvbP9sghLhAS1LWbaDO01CaTRjcbaryQrYF6wt2UlbTgvJcxTn398gOSpMO AiNzbWn1rPBov0S2Q8eK2XamZl3dyzfER78Fey7quUj94K7qQdTpIaSPt09I9NwayE/+dp Ng10umlRqxmGMqHS9aHLw/jMJ82bPfeUKkWMuc1avAn/Ug1/kMGk5GUiN3VSSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129082; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q0jQkEV+bKTerjXMqExqZ0mnADtvItG3Xkf6ywqoMa0=; b=UbEvWoPYraqm4bRhasVw2p0dYzicJgzre9yMIAl8ABomEnrIDaXWA+64+mJnv8L4efUsFC MK1yfxc9p4HdXeSmhXLzKAYvZlDSJJRENuNww/PIMRxGcBxiTx4n4/uJ4mLSkvQU/V2+y4 WYCBcJw4Fvm7ckubj+gE1kK23seqbW47P3X0uWYCm9oSaNbff4/iIf4cNg++5hH3m1Jhmc QaQUbtgflf4UmdLoVKuI9EsR9iuvUntH8PqWt24JO5h44Olb7JgKH+nQR52sb9r64wFzmn sS3RcHcRYXdFJJJTFy3S+RkAqtublc2hcIN5AwH6DI2XSUfrk7WBer/iJSI+Bw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129082; a=rsa-sha256; cv=none; b=pz682eCl2EcCCny0kCMe0GOThRClAh40RLWi9duQtpplqeR6xU238jPv78CFLv88mUcSdE lUbjFjfKMrYrw9d1uLmbM1cCz+RIipSIElrVsxRtRI2X/Da64ttPXF3vfZACxQq/VxhDID Tkb+YKJOmZahxs1k91RQ8CJZ+uZ8Ai9AMz2I6pb3Za7LXLAKz+sL5YKdhg4W+nbiV5oSdx PnF8wnDtfLrP+HxrR0Qi3NKQvgyzohr+EskJPvNHn+hPXY6si+gfm5Np9Smk7xm/FoHdCf SexgBCWj+jLwaVaM9Qnq/GL/mb/Z6NvG0BE0e2H/7QKx0u5Y9ADKEqp6o9svtQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnQ5HZBzhjF; Thu, 01 May 2025 19:51:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpMej067004; Thu, 1 May 2025 19:51:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpMjf067001; Thu, 1 May 2025 19:51:22 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:22 GMT Message-Id: <202505011951.541JpMjf067001@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 93ef18f9e83b - stable/14 - ps: handle incorrect -D values List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 93ef18f9e83b15cfa3d844d9624462703caee381 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=93ef18f9e83b15cfa3d844d9624462703caee381 commit 93ef18f9e83b15cfa3d844d9624462703caee381 Author: Jamie Landeg-Jones AuthorDate: 2024-04-23 16:44:36 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:35:07 +0000 ps: handle incorrect -D values I just noticed a slight issue with the '-D' option. Basically, I accidentally typed something along the lines of: ps -Dboth-p303 I.E. missing out the "space". Instead of giving an error, it behaved as if I'd just typed "ps". Looking at bin/ps/ps.c, where the -D option is parsed, it doesn't error-out if there is no valid match. This commit fixes the bug. (cherry picked from commit 3f0b80bc1537c257f3bd68592832ec8cb65e1c58) --- bin/ps/ps.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 16d8a0a58d3c..897b4ccd9a92 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -276,6 +276,8 @@ main(int argc, char *argv[]) else if (len <= 4 && strncasecmp(optarg, "both", len) == 0) directions |= BOTH; + else + usage(); break; } case 'd': From nobody Thu May 1 19:51:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnS3NjTz5vfH9; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnR6l7tz46C9; Thu, 01 May 2025 19:51:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5hlZbbgv8TO0JX76XMmt/lwoWrzjHjtnkpywxQ3eBi0=; b=iGMgDMeAhgr05tg9bL0rXNqyY9Szw0StgNWEaBd87e8JYLEis8qVqkA2BkFwM49qqS9/Mq Na2i9N/u1aQwYj4Wse3+fswLSjlRBQy79gFFjOPiP7ly9BYB2aymG9A2Ld0yNDD/jH9MPf PXHA9izYsQFUrOdJ5wRlEU34kdX10CiB+8f8JG9F3NyGhXLfvl38Wbnk+l0lzTRvguWd2g g/Sbx1ScYi4pgmGEHatfRk5A3p8pA+BlFSywIoZTxhgHWyQEQEMKUWuMnzfzwjth0di+xd GUsa8q3seEjuYXXV5KDT3TEIJDSxm69QONM8XMRM5PdlL142qxBKNl8KRrf67A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129084; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5hlZbbgv8TO0JX76XMmt/lwoWrzjHjtnkpywxQ3eBi0=; b=xNby4r3SX/cgIJxmhT/gr5JlBNdzYLz3xa+/2VeFE74bo0qnLYDd1i+RLWvcG+j5R/Hcm8 rk0YY+RjzGST2JQhwMLX7EcuU+O0VxGbJQmC5qjqGPbOfk8V6Inzf8VDdB36xG591yPgEi eZX+K6wRT5Y0IuRjIjddFGsWqXeRdVZT9dxFV90wx+MVfE+grspylttd8kt7PiiUf7/xqP p+gdxo2FN5cs8bZXzB9OlYnXO+0B2O+NBDMNOKess7oDw8jswuG7MFxAkE4ijIRa4/tIxR XtuivfPIY92mIiXC4Jwm71sFZ36q14y1ruDPccZJttW4NOf8OO8yE/nYIwET9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129084; a=rsa-sha256; cv=none; b=oJYYdH523TeZ+pG3EWhTVlwO2V9gvqKdwyAp6JVAZN9Mm62ldXVCGcP0JLM/NVSQIU3QqR 3t0r0qJT+FnRnegx2Q/+kFywmzsguJGKrHRJUSmEsCWncXxVuJTZX77djIJGcBc/o4/ee8 OJKprFWIoF6aKcmsoU7NAf4hWgF1btqwDM/l1tmUs84t3Camcqy4iN0Tu/nAwPQeD6NtUu ZNi8OUS2Z0nAMjUklW1fGsiOjWEvJgRXOkB/WxhGT3ekNiiltlHWC5bjitrsJfoYkFoU3M eTm+rdw9KNSVvQ8hbRpSOr45cz8yiZb+G5cqOriTEPN4yKb72jVRzXugEy+o/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnR6CmqzjHg; Thu, 01 May 2025 19:51:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpNsl067037; Thu, 1 May 2025 19:51:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpNlH067034; Thu, 1 May 2025 19:51:23 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:23 GMT Message-Id: <202505011951.541JpNlH067034@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: ac6a9fed6cd1 - stable/14 - ps(1): Complete libxo transition List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ac6a9fed6cd117fb504823056b8b8226f1acdf45 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=ac6a9fed6cd117fb504823056b8b8226f1acdf45 commit ac6a9fed6cd117fb504823056b8b8226f1acdf45 Author: Yan-Hao Wang AuthorDate: 2024-10-12 15:06:59 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:35:07 +0000 ps(1): Complete libxo transition Reviewed by: des MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D41422 (cherry picked from commit e17a2944a6e08478b9c073ba62c46f6714af16a2) --- bin/ps/keyword.c | 14 +++++++------- bin/ps/print.c | 1 - bin/ps/ps.c | 13 +++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 7996bc000e03..4d93cd152f43 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -42,7 +42,6 @@ static char sccsid[] = "@(#)keyword.c 8.5 (Berkeley) 4/2/94"; #include #include -#include #include #include #include @@ -256,7 +255,8 @@ showkey(void) } xo_emit("\n"); xo_close_list("key"); - xo_finish(); + if (xo_finish() < 0) + xo_err(1, "stdout"); } void @@ -297,7 +297,7 @@ parsefmt(const char *p, int user) continue; } if ((vent = malloc(sizeof(struct varent))) == NULL) - errx(1, "malloc failed"); + xo_errx(1, "malloc failed"); vent->header = v->header; if (hp) { hp = strdup(hp); @@ -306,13 +306,13 @@ parsefmt(const char *p, int user) } vent->var = malloc(sizeof(*vent->var)); if (vent->var == NULL) - errx(1, "malloc failed"); + xo_errx(1, "malloc failed"); memcpy(vent->var, v, sizeof(*vent->var)); STAILQ_INSERT_TAIL(&varlist, vent, next_ve); } free(tempstr1); if (STAILQ_EMPTY(&varlist)) { - warnx("no valid keywords; valid keywords:"); + xo_warnx("no valid keywords; valid keywords:"); showkey(); exit(1); } @@ -351,7 +351,7 @@ findvar(char *p, int user, char **header) rflen = strlen(v->alias) + strlen(hp) + 2; realfmt = malloc(rflen); if (realfmt == NULL) - errx(1, "malloc failed"); + xo_errx(1, "malloc failed"); snprintf(realfmt, rflen, "%s=%s", v->alias, hp); parsefmt(realfmt, user); free(realfmt); @@ -359,7 +359,7 @@ findvar(char *p, int user, char **header) return ((VAR *)NULL); } if (!v) { - warnx("%s: keyword not found", p); + xo_warnx("%s: keyword not found", p); eval = 1; } if (header) diff --git a/bin/ps/print.c b/bin/ps/print.c index 8972cb14758b..1ed6afe995c5 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -47,7 +47,6 @@ static char sccsid[] = "@(#)print.c 8.6 (Berkeley) 4/16/94"; #include #include -#include #include #include #include diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 897b4ccd9a92..98d95eb08aa7 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -59,7 +59,6 @@ static char sccsid[] = "@(#)ps.c 8.4 (Berkeley) 4/2/94"; #include #include -#include #include #include #include @@ -670,7 +669,8 @@ main(int argc, char *argv[]) if (nkept == 0) { printheader(); - xo_finish(); + if (xo_finish() < 0) + xo_err(1, "stdout"); exit(1); } @@ -755,7 +755,8 @@ main(int argc, char *argv[]) } xo_close_list("process"); xo_close_container("process-information"); - xo_finish(); + if (xo_finish() < 0) + xo_err(1, "stdout"); free_list(&gidlist); free_list(&jidlist); @@ -825,14 +826,14 @@ addelem_jid(struct listinfo *inf, const char *elem) int tempid; if (*elem == '\0') { - warnx("Invalid (zero-length) jail id"); + xo_warnx("Invalid (zero-length) jail id"); optfatal = 1; return (0); /* Do not add this value. */ } tempid = jail_getid(elem); if (tempid < 0) { - warnx("Invalid %s: %s", inf->lname, elem); + xo_warnx("Invalid %s: %s", inf->lname, elem); optfatal = 1; return (0); } @@ -1493,7 +1494,7 @@ usage(void) { #define SINGLE_OPTS "[-aCcde" OPT_LAZY_f "HhjlmrSTuvwXxZ]" - (void)xo_error("%s\n%s\n%s\n%s\n%s\n", + xo_error("%s\n%s\n%s\n%s\n%s\n", "usage: ps [--libxo] " SINGLE_OPTS " [-O fmt | -o fmt]", " [-G gid[,gid...]] [-J jid[,jid...]] [-M core] [-N system]", " [-p pid[,pid...]] [-t tty[,tty...]] [-U user[,user...]]", From nobody Thu May 1 19:51:25 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnW20gyz5vfBj; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnV1Crcz46NY; Thu, 01 May 2025 19:51:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129086; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AkwRHfA36BHhr6KC8sM+hpPjh9C/pNYxM/7WBTAaLQM=; b=BYHKat2MUwNYWg1aB+t3hdPLUggSmxzkA/OhzjFGiMldF5lxvDESOuSHfdt2J+2ZYHz0vp CKrNp89LhRTrUYXjUV0j8GVjq70zmgJL0t8xllgCqQ8MWMf8Wb4wOxvgsbztLtn6rLV1sf dSBwCWQWGA48OE9aKn3jy83Xxs+QlUDFS5h2dh2S3s+JfxdGD00D3YvtCLm9+08CIpuBKZ fI3TR5ZGWrOxdDNq34pocOGmj/pqE7jkVbzel84+ygTXoaGh4XfI0iq2x4K/DprI39+1vW TCJf3HXEUShohqqYmDE5wEeBcUA2rjvtcXw980BG+muJNEzExaslQABBsbHXHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129086; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AkwRHfA36BHhr6KC8sM+hpPjh9C/pNYxM/7WBTAaLQM=; b=pz/Vbk4NHDL99Uo8MvECEosZjVGKU05g5G8X7zaD85c9nSUtSfuRSsUyvm2zin7M1mB5Dh jDCoQcc40VBmQW95Bh/JICvRKGpBTOloaoW9Ygbh1GWtR1h8YNuxUZP2mbhO8QeQX2hES+ W0u8nNpOWvVritRi+bmPzeVz2tV7ahhcYMyuvMidcTuP9zZm+8lDEQojyqTd7q/rtA/UDk /OQdvWMlM+qA1h5TyoQ7Wt0wGgvrDeBLcosT+cqA0owuC/fD7aQQx++3ulI1zNZlIz+aiw hxw46zWaADYvU8LnLbnXWXBN1D4757/9sZSS6WXIC+eqqCKe+C+kNRBIcrsXdA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129086; a=rsa-sha256; cv=none; b=faK6WJ/bg7COaD/N8ETLDDv6w0daeJG7eOcV4xMos+d0Tq2+qubkPAqxQwy7zjuQD3f5v6 up/2VDXewxZqhUFpiTskN+D6lnzTWISN+XFePNU+/zYPsNQxz8nRvNbiT6Xg1i/VTP6lgh AGov5KHGRZCnVWzlNBTdra+krtGjVsHFpx1l7JdgRq65imh8hbWMLzCfWKS/1RmsL8ehju RRFlSCC2lb/RsC4EyLeakIhuXuxbly7lPb3VqowSv1XYPL6tgtwrVUdkcoWgiDquvKEOKK OJwNxuTUXTFMvtNz/uc1ASSzbfEfCOFbMeU4GtJHeoDZxjupA7aeF+TlbjZmYw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnV0kg1zhyM; Thu, 01 May 2025 19:51:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpQCa067109; Thu, 1 May 2025 19:51:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpPPe067106; Thu, 1 May 2025 19:51:25 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:25 GMT Message-Id: <202505011951.541JpPPe067106@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 64ba8931ce15 - stable/14 - ps.1: Use ISO/IEC byte units List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64ba8931ce15b0a21f75dc1930af561a12ee41d9 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=64ba8931ce15b0a21f75dc1930af561a12ee41d9 commit 64ba8931ce15b0a21f75dc1930af561a12ee41d9 Author: Alexander Ziaee AuthorDate: 2025-03-26 17:34:59 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:35:08 +0000 ps.1: Use ISO/IEC byte units The ps(1) utility uses 1024 byte units, not 1000 byte units. git grep KiB | wc -l 535 git grep KBytes | wc -l 39 Fixes: 20bdda14fa5c (Consistent usage of Kbyte unit) MFC after: 3 days Reviewed by: jsm, imp, mhorne Approved by: mhorne (mentor) Differential Revision: https://reviews.freebsd.org/D49522 (cherry picked from commit 75a320e4312e98a687a7bd922a1e2fa6649ad2c1) --- bin/ps/ps.1 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 53e60b2bb085..b801ebc47739 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -423,7 +423,7 @@ for details. The process scheduling increment (see .Xr setpriority 2 ) . .It Cm rss -the real memory (resident set) size of the process in Kbytes. +the real memory (resident set) size of the process in KiB. .It Cm start The time the command started. If the command started less than 24 hours ago, the start time is @@ -578,7 +578,7 @@ number of copy-on-write faults The processor number on which the process is executing (visible only on SMP systems). .It Cm dsiz -data size (in Kbytes) +data size in KiB .It Cm emul system-call emulation environment (ABI) .It Cm etime @@ -677,7 +677,7 @@ real group ID .It Cm rgroup group name (from rgid) .It Cm rss -resident set size (in Kbytes) +resident set size in KiB .It Cm rtprio realtime priority (see .Xr rtprio 1) @@ -702,7 +702,7 @@ blocked signals (alias .It Cm sl sleep time (in seconds; 127 = infinity) .It Cm ssiz -stack size (in Kbytes) +stack size in KiB .It Cm start time started .It Cm state @@ -728,11 +728,11 @@ control terminal process group ID .It Cm tracer tracer process ID .\".It Cm trss -.\"text resident set size (in Kbytes) +.\"text resident set size in KiB .It Cm tsid control terminal session ID .It Cm tsiz -text size (in Kbytes) +text size in KiB .It Cm tt control terminal name (two letter abbreviation) .It Cm tty @@ -754,7 +754,7 @@ accumulated user CPU time .It Cm vmaddr vmspace pointer .It Cm vsz -virtual size in Kbytes (alias +virtual size in KiB (alias .Cm vsize ) .It Cm wchan wait channel (as a symbolic name) From nobody Thu May 1 19:51:24 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnV458Bz5vdtx; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnT1QsGz46Ks; Thu, 01 May 2025 19:51:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jn36RTvCKPuuEVyXQqaI3yYXBF3zCIXjHgnzEeNinC4=; b=pKvPdcJPKFI/v8dw0CORlNjlHUC32900ueKHgCX/Jcat1JkJDDc/++1hxz8f5fYSwN0jMM XlXFM9DgiAwrFyoxrB8eNuLQ1y3Z6NfKrw+NEudi8UP7+lzX1i52WN69WhAFUbJrwFZHBY 7l8DrdKl7kdI3psFnKJZEj/HyusmVN/Y6cDPpbOek2JLgGLnOEFbvc/Ii5E1Y3jbmfMThD C2a/KX/hBFloqMO3NqLBPj2A/Ynhnon8w/D6biQWdeTIucqWLZeqlB3C34AEPljO81wfpf dF4Bh0WzAxfPoCT4dKdOv/kZmrza5pKaUzIHoLlVvwSqA2LrkPHWUgRpGX8boQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129085; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jn36RTvCKPuuEVyXQqaI3yYXBF3zCIXjHgnzEeNinC4=; b=Gs6DIX14p3MRT5oYzGSFUTY8/gV9Tl47V+rlmb/HKl9pbH8tV19AQAGLs+qda9yTuLmJWp Jz5A61gT7oPBOtIuOkRh0HhxI60ZxRScQrZ9AqQBubCNslw1DPcI5cEkHIYADeoUr4YA7H gHje5FWTV0qw9ZeialoxlCOeT5e/7Pqx3ilvgUsrLDrEBbDV7FfhDGldR5nPIdsMpzTYrP Y0mbfC8iXHfc4Ai/sBfhwvFGc8n08yD0f4+k+BWfB4aM8iftHkqsELFeDaZ+K2y6riUP6P LhzeIE+I3wj26OS8AErpc8DsmIuDF3IF07JKcgFGmgiF3nifxlrTfu9IBSGG2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129085; a=rsa-sha256; cv=none; b=ROkPmCjuX2d1VQTQz00ABswjfhg/TFOirpAY+vkx/XLpvBi5QiorS9gcqYt5p6yTCzjLAn n1hE6aGyuUOHV6UpfxFVpinCCYuqGlwDkJgSmJDuHH5EEHi0PzF9dh2l6pGXCiH2sz+fDN BFR3j3FLMDpdJKDOHIfN6GsvlG765O7TT9BairqvJw58SEU8xb0HEuSA/sc7U1wD+9Hygj nZAjdgDpmPiJAE+aNHjnzZHsEHI4a+dMEkQFA5DjXB9sZ8HhwcMK7fGKeLb7nr61iDrF5l UsgDVXVyGjamCJhoSlfIpSXJen0Q8hVN6fdF7Y2/GMwa7fI+C1Wcx1Mqzt3qiA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnS6fXdzjFV; Thu, 01 May 2025 19:51:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpOLU067070; Thu, 1 May 2025 19:51:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpOe5067067; Thu, 1 May 2025 19:51:24 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:24 GMT Message-Id: <202505011951.541JpOe5067067@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 39a31a5272a9 - stable/14 - ps(1): Consistent usage of Kbyte unit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 39a31a5272a98dfe175dbe26b25d9f90877f4cd5 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=39a31a5272a98dfe175dbe26b25d9f90877f4cd5 commit 39a31a5272a98dfe175dbe26b25d9f90877f4cd5 Author: Olivier Cochard AuthorDate: 2025-03-26 12:33:17 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:35:07 +0000 ps(1): Consistent usage of Kbyte unit Approved by: kib Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D49504 (cherry picked from commit 20bdda14fa5c7ccb96c814d09311db948b1d239a) --- bin/ps/ps.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index b231cc7a35d6..53e60b2bb085 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -423,7 +423,7 @@ for details. The process scheduling increment (see .Xr setpriority 2 ) . .It Cm rss -the real memory (resident set) size of the process (in 1024 byte units). +the real memory (resident set) size of the process in Kbytes. .It Cm start The time the command started. If the command started less than 24 hours ago, the start time is @@ -677,7 +677,7 @@ real group ID .It Cm rgroup group name (from rgid) .It Cm rss -resident set size +resident set size (in Kbytes) .It Cm rtprio realtime priority (see .Xr rtprio 1) From nobody Thu May 1 19:51:27 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnW6gRZz5vfHM; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnW4MV9z46Hw; Thu, 01 May 2025 19:51:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bh87fQAhxjfDoigWvk0lz1kIYtgt6joXLF8TKbltK9s=; b=jK7kCTV3c+3jscrl0savOMj8VgU3uDv6lX5LGDBdBqrN1DyTLdqYcuHoxTZrsJ9VlwPNcU qkhlP6ku4pmw4pzVo0Ay6ARsbQ3P2+XbDLiL3PZKM5GWYiQNACVut1oIfcZLhYiY0fWztY ivbCs4w6QGBnMo9PviFHVJWO2LVcFlwPKaF9BMHKf1BZYJ//kTSYTvMYnY7GzcSFAIRjzn l93kMUSqhxObFyIXWmqF2uZgfodqiub6RIZ2vAiG/OumVloluYgJIG/rFNSmX/ajkeyEni uqAJCuBPrqL1olDyYHDE7zBLa0m5D+bF8WwHW0qRlACRULoGmEGmH57dusWwrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129087; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bh87fQAhxjfDoigWvk0lz1kIYtgt6joXLF8TKbltK9s=; b=u96v4epEdrV2qO+7ROcjgasvg/9+lQAQrX1Pm3Uz6ro0OOvOhd/WK2qjRS58nakq3EtONI KZcAt7hi/O/tARybSylZVtfqbesntWNZxj4UnU99MimNYNtHbjnSekBGSp166YOBZ1Ur3f 7GSOjZwGhFQGgn1G1DRJLyxH4jYybfdHrP8xrCaukhebpOd4/AXVAkjuLda8K43TjK+eOq ZTDhZvjhr9wDFtlhAGm7w0FKjhZr0OFpwX+h/jQWyY59IYHLlpWUyGh6pEZ2U8mz83itYo rC2LsYv3wz84YsfVjK5Rz/AvZHKwNwu/CP37mt6wflsfbLp5MBe/IJ/r3YgCww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129087; a=rsa-sha256; cv=none; b=jMpgIcIL2WrNpSj+hy1/4oqTM+eY/+xM6OI0cfsPdlEGwGNtUONh96VUKMZut2YjXXKJ/q aI+B47FhAqH0sAM2K6egRlDQwU7Wig9qbo55tyEqju+IkxXjeuiP+FQfM5WcwM5312d+8D cFrQqysnQTzWrgnDZcCmQKW6fo9BM/vV9gxn8yvfPb7ovF+wzPI5M8Z4O9MI/ujoSHm9/L ypXixqxcl3dsNpyFd+x4mOrYlDCmVRIfJp+gm9n69zyE8N1YUqn/y2MSIdoT7KJgn5222W xsr5vZQ8uKxUMInk1t16PSrCol5AYVOOzGXy3eQTlbWm8n9cikxGs9bkawX4Zw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnW1WYMzhw2; Thu, 01 May 2025 19:51:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpRvd067142; Thu, 1 May 2025 19:51:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpRm3067139; Thu, 1 May 2025 19:51:27 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:27 GMT Message-Id: <202505011951.541JpRm3067139@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: d0c97ac578e1 - stable/14 - ps.1: Revamp: Explain general principles, update to match reality List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d0c97ac578e114268295af513c0f5e09c215ca8b Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=d0c97ac578e114268295af513c0f5e09c215ca8b commit d0c97ac578e114268295af513c0f5e09c215ca8b Author: Olivier Certner AuthorDate: 2025-03-14 16:17:30 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:36:30 +0000 ps.1: Revamp: Explain general principles, update to match reality The preamble has been revamped to give a thorough overview of the different aspects of the ps(1) command in the following separate paragraphs: 1. What it outputs. 2. Which processes are listed. 3. Which information is displayed by process. 4. How lines are sorted. 5. Considerations about the (mostly broken) output width. 6. Backwards compatibility features. Fix or expand the description of several options and some keywords to match their actual behavior. Expand the STANDARDS section, noting the options conforming to POSIX and those that do not (but may be changed to), as well as current diverging behaviors. Expand the BUGS section with a thorough description of other known problems. While here, document the POSIX-specified '-A' option. We have been supporting it since 2004 (commit "Support more POSIX/SUSv3 options:", a4c8a745a85b18d7, r127499) and it has been standard for longer. It seems now highly unlikely we will ever want to use it for any other purpose, so just stop trying to hide it. While here, re-order flags according to mdoc(7)'s prescription. Given the current state, this also requires less changes than, e.g., putting all uppercase flags first. While here, move the detailed specifications of keywords from the DESCRIPTION to the KEYWORDS section. While here, fix the formatting of some references to keywords. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49605 (cherry picked from commit ddf144a04b53d8599bdd00747e1b6d77e695c292) On MFC, the original description for '-f' was kept, as swapping out has not been removed from stable/14, and was slightly tweaked to be clearer. --- bin/ps/ps.1 | 950 ++++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 599 insertions(+), 351 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index b801ebc47739..ff16c64213e6 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -1,6 +1,13 @@ .\"- +.\" SPDX-License-Identifier: BSD-3-Clause +.\" .\" Copyright (c) 1980, 1990, 1991, 1993, 1994 .\" The Regents of the University of California. All rights reserved. +.\" Copyright (c) 2025 The FreeBSD Foundation +.\" +.\" Portions of this documentation were written by Olivier Certner +.\" at Kumacom SARL under sponsorship from the FreeBSD + \" Foundation. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -28,7 +35,7 @@ .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" -.Dd November 11, 2023 +.Dd March 14, 2025 .Dt PS 1 .Os .Sh NAME @@ -37,8 +44,9 @@ .Sh SYNOPSIS .Nm .Op Fl -libxo -.Op Fl aCcdefHhjlmrSTuvwXxZ -.Op Fl O Ar fmt | Fl o Ar fmt +.Op Fl AaCcdefHhjlmrSTuvwXxZ +.Op Fl O Ar fmt +.Op Fl o Ar fmt .Op Fl D Ar up | down | both .Op Fl G Ar gid Ns Op , Ns Ar gid Ns Ar ... .Op Fl J Ar jid Ns Op , Ns Ar jid Ns Ar ... @@ -53,36 +61,99 @@ .Sh DESCRIPTION The .Nm -utility -displays a header line, followed by lines containing information about -all of your -processes that have controlling terminals. -If the +utility displays information about a selection of processes. +Its traditional text style output consists of a header line followed by one line +of information per selected process, or possibly multiple ones if using +.Fl H +.Pq one per lightweight-process . +Other output styles can be requested via +.Fl -libxo . +.Pp +By default, only the processes of the calling user, determined by matching their +effective user ID with the real user ID of the +.Nm +process, that have controlling terminals are shown. +A different set of processes can be selected for display by using combinations +of the +.Fl A , a , D , G , J , p , T , t , U , X , +and .Fl x -options is specified, +options. +Except for options +.Fl A , a , X , +and +.Fl x , +as soon as one of them appears, it inhibits the default process selection, i.e., +the calling user's processes are shown only on request. +If more than one of these +.Pq with same exceptions +appear, .Nm -will also display processes that do not have controlling terminals. +will select processes as soon as they are matched by at least one of them +.Pq inclusive OR . +The +.Fl X +option can be independently used to further filter the listed processes to only +those that have a controlling terminal +.Po +except for those selected by +.Fl p +.Pc . +Its opposite, +.Fl x , +forcefully removes that filter. +If none of +.Fl X +and +.Fl x +is specified, the implied default behavior is that of +.Fl X +unless using another option whose description explicitly says that +.Fl x +is implied. .Pp -A different set of processes can be selected for display by using any -combination of the -.Fl a , D , G , J , p , T , t , +For each selected process, the default displayed information consists of the +process' ID, controlling terminal, state, CPU time +.Pq including both user and system time +and associated command +.Po +see the documentation for the +.Cm command +keyword below +.Pc . +This information can be tweaked using two groups of options which can be +combined as needed. +First, options +.Fl o and -.Fl U +.Fl O +add columns with data corresponding to the explicitly passed keywords and, for +.Fl O , +additionally the same columns as in the default display. +Available keywords are documented in the +.Sx KEYWORDS +section below. +They can be listed using option +.Fl L . +Second, options +.Fl j , l , u , +and +.Fl v +designate specific predefined groups of columns, also called canned displays. +Appearance of any of these options inhibits the default display, replacing it +all with the requested columns, and in the order options are passed. +The individual columns requested via a canned display option which have the same +keyword as that of some column added by earlier options are not added again. +This kind of automatic removal of duplicate keywords in canned displays is +useful for slightly tweaking these displays without having to rebuild variants +from scratch, e.g., using +.Fl o options. -If more than one of these options are given, then -.Nm -will select all processes which are matched by at least one of the -given options. .Pp -For the processes which have been selected for display, -.Nm -will usually display one line per process. -The +Output information lines are by default sorted first by controlling terminal, +then by process ID, and then, if .Fl H -option may result in multiple output lines (one line per thread) for -some processes. -By default all of these output lines are sorted first by controlling -terminal, then by process ID. +has been specified, by lightweight-process (thread) ID. The .Fl m , r , u , and @@ -91,23 +162,29 @@ options will change the sort order. If more than one sorting option was given, then the selected processes will be sorted by the last sorting option which was specified. .Pp -For the processes which have been selected for display, the information -to display is selected based on a set of keywords (see the -.Fl L , O , -and -.Fl o -options). -The default output format includes, for each process, the process' ID, -controlling terminal, state, CPU time (including both user and system time) -and associated command. -.Pp -If the +If the traditional text output (the default) is used, the default output width is that requested by the +.Ev COLUMNS +environment variable if present, else the line width of the terminal associated +to the .Nm -process is associated with a terminal, the default output width is that of the -terminal; otherwise the output width is unlimited. +process, if any. +In all other situations, the output width is unlimited. See also the .Fl w +option and the +.Sx BUGS +section. +.Pp +For backwards compatibility, +.Nm +attempts to interpret any positional argument as a process ID, as if specified +by the +.Fl p option. +Failure to do so will trigger an error. +.Nm +also accepts the old-style BSD options, whose format and effect are left +undocumented on purpose. .Pp The options are as follows: .Bl -tag -width indent @@ -118,16 +195,33 @@ in a selection of different human and machine readable formats. See .Xr xo_parse_args 3 for details on command line arguments. +The default is the traditional text style output. +.It Fl A +Display information about all processes in the system. +Using this option is strictly equivalent to specifying both +.Fl a +and +.Fl x . +Please see their description for more information. .It Fl a -Display information about other users' processes as well as your own. +Display information about all users' processes. +It does not, however, list all processes +.Po +see +.Fl A +and +.Fl x +.Pc . +Currently, this option has no effect if any other option selecting processes to +display is present, except for +.Fl X +and +.Fl x . If the .Va security.bsd.see_other_uids -sysctl is set to zero, this option is honored only if the UID of the user is 0. -.It Fl c -Change the -.Dq command -column output to just contain the executable name, -rather than the full command line. +sysctl is set to zero, this option is honored only if the real user ID of the +.Nm +process is 0. .It Fl C Change the way the CPU percentage is calculated by using a .Dq raw @@ -135,18 +229,11 @@ CPU calculation that ignores .Dq resident time (this normally has no effect). -.It Fl d -Arrange processes into descendancy order and prefix each command with -indentation text showing sibling and parent/child relationships as a tree. -If either of the -.Fl m -and -.Fl r -options are also used, they control how sibling processes are sorted -relative to each other. -Note that this option has no effect if the +.It Fl c +Change the .Dq command -column is not the last column displayed. +column output to just contain the executable name, +rather than the full command line. .It Fl D Expand the list of selected processes based on the process tree. .Dq UP @@ -159,24 +246,37 @@ will add both the ancestor and the descendant processes. does not imply .Fl d , but works well with it. +.It Fl d +Arrange processes into descendancy order and prefix each command with +indentation text showing sibling and parent/child relationships as a tree. +If either of the +.Fl m +and +.Fl r +options are also used, they control how sibling processes are sorted +relative to each other. +Note that this option has no effect if the last column does not have +.Cm comm , +.Cm command +or +.Cm ucomm +as its keyword. .It Fl e Display the environment as well. .It Fl f -Show command-line and environment information about swapped out processes. +Show command-line and environment information also for swapped out processes. This option is honored only if the UID of the user is 0. .It Fl G -Display information about processes which are running with the specified -real group IDs. +Display information about processes whose real group ID matches the specified +group IDs or names. +Implies +.Fl x +by default. .It Fl H Show all of the threads associated with each process. .It Fl h Repeat the information header as often as necessary to guarantee one header per page of information. -.It Fl j -Print information associated with the following keywords: -.Cm user , pid , ppid , pgid , sid , jobc , state , tt , time , -and -.Cm command . .It Fl J Display information about processes which match the specified jail IDs. This may be either the @@ -188,9 +288,14 @@ Use .Fl J .Sy 0 to display only host processes. -This flag implies +Implies .Fl x by default. +.It Fl j +Print information associated with the following keywords: +.Cm user , pid , ppid , pgid , sid , jobc , state , tt , time , +and +.Cm command . .It Fl L List the set of keywords available for the .Fl O @@ -213,21 +318,26 @@ terminal and process ID. Extract the name list from the specified system instead of the default, which is the kernel image the system has booted from. .It Fl O -Add the information associated with the space or comma separated list -of keywords specified, after the process ID, -in the default information -display. -Keywords may be appended with an equals +On first occurence, add all columns of the default display +.Po +as if by +.Fl o +.Pc +and insert just after the process ID column in that default display the columns +associated with the passed space- or comma-separated list of keywords. +On next occurences, just insert the keywords of the passed list, as if by +.Fl o . +The last keyword in the list may be appended with an equals sign .Pq Ql = -sign and a string. -This causes the printed header to use the specified string instead of -the standard header. +as explained for option +.Fl o +and with the same effect. .It Fl o -Display information associated with the space or comma separated -list of keywords specified. -The last keyword in the list may be appended with an equals +Display information associated with the space- or comma-separated list of +keywords specified. +The last keyword in the list may be appended with an equals sign .Pq Ql = -sign and a string that spans the rest of the argument, and can contain +and a string that spans the rest of the argument, and can contain space and comma characters. This causes the printed header to use the specified string instead of the standard header. @@ -238,6 +348,8 @@ So the header texts for multiple keywords can be changed. If all keywords have empty header texts, no header line is written. .It Fl p Display information about processes which match the specified process IDs. +Processes selected by this option are not subject to being filtered by +.Fl X . .It Fl r Sort by current CPU usage, instead of the combination of controlling terminal and process ID. @@ -253,8 +365,15 @@ devices. Full pathnames, as well as abbreviations (see explanation of the .Cm tt keyword) can be specified. +Implies +.Fl x +by default. .It Fl U -Display the processes belonging to the specified usernames. +Display information about processes whose effective user ID matches the +specified user IDs or names. +Implies +.Fl x +by default. .It Fl u Display information associated with the following keywords: .Cm user , pid , %cpu , %mem , vsz , rss , tt , state , start , time , @@ -277,282 +396,51 @@ option implies the .Fl m option. .It Fl w -Use at least 132 columns to display information, instead of the default which -is the window size if -.Nm -is associated with a terminal. -If the +Use at least 131 columns to display information. +If .Fl w -option is specified more than once, +is specified more than once, .Nm -will use as many columns as necessary without regard for the window size. -Note that this option has no effect if the -.Dq command -column is not the last column displayed. +will use as many columns as necessary. +Please see the preamble of this manual page for how the output width is +initially determined. +In particular, if the initial output width is unlimited, specifying +.Fl w +has no effect. +Please also consult the +.Sx BUGS +section. .It Fl X -When displaying processes matched by other options, skip any processes -which do not have a controlling terminal. -This is the default behaviour. +When displaying processes selected by other options, skip any processes which do +not have a controlling terminal, except for those selected through +.Fl p . +This is the default behaviour, unless using another option whose description +explicitly says that +.Fl x +is implied. .It Fl x -When displaying processes matched by other options, include processes -which do not have a controlling terminal. -This is the opposite of the -.Fl X -option. +When displaying processes selected by other options, include processes which do +not have a controlling terminal. +This option has the opposite behavior to that of +.Fl X . If both .Fl X and .Fl x -are specified in the same command, then +are specified, .Nm -will use the one which was specified last. +will obey the last occurence. .It Fl Z Add -.Xr mac 4 -label to the list of keywords for which -.Nm -will display information. -.El -.Pp -A complete list of the available keywords are listed below. -Some of these keywords are further specified as follows: -.Bl -tag -width lockname -.It Cm %cpu -The CPU utilization of the process; this is a decaying average over up to -a minute of previous (real) time. -Since the time base over which this is computed varies (since processes may -be very young) it is possible for the sum of all -.Cm %cpu -fields to exceed 100%. -.It Cm %mem -The percentage of real memory used by this process. -.It Cm class -Login class associated with the process. -.It Cm flags -The flags associated with the process as in -the include file -.In sys/proc.h : -.Bl -column P_SINGLE_BOUNDARY 0x40000000 -.It Dv "P_ADVLOCK" Ta No "0x00000001" Ta "Process may hold a POSIX advisory lock" -.It Dv "P_CONTROLT" Ta No "0x00000002" Ta "Has a controlling terminal" -.It Dv "P_KPROC" Ta No "0x00000004" Ta "Kernel process" -.It Dv "P_PPWAIT" Ta No "0x00000010" Ta "Parent is waiting for child to exec/exit" -.It Dv "P_PROFIL" Ta No "0x00000020" Ta "Has started profiling" -.It Dv "P_STOPPROF" Ta No "0x00000040" Ta "Has thread in requesting to stop prof" -.It Dv "P_HADTHREADS" Ta No "0x00000080" Ta "Has had threads (no cleanup shortcuts)" -.It Dv "P_SUGID" Ta No "0x00000100" Ta "Had set id privileges since last exec" -.It Dv "P_SYSTEM" Ta No "0x00000200" Ta "System proc: no sigs, stats or swapping" -.It Dv "P_SINGLE_EXIT" Ta No "0x00000400" Ta "Threads suspending should exit, not wait" -.It Dv "P_TRACED" Ta No "0x00000800" Ta "Debugged process being traced" -.It Dv "P_WAITED" Ta No "0x00001000" Ta "Someone is waiting for us" -.It Dv "P_WEXIT" Ta No "0x00002000" Ta "Working on exiting" -.It Dv "P_EXEC" Ta No "0x00004000" Ta "Process called exec" -.It Dv "P_WKILLED" Ta No "0x00008000" Ta "Killed, shall go to kernel/user boundary ASAP" -.It Dv "P_CONTINUED" Ta No "0x00010000" Ta "Proc has continued from a stopped state" -.It Dv "P_STOPPED_SIG" Ta No "0x00020000" Ta "Stopped due to SIGSTOP/SIGTSTP" -.It Dv "P_STOPPED_TRACE" Ta No "0x00040000" Ta "Stopped because of tracing" -.It Dv "P_STOPPED_SINGLE" Ta No "0x00080000" Ta "Only one thread can continue" -.It Dv "P_PROTECTED" Ta No "0x00100000" Ta "Do not kill on memory overcommit" -.It Dv "P_SIGEVENT" Ta No "0x00200000" Ta "Process pending signals changed" -.It Dv "P_SINGLE_BOUNDARY" Ta No "0x00400000" Ta "Threads should suspend at user boundary" -.It Dv "P_HWPMC" Ta No "0x00800000" Ta "Process is using HWPMCs" -.It Dv "P_JAILED" Ta No "0x01000000" Ta "Process is in jail" -.It Dv "P_TOTAL_STOP" Ta No "0x02000000" Ta "Stopped for system suspend" -.It Dv "P_INEXEC" Ta No "0x04000000" Ta Process is in Xr execve 2 -.It Dv "P_STATCHILD" Ta No "0x08000000" Ta "Child process stopped or exited" -.It Dv "P_INMEM" Ta No "0x10000000" Ta "Loaded into memory" -.It Dv "P_SWAPPINGOUT" Ta No "0x20000000" Ta "Process is being swapped out" -.It Dv "P_SWAPPINGIN" Ta No "0x40000000" Ta "Process is being swapped in" -.It Dv "P_PPTRACE" Ta No "0x80000000" Ta "Vforked child issued ptrace(PT_TRACEME)" -.El -.It Cm flags2 -The flags kept in -.Va p_flag2 -associated with the process as in -the include file -.In sys/proc.h : -.Bl -column P2_INHERIT_PROTECTED 0x00000001 -.It Dv "P2_INHERIT_PROTECTED" Ta No "0x00000001" Ta "New children get P_PROTECTED" -.It Dv "P2_NOTRACE" Ta No "0x00000002" Ta "No" Xr ptrace 2 attach or coredumps -.It Dv "P2_NOTRACE_EXEC" Ta No "0x00000004" Ta Keep P2_NOPTRACE on Xr execve 2 -.It Dv "P2_AST_SU" Ta No "0x00000008" Ta "Handles SU ast for kthreads" -.It Dv "P2_PTRACE_FSTP" Ta No "0x00000010" Ta "SIGSTOP from PT_ATTACH not yet handled" -.It Dv "P2_TRAPCAP" Ta No "0x00000020" Ta "SIGTRAP on ENOTCAPABLE" -.It Dv "P2_ASLR_ENABLE" Ta No "0x00000040" Ta "Force enable ASLR" -.It Dv "P2_ASLR_DISABLE" Ta No "0x00000080" Ta "Force disable ASLR" -.It Dv "P2_ASLR_IGNSTART" Ta No "0x00000100" Ta "Enable ASLR to consume sbrk area" -.It Dv "P2_PROTMAX_ENABLE" Ta No "0x00000200" Ta "Force enable implied PROT_MAX" -.It Dv "P2_PROTMAX_DISABLE" Ta No "0x00000400" Ta "Force disable implied PROT_MAX" -.It Dv "P2_STKGAP_DISABLE" Ta No "0x00000800" Ta "Disable stack gap for MAP_STACK" -.It Dv "P2_STKGAP_DISABLE_EXEC" Ta No "0x00001000" Ta "Stack gap disabled after exec" -.It Dv "P2_ITSTOPPED" Ta No "0x00002000" Ta "itimers stopped (as part of process stop)" -.It Dv "P2_PTRACEREQ" Ta No "0x00004000" Ta "Active ptrace req" -.It Dv "P2_NO_NEW_PRIVS" Ta No "0x00008000" Ta "Ignore setuid on exec" -.It Dv "P2_WXORX_DISABLE" Ta No "0x00010000" Ta "WX mappings enabled" -.It Dv "P2_WXORX_ENABLE_EXEC" Ta No "0x00020000" Ta "WxorX enabled after exec" -.It Dv "P2_WEXIT" Ta No "0x00040000" Ta "Internal exit early state" -.It Dv "P2_REAPKILLED" Ta No "0x00080000" Ta "REAP_KILL pass handled the process" -.It Dv "P2_MEMBAR_PRIVE" Ta No "0x00100000" Ta "membarrier private expedited registered" -.It Dv "P2_MEMBAR_PRIVE_SYNCORE" Ta No "0x00200000" Ta "membarrier private expedited sync core registered" -.It Dv "P2_MEMBAR_GLOBE" Ta No "0x00400000" Ta "membar global expedited registered" -.El -.It Cm label -The MAC label of the process. -.It Cm lim -The soft limit on memory used, specified via a call to -.Xr setrlimit 2 . -.It Cm lstart -The exact time the command started, using the -.Ql %c -format described in -.Xr strftime 3 . -.It Cm lockname -The name of the lock that the process is currently blocked on. -If the name is invalid or unknown, then -.Dq ???\& -is displayed. -.It Cm logname -The login name associated with the session the process is in (see -.Xr getlogin 2 ) . -.It Cm mwchan -The event name if the process is blocked normally, or the lock name if -the process is blocked on a lock. -See the wchan and lockname keywords -for details. -.It Cm nice -The process scheduling increment (see -.Xr setpriority 2 ) . -.It Cm rss -the real memory (resident set) size of the process in KiB. -.It Cm start -The time the command started. -If the command started less than 24 hours ago, the start time is -displayed using the -.Dq Li %H:%M -format described in -.Xr strftime 3 . -If the command started less than 7 days ago, the start time is -displayed using the -.Dq Li %a%H -format. -Otherwise, the start time is displayed using the -.Dq Li %e%b%y -format. -.It Cm state -The state is given by a sequence of characters, for example, -.Dq Li RWNA . -The first character indicates the run state of the process: -.Pp -.Bl -tag -width indent -compact -.It Li D -Marks a process in disk (or other short term, uninterruptible) wait. -.It Li I -Marks a process that is idle (sleeping for longer than about 20 seconds). -.It Li L -Marks a process that is waiting to acquire a lock. -.It Li R -Marks a runnable process. -.It Li S -Marks a process that is sleeping for less than about 20 seconds. -.It Li T -Marks a stopped process. -.It Li W -Marks an idle interrupt thread. -.It Li Z -Marks a dead process (a -.Dq zombie ) . -.El -.Pp -Additional characters after these, if any, indicate additional state -information: -.Pp -.Bl -tag -width indent -compact -.It Li + -The process is in the foreground process group of its control terminal. -.It Li < -The process has raised CPU scheduling priority. -.It Li C -The process is in -.Xr capsicum 4 -capability mode. -.It Li E -The process is trying to exit. -.It Li J -Marks a process which is in -.Xr jail 2 . -The hostname of the prison can be found in -.Pa /proc/ Ns Ao Ar pid Ac Ns Pa /status . -.It Li L -The process has pages locked in core (for example, for raw I/O). -.It Li N -The process has reduced CPU scheduling priority (see -.Xr setpriority 2 ) . -.It Li s -The process is a session leader. -.It Li V -The process' parent is suspended during a -.Xr vfork 2 , -waiting for the process to exec or exit. -.It Li W -The process is swapped out. -.It Li X -The process is being traced or debugged. -.El -.It Cm tt -An abbreviation for the pathname of the controlling terminal, if any. -The abbreviation consists of the three letters following -.Pa /dev/tty , -or, for pseudo-terminals, the corresponding entry in -.Pa /dev/pts . -This is followed by a -.Ql - -if the process can no longer reach that -controlling terminal (i.e., it has been revoked). -A -.Ql - -without a preceding two letter abbreviation or pseudo-terminal device number -indicates a process which never had a controlling terminal. -The full pathname of the controlling terminal is available via the -.Cm tty -keyword. -.It Cm wchan -The event (an address in the system) on which a process waits. -When printed numerically, the initial part of the address is -trimmed off and the result is printed in hex, for example, 0x80324000 prints -as 324000. -.El -.Pp -When printing using the command keyword, a process that has exited and -has a parent that has not yet waited for the process (in other words, a zombie) -is listed as -.Dq Li , -and a process which is blocked while trying -to exit is listed as -.Dq Li . -If the arguments cannot be located (usually because it has not been set, as is -the case of system processes and/or kernel threads) the command name is printed -within square brackets. -The -.Nm -utility first tries to obtain the arguments cached by the kernel (if they were -shorter than the value of the -.Va kern.ps_arg_cache_limit -sysctl). -The process can change the arguments shown with -.Xr setproctitle 3 . -Otherwise, +.Xr mac 4 +label to the list of keywords for which .Nm -makes an educated guess as to the file name and arguments given when the -process was created by examining memory or the swap area. -The method is inherently somewhat unreliable and in any event a process -is entitled to destroy this information. -The ucomm (accounting) keyword can, however, be depended on. -If the arguments are unavailable or do not agree with the ucomm keyword, -the value for the ucomm keyword is appended to the arguments in parentheses. +will display information. +.El .Sh KEYWORDS -The following is a complete list of the available keywords and their -meanings. +The following is a complete list of the available keywords and their meanings. Several of them have aliases (keywords which are synonyms). +Detailed descriptions for some of them can be found after this list. .Pp .Bl -tag -width ".Cm sigignore" -compact .It Cm %cpu @@ -738,7 +626,7 @@ control terminal name (two letter abbreviation) .It Cm tty full name of control terminal .It Cm ucomm -name to be used for accounting +process name used for accounting .It Cm uid effective user ID (alias .Cm euid ) @@ -762,21 +650,262 @@ wait channel (as a symbolic name) exit or stop status (valid only for stopped or zombie process) .El .Pp -Note that the -.Cm pending -column displays bitmask of signals pending in the process queue when +Some of these keywords are further specified as follows: +.Bl -tag -width lockname +.It Cm %cpu +The CPU utilization of the process; this is a decaying average over up to +a minute of previous (real) time. +Since the time base over which this is computed varies (since processes may +be very young) it is possible for the sum of all +.Cm %cpu +fields to exceed 100%. +.It Cm %mem +The percentage of real memory used by this process. +.It Cm class +Login class associated with the process. +.It Cm command +The printed command and arguments are determined as follows. +A process that has exited and has a parent that has not yet waited for the +process (in other words, a zombie) is listed as +.Dq Li . +If the arguments cannot be located +.Po +usually because they have not been set, as is the case for system processes +and/or kernel threads +.Pc , +the command name is printed within square brackets. +The +.Nm +utility first tries to obtain the arguments cached by the kernel +.Po +if they were shorter than the value of the +.Va kern.ps_arg_cache_limit +sysctl +.Pc . +The process can change the arguments shown with +.Xr setproctitle 3 . +Otherwise, +.Nm +makes an educated guess as to the file name and arguments given when the +process was created by examining memory or the swap area. +The method is inherently somewhat unreliable and in any event a process +is entitled to destroy this information. +The +.Cm ucomm +keyword +.Pq accounting +can, however, be depended on. +If the arguments are unavailable or do not agree with the +.Cm ucomm +keyword, the value for the +.Cm ucomm +keyword is appended to the arguments in parentheses. +.It Cm flags +The flags associated with the process as in +the include file +.In sys/proc.h : +.Bl -column P_SINGLE_BOUNDARY 0x40000000 +.It Dv "P_ADVLOCK" Ta No "0x00000001" Ta "Process may hold a POSIX advisory lock" +.It Dv "P_CONTROLT" Ta No "0x00000002" Ta "Has a controlling terminal" +.It Dv "P_KPROC" Ta No "0x00000004" Ta "Kernel process" +.It Dv "P_PPWAIT" Ta No "0x00000010" Ta "Parent is waiting for child to exec/exit" +.It Dv "P_PROFIL" Ta No "0x00000020" Ta "Has started profiling" +.It Dv "P_STOPPROF" Ta No "0x00000040" Ta "Has thread in requesting to stop prof" +.It Dv "P_HADTHREADS" Ta No "0x00000080" Ta "Has had threads (no cleanup shortcuts)" +.It Dv "P_SUGID" Ta No "0x00000100" Ta "Had set id privileges since last exec" +.It Dv "P_SYSTEM" Ta No "0x00000200" Ta "System proc: no sigs, stats or swapping" +.It Dv "P_SINGLE_EXIT" Ta No "0x00000400" Ta "Threads suspending should exit, not wait" +.It Dv "P_TRACED" Ta No "0x00000800" Ta "Debugged process being traced" +.It Dv "P_WAITED" Ta No "0x00001000" Ta "Someone is waiting for us" +.It Dv "P_WEXIT" Ta No "0x00002000" Ta "Working on exiting" +.It Dv "P_EXEC" Ta No "0x00004000" Ta "Process called exec" +.It Dv "P_WKILLED" Ta No "0x00008000" Ta "Killed, shall go to kernel/user boundary ASAP" +.It Dv "P_CONTINUED" Ta No "0x00010000" Ta "Proc has continued from a stopped state" +.It Dv "P_STOPPED_SIG" Ta No "0x00020000" Ta "Stopped due to SIGSTOP/SIGTSTP" +.It Dv "P_STOPPED_TRACE" Ta No "0x00040000" Ta "Stopped because of tracing" +.It Dv "P_STOPPED_SINGLE" Ta No "0x00080000" Ta "Only one thread can continue" +.It Dv "P_PROTECTED" Ta No "0x00100000" Ta "Do not kill on memory overcommit" +.It Dv "P_SIGEVENT" Ta No "0x00200000" Ta "Process pending signals changed" +.It Dv "P_SINGLE_BOUNDARY" Ta No "0x00400000" Ta "Threads should suspend at user boundary" +.It Dv "P_HWPMC" Ta No "0x00800000" Ta "Process is using HWPMCs" +.It Dv "P_JAILED" Ta No "0x01000000" Ta "Process is in jail" +.It Dv "P_TOTAL_STOP" Ta No "0x02000000" Ta "Stopped for system suspend" +.It Dv "P_INEXEC" Ta No "0x04000000" Ta Process is in Xr execve 2 +.It Dv "P_STATCHILD" Ta No "0x08000000" Ta "Child process stopped or exited" +.It Dv "P_INMEM" Ta No "0x10000000" Ta "Loaded into memory" +.It Dv "P_SWAPPINGOUT" Ta No "0x20000000" Ta "Process is being swapped out" +.It Dv "P_SWAPPINGIN" Ta No "0x40000000" Ta "Process is being swapped in" +.It Dv "P_PPTRACE" Ta No "0x80000000" Ta "Vforked child issued ptrace(PT_TRACEME)" +.El +.It Cm flags2 +The flags kept in +.Va p_flag2 +associated with the process as in +the include file +.In sys/proc.h : +.Bl -column P2_INHERIT_PROTECTED 0x00000001 +.It Dv "P2_INHERIT_PROTECTED" Ta No "0x00000001" Ta "New children get P_PROTECTED" +.It Dv "P2_NOTRACE" Ta No "0x00000002" Ta "No" Xr ptrace 2 attach or coredumps +.It Dv "P2_NOTRACE_EXEC" Ta No "0x00000004" Ta Keep P2_NOPTRACE on Xr execve 2 +.It Dv "P2_AST_SU" Ta No "0x00000008" Ta "Handles SU ast for kthreads" +.It Dv "P2_PTRACE_FSTP" Ta No "0x00000010" Ta "SIGSTOP from PT_ATTACH not yet handled" +.It Dv "P2_TRAPCAP" Ta No "0x00000020" Ta "SIGTRAP on ENOTCAPABLE" +.It Dv "P2_ASLR_ENABLE" Ta No "0x00000040" Ta "Force enable ASLR" +.It Dv "P2_ASLR_DISABLE" Ta No "0x00000080" Ta "Force disable ASLR" +.It Dv "P2_ASLR_IGNSTART" Ta No "0x00000100" Ta "Enable ASLR to consume sbrk area" +.It Dv "P2_PROTMAX_ENABLE" Ta No "0x00000200" Ta "Force enable implied PROT_MAX" +.It Dv "P2_PROTMAX_DISABLE" Ta No "0x00000400" Ta "Force disable implied PROT_MAX" +.It Dv "P2_STKGAP_DISABLE" Ta No "0x00000800" Ta "Disable stack gap for MAP_STACK" +.It Dv "P2_STKGAP_DISABLE_EXEC" Ta No "0x00001000" Ta "Stack gap disabled after exec" +.It Dv "P2_ITSTOPPED" Ta No "0x00002000" Ta "itimers stopped (as part of process stop)" +.It Dv "P2_PTRACEREQ" Ta No "0x00004000" Ta "Active ptrace req" +.It Dv "P2_NO_NEW_PRIVS" Ta No "0x00008000" Ta "Ignore setuid on exec" +.It Dv "P2_WXORX_DISABLE" Ta No "0x00010000" Ta "WX mappings enabled" +.It Dv "P2_WXORX_ENABLE_EXEC" Ta No "0x00020000" Ta "WxorX enabled after exec" +.It Dv "P2_WEXIT" Ta No "0x00040000" Ta "Internal exit early state" +.It Dv "P2_REAPKILLED" Ta No "0x00080000" Ta "REAP_KILL pass handled the process" +.It Dv "P2_MEMBAR_PRIVE" Ta No "0x00100000" Ta "membarrier private expedited registered" +.It Dv "P2_MEMBAR_PRIVE_SYNCORE" Ta No "0x00200000" Ta "membarrier private expedited sync core registered" +.It Dv "P2_MEMBAR_GLOBE" Ta No "0x00400000" Ta "membar global expedited registered" +.El +.It Cm label +The MAC label of the process. +.It Cm lim +The soft limit on memory used, specified via a call to +.Xr setrlimit 2 . +.It Cm lstart +The exact time the command started, using the +.Ql %c +format described in +.Xr strftime 3 . +.It Cm lockname +The name of the lock that the process is currently blocked on. +If the name is invalid or unknown, then +.Dq ???\& +is displayed. +.It Cm logname +The login name associated with the session the process is in (see +.Xr getlogin 2 ) . +.It Cm mwchan +The event name if the process is blocked normally, or the lock name if +the process is blocked on a lock. +See the wchan and lockname keywords +for details. +.It Cm nice +The process scheduling increment (see +.Xr setpriority 2 ) . +.It Cm rss +the real memory (resident set) size of the process in KiB. +.It Cm start +The time the command started. +If the command started less than 24 hours ago, the start time is +displayed using the +.Dq Li %H:%M +format described in +.Xr strftime 3 . +If the command started less than 7 days ago, the start time is +displayed using the +.Dq Li %a%H +format. +Otherwise, the start time is displayed using the +.Dq Li %e%b%y +format. +.It Cm sig +The bitmask of signals pending in the process queue if the .Fl H -option is not specified, otherwise the per-thread queue of pending signals -is shown. +option has not been specified, else the per-thread queue of pending signals. +.It Cm state +The state is given by a sequence of characters, for example, +.Dq Li RWNA . +The first character indicates the run state of the process: +.Pp +.Bl -tag -width indent -compact +.It Li D +Marks a process in disk (or other short term, uninterruptible) wait. +.It Li I +Marks a process that is idle (sleeping for longer than about 20 seconds). +.It Li L +Marks a process that is waiting to acquire a lock. +.It Li R +Marks a runnable process. +.It Li S +Marks a process that is sleeping for less than about 20 seconds. +.It Li T +Marks a stopped process. +.It Li W +Marks an idle interrupt thread. +.It Li Z +Marks a dead process (a +.Dq zombie ) . +.El +.Pp +Additional characters after these, if any, indicate additional state +information: +.Pp +.Bl -tag -width indent -compact +.It Li + +The process is in the foreground process group of its control terminal. +.It Li < +The process has raised CPU scheduling priority. +.It Li C +The process is in *** 201 LINES SKIPPED *** From nobody Thu May 1 19:51:29 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnZ0qTTz5vf1M; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnY40ryz46Lc; Thu, 01 May 2025 19:51:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129089; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FneX8FtVTrlbayoW4wZfg09YFVRSooJzNgyG+b23vxQ=; b=Mp+YNWXeL2A/5omMrN8j7UTvLnO4WZri7x9xsLjcp0vorSviFOruyOd12KI2Hta+zLIyhn pnMqFoVBR2nIOBVzI2hW74QHysU5ZzaNIbDL6mJ1OLskHBtD2SmZUENeCI04zXva9yCU81 eGNFJJDbqkT0Db0nHqsIXd2TmsCfv8pNzQnTJD4mhsnE1k/+ep9jgEIPAYPj/r/mmotVq3 3PS5UvJohXoVlXs3eYTp6R3mPLDMSI9L2VtLK1YC2BZqEShWdCbT/YUbfj73b76ZZaE7zY qUVcUEKO5O1dlc0XQ9UJAfJCyebru6D6di6qB9AIWODLTktNgV1UuYLzzibnJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129089; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FneX8FtVTrlbayoW4wZfg09YFVRSooJzNgyG+b23vxQ=; b=jqObltBV6KWKYeulU/D/tDEbYnT3o8qptkBiLfnl0MupXixcAy0l/pWUqvcSjEFW5RE+7M Asd/9/ForWTNHDecu/XyfLvMGua29yUkeBkBuUHuWB5oKj/YTksCJoasrF7e4LX8F9DzWh 3fsm4giprIr/QvYk7t32LrDceB0W/PEVInIo+NeStq8SJ/EsL0HAnEM8aM7x2BBkYqN+QO gE6bLoxSBi66bWQG0RcDyjABWA55rEXBqaHdCmOhk3wy3nxEhsseIAxCmapSDCs+W40i5Z YaxyW5Mm9zczq0Kfaq78I8+CLxqnLw0A6vTkeVFuklqvaCQQ8LBmG/s9zYAFtA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129089; a=rsa-sha256; cv=none; b=awhSL3CTdXtuAHVaghSyOYxsLBFni6Wk8e/VXuz4V4AOISn4XzCadVyp4kaunf1Np/1brF z6vizKGwcD6PbNKvB92mIUi+iWJ7OUi0DCBFxKNdbsCG5ddlFcKMt/CrTlIRHWj3y/scD3 yQTwZJeHxnBjRWtWYPtmBc0C9VAk5DJPdic/7+dZUGSxQstD0mtCSSHpk2zWcLFvsXRWqJ nISBPAzFXbE/KuP9i4dV26wvLDOApF/oEDpOdOh8YEsKUAFLuMKBGwQFKNVxaW2VoebuiD VGARs6q0JpQ4dOJRakkjGmygFsVYuF81y11rg8nwwWUGEbStgc0XQf8BQtgl+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnY3FHxzj9V; Thu, 01 May 2025 19:51:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpT4C067209; Thu, 1 May 2025 19:51:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpTUF067206; Thu, 1 May 2025 19:51:29 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:29 GMT Message-Id: <202505011951.541JpTUF067206@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 57ed17ed2cbf - stable/14 - ps(1): Remove internal documentation for '-A' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 57ed17ed2cbf2518c123720758f8764057ac79df Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=57ed17ed2cbf2518c123720758f8764057ac79df commit 57ed17ed2cbf2518c123720758f8764057ac79df Author: Olivier Certner AuthorDate: 2025-03-14 21:46:25 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:02 +0000 ps(1): Remove internal documentation for '-A' Now that it is officially documented in the manual page. Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49606 (cherry picked from commit 8a3e58ed618109e7af16c54affb1d5f98e5feb27) --- bin/ps/ps.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index cd934918ee37..0d6365b22b3c 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -247,11 +247,6 @@ main(int argc, char *argv[]) while ((ch = getopt(argc, argv, PS_ARGS)) != -1) switch (ch) { case 'A': - /* - * Exactly the same as `-ax'. This has been - * added for compatibility with SUSv3, but for - * now it will not be described in the man page. - */ all = xkeep = 1; break; case 'a': From nobody Thu May 1 19:51:28 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnY2YqSz5vf2r; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnX2grNz46W1; Thu, 01 May 2025 19:51:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EQ574S4Y3wwucl86/YPoCAmOjoGjlZ/XCga9Q1Xujaw=; b=osiFsbDk48aB0mxpbOAF8VUm6T7RFYBqY0WPh93+VWbDcnEYMcKd+6JLeNyW4joEX+nV7R 0M1+PDKZSf0lLX9m55zpP3sGSavxUcs4FSSvYSLM9XIMfXJoGzX0tt8+laDNwv5sJBRSR2 i+UUayLcSOlCpFebb/tRdr96w7aSHSt4SIh2JcrBzpfZ1NobVevj4ya1C9awfC9gPQ+BLr KlZhxDN9I1WoLUAdMdKj+inbzXjGL3Cr2FkuXa2MSf2dSxHugQ3iYRSWarXnuyuoQSyree rtzTxwz4y0/4mIUD81q1RVNRl7tqYZqWFCv97+tds0EyHaCqvSRlVtUDuyQOBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129088; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EQ574S4Y3wwucl86/YPoCAmOjoGjlZ/XCga9Q1Xujaw=; b=tHBVtfC9pRH+ji1SfEHKXkuOVsbvqPpvlhFKdEy85+Y1huQ5nSuHgVTuxbZPXXLQMExf0J +q9Wp5u6guIElIe7SHGe+eRDhyUTtJLQsVXM9bMxDTV/RL3qL4N+KjeruUVn6rieQdMfEv U6iUl3tFnULb5BaOVOtQvIsLAtw05PDPpy/64ipso/fFqeyqyc2Q4jk7cvviu560ZNcICY Wg2YupA3JsNrd/TvGaIEQWpzxXohPjcL29ApXSthTrGJOoZ6lo0g6E3rmssRRVcXVJBBag NKBjyp89vOa5eyCfDEx70/ZRRiEAlUOkVDCwX2Mb/uRVCXmlMR1NCOZugoDg1A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129088; a=rsa-sha256; cv=none; b=rxoOeqSHjEDO6m4gdwdHPgTyMSTHAyEo7lX9rkrEJsIFStuVPKhORiOmXM9wU5MeTFPLxc lLbI3dBquTO9sI8B/04IEAPAmLIlYjJ7o8/2RCjEzUqfzXL3hixdK49xDIbICRae0CHX5C 4Z12eMgmfa1oAZjeVD63O0S5E42tLJ3l/1JpFxiwZt6CNzm4GahnUa5whwKapMpAQPmv71 E9KH0oCLN7fsXylc0T8vkM2MXLmMyQqPwmL3KU1iWtIeEErZWTboilPAhgkou4gxo0uNDk eZB4PEU5IHSPckgOwimCDk1OxtXFckRKTWPiQF8NyHPhTULDBf7D0QENBTmeFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnX2CyWzhw3; Thu, 01 May 2025 19:51:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpSNM067175; Thu, 1 May 2025 19:51:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpSt5067172; Thu, 1 May 2025 19:51:28 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:28 GMT Message-Id: <202505011951.541JpSt5067172@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: ad94fb48d8bd - stable/14 - ps(1): Whitespace 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ad94fb48d8bda7cfaec68b3c7897594991b474bc Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=ad94fb48d8bda7cfaec68b3c7897594991b474bc commit ad94fb48d8bda7cfaec68b3c7897594991b474bc Author: Olivier Certner AuthorDate: 2025-04-25 18:53:30 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:02 +0000 ps(1): Whitespace cleanup No functional change (intended). MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 0d320eb5edc37f6c1bfa5eabc0309350b87c08ad) --- bin/ps/keyword.c | 2 +- bin/ps/ps.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 4d93cd152f43..7e37217f0219 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -274,7 +274,7 @@ parsefmt(const char *p, int user) /* * If an item contains an equals sign, it specifies a column * header, may contain embedded separator characters and - * is always the last item. + * is always the last item. */ if (tempstr[strcspn(tempstr, "="FMTSEP)] != '=') while ((cp = strsep(&tempstr, FMTSEP)) != NULL && diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 98d95eb08aa7..cd934918ee37 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1343,7 +1343,7 @@ saveuser(KINFO *ki) /* A macro used to improve the readability of pscomp(). */ #define DIFF_RETURN(a, b, field) do { \ if ((a)->field != (b)->field) \ - return (((a)->field < (b)->field) ? -1 : 1); \ + return (((a)->field < (b)->field) ? -1 : 1); \ } while (0) static int From nobody Thu May 1 19:51:31 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnc6vMYz5vfJv; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnb5zgDz46V7; Thu, 01 May 2025 19:51:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G3XIGYGpkQMQspTGe83MIU3s0OljQ4e7OVcduukZQC0=; b=EY7MtOVy7KAvecd1DtnnQx4JOlZoVaXOjov05iJgln4YHmosip8qiKoHOgLaAdqun+W3nI XQmNLYyh9uLFMwk8Qj0nAvZUoYiVo+XaeTnRhMeQqqdWdrcQ5FvUke8S8W5S1C4/K8UjZX 1vbu91O0oiezohaCWTqTquI5BQzyUgVYuzUZoDTeuezTLzrMfjIbZPPwgU5Wq7ge+8MsRL /XC3OkVVJaw9PgDjP6XeFkGT8XjIahYyTHwixp5Qq1zGsqyV+odN7DgFT5SAbnNFjEf77i 3Nks1uvDGhtBzkXwZyuSTxJklXPGV1fgIb4v91iho2so7M3mARkc9vxcHihQcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G3XIGYGpkQMQspTGe83MIU3s0OljQ4e7OVcduukZQC0=; b=oSQiBaMuyDwZeV8PrYMUk0tgXTyMoeFNKMUGaNhHT0TOiCs/jH1Cm+7VJ84cmmhiAYf3sz 1FR6WSq16k3XOsiLPG8WaQlOZBTQ4+CgspZcIZ/W/lPlTxaD9+2ci6V/Nk8kh4nxughf+W vDiI8SmIuayGTfhx2orxCPbLvQ0bcCniOI4F+Pf8YR/9Y7JAO9e9h6o7okWuaCoK4ZV3lq HlnWj2XjirFkkVvnMz8ZQWQCY60d5K78n93+MJ91cSrI7wrkiCcjpwNaTV4XKkBU0mAoap 5LtrE31QemtsQjnFKFgyhq8XoNUvpmQ1jFKq5oN+5a5Y0eBZ3L7EHEZ6+QhnPw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129091; a=rsa-sha256; cv=none; b=D2T4wVk9Uz2YmhoqszXGjFJtFHesrotLM93xHEl1Xa90yoOQRiOZBLDdWpk/dbbLTHAeMv xGCvLB3yFg/chbSUKtIHReyEGj3qPj7TlgxWcf63/hlLv4LDLe2y5B+UgtFuDKpCFwyefI PWbvuhZ/11X7XEU6vo1hOj6FcBBUSc6ktkYETmBR7C+ung+pT1ORMVRkzABPBseD2r2uV/ rTyUaQYB93SNVwmxsheTdkE6KvD4wSRragoqdkgDUrdSTRWU8qDvIflH9atX7ParhQ4J6M vGyGA0bOf8/BVN+nNCbGs+qt3mcqVl/2cjqVZtTbIiZE+mbcUn4KcDcsKEfABQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnb5Q1VzjBx; Thu, 01 May 2025 19:51:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpVUM067279; Thu, 1 May 2025 19:51:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpVOh067276; Thu, 1 May 2025 19:51:31 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:31 GMT Message-Id: <202505011951.541JpVOh067276@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 2a9ebb5da226 - stable/14 - ps(1): find_varentry() to take a name instead of a VAR List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2a9ebb5da2263958474b75187895520627b37335 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=2a9ebb5da2263958474b75187895520627b37335 commit 2a9ebb5da2263958474b75187895520627b37335 Author: Olivier Certner AuthorDate: 2025-02-28 09:25:31 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:02 +0000 ps(1): find_varentry() to take a name instead of a VAR The only information that find_varentry() needs and uses is a keyword/var name. The rest of the fields in the passed VAR are unused. Changing its signature will ease introducing new calls to find_varentry() in subsequent commits, as there no VAR object will exist to be passed but just a name. Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49609 (cherry picked from commit c1e5a7fdad631458768fc45a82b4d43bade8d0c8) --- bin/ps/extern.h | 2 +- bin/ps/keyword.c | 2 +- bin/ps/ps.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 45485c77732e..94140f26d435 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -52,7 +52,7 @@ int donlist(void); char *elapsed(KINFO *, VARENT *); char *elapseds(KINFO *, VARENT *); char *emulname(KINFO *, VARENT *); -VARENT *find_varentry(VAR *); +VARENT *find_varentry(const char *); const char *fmt_argv(char **, char *, char *, size_t); double getpcpu(const KINFO *); char *jailname(KINFO *, VARENT *); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 9b733e0416ba..21330ed9e2ac 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -293,7 +293,7 @@ parsefmt(const char *p, struct velisthead *const var_list, * get on with our lives if this VAR is already * represented in the list. */ - vent = find_varentry(v); + vent = find_varentry(v->name); if (vent != NULL) continue; } diff --git a/bin/ps/ps.c b/bin/ps/ps.c index deb24c4785cb..14dea797a7f7 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1205,12 +1205,12 @@ init_list(struct listinfo *inf, addelem_rtn artn, int elemsize, } VARENT * -find_varentry(VAR *v) +find_varentry(const char *name) { struct varent *vent; STAILQ_FOREACH(vent, &varlist, next_ve) { - if (strcmp(vent->var->name, v->name) == 0) + if (strcmp(vent->var->name, name) == 0) return vent; } return NULL; From nobody Thu May 1 19:51:30 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnb6W9Nz5vfBp; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnZ4dGCz46Jd; Thu, 01 May 2025 19:51:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129090; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PVfWFu7iaXGt7HVezjbdga4TBdZW7JtyyNs0FWl1dUU=; b=MLdkrGE2rhp62VHsQlVB7TEm6R+VhFjyhjHI/9gc3BaFSX6nhnRx9OBqXUHcc/2YczzKhU DxWmPzrtprBjQ3sV5T7CUpAQTu6VVEb/8u14n/S2gvvz7mKcUyle33O2j19/DNhGEQQxhD r/fyEtebqkAflZETwuUWklwbTamxHcx54Uw6nlNOR0tRze/FG6f7PB6YJuu1nM7fsmswqN glUzQC6gfprtyOp+cYx2hCNPSoZWleD/QDJTXpcstXcxUqpjaW4Be0qUyWczP9XQBqBlSq fcT3/hx+FHV6mN0cGRwn6uh+roejApzu3qWsFIjg4emmevQdCHXcbA+w0qEyZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129090; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PVfWFu7iaXGt7HVezjbdga4TBdZW7JtyyNs0FWl1dUU=; b=yU8vWWZ7RVOVmNUdFu1FINHdxWPwhCSTDVZJ7JCe8WCCrlsZqAE5mslquCsWO3e83XGPf9 xkZ+lE+RF4CNrTuVfeMlTOf8ZzJb+nqzNGZY7uETbjI9dk8FC3XA3fbrrpQQmKJ21ZGNOD /WMXrt4SEzGVMbK6GXqPoNRcY1fqFmNzZ9M8Jk+TJESWPaUXJ9qolA3+7yuthUZrcloYd/ 1oFBw9ZtobisEL1g8lKMgG1oiyUMLQ2kjIiXZjhNAcFXuQ5oYOAOedQn2aHjBOQn7oZYF8 O8fiwkLh0gU9rn9avqGb7BAkNwPKWhD9JkMM0jEu6L9v1PYOz8wO2392OoP8Vg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129090; a=rsa-sha256; cv=none; b=c0JjwBu9WOB+MpYajSI9DoftxDcEkh6g3cBCCx5v70I7j7nPV/xF+S6CH3P2NspUDoQjC4 xgoypySc0Lj5ekv7QJarwE4BnqHRqT+0rGhSs0b+97JzpKLlGe+R6pqlfgRaNimoIUiZSh omquIb4/CxlIRUM1eZOm5ifkmcPxpVK/Gk6GpmljQzk17Qf5t3uKH51ssoxiL1xfSc+pMM CdbcIp98wreGvUM+lHcfkMAHGXZJMbidLuhQ8aGYHVPduNxXcoj1jGzG6tZRXFId6YlpuW r2guGXbZ4qSXutuBWXi6n3Bo+sNrnjO8sIERzLzbdffDOn2nOnoHLC1o4iZveQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnZ48l1zhjJ; Thu, 01 May 2025 19:51:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpUrF067242; Thu, 1 May 2025 19:51:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpUug067239; Thu, 1 May 2025 19:51:30 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:30 GMT Message-Id: <202505011951.541JpUug067239@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: b90923b63bf3 - stable/14 - ps(1): Have parsefmt() take the list of columns to update List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b90923b63bf3fc6827ddcf555a722fc0da959c5a Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=b90923b63bf3fc6827ddcf555a722fc0da959c5a commit b90923b63bf3fc6827ddcf555a722fc0da959c5a Author: Olivier Certner AuthorDate: 2025-02-27 17:15:14 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:02 +0000 ps(1): Have parsefmt() take the list of columns to update This is in preparation for changing the behavior of the '-O' option. While here, reformat the definition of 'struct varent', fix formatting of that of 'struct var' and expand slightly their herald comments. More reformatting/commenting in 'ps.h'. No functional change intended. Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49607 (cherry picked from commit 07a7557addc03acd28aaae55b90419c4ef9d9ad1) --- bin/ps/extern.h | 4 ++-- bin/ps/keyword.c | 17 +++++++++-------- bin/ps/ps.c | 20 ++++++++++---------- bin/ps/ps.h | 12 +++++++----- 4 files changed, 28 insertions(+), 25 deletions(-) diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 6b07a79fbc20..45485c77732e 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -41,7 +41,7 @@ extern int cflag, eval, fscale, nlistread, rawcpu; extern unsigned long mempages; extern time_t now; extern int showthreads, sumrusage, termwidth; -extern STAILQ_HEAD(velisthead, varent) varlist; +extern struct velisthead varlist; __BEGIN_DECLS char *arguments(KINFO *, VARENT *); @@ -67,7 +67,7 @@ char *lockname(KINFO *, VARENT *); char *mwchan(KINFO *, VARENT *); char *nwchan(KINFO *, VARENT *); char *pagein(KINFO *, VARENT *); -void parsefmt(const char *, int); +void parsefmt(const char *, struct velisthead *, int); char *pcpu(KINFO *, VARENT *); char *pmem(KINFO *, VARENT *); char *pri(KINFO *, VARENT *); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 7e37217f0219..9b733e0416ba 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -50,7 +50,7 @@ static char sccsid[] = "@(#)keyword.c 8.5 (Berkeley) 4/2/94"; #include "ps.h" -static VAR *findvar(char *, int, char **header); +static VAR *findvar(char *, struct velisthead *, int, char **header); static int vcmp(const void *, const void *); /* Compute offset in common structures. */ @@ -260,7 +260,8 @@ showkey(void) } void -parsefmt(const char *p, int user) +parsefmt(const char *p, struct velisthead *const var_list, + const int user) { char *tempstr, *tempstr1; @@ -284,7 +285,7 @@ parsefmt(const char *p, int user) cp = tempstr; tempstr = NULL; } - if (cp == NULL || !(v = findvar(cp, user, &hp))) + if (cp == NULL || !(v = findvar(cp, var_list, user, &hp))) continue; if (!user) { /* @@ -308,10 +309,10 @@ parsefmt(const char *p, int user) if (vent->var == NULL) xo_errx(1, "malloc failed"); memcpy(vent->var, v, sizeof(*vent->var)); - STAILQ_INSERT_TAIL(&varlist, vent, next_ve); + STAILQ_INSERT_TAIL(var_list, vent, next_ve); } free(tempstr1); - if (STAILQ_EMPTY(&varlist)) { + if (STAILQ_EMPTY(var_list)) { xo_warnx("no valid keywords; valid keywords:"); showkey(); exit(1); @@ -319,7 +320,7 @@ parsefmt(const char *p, int user) } static VAR * -findvar(char *p, int user, char **header) +findvar(char *p, struct velisthead *const var_list, int user, char **header) { size_t rflen; VAR *v, key; @@ -340,7 +341,7 @@ findvar(char *p, int user, char **header) * process the alias. */ if (hp == NULL) - parsefmt(v->alias, user); + parsefmt(v->alias, var_list, user); else { /* * XXX - This processing will not be correct for @@ -353,7 +354,7 @@ findvar(char *p, int user, char **header) if (realfmt == NULL) xo_errx(1, "malloc failed"); snprintf(realfmt, rflen, "%s=%s", v->alias, hp); - parsefmt(realfmt, user); + parsefmt(realfmt, var_list, user); free(realfmt); } return ((VAR *)NULL); diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 0d6365b22b3c..deb24c4785cb 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -318,7 +318,7 @@ main(int argc, char *argv[]) nselectors++; break; case 'j': - parsefmt(jfmt, 0); + parsefmt(jfmt, &varlist, 0); _fmt = 1; jfmt[0] = '\0'; break; @@ -326,7 +326,7 @@ main(int argc, char *argv[]) showkey(); exit(0); case 'l': - parsefmt(lfmt, 0); + parsefmt(lfmt, &varlist, 0); _fmt = 1; lfmt[0] = '\0'; break; @@ -340,14 +340,14 @@ main(int argc, char *argv[]) nlistf = optarg; break; case 'O': - parsefmt(o1, 1); - parsefmt(optarg, 1); - parsefmt(o2, 1); + parsefmt(o1, &varlist, 1); + parsefmt(optarg, &varlist, 1); + parsefmt(o2, &varlist, 1); o1[0] = o2[0] = '\0'; _fmt = 1; break; case 'o': - parsefmt(optarg, 1); + parsefmt(optarg, &varlist, 1); _fmt = 1; break; case 'p': @@ -409,13 +409,13 @@ main(int argc, char *argv[]) nselectors++; break; case 'u': - parsefmt(ufmt, 0); + parsefmt(ufmt, &varlist, 0); sortby = SORTCPU; _fmt = 1; ufmt[0] = '\0'; break; case 'v': - parsefmt(vfmt, 0); + parsefmt(vfmt, &varlist, 0); sortby = SORTMEM; _fmt = 1; vfmt[0] = '\0'; @@ -445,7 +445,7 @@ main(int argc, char *argv[]) xkeep = 1; break; case 'Z': - parsefmt(Zfmt, 0); + parsefmt(Zfmt, &varlist, 0); Zfmt[0] = '\0'; break; case '?': @@ -479,7 +479,7 @@ main(int argc, char *argv[]) xo_errx(1, "%s", errbuf); if (!_fmt) - parsefmt(dfmt, 0); + parsefmt(dfmt, &varlist, 0); if (!all && nselectors == 0) { uidlist.l.ptr = malloc(sizeof(uid_t)); diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 429dff632872..d21bf016bcca 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -55,13 +55,15 @@ typedef struct kinfo { STAILQ_HEAD(, kinfo_str) ki_ks; } KINFO; -/* Variables. */ +/* Keywords/variables to be printed. */ typedef struct varent { - STAILQ_ENTRY(varent) next_ve; - const char *header; - struct var *var; + STAILQ_ENTRY(varent) next_ve; + const char *header; + struct var *var; } VARENT; +STAILQ_HEAD(velisthead, varent); +/* Structure representing one available keyword. */ typedef struct var { const char *name; /* name(s) of variable */ const char *header; /* default header */ @@ -73,7 +75,7 @@ typedef struct var { #define INF127 0x10 /* values >127 displayed as 127 */ u_int flag; /* output routine */ - char *(*oproc)(struct kinfo *, struct varent *); + char *(*oproc)(struct kinfo *, struct varent *); /* * The following (optional) elements are hooks for passing information * to the generic output routine pvar (which prints simple elements From nobody Thu May 1 19:51:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnd2zLRz5vf2y; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnd02d5z46b1; Thu, 01 May 2025 19:51:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129093; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tRfy0H7bz1JZTQLPDyomX0n7S7u3vFkU2KfmBOmFh94=; b=vbtDcwJs7nMPq+05cdcxQ6/pP+0cqqxj0rEo7cImXhL2+OiUISiiIrccLcvLLi839juOrT kFY7PPhwzPBFNdA39NXgL1AFy6jeSfHQ9HA5WpN8uMUW2drD/cjMUZeWHYO+detbwvfMRr jPvxFJ7HMtQpOV6MtIMKP/Vi0UHQn0du8AvNLSqbxVC9rf3orZ1vnC2E/l7FHoY9uoEmMb vTMK2CprAvZ2VI2ftOU/lPTVawjfy02wgU1RU2ScBmrYDM84NZDK8LglA5QhLlv/hTQgF0 2rw6M2RrjTrMqvZjRwsJjnf6786wDZa/6F+CXyE7WQ9Na/qIatbIs52K92yIvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129093; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tRfy0H7bz1JZTQLPDyomX0n7S7u3vFkU2KfmBOmFh94=; b=TrIdYha04r+uyVTo7YjbdNQEKbzL5jAH8pWC2wesUYB0xdQ6yrtIKtYDHwGD3LRQggHw35 92B52b4YyFJrIMVNKVMSN6CbFB/vcjLjYlkykB51DFPe6xp6opvSj08C1ONEtO6lM96lbG nlzCK6ZblwUPLOs78qtsq/iWueZjp+m7k13K22iiutf6pmpJDLOFDvQ9hbd3fQihMLB+rO /KgnTOnBLR43CqEIaSKgS5LX5XVXzCkFlBM0HJTaIecjyRrTdmLONwP5q7OnnNmXBGVB9G HIZR5mKH044HuNQ6hRBXySpquFBpXhkQSET5YMNPlQDGxXZzOgQZ2KQI3bt1UA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129093; a=rsa-sha256; cv=none; b=WQe7Sqn0hoDY2y5u62/HJuY8zgm4AASF2ahnHYmXj+BzbkbdEPM1SIir8Qg7ixg4dEVWLB DQLECYYO3ofbC05PG9UdJvgM/QAZ51LGWTWudJU30KohyWpE6v/OegR24yusoqA0vMgCtz ctpkCvcQtDsJh0STxqXO5nfZV3qJqsKQcBnk+q90boVYq+106jrI2Bw3HGC14obnSWlQ1n kwdK62atLy3aFdP4I57ZN3uapR7LRdlP0b91TfBcassexG0xOTQ3pdX4dqmYmIzAgcJsEu q1+Bc19DmdQmGvRXIhjCNHQs3E6EiXhPcRMPWXxCUH8e36b1C0BWhrmdz8qT6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnc643lzj18; Thu, 01 May 2025 19:51:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpWKI067313; Thu, 1 May 2025 19:51:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpWEO067310; Thu, 1 May 2025 19:51:32 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:32 GMT Message-Id: <202505011951.541JpWEO067310@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: b1722013af95 - stable/14 - ps(1): Move 'width' field from VAR to VARENT; Remove sizevars() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b1722013af9508b78619dc8aab2324daef22fed6 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=b1722013af9508b78619dc8aab2324daef22fed6 commit b1722013af9508b78619dc8aab2324daef22fed6 Author: Olivier Certner AuthorDate: 2025-02-28 18:30:54 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:03 +0000 ps(1): Move 'width' field from VAR to VARENT; Remove sizevars() Some column's width depends not only on the information displayed but also on the its header, which may have been customized. Consequently, that width is a property of the actual column and should not be attached to the keyword specifying which information to print. This change fixes a bug where multiple columns displaying the same information (same keyword) but with different headers would have the same width, although they should not if they have long enough headers that have different lengths (the width computed from the largest header would be applied to all the corresponding keyword's columns). Remove sizevars(), as the 'width' field is now initialized directly in parsefmt(), which creates the VARENT structures. While here, remove var[]'s sentinel line, and consequently adjust the upper limit in showkey()'s loop and findvar()'s binary search. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49610 (cherry picked from commit 490f251bf90dbfda8043e2d1f4a71dd3a91a8628) --- bin/ps/keyword.c | 238 +++++++++++++++++++++++++++---------------------------- bin/ps/print.c | 4 +- bin/ps/ps.c | 26 +----- bin/ps/ps.h | 3 +- 4 files changed, 126 insertions(+), 145 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 21330ed9e2ac..823018f12ba5 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -64,188 +64,187 @@ static int vcmp(const void *, const void *); /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */ static VAR var[] = { - {"%cpu", "%CPU", NULL, "percent-cpu", 0, pcpu, 0, CHAR, NULL, 0}, - {"%mem", "%MEM", NULL, "percent-memory", 0, pmem, 0, CHAR, NULL, 0}, + {"%cpu", "%CPU", NULL, "percent-cpu", 0, pcpu, 0, CHAR, NULL}, + {"%mem", "%MEM", NULL, "percent-memory", 0, pmem, 0, CHAR, NULL}, {"acflag", "ACFLG", NULL, "accounting-flag", 0, kvar, KOFF(ki_acflag), - USHORT, "x", 0}, - {"acflg", "", "acflag", NULL, 0, NULL, 0, CHAR, NULL, 0}, + USHORT, "x"}, + {"acflg", "", "acflag", NULL, 0, NULL, 0, CHAR, NULL}, {"args", "COMMAND", NULL, "arguments", COMM|LJUST|USER, arguments, 0, - CHAR, NULL, 0}, - {"blocked", "", "sigmask", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"caught", "", "sigcatch", NULL, 0, NULL, 0, CHAR, NULL, 0}, + CHAR, NULL}, + {"blocked", "", "sigmask", NULL, 0, NULL, 0, CHAR, NULL}, + {"caught", "", "sigcatch", NULL, 0, NULL, 0, CHAR, NULL}, {"class", "CLASS", NULL, "login-class", LJUST, loginclass, 0, CHAR, - NULL, 0}, - {"comm", "COMMAND", NULL, "command", LJUST, ucomm, 0, CHAR, NULL, 0}, + NULL}, + {"comm", "COMMAND", NULL, "command", LJUST, ucomm, 0, CHAR, NULL}, {"command", "COMMAND", NULL, "command", COMM|LJUST|USER, command, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"cow", "COW", NULL, "copy-on-write-faults", 0, kvar, KOFF(ki_cow), - UINT, "u", 0}, - {"cpu", "C", NULL, "on-cpu", 0, cpunum, 0, CHAR, NULL, 0}, - {"cputime", "", "time", NULL, 0, NULL, 0, CHAR, NULL, 0}, + UINT, "u"}, + {"cpu", "C", NULL, "on-cpu", 0, cpunum, 0, CHAR, NULL}, + {"cputime", "", "time", NULL, 0, NULL, 0, CHAR, NULL}, {"dsiz", "DSIZ", NULL, "data-size", 0, kvar, KOFF(ki_dsize), PGTOK, - "ld", 0}, - {"egid", "", "gid", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"egroup", "", "group", NULL, 0, NULL, 0, CHAR, NULL, 0}, + "ld"}, + {"egid", "", "gid", NULL, 0, NULL, 0, CHAR, NULL}, + {"egroup", "", "group", NULL, 0, NULL, 0, CHAR, NULL}, {"emul", "EMUL", NULL, "emulation-envirnment", LJUST, emulname, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"etime", "ELAPSED", NULL, "elapsed-time", USER, elapsed, 0, CHAR, - NULL, 0}, + NULL}, {"etimes", "ELAPSED", NULL, "elapsed-times", USER, elapseds, 0, CHAR, - NULL, 0}, - {"euid", "", "uid", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"f", "F", NULL, "flags", 0, kvar, KOFF(ki_flag), LONG, "lx", 0}, - {"f2", "F2", NULL, "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x", 0}, - {"fib", "FIB", NULL, "fib", 0, kvar, KOFF(ki_fibnum), INT, "d", 0}, - {"flags", "", "f", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"flags2", "", "f2", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"gid", "GID", NULL, "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT, 0}, - {"group", "GROUP", NULL, "group", LJUST, egroupname, 0, CHAR, NULL, 0}, - {"ignored", "", "sigignore", NULL, 0, NULL, 0, CHAR, NULL, 0}, + NULL}, + {"euid", "", "uid", NULL, 0, NULL, 0, CHAR, NULL}, + {"f", "F", NULL, "flags", 0, kvar, KOFF(ki_flag), LONG, "lx"}, + {"f2", "F2", NULL, "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x"}, + {"fib", "FIB", NULL, "fib", 0, kvar, KOFF(ki_fibnum), INT, "d"}, + {"flags", "", "f", NULL, 0, NULL, 0, CHAR, NULL}, + {"flags2", "", "f2", NULL, 0, NULL, 0, CHAR, NULL}, + {"gid", "GID", NULL, "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT}, + {"group", "GROUP", NULL, "group", LJUST, egroupname, 0, CHAR, NULL}, + {"ignored", "", "sigignore", NULL, 0, NULL, 0, CHAR, NULL}, {"inblk", "INBLK", NULL, "read-blocks", USER, rvar, ROFF(ru_inblock), - LONG, "ld", 0}, - {"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL, 0}, - {"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d", 0}, + LONG, "ld"}, + {"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL}, + {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL}, + {"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d"}, {"jobc", "JOBC", NULL, "job-control-count", 0, kvar, KOFF(ki_jobc), - SHORT, "d", 0}, + SHORT, "d"}, {"ktrace", "KTRACE", NULL, "ktrace", 0, kvar, KOFF(ki_traceflag), INT, - "x", 0}, - {"label", "LABEL", NULL, "label", LJUST, label, 0, CHAR, NULL, 0}, - {"lim", "LIM", NULL, "memory-limit", 0, maxrss, 0, CHAR, NULL, 0}, - {"lockname", "LOCK", NULL, "lock-name", LJUST, lockname, 0, CHAR, NULL, - 0}, - {"login", "LOGIN", NULL, "login-name", LJUST, logname, 0, CHAR, NULL, - 0}, - {"logname", "", "login", NULL, 0, NULL, 0, CHAR, NULL, 0}, + "x"}, + {"label", "LABEL", NULL, "label", LJUST, label, 0, CHAR, NULL}, + {"lim", "LIM", NULL, "memory-limit", 0, maxrss, 0, CHAR, NULL}, + {"lockname", "LOCK", NULL, "lock-name", LJUST, lockname, 0, CHAR, NULL}, + {"login", "LOGIN", NULL, "login-name", LJUST, logname, 0, CHAR, NULL}, + {"logname", "", "login", NULL, 0, NULL, 0, CHAR, NULL}, {"lstart", "STARTED", NULL, "start-time", LJUST|USER, lstarted, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"lwp", "LWP", NULL, "thread-id", 0, kvar, KOFF(ki_tid), UINT, - LWPFMT, 0}, + LWPFMT}, {"majflt", "MAJFLT", NULL, "major-faults", USER, rvar, ROFF(ru_majflt), - LONG, "ld", 0}, + LONG, "ld"}, {"minflt", "MINFLT", NULL, "minor-faults", USER, rvar, ROFF(ru_minflt), - LONG, "ld", 0}, + LONG, "ld"}, {"msgrcv", "MSGRCV", NULL, "received-messages", USER, rvar, - ROFF(ru_msgrcv), LONG, "ld", 0}, + ROFF(ru_msgrcv), LONG, "ld"}, {"msgsnd", "MSGSND", NULL, "sent-messages", USER, rvar, - ROFF(ru_msgsnd), LONG, "ld", 0}, + ROFF(ru_msgsnd), LONG, "ld"}, {"mwchan", "MWCHAN", NULL, "wait-channel", LJUST, mwchan, 0, CHAR, - NULL, 0}, - {"ni", "", "nice", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"nice", "NI", NULL, "nice", 0, kvar, KOFF(ki_nice), CHAR, "d", 0}, + NULL}, + {"ni", "", "nice", NULL, 0, NULL, 0, CHAR, NULL}, + {"nice", "NI", NULL, "nice", 0, kvar, KOFF(ki_nice), CHAR, "d"}, {"nivcsw", "NIVCSW", NULL, "involuntary-context-switches", USER, rvar, - ROFF(ru_nivcsw), LONG, "ld", 0}, + ROFF(ru_nivcsw), LONG, "ld"}, {"nlwp", "NLWP", NULL, "threads", 0, kvar, KOFF(ki_numthreads), UINT, - NLWPFMT, 0}, - {"nsignals", "", "nsigs", NULL, 0, NULL, 0, CHAR, NULL, 0}, + NLWPFMT}, + {"nsignals", "", "nsigs", NULL, 0, NULL, 0, CHAR, NULL}, {"nsigs", "NSIGS", NULL, "signals-taken", USER, rvar, - ROFF(ru_nsignals), LONG, "ld", 0}, + ROFF(ru_nsignals), LONG, "ld"}, {"nswap", "NSWAP", NULL, "swaps", USER, rvar, ROFF(ru_nswap), LONG, - "ld", 0}, + "ld"}, {"nvcsw", "NVCSW", NULL, "voluntary-context-switches", USER, rvar, - ROFF(ru_nvcsw), LONG, "ld", 0}, + ROFF(ru_nvcsw), LONG, "ld"}, {"nwchan", "NWCHAN", NULL, "wait-channel-address", LJUST, nwchan, 0, - CHAR, NULL, 0}, + CHAR, NULL}, {"oublk", "OUBLK", NULL, "written-blocks", USER, rvar, - ROFF(ru_oublock), LONG, "ld", 0}, - {"oublock", "", "oublk", NULL, 0, NULL, 0, CHAR, NULL, 0}, + ROFF(ru_oublock), LONG, "ld"}, + {"oublock", "", "oublk", NULL, 0, NULL, 0, CHAR, NULL}, {"paddr", "PADDR", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx", 0}, - {"pagein", "PAGEIN", NULL, "pageins", USER, pagein, 0, CHAR, NULL, 0}, - {"pcpu", "", "%cpu", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"pending", "", "sig", NULL, 0, NULL, 0, CHAR, NULL, 0}, + KPTR, "lx"}, + {"pagein", "PAGEIN", NULL, "pageins", USER, pagein, 0, CHAR, NULL}, + {"pcpu", "", "%cpu", NULL, 0, NULL, 0, CHAR, NULL}, + {"pending", "", "sig", NULL, 0, NULL, 0, CHAR, NULL}, {"pgid", "PGID", NULL, "process-group", 0, kvar, KOFF(ki_pgid), UINT, - PIDFMT, 0}, - {"pid", "PID", NULL, "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT, 0}, - {"pmem", "", "%mem", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"ppid", "PPID", NULL, "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT, 0}, - {"pri", "PRI", NULL, "priority", 0, pri, 0, CHAR, NULL, 0}, + PIDFMT}, + {"pid", "PID", NULL, "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT}, + {"pmem", "", "%mem", NULL, 0, NULL, 0, CHAR, NULL}, + {"ppid", "PPID", NULL, "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT}, + {"pri", "PRI", NULL, "priority", 0, pri, 0, CHAR, NULL}, {"re", "RE", NULL, "residency-time", INF127, kvar, KOFF(ki_swtime), - UINT, "d", 0}, + UINT, "d"}, {"rgid", "RGID", NULL, "real-gid", 0, kvar, KOFF(ki_rgid), UINT, - UIDFMT, 0}, + UIDFMT}, {"rgroup", "RGROUP", NULL, "real-group", LJUST, rgroupname, 0, CHAR, - NULL, 0}, - {"rss", "RSS", NULL, "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld", 0}, + NULL}, + {"rss", "RSS", NULL, "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld"}, {"rtprio", "RTPRIO", NULL, "realtime-priority", 0, priorityr, - KOFF(ki_pri), CHAR, NULL, 0}, + KOFF(ki_pri), CHAR, NULL}, {"ruid", "RUID", NULL, "real-uid", 0, kvar, KOFF(ki_ruid), UINT, - UIDFMT, 0}, - {"ruser", "RUSER", NULL, "real-user", LJUST, runame, 0, CHAR, NULL, 0}, - {"sid", "SID", NULL, "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT, 0}, + UIDFMT}, + {"ruser", "RUSER", NULL, "real-user", LJUST, runame, 0, CHAR, NULL}, + {"sid", "SID", NULL, "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT}, {"sig", "PENDING", NULL, "signals-pending", 0, kvar, KOFF(ki_siglist), - INT, "x", 0}, + INT, "x"}, {"sigcatch", "CAUGHT", NULL, "signals-caught", 0, kvar, - KOFF(ki_sigcatch), UINT, "x", 0}, + KOFF(ki_sigcatch), UINT, "x"}, {"sigignore", "IGNORED", NULL, "signals-ignored", 0, kvar, - KOFF(ki_sigignore), UINT, "x", 0}, + KOFF(ki_sigignore), UINT, "x"}, {"sigmask", "BLOCKED", NULL, "signal-mask", 0, kvar, KOFF(ki_sigmask), - UINT, "x", 0}, + UINT, "x"}, {"sl", "SL", NULL, "sleep-time", INF127, kvar, KOFF(ki_slptime), UINT, - "d", 0}, + "d"}, {"ssiz", "SSIZ", NULL, "stack-size", 0, kvar, KOFF(ki_ssize), PGTOK, - "ld", 0}, + "ld"}, {"start", "STARTED", NULL, "start-time", LJUST|USER, started, 0, CHAR, - NULL, 0}, - {"stat", "", "state", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"state", "STAT", NULL, "state", LJUST, state, 0, CHAR, NULL, 0}, + NULL}, + {"stat", "", "state", NULL, 0, NULL, 0, CHAR, NULL}, + {"state", "STAT", NULL, "state", LJUST, state, 0, CHAR, NULL}, {"svgid", "SVGID", NULL, "saved-gid", 0, kvar, KOFF(ki_svgid), UINT, - UIDFMT, 0}, + UIDFMT}, {"svuid", "SVUID", NULL, "saved-uid", 0, kvar, KOFF(ki_svuid), UINT, - UIDFMT, 0}, + UIDFMT}, {"systime", "SYSTIME", NULL, "system-time", USER, systime, 0, CHAR, - NULL, 0}, + NULL}, {"tdaddr", "TDADDR", NULL, "thread-address", 0, kvar, KOFF(ki_tdaddr), - KPTR, "lx", 0}, - {"tdev", "TDEV", NULL, "terminal-device", 0, tdev, 0, CHAR, NULL, 0}, - {"tdnam", "", "tdname", NULL, 0, NULL, 0, CHAR, NULL, 0}, + KPTR, "lx"}, + {"tdev", "TDEV", NULL, "terminal-device", 0, tdev, 0, CHAR, NULL}, + {"tdnam", "", "tdname", NULL, 0, NULL, 0, CHAR, NULL}, {"tdname", "TDNAME", NULL, "thread-name", LJUST, tdnam, 0, CHAR, - NULL, 0}, - {"tid", "", "lwp", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"time", "TIME", NULL, "cpu-time", USER, cputime, 0, CHAR, NULL, 0}, + NULL}, + {"tid", "", "lwp", NULL, 0, NULL, 0, CHAR, NULL}, + {"time", "TIME", NULL, "cpu-time", USER, cputime, 0, CHAR, NULL}, {"tpgid", "TPGID", NULL, "terminal-process-gid", 0, kvar, - KOFF(ki_tpgid), UINT, PIDFMT, 0}, + KOFF(ki_tpgid), UINT, PIDFMT}, {"tracer", "TRACER", NULL, "tracer", 0, kvar, KOFF(ki_tracer), UINT, - PIDFMT, 0}, + PIDFMT}, {"tsid", "TSID", NULL, "terminal-sid", 0, kvar, KOFF(ki_tsid), UINT, - PIDFMT, 0}, + PIDFMT}, {"tsiz", "TSIZ", NULL, "text-size", 0, kvar, KOFF(ki_tsize), PGTOK, - "ld", 0}, - {"tt", "TT ", NULL, "terminal-name", 0, tname, 0, CHAR, NULL, 0}, - {"tty", "TTY", NULL, "tty", LJUST, longtname, 0, CHAR, NULL, 0}, + "ld"}, + {"tt", "TT ", NULL, "terminal-name", 0, tname, 0, CHAR, NULL}, + {"tty", "TTY", NULL, "tty", LJUST, longtname, 0, CHAR, NULL}, {"ucomm", "UCOMM", NULL, "accounting-name", LJUST, ucomm, 0, CHAR, - NULL, 0}, - {"uid", "UID", NULL, "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT, 0}, - {"upr", "UPR", NULL, "user-priority", 0, upr, 0, CHAR, NULL, 0}, + NULL}, + {"uid", "UID", NULL, "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT}, + {"upr", "UPR", NULL, "user-priority", 0, upr, 0, CHAR, NULL}, {"uprocp", "UPROCP", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx", 0}, - {"user", "USER", NULL, "user", LJUST, username, 0, CHAR, NULL, 0}, + KPTR, "lx"}, + {"user", "USER", NULL, "user", LJUST, username, 0, CHAR, NULL}, {"usertime", "USERTIME", NULL, "user-time", USER, usertime, 0, CHAR, - NULL, 0}, - {"usrpri", "", "upr", NULL, 0, NULL, 0, CHAR, NULL, 0}, + NULL}, + {"usrpri", "", "upr", NULL, 0, NULL, 0, CHAR, NULL}, {"vmaddr", "VMADDR", NULL, "vmspace-address", 0, kvar, KOFF(ki_vmspace), - KPTR, "lx", 0}, - {"vsize", "", "vsz", NULL, 0, NULL, 0, CHAR, NULL, 0}, - {"vsz", "VSZ", NULL, "virtual-size", 0, vsize, 0, CHAR, NULL, 0}, - {"wchan", "WCHAN", NULL, "wait-channel", LJUST, wchan, 0, CHAR, NULL, - 0}, + KPTR, "lx"}, + {"vsize", "", "vsz", NULL, 0, NULL, 0, CHAR, NULL}, + {"vsz", "VSZ", NULL, "virtual-size", 0, vsize, 0, CHAR, NULL}, + {"wchan", "WCHAN", NULL, "wait-channel", LJUST, wchan, 0, CHAR, NULL}, {"xstat", "XSTAT", NULL, "exit-status", 0, kvar, KOFF(ki_xstat), - USHORT, "x", 0}, - {"", NULL, NULL, NULL, 0, NULL, 0, CHAR, NULL, 0}, + USHORT, "x"}, }; void showkey(void) { - VAR *v; + const VAR *v; + const VAR *const end = var + nitems(var); + const char *sep; int i; - const char *p, *sep; i = 0; sep = ""; xo_open_list("key"); - for (v = var; *(p = v->name); ++v) { - int len = strlen(p); + for (v = var; v < end; ++v) { + const char *const p = v->name; + const int len = strlen(p); + if (termwidth && (i += len + 1) > termwidth) { i = len; sep = "\n"; @@ -305,6 +304,7 @@ parsefmt(const char *p, struct velisthead *const var_list, if (hp) vent->header = hp; } + vent->width = strlen(vent->header); vent->var = malloc(sizeof(*vent->var)); if (vent->var == NULL) xo_errx(1, "malloc failed"); @@ -331,7 +331,7 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) *hp++ = '\0'; key.name = p; - v = bsearch(&key, var, sizeof(var)/sizeof(VAR) - 1, sizeof(VAR), vcmp); + v = bsearch(&key, var, nitems(var), sizeof(VAR), vcmp); if (v && v->alias) { /* diff --git a/bin/ps/print.c b/bin/ps/print.c index 1ed6afe995c5..d7d3fd1339dc 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -88,9 +88,9 @@ printheader(void) if (STAILQ_NEXT(vent, next_ve) == NULL) /* last one */ xo_emit("{T:/%hs}", vent->header); else - xo_emit("{T:/%-*hs}", v->width, vent->header); + xo_emit("{T:/%-*hs}", vent->width, vent->header); } else - xo_emit("{T:/%*hs}", v->width, vent->header); + xo_emit("{T:/%*hs}", vent->width, vent->header); if (STAILQ_NEXT(vent, next_ve) != NULL) xo_emit("{P: }"); } diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 14dea797a7f7..44e6ecd32498 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -152,7 +152,6 @@ static char *kludge_oldps_options(const char *, char *, const char *); static int pscomp(const void *, const void *); static void saveuser(KINFO *); static void scanvars(void); -static void sizevars(void); static void pidmax_init(void); static void usage(void); @@ -660,8 +659,6 @@ main(int argc, char *argv[]) } } - sizevars(); - if (nkept == 0) { printheader(); if (xo_finish() < 0) @@ -720,7 +717,7 @@ main(int argc, char *argv[]) /* No padding for the last column, if it's LJUST. */ fwidthmin = (xo_get_style(NULL) != XO_STYLE_TEXT || (STAILQ_NEXT(vent, next_ve) == NULL && - (vent->var->flag & LJUST))) ? 0 : vent->var->width; + (vent->var->flag & LJUST))) ? 0 : vent->width; snprintf(fmtbuf, sizeof(fmtbuf), "{:%s/%%%s%d..%dhs}", vent->var->field ? vent->var->field : vent->var->name, (vent->var->flag & LJUST) ? "-" : "", @@ -1238,7 +1235,7 @@ format_output(KINFO *ki) VAR *v; KINFO_STR *ks; char *str; - int len; + u_int len; STAILQ_INIT(&ki->ki_ks); STAILQ_FOREACH(vent, &varlist, next_ve) { @@ -1253,23 +1250,8 @@ format_output(KINFO *ki) len = strlen(str); } else len = 1; /* "-" */ - if (v->width < len) - v->width = len; - } -} - -static void -sizevars(void) -{ - struct varent *vent; - VAR *v; - int i; - - STAILQ_FOREACH(vent, &varlist, next_ve) { - v = vent->var; - i = strlen(vent->header); - if (v->width < i) - v->width = i; + if (vent->width < len) + vent->width = len; } } diff --git a/bin/ps/ps.h b/bin/ps/ps.h index d21bf016bcca..838aea33f3aa 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -60,6 +60,7 @@ typedef struct varent { STAILQ_ENTRY(varent) next_ve; const char *header; struct var *var; + u_int width; } VARENT; STAILQ_HEAD(velisthead, varent); @@ -84,8 +85,6 @@ typedef struct var { size_t off; /* offset in structure */ enum type type; /* type of element */ const char *fmt; /* printf format */ - - short width; /* calculated width */ } VAR; #include "extern.h" From nobody Thu May 1 19:51:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnf4xSFz5vf30; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnf04v3z46fk; Thu, 01 May 2025 19:51:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wuR2p1hQc+S4RGsZEnpy4jZXqRGcs9w83ASp0Y+5TGI=; b=v6SJaqoyeHkv16uptArVandL0qObfQRmEXztZ07dmCr12yO0Gdy+sGHK299+wGq13+z8GV UIXVJ7kroJBJg5Oeg4/K/9JFDc29Uj/UJRoF5GpCzL2vldt1uEapz+vdadmnoP+nglffVK RLXHhqTODDatWOAsVlNUwJe5TuxALse0YKgSk1jE2TXx2FH2H5tdS4S8T7zcPeHfkwoG9I zKjSPCUzDuLcCE2iLka6K0IYVUlgKfEc2XQVC7PlyXKxHUeKjJ4myUXKir5Y7H+/LetkKK OaUFtg6i3BBAYflsiWn6x3F6z2kv7sxoVCxU2qXmySQyZwNlqw05riWgf38rUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wuR2p1hQc+S4RGsZEnpy4jZXqRGcs9w83ASp0Y+5TGI=; b=bUXfyHKTOcWWDlATpAdeJVdHVkPeP5+fsezIwudJLELvNyiOxYmVCj2CY6HX2KRA6Mk3LH rz3EG8hqw2zWHHbCJ8MTqBFkfHhNIB+Xw0skwt6u2IKGP2yzM8EyBlscpre+uFlnWrWdQX +UD5NzQJDJLUm0J17hBNWeZaTTzet1vOGHSe+jlLphP4WWD+dTMHnPXG8aVb3jHCUMjHOz 6LMUbNokhQdnnj0Jx6SgCWaN8BOodPKF6063zHEos1xZk5SRp+bhWe5OZx5Lvxvkr91haJ MKbHw5Im8GcqvlY8w1B9cjKF9z4X0JKNYgDEWnkpI1FMWHvdnz+PgbPNe5Ew2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129094; a=rsa-sha256; cv=none; b=fY+caugL5gVW8EVp0eOR/r1bwn4LY1reHeqzlgAtWTGl8oqCuIQ8QPnDtYecwg3gZEGEGF dUI5BDx48HCiLOH/SmQdlkOsr2xJ4TdQXtEhIatctckb0uVBFt0yovvbFr0ki18Zu5gqHv 90Vgvjh3NLmP3lXhCAxvcf/dms6RA0D6p8uzyxDhT8bHbeB5bz+9v/5nkvhEImzzKfuMeT uz9pxgsArISWNOSXRMyHKZSjLWOGOGTaU99v+dVciAEQTd7dbTvm5vCdGe6KHB3AWrlQ7N np/jJm3fCdazxP3cmOLEaP7ESB0wRELMJd3CcUxDdHeNeUcfQOotvWX87Oryeg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnd6khLzj9W; Thu, 01 May 2025 19:51:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpXqm067347; Thu, 1 May 2025 19:51:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpXjI067344; Thu, 1 May 2025 19:51:33 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:33 GMT Message-Id: <202505011951.541JpXjI067344@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 21d9f3d9f0d7 - stable/14 - ps(1): Consider references to keywords as immutable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 21d9f3d9f0d77b315567eaa0acf153cba17e23ef Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=21d9f3d9f0d77b315567eaa0acf153cba17e23ef commit 21d9f3d9f0d77b315567eaa0acf153cba17e23ef Author: Olivier Certner AuthorDate: 2025-02-28 21:07:14 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:03 +0000 ps(1): Consider references to keywords as immutable Building on the previous commit that moved the 'width' field from VAR (structure representing the meaning of a keyword) to VARENT (structure representing an actual column in a display), it is now possible to declare the field 'var' of VARENT as a constant reference. At this point, it could be possible to constify the var[] array containing all the recognized keywords. However, we do not do it as a subsequent commit will change the way alias keywords are resolved, causing their fields to be modified to reflect the final values to use after alias resolution. In parsefmt(), forget about allocating a new VAR for the selected keyword to be pointed by the corresponding column (VARENT), and instead just keep a pointer to that structure in var[]. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49611 (cherry picked from commit 1dbb1cca9b8b7874f22c06f5340686361c76da47) --- bin/ps/keyword.c | 5 +---- bin/ps/print.c | 8 ++++---- bin/ps/ps.c | 4 ++-- bin/ps/ps.h | 2 +- 4 files changed, 8 insertions(+), 11 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 823018f12ba5..40986550b92b 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -305,10 +305,7 @@ parsefmt(const char *p, struct velisthead *const var_list, vent->header = hp; } vent->width = strlen(vent->header); - vent->var = malloc(sizeof(*vent->var)); - if (vent->var == NULL) - xo_errx(1, "malloc failed"); - memcpy(vent->var, v, sizeof(*vent->var)); + vent->var = v; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } free(tempstr1); diff --git a/bin/ps/print.c b/bin/ps/print.c index d7d3fd1339dc..a3f8f244648d 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -73,7 +73,7 @@ static char sccsid[] = "@(#)print.c 8.6 (Berkeley) 4/16/94"; void printheader(void) { - VAR *v; + const VAR *v; struct varent *vent; STAILQ_FOREACH(vent, &varlist, next_ve) @@ -745,7 +745,7 @@ priorityr(KINFO *k, VARENT *ve __unused) * structures. */ static char * -printval(void *bp, VAR *v) +printval(void *bp, const VAR *v) { static char ofmt[32] = "%"; const char *fcp; @@ -796,7 +796,7 @@ printval(void *bp, VAR *v) char * kvar(KINFO *k, VARENT *ve) { - VAR *v; + const VAR *v; v = ve->var; return (printval((char *)((char *)k->ki_p + v->off), v)); @@ -805,7 +805,7 @@ kvar(KINFO *k, VARENT *ve) char * rvar(KINFO *k, VARENT *ve) { - VAR *v; + const VAR *v; v = ve->var; if (!k->ki_valid) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 44e6ecd32498..fe100170b7e2 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -1217,7 +1217,7 @@ static void scanvars(void) { struct varent *vent; - VAR *v; + const VAR *v; STAILQ_FOREACH(vent, &varlist, next_ve) { v = vent->var; @@ -1232,7 +1232,7 @@ static void format_output(KINFO *ki) { struct varent *vent; - VAR *v; + const VAR *v; KINFO_STR *ks; char *str; u_int len; diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 838aea33f3aa..800e732262e9 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -59,7 +59,7 @@ typedef struct kinfo { typedef struct varent { STAILQ_ENTRY(varent) next_ve; const char *header; - struct var *var; + const struct var *var; u_int width; } VARENT; STAILQ_HEAD(velisthead, varent); From nobody Thu May 1 19:51:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnk0nPwz5vdr3; Thu, 01 May 2025 19:51:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnj3FTWz46mK; Thu, 01 May 2025 19:51:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cmvG0HmjoQzCB2QqKX9/tT9EDInypXHtTkd0766JziM=; b=KLec7iGOufLZ8cuiVrxueFotCnj56sTscD2RiiSfBSsEhVMIzk9Z68WUWaoPWeLcUfxe1v wvSlRak2DSQHOS3R70lLnSmFqBZDROwQfGPWHKDEeTWDWAobFMuyirLyMD9zjkEQnHXshc 0kZpNxyPe1zu6aWi/ueLOi3aBA/A6XZLARDgLs4srwR93P/JQ/MmjS5+wEu9EWIvcKqUBT mD6mec5vXCmOM94+MuX1qvdcsR29546yHo1a1GIlezfc3o7e0+bQZjq5uFvGGWP7v5M+kq YdDoJVbq+PRvAWtUQK9LvEGRAs+Pb4eLKfbjm57Jqy20IB70ExWZ4gh7fl2W6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cmvG0HmjoQzCB2QqKX9/tT9EDInypXHtTkd0766JziM=; b=QilnzKsv5XKx5zudrZj3W6iNL6XZzbKryu7dfvaCHyDASYMIH8JgRmufbyOaRYmlCuALXe 6DwPcJSv+eYmlYs/vKXFVi6HIUQLwENekpIKH3YePqaJthtj8tunvinJosr+dmSZD+zuCa toMSngjzk/itYdzCfznUcAR622ANVQ+nldALgSwQHYETtUTJo0AjzYJJ/HWzjY3JcCr80z o2V0BmDYshbRXQHSK3eNK9lyizIkXh7fxkoLYIYEFS3oZnwtkW0m55R75FhkNdUWioKox+ XJqd/IN/RW1uBvJFPOqTJNT+ylqdPgMBzUvMNBXWSs5IRu9bRbOi4MsBcFFprw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129097; a=rsa-sha256; cv=none; b=bP1zjxcnrOYlU8/tMRQxd/tYJNik7fXpVY1X42lJJRepttoIUqnLIKHPMrGtioQicYQiDu PNtmUYgv44/ihwMD1b3+ibhHD1WO7iDDUc/FepWXoq5l/Z4BrwH3i+S2Yy82o9sjKvfmBA w9CleUU52FYzN5sK+aC+RlC/k8H7NDIVMlsZWUBdVu0X2Adm7mvT8+4caXALBb+fwKsg66 4EA9iNcapIlVf82ljcHeKsggvYlUwrnDO1ZV5v1Y8FzLSdk7pfCf/QCdQ691z7Qi0Su0os Wb/JDeRWaUn09rQu7WuzuGNT9MHUThhPfwulCsh1yuz3MrQBsL6MKaDoyZF8zw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnj1tgRzj9Y; Thu, 01 May 2025 19:51:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpbZW067452; Thu, 1 May 2025 19:51:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpbuk067449; Thu, 1 May 2025 19:51:37 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:37 GMT Message-Id: <202505011951.541Jpbuk067449@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 7aa2f4826717 - stable/14 - ps(1): Remove not-explicitly-requested columns with duplicate data List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7aa2f4826717b8cd35c58f4ddf05145ffe4dbd39 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=7aa2f4826717b8cd35c58f4ddf05145ffe4dbd39 commit 7aa2f4826717b8cd35c58f4ddf05145ffe4dbd39 Author: Olivier Certner AuthorDate: 2025-03-10 20:20:43 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:04 +0000 ps(1): Remove not-explicitly-requested columns with duplicate data Before this change, when stacking up more columns in the display through command-line options, if user requested to add some "canned" display (through options '-j', '-l', '-u' or '-v'), columns in it that were "duplicates" of already requested ones (meaning that they share the same keyword, regardless of whether their headers have been customized) were in the end omitted. However, this mechanism did not work the other way around, i.e., requesting some canned display(s) first and then adding some columns that are duplicates (through '-o' or '-O') would not remove them from the canned display. Additionally, it did not take into account keyword aliases (which also lead to displaying the same information). This whole mechanism of removing columns from requested canned displays when there are duplicates is useful in a number of scenarios: 1. When one wants the columns of a canned display, but with some of them in a different order and at the edges of the bulk. This needs the change here to move columns after the bulk (previously, only moving them before the bulk would work). 2. To combine multiple canned displays to get more information without repeating common columns. This part has been working before and this behavior is unchanged. 3. In combination with requesting a canned display and additional columns after it, ensure that a single COMMAND column appears at the end of the display (to benefit from the fact that a last COMMAND column can extend further to the right). Point 2 above implies that, when multiple canned displays are requested, we should keep the leftmost column with same keyword. However, columns requested explicitly by '-o' have priority (as the natural extension of point 1's behavior before this change), and in this case all matching columns in canned displays must be suppressed. To this end, when adding requested options to the display's list, we stop trying to find an earlier matching column (which is incidentally a O(n²) algorithm). Instead, we do a first pass over all requested options once they have all been added to the display's list (in scan_vars()). For each keyword, we note if it was requested at least once explicitly (through '-o' or '-O'), in addition to setting 'needuser' and 'needcomm' (as before). Then, a second pass decides whether to keep each column. A column is removed if it should not be kept absolutely (i.e., it wasn't specified via '-o' or '-O') and there is either a matching column that must be kept (determined during the first pass), or we have seen one already (earlier canned displays take precedence). Matching columns are in fact not only those that have same keywords, but also those that have keywords determined to be aliases to each other. Some previous commits ensured that this determination is O(1) and in practice just a few assembly instructions. find_varentry() has been kept although its last caller has been removed as next commit will reintroduce a call to it. MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49612 Differential Revision: https://reviews.freebsd.org/D49613 (manual page) (cherry picked from commit cd768a840644ad55029ce9c3d41fc52b5045e0cc) --- bin/ps/extern.h | 2 ++ bin/ps/keyword.c | 25 +++++++++-------- bin/ps/ps.1 | 23 +++++++--------- bin/ps/ps.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++------ bin/ps/ps.h | 2 ++ 5 files changed, 102 insertions(+), 32 deletions(-) diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 64d081484ace..a81ac7a4c3f7 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -42,6 +42,7 @@ extern unsigned long mempages; extern time_t now; extern int showthreads, sumrusage, termwidth; extern struct velisthead varlist; +extern const size_t known_keywords_nb; __BEGIN_DECLS char *arguments(KINFO *, VARENT *); @@ -57,6 +58,7 @@ VARENT *find_varentry(const char *); const char *fmt_argv(char **, char *, char *, size_t); double getpcpu(const KINFO *); char *jailname(KINFO *, VARENT *); +size_t aliased_keyword_index(const VAR *); char *kvar(KINFO *, VARENT *); char *label(KINFO *, VARENT *); char *loginclass(KINFO *, VARENT *); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 35604465d04c..b6e0ff75ff09 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -48,6 +48,7 @@ static char sccsid[] = "@(#)keyword.c 8.5 (Berkeley) 4/2/94"; #include #include #include + #include #include "ps.h" @@ -234,7 +235,18 @@ static VAR keywords[] = { USHORT, "x"}, }; -static const size_t known_keywords_nb = nitems(keywords); +const size_t known_keywords_nb = nitems(keywords); + +size_t +aliased_keyword_index(const VAR *const v) +{ + const VAR *const fv = (v->flag & RESOLVED_ALIAS) == 0 ? + v : v->final_kw; + const size_t idx = fv - keywords; + + assert(idx < known_keywords_nb); + return (idx); +} /* * Sanity checks on declared keywords. @@ -432,16 +444,6 @@ parsefmt(const char *p, struct velisthead *const var_list, eval = 1; continue; } - if (!user) { - /* - * If the user is NOT adding this field manually, - * get on with our lives if this VAR is already - * represented in the list. - */ - vent = find_varentry(v->name); - if (vent != NULL) - continue; - } #ifndef PS_CHECK_KEYWORDS /* @@ -462,6 +464,7 @@ parsefmt(const char *p, struct velisthead *const var_list, } vent->width = strlen(vent->header); vent->var = v; + vent->flags = user ? VE_KEEP : 0; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index ff16c64213e6..e3681a5641c7 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -142,11 +142,16 @@ and designate specific predefined groups of columns, also called canned displays. Appearance of any of these options inhibits the default display, replacing it all with the requested columns, and in the order options are passed. -The individual columns requested via a canned display option which have the same -keyword as that of some column added by earlier options are not added again. -This kind of automatic removal of duplicate keywords in canned displays is -useful for slightly tweaking these displays without having to rebuild variants -from scratch, e.g., using +The individual columns requested via a canned display option that have the same +keyword or an alias to that of some column added by an earlier canned display +option, or by an explicit +.Fl O +or +.Fl o +option anywhere on the command line, are suppressed. +This automatic removal of duplicate data in canned displays is useful for +slightly tweaking these displays and/or combining multiple ones without having +to rebuild variants from scratch, e.g., using only .Fl o options. .Pp @@ -1027,14 +1032,6 @@ elimination, contrary to those of canned displays. Finally, columns requested through multiple occurences are not grouped together, as one may naturally expect. .Pp -Automatic removal of duplicate columns from canned displays only works backwards -at time of insertion, i.e., adding a new canned display will lead to checking -columns before it but not those after it. -Besides the inconsistency, this prevents relocating columns of canned displays -further right, which can be useful, e.g., to relocate a column with the -.Cm command -keyword at end of display. -.Pp The .Fl a option has no effect if other options affecting the selection of processes are diff --git a/bin/ps/ps.c b/bin/ps/ps.c index ad69027baa71..20f737cbff6d 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -103,6 +103,19 @@ int sumrusage; /* -S */ int termwidth; /* Width of the screen (0 == infinity). */ int showthreads; /* will threads be shown? */ +struct keyword_info { + /* + * Whether there is (at least) one column referencing this keyword that + * must be kept. + */ +#define KWI_HAS_MUST_KEEP_COLUMN (1 << 0) + /* + * Whether a column with such a keyword has been seen. + */ +#define KWI_SEEN (1 << 1) + u_int flags; +}; + struct velisthead varlist = STAILQ_HEAD_INITIALIZER(varlist); static int forceuread = DEF_UREAD; /* Do extra work to get u-area. */ @@ -151,7 +164,8 @@ static void init_list(struct listinfo *, addelem_rtn, int, const char *); static char *kludge_oldps_options(const char *, char *, const char *); static int pscomp(const void *, const void *); static void saveuser(KINFO *); -static void scanvars(void); +static void scan_vars(struct keyword_info *); +static void remove_redundant_columns(struct keyword_info *); static void pidmax_init(void); static void usage(void); @@ -188,6 +202,7 @@ main(int argc, char *argv[]) char fmtbuf[_POSIX2_LINE_MAX]; enum { NONE = 0, UP = 1, DOWN = 2, BOTH = 1 | 2 } directions = NONE; struct { int traversed; int initial; } pid_count; + struct keyword_info *keywords_info; (void) setlocale(LC_ALL, ""); time(&now); /* Used by routines in print.c. */ @@ -487,6 +502,22 @@ main(int argc, char *argv[]) if (!_fmt) parsefmt(dfmt, &varlist, 0); + keywords_info = calloc(known_keywords_nb, sizeof(struct keyword_info)); + if (keywords_info == NULL) + xo_errx(1, "malloc failed"); + /* + * Scan requested variables, noting which structures are needed and + * which keywords are specified. + */ + scan_vars(keywords_info); + /* + * Remove redundant columns from "canned" displays (see the callee's + * herald comment for more details). + */ + remove_redundant_columns(keywords_info); + free(keywords_info); + keywords_info = NULL; + if (!all && nselectors == 0) { uidlist.l.ptr = malloc(sizeof(uid_t)); if (uidlist.l.ptr == NULL) @@ -496,12 +527,6 @@ main(int argc, char *argv[]) *uidlist.l.uids = getuid(); } - /* - * scan requested variables, noting what structures are needed, - * and adjusting header widths as appropriate. - */ - scanvars(); - /* * Get process list. If the user requested just one selector- * option, then kvm_getprocs can be asked to return just those @@ -1221,7 +1246,7 @@ find_varentry(const char *name) } static void -scanvars(void) +scan_vars(struct keyword_info *const keywords_info) { struct varent *vent; const VAR *v; @@ -1232,6 +1257,47 @@ scanvars(void) needuser = 1; if (v->flag & COMM) needcomm = 1; + if ((vent->flags & VE_KEEP) != 0) + keywords_info[aliased_keyword_index(v)].flags |= + KWI_HAS_MUST_KEEP_COLUMN; + } +} + +/* + * For each explicitly requested keyword, remove all the same keywords + * from "canned" displays. If the same keyword appears multiple times + * only in "canned displays", then keep the first (leftmost) occurence + * only (with the reasoning that columns requested first are the most + * important as their positions catch the eye more). + */ +static void +remove_redundant_columns(struct keyword_info *const keywords_info) +{ + struct varent *prev_vent, *vent, *next_vent; + + prev_vent = NULL; + STAILQ_FOREACH_SAFE(vent, &varlist, next_ve, next_vent) { + const VAR *const v = vent->var; + struct keyword_info *const kwi = + &keywords_info[aliased_keyword_index(v)]; + + /* + * If the current column is not marked as to absolutely keep, + * and we have either already output one with the same keyword + * or know we will output one later, remove it. + */ + if ((vent->flags & VE_KEEP) == 0 && + (kwi->flags & (KWI_HAS_MUST_KEEP_COLUMN | KWI_SEEN)) != 0) { + if (prev_vent == NULL) + STAILQ_REMOVE_HEAD(&varlist, next_ve); + else + STAILQ_REMOVE_AFTER(&varlist, prev_vent, + next_ve); + } else + prev_vent = vent; + + + kwi->flags |= KWI_SEEN; } } diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 8a07586642c8..b82f8550ec3b 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -62,6 +62,8 @@ typedef struct varent { const char *header; const struct var *var; u_int width; +#define VE_KEEP (1 << 0) + uint16_t flags; } VARENT; STAILQ_HEAD(velisthead, varent); From nobody Thu May 1 19:51:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnh3SCvz5vf1S; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnh1JCDz46cs; Thu, 01 May 2025 19:51:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lS7+ZJstBat8EVFcgK9FzNKIm3R7ZvRx1DwvvTJTUgc=; b=xG7oBzgIpjECgElik5EdqiVI+swnV7oO19uV/5SlsU19XxWbSHx/JPGEUMrDGN/BlIidqy xFPDLHQwG/5WiCS2YuoC4hxu4EQus1WLmNUXI4GG0G6WEjgyb8No8wei5e2hBrTDL4C82O gkwKBS0sfqXzatpDHRTsP+YZQZbQkMPGnLMJj5yFv2A2ldbiJaVFjsQmLPLm1fc+mQiBF1 DgWSWszkeipw9ieEKF6j15JexA0BZ7E3vmQgE7UjjGuPUTFucliytHqGQ/LzspgrjS4y1c l5La+vJWrz1wdTk98ub5Q3gmQkeI085U2zUYfIpvARsb8WDByDQC2CCUYe+waA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129096; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lS7+ZJstBat8EVFcgK9FzNKIm3R7ZvRx1DwvvTJTUgc=; b=HtuXnkMQ6z7vcTQ5Fj5wHGeUTwQXU+gqSj5Idj6SPJrCSmICQ+7QP1Ud/x5m6gDipbBLEW 070EYz3bgL+6xQQsQHq6SJxsmJ+5kzZRU7FXJShQZ31OSkAPlRxvF/ENSaWT7e6z30dlxP pPL3qzqNWj0loP0SNafYlZYFnHSmU6/Hz0F5YaKX51b4DMnl67xdAyMDwyEHdHQOciBuSq eqYq9vWWwU6JK5kAkO5i2WAaDfEcD0wnQN1o0cGLpnqRGATwcTyuFrpcgZI6wXjDNJvkBY lbzWPo8EvcWd27U4Kv8f6KYsSazH6skJ/avx3O+hRSo9x+YaXaCr+MSbCRMFEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129096; a=rsa-sha256; cv=none; b=QvztTcD0U0lmi/Iv6GZaRmfAWzunPyL3Ot3r7J1vvjvqWMQhWQMPWVBfr/JkvV1t9DuK7v fsg1fv+NF2tH3N/CeXJjmCLZAo+niv5KU1OqCx7YkQaapZKYnqlVPnRuMbPjdh8MHz/mGE VIRpmS7Q0g3hDDT+PKjsYzpIeZNroOjAdOHb3Sz7tqf87WcXe/iRFPaKEuYGo8z9knAyaq 69qmj/oF8Rd2+qKFOoLUj5aTTVZ8N6kAsJZDA2uCKTRki7Axz4AqwgxEZDdVHJLuQvD9OZ WkLxTjzGZTyFf+sNCRKmfgm6QcDkqF4x9HqSRdyRRR2cF+rg1FFCbEsuatMkKA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnh0nnHzjHj; Thu, 01 May 2025 19:51:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541Jpaet067418; Thu, 1 May 2025 19:51:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpaut067415; Thu, 1 May 2025 19:51:36 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:36 GMT Message-Id: <202505011951.541Jpaut067415@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: aa9c42003b5d - stable/14 - ps(1): Aliases: Resolve once, merge specifications List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: aa9c42003b5d3570d34255576a6a548e89c5318c Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=aa9c42003b5d3570d34255576a6a548e89c5318c commit aa9c42003b5d3570d34255576a6a548e89c5318c Author: Olivier Certner AuthorDate: 2025-04-25 13:20:08 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:04 +0000 ps(1): Aliases: Resolve once, merge specifications With this change, an alias keyword is resolved once and for all by merging specifications of the keyword (or chain of keywords) it points to. This merge in particular determines the final attributes of the alias keyword, as well as the final keyword it points to, which uniquely determines which information is printed (all non-alias keywords are assumed to display different data). Also, the alias resolving code has been moved into the resolve_alias() function and helpers (e.g., merge_alias()). Aliases are still resolved lazily as needed by default. The new top-level resolve_aliases() function is used to resolve them at once at program startup if ps(1) has been compiled with PS_CHECK_KEYWORDS defined. Else, it can also be called directly from a debugger. This is in preparation for removing columns that actually display the same information in a subsequent commit, as this requires being able to (quickly) determine if they are aliases to each other. *** The merge process is now explicit and more flexible. Previously, all fields of the resolved keyword were unconditionally used for the alias (the pointer to an alias keyword structure was replaced by one to the aliased keyword's one). Now, field 'final_kw' on the alias keyword will store a pointer to the aliased keyword structure (and not only its name, as a subsequent commit will need the structure address). Fields 'header', 'field' and 'flag' are taken from the aliased keyword if they have default values (NULL or 0), else the alias' values prevail. This allows an alias to override one or more of these fields. All fields after 'oproc', because they describe the information to display consistently with each other, are always taken from the aliased keyword. merge_alias() checks that the values of these fields in the alias keyword structure are unspecified (NULL, or some neutral value like 0 and UNSPEC). While here, parsefmt() was reworked to avoid any direct recursion and the break-up/recombination steps that were used when processing aliases. The latter was due to the mutual recursion with findvar() and its odd-for-that-purpose signature. findvar() has been removed in the process. Simplification of parsefmt() also allows to be more precise with the errors reported (in particular, the case of an empty keyword with a specific header would just be reported as a "keyword not found" message). While here, introduce the check_keywords() function, performing sanity checks on the declared keywords, currently only validating that they are declared in alphabetical order. As for resolve_aliases(), this function is called at startup on PS_CHECK_KEYWORDS, else it is available to be called from a debugger. Ideally, alias resolution should be done at compile time. In practice, it seems doing so at runtime was never a problem (there are only a few aliases compared to all available keywords, and there's currently at most one level of aliasing). With the changes here, it seems very unlikely to become one even if many more keywords, aliases or aliasing levels are added. MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 193e68d5174ffde70acc427f9d830797df9a13cb) --- bin/ps/Makefile | 3 + bin/ps/extern.h | 2 + bin/ps/keyword.c | 244 +++++++++++++++++++++++++++++++++++++++---------------- bin/ps/ps.c | 7 ++ bin/ps/ps.h | 21 +++-- 5 files changed, 200 insertions(+), 77 deletions(-) diff --git a/bin/ps/Makefile b/bin/ps/Makefile index 6d47b91e662e..120bf45962b0 100644 --- a/bin/ps/Makefile +++ b/bin/ps/Makefile @@ -12,5 +12,8 @@ SRCS= fmt.c keyword.c nlist.c print.c ps.c # CFLAGS+=-DLAZY_PS LIBADD= m kvm jail xo +.ifdef PS_CHECK_KEYWORDS +CFLAGS+=-DPS_CHECK_KEYWORDS +.endif .include diff --git a/bin/ps/extern.h b/bin/ps/extern.h index 94140f26d435..64d081484ace 100644 --- a/bin/ps/extern.h +++ b/bin/ps/extern.h @@ -45,6 +45,7 @@ extern struct velisthead varlist; __BEGIN_DECLS char *arguments(KINFO *, VARENT *); +void check_keywords(void); char *command(KINFO *, VARENT *); char *cputime(KINFO *, VARENT *); char *cpunum(KINFO *, VARENT *); @@ -75,6 +76,7 @@ void printheader(void); char *priorityr(KINFO *, VARENT *); char *egroupname(KINFO *, VARENT *); char *rgroupname(KINFO *, VARENT *); +void resolve_aliases(void); char *runame(KINFO *, VARENT *); char *rvar(KINFO *, VARENT *); void showkey(void); diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 154d26039cdb..35604465d04c 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -42,6 +42,8 @@ static char sccsid[] = "@(#)keyword.c 8.5 (Berkeley) 4/2/94"; #include #include +#include +#include #include #include #include @@ -50,7 +52,6 @@ static char sccsid[] = "@(#)keyword.c 8.5 (Berkeley) 4/2/94"; #include "ps.h" -static VAR *findvar(char *, struct velisthead *, int, char **header); static int vcmp(const void *, const void *); /* Compute offset in common structures. */ @@ -235,6 +236,120 @@ static VAR keywords[] = { static const size_t known_keywords_nb = nitems(keywords); +/* + * Sanity checks on declared keywords. + * + * Checks specific to aliases are done in resolve_alias() instead. + * + * Currently, only checks that keywords are alphabetically ordered by their + * names. More checks could be added, such as the absence of type (UNSPEC), + * 'fmt' (NULL) when the output routine is not kval()/rval(). + * + * Called from main() on PS_CHECK_KEYWORDS, else available when debugging. + */ +void +check_keywords(void) +{ + const VAR *k, *next_k; + bool order_violated = false; + + k = &keywords[0]; + for (size_t i = 1; i < known_keywords_nb; ++i) { + next_k = &keywords[i]; + if (vcmp(k, next_k) >= 0) { + xo_warnx("keywords bad order: '%s' followed by '%s'", + k->name, next_k->name); + order_violated = true; + } + k = next_k; + } + if (order_violated) + /* Must be the case as we rely on bsearch() + vcmp(). */ + xo_errx(2, "keywords are not in ascending order " + "(internal error)"); +} + +static void +alias_errx(const char *const name, const char *const what) +{ + xo_errx(2, "alias keyword '%s' specifies %s (internal error)", + name, what); +} + +static void +merge_alias(VAR *const k, VAR *const tgt) +{ + if ((tgt->flag & RESOLVED_ALIAS) != 0) + k->final_kw = tgt->final_kw; + else { + k->final_kw = tgt; + assert(tgt->aliased == NULL); + } + +#define MERGE_IF_SENTINEL(field, sentinel) do { \ + if (k->field == sentinel) \ + k->field = tgt->field; \ +} while (0) + + MERGE_IF_SENTINEL(header, NULL); + MERGE_IF_SENTINEL(field, NULL); + /* If NOINHERIT is present, no merge occurs. */ + MERGE_IF_SENTINEL(flag, 0); + +#undef MERGE_IF_SENTINEL + + /* We also check that aliases don't specify things they should not. */ +#define MERGE_CHECK_SENTINEL(field, sentinel, field_descr) do { \ + if (k->field != sentinel) \ + alias_errx(k->name, field_descr); \ + k->field = tgt->field; \ +} while (0); + + MERGE_CHECK_SENTINEL(oproc, NULL, "an output routine"); + MERGE_CHECK_SENTINEL(off, 0, "a structure offset"); + MERGE_CHECK_SENTINEL(type, UNSPEC, "a different type than UNSPEC"); + MERGE_CHECK_SENTINEL(fmt, NULL, "a printf format"); + +#undef MERGE_CHECK_SENTINEL +} + +static void +resolve_alias(VAR *const k) +{ + VAR *t, key; + + if ((k->flag & RESOLVED_ALIAS) != 0 || k->aliased == NULL) + return; + + if ((k->flag & RESOLVING_ALIAS) != 0) + xo_errx(2, "cycle when resolving alias keyword '%s'", k->name); + k->flag |= RESOLVING_ALIAS; + + key.name = k->aliased; + t = bsearch(&key, keywords, known_keywords_nb, sizeof(VAR), vcmp); + if (t == NULL) + xo_errx(2, "unknown target '%s' for keyword alias '%s'", + k->aliased, k->name); + + resolve_alias(t); + merge_alias(k, t); + + k->flag &= ~RESOLVING_ALIAS; + k->flag |= RESOLVED_ALIAS; +} + +/* + * Resolve all aliases immediately. + * + * Called from main() on PS_CHECK_KEYWORDS, else available when debugging. + */ +void +resolve_aliases(void) +{ + for (size_t i = 0; i < known_keywords_nb; ++i) + resolve_alias(&keywords[i]); +} + void showkey(void) { @@ -267,30 +382,56 @@ void parsefmt(const char *p, struct velisthead *const var_list, const int user) { - char *tempstr, *tempstr1; + char *copy, *cp; + char *hdr_p, sep; + size_t sep_idx; + VAR *v, key; + struct varent *vent; -#define FMTSEP " \t,\n" - tempstr1 = tempstr = strdup(p); - while (tempstr && *tempstr) { - char *cp, *hp; - VAR *v; - struct varent *vent; + cp = copy = strdup(p); + if (copy == NULL) + xo_err(1, "strdup"); + + sep = cp[0]; /* We only care if it's 0 or not here. */ + sep_idx = -1; + while (sep != '\0') { + cp += sep_idx + 1; /* * If an item contains an equals sign, it specifies a column * header, may contain embedded separator characters and * is always the last item. */ - if (tempstr[strcspn(tempstr, "="FMTSEP)] != '=') - while ((cp = strsep(&tempstr, FMTSEP)) != NULL && - *cp == '\0') - /* void */; - else { - cp = tempstr; - tempstr = NULL; + sep_idx = strcspn(cp, "= \t,\n"); + sep = cp[sep_idx]; + cp[sep_idx] = 0; + if (sep == '=') { + hdr_p = cp + sep_idx + 1; + sep = '\0'; /* No more keywords. */ + } else + hdr_p = NULL; + + /* At this point, '*cp' is '\0' iff 'sep_idx' is 0. */ + if (*cp == '\0') { + /* + * Empty keyword. Skip it, and silently unless some + * header has been specified. + */ + if (hdr_p != NULL) + xo_warnx("empty keyword with header '%s'", + hdr_p); + continue; } - if (cp == NULL || !(v = findvar(cp, var_list, user, &hp))) + + /* Find the keyword. */ + key.name = cp; + v = bsearch(&key, keywords, + known_keywords_nb, sizeof(VAR), vcmp); + if (v == NULL) { + xo_warnx("%s: keyword not found", cp); + eval = 1; continue; + } if (!user) { /* * If the user is NOT adding this field manually, @@ -301,19 +442,31 @@ parsefmt(const char *p, struct velisthead *const var_list, if (vent != NULL) continue; } + +#ifndef PS_CHECK_KEYWORDS + /* + * On PS_CHECK_KEYWORDS, this is not necessary as all aliases + * are resolved at startup in main() by calling + * resolve_aliases(). + */ + resolve_alias(v); +#endif + if ((vent = malloc(sizeof(struct varent))) == NULL) xo_errx(1, "malloc failed"); vent->header = v->header; - if (hp) { - hp = strdup(hp); - if (hp) - vent->header = hp; + if (hdr_p) { + hdr_p = strdup(hdr_p); + if (hdr_p) + vent->header = hdr_p; } vent->width = strlen(vent->header); vent->var = v; STAILQ_INSERT_TAIL(var_list, vent, next_ve); } - free(tempstr1); + + free(copy); + if (STAILQ_EMPTY(var_list)) { xo_warnx("no valid keywords; valid keywords:"); showkey(); @@ -321,55 +474,6 @@ parsefmt(const char *p, struct velisthead *const var_list, } } -static VAR * -findvar(char *p, struct velisthead *const var_list, int user, char **header) -{ - size_t rflen; - VAR *v, key; - char *hp, *realfmt; - - hp = strchr(p, '='); - if (hp) - *hp++ = '\0'; - - key.name = p; - v = bsearch(&key, keywords, known_keywords_nb, sizeof(VAR), vcmp); - - if (v && v->aliased) { - /* - * If the user specified an alternate-header for this - * (aliased) format-name, then we need to copy that - * alternate-header when making the recursive call to - * process the alias. - */ - if (hp == NULL) - parsefmt(v->aliased, var_list, user); - else { - /* - * XXX - This processing will not be correct for - * any alias which expands into a list of format - * keywords. Presently there are no aliases - * which do that. - */ - rflen = strlen(v->aliased) + strlen(hp) + 2; - realfmt = malloc(rflen); - if (realfmt == NULL) - xo_errx(1, "malloc failed"); - snprintf(realfmt, rflen, "%s=%s", v->aliased, hp); - parsefmt(realfmt, var_list, user); - free(realfmt); - } - return ((VAR *)NULL); - } - if (!v) { - xo_warnx("%s: keyword not found", p); - eval = 1; - } - if (header) - *header = hp; - return (v); -} - static int vcmp(const void *a, const void *b) { diff --git a/bin/ps/ps.c b/bin/ps/ps.c index fe100170b7e2..ad69027baa71 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -225,6 +225,13 @@ main(int argc, char *argv[]) pidmax_init(); +#ifdef PS_CHECK_KEYWORDS + /* Check for obvious problems in the keywords array. */ + check_keywords(); + /* Resolve all aliases at start to spot errors. */ + resolve_aliases(); +#endif + all = descendancy = _fmt = nselectors = optfatal = 0; prtheader = showthreads = wflag = xkeep_implied = 0; xkeep = -1; /* Neither -x nor -X. */ diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 7c4c5541b8eb..8a07586642c8 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -65,20 +65,27 @@ typedef struct varent { } VARENT; STAILQ_HEAD(velisthead, varent); +struct var; +typedef struct var VAR; /* Structure representing one available keyword. */ -typedef struct var { +struct var { const char *name; /* name(s) of variable */ union { + /* Valid field depends on RESOLVED_ALIAS' presence. */ const char *aliased; /* keyword this one is an alias to */ + const VAR *final_kw; /* final aliased keyword */ }; const char *header; /* default header */ const char *field; /* xo field name */ -#define COMM 0x01 /* needs exec arguments and environment (XXX) */ -#define LJUST 0x02 /* left adjust on output (trailing blanks) */ -#define USER 0x04 /* needs user structure */ -#define INF127 0x10 /* values >127 displayed as 127 */ +#define COMM 0x01 /* needs exec arguments and environment (XXX) */ +#define LJUST 0x02 /* left adjust on output (trailing blanks) */ +#define USER 0x04 /* needs user structure */ +#define INF127 0x10 /* values >127 displayed as 127 */ +#define NOINHERIT 0x1000 /* Don't inherit flags from aliased keyword. */ +#define RESOLVING_ALIAS 0x10000 /* Used transiently to resolve aliases. */ +#define RESOLVED_ALIAS 0x20000 /* Mark that an alias has been resolved. */ u_int flag; - /* output routine */ + /* output routine */ char *(*oproc)(struct kinfo *, struct varent *); /* * The following (optional) elements are hooks for passing information @@ -88,6 +95,6 @@ typedef struct var { size_t off; /* offset in structure */ enum type type; /* type of element */ const char *fmt; /* printf format (depends on output routine) */ -} VAR; +}; #include "extern.h" From nobody Thu May 1 19:51:35 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPng1n3Mz5vf1R; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPng0m6Xz46ck; Thu, 01 May 2025 19:51:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129095; h=from:from:reply-to:subject:subject: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++Bwaa5Ous6UCgV+Vu+3Jr8fjFISJu8mHWhlwbIdN4=; b=KBf5t+IBWmM50hrc+U/o144+quiSt+Ph1sl1S49BEpj6A88GLr4TffWu/X6inUSLZGLExx MXXmIpxlW1eTWKd35Uyt3aeAl3Wr9tGGABGaMIjXNUoOHgTux0WOXGvhgYQJO2Eqm2c+hT uaUAegpJ+LxfQGcaSX++K24Vt0VSYdukGjd7eD1xEfplfoJkHosaefD3AIkXWo+zCd+Pq8 e4kdcsaOyKGkjalFXGiG1vKlZhnqagxeDLSwopHI41IWD54e/ZMVerzQigLPaRP0HSru4i njJtIVJwqePUtgeg2RMykGS/ObEt0alZJNMJmlr+ei9mJqbL7lAkyjZEcoOI4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129095; h=from:from:reply-to:subject:subject: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++Bwaa5Ous6UCgV+Vu+3Jr8fjFISJu8mHWhlwbIdN4=; b=n/QXiqT8+Bb19XWEmSCjajTLl0CKDGN+VY4CM/ZksW6C6Z81VTrhGaGgPtQmwWvp927AIj UkMo8lCi9KHNCCMBfPCGtvSIqNqX2vMUBe4sPfRWH/7jh0MajJih18oG+U/VJAbViXh3T2 mDXJmwHmLOwBkKoxfXMAUnwVDJ0w2pTpPmmLZsK0YimgkvzD61CyU9mDUmhG12Dhfb5gYU PypJKtH+x5QDx0MXZkJbTvYO3MOLL8TljY19md0neykN+PhSDinypIgvaFtk8Ac280cTHv WthSesyj+HhZJbdvE1nsd4BNkP5/T4GaIWP1cB5HlV/OhNZCnVhbK78QxxfaJA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129095; a=rsa-sha256; cv=none; b=TrluOEGSn+3zvXCN5m1GLwQsFQOEvKLuG+uS1yv+naI3Kcwa708RiLxRPTd7+rlO7CItBy bGHUVa6KPYZwMvqCCtimBpPCj1O53F4aqWTOZwg7ZEHKZOyxc46ve1BBVclXoZ9oDtAH5Q /ZY1i7OwZbwIkV1NW6y/GN8QIfUdpYxzM9N77uA4RtXGOePLNVIfyKOoyf5GJWH5kzDjKr HjY8TSQS74KXm48GetcgTp09iXPE2Zm80MXQY2g7ZlvkcDAotdHbpnNLqpIllGEux20/Sc dQlRbsuNaeONRle0bcs3XN9lGiLEWX/NHn+9gBTPET6fc98PEsXzeogsIA1wZw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPng0HnqzhyQ; Thu, 01 May 2025 19:51:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpZIn067381; Thu, 1 May 2025 19:51:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpZI1067378; Thu, 1 May 2025 19:51:35 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:35 GMT Message-Id: <202505011951.541JpZI1067378@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 8cc27ecb1971 - stable/14 - ps(1): Keywords: New UNSPEC type, rename 'alias', re-order fields List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8cc27ecb19711c62903bd82233334181fd854457 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=8cc27ecb19711c62903bd82233334181fd854457 commit 8cc27ecb19711c62903bd82233334181fd854457 Author: Olivier Certner AuthorDate: 2025-04-25 12:16:56 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:03 +0000 ps(1): Keywords: New UNSPEC type, rename 'alias', re-order fields This is in preparation for a change in how aliases are resolved, itself in preparation for being able to quickly identify columns displaying the same information (same final keyword). Add the new UNSPEC ("unspecified") type, as the keywords' type field is only used by the kvar() and rvar() output routines, and has no meaning for alias keywords. In particular, this will allow to check that no specific type is associated to any alias. An immediate benefit is that now most keywords have UNSPEC as their "type", which now makes kvar()/rvar() explicitly fail (instead of trying to print a character, as the previous CHAR type was requesting). A developer introducing new keywords via copy-paste will thus be reminded that it also needs to set 'type' meaningfully if using kvar()/rvar() as the output routine. Rename field 'alias' of keywords ('VAR' type) into 'aliased'. Move it just after the keyword's name, as it makes it easier to spot aliases in the list. Make it a union, as a subsequent commit will... alias it with a pointer to another 'VAR' structure. Turn aliases' header string ("" for all aliases) into NULL. It is currently not used, but will be when introducing the new "merge" procedure for aliases (where it will mean: Use the header of the aliased keyword). While here, rename vars[] into the more descriptive keywords[]. MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 090f0e5820efc7f9459d1e4eb1be17fb98848df5) --- bin/ps/keyword.c | 349 ++++++++++++++++++++++++++++--------------------------- bin/ps/print.c | 7 ++ bin/ps/ps.h | 9 +- 3 files changed, 190 insertions(+), 175 deletions(-) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index 40986550b92b..154d26039cdb 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -63,185 +63,190 @@ static int vcmp(const void *, const void *); #define PIDFMT "d" /* PLEASE KEEP THE TABLE BELOW SORTED ALPHABETICALLY!!! */ -static VAR var[] = { - {"%cpu", "%CPU", NULL, "percent-cpu", 0, pcpu, 0, CHAR, NULL}, - {"%mem", "%MEM", NULL, "percent-memory", 0, pmem, 0, CHAR, NULL}, - {"acflag", "ACFLG", NULL, "accounting-flag", 0, kvar, KOFF(ki_acflag), - USHORT, "x"}, - {"acflg", "", "acflag", NULL, 0, NULL, 0, CHAR, NULL}, - {"args", "COMMAND", NULL, "arguments", COMM|LJUST|USER, arguments, 0, - CHAR, NULL}, - {"blocked", "", "sigmask", NULL, 0, NULL, 0, CHAR, NULL}, - {"caught", "", "sigcatch", NULL, 0, NULL, 0, CHAR, NULL}, - {"class", "CLASS", NULL, "login-class", LJUST, loginclass, 0, CHAR, - NULL}, - {"comm", "COMMAND", NULL, "command", LJUST, ucomm, 0, CHAR, NULL}, - {"command", "COMMAND", NULL, "command", COMM|LJUST|USER, command, 0, - CHAR, NULL}, - {"cow", "COW", NULL, "copy-on-write-faults", 0, kvar, KOFF(ki_cow), - UINT, "u"}, - {"cpu", "C", NULL, "on-cpu", 0, cpunum, 0, CHAR, NULL}, - {"cputime", "", "time", NULL, 0, NULL, 0, CHAR, NULL}, - {"dsiz", "DSIZ", NULL, "data-size", 0, kvar, KOFF(ki_dsize), PGTOK, - "ld"}, - {"egid", "", "gid", NULL, 0, NULL, 0, CHAR, NULL}, - {"egroup", "", "group", NULL, 0, NULL, 0, CHAR, NULL}, - {"emul", "EMUL", NULL, "emulation-envirnment", LJUST, emulname, 0, - CHAR, NULL}, - {"etime", "ELAPSED", NULL, "elapsed-time", USER, elapsed, 0, CHAR, - NULL}, - {"etimes", "ELAPSED", NULL, "elapsed-times", USER, elapseds, 0, CHAR, - NULL}, - {"euid", "", "uid", NULL, 0, NULL, 0, CHAR, NULL}, - {"f", "F", NULL, "flags", 0, kvar, KOFF(ki_flag), LONG, "lx"}, - {"f2", "F2", NULL, "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x"}, - {"fib", "FIB", NULL, "fib", 0, kvar, KOFF(ki_fibnum), INT, "d"}, - {"flags", "", "f", NULL, 0, NULL, 0, CHAR, NULL}, - {"flags2", "", "f2", NULL, 0, NULL, 0, CHAR, NULL}, - {"gid", "GID", NULL, "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT}, - {"group", "GROUP", NULL, "group", LJUST, egroupname, 0, CHAR, NULL}, - {"ignored", "", "sigignore", NULL, 0, NULL, 0, CHAR, NULL}, - {"inblk", "INBLK", NULL, "read-blocks", USER, rvar, ROFF(ru_inblock), - LONG, "ld"}, - {"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL}, - {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL}, - {"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d"}, - {"jobc", "JOBC", NULL, "job-control-count", 0, kvar, KOFF(ki_jobc), - SHORT, "d"}, - {"ktrace", "KTRACE", NULL, "ktrace", 0, kvar, KOFF(ki_traceflag), INT, - "x"}, - {"label", "LABEL", NULL, "label", LJUST, label, 0, CHAR, NULL}, - {"lim", "LIM", NULL, "memory-limit", 0, maxrss, 0, CHAR, NULL}, - {"lockname", "LOCK", NULL, "lock-name", LJUST, lockname, 0, CHAR, NULL}, - {"login", "LOGIN", NULL, "login-name", LJUST, logname, 0, CHAR, NULL}, - {"logname", "", "login", NULL, 0, NULL, 0, CHAR, NULL}, - {"lstart", "STARTED", NULL, "start-time", LJUST|USER, lstarted, 0, - CHAR, NULL}, - {"lwp", "LWP", NULL, "thread-id", 0, kvar, KOFF(ki_tid), UINT, - LWPFMT}, - {"majflt", "MAJFLT", NULL, "major-faults", USER, rvar, ROFF(ru_majflt), - LONG, "ld"}, - {"minflt", "MINFLT", NULL, "minor-faults", USER, rvar, ROFF(ru_minflt), - LONG, "ld"}, - {"msgrcv", "MSGRCV", NULL, "received-messages", USER, rvar, - ROFF(ru_msgrcv), LONG, "ld"}, - {"msgsnd", "MSGSND", NULL, "sent-messages", USER, rvar, - ROFF(ru_msgsnd), LONG, "ld"}, - {"mwchan", "MWCHAN", NULL, "wait-channel", LJUST, mwchan, 0, CHAR, - NULL}, - {"ni", "", "nice", NULL, 0, NULL, 0, CHAR, NULL}, - {"nice", "NI", NULL, "nice", 0, kvar, KOFF(ki_nice), CHAR, "d"}, - {"nivcsw", "NIVCSW", NULL, "involuntary-context-switches", USER, rvar, - ROFF(ru_nivcsw), LONG, "ld"}, - {"nlwp", "NLWP", NULL, "threads", 0, kvar, KOFF(ki_numthreads), UINT, - NLWPFMT}, - {"nsignals", "", "nsigs", NULL, 0, NULL, 0, CHAR, NULL}, - {"nsigs", "NSIGS", NULL, "signals-taken", USER, rvar, - ROFF(ru_nsignals), LONG, "ld"}, - {"nswap", "NSWAP", NULL, "swaps", USER, rvar, ROFF(ru_nswap), LONG, - "ld"}, - {"nvcsw", "NVCSW", NULL, "voluntary-context-switches", USER, rvar, - ROFF(ru_nvcsw), LONG, "ld"}, - {"nwchan", "NWCHAN", NULL, "wait-channel-address", LJUST, nwchan, 0, - CHAR, NULL}, - {"oublk", "OUBLK", NULL, "written-blocks", USER, rvar, - ROFF(ru_oublock), LONG, "ld"}, - {"oublock", "", "oublk", NULL, 0, NULL, 0, CHAR, NULL}, - {"paddr", "PADDR", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx"}, - {"pagein", "PAGEIN", NULL, "pageins", USER, pagein, 0, CHAR, NULL}, - {"pcpu", "", "%cpu", NULL, 0, NULL, 0, CHAR, NULL}, - {"pending", "", "sig", NULL, 0, NULL, 0, CHAR, NULL}, - {"pgid", "PGID", NULL, "process-group", 0, kvar, KOFF(ki_pgid), UINT, - PIDFMT}, - {"pid", "PID", NULL, "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT}, - {"pmem", "", "%mem", NULL, 0, NULL, 0, CHAR, NULL}, - {"ppid", "PPID", NULL, "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT}, - {"pri", "PRI", NULL, "priority", 0, pri, 0, CHAR, NULL}, - {"re", "RE", NULL, "residency-time", INF127, kvar, KOFF(ki_swtime), - UINT, "d"}, - {"rgid", "RGID", NULL, "real-gid", 0, kvar, KOFF(ki_rgid), UINT, - UIDFMT}, - {"rgroup", "RGROUP", NULL, "real-group", LJUST, rgroupname, 0, CHAR, - NULL}, - {"rss", "RSS", NULL, "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld"}, - {"rtprio", "RTPRIO", NULL, "realtime-priority", 0, priorityr, - KOFF(ki_pri), CHAR, NULL}, - {"ruid", "RUID", NULL, "real-uid", 0, kvar, KOFF(ki_ruid), UINT, - UIDFMT}, - {"ruser", "RUSER", NULL, "real-user", LJUST, runame, 0, CHAR, NULL}, - {"sid", "SID", NULL, "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT}, - {"sig", "PENDING", NULL, "signals-pending", 0, kvar, KOFF(ki_siglist), - INT, "x"}, - {"sigcatch", "CAUGHT", NULL, "signals-caught", 0, kvar, - KOFF(ki_sigcatch), UINT, "x"}, - {"sigignore", "IGNORED", NULL, "signals-ignored", 0, kvar, - KOFF(ki_sigignore), UINT, "x"}, - {"sigmask", "BLOCKED", NULL, "signal-mask", 0, kvar, KOFF(ki_sigmask), - UINT, "x"}, - {"sl", "SL", NULL, "sleep-time", INF127, kvar, KOFF(ki_slptime), UINT, - "d"}, - {"ssiz", "SSIZ", NULL, "stack-size", 0, kvar, KOFF(ki_ssize), PGTOK, - "ld"}, - {"start", "STARTED", NULL, "start-time", LJUST|USER, started, 0, CHAR, - NULL}, - {"stat", "", "state", NULL, 0, NULL, 0, CHAR, NULL}, - {"state", "STAT", NULL, "state", LJUST, state, 0, CHAR, NULL}, - {"svgid", "SVGID", NULL, "saved-gid", 0, kvar, KOFF(ki_svgid), UINT, - UIDFMT}, - {"svuid", "SVUID", NULL, "saved-uid", 0, kvar, KOFF(ki_svuid), UINT, - UIDFMT}, - {"systime", "SYSTIME", NULL, "system-time", USER, systime, 0, CHAR, - NULL}, - {"tdaddr", "TDADDR", NULL, "thread-address", 0, kvar, KOFF(ki_tdaddr), - KPTR, "lx"}, - {"tdev", "TDEV", NULL, "terminal-device", 0, tdev, 0, CHAR, NULL}, - {"tdnam", "", "tdname", NULL, 0, NULL, 0, CHAR, NULL}, - {"tdname", "TDNAME", NULL, "thread-name", LJUST, tdnam, 0, CHAR, - NULL}, - {"tid", "", "lwp", NULL, 0, NULL, 0, CHAR, NULL}, - {"time", "TIME", NULL, "cpu-time", USER, cputime, 0, CHAR, NULL}, - {"tpgid", "TPGID", NULL, "terminal-process-gid", 0, kvar, - KOFF(ki_tpgid), UINT, PIDFMT}, - {"tracer", "TRACER", NULL, "tracer", 0, kvar, KOFF(ki_tracer), UINT, - PIDFMT}, - {"tsid", "TSID", NULL, "terminal-sid", 0, kvar, KOFF(ki_tsid), UINT, - PIDFMT}, - {"tsiz", "TSIZ", NULL, "text-size", 0, kvar, KOFF(ki_tsize), PGTOK, - "ld"}, - {"tt", "TT ", NULL, "terminal-name", 0, tname, 0, CHAR, NULL}, - {"tty", "TTY", NULL, "tty", LJUST, longtname, 0, CHAR, NULL}, - {"ucomm", "UCOMM", NULL, "accounting-name", LJUST, ucomm, 0, CHAR, - NULL}, - {"uid", "UID", NULL, "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT}, - {"upr", "UPR", NULL, "user-priority", 0, upr, 0, CHAR, NULL}, - {"uprocp", "UPROCP", NULL, "process-address", 0, kvar, KOFF(ki_paddr), - KPTR, "lx"}, - {"user", "USER", NULL, "user", LJUST, username, 0, CHAR, NULL}, - {"usertime", "USERTIME", NULL, "user-time", USER, usertime, 0, CHAR, - NULL}, - {"usrpri", "", "upr", NULL, 0, NULL, 0, CHAR, NULL}, - {"vmaddr", "VMADDR", NULL, "vmspace-address", 0, kvar, KOFF(ki_vmspace), - KPTR, "lx"}, - {"vsize", "", "vsz", NULL, 0, NULL, 0, CHAR, NULL}, - {"vsz", "VSZ", NULL, "virtual-size", 0, vsize, 0, CHAR, NULL}, - {"wchan", "WCHAN", NULL, "wait-channel", LJUST, wchan, 0, CHAR, NULL}, - {"xstat", "XSTAT", NULL, "exit-status", 0, kvar, KOFF(ki_xstat), - USHORT, "x"}, +static VAR keywords[] = { + {"%cpu", {NULL}, "%CPU", "percent-cpu", 0, pcpu, 0, UNSPEC, NULL}, + {"%mem", {NULL}, "%MEM", "percent-memory", 0, pmem, 0, UNSPEC, NULL}, + {"acflag", {NULL}, "ACFLG", "accounting-flag", 0, kvar, KOFF(ki_acflag), + USHORT, "x"}, + {"acflg", {"acflag"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"args", {NULL}, "COMMAND", "arguments", COMM|LJUST|USER, arguments, 0, + UNSPEC, NULL}, + {"blocked", {"sigmask"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"caught", {"sigcatch"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"class", {NULL}, "CLASS", "login-class", LJUST, loginclass, 0, + UNSPEC, NULL}, + {"comm", {NULL}, "COMMAND", "command", LJUST, ucomm, 0, UNSPEC, NULL}, + {"command", {NULL}, "COMMAND", "command", COMM|LJUST|USER, command, 0, + UNSPEC, NULL}, + {"cow", {NULL}, "COW", "copy-on-write-faults", 0, kvar, KOFF(ki_cow), + UINT, "u"}, + {"cpu", {NULL}, "C", "on-cpu", 0, cpunum, 0, UNSPEC, NULL}, + {"cputime", {"time"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"dsiz", {NULL}, "DSIZ", "data-size", 0, kvar, KOFF(ki_dsize), + PGTOK, "ld"}, + {"egid", {"gid"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"egroup", {"group"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"emul", {NULL}, "EMUL", "emulation-envirnment", LJUST, emulname, 0, + UNSPEC, NULL}, + {"etime", {NULL}, "ELAPSED", "elapsed-time", USER, elapsed, 0, + UNSPEC, NULL}, + {"etimes", {NULL}, "ELAPSED", "elapsed-times", USER, elapseds, 0, + UNSPEC, NULL}, + {"euid", {"uid"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"f", {NULL}, "F", "flags", 0, kvar, KOFF(ki_flag), LONG, "lx"}, + {"f2", {NULL}, "F2", "flags2", 0, kvar, KOFF(ki_flag2), INT, "08x"}, + {"fib", {NULL}, "FIB", "fib", 0, kvar, KOFF(ki_fibnum), INT, "d"}, + {"flags", {"f"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"flags2", {"f2"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"gid", {NULL}, "GID", "gid", 0, kvar, KOFF(ki_groups), UINT, UIDFMT}, + {"group", {NULL}, "GROUP", "group", LJUST, egroupname, 0, UNSPEC, NULL}, + {"ignored", {"sigignore"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"inblk", {NULL}, "INBLK", "read-blocks", USER, rvar, ROFF(ru_inblock), + LONG, "ld"}, + {"inblock", {"inblk"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"jail", {NULL}, "JAIL", "jail-name", LJUST, jailname, 0, UNSPEC, NULL}, + {"jid", {NULL}, "JID", "jail-id", 0, kvar, KOFF(ki_jid), INT, "d"}, + {"jobc", {NULL}, "JOBC", "job-control-count", 0, kvar, KOFF(ki_jobc), + SHORT, "d"}, + {"ktrace", {NULL}, "KTRACE", "ktrace", 0, kvar, KOFF(ki_traceflag), + INT, "x"}, + {"label", {NULL}, "LABEL", "label", LJUST, label, 0, UNSPEC, NULL}, + {"lim", {NULL}, "LIM", "memory-limit", 0, maxrss, 0, UNSPEC, NULL}, + {"lockname", {NULL}, "LOCK", "lock-name", LJUST, lockname, 0, + UNSPEC, NULL}, + {"login", {NULL}, "LOGIN", "login-name", LJUST, logname, 0, + UNSPEC, NULL}, + {"logname", {"login"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"lstart", {NULL}, "STARTED", "start-time", LJUST|USER, lstarted, 0, + UNSPEC, NULL}, + {"lwp", {NULL}, "LWP", "thread-id", 0, kvar, KOFF(ki_tid), + UINT, LWPFMT}, + {"majflt", {NULL}, "MAJFLT", "major-faults", USER, rvar, ROFF(ru_majflt), + LONG, "ld"}, + {"minflt", {NULL}, "MINFLT", "minor-faults", USER, rvar, ROFF(ru_minflt), + LONG, "ld"}, + {"msgrcv", {NULL}, "MSGRCV", "received-messages", USER, rvar, + ROFF(ru_msgrcv), LONG, "ld"}, + {"msgsnd", {NULL}, "MSGSND", "sent-messages", USER, rvar, + ROFF(ru_msgsnd), LONG, "ld"}, + {"mwchan", {NULL}, "MWCHAN", "wait-channel", LJUST, mwchan, 0, + UNSPEC, NULL}, + {"ni", {"nice"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"nice", {NULL}, "NI", "nice", 0, kvar, KOFF(ki_nice), CHAR, "d"}, + {"nivcsw", {NULL}, "NIVCSW", "involuntary-context-switches", USER, rvar, + ROFF(ru_nivcsw), LONG, "ld"}, + {"nlwp", {NULL}, "NLWP", "threads", 0, kvar, KOFF(ki_numthreads), + UINT, NLWPFMT}, + {"nsignals", {"nsigs"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"nsigs", {NULL}, "NSIGS", "signals-taken", USER, rvar, + ROFF(ru_nsignals), LONG, "ld"}, + {"nswap", {NULL}, "NSWAP", "swaps", USER, rvar, ROFF(ru_nswap), + LONG, "ld"}, + {"nvcsw", {NULL}, "NVCSW", "voluntary-context-switches", USER, rvar, + ROFF(ru_nvcsw), LONG, "ld"}, + {"nwchan", {NULL}, "NWCHAN", "wait-channel-address", LJUST, nwchan, 0, + UNSPEC, NULL}, + {"oublk", {NULL}, "OUBLK", "written-blocks", USER, rvar, + ROFF(ru_oublock), LONG, "ld"}, + {"oublock", {"oublk"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"paddr", {NULL}, "PADDR", "process-address", 0, kvar, KOFF(ki_paddr), + KPTR, "lx"}, + {"pagein", {NULL}, "PAGEIN", "pageins", USER, pagein, 0, UNSPEC, NULL}, + {"pcpu", {"%cpu"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"pending", {"sig"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"pgid", {NULL}, "PGID", "process-group", 0, kvar, KOFF(ki_pgid), + UINT, PIDFMT}, + {"pid", {NULL}, "PID", "pid", 0, kvar, KOFF(ki_pid), UINT, PIDFMT}, + {"pmem", {"%mem"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"ppid", {NULL}, "PPID", "ppid", 0, kvar, KOFF(ki_ppid), UINT, PIDFMT}, + {"pri", {NULL}, "PRI", "priority", 0, pri, 0, UNSPEC, NULL}, + {"re", {NULL}, "RE", "residency-time", INF127, kvar, KOFF(ki_swtime), + UINT, "d"}, + {"rgid", {NULL}, "RGID", "real-gid", 0, kvar, KOFF(ki_rgid), + UINT, UIDFMT}, + {"rgroup", {NULL}, "RGROUP", "real-group", LJUST, rgroupname, 0, + UNSPEC, NULL}, + {"rss", {NULL}, "RSS", "rss", 0, kvar, KOFF(ki_rssize), PGTOK, "ld"}, + {"rtprio", {NULL}, "RTPRIO", "realtime-priority", 0, priorityr, + KOFF(ki_pri), UNSPEC, NULL}, + {"ruid", {NULL}, "RUID", "real-uid", 0, kvar, KOFF(ki_ruid), + UINT, UIDFMT}, + {"ruser", {NULL}, "RUSER", "real-user", LJUST, runame, 0, UNSPEC, NULL}, + {"sid", {NULL}, "SID", "sid", 0, kvar, KOFF(ki_sid), UINT, PIDFMT}, + {"sig", {NULL}, "PENDING", "signals-pending", 0, kvar, KOFF(ki_siglist), + INT, "x"}, + {"sigcatch", {NULL}, "CAUGHT", "signals-caught", 0, kvar, + KOFF(ki_sigcatch), UINT, "x"}, + {"sigignore", {NULL}, "IGNORED", "signals-ignored", 0, kvar, + KOFF(ki_sigignore), UINT, "x"}, + {"sigmask", {NULL}, "BLOCKED", "signal-mask", 0, kvar, KOFF(ki_sigmask), + UINT, "x"}, + {"sl", {NULL}, "SL", "sleep-time", INF127, kvar, KOFF(ki_slptime), + UINT, "d"}, + {"ssiz", {NULL}, "SSIZ", "stack-size", 0, kvar, KOFF(ki_ssize), + PGTOK, "ld"}, + {"start", {NULL}, "STARTED", "start-time", LJUST|USER, started, 0, + UNSPEC, NULL}, + {"stat", {"state"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"state", {NULL}, "STAT", "state", LJUST, state, 0, UNSPEC, NULL}, + {"svgid", {NULL}, "SVGID", "saved-gid", 0, kvar, KOFF(ki_svgid), + UINT, UIDFMT}, + {"svuid", {NULL}, "SVUID", "saved-uid", 0, kvar, KOFF(ki_svuid), + UINT, UIDFMT}, + {"systime", {NULL}, "SYSTIME", "system-time", USER, systime, 0, + UNSPEC, NULL}, + {"tdaddr", {NULL}, "TDADDR", "thread-address", 0, kvar, KOFF(ki_tdaddr), + KPTR, "lx"}, + {"tdev", {NULL}, "TDEV", "terminal-device", 0, tdev, 0, UNSPEC, NULL}, + {"tdnam", {"tdname"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"tdname", {NULL}, "TDNAME", "thread-name", LJUST, tdnam, 0, + UNSPEC, NULL}, + {"tid", {"lwp"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"time", {NULL}, "TIME", "cpu-time", USER, cputime, 0, UNSPEC, NULL}, + {"tpgid", {NULL}, "TPGID", "terminal-process-gid", 0, kvar, + KOFF(ki_tpgid), UINT, PIDFMT}, + {"tracer", {NULL}, "TRACER", "tracer", 0, kvar, KOFF(ki_tracer), + UINT, PIDFMT}, + {"tsid", {NULL}, "TSID", "terminal-sid", 0, kvar, KOFF(ki_tsid), + UINT, PIDFMT}, + {"tsiz", {NULL}, "TSIZ", "text-size", 0, kvar, KOFF(ki_tsize), + PGTOK, "ld"}, + {"tt", {NULL}, "TT ", "terminal-name", 0, tname, 0, UNSPEC, NULL}, + {"tty", {NULL}, "TTY", "tty", LJUST, longtname, 0, UNSPEC, NULL}, + {"ucomm", {NULL}, "UCOMM", "accounting-name", LJUST, ucomm, 0, + UNSPEC, NULL}, + {"uid", {NULL}, "UID", "uid", 0, kvar, KOFF(ki_uid), UINT, UIDFMT}, + {"upr", {NULL}, "UPR", "user-priority", 0, upr, 0, UNSPEC, NULL}, + {"uprocp", {NULL}, "UPROCP", "process-address", 0, kvar, KOFF(ki_paddr), + KPTR, "lx"}, + {"user", {NULL}, "USER", "user", LJUST, username, 0, UNSPEC, NULL}, + {"usertime", {NULL}, "USERTIME", "user-time", USER, usertime, 0, + UNSPEC, NULL}, + {"usrpri", {"upr"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"vmaddr", {NULL}, "VMADDR", "vmspace-address", 0, kvar, + KOFF(ki_vmspace), KPTR, "lx"}, + {"vsize", {"vsz"}, NULL, NULL, 0, NULL, 0, UNSPEC, NULL}, + {"vsz", {NULL}, "VSZ", "virtual-size", 0, vsize, 0, UNSPEC, NULL}, + {"wchan", {NULL}, "WCHAN", "wait-channel", LJUST, wchan, 0, + UNSPEC, NULL}, + {"xstat", {NULL}, "XSTAT", "exit-status", 0, kvar, KOFF(ki_xstat), + USHORT, "x"}, }; +static const size_t known_keywords_nb = nitems(keywords); + void showkey(void) { const VAR *v; - const VAR *const end = var + nitems(var); + const VAR *const end = keywords + known_keywords_nb; const char *sep; int i; i = 0; sep = ""; xo_open_list("key"); - for (v = var; v < end; ++v) { + for (v = keywords; v < end; ++v) { const char *const p = v->name; const int len = strlen(p); @@ -328,9 +333,9 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) *hp++ = '\0'; key.name = p; - v = bsearch(&key, var, nitems(var), sizeof(VAR), vcmp); + v = bsearch(&key, keywords, known_keywords_nb, sizeof(VAR), vcmp); - if (v && v->alias) { + if (v && v->aliased) { /* * If the user specified an alternate-header for this * (aliased) format-name, then we need to copy that @@ -338,7 +343,7 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) * process the alias. */ if (hp == NULL) - parsefmt(v->alias, var_list, user); + parsefmt(v->aliased, var_list, user); else { /* * XXX - This processing will not be correct for @@ -346,11 +351,11 @@ findvar(char *p, struct velisthead *const var_list, int user, char **header) * keywords. Presently there are no aliases * which do that. */ - rflen = strlen(v->alias) + strlen(hp) + 2; + rflen = strlen(v->aliased) + strlen(hp) + 2; realfmt = malloc(rflen); if (realfmt == NULL) xo_errx(1, "malloc failed"); - snprintf(realfmt, rflen, "%s=%s", v->alias, hp); + snprintf(realfmt, rflen, "%s=%s", v->aliased, hp); parsefmt(realfmt, var_list, user); free(realfmt); } diff --git a/bin/ps/print.c b/bin/ps/print.c index a3f8f244648d..c12a8dd8fbe1 100644 --- a/bin/ps/print.c +++ b/bin/ps/print.c @@ -758,6 +758,10 @@ printval(void *bp, const VAR *v) #define CHKINF127(n) (((n) > 127) && (v->flag & INF127) ? 127 : (n)) switch (v->type) { + case UNSPEC: + xo_errx(1, "cannot print value of unspecified type " + "(internal error)"); + break; case CHAR: (void)asprintf(&str, ofmt, *(char *)bp); break; @@ -788,6 +792,9 @@ printval(void *bp, const VAR *v) case PGTOK: (void)asprintf(&str, ofmt, ps_pgtok(*(u_long *)bp)); break; + default: + xo_errx(1, "unknown type (internal error)"); + break; } return (str); diff --git a/bin/ps/ps.h b/bin/ps/ps.h index 800e732262e9..7c4c5541b8eb 100644 --- a/bin/ps/ps.h +++ b/bin/ps/ps.h @@ -34,7 +34,8 @@ #include #define UNLIMITED 0 /* unlimited terminal width */ -enum type { CHAR, UCHAR, SHORT, USHORT, INT, UINT, LONG, ULONG, KPTR, PGTOK }; +enum type { UNSPEC, /* For output routines that don't care and aliases. */ + CHAR, UCHAR, SHORT, USHORT, INT, UINT, LONG, ULONG, KPTR, PGTOK }; typedef struct kinfo_str { STAILQ_ENTRY(kinfo_str) ks_next; @@ -67,8 +68,10 @@ STAILQ_HEAD(velisthead, varent); /* Structure representing one available keyword. */ typedef struct var { const char *name; /* name(s) of variable */ + union { + const char *aliased; /* keyword this one is an alias to */ + }; const char *header; /* default header */ - const char *alias; /* aliases */ const char *field; /* xo field name */ #define COMM 0x01 /* needs exec arguments and environment (XXX) */ #define LJUST 0x02 /* left adjust on output (trailing blanks) */ @@ -84,7 +87,7 @@ typedef struct var { */ size_t off; /* offset in structure */ enum type type; /* type of element */ - const char *fmt; /* printf format */ + const char *fmt; /* printf format (depends on output routine) */ } VAR; #include "extern.h" From nobody Thu May 1 19:51:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnl1hvFz5vf36; Thu, 01 May 2025 19:51:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnk2vGgz46dN; Thu, 01 May 2025 19:51:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gUhGXu6q8e2otFK03D9Si+4GmVbvvtR7rNtKyyYsaWw=; b=NLO8JY8eoON7FmeLJ1wU6D7iZ6BrqbQUaqWRkXzRNiTQfuNfW3F0heLid4SFI3QSnhjsGS 8uwfHMczJ8zogpg75GSjc3THhEEpguSzCgTLbm6/klGoYGQQOzg9I6SBMFjRla7/goN0RD dNrJzPObC02GBj8drqWkpaeiZMb4wBtiBKo4gCTtH6ekW3zj7tAKjZ7ft+EEv8wmD9wQdq dEMpTOSPifenRWfjNLIhLuD21fyTGe0WViQH22CJWF5aRJbAA6lkMOFwl7jcXRQU+1Bhzs 6XJChk+CRuvMyTga4M39b86jfXMBGKf9lSdPfgZf1RFBx9v+khduea0djKn4Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129098; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gUhGXu6q8e2otFK03D9Si+4GmVbvvtR7rNtKyyYsaWw=; b=Q9vyxUbTvSaCDQWq1yyp26IQsZGnXDTrL+NYuHl9K+xBmEBWcQZJqEUJzI6cVs3SQojV3e /xkfTDNVyB7q8d1w6U8eSIqTWI2Khf6eu8GKS25+h6Mb8zcrkvqpYqd01ygoBz6fvJq9Qh TuHoxjoRq/HlWHcXrpXx5J/TIkqMtXV/TKsEZZOIrZxaVmF4X+gveMJzmeEqlWtFTCpVTY EjQtjeGePd6xgFsSX09rILF1+G0eeW1sf22OzkopsCzEktJipwZ7N4qcpYNWigkrJqe6TA CdrfMkA8GzOQm4pv1gDJlPxZhBOJHg2vavnwey4E3cQnvJwHmqUrom8sgLtMsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129098; a=rsa-sha256; cv=none; b=w8wcj7G+V0xEeB+7dbAH29OOIarehq39TLDJOzViGcbXg1dbed92PLeuaQmgjeiL3Kw0lh f/baCMB0ztehtZo5zN6Z+TvSWyuVhNK0MFZfV0CeR3DxvFy1dI4eYgDOYYQgBOXo+iQyED 3fCG7FVlA1eTXIrFlT6pJodeXyCgj3NpRh/fA8hRcPGr6ghQeYFgVdKywEFpyT1MSd1PHB euiUohZNIwPMYfNu5OIh7y9Gk/DYj8A+or1D6xP3M9Fz1aF1sJqDQUbVJ9BhWLLS3x9vCN 5KoVD2sMd04K087I/Tm7BFtlVnlIs4s3G7JwGNFabaodyBquhTeBCuBP0Ozhwg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnk2SyJzhjK; Thu, 01 May 2025 19:51:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpcG7067509; Thu, 1 May 2025 19:51:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpcCJ067505; Thu, 1 May 2025 19:51:38 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:38 GMT Message-Id: <202505011951.541JpcCJ067505@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 220800ca96ba - stable/14 - ps(1): Constify the format strings for canned displays List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 220800ca96bad51a4bbd26f4a21d633c71d8aaf9 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=220800ca96bad51a4bbd26f4a21d633c71d8aaf9 commit 220800ca96bad51a4bbd26f4a21d633c71d8aaf9 Author: Olivier Certner AuthorDate: 2025-04-01 12:50:26 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:04 +0000 ps(1): Constify the format strings for canned displays Now that removal of non-explicitly-requested duplicate columns work with a O(n) algorithm, remove the ad-hoc optimization of crushing the canned displays' formats after first use and constify their format strings. No functional change intended. This change could also be useful if/when allowing, e.g., to double letters of canned displays to indicate their columns should not be subject to automatic removal of duplicates (e.g., 'ps -ll'). MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49614 (cherry picked from commit fd6b81712eb9a77bbe484954d18fe1fc4a27116b) --- bin/ps/ps.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 20f737cbff6d..03454cb2b6ee 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -169,16 +169,16 @@ static void remove_redundant_columns(struct keyword_info *); static void pidmax_init(void); static void usage(void); -static char dfmt[] = "pid,tt,state,time,command"; -static char jfmt[] = "user,pid,ppid,pgid,sid,jobc,state,tt,time,command"; -static char lfmt[] = "uid,pid,ppid,cpu,pri,nice,vsz,rss,mwchan,state," - "tt,time,command"; -static char o1[] = "pid"; -static char o2[] = "tt,state,time,command"; -static char ufmt[] = "user,pid,%cpu,%mem,vsz,rss,tt,state,start,time,command"; -static char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz," - "%cpu,%mem,command"; -static char Zfmt[] = "label"; +static const char dfmt[] = "pid,tt,state,time,command"; +static const char jfmt[] = "user,pid,ppid,pgid,sid,jobc,state,tt,time,command"; +static const char lfmt[] = "uid,pid,ppid,cpu,pri,nice,vsz,rss,mwchan,state," + "tt,time,command"; +static const char o1[] = "pid"; +static const char o2[] = "tt,state,time,command"; +static const char ufmt[] = "user,pid,%cpu,%mem,vsz,rss,tt,state,start,time,command"; +static const char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz," + "%cpu,%mem,command"; +static const char Zfmt[] = "label"; #define PS_ARGS "AaCcD:de" OPT_LAZY_f "G:gHhjJ:LlM:mN:O:o:p:rSTt:U:uvwXxZ" @@ -341,7 +341,6 @@ main(int argc, char *argv[]) case 'j': parsefmt(jfmt, &varlist, 0); _fmt = 1; - jfmt[0] = '\0'; break; case 'L': showkey(); @@ -349,7 +348,6 @@ main(int argc, char *argv[]) case 'l': parsefmt(lfmt, &varlist, 0); _fmt = 1; - lfmt[0] = '\0'; break; case 'M': memf = optarg; @@ -364,7 +362,6 @@ main(int argc, char *argv[]) parsefmt(o1, &varlist, 1); parsefmt(optarg, &varlist, 1); parsefmt(o2, &varlist, 1); - o1[0] = o2[0] = '\0'; _fmt = 1; break; case 'o': @@ -433,13 +430,11 @@ main(int argc, char *argv[]) parsefmt(ufmt, &varlist, 0); sortby = SORTCPU; _fmt = 1; - ufmt[0] = '\0'; break; case 'v': parsefmt(vfmt, &varlist, 0); sortby = SORTMEM; _fmt = 1; - vfmt[0] = '\0'; break; case 'w': if (wflag) @@ -467,7 +462,6 @@ main(int argc, char *argv[]) break; case 'Z': parsefmt(Zfmt, &varlist, 0); - Zfmt[0] = '\0'; break; case '?': default: From nobody Thu May 1 19:51:40 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnp19TJz5vf3B; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnn2TdXz46kR; Thu, 01 May 2025 19:51:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129101; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3MiXuTMxgtxhj0Xok86/cANq+F5bh8r8oBsy6VbL7jQ=; b=VzlqKod5NNw33gFk1gWbyg/OeNc040bJnjv3iN82kffFx/KWv0Oq/oEy9Nrs5klgLkIAPR AIfoOrswv9bFzGHpBtoK7WK2BJJqd/gHIPxbsTRjOmzh2TFqq+LtYUICajbDPaBc5qPj3M YxN5cXeRFzA0akFV7cuTe+helETCOrNQxJDpL7QBUDVFbgArDD//7z5PCrwBcWuYYVjUwH X5Nv7A2F+RiSUlHVJk3TI7FmjjbxUTk/eSvSzN4o6LswByUUof/aA4OiecuRoASc6y/2IV 8WPCfl5je/FW9PXauDNHFB1vSAgN59YR3Ydh9ItgZLcgrjKQaiMXxAKZUN8YWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129101; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3MiXuTMxgtxhj0Xok86/cANq+F5bh8r8oBsy6VbL7jQ=; b=ssrcQq2OIrSOgHwx8w1/4mdYmcMdUe5o41C1CSoWUCK0wGnbHzkVEJPvgD8DCUDdPwNl59 3JrQvC22PnNV03B3sxUv1QM85l6o1ZB5eyDEzI2OVDW6DBj6AwoXUCP5i59i9evbFMbpwI iYfS5QHSy+ISEc1WSgWgrbWk1ztqEe05FmkPUFUzDVOWJ20bwLOW41UYdxPjjbWIQupv8/ U5W66sQW/DsK3vkshoLwmY1pnaJFo9FB+cFFRdzIpi2nNLprnFZ32MPJLlrTWAueSmwLJk ImvZnbqaYALHlJaSmXv1Ok2znbgmjLYDOZHq1/uhwS3r/79j16GRbHL1K1oN8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129101; a=rsa-sha256; cv=none; b=C8ugSTda+Fgz4Ns/3+YkliNFZkiLMYnDSS1SAWyHm+0Mb2ufAWigUvjuHwTqSFeDTMihAz qGAt3gF3mkrSmfg7vWoA0pZeXYFe0qe7Ty1EYKs/nnRuH9kxOqYer3KJlkp5TIrqYUmx83 KM2MqZ6PSknumu81bK5el0xLS80Rzjxj9IBft/n7kaI4XVjDG5zqVIVMDMOHLmhtlsPzj9 MjjFB8CyHvUQX7uSPDVAlIeNFQGuHR+DhYyuQG3zXGpOMr9Wfcc5PwS3i941kzxM0p/pfq U0rqItEtQhQsk0th9ls/X7VzaSJDSg+fQmleKSr/0tzY0aAiFXFARHiCGs+OWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnm3wLqzj9Z; Thu, 01 May 2025 19:51:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpeXF068611; Thu, 1 May 2025 19:51:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpeKO068608; Thu, 1 May 2025 19:51:40 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:40 GMT Message-Id: <202505011951.541JpeKO068608@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 1fc8cb547cd4 - stable/14 - ps(1): Make '-O' more versatile and predictable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1fc8cb547cd4cc1b3476ee3a6ca1d9da5270b2b1 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1fc8cb547cd4cc1b3476ee3a6ca1d9da5270b2b1 commit 1fc8cb547cd4cc1b3476ee3a6ca1d9da5270b2b1 Author: Olivier Certner AuthorDate: 2025-03-07 10:50:46 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:05 +0000 ps(1): Make '-O' more versatile and predictable The ps(1) display's list of columns is now first built without taking into account the '-O' options. In a second step, all columns passed via '-O' are finally inserted after the built-so-far display's first PID column (if it exists, else at start), in their order of appearance as arguments to the '-O' options. This new two-step procedure suppresses the following undesirable behaviors: - '-O' used to insert the columns of the default display even if the user also passed other options to request specific columns. - Each occurence of '-O' beyond the first would just insert the passed keywords after those requested by the previous options, as if by '-o', inconsistently with the behavior for the first occurence. These behaviors had more annoying consequences: - Where the columns of some '-O' occurence appear in the display used to depend on the actual position of '-O' with respect to other options, despite the natural expectation that they should go near a single PID column considered as an anchor regardless of other options adding columns. - Columns specified with multiple '-O' options would not be grouped together. - It used to be impossible to specify custom headers but for the last column for columns that are next to each other (i.e., specified by a single '-O' occurence). which are now all lifted. With these changes, '-O' can still be used alone to amend the default display, but can now be used also in conjunction with any specific display, and in particular "canned" ones invoked by '-j', '-l', '-u' or '-v'. ****** This part discusses other ps(1) implementations' behaviors and compares them to the one established by this change. NetBSD seems to be the only other BSD having refined the meaning of ps(1)'s '-O' option. While the behavior there is similar to the new one here on the surface, it differs on the following points: 1. If no options requesting a specific display are present before the first '-O' option, the appearance of '-O' triggers the insertion of the default display, regardless of whether such specific display options appear *after* it. 2. If options requesting a specific display appear before the first '-O' and none specify a PID column, columns listed in the first '-O' are appended to them (as '-o' would do), but columns passed by further '-O' options are then inserted next to the columns of the first '-O' options. Behavior of point 1 seems to have only one advantage: To allow to customize the default display by first using '-O' and then other options appending to it, but as the default display finishes with the COMMAND column, it is unlikely that one wants to use '-o' or other specific display options after '-O' (NetBSD's ps(1) does not suppress duplicate columns). A much simpler and easy-to-understand way to reach that effect in FreeBSD, if it really proves useful, would be to introduce a new explicit option that inserts the default display. The column-appending behavior of the first '-O' option in point 2 can be also achieved by using '-o' instead. As '-O' is used to insert columns after the PID one, which is located near the left in the default and all "canned" displays, we found it more consistent and practical to push its columns completely to the left on the absence of a PID column. The effect of multiple '-O' options in NetBSD when no PID column has been requested beforehand is also cumbersome and inconsistent with the documentation (it is likely a bug). Both NetBSD-specific behaviors exposed above also have the disadvantage that the position of '-O' options with respect to other ones is meaningful in ways that are not obvious and that are arguably not desirable as '-O' is meant to append columns after an anchor (the PID column). Linux's procps-ng's ps(1) is very limited in its handling of '-O', and more generally when mixing options tweaking the display. '-O' causes insertion of the default display (like NetBSD does). If '-o' options are specified, '-O' must come before them. '-O' is not usable with canned display options. Additionally, only one '-O' option may appear on the command line, limiting header customization. The only case in which these implementations and ours behave in the same way with respect to '-O' is if only a single '-O' option and no other options changing the display are specified. MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49615 (code) Differential Revision: https://reviews.freebsd.org/D49616 (manual page) (cherry picked from commit 5dad61d9b949bb859450266c6accebc106f50fcc) --- bin/ps/ps.1 | 31 ++++++++++--------------------- bin/ps/ps.c | 28 ++++++++++++++++++++++------ 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index e3681a5641c7..d823df48c093 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -127,9 +127,7 @@ First, options .Fl o and .Fl O -add columns with data corresponding to the explicitly passed keywords and, for -.Fl O , -additionally the same columns as in the default display. +add columns with data corresponding to the explicitly passed keywords. Available keywords are documented in the .Sx KEYWORDS section below. @@ -323,15 +321,15 @@ terminal and process ID. Extract the name list from the specified system instead of the default, which is the kernel image the system has booted from. .It Fl O -On first occurence, add all columns of the default display -.Po -as if by -.Fl o -.Pc -and insert just after the process ID column in that default display the columns -associated with the passed space- or comma-separated list of keywords. -On next occurences, just insert the keywords of the passed list, as if by -.Fl o . +Save passed columns in a separate list that in the end is grafted just after the +display's first occurence of the process ID column as specified by other +options, or the default display if there is none. +If the display prepared by other options does not include a process ID column, +the list is inserted at start of the display. +Further occurences of +.Fl O +append to the to-be-grafted list of columns. +This option takes a space- or comma-separated list of keywords. The last keyword in the list may be appended with an equals sign .Pq Ql = as explained for option @@ -1023,15 +1021,6 @@ implementation (for other BSDs, illumos or Linux) behaves like this. For all these reasons, the behavior is expected to be changed soon to using the effective user ID instead. .Pp -Option -.Fl O -has not been designed to be combined with other options as it forces insertion -of the default display on first occurence. -Moreover, these default display's columns are then not considered for duplicate -elimination, contrary to those of canned displays. -Finally, columns requested through multiple occurences are not grouped together, -as one may naturally expect. -.Pp The .Fl a option has no effect if other options affecting the selection of processes are diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 03454cb2b6ee..db339a765987 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -117,6 +117,7 @@ struct keyword_info { }; struct velisthead varlist = STAILQ_HEAD_INITIALIZER(varlist); +static struct velisthead Ovarlist = STAILQ_HEAD_INITIALIZER(Ovarlist); static int forceuread = DEF_UREAD; /* Do extra work to get u-area. */ static kvm_t *kd; @@ -173,8 +174,6 @@ static const char dfmt[] = "pid,tt,state,time,command"; static const char jfmt[] = "user,pid,ppid,pgid,sid,jobc,state,tt,time,command"; static const char lfmt[] = "uid,pid,ppid,cpu,pri,nice,vsz,rss,mwchan,state," "tt,time,command"; -static const char o1[] = "pid"; -static const char o2[] = "tt,state,time,command"; static const char ufmt[] = "user,pid,%cpu,%mem,vsz,rss,tt,state,start,time,command"; static const char vfmt[] = "pid,state,time,sl,re,pagein,vsz,rss,lim,tsiz," "%cpu,%mem,command"; @@ -359,10 +358,7 @@ main(int argc, char *argv[]) nlistf = optarg; break; case 'O': - parsefmt(o1, &varlist, 1); - parsefmt(optarg, &varlist, 1); - parsefmt(o2, &varlist, 1); - _fmt = 1; + parsefmt(optarg, &Ovarlist, 1); break; case 'o': parsefmt(optarg, &varlist, 1); @@ -496,6 +492,26 @@ main(int argc, char *argv[]) if (!_fmt) parsefmt(dfmt, &varlist, 0); + if (!STAILQ_EMPTY(&Ovarlist)) { + VARENT *const pid_entry = find_varentry("pid"); + + /* + * We insert the keywords passed by '-O' after the process ID if + * specified, else at start. + */ + if (pid_entry != NULL) { + struct velisthead rest; + + STAILQ_SPLIT_AFTER(&varlist, pid_entry, &rest, next_ve); + STAILQ_CONCAT(&varlist, &Ovarlist); + STAILQ_CONCAT(&varlist, &rest); + } + else { + STAILQ_SWAP(&varlist, &Ovarlist, varent); + STAILQ_CONCAT(&varlist, &Ovarlist); + } + } + keywords_info = calloc(known_keywords_nb, sizeof(struct keyword_info)); if (keywords_info == NULL) xo_errx(1, "malloc failed"); From nobody Thu May 1 19:51:41 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnp4cYpz5vfHY; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnn6H1gz46kT; Thu, 01 May 2025 19:51:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129101; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dREhGKBiKMhQ33Fb6JToT9vDtzTPJzghR7ttIwBniaM=; b=UFmwpfVvCXtGXVouAJt8DpWmT42J+DCHA2O1TREa3wBp5ZoYTCiOFrUUmyuXom9cyomlaf 01TuxeKYZ+dYPlFJbpjNGS+LiIM0UOdFO+7LLoMpeHPWPEsNj+2kCaTZPAet1GoWNcn27e pXuvNx12FOGmuYc/7LGg0wqdvQR4cnailMWZSijCYUQpV99qcr0SwSht3ElZbaYAArTJH1 JMKEs+qBqEhf8xsHwBSe/rlCT62kXOKI2uUacEihKbBT4zzhCjGzakTSFaZ+JgAN+hTojO NGaG5yxxs5QECekZCqM35BtZ6arZUYwx0GE+jfGuF+5kXev0rIcy2n2bATN7fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129101; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dREhGKBiKMhQ33Fb6JToT9vDtzTPJzghR7ttIwBniaM=; b=PS42jDeWonHkP6hiIsgMJAfzSEEjYEgVQqaEp1PV0YPgGgQI+VkCQXZVyTtsjo48vjOctA TcIdUP1iLCTo/pujvXhFRGvlLPh1kaLuzelPYne9B/nPYwarSdwvMERkF7fd11aEJi2VSa Y7IFw8D24SOQN6jYjJU5i4bId4rVdMqpH4pLDZTwb9MNYVe8UK3BwhRog6J0oBOMau/QN2 Z7KAFT91+HrUS9aIBvNIcgBDSj2aNNNmTf4gAc9HucOkaExkCGvOLACJzlZNZoBLtWz6Za 13BIIt3ukhlS6sBTv/hdW4vCcBv0Pq+Uwu2Z0isMNCKbvnMJRZW7iCuGrNllRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129101; a=rsa-sha256; cv=none; b=OrTV6EGL7CVhbqZkNasDWuFRdXEktEEeeLs5UyEB1bWl9FVagnTxP/C9HUhzSsO12AQT2s 76t1I0B2mSRFmRWGVhgx3lWgYxP+tB3Entu0KIve81I+kI5w90VtByZysG03hurUyZLDm4 pYz6vjxL+gHB3k21yFghfFWsefhfLMFbmBZkubIB6xm5zwK52tAVp3rcN6MvO6q6NEMCRA BCUvQQBMSC5gLPRzH5gNzx6czG4VE4Nf24L5oDrUOnDODSNn5VqQrvgxpdbzWwXitQVI1n flpRD9y2M4YhOa2btgFl56HKTwoYY4RwHJhir/hV8C14xDNyf/BKv7/6ME02DQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnn4xthzjHm; Thu, 01 May 2025 19:51:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541Jpf42068650; Thu, 1 May 2025 19:51:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpfh1068647; Thu, 1 May 2025 19:51:41 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:41 GMT Message-Id: <202505011951.541Jpfh1068647@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 1ee62f354ab0 - stable/14 - ps(1): Make '-a' and '-A' always show all processes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1ee62f354ab02e25b8c13b8df331d947aa50dff8 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1ee62f354ab02e25b8c13b8df331d947aa50dff8 commit 1ee62f354ab02e25b8c13b8df331d947aa50dff8 Author: Olivier Certner AuthorDate: 2025-03-14 21:42:08 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:05 +0000 ps(1): Make '-a' and '-A' always show all processes When combined with other options affecting the selection of processes, except for '-X' and '-x', option '-a' would have no effect (and '-A' would reduce to just '-x'). This was in contradiction with the rule applying to all other selection options stating that one process is listed as soon as any of these options has been specified and selects it, which is both mandated by POSIX and arguably a natural expectation. MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49617 (code) Differential Revision: https://reviews.freebsd.org/D49618 (manual page) (cherry picked from commit 93a94ce731a89b5643021b486da599e7963da232) --- bin/ps/ps.1 | 25 +++---------------------- bin/ps/ps.c | 9 ++++++++- 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index d823df48c093..0a6a5555ba35 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -80,7 +80,7 @@ and .Fl x options. Except for options -.Fl A , a , X , +.Fl X and .Fl x , as soon as one of them appears, it inhibits the default process selection, i.e., @@ -215,11 +215,6 @@ see and .Fl x .Pc . -Currently, this option has no effect if any other option selecting processes to -display is present, except for -.Fl X -and -.Fl x . If the .Va security.bsd.see_other_uids sysctl is set to zero, this option is honored only if the real user ID of the @@ -965,13 +960,13 @@ which is the current behavior of option .Pc . .Pp However, options -.Fl G , l , o , p , +.Fl A , a , G , l , o , p , and .Fl t behave as prescribed by .St -p1003.1-2024 . Options -.Fl A , a , f , U , +.Fl f , U , and .Fl w currently do not, but may be changed to in the future. @@ -1021,20 +1016,6 @@ implementation (for other BSDs, illumos or Linux) behaves like this. For all these reasons, the behavior is expected to be changed soon to using the effective user ID instead. .Pp -The -.Fl a -option has no effect if other options affecting the selection of processes are -used, except for (non-)filters -.Fl X -and -.Fl x. -Option -.Fl A -has the same restriction. -This idiosyncrasy is both in contradiction with -.St -p1003.1-2024 -and arguably with common sense, and is expected to be removed soon. -.Pp .Nm ps currently does not correctly limit the ouput width, and in most cases does not limit it at all when it should. diff --git a/bin/ps/ps.c b/bin/ps/ps.c index db339a765987..ebfc3f0bb1e1 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -528,7 +528,14 @@ main(int argc, char *argv[]) free(keywords_info); keywords_info = NULL; - if (!all && nselectors == 0) { + if (all) + /* + * We have to display all processes, regardless of other + * options. + */ + nselectors = 0; + else if (nselectors == 0) { + /* Default is to request our processes only. */ uidlist.l.ptr = malloc(sizeof(uid_t)); if (uidlist.l.ptr == NULL) xo_errx(1, "malloc failed"); From nobody Thu May 1 19:51:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnm1GYMz5vf37; Thu, 01 May 2025 19:51:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnl3tFRz46xv; Thu, 01 May 2025 19:51:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QW4I3dAwUYr6A0ePF5yHiBWtsDXZ+8z4pF1KSC9SMIE=; b=xcQ0VPFNcFtnxGXOpQkdWvBybGmSC7SK6MoJfa+FJ9Gb0RVPSzbmpPsF3ihgIcwTRSnVHZ /DONKx4wbYjvJmE9UPbOcMXWwDfu4yYMafGiNBDn8d0/hE6Bzfe+s2QoX9MoQSJozQbG9Z I0DabxQzHJoUvlLccN+/IKHOM/u2/rdstrezQZkMuvVfn+6OA+7XveNZ6fE9nEtdxafdj8 elwoGwSx7swmrL8bupT3lvJRgXw1Ro/vatanKcLLndu1t7sLEspQ7SYx8+r618aAU+qeGx DGLwjR3gwp+Qcx/Su94JmbWdZMFu8P9JWO34mfEi3yevnDTVpvXS4ezyiEkMaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129099; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QW4I3dAwUYr6A0ePF5yHiBWtsDXZ+8z4pF1KSC9SMIE=; b=wzS0bxr4UNYo/wKFPSGyd5gDhupAoL4AFjJheSKHj2pRKgdVnEiquHkwq/AmGPwVyl4WLi DP73NR33mPrLGqQq4TeEbEOAZlbwCJln0gBiupy2Y3wABM+mABaQCT2VVFGQZYiTo+hTx+ FZTVH8XFkKROEqyWSC5IKcb+UE/87Urm5BL6etb8TImihihM9y8F1ZBS1XhX6lcvdNJ3/0 uJRA7t6rBDnDVqCmtr1RnNmdLHsdQUu5IJXGwMuPjOCUa/QsWZc+gscpcdh7lsJEtA2zyf gA/lifvaEpOij2ea/Veu/Q9J4FX1g+pwPTP3pwfly3OPE/3Gkp4FYIi7IWHxDA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129099; a=rsa-sha256; cv=none; b=DWSmlk7N7lqayDro25wntO4TfzTsgaUXjOEHbgz0iTxQaHKEk/lHD2dFd1kFsR9Wkl2yie l/yibbdr1BdXXGVJZdrLoX42IEoB7omOeK+owq7dX9shNNrRj5y9CsZdCYgwxLrnJAM3Ea S+XNwjB6uPo6Y0RONWqP8E1K1zbKVbp7RcEQWfePF7qL/QxEJNoNg/xff5Do1ERturNwHJ Dhg7YChYEmsDKeGO4K8wQYvi3utU1+d/yloSQAtxmR7+D7NZrV6ge02jvLyoXVZDHlrCU1 0MDxPjgqvXI5QzjGca2upvR93y/nIwYhdzjAX9+JFVU/ZDdNFfpUcdrHL8vu1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnl3GKvzhwC; Thu, 01 May 2025 19:51:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpddK068577; Thu, 1 May 2025 19:51:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpdY8068574; Thu, 1 May 2025 19:51:39 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:39 GMT Message-Id: <202505011951.541JpdY8068574@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: c4ee6d4acb90 - stable/14 - queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c4ee6d4acb90a45367227655673476cbbb5e962b Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=c4ee6d4acb90a45367227655673476cbbb5e962b commit c4ee6d4acb90a45367227655673476cbbb5e962b Author: Olivier Certner AuthorDate: 2025-02-28 09:18:48 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:04 +0000 queue(3): New *_SPLIT_AFTER(), *_ASSERT_EMPTY(), *_ASSERT_NONEMPTY() *_SPLIT_AFTER() allows to split an existing queue in two. It is the missing block that enables arbitrary splitting and recombinations of lists/queues together with *_CONCAT() and *_SWAP(). Add *_ASSERT_NONEMPTY(), used by *_SPLIT_AFTER(). Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49608 (stailq) Differential Revision: https://reviews.freebsd.org/D49969 (rest) (cherry picked from commit c02880233949b01fcfb2067962596f5c05553471) --- share/man/man3/queue.3 | 54 +++++++++++++++++++++++++ sys/sys/queue.h | 108 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 155 insertions(+), 7 deletions(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index 9fc57a59cf11..6fd3d7f2e0f9 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -51,6 +51,7 @@ .Nm SLIST_REMOVE , .Nm SLIST_REMOVE_AFTER , .Nm SLIST_REMOVE_HEAD , +.Nm SLIST_SPLIT_AFTER , .Nm SLIST_SWAP , .Nm STAILQ_CLASS_ENTRY , .Nm STAILQ_CLASS_HEAD , @@ -74,6 +75,7 @@ .Nm STAILQ_REMOVE , .Nm STAILQ_REMOVE_AFTER , .Nm STAILQ_REMOVE_HEAD , +.Nm STAILQ_SPLIT_AFTER , .Nm STAILQ_SWAP , .Nm LIST_CLASS_ENTRY , .Nm LIST_CLASS_HEAD , @@ -96,6 +98,7 @@ .Nm LIST_PREV , .Nm LIST_REMOVE , .Nm LIST_REPLACE , +.Nm LIST_SPLIT_AFTER , .Nm LIST_SWAP , .Nm TAILQ_CLASS_ENTRY , .Nm TAILQ_CLASS_HEAD , @@ -124,6 +127,7 @@ .Nm TAILQ_PREV , .Nm TAILQ_REMOVE , .Nm TAILQ_REPLACE , +.Nm TAILQ_SPLIT_AFTER , .Nm TAILQ_SWAP .Nd implementations of singly-linked lists, singly-linked tail queues, lists and tail queues @@ -150,6 +154,7 @@ lists and tail queues .Fn SLIST_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "SLIST_ENTRY NAME" .Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME" .Fn SLIST_REMOVE_HEAD "SLIST_HEAD *head" "SLIST_ENTRY NAME" +.Fn SLIST_SPLIT_AFTER "SLIST_HEAD *head" "TYPE *elm" "SLIST_HEAD *rest" "SLIST_ENTRY NAME" .Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "TYPE" .\" .Fn STAILQ_CLASS_ENTRY "CLASSTYPE" @@ -174,6 +179,7 @@ lists and tail queues .Fn STAILQ_REMOVE "STAILQ_HEAD *head" "TYPE *elm" "TYPE" "STAILQ_ENTRY NAME" .Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME" .Fn STAILQ_REMOVE_HEAD "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" +.Fn STAILQ_SPLIT_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_HEAD *rest" "STAILQ_ENTRY NAME" .Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "TYPE" .\" .Fn LIST_CLASS_ENTRY "CLASSTYPE" @@ -197,6 +203,7 @@ lists and tail queues .Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME" .Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME" .Fn LIST_REPLACE "TYPE *elm" "TYPE *new" "LIST_ENTRY NAME" +.Fn LIST_SPLIT_AFTER "LIST_HEAD *head" "TYPE *elm" "LIST_HEAD *rest" "LIST_ENTRY NAME" .Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME" .\" .Fn TAILQ_CLASS_ENTRY "CLASSTYPE" @@ -226,6 +233,7 @@ lists and tail queues .Fn TAILQ_PREV "TYPE *elm" "HEADNAME" "TAILQ_ENTRY NAME" .Fn TAILQ_REMOVE "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME" .Fn TAILQ_REPLACE "TAILQ_HEAD *head" "TYPE *elm" "TYPE *new" "TAILQ_ENTRY NAME" +.Fn TAILQ_SPLIT_AFTER "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_HEAD *rest" "TAILQ_ENTRY NAME" .Fn TAILQ_SWAP "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TYPE" "TAILQ_ENTRY NAME" .\" .Sh DESCRIPTION @@ -252,6 +260,8 @@ O(1) removal of an entry from the head of the list. .It Forward traversal through the list. .It +Splitting a list in two after any element in the list. +.It Swapping the contents of two lists. .El .Pp @@ -549,6 +559,17 @@ A doubly-linked list should be used if this macro is needed in high-usage code paths or to operate on long lists. .Pp The macro +.Nm SLIST_SPLIT_AFTER +splits the list referenced by +.Fa head , +making +.Fa rest +reference the list formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm SLIST_SWAP swaps the contents of .Fa head1 @@ -772,6 +793,17 @@ A doubly-linked tail queue should be used if this macro is needed in high-usage code paths or to operate on long tail queues. .Pp The macro +.Nm STAILQ_SPLIT_AFTER +splits the tail queue referenced by +.Fa head , +making +.Fa rest +reference the tail queue formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm STAILQ_SWAP swaps the contents of .Fa head1 @@ -1000,6 +1032,17 @@ The element must not already be on a list. .Pp The macro +.Nm LIST_SPLIT_AFTER +splits the list referenced by +.Fa head , +making +.Fa rest +reference the list formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm LIST_SWAP swaps the contents of .Fa head1 @@ -1273,6 +1316,17 @@ The element must not already be on a list. .Pp The macro +.Nm TAILQ_SPLIT_AFTER +splits the tail queue referenced by +.Fa head , +making +.Fa rest +reference the tail queue formed by elements after +.Fa elm +in +.Fa head . +.Pp +The macro .Nm TAILQ_SWAP swaps the contents of .Fa head1 diff --git a/sys/sys/queue.h b/sys/sys/queue.h index dd3956d7c111..97af11876232 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -113,6 +113,7 @@ * _REMOVE_HEAD + + + + * _REMOVE s + s + * _REPLACE - + - + + * _SPLIT_AFTER + + + + * _SWAP + + + + * */ @@ -209,8 +210,20 @@ struct { \ panic("Bad prevptr *(%p) == %p != %p", \ (prevp), *(prevp), (elm)); \ } while (0) + +#define SLIST_ASSERT_EMPTY(head) do { \ + if (!SLIST_EMPTY((head))) \ + panic("%s: slist %p is not empty", __func__, (head)); \ +} while (0) + +#define SLIST_ASSERT_NONEMPTY(head) do { \ + if (SLIST_EMPTY((head))) \ + panic("%s: slist %p is empty", __func__, (head)); \ +} while (0) #else #define QMD_SLIST_CHECK_PREVPTR(prevp, elm) +#define SLIST_ASSERT_EMPTY(head) +#define SLIST_ASSERT_NONEMPTY(head) #endif #define SLIST_CONCAT(head1, head2, type, field) do { \ @@ -305,6 +318,12 @@ struct { \ TRASHIT((elm)->field.sle_next); \ } while (0) +#define SLIST_SPLIT_AFTER(head, elm, rest, field) do { \ + SLIST_ASSERT_NONEMPTY((head)); \ + SLIST_FIRST((rest)) = SLIST_NEXT((elm), field); \ + SLIST_NEXT((elm), field) = NULL; \ +} while (0) + #define SLIST_SWAP(head1, head2, type) do { \ QUEUE_TYPEOF(type) *swap_first = SLIST_FIRST(head1); \ SLIST_FIRST(head1) = SLIST_FIRST(head2); \ @@ -357,11 +376,6 @@ struct { \ "first field address", (head), (head)->stqh_last); \ } while (0) -#define STAILQ_ASSERT_EMPTY(head) do { \ - if (!STAILQ_EMPTY((head))) \ - panic("stailq %p is not empty", (head)); \ -} while (0) - /* * QMD_STAILQ_CHECK_TAIL(STAILQ_HEAD *head) * @@ -372,11 +386,23 @@ struct { \ panic("Stailq %p last element's next pointer is %p, " \ "not NULL", (head), *(head)->stqh_last); \ } while (0) + +#define STAILQ_ASSERT_EMPTY(head) do { \ + if (!STAILQ_EMPTY((head))) \ + panic("%s: stailq %p is not empty", __func__, (head)); \ +} while (0) + +#define STAILQ_ASSERT_NONEMPTY(head) do { \ + if (STAILQ_EMPTY((head))) \ + panic("%s: stailq %p is empty", __func__, (head)); \ +} while (0) + #else #define QMD_STAILQ_CHECK_EMPTY(head) -#define STAILQ_ASSERT_EMPTY(head) #define QMD_STAILQ_CHECK_TAIL(head) -#endif /* (_KERNEL && INVARIANTS) */ +#define STAILQ_ASSERT_EMPTY(head) +#define STAILQ_ASSERT_NONEMPTY(head) +#endif /* _KERNEL && INVARIANTS */ #define STAILQ_CONCAT(head1, head2) do { \ if (!STAILQ_EMPTY((head2))) { \ @@ -474,6 +500,20 @@ struct { \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0) +#define STAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ + STAILQ_ASSERT_NONEMPTY((head)); \ + QMD_STAILQ_CHECK_TAIL((head)); \ + if (STAILQ_NEXT((elm), field) == NULL) \ + /* 'elm' is the last element in 'head'. */ \ + STAILQ_INIT((rest)); \ + else { \ + STAILQ_FIRST((rest)) = STAILQ_NEXT((elm), field); \ + (rest)->stqh_last = (head)->stqh_last; \ + STAILQ_NEXT((elm), field) = NULL; \ + (head)->stqh_last = &STAILQ_NEXT((elm), field); \ + } \ +} while (0) + #define STAILQ_SWAP(head1, head2, type) do { \ QUEUE_TYPEOF(type) *swap_first = STAILQ_FIRST(head1); \ QUEUE_TYPEOF(type) **swap_last = (head1)->stqh_last; \ @@ -558,10 +598,22 @@ struct { \ if (*(elm)->field.le_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) + +#define LIST_ASSERT_EMPTY(head) do { \ + if (!LIST_EMPTY((head))) \ + panic("%s: list %p is not empty", __func__, (head)); \ +} while (0) + +#define LIST_ASSERT_NONEMPTY(head) do { \ + if (LIST_EMPTY((head))) \ + panic("%s: list %p is empty", __func__, (head)); \ +} while (0) #else #define QMD_LIST_CHECK_HEAD(head, field) #define QMD_LIST_CHECK_NEXT(elm, field) #define QMD_LIST_CHECK_PREV(elm, field) +#define LIST_ASSERT_EMPTY(head) +#define LIST_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ #define LIST_CONCAT(head1, head2, type, field) do { \ @@ -675,6 +727,19 @@ struct { \ TRASHIT(*oldprev); \ } while (0) +#define LIST_SPLIT_AFTER(head, elm, rest, field) do { \ + LIST_ASSERT_NONEMPTY((head)); \ + if (LIST_NEXT((elm), field) == NULL) \ + /* 'elm' is the last element in 'head'. */ \ + LIST_INIT((rest)); \ + else { \ + LIST_FIRST((rest)) = LIST_NEXT((elm), field); \ + LIST_NEXT((elm), field)->field.le_prev = \ + &LIST_FIRST((rest)); \ + LIST_NEXT((elm), field) = NULL; \ + } \ +} while (0) + #define LIST_SWAP(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *swap_tmp = LIST_FIRST(head1); \ LIST_FIRST((head1)) = LIST_FIRST((head2)); \ @@ -770,11 +835,23 @@ struct { \ if (*(elm)->field.tqe_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) + +#define TAILQ_ASSERT_EMPTY(head) do { \ + if (!TAILQ_EMPTY((head))) \ + panic("%s: tailq %p is not empty", __func__, (head)); \ +} while (0) + +#define TAILQ_ASSERT_NONEMPTY(head) do { \ + if (TAILQ_EMPTY((head))) \ + panic("%s: tailq %p is empty", __func__, (head)); \ +} while (0) #else #define QMD_TAILQ_CHECK_HEAD(head, field) #define QMD_TAILQ_CHECK_TAIL(head, headname) #define QMD_TAILQ_CHECK_NEXT(elm, field) #define QMD_TAILQ_CHECK_PREV(elm, field) +#define TAILQ_ASSERT_EMPTY(head) +#define TAILQ_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ #define TAILQ_CONCAT(head1, head2, field) do { \ @@ -950,6 +1027,23 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) +#define TAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ + TAILQ_ASSERT_NONEMPTY((head)); \ + QMD_TAILQ_CHECK_TAIL((head), field); \ + if (TAILQ_NEXT((elm), field) == NULL) \ + /* 'elm' is the last element in 'head'. */ \ + TAILQ_INIT((rest)); \ + else { \ + TAILQ_FIRST((rest)) = TAILQ_NEXT((elm), field); \ + (rest)->tqh_last = (head)->tqh_last; \ + TAILQ_NEXT((elm), field)->field.tqe_prev = \ + &TAILQ_FIRST((rest)); \ + \ + TAILQ_NEXT((elm), field) = NULL; \ + (head)->tqh_last = &TAILQ_NEXT((elm), field); \ + } \ +} while (0) + #define TAILQ_SWAP(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *swap_first = (head1)->tqh_first; \ QUEUE_TYPEOF(type) **swap_last = (head1)->tqh_last; \ From nobody Thu May 1 19:51:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnr1KkNz5vdvF; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnp6JFHz46fM; Thu, 01 May 2025 19:51:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129102; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t5SicR53ELAMS2u2lgbDdw/qPmJrfvcc+2TznsZgBps=; b=FrV3EJH70U9iKvmeF84AZu0ieX0+F8q34BjDFmLwGuFsxxV+2/HO31+Jeefenr5lR4QfyP Npx933tQC4/qXN4EAEgql4JsZHNSMQyOUEAkbtwkq8/m0sPd9DBHwnxeLwLg83zoyjNGRq BN3Nqm6PDv3wpsxkeTeyshrqRHAcUFjxN+3P6Bt0dlLGhyXNO0sFIE18axTumHm2CU8fD0 b471mtwdjUCCfdR4AWX3K+nEjsXuLj9ug4VQxBe0BCctJdFhOOXZqBSwjiFDa5+YOTIftA nNlrv4lyx5dv2O56EzOQcF/2K5+eypdI6/k/tJ9gHRdkP9B8Z+vqcttztlR/jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129102; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=t5SicR53ELAMS2u2lgbDdw/qPmJrfvcc+2TznsZgBps=; b=F2sV5BhGoouhjfwK4UFvBV2Sv17E1blbtWwLLe6AEft7oNI5oSABEdkoPZNH0qVGWLOysz MEVCTFyDJ71Y1A0yytdPCcwbBFdA4RqbkYC4ZARy9BKKG3ac2m0L0CZTsv3yX41seGGoSt CPm4mTzaMv22CLvZx4Jb6WNLyc1eumeniWsJ1wBiqc6FGwTsh6Tiiuua0fI+VlDKRyXJL2 fMisLaQa2eDe3NQRhNmkrqQVmA2Wy8EN3Jue34awh+fSxvZa9N3Hy/oXrdFByGzOBZN772 QibPKrpgVFUyf4vRpPOkp4YMh84PuctS1hwty5PyFE7kpdV0GwlyicQOBwRrCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129102; a=rsa-sha256; cv=none; b=qCWwm+fGSNhf2KajkBFWUCwTcshSGuyJh3bWYe9TqU62ki/mEllL42MQjRBOYqhRyIUGey 3ttRKia3Vzt7QomecfZM9sBFVF5UjvO9nQ1/BgXLVaWZBoSIDCk7gLLe4LPpzfL23fI7o9 MFyGM6SH0oytsrNa3KyqZXIEp1LR9O8CTxr34crV06lXaZbvJc8BcYpVFgCJ9Kfm57DG5V PrHTAu+fECsfyc4jkyi6jakxKfRYS2sHBxpdGa7plXR/lRromVpVboQZVUSepr0i6+y13r 7aKeLgv4mt00zVVLUCEn8tDGq+DyPZ2mEk1a8g8xcLVZFH8PJ35R3dXhtYo4XQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnp5XQrzj9b; Thu, 01 May 2025 19:51:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpgUi068688; Thu, 1 May 2025 19:51:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpgXm068685; Thu, 1 May 2025 19:51:42 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:42 GMT Message-Id: <202505011951.541JpgXm068685@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 1e8dc267ca91 - stable/14 - ps(1): Match current user's processes using ps' effective UID List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1e8dc267ca912a39261627c54573233fbdcfc240 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=1e8dc267ca912a39261627c54573233fbdcfc240 commit 1e8dc267ca912a39261627c54573233fbdcfc240 Author: Olivier Certner AuthorDate: 2025-04-01 09:47:25 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:37:05 +0000 ps(1): Match current user's processes using ps' effective UID This puts our ps(1) in conformance with POSIX. While here, replace ad-hoc initialization of 'uidlist' with a call to expand_list(). *** Review of the ps(1) implementations in other BSDs, illumos, and Linux's procps shows they already behave as prescribed by POSIX. Previously, we would match processes with their effective user ID but using our real user ID. While the real user ID is meant as the real identity of a process, and is used, e.g., to perform accounting or be permitted to send signals to specific targets, selecting processes to display is arguably more akin to a kind of (advisory) access control. ps(1) is not installed setuid, so normally the real and effective user IDs of ps processes are the same. This may however not be the case when ps(1) is launched by another setuid executable, and the launching process may then logically expect that ps(1) lists the processes corresponding to its effective UID. MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49619 (code) Differential Revision: https://reviews.freebsd.org/D49620 (manual page) (cherry picked from commit 1aabbb25c9f9c4372fd68621f8cabdc10b665527) --- bin/ps/ps.1 | 26 +------------------------- bin/ps/ps.c | 13 +++++++------ 2 files changed, 8 insertions(+), 31 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 0a6a5555ba35..1814a3fca1b3 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -70,7 +70,7 @@ Other output styles can be requested via .Fl -libxo . .Pp By default, only the processes of the calling user, determined by matching their -effective user ID with the real user ID of the +effective user ID with that of the .Nm process, that have controlling terminals are shown. A different set of processes can be selected for display by using combinations @@ -980,14 +980,6 @@ However, other UNIX systems that provide this functionality do so via option instead, reserving .Fl g to query by group leaders. -.Pp -.Nm -currently determines the processes of the current user by matching their -effective user IDs with its own real user ID, whereas -.St -p1003.1-2024 -mandates the traditional UNIX practice of using the effective user ID as the -current user. -This is expected to be changed soon. .Sh HISTORY The .Nm @@ -1000,22 +992,6 @@ Since cannot run faster than the system and is run as any other scheduled process, the information it displays can never be exact. .Pp -.Nm -currently uses its real user ID as the current user when determining default -processes to show. -Besides being inconsistent with POSIX, using the real user ID essentially makes -sense for programs installed as setuid executables, which -.Nm -is not. -It also complicates the use of -.Nm -from other setuid executables, which cannot rely on its default process listing. -Finally, no other -.Nm -implementation (for other BSDs, illumos or Linux) behaves like this. -For all these reasons, the behavior is expected to be changed soon to using the -effective user ID instead. -.Pp .Nm ps currently does not correctly limit the ouput width, and in most cases does not limit it at all when it should. diff --git a/bin/ps/ps.c b/bin/ps/ps.c index ebfc3f0bb1e1..10ae3924a923 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -535,13 +535,14 @@ main(int argc, char *argv[]) */ nselectors = 0; else if (nselectors == 0) { - /* Default is to request our processes only. */ - uidlist.l.ptr = malloc(sizeof(uid_t)); - if (uidlist.l.ptr == NULL) - xo_errx(1, "malloc failed"); + /* + * Default is to request our processes only. As per POSIX, we + * match processes by their effective user IDs and we use our + * effective user ID as our own identity. + */ + expand_list(&uidlist); + uidlist.l.uids[uidlist.count++] = geteuid(); nselectors = 1; - uidlist.count = uidlist.maxcount = 1; - *uidlist.l.uids = getuid(); } /* From nobody Thu May 1 19:51:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnr23DWz5vfC6; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnq6Y5pz46x7; Thu, 01 May 2025 19:51:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129103; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wLvZ4Id0Pa8aVyq1/hVEKp4Wgf2AlBtB1YLXnHXCPmk=; b=EPRE8P7X2t38W4aE3c6OwrB/cnJtdcue6/K112e70G5j1T4iZ3TdI6E2wTfAGnIrJhgEHe sFrd9F6pZWWW53U/je+xxJ0JxqKkEwXRPg6YB1MHq4gTRq7xKKryN44rPbTslyc4LOATFS vDGMK2mG2hkZpVH6vF2GKG5qz+m1hzYTY5uqfTKh0QIxb4OTT+NVEOUOehvLo22+ugYjml lQ7LjYzbC72N9lgOzJ6rOhCayaLkraDx4xeABR5VQ/1A2Cd6m+9cWgyCUcbCFxAzTSyQeX 40JcOGunqy84I6nFAKAj2Dlxkt161v875YsKS/mFm1haVx4Tr1F23fjFOyCFmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129103; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wLvZ4Id0Pa8aVyq1/hVEKp4Wgf2AlBtB1YLXnHXCPmk=; b=vPiee5stgFdYxr8kgWqzf0pOL36IYToFxfq1nuo4iiSqeOecJERsovNlKZznCrKE1D5mta dcUO2L4brfzfz0zqVkI8a/qWhAanzx44WjhCNThki/jyW6WbZj7RQvVkiIas1LZOAkjGe4 u0xAINcQ+3j38HvH6MXg2ztPjXC9nmdp8j9P40fRu0Ox5Rq/r34LvjeFusZpfHYsCOgazu +kmFS+jyy4JThR2prT8R3op69SiiagqNbVf/Z/H6DTx0We5UpmbSL7z2Na6lNK9gJ4QHlr PWv+Ia6xB/fNJlmrBQJJypR1uJTkEn1C5TqQ4Oq29zoMACVXZ17orLPJjfHy7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129103; a=rsa-sha256; cv=none; b=gFL332+skn1Hys6orDJjDqj5jVyViDe2teJkR92LKCvjib2dCy0jw9xFzOpFpEw8Bz1GMB FJ1SAcTZDG9aaO5NlUke9jfFS2C6RbFJVILv3N8IUY8DEhKqfCyiCYeCyv0Pw+FD6maj6E poL9U00kfPQCMPkaeGZ6/zFuYzKQIpyhit/dL3NvXDA8T/eRT8Am+7R17UPRh01Bqg+loa 7+MVptKVBPW34IDOiR3SZPVDydeyzomBHnzhcHHhuBtdz+G3bIYVAOCtRR+FC56yP5b/04 O7fbCmKQlYyHPVHijnLlYDXpBHc8D88jWthZvx/Meq5h0tD5/IzSe6/VfZ3QZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnq66T6zj1C; Thu, 01 May 2025 19:51:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JphBW068721; Thu, 1 May 2025 19:51:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jphes068718; Thu, 1 May 2025 19:51:43 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:43 GMT Message-Id: <202505011951.541Jphes068718@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 7219648f60d1 - stable/14 - RELNOTES: ps(1): Change of how current user's processes are matched List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7219648f60d10a97642951d58dd41dd8080eafed Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=7219648f60d10a97642951d58dd41dd8080eafed commit 7219648f60d10a97642951d58dd41dd8080eafed Author: Olivier Certner AuthorDate: 2025-04-22 16:11:07 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:41:37 +0000 RELNOTES: ps(1): Change of how current user's processes are matched MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 44265f3b30562f58db78d5bcd905f3db21fc418e) Commit hash edited on MFC. --- RELNOTES | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/RELNOTES b/RELNOTES index e1119951a332..bea7e78c3a2b 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,13 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +1e8dc267ca91: + ps(1)'s default list of processes now comes from matching its effective + user ID instead of its real user ID with the effective user ID of all + processes, in accordance with POSIX. As ps(1) itself is not installed + setuid, this only affects processes having different real and effective + user IDs that launch ps(1) processes. + 4b4bd20e17e0-f9b5d5bf1186, f74cd62b5c71: mac_do(4) is now considered production-ready and its functionality has been considerably extended at the price of breaking credentials From nobody Thu May 1 19:51:44 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPns3kWdz5vdrC; Thu, 01 May 2025 19:51:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPns0drmz46hV; Thu, 01 May 2025 19:51:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I2K5tajaKbKx4wdMle/N/PdXOXVsL4vf8vGDEI0/nVM=; b=pCK+4gPTdxRlHfh62W/NhK1pv9Jsz0gAq10NqfRRTdFUsSfZvod2NRpQcojfGzwVqc70zB r+d8WS2MmY3TlhSq0DhALUGKep+2GPnvEJIXsphBdWygZ/p8i5gLg/9R02E5UWdZ0Aqz0r 856zkQwYF34zVnVi/9RYVgcfRg84TDSm2eqbBRa1JatajmwbwjJIGkUKOjEEoZK3GzYmOA 1udDlaS6a9yMls7YpRTuI3Mdcqu1++S2z/3TtczgCIjVBTxMI3gqltg0vUMa42JvGlJ4bn axlMegHyQoHDS2SECoZKFyU22xMxXRW4ByA2Kd66d8oboDccmDDvUmFGn3AKlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=I2K5tajaKbKx4wdMle/N/PdXOXVsL4vf8vGDEI0/nVM=; b=LL66cIxKS6QtVUqgWwnQwwrIHwSR4iDdjW8kGtJDSPGSfZZax75u9zSRrTgEmeICF9FzH1 MIaVdK9bRSl//beIoELru6L/kSdUq22wnD75dC1Y0PyKvGBzUFIIDEK4SizeiN4jG8bbqV 1tM0SoqkPR/Sknerx4X//OUkGP8PmfT3oocblejmH5BTInSF3vm/dVDCnTw5+hvtnRFCEg CsMg+KUksDNaY4U52fMDCWYGB2q6GUdtLB3KmCST81rvcF2scKO+Gx7cyTaXWX3Dib8NYG 7lseXcl2qmH1IRan1iTo70S6hawMKS+IL8ydeyzId24WxK5dF+SWJ7WVS6dkMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129105; a=rsa-sha256; cv=none; b=LtYI9Em9tqxq7uOtLj+n8bhkzn3Wfg5AED2TIPK9xa5uyANe5jQye4ANZKNXd7e2yZlpF5 fStymKoXSx4YgwP/qxQU2zCcBR/cZMjMVHuUfyPFyMoAIK+/72RcwU5Vu8fJ02XMu5U3/t J/YzAn5OlH9JZqbEQE3eRV2L8y96uyC7SZdv4KxjOLAlIn3oTlw1R/cWufiTgdzkfq6Mq9 i0aA6o7xognM4rXriFJuQGWiySLSBgic4n9256BIBh9Xd4KIKcmkjmT2E9uDCRIzsSBnur o5BwCbDKD0rSryYo4Z7/il7KA/x5hyIhdP3gbNkFM4dST883CIukaEu6T0W4nw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnr71TyzjC4; Thu, 01 May 2025 19:51:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541Jpiag068754; Thu, 1 May 2025 19:51:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpiQV068751; Thu, 1 May 2025 19:51:44 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:44 GMT Message-Id: <202505011951.541JpiQV068751@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 154ccb0196cd - stable/14 - ps(1): Update some options' conformance/practice 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 154ccb0196cd56954b976890acf85cdb2b0fd94c Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=154ccb0196cd56954b976890acf85cdb2b0fd94c commit 154ccb0196cd56954b976890acf85cdb2b0fd94c Author: Olivier Certner AuthorDate: 2025-04-01 11:45:08 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:42:18 +0000 ps(1): Update some options' conformance/practice comments MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49621 (cherry picked from commit 2d7f70975bd8146f36b35477a8a1be490a0afc95) --- bin/ps/ps.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 10ae3924a923..786537a0e959 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -313,17 +313,24 @@ main(int argc, char *argv[]) break; case 'g': #if 0 - /*- - * XXX - This SUSv3 behavior is still under debate - * since it conflicts with the (undocumented) - * `-g' option. So we skip it for now. + /* + * XXX - This behavior is still under debate since it + * conflicts with the (undocumented) `-g' option + * and is non-standard. However, it is the + * behavior of most UNIX systems except + * SunOS/Solaris/illumos (see next comment; see + * also comment for '-s' below). */ add_list(&pgrplist, optarg); xkeep_implied = 1; nselectors++; break; #else - /* The historical BSD-ish (from SunOS) behavior. */ + /* + * The historical BSD-ish (from SunOS) behavior: Also + * display process group leaders (but we do not filter + * them out). + */ break; /* no-op */ #endif case 'H': @@ -376,7 +383,7 @@ main(int argc, char *argv[]) break; #if 0 case 'R': - /*- + /* * XXX - This un-standard option is still under * debate. This is what SUSv3 defines as * the `-U' option, and while it would be @@ -396,11 +403,13 @@ main(int argc, char *argv[]) break; #if 0 case 's': - /*- - * XXX - This non-standard option is still under - * debate. This *is* supported on Solaris, - * Linux, and IRIX, but conflicts with `-s' - * on NetBSD and maybe some older BSD's. + /* + * XXX - This non-standard option is still under debate. + * It is supported on Solaris, Linux, IRIX, and + * OpenBSD but conflicts with '-s' on NetBSD. This + * is the same functionality as POSIX option '-g', + * but the cited systems do not provide it under + * '-g', only under '-s'. */ add_list(&sesslist, optarg); xkeep_implied = 1; @@ -417,7 +426,12 @@ main(int argc, char *argv[]) nselectors++; break; case 'U': - /* This is what SUSv3 defines as the `-u' option. */ + /* + * POSIX says that '-U' should match on real user IDs, + * not effective ones as we are doing here, which is + * normally the behavior of option '-u' according to the + * standard. + */ add_list(&uidlist, optarg); xkeep_implied = 1; nselectors++; @@ -917,7 +931,7 @@ addelem_pid(struct listinfo *inf, const char *elem) return (1); } -/*- +/* * The user can specify a device via one of three formats: * 1) fully qualified, e.g.: /dev/ttyp0 /dev/console /dev/pts/0 * 2) missing "/dev", e.g.: ttyp0 console pts/0 From nobody Thu May 1 19:51:47 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnv4HJRz5vfKT; Thu, 01 May 2025 19:51:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnv2M9Dz46lF; Thu, 01 May 2025 19:51:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XW2hKOouEs1xmsPn/mtpcwMsNBfkjI7Y0NqiqwMA7QM=; b=hcx2WrUnWo2aWKk5S2skcbdjywXsIiZRnMUkq15zEV1fG9heGyNrLNEg22R8t44BUPoNaK jbpqCxQ/rUiN+piOy0Mp5rqcWqmw6YzbD+XZLtIEGrdbx/ovyHKjZfJrbQl1p5ZsfVOasb 9XjHAE/qi2Y0euXkfmUbmpQRV/xFbmVMH0hyio9RAyemwHK5Fa4q4l22/bQhZUpUymFHBp ZP+SqAXixak7z5pDJypINf/wdrdRNtoe+W+YWcoudnkSlp2Ao9KKTrJirl7NheL3v8Q4hq qs2aX2J3i8rCnzKRp7GiDqz2XTG+KPENBIILBE9nwrn+oqwOeJlcdcJsSsS10A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129107; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XW2hKOouEs1xmsPn/mtpcwMsNBfkjI7Y0NqiqwMA7QM=; b=NFYFp9ouFd+98lzUy2OV5nDKFtwZYO9rtkIqzkmkpt7OvTBe4yKxZtbPihYQrvmzXbT9nw Q9VE9TPuRGH91dycajSzPukPLRXzc2dbg4xiQBYRbl2Tgu6DgxMZX0evfgPpKMoI8oV3jp AZOgNg+Q99cb46AEVUfxbBjcMf3FmtD5fKTLRzTXNldNiX73QrGJa2Dt9ELsORNMG4TZX/ r/r4DQmk5G9F5JEE4QtWAzrQKrhMIYlWHaTaVqVftfPI5eIENIWS0CHhhw5M5+hEgbkoQc myjngnAePEUFSTy4Frd6SH+C8DrQFFjnjvXKqRhRX/6hthjjuYC/RzwQSR1hAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129107; a=rsa-sha256; cv=none; b=risbgOxOgmFdx1HnN1YFIGwLtIOYeaI6PaLq1ZlhF/zwwBWoAeh1ITUcFNVO3i87PFsFt+ O4B9NWEoaKghKgjrbt6M9JO66+ROqbJ14U1I3dn3SC3zsZLXraN9k9nYHW8uJUB9qhr8oI WHjOEuJKX0p8ad4zU1yUjRWisWzF6YbL9LZBBnbmkk5yM9DYpa3YXWS0l9076nDAydtJvo N+OX8sPoEnBqA7kdBW0pUVV5kjdmAEPjw62F62rht0sMbVSqaBl8unvl9Uv2aa8xNGwVge +nRuPCFl7Zvit47xX24rHMg0GnSofrFRaYV88hsY0/TVyf/5TeCMsA27YbqaHg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnv1w4LzjFg; Thu, 01 May 2025 19:51:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JplCr068821; Thu, 1 May 2025 19:51:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpl9m068818; Thu, 1 May 2025 19:51:47 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:47 GMT Message-Id: <202505011951.541Jpl9m068818@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 4e4739dd0745 - stable/14 - RELNOTES: ps(1): Change in behavior for option '-U' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4e4739dd0745e04940cb01848a1faf2b8cf08efc Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=4e4739dd0745e04940cb01848a1faf2b8cf08efc commit 4e4739dd0745e04940cb01848a1faf2b8cf08efc Author: Olivier Certner AuthorDate: 2025-04-22 16:18:45 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:45:48 +0000 RELNOTES: ps(1): Change in behavior for option '-U' MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit a8dccfa7462b47e326a863d06f5575e4ed11b5be) Commit hash edited on MFC. --- RELNOTES | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/RELNOTES b/RELNOTES index bea7e78c3a2b..82c0aacd97ee 100644 --- a/RELNOTES +++ b/RELNOTES @@ -10,6 +10,16 @@ newline. Entries should be separated by a newline. Changes to this file should not be MFCed. +a2132d91739d: + ps(1)'s '-U' option has been changed to select processes by their real + user IDs instead of their effective one, in accordance with POSIX and + the use case of wanting to list processes launched by some user, which + is expected to be more frequent than listing processes having the rights + of some user. This only affects the selection of processes whose real + and effective user IDs differ. After this change, ps(1)'s '-U' flag + behaves differently then in other BSDs but identically to that of + Linux's procps and illumos. + 1e8dc267ca91: ps(1)'s default list of processes now comes from matching its effective user ID instead of its real user ID with the effective user ID of all From nobody Thu May 1 19:51:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnt34NYz5vdvK; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnt0xxjz46qk; Thu, 01 May 2025 19:51:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oS+7wNCXEyoG+9otqsdQ14hF1AZuKogQa9UaO99RQSI=; b=hXZrceCdOvqr+rpb3fd7vhxMr0t98mc3hXDn1bxAqPVBlinboQ/bD7EBdPqv8PN6DykMS+ choCeBYEYvsqy9t1cpSax3cWvoUVTYsoSwacRaAh5jHvJS8m4lln3lKcKPPCNMoZVsA70h yBAmjvD+3n2Ah7iS7y4F48j00fnYurucVP/gZOpHxGx2b+8E1Hmprt1/hGhNqKA3Hi5Xo5 Bek2byDUgVN5S/Ud6Gj0T/sPVIKuOPjqfGBgBWCUW1kt88tDzpdrayLPTeVgFNn1cTaIsg BGNh5Gu0gGqjfDkfXfyfPWGHYXvrX+RWjgjxZ3HalWxVI5W3LhFMpBLyMYQQTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129106; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oS+7wNCXEyoG+9otqsdQ14hF1AZuKogQa9UaO99RQSI=; b=SX7+RsPblWBiiZdnoTuiBzvypl49XRPQwJyOtYMq1MMaqgM9+XKg8hbWMSGEubIWdt81iC 7W/UfT2tYKriSNQAdAqElSda1vjSw+pxAJnDQG8HetGpzWRj5F0DsiA/9yoa19c0Gw4T+N +hZn9pvGIgaqiRMCQtgFcGx7lBiaRV/BaQsa3NkTqQ3WHenBrSwCB632AkOAphxhqyfiy2 Hf0raqJ2qmxja1RmMSanurp/Aumo3zp1c00A0TlRWK9yYUHI/28d07XP3DSHLwrMGxOvEy vLOclH5Hh/uJGEHeKrqqCTdP2CffTiAwAIKlvCTL2KkhkFnlj1BrCMNEH70xOg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129106; a=rsa-sha256; cv=none; b=qbTsXtnm+jVPn+ELBF8XsjF/ugTau+I5pGqKwWJmbtSuYU4PSpp10xk7yNTvpy3E5C5WWy MBh4b3cubqpE+qGzvD2mGEv+7qRxHh+rSoI8RKnudr2YEj9jfHODl3O4r8BYuFycIJogXF DKEcgmx1cFMFVccEkWWcovLWZcvrsRx0/036tZN8XMpOcUBzjYtYZKZ21hVkP+/oo3KI7K rF+HCmASVLQTlhtwK7IIsDjXtU8rsxrezGrFDZ8yYXCNyew185DUK/RYqYoSB3hMq8tJhw McPrh6K0/83hgo/o3c8pfAOhQivQbJBQLYQpeekinaAC3ow9+X1j/3tY5dslew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnt0YLVzhyR; Thu, 01 May 2025 19:51:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpkKj068788; Thu, 1 May 2025 19:51:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpkT4068785; Thu, 1 May 2025 19:51:46 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:46 GMT Message-Id: <202505011951.541JpkT4068785@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: a2132d91739d - stable/14 - ps(1): '-U' to select processes by real user IDs List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a2132d91739dc22b99e7da836c81962eed47b8f9 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=a2132d91739dc22b99e7da836c81962eed47b8f9 commit a2132d91739dc22b99e7da836c81962eed47b8f9 Author: Olivier Certner AuthorDate: 2025-04-01 13:07:24 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:42:25 +0000 ps(1): '-U' to select processes by real user IDs This is what POSIX mandates for option '-U' and arguably the behavior that most users actually need in most cases. Before, '-U' would select processes by their effective user IDs (which is the behavior mandated by POSIX for option '-u'). Matching by real user IDs allows to list all processes belonging to the passed users, including those temporarily having a different effective user ID, which can happen if launched by a setuid executable or if using some credentials-changing facility (such as seteuid() for root processes or mac_do(4)/setcred(2)). Conversely, processes temporarily assuming the identity of some of the passed users will not be listed anymore (they do not "belong" to these users). This change also makes '-U' consistent with '-G', the latter already matching on real group IDs. While here, remove the (non-compiled) code for tentative option '-R' as its proposed behavior was the one established here for '-U'. Also, move the compiled-out old code for '-U' under '-u' for reference, as this is what the latter should do according to POSIX, even if it seems unlikely we will want to change the behavior of '-u'. Reviewed by: manpages (ziaee) MFC after: 3 days Relnotes: yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49622 (code) Differential Revision: https://reviews.freebsd.org/D49623 (manual page) (cherry picked from commit 995b690d1398044dc9d85a6d86ec550cda30b2ac) --- bin/ps/ps.1 | 14 +++++--------- bin/ps/ps.c | 37 ++++++++++++++++++------------------- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 1814a3fca1b3..329ec4180503 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -367,8 +367,8 @@ Implies .Fl x by default. .It Fl U -Display information about processes whose effective user ID matches the -specified user IDs or names. +Display information about processes whose real user ID matches the specified +user IDs or names. Implies .Fl x by default. @@ -953,20 +953,16 @@ equivalently to .Pc , and option .Fl u -to select processes by effective user ID -.Po -which is the current behavior of option -.Fl U -.Pc . +to select processes by effective user ID. .Pp However, options -.Fl A , a , G , l , o , p , +.Fl A , a , G , l , o , p , U , and .Fl t behave as prescribed by .St -p1003.1-2024 . Options -.Fl f , U , +.Fl f and .Fl w currently do not, but may be changed to in the future. diff --git a/bin/ps/ps.c b/bin/ps/ps.c index 786537a0e959..c78809b218d5 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -381,20 +381,6 @@ main(int argc, char *argv[]) */ nselectors++; break; -#if 0 - case 'R': - /* - * XXX - This un-standard option is still under - * debate. This is what SUSv3 defines as - * the `-U' option, and while it would be - * nice to have, it could cause even more - * confusion to implement it as `-R'. - */ - add_list(&ruidlist, optarg); - xkeep_implied = 1; - nselectors++; - break; -#endif case 'r': sortby = SORTCPU; break; @@ -426,21 +412,34 @@ main(int argc, char *argv[]) nselectors++; break; case 'U': + add_list(&ruidlist, optarg); + xkeep_implied = 1; + nselectors++; + break; + case 'u': +#if 0 /* - * POSIX says that '-U' should match on real user IDs, - * not effective ones as we are doing here, which is - * normally the behavior of option '-u' according to the - * standard. + * POSIX's '-u' behavior. + * + * This has not been activated because: + * 1. Option '-U' is a substitute for most users, and + * those that care seem more likely to want to match + * on the real user ID to display all processes + * launched by some users. + * 2. '-u' has been a canned display on the BSDs for + * a very long time (POLA). */ add_list(&uidlist, optarg); xkeep_implied = 1; nselectors++; break; - case 'u': +#else + /* Historical BSD's '-u'. */ parsefmt(ufmt, &varlist, 0); sortby = SORTCPU; _fmt = 1; break; +#endif case 'v': parsefmt(vfmt, &varlist, 0); sortby = SORTMEM; From nobody Thu May 1 19:51:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPny0D15z5vdrG; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnx3smBz472B; Thu, 01 May 2025 19:51:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129109; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=78XVAj8kRpBOlbhxJ01ZHrx+JalAs4UPgH1RKVaCVv0=; b=eR0tTv74PxaMGuSEWLyu0cI9QEljME+497LAvm9f0BuKIKiu8EbswkLTQTGSBv4JAMvwzj gr3dYAi+uY+kv/mUpmKcbsN+p+ek7gxRiSQFKjxrZ47CmSEUp1yNfNBn3BrC2j3xrfElH2 NYg+ufnz34B7nzhhy8tGpm5zDDsyCEwVxEQ+KJDEeozT7HrzzWxy6VHc8uXOGk9YOwliDh 8Sk+cb57pnGwU09K9VBzCvQLFGBGMCRsvBIpvokdman7mdu2Nzo1kwZ1b4s0GE1PRYHZTO dI57UgYkR+YK38aCfSOWsEzrq6G3AHFTaWK22WN5wJB2ev6VNpAwalEVqcHgXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129109; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=78XVAj8kRpBOlbhxJ01ZHrx+JalAs4UPgH1RKVaCVv0=; b=kg8CN8ncPSvr2r1xYNwc3pL7wdINq26enosFoF8vCrbAlY6ZyR3OekDUPEcKfv3DLoZ3qq r+j0y4E4SpAOIWwIlusoCUEGMThJ219tcpVtEma4PhTTsZFmYDYuY8tpijeE0wR+QeOv1h uMyRb3asbhq+w40dW4YCPSv8jWOlpLnRHv2+gDeU84LCEuNZ4OX0/fF3kNdPfMXN42qIOK /ns3DbtZi9vNm8V2VqOTQJHlqvOMyHstk9gY2/oUtGIeVDbXN0xOKabRpQL/0KxuphHBK+ Hb49rYGnML4kZPxQ+wmPGLTsZWOvWRJtJhP98/sglvzFhqJtNQ43mCYHwa7OUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129109; a=rsa-sha256; cv=none; b=kY3Oo6Q4LpCL/vxLK8F5+gII/jjb+jc40LXvXDgq33nxqUsSJBqMMVKgjTcFOA0P+GYoXq Q3ucGpCuCzDgERItAWZY/FP3TS+RfZADDgIj7y1g14RqcByxvFU6yIp5G7XIMEEyg7Z4n+ BWqz5c9+cLZnYo6vUvnYLjXfmpMMm74Z5eGdy2gbxcdP4lyjYVOk6/mSIbVzGzKBkxQDPF 4V6Uw4eBl4gtUTmzd7jX2fg0LgNGAU+CrrRZjYjpzj06ahzTQQ0nx8jqxxU6ESFpduPpWQ SVlgVwAaN0QgBxn+OsvURxc5hHKPe29xuIrOpIQaTRSMmv6D9AYrkiDUemVYLQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnx3SlZzhjN; Thu, 01 May 2025 19:51:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpnQW068893; Thu, 1 May 2025 19:51:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpnXo068890; Thu, 1 May 2025 19:51:49 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:49 GMT Message-Id: <202505011951.541JpnXo068890@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 3772cb06205f - stable/14 - kassert: Explicitly include List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3772cb06205fd6bd9f7afcf9ffa0c7b4514f94da Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=3772cb06205fd6bd9f7afcf9ffa0c7b4514f94da commit 3772cb06205fd6bd9f7afcf9ffa0c7b4514f94da Author: Olivier Certner AuthorDate: 2025-04-07 12:16:34 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:46:37 +0000 kassert: Explicitly include Include it as has direct references defined in it (to '__va_list' and '__printflike' at least). This is a step to make usable without the need to explicitly include other headers. Reviewed by: imp, markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49972 (cherry picked from commit 0f2090ccfeb6e3e1a2290300b53baedfb057c2b5) --- sys/sys/kassert.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/kassert.h b/sys/sys/kassert.h index 8e22e0e2c9f9..ad8242245c37 100644 --- a/sys/sys/kassert.h +++ b/sys/sys/kassert.h @@ -31,6 +31,7 @@ #ifndef _SYS_KASSERT_H_ #define _SYS_KASSERT_H_ +#include #include #ifdef _KERNEL From nobody Thu May 1 19:51:48 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnw6z3Pz5vfMJ; Thu, 01 May 2025 19:51:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnw3N81z46rR; Thu, 01 May 2025 19:51:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129108; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y4hZO+nNzeeFzeaHEtIAzKnPVKF3JtCzEjpa6t2esfo=; b=l9SiT+ZHWN/vQL/sVwyPKnzMmX8qkluSm+FUQ5BApQ36dmlxr7DM/C3AWl0buoohm2OlIR ZtJoJawWq8sL9n8OaVUlw/nOs/n7Y+AGWVlqP7KVYHOYA6wNi3okCxuWyBX2cMqYvFzDgE fdciKxjmiCVFbldHCnSdyAAa0zfAuJhgBBMOrTT86Zzl/iW4Q3Jgpm2yNVevswJZ6Nm2XL 7HzbN3TbbEukUNOrqFvujvOyO/TNh8S9t7Gz1voSCUB2UfCB7SOqpq/bhc90HA4bayEPqU OCpT4zFmFBr8OYA/htU2Of9nShHngPmEPvizPnn0u21neHay8ms6dXWtHPM/Lg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129108; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y4hZO+nNzeeFzeaHEtIAzKnPVKF3JtCzEjpa6t2esfo=; b=sFQvYBFrjAceNaOsXifxN9Guqb5l/BfjpkBWgLSaC1AFEjx6106J0PfaKa4vW042ncbaXm 1lZVdy3FTqTIImBWqWbp+X7EPd34UZCAJH3TnDMetukR/me4KjpEmEhezOSbmah1k5l1Xn dlFLQOPPsx786KmCavcExihr2/CyfZnIOXPVhWc4DNPxAqPHPH5wBrfS68QiTxbe0ApI2Q 3rlY4BtC568qcCpc8DmPRL1uvw1d1V3+OEcQ6nvZr3w9qI911Zt6MduTocM/9/+WinHO3O G/jOquYRfVN02exHGmqtw8rblbwrVyPIPhpAn2ER2UNu6MpQa/1XL5tw6uK1pw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129108; a=rsa-sha256; cv=none; b=uDnlltOBSi7ksIe9UeNy/6dVyOYZZZjwe3RniCR30PnRK8ZgdydAG5cVigLklBLBgZ/1tV A/dIyz4vhoBBCTCZr1TAa7oMRPR0qfjJVLYEYXYeAQn05fGjJHEzM1uEYEcpNROOM8SFVD MMV95aEAA+llz/s6mx17PIWgCnIBaDmRp9eX9iC1/+lLNS/oxCZDQ+1OwpwajAcTPGoC+J WWmih3iodLI2HbImRqjd88j+f7AGQTrhN30qEFEsKVwt+LtJcyF9uBeXKpzBbH0RpLt4XI M6rwFxSQ/bE5V3EejZFyxLDgOvan951CgJiJJ4J2j4F7OTP/Ds2zYT24dRogew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnw2fGtzjFh; Thu, 01 May 2025 19:51:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpmU2068860; Thu, 1 May 2025 19:51:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpm7S068857; Thu, 1 May 2025 19:51:48 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:48 GMT Message-Id: <202505011951.541Jpm7S068857@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 49066283a4c1 - stable/14 - queue(3): Consistent single space after all #define List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 49066283a4c1fc5c9d6c4cbee00cc941f4b09792 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=49066283a4c1fc5c9d6c4cbee00cc941f4b09792 commit 49066283a4c1fc5c9d6c4cbee00cc941f4b09792 Author: Olivier Certner AuthorDate: 2025-04-04 19:33:29 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:46:30 +0000 queue(3): Consistent single space after all #define Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49970 (cherry picked from commit a4df0830d74dba9d20c01d8c108bddeb1ecd62cd) --- sys/sys/queue.h | 302 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 151 insertions(+), 151 deletions(-) diff --git a/sys/sys/queue.h b/sys/sys/queue.h index 97af11876232..4e35437379cd 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -32,7 +32,7 @@ */ #ifndef _SYS_QUEUE_H_ -#define _SYS_QUEUE_H_ +#define _SYS_QUEUE_H_ #include @@ -119,8 +119,8 @@ */ #ifdef QUEUE_MACRO_DEBUG #warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH -#define QUEUE_MACRO_DEBUG_TRACE -#define QUEUE_MACRO_DEBUG_TRASH +#define QUEUE_MACRO_DEBUG_TRACE +#define QUEUE_MACRO_DEBUG_TRASH #endif #ifdef QUEUE_MACRO_DEBUG_TRACE @@ -132,17 +132,17 @@ struct qm_trace { const char *prevfile; }; -#define TRACEBUF struct qm_trace trace; -#define TRACEBUF_INITIALIZER { __LINE__, 0, __FILE__, NULL } , +#define TRACEBUF struct qm_trace trace; +#define TRACEBUF_INITIALIZER { __LINE__, 0, __FILE__, NULL } , -#define QMD_TRACE_HEAD(head) do { \ +#define QMD_TRACE_HEAD(head) do { \ (head)->trace.prevline = (head)->trace.lastline; \ (head)->trace.prevfile = (head)->trace.lastfile; \ (head)->trace.lastline = __LINE__; \ (head)->trace.lastfile = __FILE__; \ } while (0) -#define QMD_TRACE_ELEM(elem) do { \ +#define QMD_TRACE_ELEM(elem) do { \ (elem)->trace.prevline = (elem)->trace.lastline; \ (elem)->trace.prevfile = (elem)->trace.lastfile; \ (elem)->trace.lastline = __LINE__; \ @@ -150,53 +150,53 @@ struct qm_trace { } while (0) #else /* !QUEUE_MACRO_DEBUG_TRACE */ -#define QMD_TRACE_ELEM(elem) -#define QMD_TRACE_HEAD(head) -#define TRACEBUF -#define TRACEBUF_INITIALIZER +#define QMD_TRACE_ELEM(elem) +#define QMD_TRACE_HEAD(head) +#define TRACEBUF +#define TRACEBUF_INITIALIZER #endif /* QUEUE_MACRO_DEBUG_TRACE */ #ifdef QUEUE_MACRO_DEBUG_TRASH -#define QMD_SAVELINK(name, link) void **name = (void *)&(link) -#define TRASHIT(x) do {(x) = (void *)-1;} while (0) -#define QMD_IS_TRASHED(x) ((x) == (void *)(intptr_t)-1) +#define QMD_SAVELINK(name, link) void **name = (void *)&(link) +#define TRASHIT(x) do {(x) = (void *)-1;} while (0) +#define QMD_IS_TRASHED(x) ((x) == (void *)(intptr_t)-1) #else /* !QUEUE_MACRO_DEBUG_TRASH */ -#define QMD_SAVELINK(name, link) -#define TRASHIT(x) -#define QMD_IS_TRASHED(x) 0 +#define QMD_SAVELINK(name, link) +#define TRASHIT(x) +#define QMD_IS_TRASHED(x) 0 #endif /* QUEUE_MACRO_DEBUG_TRASH */ #ifdef __cplusplus /* * In C++ there can be structure lists and class lists: */ -#define QUEUE_TYPEOF(type) type +#define QUEUE_TYPEOF(type) type #else -#define QUEUE_TYPEOF(type) struct type +#define QUEUE_TYPEOF(type) struct type #endif /* * Singly-linked List declarations. */ -#define SLIST_HEAD(name, type) \ +#define SLIST_HEAD(name, type) \ struct name { \ struct type *slh_first; /* first element */ \ } -#define SLIST_CLASS_HEAD(name, type) \ +#define SLIST_CLASS_HEAD(name, type) \ struct name { \ class type *slh_first; /* first element */ \ } -#define SLIST_HEAD_INITIALIZER(head) \ +#define SLIST_HEAD_INITIALIZER(head) \ { NULL } -#define SLIST_ENTRY(type) \ +#define SLIST_ENTRY(type) \ struct { \ struct type *sle_next; /* next element */ \ } -#define SLIST_CLASS_ENTRY(type) \ +#define SLIST_CLASS_ENTRY(type) \ struct { \ class type *sle_next; /* next element */ \ } @@ -205,25 +205,25 @@ struct { \ * Singly-linked List functions. */ #if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ +#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ if (*(prevp) != (elm)) \ panic("Bad prevptr *(%p) == %p != %p", \ (prevp), *(prevp), (elm)); \ } while (0) -#define SLIST_ASSERT_EMPTY(head) do { \ +#define SLIST_ASSERT_EMPTY(head) do { \ if (!SLIST_EMPTY((head))) \ panic("%s: slist %p is not empty", __func__, (head)); \ } while (0) -#define SLIST_ASSERT_NONEMPTY(head) do { \ +#define SLIST_ASSERT_NONEMPTY(head) do { \ if (SLIST_EMPTY((head))) \ panic("%s: slist %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) -#define SLIST_ASSERT_EMPTY(head) -#define SLIST_ASSERT_NONEMPTY(head) +#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) +#define SLIST_ASSERT_EMPTY(head) +#define SLIST_ASSERT_NONEMPTY(head) #endif #define SLIST_CONCAT(head1, head2, type, field) do { \ @@ -239,55 +239,55 @@ struct { \ } \ } while (0) -#define SLIST_EMPTY(head) ((head)->slh_first == NULL) +#define SLIST_EMPTY(head) ((head)->slh_first == NULL) -#define SLIST_EMPTY_ATOMIC(head) \ +#define SLIST_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->slh_first) == NULL) -#define SLIST_FIRST(head) ((head)->slh_first) +#define SLIST_FIRST(head) ((head)->slh_first) -#define SLIST_FOREACH(var, head, field) \ +#define SLIST_FOREACH(var, head, field) \ for ((var) = SLIST_FIRST((head)); \ (var); \ (var) = SLIST_NEXT((var), field)) -#define SLIST_FOREACH_FROM(var, head, field) \ +#define SLIST_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ (var); \ (var) = SLIST_NEXT((var), field)) -#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ +#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = SLIST_FIRST((head)); \ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define SLIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : SLIST_FIRST((head))); \ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ +#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ for ((varp) = &SLIST_FIRST((head)); \ ((var) = *(varp)) != NULL; \ (varp) = &SLIST_NEXT((var), field)) -#define SLIST_INIT(head) do { \ +#define SLIST_INIT(head) do { \ SLIST_FIRST((head)) = NULL; \ } while (0) -#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ +#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ SLIST_NEXT((slistelm), field) = (elm); \ } while (0) -#define SLIST_INSERT_HEAD(head, elm, field) do { \ +#define SLIST_INSERT_HEAD(head, elm, field) do { \ SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ SLIST_FIRST((head)) = (elm); \ } while (0) -#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) +#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) -#define SLIST_REMOVE(head, elm, type, field) do { \ +#define SLIST_REMOVE(head, elm, type, field) do { \ if (SLIST_FIRST((head)) == (elm)) { \ SLIST_REMOVE_HEAD((head), field); \ } \ @@ -306,19 +306,19 @@ struct { \ TRASHIT(*oldnext); \ } while (0) -#define SLIST_REMOVE_HEAD(head, field) do { \ +#define SLIST_REMOVE_HEAD(head, field) do { \ QMD_SAVELINK(oldnext, SLIST_FIRST(head)->field.sle_next); \ SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ TRASHIT(*oldnext); \ } while (0) -#define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ +#define SLIST_REMOVE_PREVPTR(prevp, elm, field) do { \ QMD_SLIST_CHECK_PREVPTR(prevp, elm); \ *(prevp) = SLIST_NEXT(elm, field); \ TRASHIT((elm)->field.sle_next); \ } while (0) -#define SLIST_SPLIT_AFTER(head, elm, rest, field) do { \ +#define SLIST_SPLIT_AFTER(head, elm, rest, field) do { \ SLIST_ASSERT_NONEMPTY((head)); \ SLIST_FIRST((rest)) = SLIST_NEXT((elm), field); \ SLIST_NEXT((elm), field) = NULL; \ @@ -330,32 +330,32 @@ struct { \ SLIST_FIRST(head2) = swap_first; \ } while (0) -#define SLIST_END(head) NULL +#define SLIST_END(head) NULL /* * Singly-linked Tail queue declarations. */ -#define STAILQ_HEAD(name, type) \ +#define STAILQ_HEAD(name, type) \ struct name { \ struct type *stqh_first;/* first element */ \ struct type **stqh_last;/* addr of last next element */ \ } -#define STAILQ_CLASS_HEAD(name, type) \ +#define STAILQ_CLASS_HEAD(name, type) \ struct name { \ class type *stqh_first; /* first element */ \ class type **stqh_last; /* addr of last next element */ \ } -#define STAILQ_HEAD_INITIALIZER(head) \ +#define STAILQ_HEAD_INITIALIZER(head) \ { NULL, &(head).stqh_first } -#define STAILQ_ENTRY(type) \ +#define STAILQ_ENTRY(type) \ struct { \ struct type *stqe_next; /* next element */ \ } -#define STAILQ_CLASS_ENTRY(type) \ +#define STAILQ_CLASS_ENTRY(type) \ struct { \ class type *stqe_next; /* next element */ \ } @@ -370,7 +370,7 @@ struct { \ * Validates that the stailq head's pointer to the last element's next pointer * actually points to the head's first element pointer field. */ -#define QMD_STAILQ_CHECK_EMPTY(head) do { \ +#define QMD_STAILQ_CHECK_EMPTY(head) do { \ if ((head)->stqh_last != &(head)->stqh_first) \ panic("Empty stailq %p->stqh_last is %p, not head's " \ "first field address", (head), (head)->stqh_last); \ @@ -381,30 +381,30 @@ struct { \ * * Validates that the stailq's last element's next pointer is NULL. */ -#define QMD_STAILQ_CHECK_TAIL(head) do { \ +#define QMD_STAILQ_CHECK_TAIL(head) do { \ if (*(head)->stqh_last != NULL) \ panic("Stailq %p last element's next pointer is %p, " \ "not NULL", (head), *(head)->stqh_last); \ } while (0) -#define STAILQ_ASSERT_EMPTY(head) do { \ +#define STAILQ_ASSERT_EMPTY(head) do { \ if (!STAILQ_EMPTY((head))) \ panic("%s: stailq %p is not empty", __func__, (head)); \ } while (0) -#define STAILQ_ASSERT_NONEMPTY(head) do { \ +#define STAILQ_ASSERT_NONEMPTY(head) do { \ if (STAILQ_EMPTY((head))) \ panic("%s: stailq %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_STAILQ_CHECK_EMPTY(head) -#define QMD_STAILQ_CHECK_TAIL(head) -#define STAILQ_ASSERT_EMPTY(head) -#define STAILQ_ASSERT_NONEMPTY(head) +#define QMD_STAILQ_CHECK_EMPTY(head) +#define QMD_STAILQ_CHECK_TAIL(head) +#define STAILQ_ASSERT_EMPTY(head) +#define STAILQ_ASSERT_NONEMPTY(head) #endif /* _KERNEL && INVARIANTS */ -#define STAILQ_CONCAT(head1, head2) do { \ +#define STAILQ_CONCAT(head1, head2) do { \ if (!STAILQ_EMPTY((head2))) { \ *(head1)->stqh_last = (head2)->stqh_first; \ (head1)->stqh_last = (head2)->stqh_last; \ @@ -412,69 +412,69 @@ struct { \ } \ } while (0) -#define STAILQ_EMPTY(head) ({ \ +#define STAILQ_EMPTY(head) ({ \ if (STAILQ_FIRST(head) == NULL) \ QMD_STAILQ_CHECK_EMPTY(head); \ STAILQ_FIRST(head) == NULL; \ }) -#define STAILQ_EMPTY_ATOMIC(head) \ +#define STAILQ_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->stqh_first) == NULL) -#define STAILQ_FIRST(head) ((head)->stqh_first) +#define STAILQ_FIRST(head) ((head)->stqh_first) -#define STAILQ_FOREACH(var, head, field) \ +#define STAILQ_FOREACH(var, head, field) \ for((var) = STAILQ_FIRST((head)); \ (var); \ (var) = STAILQ_NEXT((var), field)) -#define STAILQ_FOREACH_FROM(var, head, field) \ +#define STAILQ_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ (var); \ (var) = STAILQ_NEXT((var), field)) -#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ +#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = STAILQ_FIRST((head)); \ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define STAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : STAILQ_FIRST((head))); \ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define STAILQ_INIT(head) do { \ +#define STAILQ_INIT(head) do { \ STAILQ_FIRST((head)) = NULL; \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0) -#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ +#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ STAILQ_NEXT((tqelm), field) = (elm); \ } while (0) -#define STAILQ_INSERT_HEAD(head, elm, field) do { \ +#define STAILQ_INSERT_HEAD(head, elm, field) do { \ if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ STAILQ_FIRST((head)) = (elm); \ } while (0) -#define STAILQ_INSERT_TAIL(head, elm, field) do { \ +#define STAILQ_INSERT_TAIL(head, elm, field) do { \ QMD_STAILQ_CHECK_TAIL(head); \ STAILQ_NEXT((elm), field) = NULL; \ *(head)->stqh_last = (elm); \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ } while (0) -#define STAILQ_LAST(head, type, field) \ +#define STAILQ_LAST(head, type, field) \ (STAILQ_EMPTY((head)) ? NULL : \ __containerof((head)->stqh_last, \ QUEUE_TYPEOF(type), field.stqe_next)) -#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) +#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) -#define STAILQ_REMOVE(head, elm, type, field) do { \ +#define STAILQ_REMOVE(head, elm, type, field) do { \ QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \ if (STAILQ_FIRST((head)) == (elm)) { \ STAILQ_REMOVE_HEAD((head), field); \ @@ -494,13 +494,13 @@ struct { \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ } while (0) -#define STAILQ_REMOVE_HEAD(head, field) do { \ +#define STAILQ_REMOVE_HEAD(head, field) do { \ if ((STAILQ_FIRST((head)) = \ STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ (head)->stqh_last = &STAILQ_FIRST((head)); \ } while (0) -#define STAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ +#define STAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ STAILQ_ASSERT_NONEMPTY((head)); \ QMD_STAILQ_CHECK_TAIL((head)); \ if (STAILQ_NEXT((elm), field) == NULL) \ @@ -527,32 +527,32 @@ struct { \ (head2)->stqh_last = &STAILQ_FIRST(head2); \ } while (0) -#define STAILQ_END(head) NULL +#define STAILQ_END(head) NULL /* * List declarations. */ -#define LIST_HEAD(name, type) \ +#define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } -#define LIST_CLASS_HEAD(name, type) \ +#define LIST_CLASS_HEAD(name, type) \ struct name { \ class type *lh_first; /* first element */ \ } -#define LIST_HEAD_INITIALIZER(head) \ +#define LIST_HEAD_INITIALIZER(head) \ { NULL } -#define LIST_ENTRY(type) \ +#define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } -#define LIST_CLASS_ENTRY(type) \ +#define LIST_CLASS_ENTRY(type) \ struct { \ class type *le_next; /* next element */ \ class type **le_prev; /* address of previous next element */ \ @@ -569,7 +569,7 @@ struct { \ * If the list is non-empty, validates that the first element of the list * points back at 'head.' */ -#define QMD_LIST_CHECK_HEAD(head, field) do { \ +#define QMD_LIST_CHECK_HEAD(head, field) do { \ if (LIST_FIRST((head)) != NULL && \ LIST_FIRST((head))->field.le_prev != \ &LIST_FIRST((head))) \ @@ -582,7 +582,7 @@ struct { \ * If an element follows 'elm' in the list, validates that the next element * points back at 'elm.' */ -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ +#define QMD_LIST_CHECK_NEXT(elm, field) do { \ if (LIST_NEXT((elm), field) != NULL && \ LIST_NEXT((elm), field)->field.le_prev != \ &((elm)->field.le_next)) \ @@ -594,26 +594,26 @@ struct { \ * * Validates that the previous element (or head of the list) points to 'elm.' */ -#define QMD_LIST_CHECK_PREV(elm, field) do { \ +#define QMD_LIST_CHECK_PREV(elm, field) do { \ if (*(elm)->field.le_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) -#define LIST_ASSERT_EMPTY(head) do { \ +#define LIST_ASSERT_EMPTY(head) do { \ if (!LIST_EMPTY((head))) \ panic("%s: list %p is not empty", __func__, (head)); \ } while (0) -#define LIST_ASSERT_NONEMPTY(head) do { \ +#define LIST_ASSERT_NONEMPTY(head) do { \ if (LIST_EMPTY((head))) \ panic("%s: list %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#define LIST_ASSERT_EMPTY(head) -#define LIST_ASSERT_NONEMPTY(head) +#define QMD_LIST_CHECK_HEAD(head, field) +#define QMD_LIST_CHECK_NEXT(elm, field) +#define QMD_LIST_CHECK_PREV(elm, field) +#define LIST_ASSERT_EMPTY(head) +#define LIST_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ #define LIST_CONCAT(head1, head2, type, field) do { \ @@ -633,38 +633,38 @@ struct { \ } \ } while (0) -#define LIST_EMPTY(head) ((head)->lh_first == NULL) +#define LIST_EMPTY(head) ((head)->lh_first == NULL) -#define LIST_EMPTY_ATOMIC(head) \ +#define LIST_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->lh_first) == NULL) -#define LIST_FIRST(head) ((head)->lh_first) +#define LIST_FIRST(head) ((head)->lh_first) -#define LIST_FOREACH(var, head, field) \ +#define LIST_FOREACH(var, head, field) \ for ((var) = LIST_FIRST((head)); \ (var); \ (var) = LIST_NEXT((var), field)) -#define LIST_FOREACH_FROM(var, head, field) \ +#define LIST_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ (var); \ (var) = LIST_NEXT((var), field)) -#define LIST_FOREACH_SAFE(var, head, field, tvar) \ +#define LIST_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = LIST_FIRST((head)); \ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define LIST_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : LIST_FIRST((head))); \ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ (var) = (tvar)) -#define LIST_INIT(head) do { \ +#define LIST_INIT(head) do { \ LIST_FIRST((head)) = NULL; \ } while (0) -#define LIST_INSERT_AFTER(listelm, elm, field) do { \ +#define LIST_INSERT_AFTER(listelm, elm, field) do { \ QMD_LIST_CHECK_NEXT(listelm, field); \ if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ LIST_NEXT((listelm), field)->field.le_prev = \ @@ -673,7 +673,7 @@ struct { \ (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ } while (0) -#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ +#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ QMD_LIST_CHECK_PREV(listelm, field); \ (elm)->field.le_prev = (listelm)->field.le_prev; \ LIST_NEXT((elm), field) = (listelm); \ @@ -681,7 +681,7 @@ struct { \ (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ } while (0) -#define LIST_INSERT_HEAD(head, elm, field) do { \ +#define LIST_INSERT_HEAD(head, elm, field) do { \ QMD_LIST_CHECK_HEAD((head), field); \ if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ @@ -689,9 +689,9 @@ struct { \ (elm)->field.le_prev = &LIST_FIRST((head)); \ } while (0) -#define LIST_NEXT(elm, field) ((elm)->field.le_next) +#define LIST_NEXT(elm, field) ((elm)->field.le_next) -#define LIST_PREV(elm, head, type, field) \ +#define LIST_PREV(elm, head, type, field) \ ((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL : \ __containerof((elm)->field.le_prev, \ QUEUE_TYPEOF(type), field.le_next)) @@ -699,7 +699,7 @@ struct { \ #define LIST_REMOVE_HEAD(head, field) \ LIST_REMOVE(LIST_FIRST(head), field) -#define LIST_REMOVE(elm, field) do { \ +#define LIST_REMOVE(elm, field) do { \ QMD_SAVELINK(oldnext, (elm)->field.le_next); \ QMD_SAVELINK(oldprev, (elm)->field.le_prev); \ QMD_LIST_CHECK_NEXT(elm, field); \ @@ -727,7 +727,7 @@ struct { \ TRASHIT(*oldprev); \ } while (0) -#define LIST_SPLIT_AFTER(head, elm, rest, field) do { \ +#define LIST_SPLIT_AFTER(head, elm, rest, field) do { \ LIST_ASSERT_NONEMPTY((head)); \ if (LIST_NEXT((elm), field) == NULL) \ /* 'elm' is the last element in 'head'. */ \ @@ -750,36 +750,36 @@ struct { \ swap_tmp->field.le_prev = &LIST_FIRST((head2)); \ } while (0) -#define LIST_END(head) NULL +#define LIST_END(head) NULL /* * Tail queue declarations. */ -#define TAILQ_HEAD(name, type) \ +#define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ struct type **tqh_last; /* addr of last next element */ \ TRACEBUF \ } -#define TAILQ_CLASS_HEAD(name, type) \ +#define TAILQ_CLASS_HEAD(name, type) \ struct name { \ class type *tqh_first; /* first element */ \ class type **tqh_last; /* addr of last next element */ \ TRACEBUF \ } -#define TAILQ_HEAD_INITIALIZER(head) \ +#define TAILQ_HEAD_INITIALIZER(head) \ { NULL, &(head).tqh_first, TRACEBUF_INITIALIZER } -#define TAILQ_ENTRY(type) \ +#define TAILQ_ENTRY(type) \ struct { \ struct type *tqe_next; /* next element */ \ struct type **tqe_prev; /* address of previous next element */ \ TRACEBUF \ } -#define TAILQ_CLASS_ENTRY(type) \ +#define TAILQ_CLASS_ENTRY(type) \ struct { \ class type *tqe_next; /* next element */ \ class type **tqe_prev; /* address of previous next element */ \ @@ -796,7 +796,7 @@ struct { \ * If the tailq is non-empty, validates that the first element of the tailq * points back at 'head.' */ -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ +#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ if (!TAILQ_EMPTY(head) && \ TAILQ_FIRST((head))->field.tqe_prev != \ &TAILQ_FIRST((head))) \ @@ -808,7 +808,7 @@ struct { \ * * Validates that the tail of the tailq is a pointer to pointer to NULL. */ -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ +#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ if (*(head)->tqh_last != NULL) \ panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ } while (0) @@ -819,7 +819,7 @@ struct { \ * If an element follows 'elm' in the tailq, validates that the next element * points back at 'elm.' */ -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ +#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ if (TAILQ_NEXT((elm), field) != NULL && \ TAILQ_NEXT((elm), field)->field.tqe_prev != \ &((elm)->field.tqe_next)) \ @@ -831,30 +831,30 @@ struct { \ * * Validates that the previous element (or head of the tailq) points to 'elm.' */ -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ +#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ if (*(elm)->field.tqe_prev != (elm)) \ panic("Bad link elm %p prev->next != elm", (elm)); \ } while (0) -#define TAILQ_ASSERT_EMPTY(head) do { \ +#define TAILQ_ASSERT_EMPTY(head) do { \ if (!TAILQ_EMPTY((head))) \ panic("%s: tailq %p is not empty", __func__, (head)); \ } while (0) -#define TAILQ_ASSERT_NONEMPTY(head) do { \ +#define TAILQ_ASSERT_NONEMPTY(head) do { \ if (TAILQ_EMPTY((head))) \ panic("%s: tailq %p is empty", __func__, (head)); \ } while (0) #else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#define TAILQ_ASSERT_EMPTY(head) -#define TAILQ_ASSERT_NONEMPTY(head) +#define QMD_TAILQ_CHECK_HEAD(head, field) +#define QMD_TAILQ_CHECK_TAIL(head, headname) +#define QMD_TAILQ_CHECK_NEXT(elm, field) +#define QMD_TAILQ_CHECK_PREV(elm, field) +#define TAILQ_ASSERT_EMPTY(head) +#define TAILQ_ASSERT_NONEMPTY(head) #endif /* (_KERNEL && INVARIANTS) */ -#define TAILQ_CONCAT(head1, head2, field) do { \ +#define TAILQ_CONCAT(head1, head2, field) do { \ if (!TAILQ_EMPTY(head2)) { \ *(head1)->tqh_last = (head2)->tqh_first; \ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ @@ -865,60 +865,60 @@ struct { \ } \ } while (0) -#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) +#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) -#define TAILQ_EMPTY_ATOMIC(head) \ +#define TAILQ_EMPTY_ATOMIC(head) \ (atomic_load_ptr(&(head)->tqh_first) == NULL) -#define TAILQ_FIRST(head) ((head)->tqh_first) +#define TAILQ_FIRST(head) ((head)->tqh_first) -#define TAILQ_FOREACH(var, head, field) \ +#define TAILQ_FOREACH(var, head, field) \ for ((var) = TAILQ_FIRST((head)); \ (var); \ (var) = TAILQ_NEXT((var), field)) -#define TAILQ_FOREACH_FROM(var, head, field) \ +#define TAILQ_FOREACH_FROM(var, head, field) \ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ (var); \ (var) = TAILQ_NEXT((var), field)) -#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ +#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ for ((var) = TAILQ_FIRST((head)); \ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ +#define TAILQ_FOREACH_FROM_SAFE(var, head, field, tvar) \ for ((var) = ((var) ? (var) : TAILQ_FIRST((head))); \ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ (var) = (tvar)) -#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ +#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ for ((var) = TAILQ_LAST((head), headname); \ (var); \ (var) = TAILQ_PREV((var), headname, field)) -#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ +#define TAILQ_FOREACH_REVERSE_FROM(var, head, headname, field) \ for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ (var); \ (var) = TAILQ_PREV((var), headname, field)) -#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ +#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ for ((var) = TAILQ_LAST((head), headname); \ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ (var) = (tvar)) -#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar)\ +#define TAILQ_FOREACH_REVERSE_FROM_SAFE(var, head, headname, field, tvar)\ for ((var) = ((var) ? (var) : TAILQ_LAST((head), headname)); \ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ (var) = (tvar)) -#define TAILQ_INIT(head) do { \ +#define TAILQ_INIT(head) do { \ TAILQ_FIRST((head)) = NULL; \ (head)->tqh_last = &TAILQ_FIRST((head)); \ QMD_TRACE_HEAD(head); \ } while (0) -#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ +#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ QMD_TAILQ_CHECK_NEXT(listelm, field); \ if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ TAILQ_NEXT((elm), field)->field.tqe_prev = \ @@ -933,7 +933,7 @@ struct { \ QMD_TRACE_ELEM(&(listelm)->field); \ } while (0) -#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ +#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ QMD_TAILQ_CHECK_PREV(listelm, field); \ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ TAILQ_NEXT((elm), field) = (listelm); \ @@ -943,7 +943,7 @@ struct { \ QMD_TRACE_ELEM(&(listelm)->field); \ } while (0) -#define TAILQ_INSERT_HEAD(head, elm, field) do { \ +#define TAILQ_INSERT_HEAD(head, elm, field) do { \ QMD_TAILQ_CHECK_HEAD(head, field); \ if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ TAILQ_FIRST((head))->field.tqe_prev = \ @@ -956,7 +956,7 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) -#define TAILQ_INSERT_TAIL(head, elm, field) do { \ +#define TAILQ_INSERT_TAIL(head, elm, field) do { \ QMD_TAILQ_CHECK_TAIL(head, field); \ TAILQ_NEXT((elm), field) = NULL; \ (elm)->field.tqe_prev = (head)->tqh_last; \ @@ -966,7 +966,7 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) -#define TAILQ_LAST(head, headname) \ +#define TAILQ_LAST(head, headname) \ (*(((struct headname *)((head)->tqh_last))->tqh_last)) /* @@ -976,22 +976,22 @@ struct { \ * the previous element. FAST is very useful for instances when * you may want to prefetch the last data element. */ -#define TAILQ_LAST_FAST(head, type, field) \ +#define TAILQ_LAST_FAST(head, type, field) \ (TAILQ_EMPTY(head) ? NULL : __containerof((head)->tqh_last, QUEUE_TYPEOF(type), field.tqe_next)) -#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) +#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) -#define TAILQ_PREV(elm, headname, field) \ +#define TAILQ_PREV(elm, headname, field) \ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) -#define TAILQ_PREV_FAST(elm, head, type, field) \ +#define TAILQ_PREV_FAST(elm, head, type, field) \ ((elm)->field.tqe_prev == &(head)->tqh_first ? NULL : \ __containerof((elm)->field.tqe_prev, QUEUE_TYPEOF(type), field.tqe_next)) #define TAILQ_REMOVE_HEAD(head, field) \ TAILQ_REMOVE(head, TAILQ_FIRST(head), field) -#define TAILQ_REMOVE(head, elm, field) do { \ +#define TAILQ_REMOVE(head, elm, field) do { \ QMD_SAVELINK(oldnext, (elm)->field.tqe_next); \ QMD_SAVELINK(oldprev, (elm)->field.tqe_prev); \ QMD_TAILQ_CHECK_NEXT(elm, field); \ @@ -1027,7 +1027,7 @@ struct { \ QMD_TRACE_ELEM(&(elm)->field); \ } while (0) -#define TAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ +#define TAILQ_SPLIT_AFTER(head, elm, rest, field) do { \ TAILQ_ASSERT_NONEMPTY((head)); \ QMD_TAILQ_CHECK_TAIL((head), field); \ if (TAILQ_NEXT((elm), field) == NULL) \ @@ -1061,6 +1061,6 @@ struct { \ (head2)->tqh_last = &(head2)->tqh_first; \ } while (0) -#define TAILQ_END(head) NULL +#define TAILQ_END(head) NULL #endif /* !_SYS_QUEUE_H_ */ From nobody Thu May 1 19:51:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp12J5pz5vfMT; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPp06d6Yz47GH; Thu, 01 May 2025 19:51:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5BzydfbZQyOQ2mIUvFPlvE6g6PCUIXAvUgUJQbFOe3I=; b=vLxp3Gp0UTV2G3psNLbTegGBL//MfTdrPrgXIdsAWp8kK6t9YcSjaRy8LraR1gvC3rmiKk pmQX/yiUjcA9wlhD+JQ/C6NN+91bXX8tPUl+3gPU/SGXPdQbWFYpT8DyiZ3fnk98FW5VxW 3XmvRGZRZNjRhHYbiehT8UaoRSmhzVFmFgVbPRiSThnuHIHq4Gd5UbCO2Rzx7AKg4f89pq qtfby0OaslYFv9wXSjKXyy6IFDRZMtFlvmVZkNAcsgxLkcjlaYkHqbaASFDA3GIhbGtrqo iNfQoQWXIXClxQ9zfTFdCQ0693+ga/fUtVbrBL9WB17SKsrmuRMFrKCIYZ+5lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129112; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5BzydfbZQyOQ2mIUvFPlvE6g6PCUIXAvUgUJQbFOe3I=; b=odbD4lOIRvGc9Y4iimgL2acmT+wtPdYg1bd9t3vzE1O3jLO/uocx1IeS8D7GsUmooCYlOY KbzIHJLM8F55qybScVXLlOZDcfoVvBf0PwMpJ2UpHC9jDYD6FQCWkS8DMYnzDGlLl8cXF4 JHuGmLJ0klpkBHSmEcXXy9cHDra2zAmN6/sNm8coEqWma+COiWlQclZR/UWI0vx5idRD7F LG91KbxFZXBKmEi0W6ymMA8iF5vhkmKF27l8NxKqsmXJbQ45i2LGlI4DmtZml6svM7yuo/ dik3AlAqiDjGFkOCm1efYiZoMOIk2cVL8EOKQ5p2GMbMVad6V3acq3IuXsS2Fg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129112; a=rsa-sha256; cv=none; b=dAu4kvK4EICn/ipKd0ZLu9bUN0LJxT/sMk38yitrdLGJxh/dPbvX+egUMxlMnIqNHTlByD jHeIVwG0pciRssOWNSVXzvV2CO9oSuCSUMdSzaQYabAtTAbWYkbKy8BBHNg/UU8km1PdfM mqLcVRiqFPgQrs+zyEcdon+2CuvIAZZAHHBcmjt8ainFvVvWY1q5leCU6RDG94hzaGg9S5 VYaR02R2SQz0zoOuSR6jbZMrxXJOowvuXyakOkECu+EhY58UpWXBYFDkd/tf2xbkqsKcfr Hlz6Qe3WChGv3JaM4SVRjhLtwRanzaoC9I+Nf/QMMiGhzD5IG3l29l34LORhpw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPp069dMzhyV; Thu, 01 May 2025 19:51:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpqMb069001; Thu, 1 May 2025 19:51:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpq39068998; Thu, 1 May 2025 19:51:52 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:52 GMT Message-Id: <202505011951.541Jpq39068998@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 470331e2a564 - stable/14 - .git-blame-ignore-revs: ps(1) whitespace 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 470331e2a56403c1e5a99ccdefdf2a3d47cde563 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=470331e2a56403c1e5a99ccdefdf2a3d47cde563 commit 470331e2a56403c1e5a99ccdefdf2a3d47cde563 Author: Olivier Certner AuthorDate: 2025-04-25 19:15:49 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:47:23 +0000 .git-blame-ignore-revs: ps(1) whitespace cleanup MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit 9f0c9349b907ec507a80d6b659ee1c8c194b3cf5) Commit hash edited on MFC. --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 97b07758db4d..08c238160845 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -8,6 +8,8 @@ # # This file is sorted in git log order (newest commits first). +# bin/ps whitespace cleanup +ad94fb48d8bda7cfaec68b3c7897594991b474bc # sort OptionalObsoleteFiles.inc blocks e027fb0ee8d767f577a1c6f73506128beb6384ef 084cbd8c7283952d68f2c40e27e900fe0af5d97e From nobody Thu May 1 19:51:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp053sKz5vdvW; Thu, 01 May 2025 19:51:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPnz5XgTz472s; Thu, 01 May 2025 19:51:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129111; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yTt2WpvWFphf93URa1CcEmoRcIM50GsLtoerIuqRUB0=; b=s1fAf2i0Bst/oClCUhcc5FpglhwK+UrCXupQ0UVOK6zTKbMcWda8BfAsaXSZT68NL09q6Z G55emQAGrqDO/sSUvLXpV2bDHNJoBAQyC3C/T+j8XEXVHjTuNy750dDzKC9VkEynRTIpoS E6/6HUBrvsEbVSDGtb3YkQ5An6sW+ivusX4O27cpjlnhq5DQ2T+JhpF/ax6SRGs6I+XfCn Nis/Ptkr1rrOZTtz7z/lXf8a196qUoRhXn9qEjzBRb77mzYsSYBNgxzHHIQLfRRRqzhdmD o/UBgcjmFGGXDafq6M+PRP4/aq/9DbpxPPg+vnpaK9E4LgOzoGBYdOgcwb/WRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129111; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yTt2WpvWFphf93URa1CcEmoRcIM50GsLtoerIuqRUB0=; b=qXmmwoeRo9YpH8sWh2RDAfWqDY5qsrmmLQX5WLwympBqQVNQKtPFOlnugUC3n7XVL21RD6 O5VTJUrGETpHDsjZJMKDAotVi/wC6/9nyhCPeEJzPYltEdumaVDjahRDObvJ1+8tLfAgGM V0Ov1NnKt5qNr2yr/qFBBEt+gnGsIbU5HQmLl2PFqd4FcVxtCEx8/edlcahleQ/d+4JTPc IoK/p8RIiOdkCM/HGpGxB5aDmcYE3U6eLYvvDe7JtPlJUF94V+7nTv73QF6dRRp8yODfYh VFA2od37CWgptcZO9A+UeJ/gPao2+UPCDNxERYyyZd9pX1owqGaVMmsfVV+Sdw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129111; a=rsa-sha256; cv=none; b=SKAgYZKekYujhrEBjBWFpoOzPQch1UUMBNukGfUfgkpCQkDp0WwESbp8wKPbHBf0rf23iX 4Me4AIEXzvzB6ivXIj/1cl0qK1eAs9jZo3b2qGsP6H5+wb4aCwBQsw65obOLpLRWKDcUGh cXJYj7QQLLknPd6DXFmqExPc1YhX2kTXs24YAEOaPBo3q0KXsIOKWUu+5exGbcSOX/Vp2h mT2gpKNjbdQj0K94oL7zHgbgDkC2rvNZEmCTqwSNDQvTRogzVXMLBhRsZ0ZJkbN9Dt0Lgm vwuLe79mrZWSrVHTlv/v+ECtod6Jz6sQwd7Oszdf9pLmDD63ShsUC7ZfSRJ0xg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPnz54Qszj1G; Thu, 01 May 2025 19:51:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JppCo068966; Thu, 1 May 2025 19:51:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JppuR068963; Thu, 1 May 2025 19:51:51 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:51 GMT Message-Id: <202505011951.541JppuR068963@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 542e14a59bca - stable/14 - queue(3): Wrap QMD_ASSERT()'s guard with __predict_false() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 542e14a59bcaf97d7faed9f8d3fc5fed20625e3a Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=542e14a59bcaf97d7faed9f8d3fc5fed20625e3a commit 542e14a59bcaf97d7faed9f8d3fc5fed20625e3a Author: Olivier Certner AuthorDate: 2025-04-22 14:26:22 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:46:38 +0000 queue(3): Wrap QMD_ASSERT()'s guard with __predict_false() Such a guard is bound to be almost always false (obviously). Reviewed by: emaste (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49974 (cherry picked from commit 613d66b5e17d92e5304fdc9abe4c62ba015ebf31) --- sys/sys/queue.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/queue.h b/sys/sys/queue.h index e88e3ad69ca3..5dabb1a241c2 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -210,7 +210,7 @@ struct qm_trace { #ifndef QMD_ASSERT #define QMD_ASSERT(expression, fmt, ...) do { \ - if (!(expression)) \ + if (__predict_false(!(expression))) \ QMD_PANIC("%s:%u: %s: " fmt, \ __FILE__, __LINE__, __func__, ##__VA_ARGS__); \ } while (0) From nobody Thu May 1 19:51:50 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPnz02nhz5vfCF; Thu, 01 May 2025 19:51:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPny4mr8z47Cr; Thu, 01 May 2025 19:51:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xckIlVYPHB0gd8Shb9uF0BWO2keWvjx1nzdngLHhxbQ=; b=XY3U8Un5g5WnVBzvP1zXF4vyFaW4diMTHy3aXOjie2SS2xZsSoK8qFI83osd4RY+ODJs5A jbWvpc7Ty8TTQVDHJYP3qxgXyvDc3x1pIOFcGrh2YrRiqSGa3KgK3D0XZwqMKVdbSWgkRp BuP1MhoUAKhkBR3FdTWTkybgZykyq9DBpqTW2WG+JYDU3iSAXHPMJGAqxEvWOq6iyeuUlx AslbbxE55D2GRRobWrWM978e9lNlmfWs2chqSrN0TBJAiimrIXE/J7MgEBdSUFDe5CTVJP ESfkbUB/D4wd8EJwTjfZUP/OxfYzPBoa86rQtb9HOub5e+quCjtwLyo5ecRgyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129110; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xckIlVYPHB0gd8Shb9uF0BWO2keWvjx1nzdngLHhxbQ=; b=COOgjLcEdaSEC/H1xlD27IR18BY6cXhxZysuE3qSWj4kX0FfOOvMvbCcpW/EH/+ylNKbJi Ac6H5M5Kp/jVnHtgXyKVCkRoaaZU47issuyMlu1sV5QxugZ7V/qLErw+Z93zgyNKSaUVX3 HFqmD3C3kSx7uDnKvfMxXkzHTT766LKeEYliiLyQQFGM2oIS8gHPdXTU6eZYTGc8LCmp+s DK2xzN8mj4lAHAj2k00w+hYdlR/rgMHfzmbMwqRjVXzHnpfhY4Z7wNCUx3JEaSmsZcVgqc KIZpeABMr2gmBU9j17wz17ODjvvFIj9SMPccUI2pO9X5WQzaSXZ2RWQf4xFy+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129110; a=rsa-sha256; cv=none; b=nS3qN+NSUBBO50lQoB817NjzFKDMu9r+sCGNlt47bXNKXmUy7LnV2L/fHMTiJk6h9y63We JZ+WONvdS27cQIcjhLo4X+QUFAH7zDah6/gUete7IfAhdfn1tMbV7cno4ZfA7bkjlo+ypS uaaw0vOicGzqMMZGz2lSM/MwrOozuH1GMC2UoPHMo9W6ryaX8iWTVGrTBpl5KpiCO11mgj snGuGQKZiV3nVWwEbYMkOs8CavFGNNDkocpBi4wqWbrLHtd6jU3b4/57cvNPOe6Jlp+Q6A kLYk99EWpN76ip+m6+lGionlhII/YUHidEJUNBQ+j9BgJP7xOZOBjhJpDOTQdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPny3xsyzjC5; Thu, 01 May 2025 19:51:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541Jpok2068927; Thu, 1 May 2025 19:51:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpoOT068924; Thu, 1 May 2025 19:51:50 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:50 GMT Message-Id: <202505011951.541JpoOT068924@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 64ca7e040ace - stable/14 - queue(3): Debug macros: Finer control knobs, userland support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64ca7e040ace88c6cf4f828b85f154bfd08ab455 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=64ca7e040ace88c6cf4f828b85f154bfd08ab455 commit 64ca7e040ace88c6cf4f828b85f154bfd08ab455 Author: Olivier Certner AuthorDate: 2025-04-04 19:51:43 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:46:38 +0000 queue(3): Debug macros: Finer control knobs, userland support Support enabling debugging macros for userland and _STANDALONE builds, in addition to the already existing kernel support. On runtime error, panic() is used for kernel and _STANDALONE builds, and a simple fprintf() + abort() combination for userland ones. These can be overriden if needed by defining the QMD_PANIC() and/or QMD_ASSERT() macros. The expansion of queue debug macros can now be controlled more finely thanks to the QUEUE_MACRO_DEBUG_ASSERTIONS and QUEUE_MACRO_NO_DEBUG_ASSERTIONS macros. The first one serves to forcibly enable debug code and the second to forcibly disable it. These are meant to be used as compile options only, and should normally not be defined in a source file. It is an error to have both of them defined. If none of the two above-mentioned macros are defined, an automatic determination is performed. When compiling kernel code, QUEUE_MACRO_DEBUG_ASSERTIONS is defined if INVARIANTS has been defined (as before). For userland and _STANDALONE builds, no debug code is ever automatically inserted even if NDEBUG is not defined, as doing so would inflate code size and users may want to have working assert() calls without this overhead by default. In the manual page, document check code control under DIAGNOSTICS. While here, rework a bit the rest of the DIAGNOSTICS section. Reviewed by: markj (older version) MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49973 (cherry picked from commit 1c5fea9e8b563186b8f5773064458c4ecf2d7004) --- share/man/man3/queue.3 | 94 +++++++++++++------ sys/sys/queue.h | 249 ++++++++++++++++++++++++++----------------------- 2 files changed, 199 insertions(+), 144 deletions(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index 6fd3d7f2e0f9..bf0717ffca59 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -1392,49 +1392,87 @@ while (n1 != NULL) { TAILQ_INIT(&head); .Ed .Sh DIAGNOSTICS -When debugging -.Nm queue(3) , -it can be useful to trace queue changes. -To enable tracing, define the macro -.Va QUEUE_MACRO_DEBUG_TRACE -at compile time. +.Nm queue(3) +provides several diagnostic and debugging facilities. .Pp -It can also be useful to trash pointers that have been unlinked from a queue, -to detect use after removal. -To enable pointer trashing, define the macro -.Va QUEUE_MACRO_DEBUG_TRASH -at compile time. -The macro -.Fn QMD_IS_TRASHED "void *ptr" -returns true if -.Fa ptr -has been trashed by the -.Va QUEUE_MACRO_DEBUG_TRASH -option. +Check code that performs basic integrity and API conformance checks is +automatically inserted when using queue macros in the kernel if compiling it +with +.Va INVARIANTS . +One can request insertion or elision of check code by respectively defining one +of the macros +.Va QUEUE_MACRO_DEBUG_ASSERTIONS +or +.Va QUEUE_MACRO_NO_DEBUG_ASSERTIONS +before first inclusion of +.In sys/queue.h . +When check code encounters an anomaly, it panics the kernel or aborts the +program. +To this end, in the kernel or in +.Va _STANDALONE +builds, it by default calls +.Fn panic , +while in userland builds it prints the diagnostic message on +.Dv stderr +and then calls +.Fn abort . +These behaviors can be overriden by defining a custom +.Fn QMD_PANIC +macro before first inclusion of +.In sys/queue.h . +The diagnostic messages automatically include the source file, line and function +where the failing check occured. +This behavior can be overriden by defining a custom +.Fn QMD_ASSERT +macro before first inclusion of +.In sys/queue.h . .Pp -In the kernel (with -.Va INVARIANTS -enabled), the +The .Fn SLIST_REMOVE_PREVPTR macro is available to aid debugging: .Bl -hang -offset indent .It Fn SLIST_REMOVE_PREVPTR "TYPE **prev" "TYPE *elm" "SLIST_ENTRY NAME" .Pp -Removes +Removes element .Fa elm , which must directly follow the element whose .Va &SLIST_NEXT() is .Fa prev , -from the SLIST. -This macro validates that +from the list. +This macro may insert, under conditions detailed above, check code that +validates that .Fa elm -follows +indeed follows .Fa prev -in -.Va INVARIANTS -mode. +in the list +.Po +through the +.Fn QMD_SLIST_CHECK_PREVPTR +macro +.Pc . .El +.Pp +When debugging, it can be useful to trace queue changes. +To enable tracing, define the macro +.Va QUEUE_MACRO_DEBUG_TRACE . +Note that, at the moment, only macros for regular tail queues have been +instrumented. +.Pp +It can also be useful to trash pointers that have been unlinked from a queue, +to detect use after removal. +To enable pointer trashing, define the macro +.Va QUEUE_MACRO_DEBUG_TRASH +at compile time. +Note that, at the moment, only a limited number of macros have been +instrumented. +The macro +.Fn QMD_IS_TRASHED "void *ptr" +returns true if +.Fa ptr +has been trashed by the +.Va QUEUE_MACRO_DEBUG_TRASH +option. .Sh SEE ALSO .Xr arb 3 , .Xr tree 3 diff --git a/sys/sys/queue.h b/sys/sys/queue.h index 4e35437379cd..e88e3ad69ca3 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -118,11 +118,10 @@ * */ #ifdef QUEUE_MACRO_DEBUG -#warn Use QUEUE_MACRO_DEBUG_TRACE and/or QUEUE_MACRO_DEBUG_TRASH +#warn Use QUEUE_MACRO_DEBUG_xxx instead (TRACE, TRASH and/or ASSERTIONS) #define QUEUE_MACRO_DEBUG_TRACE #define QUEUE_MACRO_DEBUG_TRASH #endif - #ifdef QUEUE_MACRO_DEBUG_TRACE /* Store the last 2 places the queue element or head was altered */ struct qm_trace { @@ -166,6 +165,62 @@ struct qm_trace { #define QMD_IS_TRASHED(x) 0 #endif /* QUEUE_MACRO_DEBUG_TRASH */ +#if defined(QUEUE_MACRO_DEBUG_ASSERTIONS) && \ + defined(QUEUE_MACRO_NO_DEBUG_ASSERTIONS) +#error Both QUEUE_MACRO_DEBUG_ASSERTIONS and QUEUE_MACRO_NO_DEBUG_ASSERTIONS defined +#endif + +/* + * Automatically define QUEUE_MACRO_DEBUG_ASSERTIONS when compiling the kernel + * with INVARIANTS, if not already defined and not prevented by presence of + * QUEUE_MACRO_NO_DEBUG_ASSERTIONS. + */ +#if !defined(QUEUE_MACRO_DEBUG_ASSERTIONS) && \ + !defined(QUEUE_MACRO_NO_DEBUG_ASSERTIONS) && \ + (defined(_KERNEL) && defined(INVARIANTS)) +#define QUEUE_MACRO_DEBUG_ASSERTIONS +#endif + +/* + * If queue assertions are enabled, provide default definitions for QMD_PANIC() + * and QMD_ASSERT() if undefined. + */ +#ifdef QUEUE_MACRO_DEBUG_ASSERTIONS +#ifndef QMD_PANIC +#if defined(_KERNEL) || defined(_STANDALONE) +/* + * On _STANDALONE, either or the headers using provide + * a declaration or macro for panic(). + */ +#ifdef _KERNEL +#include +#endif +#define QMD_PANIC(fmt, ...) do { \ + panic(fmt, ##__VA_ARGS__); \ +} while (0) +#else /* !(_KERNEL || _STANDALONE) */ +#include +#include +#define QMD_PANIC(fmt, ...) do { \ + fprintf(stderr, fmt "\n", ##__VA_ARGS__); \ + abort(); \ +} while (0) +#endif /* _KERNEL || _STANDALONE */ +#endif /* !QMD_PANIC */ + +#ifndef QMD_ASSERT +#define QMD_ASSERT(expression, fmt, ...) do { \ + if (!(expression)) \ + QMD_PANIC("%s:%u: %s: " fmt, \ + __FILE__, __LINE__, __func__, ##__VA_ARGS__); \ +} while (0) +#endif /* !QMD_ASSERT */ +#else /* !QUEUE_MACRO_DEBUG_ASSERTIONS */ +#undef QMD_ASSERT +#define QMD_ASSERT(test, fmt, ...) do {} while (0) +#endif /* QUEUE_MACRO_DEBUG_ASSERTIONS */ + + #ifdef __cplusplus /* * In C++ there can be structure lists and class lists: @@ -178,6 +233,7 @@ struct qm_trace { /* * Singly-linked List declarations. */ + #define SLIST_HEAD(name, type) \ struct name { \ struct type *slh_first; /* first element */ \ @@ -204,27 +260,19 @@ struct { \ /* * Singly-linked List functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) do { \ - if (*(prevp) != (elm)) \ - panic("Bad prevptr *(%p) == %p != %p", \ - (prevp), *(prevp), (elm)); \ -} while (0) -#define SLIST_ASSERT_EMPTY(head) do { \ - if (!SLIST_EMPTY((head))) \ - panic("%s: slist %p is not empty", __func__, (head)); \ -} while (0) +#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) \ + QMD_ASSERT(*(prevp) == (elm), \ + "Bad prevptr *(%p) == %p != %p", \ + (prevp), *(prevp), (elm)) -#define SLIST_ASSERT_NONEMPTY(head) do { \ - if (SLIST_EMPTY((head))) \ - panic("%s: slist %p is empty", __func__, (head)); \ -} while (0) -#else -#define QMD_SLIST_CHECK_PREVPTR(prevp, elm) -#define SLIST_ASSERT_EMPTY(head) -#define SLIST_ASSERT_NONEMPTY(head) -#endif +#define SLIST_ASSERT_EMPTY(head) \ + QMD_ASSERT(SLIST_EMPTY((head)), \ + "slist %p is not empty", (head)) + +#define SLIST_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!SLIST_EMPTY((head)), \ + "slist %p is empty", (head)) #define SLIST_CONCAT(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *curelm = SLIST_FIRST(head1); \ @@ -335,6 +383,7 @@ struct { \ /* * Singly-linked Tail queue declarations. */ + #define STAILQ_HEAD(name, type) \ struct name { \ struct type *stqh_first;/* first element */ \ @@ -363,46 +412,36 @@ struct { \ /* * Singly-linked Tail queue functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) + /* * QMD_STAILQ_CHECK_EMPTY(STAILQ_HEAD *head) * * Validates that the stailq head's pointer to the last element's next pointer * actually points to the head's first element pointer field. */ -#define QMD_STAILQ_CHECK_EMPTY(head) do { \ - if ((head)->stqh_last != &(head)->stqh_first) \ - panic("Empty stailq %p->stqh_last is %p, not head's " \ - "first field address", (head), (head)->stqh_last); \ -} while (0) +#define QMD_STAILQ_CHECK_EMPTY(head) \ + QMD_ASSERT((head)->stqh_last == &(head)->stqh_first, \ + "Empty stailq %p->stqh_last is %p, " \ + "not head's first field address", \ + (head), (head)->stqh_last) /* * QMD_STAILQ_CHECK_TAIL(STAILQ_HEAD *head) * * Validates that the stailq's last element's next pointer is NULL. */ -#define QMD_STAILQ_CHECK_TAIL(head) do { \ - if (*(head)->stqh_last != NULL) \ - panic("Stailq %p last element's next pointer is %p, " \ - "not NULL", (head), *(head)->stqh_last); \ -} while (0) - -#define STAILQ_ASSERT_EMPTY(head) do { \ - if (!STAILQ_EMPTY((head))) \ - panic("%s: stailq %p is not empty", __func__, (head)); \ -} while (0) +#define QMD_STAILQ_CHECK_TAIL(head) \ + QMD_ASSERT(*(head)->stqh_last == NULL, \ + "Stailq %p last element's next pointer is " \ + "%p, not NULL", (head), *(head)->stqh_last) -#define STAILQ_ASSERT_NONEMPTY(head) do { \ - if (STAILQ_EMPTY((head))) \ - panic("%s: stailq %p is empty", __func__, (head)); \ -} while (0) +#define STAILQ_ASSERT_EMPTY(head) \ + QMD_ASSERT(STAILQ_EMPTY((head)), \ + "stailq %p is not empty", (head)) -#else -#define QMD_STAILQ_CHECK_EMPTY(head) -#define QMD_STAILQ_CHECK_TAIL(head) -#define STAILQ_ASSERT_EMPTY(head) -#define STAILQ_ASSERT_NONEMPTY(head) -#endif /* _KERNEL && INVARIANTS */ +#define STAILQ_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!STAILQ_EMPTY((head)), \ + "stailq %p is empty", (head)) #define STAILQ_CONCAT(head1, head2) do { \ if (!STAILQ_EMPTY((head2))) { \ @@ -533,6 +572,7 @@ struct { \ /* * List declarations. */ + #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ @@ -562,19 +602,18 @@ struct { \ * List functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) /* * QMD_LIST_CHECK_HEAD(LIST_HEAD *head, LIST_ENTRY NAME) * * If the list is non-empty, validates that the first element of the list * points back at 'head.' */ -#define QMD_LIST_CHECK_HEAD(head, field) do { \ - if (LIST_FIRST((head)) != NULL && \ - LIST_FIRST((head))->field.le_prev != \ - &LIST_FIRST((head))) \ - panic("Bad list head %p first->prev != head", (head)); \ -} while (0) +#define QMD_LIST_CHECK_HEAD(head, field) \ + QMD_ASSERT(LIST_FIRST((head)) == NULL || \ + LIST_FIRST((head))->field.le_prev == \ + &LIST_FIRST((head)), \ + "Bad list head %p first->prev != head", \ + (head)) /* * QMD_LIST_CHECK_NEXT(TYPE *elm, LIST_ENTRY NAME) @@ -582,39 +621,28 @@ struct { \ * If an element follows 'elm' in the list, validates that the next element * points back at 'elm.' */ -#define QMD_LIST_CHECK_NEXT(elm, field) do { \ - if (LIST_NEXT((elm), field) != NULL && \ - LIST_NEXT((elm), field)->field.le_prev != \ - &((elm)->field.le_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) +#define QMD_LIST_CHECK_NEXT(elm, field) \ + QMD_ASSERT(LIST_NEXT((elm), field) == NULL || \ + LIST_NEXT((elm), field)->field.le_prev == \ + &((elm)->field.le_next), \ + "Bad link elm %p next->prev != elm", (elm)) /* * QMD_LIST_CHECK_PREV(TYPE *elm, LIST_ENTRY NAME) * * Validates that the previous element (or head of the list) points to 'elm.' */ -#define QMD_LIST_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.le_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) +#define QMD_LIST_CHECK_PREV(elm, field) \ + QMD_ASSERT(*(elm)->field.le_prev == (elm), \ + "Bad link elm %p prev->next != elm", (elm)) -#define LIST_ASSERT_EMPTY(head) do { \ - if (!LIST_EMPTY((head))) \ - panic("%s: list %p is not empty", __func__, (head)); \ -} while (0) +#define LIST_ASSERT_EMPTY(head) \ + QMD_ASSERT(LIST_EMPTY((head)), \ + "list %p is not empty", (head)) -#define LIST_ASSERT_NONEMPTY(head) do { \ - if (LIST_EMPTY((head))) \ - panic("%s: list %p is empty", __func__, (head)); \ -} while (0) -#else -#define QMD_LIST_CHECK_HEAD(head, field) -#define QMD_LIST_CHECK_NEXT(elm, field) -#define QMD_LIST_CHECK_PREV(elm, field) -#define LIST_ASSERT_EMPTY(head) -#define LIST_ASSERT_NONEMPTY(head) -#endif /* (_KERNEL && INVARIANTS) */ +#define LIST_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!LIST_EMPTY((head)), \ + "list %p is empty", (head)) #define LIST_CONCAT(head1, head2, type, field) do { \ QUEUE_TYPEOF(type) *curelm = LIST_FIRST(head1); \ @@ -755,6 +783,7 @@ struct { \ /* * Tail queue declarations. */ + #define TAILQ_HEAD(name, type) \ struct name { \ struct type *tqh_first; /* first element */ \ @@ -789,29 +818,29 @@ struct { \ /* * Tail queue functions. */ -#if (defined(_KERNEL) && defined(INVARIANTS)) + /* * QMD_TAILQ_CHECK_HEAD(TAILQ_HEAD *head, TAILQ_ENTRY NAME) * * If the tailq is non-empty, validates that the first element of the tailq * points back at 'head.' */ -#define QMD_TAILQ_CHECK_HEAD(head, field) do { \ - if (!TAILQ_EMPTY(head) && \ - TAILQ_FIRST((head))->field.tqe_prev != \ - &TAILQ_FIRST((head))) \ - panic("Bad tailq head %p first->prev != head", (head)); \ -} while (0) +#define QMD_TAILQ_CHECK_HEAD(head, field) \ + QMD_ASSERT(TAILQ_EMPTY(head) || \ + TAILQ_FIRST((head))->field.tqe_prev == \ + &TAILQ_FIRST((head)), \ + "Bad tailq head %p first->prev != head", \ + (head)) /* * QMD_TAILQ_CHECK_TAIL(TAILQ_HEAD *head, TAILQ_ENTRY NAME) * * Validates that the tail of the tailq is a pointer to pointer to NULL. */ -#define QMD_TAILQ_CHECK_TAIL(head, field) do { \ - if (*(head)->tqh_last != NULL) \ - panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); \ -} while (0) +#define QMD_TAILQ_CHECK_TAIL(head, field) \ + QMD_ASSERT(*(head)->tqh_last == NULL, \ + "Bad tailq NEXT(%p->tqh_last) != NULL", \ + (head)) /* * QMD_TAILQ_CHECK_NEXT(TYPE *elm, TAILQ_ENTRY NAME) @@ -819,40 +848,28 @@ struct { \ * If an element follows 'elm' in the tailq, validates that the next element * points back at 'elm.' */ -#define QMD_TAILQ_CHECK_NEXT(elm, field) do { \ - if (TAILQ_NEXT((elm), field) != NULL && \ - TAILQ_NEXT((elm), field)->field.tqe_prev != \ - &((elm)->field.tqe_next)) \ - panic("Bad link elm %p next->prev != elm", (elm)); \ -} while (0) +#define QMD_TAILQ_CHECK_NEXT(elm, field) \ + QMD_ASSERT(TAILQ_NEXT((elm), field) == NULL || \ + TAILQ_NEXT((elm), field)->field.tqe_prev == \ + &((elm)->field.tqe_next), \ + "Bad link elm %p next->prev != elm", (elm)) /* * QMD_TAILQ_CHECK_PREV(TYPE *elm, TAILQ_ENTRY NAME) * * Validates that the previous element (or head of the tailq) points to 'elm.' */ -#define QMD_TAILQ_CHECK_PREV(elm, field) do { \ - if (*(elm)->field.tqe_prev != (elm)) \ - panic("Bad link elm %p prev->next != elm", (elm)); \ -} while (0) +#define QMD_TAILQ_CHECK_PREV(elm, field) \ + QMD_ASSERT(*(elm)->field.tqe_prev == (elm), \ + "Bad link elm %p prev->next != elm", (elm)) -#define TAILQ_ASSERT_EMPTY(head) do { \ - if (!TAILQ_EMPTY((head))) \ - panic("%s: tailq %p is not empty", __func__, (head)); \ -} while (0) +#define TAILQ_ASSERT_EMPTY(head) \ + QMD_ASSERT(TAILQ_EMPTY((head)), \ + "tailq %p is not empty", (head)) -#define TAILQ_ASSERT_NONEMPTY(head) do { \ - if (TAILQ_EMPTY((head))) \ - panic("%s: tailq %p is empty", __func__, (head)); \ -} while (0) -#else -#define QMD_TAILQ_CHECK_HEAD(head, field) -#define QMD_TAILQ_CHECK_TAIL(head, headname) -#define QMD_TAILQ_CHECK_NEXT(elm, field) -#define QMD_TAILQ_CHECK_PREV(elm, field) -#define TAILQ_ASSERT_EMPTY(head) -#define TAILQ_ASSERT_NONEMPTY(head) -#endif /* (_KERNEL && INVARIANTS) */ +#define TAILQ_ASSERT_NONEMPTY(head) \ + QMD_ASSERT(!TAILQ_EMPTY((head)), \ + "tailq %p is empty", (head)) #define TAILQ_CONCAT(head1, head2, field) do { \ if (!TAILQ_EMPTY(head2)) { \ From nobody Thu May 1 19:51:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp24NXSz5vdvX; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPp20qbJz47M0; Thu, 01 May 2025 19:51:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129114; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Qja8Pj0UcpuTe6vOQtdL2NI0XNyX2zM0m83xP8XWFlc=; b=Eus0H8AU5zxVeLzk6PkNC+4rH/E5XMMLXoCxE0+OKRmDog3Ss/xv/6lGBpXTuBXdrpQtED hsw+hItpZJzhB4HT5i6XIDpxmJo/YRM8qd4nV+ckYT0xjGpn06PNn7nrJcaZx4fIhfk1Vo wa/mVE4QIOBym6m0bfC723RMX+fGyJTRvWYNV4zBUlHeXkNmFQP1mbX4df3jHGG/iSmDtc B55Oad5mTngJTQi9l9IychY4QBXRb2fxbBAz/asHl6RoGvda4gaXXksMrVa+sp+St4ImBt Msz6KfQmrBpFp5y1EEVnHeAbUgFQ6WQ5bZoyoameWeqiZxNam8IBeVVht583ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129114; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Qja8Pj0UcpuTe6vOQtdL2NI0XNyX2zM0m83xP8XWFlc=; b=PBIIOq8Bfgp0G7jrFgIin+z+mpf2MfyL+vQ2NzNHoPVQO/z/tkE7zP47fs5YEMq1Dn1fY8 HPmdMOmNMO1INCFdHWAVbMZXyvUcz9C/1b2zswHmWp9pQKoE3o6/czVv4G2JiIlFXJdIzK eF83SfS5JYNNvizBKGA0OHvrwyXIO3qJCpmTM6pgqQ4JJ3lE2J63oAlTkpnG1yQJAdG8J0 J66LcHeAakjqRUNIgaJhRxDdeP96lmm+bv25VAAP/EmsX6BwqXob3EMq0etAbkANClMer0 +kXR5cCThu+QAv26mBKzzXcyKZQ/rui65GVuXq8nrQDSznKQQRo15Ft9ddH1Qg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129114; a=rsa-sha256; cv=none; b=RWOk5XB6ai4wsbFhE83bGKeyExdG5QuBba+F4iVHFtzKPz1LumJUIV7HAJlWYUhw7u6hum SOGKAb34EOl9f5z277frlPe3oXxOkzDGE+SuDWY6/+vFjFMNPJ28O5qKbe1v3XKGq3LajF oh7ijcQktl+t3z5AqATMRHdjpNWJqc9Xb3qi+mBy1ygLApWm2ByNIm1vYwFSl7bV4K7qWc Ge7cAv+vQkVBqL3RgBQ3hNo3qYDE5/zVJQSg7p6Qxb2svtdTZPaW/bMnrTKt3mnLeTboO6 VQiv1lxRUrd2J2tTDmVMchzFfHXakBGcDtkzFwUSMbRtq+YLJlFJ6lBuEh/4xw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPp209FnzjFl; Thu, 01 May 2025 19:51:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JprkC069042; Thu, 1 May 2025 19:51:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpr8u069039; Thu, 1 May 2025 19:51:53 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:53 GMT Message-Id: <202505011951.541Jpr8u069039@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 941b783bd810 - stable/14 - .git-blame-ignore-revs: queue(3): Single space after all #define List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 941b783bd810d23893700f3bd2fde4fec1bbbb22 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=941b783bd810d23893700f3bd2fde4fec1bbbb22 commit 941b783bd810d23893700f3bd2fde4fec1bbbb22 Author: Olivier Certner AuthorDate: 2025-04-25 19:18:05 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:48:36 +0000 .git-blame-ignore-revs: queue(3): Single space after all #define MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit ddaf2f562fa0a162fae95779d76b425f464e3a8b) Commit hash edited on MFC. --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 08c238160845..ee6fb2d39f52 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -8,6 +8,8 @@ # # This file is sorted in git log order (newest commits first). +# queue(3) single space after all #define +49066283a4c1fc5c9d6c4cbee00cc941f4b09792 # bin/ps whitespace cleanup ad94fb48d8bda7cfaec68b3c7897594991b474bc # sort OptionalObsoleteFiles.inc blocks From nobody Thu May 1 19:51:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp353m2z5vdrP; Thu, 01 May 2025 19:51:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPp32DMBz47F4; Thu, 01 May 2025 19:51:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u7rzcO85m4iYbEzNDu6Ovu6RiLAkh0zhj0bxNAH+wGc=; b=aYlR+LR3OpjnaPzBBCDU+Kw9OuybbmtI6GaZ4aiziWpWLp1lFj98Yapa92cH0ARdc+CpMb 6+mMuSXgSH93k2G86mCiDoS6WCcR2TNLu91P8Igf1Q4GTGQbZDEaIJTZWLgTxrzEfOsWPY j2sKeveNTh1vKaGbB1/QT6WpBPDvhU1LpHA3yTkpamR7L/S0kABuifonmhaMrR+BthZsK7 EuPhhlgG7RvGfyfhf0hPCiJVgKUUxkS4W4mgLTWaY4K+LF9BG+Rru4aKpGxoc2HPEkyxfI yywdiEp1r8jiX27XHTuZPJKEID/vVswN4guFLcafxZ5n6e/t4rS90fzzF4r2tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129115; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=u7rzcO85m4iYbEzNDu6Ovu6RiLAkh0zhj0bxNAH+wGc=; b=uyVZbkAJ6pJ/TvqflySIaWTP0i+usD6j4T1WowRQgDFU6vLK6403CZx/P5+6IchJpCtu/n SZGmbnqS5bLwxx9Vr1dTzu5w3VNvNUylNma7ITeN+NFcinWn5DuTKfsJKUYPE6O6jiOkG8 yth6biVjfZ5+vIvLMHcCD36Kdflm3oCPJ11AN3MIKzvgkctZVa2xWdMe7SLmZmozwAGXTf 6ju5Ss7ChF8hHIicv9Vr0uHratLHh+wG/SgBQWmIFBI744T00Y/xj2chLY1T5JLGpGJfdH krswVL4YrfjA+ktLzQo21B9JQ+jUfdiSz8CRfvF8m2RFdPgJdJRdp04Lo6CpPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129115; a=rsa-sha256; cv=none; b=ultjMVwvZMKhtOja14B51BDLpeqsHcfKz5PlEpcfc3EQH0jdfkF1WtevEToIzBI4nom9MG U/YB0o7Oerh6P4aVhogAqfYdemgUx3UARPMR+TgVuQhCvaUCYMcQUt5a3yiIoN6Q7CaUfW +8DeLqy5M8g2Nhlw9sH3EiBBKzgWZbQQoj12QvwN6NyntPtP6/a3ASsHUtaphueBfHURi9 h0enHzA0RnUz6QQb3ir2OcfbLvXqpRciekzqmO+rf2hz0MznFclR9lTZ4yBqvSHoHJqaKg FaJ6fPsvfq/J1WolOq9pG+bATKRhrXzgY1alB3cDURPlo5tmUIMeV6vvLlz+FQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPp31GZKzhjQ; Thu, 01 May 2025 19:51:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JptH4069076; Thu, 1 May 2025 19:51:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541Jpt2A069073; Thu, 1 May 2025 19:51:55 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:55 GMT Message-Id: <202505011951.541Jpt2A069073@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: a1abca38f6e1 - stable/14 - ps(1): Add copyright List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a1abca38f6e1394c142a4d608b04ab918ee152e0 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=a1abca38f6e1394c142a4d608b04ab918ee152e0 commit a1abca38f6e1394c142a4d608b04ab918ee152e0 Author: Olivier Certner AuthorDate: 2025-04-28 12:55:00 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:48:47 +0000 ps(1): Add copyright Where appropriate. MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit b222e491178ff46ddec1bded5f3fe597328c85da) --- bin/ps/keyword.c | 5 +++++ bin/ps/ps.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c index b6e0ff75ff09..b66beb376698 100644 --- a/bin/ps/keyword.c +++ b/bin/ps/keyword.c @@ -3,6 +3,11 @@ * * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. + * Copyright (c) 2025 The FreeBSD Foundation + * + * Portions of this software were developed by Olivier Certner + * at Kumacom SARL under sponsorship from the FreeBSD + * Foundation. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions diff --git a/bin/ps/ps.c b/bin/ps/ps.c index c78809b218d5..3b62803d430c 100644 --- a/bin/ps/ps.c +++ b/bin/ps/ps.c @@ -3,6 +3,11 @@ * * Copyright (c) 1990, 1993, 1994 * The Regents of the University of California. All rights reserved. + * Copyright (c) 2025 The FreeBSD Foundation + * + * Portions of this software were developed by Olivier Certner + * at Kumacom SARL under sponsorship from the FreeBSD + * Foundation. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions From nobody Thu May 1 19:51:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp61z4gz5vdrV; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPp53TTCz47Kk; Thu, 01 May 2025 19:51:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129117; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ylaQGLLgP1yu/NB81yNzwqDm8eVyL0ZMEZlk3eSWbQM=; b=lxybEJHn/69epv+0Bfuc2PLW3/0jBSg8dnFvXApVpQsh8FgLw+5RKWLloKfu87F5VWoVmZ QUHPvtUp7SEH99hyyCW3PSZKYGtONkEv2fGkLcthkrtumYz+nSXc73EFiVChyS+un7wUPx p+fQ3mQtEmGLPexkxNYYXmfebwcOmDg3Zev2bYJqihXI2ayvuVqjCaLwNs/ew34etmOALO DTRFStNGjxEjXpnVDi8BIVpiRbna9xmhTQQneiiIgcK9w54Ox0koPBOuO/7Rseqdp2s9r7 E+NM8O7Mby7BM9EzR/GW4KnRLlsgQIIvJ37oPqIeNN52LhXTHEy8eTXprQEjoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129117; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ylaQGLLgP1yu/NB81yNzwqDm8eVyL0ZMEZlk3eSWbQM=; b=R1L9Rv5pARCrZ5fx2djFpkPSu0U4il15J2dOVaEX5lgcI1LMZngdZSK82jGLvmLcO/U274 XewBYStwsk1FDMA/Ed+6/kTRaKyfhXZRnZf7PIo4dVHx0Q5Kpe1SRWULeePRT7s55sMVU6 EtvkeSp8xSA/fVX2KH+vsM7YGYsqZ3M6xu6GMBBBNTNfJ7T7eZLEDAZ7lAaEGvsEZzw++2 IkNOimiifF1WuvjhnfRW2a46fGmP4qA5FsO1kCSLQnmptaAih9VnIMwB1D/hg/18EkoG6l PehTbIXtW72759+G2KhIKmk7LQ+EpYe8asdcVEuODJuYKT1e+e9217zHs27nbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129117; a=rsa-sha256; cv=none; b=drDon+7E5R1a1zli11uDWmDiWlMCcioFWUneyB2CribaOpvQ1bstTLp1HE+7ivU04oseFf JDiPEbxkaPmcb4Tj+4XFEdpGtldE1C5zLQqdnnGIM6pZZQXft8G2mxZYoSqJwOQlCxDNim AUsKQ5ErdlkI710X+asgyIljtXQkPPyQTM9g7Mj5Uen1slnJLPHMClkmxzIjPAeJ1y/4dV TZ3634WrptVdW0ysJxvg7r4R/cb5URFZgKg22NOQSQIeTwXQENw1hdnzr8RuZGmbcaeGyu vxCakHdEJjsc3GPLvEEyfb6L+vgf+l73nrS4VKwxypJU5Y9JLRhVVOIONyELXg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPp52xCXzhjR; Thu, 01 May 2025 19:51:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpvQv069146; Thu, 1 May 2025 19:51:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpvAh069143; Thu, 1 May 2025 19:51:57 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:57 GMT Message-Id: <202505011951.541JpvAh069143@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 5ef005d37873 - stable/14 - queue.3: Update .Dd List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5ef005d37873552e0fb94da4da533f08d3dcd5ce Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=5ef005d37873552e0fb94da4da533f08d3dcd5ce commit 5ef005d37873552e0fb94da4da533f08d3dcd5ce Author: Olivier Certner AuthorDate: 2025-04-28 14:59:11 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:48:47 +0000 queue.3: Update .Dd Noted by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit c3b03044e7e3a0a37159acf97d2f94d3a21449f3) --- share/man/man3/queue.3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/man/man3/queue.3 b/share/man/man3/queue.3 index bf0717ffca59..a43357d9dd13 100644 --- a/share/man/man3/queue.3 +++ b/share/man/man3/queue.3 @@ -27,7 +27,7 @@ .\" .\" @(#)queue.3 8.2 (Berkeley) 1/24/94 .\" -.Dd February 10, 2025 +.Dd April 28, 2025 .Dt QUEUE 3 .Os .Sh NAME From nobody Thu May 1 19:51:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp50Dw5z5vdrT; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPp4308dz47BN; Thu, 01 May 2025 19:51:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129116; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=igbE5XlEP0Ifo2I6rBV9Vfp/F0BQIF2liGiv7rfUMps=; b=QH3qtx2Y+e1N2abXrR+nwngjWTu/4goRSJhvFOFQ9qiYGsb5MXoLeOzkwPPotbSRjaqBeU 6zP+jsKYrLvyEWhOVJb34gb4ZaWr6OpQXsCSIAkAj6Lx+ta/dOlKnhwj5ismOQS4mCuZyO eUGTnZGufker4CMRMF0X0aRmOcxaLcY062zfQFZbSScDUnwAjsaH673G+Q+rNBsVoPfD5C FCq/+OQxlNt3+vhGzyXHxYbYagOBPjKV3L+hCrg5DhPfsEilw9ja+uksjFKIumOR7vCFLc U5TcdPW6cGGx5paHbx2ADFN1qM35gMfXiF9BEkJt/l/d+hwWYWKKJh3NWhlXlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129116; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=igbE5XlEP0Ifo2I6rBV9Vfp/F0BQIF2liGiv7rfUMps=; b=vfjkQnVZ7+ONvyvF8FToOY6h+MMWNf+pPOv3gpePHtPIBCz3LJ7TwseefvbnWG6xktSd68 lATs+GBtfwAxpYtch6xnN2uysFE4+dKR3HB3jYJyWBL0xXF/1pvMvSrOqHzYTm3xmMOWLG ZkpdNsX1ueidiKMVHT4UddsAA2Btns+DJJrym4zcxVdnysv1h9fjB6g6gDZmSy72En7dXi dKTweq4UuA0XkRJs835EKdZX1MPRzhTdkiruxuWrwEfOKww9qMuj17NapKDe80ojXJ2bE0 pyCwYI/+Cc/GSZtlJcQ6JG56YhobuFkR0bqiratjF2EeCvEA8Y49pmQl+IN57A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129116; a=rsa-sha256; cv=none; b=bz/mMXQgM1WnZ4S1T5tOOIb0mPksHLNwFp7QD5kxJ+y+VXxDMwiqVXYXgY4gCk2NZZvV6X LV9aZjI/f0MNEATAQ5qCZV3tnwFIbuWtAQZKPAai7xmiZUaM7PpU/a2kwyuyXxtqx9DyLu LsurfBJBLmZ7UmCzNHtrMpkxFKRqHQQibZ6IUGu+/nJz5Dt/ZvFfBx9uapumtpjAQFMYeB Gw7GXr2DNK4cDexcuzNbC02JQyIYPDIatbdqsl1JK32ojt1AWE2QbOu/JAB4/SjhL+nBOo tSXNCH/bNWX6RwknlXxJiWhzTV/MGGjGQIF6lDDqC0NiBRqFjSw62gZlgbM5XA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPp428R6zjHq; Thu, 01 May 2025 19:51:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JpuNH069111; Thu, 1 May 2025 19:51:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpuIv069108; Thu, 1 May 2025 19:51:56 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:56 GMT Message-Id: <202505011951.541JpuIv069108@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 11e94e3849f0 - stable/14 - ps.1: Update .Dd List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 11e94e3849f0d9f55a441ddf0206a5f6b4e053e0 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=11e94e3849f0d9f55a441ddf0206a5f6b4e053e0 commit 11e94e3849f0d9f55a441ddf0206a5f6b4e053e0 Author: Olivier Certner AuthorDate: 2025-04-28 14:58:58 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:48:47 +0000 ps.1: Update .Dd Noted by: lwhsu MFC after: 3 days Sponsored by: The FreeBSD Foundation (cherry picked from commit eee8cd8c2d6b3350b1d88e33007f31a1422b8459) --- bin/ps/ps.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/ps/ps.1 b/bin/ps/ps.1 index 329ec4180503..c1c2bcea5813 100644 --- a/bin/ps/ps.1 +++ b/bin/ps/ps.1 @@ -35,7 +35,7 @@ .\" .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" -.Dd March 14, 2025 +.Dd April 28, 2025 .Dt PS 1 .Os .Sh NAME From nobody Thu May 1 19:51:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPp75SHvz5vfKk; Thu, 01 May 2025 19:51: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPp64vYqz47VW; Thu, 01 May 2025 19:51:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129119; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2VKWmsElNzGgkDcmM/47bHp2R6FH0Us2rP5wsWwokeY=; b=Y1ohlNPX1UjTI2LuQTUo2Qd2PI6aMGeEsQXQuzadTAuqdLQQTKMgGlarr52RiZ5pbx3CR7 Wv8ix/R/QPoh0hEHyMV6XRDPp1P/Ycbout3PNJA1jDTtOlNhhKmc2ecsd4y/vGrUOFfGTv s0nI3+lrAw7Fq9gbJyiEvlBzAkgaDX8POBSFcl8brySRODJWwYVGqxOux8Z1PzQeNty1R6 cS7+OAcoanmX2Gg8kQI2kvtEQKqIU+FIIXNJJbH9h5Jp0mGFAuov2ntW2GLa8WywmTsbKl pZHwABeqLoSE0BzYWTdnXmDPcOsAYOOkAMGkzlOVD8MjHDgs72B07biD0qE3CQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129118; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2VKWmsElNzGgkDcmM/47bHp2R6FH0Us2rP5wsWwokeY=; b=pr9EFjqpNvImdtddeJ57ihpOVP8tH1je5+BqkEWsPVpMqoztb2y6t/Q+eCOWy/F52yxISc cajRbAYSZ4NAaBYGmBn7rjz8y8b22YHnXG14pB1AjYSc0YS3Ij7mlHlGa9zQbuyuP78BEN 2d7do949JNyOaXNMxWcNsTEooPGGmiKYWl3ElEuIynFdHzapHZN/L1zeyXpZtFK2A9YVPV bVvWnkvcAOrl4BW4kQ+8IHqt81h02lfTVr4ABdnoAc/4t+tskg2w7Nc9Rydg0cRVxKLYQB 9day8G6qpnWv8HWDzbBPJ/TdY1V/LmimZQD6bSXKIhG/fWovM1zPmEHowJhN+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129118; a=rsa-sha256; cv=none; b=KDNNcXZeNMUmpBfJahf6IJnjeWt9TIjzidlHHn8f7DctqeqTWDf9uRt4MgGJhbkZ1mEGmu 5oOcj2N7u2EB4TJM3lqUfkxeOyUGwq7SKKg1xvIbPM8kv3kw9wr5/SdWWMNduP8WXRjv1y 5MKxX8RJrCQHOPVEFYbO64lbG0VtRJh6aPEw3QT9XqunI3IfBRGW16Yg3Y5472Ob4x9shN /I0KdI119vwhVAbqbTgVKA4+6KuG5AXCxKfRT2EFtzMJ6P5emTmLZk5A7it0a8TMVQ53h7 EmttpBLKoziNXw8BtpUTUYZ3RloxPZdoZGYxv4jNUiV7bZ5uLqvFaiwXRjdVTA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPp648WPzjHt; Thu, 01 May 2025 19:51:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541Jpwvi069180; Thu, 1 May 2025 19:51:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JpwND069177; Thu, 1 May 2025 19:51:58 GMT (envelope-from git) Date: Thu, 1 May 2025 19:51:58 GMT Message-Id: <202505011951.541JpwND069177@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: 482647102642 - stable/14 - queue(3): Add simple tests for some macros for all list/tailq types List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 48264710264235965c7b7aedcc8c30c3a7b45a77 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=48264710264235965c7b7aedcc8c30c3a7b45a77 commit 48264710264235965c7b7aedcc8c30c3a7b45a77 Author: Olivier Certner AuthorDate: 2025-04-08 11:42:27 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 19:48:48 +0000 queue(3): Add simple tests for some macros for all list/tailq types These essentially test building a list/tailq of 100 elements with _INSERT_HEAD(), iterating over them with _FOREACH(), splitting it with _SPLIT_AFTER() and concatenating back the results with _CONCAT(), checking that the lists/tailqs at each step have the right number of elements and at the expected positions. Reviewed by: markj MFC after: 2 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D49975 (cherry picked from commit 4fa275a5f35742a5d662db7106d20819329dc8f2) --- tests/sys/sys/Makefile | 1 + tests/sys/sys/queue_test.c | 235 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 236 insertions(+) diff --git a/tests/sys/sys/Makefile b/tests/sys/sys/Makefile index e9c9bfef7dbd..930b8db5a321 100644 --- a/tests/sys/sys/Makefile +++ b/tests/sys/sys/Makefile @@ -7,6 +7,7 @@ ATF_TESTS_C= arb_test \ bitset_test \ bitstring_test \ qmath_test \ + queue_test \ rb_test \ splay_test \ time_test diff --git a/tests/sys/sys/queue_test.c b/tests/sys/sys/queue_test.c new file mode 100644 index 000000000000..75974ad8d792 --- /dev/null +++ b/tests/sys/sys/queue_test.c @@ -0,0 +1,235 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025 The FreeBSD Foundation + * + * This software was developed by Olivier Certner at + * Kumacom SARL under sponsorship from the FreeBSD Foundation. + */ + +#include +#define QUEUE_MACRO_DEBUG_ASSERTIONS +#include + +#include +#include + +#include + +/* + * General utilities. + */ +#define DIAG(fmt, ...) do { \ + fprintf(stderr, "%s(): " fmt "\n", __func__, ##__VA_ARGS__); \ +} while (0) + +/* + * Common definitions and utilities. + * + * 'type' should be tailq, stailq, list or slist. 'TYPE' is 'type' in + * uppercase. + */ + +#define QUEUE_TESTS_COMMON(type, TYPE) \ +/* \ + * Definitions and utilities. \ + */ \ + \ +struct type ## _id_elem { \ + TYPE ## _ENTRY(type ## _id_elem) ie_entry; \ + u_int ie_id; \ +}; \ + \ +TYPE ## _HEAD(type ## _ids, type ## _id_elem); \ + \ +static void \ +type ## _check(const struct type ## _ids *const type, \ + const u_int nb, const u_int id_shift); \ + \ +/* \ + * Creates a tailq/list with 'nb' elements with contiguous IDs \ + * in ascending order starting at 'id_shift'. \ + */ \ +static struct type ## _ids * \ +type ## _create(const u_int nb, const u_int id_shift) \ +{ \ + struct type ## _ids *const type = \ + malloc(sizeof(*type)); \ + \ + ATF_REQUIRE_MSG(type != NULL, \ + "Cannot malloc " #type " head"); \ + \ + TYPE ## _INIT(type); \ + for (u_int i = 0; i < nb; ++i) { \ + struct type ## _id_elem *const e = \ + malloc(sizeof(*e)); \ + \ + ATF_REQUIRE_MSG(e != NULL, \ + "Cannot malloc " #type " element %u", i); \ + e->ie_id = nb - 1 - i + id_shift; \ + TYPE ## _INSERT_HEAD(type, e, ie_entry); \ + } \ + \ + DIAG("Created " #type " %p with %u elements", \ + type, nb); \ + type ## _check(type, nb, id_shift); \ + return (type); \ +} \ + \ +/* Performs no check. */ \ +static void \ +type ## _destroy(struct type ## _ids *const type) \ +{ \ + struct type ## _id_elem *e, *tmp_e; \ + \ + DIAG("Destroying " #type" %p", type); \ + TYPE ## _FOREACH_SAFE(e, type, ie_entry, \ + tmp_e) { \ + free(e); \ + } \ + free(type); \ +} \ + \ + \ +/* Checks that some tailq/list is as produced by *_create(). */ \ +static void \ +type ## _check(const struct type ## _ids *const type, \ + const u_int nb, const u_int id_shift) \ +{ \ + struct type ## _id_elem *e; \ + u_int i = 0; \ + \ + TYPE ## _FOREACH(e, type, ie_entry) { \ + ATF_REQUIRE_MSG(i + 1 <= nb, \ + #type " %p has more than %u elements", \ + type, nb); \ + ATF_REQUIRE_MSG(e->ie_id == i + id_shift, \ + #type " %p element %p: Found ID %u, " \ + "expected %u", \ + type, e, e->ie_id, i + id_shift); \ + ++i; \ + } \ + ATF_REQUIRE_MSG(i == nb, \ + #type " %p has only %u elements, expected %u", \ + type, i, nb); \ +} \ + \ +/* Returns NULL if not enough elements. */ \ +static struct type ## _id_elem * \ +type ## _nth(const struct type ## _ids *const type, \ + const u_int idx) \ +{ \ + struct type ## _id_elem *e; \ + u_int i = 0; \ + \ + TYPE ## _FOREACH(e, type, ie_entry) { \ + if (i == idx) { \ + DIAG(#type " %p has element %p " \ + "(ID %u) at index %u", \ + type, e, e->ie_id, idx); \ + return (e); \ + } \ + ++i; \ + } \ + DIAG(#type " %p: Only %u elements, no index %u", \ + type, i, idx); \ + return (NULL); \ +} \ + \ +/* \ + * Tests. \ + */ \ + \ +ATF_TC(type ## _split_after_and_concat); \ +ATF_TC_HEAD(type ## _split_after_and_concat, tc) \ +{ \ + atf_tc_set_md_var(tc, "descr", \ + "Test " #TYPE "_SPLIT_AFTER() followed by " \ + #TYPE "_CONCAT()"); \ +} \ +ATF_TC_BODY(type ## _split_after_and_concat, tc) \ +{ \ + struct type ## _ids *const type = \ + type ## _create(100, 0); \ + struct type ## _ids rest; \ + struct type ## _id_elem *e; \ + \ + e = type ## _nth(type, 49); \ + TYPE ## _SPLIT_AFTER(type, e, &rest, ie_entry); \ + type ## _check(type, 50, 0); \ + type ## _check(&rest, 50, 50); \ + QUEUE_TESTS_ ## TYPE ## _CONCAT(type, &rest); \ + ATF_REQUIRE_MSG(TYPE ## _EMPTY(&rest), \ + "'rest' not empty after concat"); \ + type ## _check(type, 100, 0); \ + type ## _destroy(type); \ +} + +/* + * Paper over the *_CONCAT() signature differences. + */ + +#define QUEUE_TESTS_TAILQ_CONCAT(first, second) \ + TAILQ_CONCAT(first, second, ie_entry) + +#define QUEUE_TESTS_LIST_CONCAT(first, second) \ + LIST_CONCAT(first, second, list_id_elem, ie_entry) + +#define QUEUE_TESTS_STAILQ_CONCAT(first, second) \ + STAILQ_CONCAT(first, second) + +#define QUEUE_TESTS_SLIST_CONCAT(first, second) \ + SLIST_CONCAT(first, second, slist_id_elem, ie_entry) + +/* + * ATF test registration. + */ + +#define QUEUE_TESTS_REGISTRATION(tp, type) \ + ATF_TP_ADD_TC(tp, type ## _split_after_and_concat) + +/* + * Macros defining print functions. + * + * They are currently not used in the tests above, but are useful for debugging. + */ + +#define QUEUE_TESTS_TQ_PRINT(type, hfp) \ + static void \ + type ## _print(const struct type ## _ids *const type) \ + { \ + printf(#type " %p: " __STRING(hfp ## _first) \ + " = %p, " __STRING(hfp ## _last) " = %p\n", \ + type, type->hfp ## _first, type->hfp ## _last); \ + } + +#define QUEUE_TESTS_L_PRINT(type, hfp) \ + static void \ + type ## _print(const struct type ## _ids *const type) \ + { \ + printf(#type " %p: " __STRING(hfp ## _first) " = %p\n", \ + type, type->hfp ## _first); \ + } + + +/* + * Meat. + */ + +QUEUE_TESTS_COMMON(tailq, TAILQ); +QUEUE_TESTS_COMMON(list, LIST); +QUEUE_TESTS_COMMON(stailq, STAILQ); +QUEUE_TESTS_COMMON(slist, SLIST); + +/* + * Main. + */ +ATF_TP_ADD_TCS(tp) +{ + QUEUE_TESTS_REGISTRATION(tp, tailq); + QUEUE_TESTS_REGISTRATION(tp, list); + QUEUE_TESTS_REGISTRATION(tp, stailq); + QUEUE_TESTS_REGISTRATION(tp, slist); + + return (atf_no_error()); +} From nobody Thu May 1 19:52:41 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpPpy19GQz5vdrf; Thu, 01 May 2025 19:52: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpPpx5vBsz49cy; Thu, 01 May 2025 19:52:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QIt+rc1pJK83KuxNB9MRVTFk8SGK7aNAyKt/1+xVh4A=; b=mBn9S2NFKOsFlY3r7KjQk69beJq3BieBpSxJtVQK1+7YcBqfKQxFa8FXLjHHVwIgEbPeKa /XWluJ0+3aK1UKozyXqkm91LcL1hZESA4LH6bCUIOTf7v/LnejZgVMOKjG2xdlkqwlnpNH /Tcik38+KfKgJDDsAzC/IDNvBWilb3b4bAF7R9mSVhtQes8+guqPrFcLqYPwzQ9sOxN3+M vyWV+8KOgVtYeBjnHk4NU50ZIs3iHn5GWq89ab7PiBNopPFy/ZIeMU7Qd2WpoCvTnMD6fP jiSoj5wEwtNVPkTtpkCUqZ0dKXAOoYkJ1qDniuoX8hb2zx0ASYcRx64jeaszmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746129162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QIt+rc1pJK83KuxNB9MRVTFk8SGK7aNAyKt/1+xVh4A=; b=qBuJ4LUq09tDeuz1zA1b570xg87Kl1c+if0xfNO9SuaT8Oj+lL1p7j4r3e4pm/vmXV8t7y EbeFBWYjzXyhQBHlPWVtW8NT7wNzO01NWLZXRfqLQg9dkgsG+M4hJ0Lc1CwjYuuazMoWlA Nxs24lXrIsuIc1I/E3DxKlZ9Uu1b/eKTA2UpLb24cmsO1l7x1gk75XbI5B9soLLAqOcWb+ wSP5VxmPrCXSO2Hg3wUt4qLXdAcw7c4RpFOWREfjGOXSm9v05EbDCuOr/1YhSmyTLSngeq U6qyf1tw3lsSZnDHLdh84zkHaE0uc6W7iLuDSUGRF/soE0r3xSYf07cOhGFMaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746129162; a=rsa-sha256; cv=none; b=tiFh0TmVSjNS4VFa0Qx0qvfbMZQEWgbhVpMOfYTZ1xOnVo/qYn6yxbrsIGgl23Ai/FOWRx 3j6Ovn2Mg0hEBKbVU3ychdBJgEWK8B/klBmwbO1ckdN5obaz2Ecd+cSl96bsKo1bEILY2L KxMP+Iuyz5TcwPXOzXJBxeO8x3yBeLxhZMJxjPC0jdZA2QqTMvfTj1o2WsKsYP6WgLcc/f g0bA4qExrh85m4HbNUHr5fTWsK4tMvHoUjFgsDmjPAmpWtvdZifsKc5PZQXEDQgeFcvvCL TCUQfDvlhN3DBbdYOmZ3t8xFYXZW5abf7e9l82WWOR0fXiNCdKOxC0t8jdONow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpPpx4CrDzjG4; Thu, 01 May 2025 19:52:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541JqftN072932; Thu, 1 May 2025 19:52:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541JqfU2072928; Thu, 1 May 2025 19:52:41 GMT (envelope-from git) Date: Thu, 1 May 2025 19:52:41 GMT Message-Id: <202505011952.541JqfU2072928@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: a9114926e2a6 - stable/14 - tcp rack: cleanup storing values for beta and beta_ecn List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a9114926e2a609524cbc7c85ff6a76f01ad268e2 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=a9114926e2a609524cbc7c85ff6a76f01ad268e2 commit a9114926e2a609524cbc7c85ff6a76f01ad268e2 Author: Michael Tuexen AuthorDate: 2025-03-31 01:40:17 +0000 Commit: Michael Tuexen CommitDate: 2025-05-01 19:52:31 +0000 tcp rack: cleanup storing values for beta and beta_ecn beta and beta_ecn were stored using a variable of type struct newreno in struct rack_control. Later, struct newreno was extended and now contains several more fields. This results in a memory inefficiency and also in copying around uninitialized memory. This patch fixes this by storing beta and beta_ecn individually in struct rack_control. Please note that the newreno_flags field was only stored and never used. Therefore, this is not stored anymore in struct rack_control. No functional change intended. CID: 1523796 Reviewed by: rrs Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D49578 (cherry picked from commit f6deb9ea0a0ee760e5ff9ad5c15d0bd7a1714355) --- sys/netinet/tcp_stacks/rack.c | 39 +++++++++++++++++++-------------------- sys/netinet/tcp_stacks/tcp_rack.h | 7 ++++--- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index dca7e347d615..aa66b02bcd11 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -610,8 +610,9 @@ rack_swap_beta_values(struct tcp_rack *rack, uint8_t flex8) { struct sockopt sopt; struct cc_newreno_opts opt; - struct newreno old; struct tcpcb *tp; + uint32_t old_beta; + uint32_t old_beta_ecn; int error, failed = 0; tp = rack->rc_tp; @@ -631,7 +632,6 @@ rack_swap_beta_values(struct tcp_rack *rack, uint8_t flex8) failed = 2; goto out; } - old.newreno_flags = CC_NEWRENO_BETA_ECN_ENABLED; /* Get the current values out */ sopt.sopt_valsize = sizeof(struct cc_newreno_opts); sopt.sopt_dir = SOPT_GET; @@ -641,33 +641,34 @@ rack_swap_beta_values(struct tcp_rack *rack, uint8_t flex8) failed = 3; goto out; } - old.beta = opt.val; + old_beta = opt.val; opt.name = CC_NEWRENO_BETA_ECN; error = CC_ALGO(tp)->ctl_output(&tp->t_ccv, &sopt, &opt); if (error) { failed = 4; goto out; } - old.beta_ecn = opt.val; + old_beta_ecn = opt.val; /* Now lets set in the values we have stored */ sopt.sopt_dir = SOPT_SET; opt.name = CC_NEWRENO_BETA; - opt.val = rack->r_ctl.rc_saved_beta.beta; + opt.val = rack->r_ctl.rc_saved_beta; error = CC_ALGO(tp)->ctl_output(&tp->t_ccv, &sopt, &opt); if (error) { failed = 5; goto out; } opt.name = CC_NEWRENO_BETA_ECN; - opt.val = rack->r_ctl.rc_saved_beta.beta_ecn; + opt.val = rack->r_ctl.rc_saved_beta_ecn; error = CC_ALGO(tp)->ctl_output(&tp->t_ccv, &sopt, &opt); if (error) { failed = 6; goto out; } /* Save off the values for restoral */ - memcpy(&rack->r_ctl.rc_saved_beta, &old, sizeof(struct newreno)); + rack->r_ctl.rc_saved_beta = old_beta; + rack->r_ctl.rc_saved_beta_ecn = old_beta_ecn; out: if (rack_verbose_logging && tcp_bblogging_on(rack->rc_tp)) { union tcp_log_stackspecific log; @@ -680,8 +681,8 @@ out: log.u_bbr.flex1 = ptr->beta; log.u_bbr.flex2 = ptr->beta_ecn; log.u_bbr.flex3 = ptr->newreno_flags; - log.u_bbr.flex4 = rack->r_ctl.rc_saved_beta.beta; - log.u_bbr.flex5 = rack->r_ctl.rc_saved_beta.beta_ecn; + log.u_bbr.flex4 = rack->r_ctl.rc_saved_beta; + log.u_bbr.flex5 = rack->r_ctl.rc_saved_beta_ecn; log.u_bbr.flex6 = failed; log.u_bbr.flex7 = rack->gp_ready; log.u_bbr.flex7 <<= 1; @@ -15059,7 +15060,7 @@ rack_init(struct tcpcb *tp, void **ptr) rack->rc_new_rnd_needed = 1; rack->r_ctl.rc_split_limit = V_tcp_map_split_limit; /* We want abe like behavior as well */ - rack->r_ctl.rc_saved_beta.newreno_flags |= CC_NEWRENO_BETA_ECN_ENABLED; + rack->r_ctl.rc_reorder_fade = rack_reorder_fade; rack->rc_allow_data_af_clo = rack_ignore_data_after_close; rack->r_ctl.rc_tlp_threshold = rack_tlp_thresh; @@ -15095,13 +15096,13 @@ rack_init(struct tcpcb *tp, void **ptr) rack->rc_user_set_max_segs = rack_hptsi_segments; rack->rc_force_max_seg = 0; TAILQ_INIT(&rack->r_ctl.opt_list); - rack->r_ctl.rc_saved_beta.beta = V_newreno_beta_ecn; - rack->r_ctl.rc_saved_beta.beta_ecn = V_newreno_beta_ecn; + rack->r_ctl.rc_saved_beta = V_newreno_beta_ecn; + rack->r_ctl.rc_saved_beta_ecn = V_newreno_beta_ecn; if (rack_hibeta_setting) { rack->rack_hibeta = 1; if ((rack_hibeta_setting >= 50) && (rack_hibeta_setting <= 100)) { - rack->r_ctl.rc_saved_beta.beta = rack_hibeta_setting; + rack->r_ctl.rc_saved_beta = rack_hibeta_setting; rack->r_ctl.saved_hibeta = rack_hibeta_setting; } } else { @@ -23051,7 +23052,7 @@ rack_process_option(struct tcpcb *tp, struct tcp_rack *rack, int sopt_name, rack->r_ctl.saved_hibeta = optval; if (rack->rc_pacing_cc_set) rack_undo_cc_pacing(rack); - rack->r_ctl.rc_saved_beta.beta = optval; + rack->r_ctl.rc_saved_beta = optval; } if (rack->rc_pacing_cc_set == 0) rack_set_cc_pacing(rack); @@ -23088,7 +23089,7 @@ rack_process_option(struct tcpcb *tp, struct tcp_rack *rack, int sopt_name, * Not pacing yet so set it into our local * rack pcb storage. */ - rack->r_ctl.rc_saved_beta.beta = optval; + rack->r_ctl.rc_saved_beta = optval; } break; case TCP_RACK_TIMER_SLOP: @@ -23129,8 +23130,7 @@ rack_process_option(struct tcpcb *tp, struct tcp_rack *rack, int sopt_name, * Not pacing yet so set it into our local * rack pcb storage. */ - rack->r_ctl.rc_saved_beta.beta_ecn = optval; - rack->r_ctl.rc_saved_beta.newreno_flags = CC_NEWRENO_BETA_ECN_ENABLED; + rack->r_ctl.rc_saved_beta_ecn = optval; } break; case TCP_DEFER_OPTIONS: @@ -23680,7 +23680,6 @@ rack_process_option(struct tcpcb *tp, struct tcp_rack *rack, int sopt_name, return (error); } - static void rack_apply_deferred_options(struct tcp_rack *rack) { @@ -24050,7 +24049,7 @@ rack_get_sockopt(struct tcpcb *tp, struct sockopt *sopt) if (strcmp(tp->t_cc->name, CCALGONAME_NEWRENO) != 0) error = EINVAL; else if (rack->rc_pacing_cc_set == 0) - optval = rack->r_ctl.rc_saved_beta.beta; + optval = rack->r_ctl.rc_saved_beta; else { /* * Reach out into the CC data and report back what @@ -24074,7 +24073,7 @@ rack_get_sockopt(struct tcpcb *tp, struct sockopt *sopt) if (strcmp(tp->t_cc->name, CCALGONAME_NEWRENO) != 0) error = EINVAL; else if (rack->rc_pacing_cc_set == 0) - optval = rack->r_ctl.rc_saved_beta.beta_ecn; + optval = rack->r_ctl.rc_saved_beta_ecn; else { /* * Reach out into the CC data and report back what diff --git a/sys/netinet/tcp_stacks/tcp_rack.h b/sys/netinet/tcp_stacks/tcp_rack.h index 4152a1a5d7ba..1251dabbed37 100644 --- a/sys/netinet/tcp_stacks/tcp_rack.h +++ b/sys/netinet/tcp_stacks/tcp_rack.h @@ -504,9 +504,10 @@ struct rack_control { uint32_t input_pkt; uint32_t saved_input_pkt; uint32_t saved_rxt_clamp_val; /* The encoded value we used to setup clamping */ - struct newreno rc_saved_beta; /* - * For newreno cc: - * rc_saved_cc are the values we have had + uint32_t rc_saved_beta; + uint32_t rc_saved_beta_ecn; /* + * For newreno cc: rc_saved_beta and + * rc_saved_beta_ecn are the values we have had * set by the user, if pacing is not happening * (i.e. its early and we have not turned on yet * or it was turned off). The minute pacing From nobody Thu May 1 20:08:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpQ9l5bwtz5vg9R; Thu, 01 May 2025 20:08: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpQ9l4q4vz3SXW; Thu, 01 May 2025 20:08:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746130139; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nbxBUmZUOKhrcFsNARtFy/1t4hH1IGiqtQJJc0aHFnU=; b=rjw+0/i8uJqjdcQgoEOTHC/rTxvj5sh8tzJAGracVGRZrpd3pmSAgPwfoQr2cy+g8Zn0yD goAPIl8nls+oTZtpDh7bl/minVuedGtVS01bD5OU+OGoUgQ1Ghg7WvvLq5eeL59i5JsSUN Apxn6uspNBfPo+T1r0Gbbc/zgV3H7XNofWRV78UoV406LJ4/i2hr7QDwlGCXJsueteAd+R imPdySv7rm26qiHyGMg8FrNP8xhU8EQhqRM00nNbX5RFL1Haoj9e+lOE+6GrxAbBerMlvN 3pFlTAUeuK2tr/mZEebzzitaQDovKlftBkEn7Hs3q/xD2sYcEkr4159YAyxyIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746130139; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nbxBUmZUOKhrcFsNARtFy/1t4hH1IGiqtQJJc0aHFnU=; b=TiorB9wnRR5M4cGBG9z10IoEEatH+M4xri1rKFJjlu1nUX9lHPMCjU33QE5RnP6Q9i0U7h veXf11VDfc7sioGxC3D6i2L/pclpy3QnlKlL74MpIy++S0xpg8oqQGQdolDTCRApEJFaVA UuYUnUKNeSSmRJSEI66mnTrxSq5O2RTTgd1BvwAAO6CqfxanVLDI2mpPAg2jO0TS8NSldg UCdGSKV5xlihO/zVhcU4kxjBs62hXol/0H6y+aO4bUQisp/aRRUFJ8HNn/izp+nYQiCzxW fD9WkN42fBnozX0ZFGO4QDk+8vO76KxJbGm6FQ7mtKwk9ggAwksHAoFcn7RPGQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746130139; a=rsa-sha256; cv=none; b=jyyYeuw/nHSdELhL8GE4yA+xypSNShipZ7fZ2m/kITU6McbtAUeYN/vgK/+d7sKnGCk9Lm jqqigWAlKkEHqojAYYQBOjRlr0LlKS7aE4wbiuB5DIVNQViNvCPXwWoTZ3UZFylN4BVNih 8+OUWObySnH1N/lH/lK1xUbzgQsZ6NrC1BDq8HGRIBq0QDdlSfH8220EHwCW6K4m41d5yP calN0nhPtPEJFAT159WuS9O6dG4IZchx0HyqjHiHA4ydHCvCPPRKMjYX62grkCvnxbA3H+ Wvn7A0VgGjBEMm7PCnlWxBIzbH9q+C4T4VfdOyFpZr3xGQpMY4NHRJAExoYKnw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpQ9l3xmBzjSF; Thu, 01 May 2025 20:08:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541K8xhC094688; Thu, 1 May 2025 20:08:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541K8xeL094685; Thu, 1 May 2025 20:08:59 GMT (envelope-from git) Date: Thu, 1 May 2025 20:08:59 GMT Message-Id: <202505012008.541K8xeL094685@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michael Tuexen Subject: git: 7655a4141e32 - stable/14 - tcp: clear blackbox logging union List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tuexen X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7655a4141e3236aed79bc006133ac67a445228f6 Auto-Submitted: auto-generated The branch stable/14 has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=7655a4141e3236aed79bc006133ac67a445228f6 commit 7655a4141e3236aed79bc006133ac67a445228f6 Author: Peter Lei AuthorDate: 2025-04-04 20:10:48 +0000 Commit: Michael Tuexen CommitDate: 2025-05-01 20:07:40 +0000 tcp: clear blackbox logging union Clear the black box logging containing union rather than the u_bbr structure for clarity and consistency. Currently u_bbr, u_raw, and u64_raw are the same size. No functional change intended. Reviewed by: tuexen Sponsored by: Netflix, Inc. (cherry picked from commit 382af4d38b62675f00f64275793a6b5fccfe62fa) --- sys/netinet/tcp_hpts.c | 2 +- sys/netinet/tcp_stacks/rack.c | 62 +++++++++++++++++++++---------------------- sys/netinet/tcp_subr.c | 4 +-- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/sys/netinet/tcp_hpts.c b/sys/netinet/tcp_hpts.c index 85341cab0750..068728f254cb 100644 --- a/sys/netinet/tcp_hpts.c +++ b/sys/netinet/tcp_hpts.c @@ -439,7 +439,7 @@ tcp_hpts_log(struct tcp_hpts_entry *hpts, struct tcpcb *tp, struct timeval *tv, * 16 bit - cwnd_gain * 8 bit - bbr_state, bbr_substate, inhpts; */ - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = hpts->p_nxt_slot; log.u_bbr.flex2 = hpts->p_cur_slot; log.u_bbr.flex3 = hpts->p_prev_slot; diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c index aa66b02bcd11..f90b747cc2e4 100644 --- a/sys/netinet/tcp_stacks/rack.c +++ b/sys/netinet/tcp_stacks/rack.c @@ -676,7 +676,7 @@ out: struct newreno *ptr; ptr = ((struct newreno *)tp->t_ccv.cc_data); - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex1 = ptr->beta; log.u_bbr.flex2 = ptr->beta_ecn; @@ -2647,7 +2647,7 @@ rack_log_retran_reason(struct tcp_rack *rack, struct rack_sendmap *rsm, uint32_t return; } log_anyway: - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = tsused; log.u_bbr.flex2 = thresh; log.u_bbr.flex3 = rsm->r_flags; @@ -2676,7 +2676,7 @@ rack_log_to_start(struct tcp_rack *rack, uint32_t cts, uint32_t to, int32_t slot union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = rack->rc_tp->t_srtt; log.u_bbr.flex2 = to; log.u_bbr.flex3 = rack->r_ctl.rc_hpts_flags; @@ -2715,7 +2715,7 @@ rack_log_to_event(struct tcp_rack *rack, int32_t to_num, struct rack_sendmap *rs union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex8 = to_num; log.u_bbr.flex1 = rack->r_ctl.rc_rack_min_rtt; @@ -2752,7 +2752,7 @@ rack_log_map_chg(struct tcpcb *tp, struct tcp_rack *rack, union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex8 = flag; log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.cur_del_rate = (uint64_t)prev; @@ -2797,7 +2797,7 @@ rack_log_rtt_upd(struct tcpcb *tp, struct tcp_rack *rack, uint32_t t, uint32_t l if (tcp_bblogging_on(tp)) { union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = t; log.u_bbr.flex2 = len; @@ -2969,7 +2969,7 @@ rack_log_progress_event(struct tcp_rack *rack, struct tcpcb *tp, uint32_t tick, union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = line; log.u_bbr.flex2 = tick; @@ -2995,7 +2995,7 @@ rack_log_type_bbrsnd(struct tcp_rack *rack, uint32_t len, uint32_t slot, uint32_ if (rack_verbose_logging && tcp_bblogging_on(rack->rc_tp)) { union tcp_log_stackspecific log; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = slot; if (rack->rack_no_prr) @@ -3096,7 +3096,7 @@ rack_log_type_just_return(struct tcp_rack *rack, uint32_t cts, uint32_t tlen, ui union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = slot; log.u_bbr.flex2 = rack->r_ctl.rc_hpts_flags; @@ -3129,7 +3129,7 @@ rack_log_to_cancel(struct tcp_rack *rack, int32_t hpts_removed, int line, uint32 if (tcp_bblogging_on(rack->rc_tp)) { union tcp_log_stackspecific log; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = line; log.u_bbr.flex2 = rack->r_ctl.rc_last_output_to; @@ -3171,7 +3171,7 @@ rack_log_alt_to_to_cancel(struct tcp_rack *rack, /* No you can't use 1, its for the real to cancel */ return; } - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex1 = flex1; log.u_bbr.flex2 = flex2; @@ -3196,7 +3196,7 @@ rack_log_to_processing(struct tcp_rack *rack, uint32_t cts, int32_t ret, int32_t union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = timers; log.u_bbr.flex2 = ret; log.u_bbr.flex3 = rack->r_ctl.rc_timer_exp; @@ -3226,7 +3226,7 @@ rack_log_to_prr(struct tcp_rack *rack, int frm, int orig_cwnd, int line) union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = rack->r_ctl.rc_prr_out; log.u_bbr.flex2 = rack->r_ctl.rc_prr_recovery_fs; if (rack->rack_no_prr) @@ -3260,7 +3260,7 @@ rack_log_sad(struct tcp_rack *rack, int event) union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = rack->r_ctl.sack_count; log.u_bbr.flex2 = rack->r_ctl.ack_count; log.u_bbr.flex3 = rack->r_ctl.sack_moved_extra; @@ -4100,7 +4100,7 @@ rack_log_rtt_shrinks(struct tcp_rack *rack, uint32_t us_cts, union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = line; log.u_bbr.flex2 = rack->r_ctl.rc_time_probertt_starts; log.u_bbr.flex3 = rack->r_ctl.rc_lower_rtt_us_cts; @@ -5397,7 +5397,7 @@ rack_ack_received(struct tcpcb *tp, struct tcp_rack *rack, uint32_t th_ack, uint union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex1 = th_ack; log.u_bbr.flex2 = tp->t_ccv.flags; @@ -5590,7 +5590,7 @@ do_rack_check_for_unclamp(struct tcpcb *tp, struct tcp_rack *rack) union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex3 = rnds; log.u_bbr.flex4 = rack_unclamp_round_thresh; @@ -5771,7 +5771,7 @@ reset_to_iw: union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex1 = new_cwnd; log.u_bbr.flex2 = new_ssthresh; @@ -5838,7 +5838,7 @@ rack_post_recovery(struct tcpcb *tp, uint32_t th_ack) union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex1 = th_ack; log.u_bbr.flex2 = tp->t_ccv.flags; @@ -6679,7 +6679,7 @@ rack_log_hpts_diag(struct tcp_rack *rack, uint32_t cts, if (rack_verbose_logging && tcp_bblogging_on(rack->rc_tp)) { union tcp_log_stackspecific log; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = diag->p_nxt_slot; log.u_bbr.flex2 = diag->p_cur_slot; log.u_bbr.flex3 = diag->slot_req; @@ -6718,7 +6718,7 @@ rack_log_wakeup(struct tcpcb *tp, struct tcp_rack *rack, struct sockbuf *sb, uin union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = sb->sb_flags; log.u_bbr.flex2 = len; log.u_bbr.flex3 = sb->sb_state; @@ -9518,7 +9518,7 @@ do_rest_ofb: union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex1 = end; log.u_bbr.flex2 = start; log.u_bbr.flex3 = rsm->r_end; @@ -14627,7 +14627,7 @@ rack_log_chg_info(struct tcpcb *tp, struct tcp_rack *rack, uint8_t mod, union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.timeStamp = tcp_get_usecs(&tv); log.u_bbr.flex8 = mod; log.u_bbr.flex1 = flex1; @@ -15521,7 +15521,7 @@ rack_fini(struct tcpcb *tp, int32_t tcb_is_purged) union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.flex8 = 10; log.u_bbr.flex1 = rack->r_ctl.rc_num_maps_alloced; log.u_bbr.flex2 = rack->rc_free_cnt; @@ -15755,7 +15755,7 @@ rack_log_input_packet(struct tcpcb *tp, struct tcp_rack *rack, struct tcp_ackent tcp_req = tcp_req_find_req_for_seq(tp, ae->ack); } #endif - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); if (rack->rack_no_prr == 0) log.u_bbr.flex1 = rack->r_ctl.rc_prr_sndcnt; @@ -16849,7 +16849,7 @@ rack_do_segment_nounlock(struct tcpcb *tp, struct mbuf *m, struct tcphdr *th, tcp_req = tcp_req_find_req_for_seq(tp, th->th_ack); } #endif - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); if (rack->rack_no_prr == 0) log.u_bbr.flex1 = rack->r_ctl.rc_prr_sndcnt; @@ -18341,7 +18341,7 @@ rack_log_fsb(struct tcp_rack *rack, struct tcpcb *tp, struct socket *so, uint32_ union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = error; log.u_bbr.flex2 = flags; @@ -18606,7 +18606,7 @@ rack_log_queue_level(struct tcpcb *tp, struct tcp_rack *rack, err = in_pcbquery_txrlevel(rack->rc_inp, &p_queue); err = in_pcbquery_txrtlmt(rack->rc_inp, &p_rate); #endif - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); log.u_bbr.flex1 = p_rate; log.u_bbr.flex2 = p_queue; @@ -19059,7 +19059,7 @@ rack_fast_rsm_output(struct tcpcb *tp, struct tcp_rack *rack, struct rack_sendma counter_u64_add(rack_collapsed_win_rxt, 1); counter_u64_add(rack_collapsed_win_rxt_bytes, (rsm->r_end - rsm->r_start)); } - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); if (rack->rack_no_prr) log.u_bbr.flex1 = 0; @@ -19618,7 +19618,7 @@ again: if (tcp_bblogging_on(rack->rc_tp)) { union tcp_log_stackspecific log; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); if (rack->rack_no_prr) log.u_bbr.flex1 = 0; @@ -21986,7 +21986,7 @@ send: if (tcp_bblogging_on(rack->rc_tp)) { union tcp_log_stackspecific log; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(rack->rc_tp); if (rack->rack_no_prr) log.u_bbr.flex1 = 0; diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index dcd947384d99..d17b46d13038 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -2155,7 +2155,7 @@ tcp_respond(struct tcpcb *tp, void *ipgen, struct tcphdr *th, struct mbuf *m, union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(tp); log.u_bbr.flex8 = 4; log.u_bbr.pkts_out = tp->t_maxseg; @@ -4388,7 +4388,7 @@ tcp_req_log_req_info(struct tcpcb *tp, struct tcp_sendfile_track *req, union tcp_log_stackspecific log; struct timeval tv; - memset(&log.u_bbr, 0, sizeof(log.u_bbr)); + memset(&log, 0, sizeof(log)); log.u_bbr.inhpts = tcp_in_hpts(tp); log.u_bbr.flex8 = val; log.u_bbr.rttProp = req->timestamp; From nobody Thu May 1 20:15:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpQJw3wZjz5vgK8; Thu, 01 May 2025 20:15: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpQJw2nTCz3YWw; Thu, 01 May 2025 20:15:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746130512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T8ahzjbbsJgb8KG5hoZiGyB8/eythTveHfKBPf+BRUk=; b=OpMi1OJm6UGGZTjp8V6MAmGkUgzqCGtkekV6x7Xp8HRD0LmqhfAa2fRES9l1H0rajgIc+o D/qp7D6vsJP803Wn9+ZR1lLcGVYFgDikOAiMxT3z56cMEXS2yTd23+fTNx9V19tk+3/kL4 usLU77NLloLF8Uan8VTqG2zaYNJsqrqdBROMVR2w94LqXrG3dno7Q9M+VvUdEJvUXilBhy Z3awros7qfRUzAEtEJZQyIrwX9LWBBnYIJExIpNX/ecO7Ac0FImzcsO5U7DwFMN96chw8Z +Jvoon4z6vipydOJFnsq1jkgOdr2z+ZOOoesG2n+HPL8epAE1GjOfpt364/W0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746130512; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T8ahzjbbsJgb8KG5hoZiGyB8/eythTveHfKBPf+BRUk=; b=PWr6J1g7XBkYXjNxidoEta0p4M0yqC7RsNd6IeocUDfEIpZ58ZurV+YR/xplWMDJjQHTz4 7s9ACz+81+1JgrVlZF9YlIAZK2VQDD4atuKIee14DkQUaUCdWgLDjRK9TjOyZ8+Bwftwez nI+ZNe8LBn03lsEM3D5FB/daXH3A14aKa8nVtIXFCBNdDdXQEwiCX+X5jTdXsE5Wky0Og8 ymu8lPq6N4q4ULpkyj1uWnwzaZuysBTUCWhCye/2bUTJczUO6XQWZzl77zEiIIQsHEz5TI Qu+9i5cqaI5IZ2WNt5SGppFNk4sSQI0oogwM2xpoureMi1bLD40qE/PESWQAsg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746130512; a=rsa-sha256; cv=none; b=fxjvshkIAMFJbJHpOYor8PXda3Z7q5f85bMV2LlGxc6AopAuCCYjWtGnry/C1JO+E1nz5O uDLbWuVYZNsk/eRw3CKvRrrjsgwPYasCT9ubVquaPOQAm2KQotawiuPMhkqtVAKkswhtD3 owJQLmhuGuzKgSX3gFywoxpNBS6QkBbmM4jjJt5fKS2sTrOxW7Jpk193Q6Y0i6+SR8Rk5a ESBartc4BPlTM662tjgGMmtTbA32g5JxCdsnUSDexzKEwQweyUBen6SmlB9SXGNFPEUIBa bceBY5IINaEXfhjYla+0kECGYO+7yNSTuyglr+KDa21XKwRL5yBbsJjWzf6D0A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpQJw2NxHzjTJ; Thu, 01 May 2025 20:15:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541KFC2p011810; Thu, 1 May 2025 20:15:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541KFC0P011807; Thu, 1 May 2025 20:15:12 GMT (envelope-from git) Date: Thu, 1 May 2025 20:15:12 GMT Message-Id: <202505012015.541KFC0P011807@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Brooks Davis Subject: git: f383cfc03bbf - stable/14 - sys.mk: Improve ports compatibility hack guard List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f383cfc03bbf89516135d67dcd6018a6be1b9533 Auto-Submitted: auto-generated The branch stable/14 has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=f383cfc03bbf89516135d67dcd6018a6be1b9533 commit f383cfc03bbf89516135d67dcd6018a6be1b9533 Author: Brooks Davis AuthorDate: 2025-03-04 20:50:32 +0000 Commit: Brooks Davis CommitDate: 2025-05-01 20:14:24 +0000 sys.mk: Improve ports compatibility hack guard Back in 9ca543438039 and include of bsd.cpu.mk in sys.mk was added as a hack for ports Makefiles. This works fine in general (for values of fine that include not being able to use MK_ variables in bsd.cpu.mk), but has surprising effects on MacOS with a case insensitive filesystems. There we build things in paths like share/docs/IPv6 where ../../Mk/bsd.port.mk matches share/mk/bsd.port.mk. Fix this issue by checking for ../../Mk/Uses which seems highly unlikely to match something in share/mk. Reviewed by: imp, emaste Differential Revision: https://reviews.freebsd.org/D49232 (cherry picked from commit e62ff34a6761025203b77ffb241c926ac8d218c8) --- share/mk/sys.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/mk/sys.mk b/share/mk/sys.mk index 8cdaae4a3de2..b668e4b3a75e 100644 --- a/share/mk/sys.mk +++ b/share/mk/sys.mk @@ -326,7 +326,7 @@ __MAKE_SHELL?=/bin/sh # the ports files are modernized, and a reasonable transition # period has passed, include it while we're in a ports tree here # to preserve historic behavior. -.if exists(${.CURDIR}/../../Mk/bsd.port.mk) +.if exists(${.CURDIR}/../../Mk/Uses) .include .endif From nobody Thu May 1 21:44:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpSHd1T67z5vmJ1; Thu, 01 May 2025 21:44: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpSHd0YV3z3lfN; Thu, 01 May 2025 21:44:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746135853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yo5C8OWuBR7BcbYYV1kMLvdcZCwL65QbKYhhFAih/SA=; b=R4EHNpp8NNM8JGk8EPcltFjuzQm4yBf+YfGpQIfS3i0czc2RGSJVwC+Lp1DoT1Nn985W/c 0OnU/HRpbNHh62t4BJtwla6/mgpiDI7UX+DwEEifd4Q6KQj1WA/9iJj/tQim+7AKoJejsD rg0NRpIObSGL3X2cDsUq8bIBK7+yTGDtD8U8Gh4euBAmohOzNPjvxiUBzmE2zM00K2BwEx XHQXIvv3aqKonCt4RYPpmrPUOBm4EGTiiZxZly3OH8zria+jkqAmSz5J46omkgpZKvMtJJ oRAVMPztaqnshfcalVPj9EVMew/DEw4bijEO+yOIEqaWaoXCYi607gEbkcOC5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746135853; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yo5C8OWuBR7BcbYYV1kMLvdcZCwL65QbKYhhFAih/SA=; b=VKltA3xEczYw+WSb9du2jHEhCYHATnka0rKL7vWkNHeIJLcAHoBigx+h+1WroJ0jJeHSbo G8UnduZ0pYkb6mnWSMrggLmYuTX/ApUVVVOzTCEA3Zbp1dDdSdXBET4IWolpeo5SLqtKG4 70DWrlqsfY9cH8XfyuJLgGuoZC4y68NVfKNL8A9No1ki0snYY1PIQRgrjCj0VRDJMm49Ds u6PHXLcqHnraIzao3SPF76E5bDIV7AhDL9Nu1vSmgn5GA8IS/rgpvVZn9dhblMphKVDHhq trfUQ1o+fIqNh7JvTsZcIph90sNg50dmGWcl4kocqIfkPI7SExfD4yo5zaepqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746135853; a=rsa-sha256; cv=none; b=mpE0e5K+dUsDNekyMb2qr7wR87htzDxFA5LCjDOn3dor24sCP34JgKt3G7qBt1sGnwcnPG Wn7O0+B7nxU3Lok48gqvZ47Inqlpf20XpXVeJbAyP6bxfkNfmkzJkVKxT5YJZtKBKoFiuu PzVBqC3YHDUzRqmX8yih1lSPlzSREldCeLZMmMHV2dw8NC7sWNKw8AabjLIy+TZRlx4j0V Biyv9tEd/mVg33qxuXg7gUfexD6cZqpGl3tUEyhlWAbqxSzNkqpoA39IDeHcsozoIH3GuA QrQ56JOhDH7gplF2J+s0w+LcfQ7E7NkNk+2HXD4eijo9SCdusxYzsAaRr2t0AA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpSHd032pzm0m; Thu, 01 May 2025 21:44:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 541LiC8Q079136; Thu, 1 May 2025 21:44:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 541LiCJW079133; Thu, 1 May 2025 21:44:12 GMT (envelope-from git) Date: Thu, 1 May 2025 21:44:12 GMT Message-Id: <202505012144.541LiCJW079133@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Olivier Certner Subject: git: ad1f2e80c832 - stable/14 - kassert.h: Explicitly include on _KERNEL List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: olce X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ad1f2e80c8324716e80aa9d2955f42e68cc66308 Auto-Submitted: auto-generated The branch stable/14 has been updated by olce: URL: https://cgit.FreeBSD.org/src/commit/?id=ad1f2e80c8324716e80aa9d2955f42e68cc66308 commit ad1f2e80c8324716e80aa9d2955f42e68cc66308 Author: Olivier Certner AuthorDate: 2025-05-01 21:37:41 +0000 Commit: Olivier Certner CommitDate: 2025-05-01 21:43:59 +0000 kassert.h: Explicitly include on _KERNEL MFCing commit "kassert: Explicitly include " (as 3772cb06205fd6bd) was not enough as, on stable/14 and contrary to main, also declares a 'panicked' variable as a 'bool' when _KERNEL is defined, so 'bool' needs to be defined in this case for to be includable standalone. This is a direct commit to stable/14. Fixes: 64ca7e040ace ("queue(3): Debug macros: Finer control knobs, userland support") Sponsored by: The FreeBSD Foundation --- sys/sys/kassert.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/sys/kassert.h b/sys/sys/kassert.h index ad8242245c37..36006be4e021 100644 --- a/sys/sys/kassert.h +++ b/sys/sys/kassert.h @@ -35,6 +35,8 @@ #include #ifdef _KERNEL +#include /* for bool */ + extern const char *panicstr; /* panic message */ extern bool panicked; #define KERNEL_PANICKED() __predict_false(panicked) From nobody Fri May 2 00:00:26 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpWJq1qRLz5thKS; Fri, 02 May 2025 00:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpWJp3zzNz3Jxw; Fri, 02 May 2025 00:00:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746144026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zeXuzEyE6d95/nRq9zooTubNtXuai60KCtClI/PzrM0=; b=Cq/5YIxOWYKm20ta57A+0L3jDWAzwmh8MylA5jF+gSEQkZ7FFZWjvCtGBcqLE/ERT4Lcic ojBslgb1yy+uKyCgZrhOoQTS/CvhR++kmM/29UP2yhWZyaYtp5MLPSEYU3WdqZr9X7wiqM xbONA6dlZdwoj264NENwQTEntD1c5iU4MiNg9vBycz+LkaB8XJFxmcYVJApHhlmv6i83LB 354AJj7dmlkFnWzeU15UKIs4zk7beczlKoLKXL40YOF5/0uKeC/ASbrNZJoXfg+CvFBpe8 MEeip6AeCidGRfmmeFNuxglWcUB28x9YBu8Oaoie/5AgWRT7TOFFIJ/v7qHjRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746144026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zeXuzEyE6d95/nRq9zooTubNtXuai60KCtClI/PzrM0=; b=qUkvcSY4P/nelyQpcLgsY8DzXr70r3pNSGhspw0ciVndmxbBtcrrgv2GalxeFkkZYJdU20 OsGELnm+s5LNaCzfTly8Wj9omY1j5jxWk+kQQuOaz4qI5IGFtR/1SB8pfXMP4OqrGeV0Pi nZ2uUt9hhGVBmeN2dO2FNXcNzMtsZ6i/zZIKEHdn+GOuPjXmLQ7ZdneBRyZT9lDT2ISE5J MFyrGUmVpiGuKW+3xNJAPxe4gohVe19y1OOlN20yAWNX3Oi1Ei74qBAzJztqro5TNci+RN dZ/EqWoXC+0/D7M6MXOZkuicYnv3QVyUSpNIl4eJhzGMEYATB/FGwiv3qMV3LQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746144026; a=rsa-sha256; cv=none; b=NtIOB96YONE5mIYhbKJhq31vzlBUhuCAwxCDhe7aOV1jcTr57QWx1HhIfiW6AmTu8IWJIt +Iap0MO5Cw+EdQ29gbQP0xyJjgNRzUMCpErGrH7o2WySn8r8uLNTFScAUUl5bmt1K39pi2 efLp93iqed/z0M5aXCHcr974bshfJGBx1RXczLaknypNbDO3JtG90SFMsj9V8+uaCaCXMn B6rJRUUPlN1e9prwOYG0tdZGPHYgjAyZEqjtDDCIsyItNjtVFN06qIvOjHA3l/JplkSk8w ePQ2J3eG0SBqfgfcTLMGSWj/uX77/QzM8gDANASNfPNGNGKOhwG0LFAPD3x+Nw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpWJp3Jlbzps3; Fri, 02 May 2025 00:00:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54200Qsq032605; Fri, 2 May 2025 00:00:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54200QLR032602; Fri, 2 May 2025 00:00:26 GMT (envelope-from git) Date: Fri, 2 May 2025 00:00:26 GMT Message-Id: <202505020000.54200QLR032602@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: 61bcd8183104 - stable/14 - Post-14.3-branch updates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 61bcd8183104bcae6fa9e3db460a15dc15c1600a Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=61bcd8183104bcae6fa9e3db460a15dc15c1600a commit 61bcd8183104bcae6fa9e3db460a15dc15c1600a Author: Colin Percival AuthorDate: 2025-05-02 00:00:00 +0000 Commit: Colin Percival CommitDate: 2025-05-02 00:00:00 +0000 Post-14.3-branch updates Rename stable/14 to -STABLE Bump __FreeBSD_version Approved by: re (implicit) Sponsored by: Amazon --- sys/conf/newvers.sh | 2 +- sys/sys/param.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index b7feacb90152..f93be1990cf1 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.3" -BRANCH="PRERELEASE" +BRANCH="STABLE" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi diff --git a/sys/sys/param.h b/sys/sys/param.h index 954e18cb48cf..6d83f378d318 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -75,7 +75,7 @@ * cannot include sys/param.h and should only be updated here. */ #undef __FreeBSD_version -#define __FreeBSD_version 1402505 +#define __FreeBSD_version 1403500 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Fri May 2 00:00:27 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpWJq6yzzz5thQb; Fri, 02 May 2025 00:00: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpWJq4Qjlz3JtB; Fri, 02 May 2025 00:00:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746144027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w2d5Bv7dpdnGCS7saEdebdNG4ccD7u6VjkxW6UDplpw=; b=VWqRC25mhgi0djmqbN6DeE0yVMUSbopw3LsjRATsFXEcmpbuyvZ8rW0BZzHXfyUpf+TACU qB1OlcFGGQb+RY6unzv9XYHHMfLc7BWw29urr/RUTfBxrs9FopC8Wjmv/0hV0eDgRnkId2 DbhWj7SVJowupY+qJZbcO9fJ6Tal1QmAoKeR5PsrhlTUGyOadYKvFsSmaXmWtEnC2CIBTW 6tQwv2QLyL8P4O98QQ6TNYXHXrQL+XNw/BJui0sjvPuLHAKVjr1OiUVcAiBHlPNB7Y7Dh3 JNZN+POJ0pJVLMAY1DsIBxyys8d0OLAv0wgnNa1cwSTFhHHlhtKxsQpOdkqfuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746144027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w2d5Bv7dpdnGCS7saEdebdNG4ccD7u6VjkxW6UDplpw=; b=vc+zgUABnYlHqlGIX0+l+eElNrEsK3T2xIDDC6jRFeOq9AYHJAQaZnEvq4F/5/o9L3gApR mHsI2aYOcOI/Ev/KQiJjyOE5+F2LpxLoPJQrOl7Vo3kga2asq5CftzR+ok4Eq7sQOgzR9/ Yb7so5SjHERm4FyASNVyJiO+mq4dsTb4QG6sLEYxWW4VE85qZztiyRNv8DJOHizwKAhYR3 T4J28fXR2K+bblwzet94pFQpeCLmPP//1VTcKLY4Q+iiRXHBk19NflcIo9TqUuie2f0Yp/ EYigMZui9sBi7+UpDvGe96GzEnEVzcM03kdD0N+/pyb9RM3ECSHFDCUWkkyvig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746144027; a=rsa-sha256; cv=none; b=H4s4q2izmIf0ph6Bj5p10eq4vuomW5X9o+XEQoO4+HkLRjm2Kseusk4ATvVF70/79eHw07 zbYHMXMacsHkCoNgkEsZCSF3o6SAdBoWsCiMzQJnmESG7WVLkir2tyWAN8hkZCqA4XW7bo i0+w+qkXCa7FAYPDzRczaAMKEYOB/eZm75z2skh4ZsqsjrXFyNRfa1F5Btp+MYKosJ0+sT gCc49bfsWZUSZ9n1eCe/xZOE65WeWsQKT2r/9zjufMRsvMWWpgnHQKYQ4WVV0/KWCACudq K86KD6wvonEgkWeG0KH+7PPtQkhswmH538xErUtFBEZoJJWp4HMRrsRw1D2bdQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpWJq41wQzpZX; Fri, 02 May 2025 00:00:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54200RLO032652; Fri, 2 May 2025 00:00:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54200RSx032649; Fri, 2 May 2025 00:00:27 GMT (envelope-from git) Date: Fri, 2 May 2025 00:00:27 GMT Message-Id: <202505020000.54200RSx032649@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 3ce28e06246d - releng/14.3 - 14.3: create releng/14.3 branch List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 3ce28e06246d6f20c235ad4cb81114d7198fa6a4 Auto-Submitted: auto-generated The branch releng/14.3 has been created by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=3ce28e06246d6f20c235ad4cb81114d7198fa6a4 commit 3ce28e06246d6f20c235ad4cb81114d7198fa6a4 Author: Colin Percival AuthorDate: 2025-05-02 00:00:00 +0000 Commit: Colin Percival CommitDate: 2025-05-02 00:00:00 +0000 14.3: create releng/14.3 branch Update from PRERELEASE to BETA1 Switch pkg(8) configuration to use the quarterly repository Bump __FreeBSD_version Approved by: re (implicit) Sponsored by: Amazon --- release/pkg_repos/release-dvd.conf | 2 +- sys/conf/newvers.sh | 2 +- sys/sys/param.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/release/pkg_repos/release-dvd.conf b/release/pkg_repos/release-dvd.conf index c2e64c43a56f..600c309d5979 100644 --- a/release/pkg_repos/release-dvd.conf +++ b/release/pkg_repos/release-dvd.conf @@ -1,5 +1,5 @@ release: { - url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", + url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index b7feacb90152..f93ddac7d10c 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -53,7 +53,7 @@ TYPE="FreeBSD" REVISION="14.3" -BRANCH="PRERELEASE" +BRANCH="BETA1" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi diff --git a/sys/sys/param.h b/sys/sys/param.h index 954e18cb48cf..4930af2babbe 100644 --- a/sys/sys/param.h +++ b/sys/sys/param.h @@ -75,7 +75,7 @@ * cannot include sys/param.h and should only be updated here. */ #undef __FreeBSD_version -#define __FreeBSD_version 1402505 +#define __FreeBSD_version 1403000 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Fri May 2 07:31:17 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpjK22GpVz5vH2q; Fri, 02 May 2025 07:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpjK209RRz3qlC; Fri, 02 May 2025 07:31:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mBvtryH7RI13b3aovNUx0qJOADCjV4IzYLZArc2GkXc=; b=mW2hk5h3xV4gRwz/Umzx975BSy20T/gGT+KPHWscymEOwY7udNLMmBSeu/FnLmlXTsoMwR vuWmWTXF5uzxCpZkc/IHSRPVH2Nfx6lrUw/EfbAv1IELmDjvW9RdO6rS3THEXhpaW9LG9r 5UhGm1jwJame2kKayyWvqV+rkjnv8wdqnDVio/nZupA8YfUPkFRNITCt1pn4h4FB5wSSPs BIXn3Mv9LuwBYm2/5ps6oUWJJmbsSDKd/FDmzVi8wkpFT21LPi+JorAnC0/sNGipWrjafN 26DhvfOJwkmaErOEdvUHku38bNglsirf9G0T+oNFEsjD4PMeUZ+P1bhjklOmmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mBvtryH7RI13b3aovNUx0qJOADCjV4IzYLZArc2GkXc=; b=FqTVnCXbTxy9IxcjUPrfmEMykRBpToAT+Hmh8HjSmgvJ/ynG9Tmw4zBSZCaiXfALDpFWQP N6RZBuUJ8fG9HG20siViXEOpXQajcddFHByDitPSg/yE51skwyxYsuA9yFO7W0hQXLjUmp rm2MO7aoI51a0M3WAXdYVf3Dta5eEp0gT/gVAnVUed9wvwly6dpzgzL8m/MGcughkscbYj mCX74y1V829ecIl61UaIBTJ6k/2rAZDVKPPkf1D8Yu0ytqaOjjw/TttJWXCSij3+CBOIPt r8WCALEMB4Nr0mwH5m/xjjgkDM3F5XZAwJCQ7tOvEDeJTiTk75BrAArpnRF6lw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746171078; a=rsa-sha256; cv=none; b=GObfgJdGRdVwHUTbliBV9cONK2m9rw42ncQEd3F10U/SX3QKY0S5hrQh+dyIYnUvIeNmYj 3ShAilJKSAZcl0RsHRArsH5YodTrKhmKqdd17XhA0FEmSJY8BNryO2B/X2Rxmg7otPSlGB 9zIBMnrmt2s+ZA7EzK0LFem4JTwWb7EnttE1kBV7g9pBf1NJZeUTYAOdRvGx6ZXTn3Y+rV asz/8tmSVrINnc7FfKVIbREPhKUROzs3jKvM65wsMWy4GUM+djz+VBrdqUFme+BxuLcEF0 HD33UXCCcUF8nWpWQDY5zSm/DjbaFC8bRI96mBp5HxJFZTAljsiXekqX7DoU4A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpjK16cr7z13l6; Fri, 02 May 2025 07:31:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5427VH6B075895; Fri, 2 May 2025 07:31:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5427VHv0075878; Fri, 2 May 2025 07:31:17 GMT (envelope-from git) Date: Fri, 2 May 2025 07:31:17 GMT Message-Id: <202505020731.5427VHv0075878@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: 85192b37a3f1 - stable/14 - libthr: add __thr_aligned_alloc_offset() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 85192b37a3f1af0dd6a7215b50cc6b6e2c5ccac4 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=85192b37a3f1af0dd6a7215b50cc6b6e2c5ccac4 commit 85192b37a3f1af0dd6a7215b50cc6b6e2c5ccac4 Author: Konstantin Belousov AuthorDate: 2025-04-24 21:23:06 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 07:30:51 +0000 libthr: add __thr_aligned_alloc_offset() (cherry picked from commit 846229d60b4fd6def666ce32cfc475ed96aabaf3) --- lib/libthr/thread/thr_malloc.c | 13 +++++++++++++ lib/libthr/thread/thr_private.h | 1 + 2 files changed, 14 insertions(+) diff --git a/lib/libthr/thread/thr_malloc.c b/lib/libthr/thread/thr_malloc.c index dbc9e39e3c28..e973a00427f3 100644 --- a/lib/libthr/thread/thr_malloc.c +++ b/lib/libthr/thread/thr_malloc.c @@ -120,6 +120,19 @@ __thr_malloc(size_t nbytes) return (res); } +void * +__thr_aligned_alloc_offset(size_t align, size_t size, size_t offset) +{ + struct pthread *curthread; + void *res; + + curthread = _get_curthread(); + thr_malloc_lock(curthread); + res = __crt_aligned_alloc_offset(align, size, offset); + thr_malloc_unlock(curthread); + return (res); +} + void * __thr_realloc(void *cp, size_t nbytes) { diff --git a/lib/libthr/thread/thr_private.h b/lib/libthr/thread/thr_private.h index b34c084ad04d..a81452e2a251 100644 --- a/lib/libthr/thread/thr_private.h +++ b/lib/libthr/thread/thr_private.h @@ -1012,6 +1012,7 @@ void __thr_pshared_destroy(void *key) __hidden; void __thr_pshared_atfork_pre(void) __hidden; void __thr_pshared_atfork_post(void) __hidden; +void *__thr_aligned_alloc_offset(size_t align, size_t size, size_t offset); void *__thr_calloc(size_t num, size_t size); void __thr_free(void *cp); void *__thr_malloc(size_t nbytes); From nobody Fri May 2 07:31:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpjK32whrz5vGwk; Fri, 02 May 2025 07:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpjK31151z3qwK; Fri, 02 May 2025 07:31:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171079; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NljLuSwi0GWPTFT6pkobjZ0eL1SOlF67gpDRODvGSR0=; b=x/Io72J28oBHV93oFrt0F+wtwBaPkBX4d+qNeRD2MIzlVBGbclgqgnmj+rrZYYtBx4NvHn exn2sezUpAzNPn8pEMscRn9Wf40ENUZtWClIIJAOMmh82AiCiaSiocv/bERwlesPqy/MKo kbsYeraVEAl7OAwo2Is0rWCkna3ORsBM3URtMoovCusb2KMgODnCWG6bpm5mxItMEunXLB u4Py/e355pt7INcckyiRYQ8Y8vYnOPB6EE7M/THk+PQUZ+1zztpgjslA9TodlCnNPVhuoK wXg+NCLjmo7UlbWEmsrcJhkl2aBeT+EVVGOqd0Rnj2vh0e423FvsV6FDh8CZIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746171079; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NljLuSwi0GWPTFT6pkobjZ0eL1SOlF67gpDRODvGSR0=; b=RJBCGlfJgoe/hipZnMeDK2sTwz+mT9SlXM0Xiu1LX0BAJJaCO4fjpW4eAYhDJSGJpvcuoL JVNxakPMPfrBXKDV7WfZKZ4LYj6dLfepvIwQrxIbKvx/P7KOsx1c7JYpghAcssxgJBZWyO 71Mx6qld4gvEJ3ax+5igOGuTYeOtNCJ9QWQ5NAvpgjiMbAoKsXFiB1brZPjDe0HNLe+kZu BsXEPmCPsN1/LTHy4flttLO3X2DlE63dev0ivaBVvHx3JesjnCf0hUWnkpvinY2nsBB/tn TXmiIlN4qHPdVMWYSPAK+5lR3Dtj/ViL5HmDmg18oiINh43XX3Heghys2UaOPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746171079; a=rsa-sha256; cv=none; b=BAvjatwSsVw9UMEAiukTi5sin9+lpPGhOVhBkIgBCWolTgb8eH2IMmnLVyaTwO2vW36CqI RWnq/1dkwsxJ5H8oehjW+qAWKWV7sRyHyBLrUY7i9jyZLiJaDSH1yFe2Olfa26gu099xSA qplx8gzx1X+fAUnIGi3KBCBFKow7SYiF1Me7shpy7rPY5ZbDwcB4M9ftxswIyYMvVqHx9p F2mRuLX/rHu5n5MNF6p7mdIv0Wx5fKKg09ExN5ixTdp+RtdxHq0QRfmhHcCecieVtcZxhq 2UWNZK8WuvOzgTLeZX+bsKU6xVjpDM30ZOgtPPjK6ZdF640BfLkwZ9sTTgyR7w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpjK30Rf0z13Nf; Fri, 02 May 2025 07:31:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5427VIkK076293; Fri, 2 May 2025 07:31:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5427VIBB076290; Fri, 2 May 2025 07:31:18 GMT (envelope-from git) Date: Fri, 2 May 2025 07:31:18 GMT Message-Id: <202505020731.5427VIBB076290@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: 5835d34761a0 - stable/14 - libthr: properly align struct pthreads List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5835d34761a0b905a987986632222aa7de7fb083 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5835d34761a0b905a987986632222aa7de7fb083 commit 5835d34761a0b905a987986632222aa7de7fb083 Author: Konstantin Belousov AuthorDate: 2025-04-24 21:24:19 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-02 07:30:51 +0000 libthr: properly align struct pthreads PR: 285711 (cherry picked from commit 22e564c74eb20e14bd93fd9fdde20e38a29cfcf1) --- lib/libthr/thread/thr_list.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/libthr/thread/thr_list.c b/lib/libthr/thread/thr_list.c index 6b41951aaf59..2c41225fa6cb 100644 --- a/lib/libthr/thread/thr_list.c +++ b/lib/libthr/thread/thr_list.c @@ -151,11 +151,13 @@ _thr_alloc(struct pthread *curthread) if (total_threads > MAX_THREADS) return (NULL); atomic_add_int(&total_threads, 1); - thread = __thr_calloc(1, sizeof(struct pthread)); + thread = __thr_aligned_alloc_offset(_Alignof(struct pthread), + sizeof(struct pthread), 0); if (thread == NULL) { atomic_add_int(&total_threads, -1); return (NULL); } + memset(thread, 0, sizeof(*thread)); if ((thread->sleepqueue = _sleepq_alloc()) == NULL || (thread->wake_addr = _thr_alloc_wake_addr()) == NULL) { thr_destroy(curthread, thread); From nobody Fri May 2 10:46:13 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpndy2fzyz5vWmw; Fri, 02 May 2025 10:46:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpndy25Fgz4NQh; Fri, 02 May 2025 10:46:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OLRBp8dXJ86KEnXrYU8DDSdZIugx2ldJ0qME/ClZ9Dc=; b=gDWzYYNikdMwbaIvZr3cTiX6GNKdn+TmH8gbyDMPrszELKpWOn0Xxhrlc6J63Yr/GdNMO3 qHB78AJ+g5g7mM9wHAKYuUmFurHTUR00sGs6CUqq39jIQE7PH+KKg7MQ/OZYNs9F5D3DTC 8qcPBV45h8UReU0nt46ILOl3cH9N0lnBUJaeo2/4E1AspJKeM9mngZOJGaP7oq048O/usZ MuGaBOZnz23KqEenIl35uNVuPos0bPBaCB4qqCV0FpPBypMn8E5KfkI9eOT1z4yVNMC8My A+G9nwCIQI7GwdtqyhqEu8KIsRPqVk+h2xDaC1Zla8xwFyMHCJbqx+y/Mck41Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182774; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OLRBp8dXJ86KEnXrYU8DDSdZIugx2ldJ0qME/ClZ9Dc=; b=XXsgwzbSARR+sYPxXRGjIhzuolZPogKUgwxFQOZVvPQWaWpJAXoty4oH9m7RTO/SSQiD9s hZXFmlVrLWr2xWIiYq1OJ2paTzimx4kmsBN6s+lzTTb8JdhTjce7XhbDucvykWSzXyVSpR H+dLIB1cCumzrdyeI5H2VI8KbFG5HXij4zVnZw1I/tNjPZUks/6aYs5Yrey4r71vIANS71 TvC5RFcCYdhHWy/rs60Kwj9zDcjaugnkc8jGpqnXnkEEw9yrhLkoRp9fRtGptIFhHKILyR KqDMMSzoAXPuCCfR9iDbJnEaS5FB9NSK01kPjpAOq3u18/BhlN04IhZZMWM81w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182774; a=rsa-sha256; cv=none; b=OQ+DvMs6zo1NWVdJrT9gR80/l5LH+/jpf26pDNHXzAUFdPw4zLVFWIqYV+Pt4GewPbir6u 0ry3j5gVRiqhKK1Z5XS9evSp2i7LRvUoCEeNGIc408afXSibshyf6e42C+h8Ed/DNDIsdf AMbSMninNtU9TDIINj5zw/aU2hqRwRfbYb6qHLcyjV+jFJMey0jMmPWqwgv9y/z385vXqr P7ZiZBN2AQosYyHdQO6sYcnGpve6L5F0ECyDzHUg++hUBe1zqvEYBT6vFF1jDOdbYEceSq kOj/AXcU9oiwjJRMEQyIcYPLDlbzfs7Vd6Roku6h2IEEHnl7fHeWsv7eRcV/Bg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpndy1KLLz18b2; Fri, 02 May 2025 10:46:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542AkDJD035946; Fri, 2 May 2025 10:46:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AkDaC035943; Fri, 2 May 2025 10:46:13 GMT (envelope-from git) Date: Fri, 2 May 2025 10:46:13 GMT Message-Id: <202505021046.542AkDaC035943@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 3b0ff20f8d69 - stable/14 - sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3b0ff20f8d69447bbea205187f759edc1f3d8e2d Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=3b0ff20f8d69447bbea205187f759edc1f3d8e2d commit 3b0ff20f8d69447bbea205187f759edc1f3d8e2d Author: Christos Margiolis AuthorDate: 2025-04-25 16:55:16 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:42:58 +0000 sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool Prior to 02d4eeabfd73 ("sound: Allocate vchans on-demand"), the play.vchans and rec.vchans sysctls corresponded to the value of d->pvchancount and d->rvchancount respectively, which is also what we are exporting through SNDST_DSPS_SOUND4_PVCHAN and SNDST_DSPS_SOUND4_RVCHAN respectively. Since that commit, the sysctls mentioned have been modified to show whether play/rec vchans are enabled or not. Modify the sndstat nvlist parameters accordingly. Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49980 (cherry picked from commit 0c0bb4c1401c9696fbb8d0b1fe88990db0e706c8) sound tests: Fix PVCHAN and RVCHAN fetching in sndstat_nv Fixes: 0c0bb4c1401c ("sound: Make sndstat PVCHAN and RVCHAN nvlist parameters bool") Reported by: CI Sponsored by: The FreeBSD Foundation MFC after: 1 week (cherry picked from commit 6286b714f5e398cc2a87883d81aa087ee11ee310) --- share/man/man4/sndstat.4 | 8 ++++---- sys/dev/sound/pcm/sndstat.c | 6 ++++-- tests/sys/sound/sndstat.c | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/share/man/man4/sndstat.4 b/share/man/man4/sndstat.4 index 266bfcf304fe..1d51882b98a5 100644 --- a/share/man/man4/sndstat.4 +++ b/share/man/man4/sndstat.4 @@ -76,10 +76,10 @@ dsps (NVLIST ARRAY): 1 unit (NUMBER): 0 status (STRING): on hdaa0 bitperfect (BOOL): FALSE - pvchan (NUMBER): 1 + pvchan (BOOL): TRUE pvchanrate (NUMBER): 48000 pvchanformat (NUMBER): 0x00000010 - rvchan (NUMBER): 0 + rvchan (BOOL): TRUE rvchanrate (NUMBER): 48000 rvchanformat (NUMBER): 0x00000010 channel_info (NVLIST_ARRAY): 1 @@ -181,13 +181,13 @@ Usually reports the driver the device is attached on. .It Dv bitperfect Whether the sound card has bit-perfect mode enabled. .It Dv pvchan -Number of playback virtual channels. +Playback virtual channels enabled. .It Dv pvchanrate Playback virtual channel sample rate. .It Dv pvchanformat Playback virtual channel format. .It Dv rvchan -Number of recording virtual channels. +Recording virtual channels enabled. .It Dv rvchanrate Recording virtual channel sample rate. .It Dv rvchanformat diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c index 33cde235e070..cafd9aff4bdc 100644 --- a/sys/dev/sound/pcm/sndstat.c +++ b/sys/dev/sound/pcm/sndstat.c @@ -440,12 +440,14 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, nvlist_t **dip) nvlist_add_string(sound4di, SNDST_DSPS_SOUND4_STATUS, d->status); nvlist_add_bool( sound4di, SNDST_DSPS_SOUND4_BITPERFECT, d->flags & SD_F_BITPERFECT); - nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_PVCHAN, d->pvchancount); + nvlist_add_bool(sound4di, SNDST_DSPS_SOUND4_PVCHAN, + d->flags & SD_F_PVCHANS); nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_PVCHANRATE, d->pvchanrate); nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_PVCHANFORMAT, d->pvchanformat); - nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_RVCHAN, d->rvchancount); + nvlist_add_bool(sound4di, SNDST_DSPS_SOUND4_RVCHAN, + d->flags & SD_F_RVCHANS); nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_RVCHANRATE, d->rvchanrate); nvlist_add_number(sound4di, SNDST_DSPS_SOUND4_RVCHANFORMAT, diff --git a/tests/sys/sound/sndstat.c b/tests/sys/sound/sndstat.c index 553c745ec950..637e640d3cff 100644 --- a/tests/sys/sound/sndstat.c +++ b/tests/sys/sound/sndstat.c @@ -148,10 +148,10 @@ ATF_TC_BODY(sndstat_nv, tc) NV(number, UNIT); NV(string, STATUS); NV(bool, BITPERFECT); - NV(number, PVCHAN); + NV(bool, PVCHAN); NV(number, PVCHANRATE); NV(number, PVCHANFORMAT); - NV(number, RVCHAN); + NV(bool, RVCHAN); NV(number, PVCHANRATE); NV(number, PVCHANFORMAT); #undef NV From nobody Fri May 2 10:46:15 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpndz3c8tz5vWmx; Fri, 02 May 2025 10:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpndz2Dgrz4NNc; Fri, 02 May 2025 10:46:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=58ZEsHazRzrT4zYjkAk1DYfIOUbSnCIrFz2+B8c2KIc=; b=bMiW6St+2xmjHxNnYuvUaybzjxnv7To6xL60+P/0iLHW4FJOrzpKphVS92B/1/Ofu9ilkv 7MScNYaWXk/1h0OgN2q25epKYUFMPLYT3l1fvtPSe8i20TU/XugRTs1anwVzMLa/MOyc8k e+H7jr+qRRE8OTZ5jV9w2zEm/VVSnbF5CJU0FDSK1jXSzCWC50j7yPPD1L7Rss3l8DPjjH 0wWTX0kvvWiJQTlezcM1azQJHPm2XmVV0i4+tMdhm8xyCG3NsOvMy3yXvzRUVkNFttHGzK bVFCky2NLVizuuKrnB8QrxkuYn3eSUAQ+t8NUkvx2ZctNDSw8CLyMBjglD7FFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182775; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=58ZEsHazRzrT4zYjkAk1DYfIOUbSnCIrFz2+B8c2KIc=; b=iJC/nsFGNP0XI9dklLFFvMBNVIVE9VlR3DgaRYT1gYhP7wOY19sBMYaMuLi9yuTnhs52yo eIzI54eHyOSOCo5hSTGWrFR1QGJPXhcttrnkLngzLmurUMiLdlZIXLpRL+mPRabEKibyPn Ol9KPFs8RnVFDbbTbxKTvXs304TLV/n06HV9jLbOL4JltFtrAAaF2jBtvPMgBB7T2Qky/S ++zCbHZwooe0kXzJFatvf87jkRUF33i98ZqYfq9BIKO0UVfa4aCbJPHPPnJ7SAWhzNRHeU B+2arWjH/PA7YdzhP852kocJWRaAacn/wGafV2jBo0t/yARSDabAVL75M9UJPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182775; a=rsa-sha256; cv=none; b=itvMsbiMSSJrLxbg7duuyv7k5FjspDYy5WakeyWpBexeCIu6jRoxm8v8fzWb+RJD4MzF4X hI4pKhDPohSdkeDIoLl4v5dKVkNvJXV1KKsZ4xlIKEgdj1c4DzTOf2soR3R+rmmdU9FRzH jdR7Nbdzzm2TnzMAvvL2iZH2we9xeVWMz44nubvjf6/LPZBXalWHrvMfqXxoN63VdxoZaf O24SVJVdsa6CyflKllnm/CgBx66dk/6HQdisu4Ue9PkTHq4cFs5RuQE28eh8JOi6Ix4PBV 5Ch4tx/gGZUylZ2eB6DvdZOw7YDdgyG+JRKykwgUcRM9abcJpmwO9m7XECQksA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpndz1hK8z18lc; Fri, 02 May 2025 10:46:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542AkFcW035978; Fri, 2 May 2025 10:46:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AkFCX035975; Fri, 2 May 2025 10:46:15 GMT (envelope-from git) Date: Fri, 2 May 2025 10:46:15 GMT Message-Id: <202505021046.542AkFCX035975@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 4a9c90d81e86 - stable/14 - sound: Export hardware and software buffer sample rate in sndstat nvlist List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4a9c90d81e86ece27816e584835cd6f6ac97c8f5 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=4a9c90d81e86ece27816e584835cd6f6ac97c8f5 commit 4a9c90d81e86ece27816e584835cd6f6ac97c8f5 Author: Christos Margiolis AuthorDate: 2025-04-25 16:55:38 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:43:48 +0000 sound: Export hardware and software buffer sample rate in sndstat nvlist Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49983 (cherry picked from commit 19ec522d6dc1d4616e07f5668339fc637856f547) sound tests: Fetch HWBUF_RATE and SWBUF_RATE in sndstat_nv Introduced in 19ec522d6dc1 ("sound: Export hardware and software buffer sample rate in sndstat nvlist"). Sponsored by: The FreeBSD Foundation MFC after: 1 week (cherry picked from commit 52a0f967dcc5b78c5f2f7e49a96e9cec56472a4f) --- share/man/man4/sndstat.4 | 6 ++++++ sys/dev/sound/pcm/sndstat.c | 4 ++++ sys/sys/sndstat.h | 2 ++ tests/sys/sound/sndstat.c | 2 ++ 4 files changed, 14 insertions(+) diff --git a/share/man/man4/sndstat.4 b/share/man/man4/sndstat.4 index 1d51882b98a5..1764ff418601 100644 --- a/share/man/man4/sndstat.4 +++ b/share/man/man4/sndstat.4 @@ -98,12 +98,14 @@ dsps (NVLIST ARRAY): 1 left_volume (NUMBER): 45 right_volume (NUMBER): 45 hwbuf_fmt (NUMBER): 0x200010 + hwbuf_rate (NUMBER): 48000 hwbuf_size (NUMBER): 0 hwbuf_blksz (NUMBER): 0 hwbuf_blkcnt (NUMBER): 0 hwbuf_free (NUMBER): 0 hwbuf_ready (NUMBER): 0 swbuf_fmt (NUMBER): 0x201000 + swbuf_rate (NUMBER): 48000 swbuf_size (NUMBER): 16384 swbuf_blksz (NUMBER): 2048 swbuf_blkcnt (NUMBER): 8 @@ -226,6 +228,8 @@ Left volume. Right volume. .It Dv hwbuf_format Hardware buffer format. +.It Dv hwbuf_rate +Hardware buffer sample rate; .It Dv hwbuf_size Hardware buffer size. .It Dv hwbuf_blksz @@ -238,6 +242,8 @@ Free space in hardware buffer (in bytes). Number of bytes ready to be read/written from hardware buffer. .It Dv swbuf_format Software buffer format. +.It Dv swbuf_rate +Software buffer sample rate; .It Dv swbuf_size Software buffer size. .It Dv swbuf_blksz diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c index cafd9aff4bdc..509a35c5a038 100644 --- a/sys/dev/sound/pcm/sndstat.c +++ b/sys/dev/sound/pcm/sndstat.c @@ -493,6 +493,8 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, nvlist_t **dip) CHN_GETVOLUME(c, SND_VOL_C_PCM, SND_CHN_T_FR)); nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_FORMAT, sndbuf_getfmt(c->bufhard)); + nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_RATE, + sndbuf_getspd(c->bufhard)); nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_SIZE, sndbuf_getsize(c->bufhard)); nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKSZ, @@ -505,6 +507,8 @@ sndstat_build_sound4_nvlist(struct snddev_info *d, nvlist_t **dip) sndbuf_getready(c->bufhard)); nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_FORMAT, sndbuf_getfmt(c->bufsoft)); + nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_RATE, + sndbuf_getspd(c->bufsoft)); nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_SIZE, sndbuf_getsize(c->bufsoft)); nvlist_add_number(cdi, SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKSZ, diff --git a/sys/sys/sndstat.h b/sys/sys/sndstat.h index 6fd2e06ac483..a569f27f288f 100644 --- a/sys/sys/sndstat.h +++ b/sys/sys/sndstat.h @@ -94,12 +94,14 @@ struct sndstioc_nv_arg { #define SNDST_DSPS_SOUND4_CHAN_LEFTVOL "left_volume" #define SNDST_DSPS_SOUND4_CHAN_RIGHTVOL "right_volume" #define SNDST_DSPS_SOUND4_CHAN_HWBUF_FORMAT "hwbuf_format" +#define SNDST_DSPS_SOUND4_CHAN_HWBUF_RATE "hwbuf_rate" #define SNDST_DSPS_SOUND4_CHAN_HWBUF_SIZE "hwbuf_size" #define SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKSZ "hwbuf_blksz" #define SNDST_DSPS_SOUND4_CHAN_HWBUF_BLKCNT "hwbuf_blkcnt" #define SNDST_DSPS_SOUND4_CHAN_HWBUF_FREE "hwbuf_free" #define SNDST_DSPS_SOUND4_CHAN_HWBUF_READY "hwbuf_ready" #define SNDST_DSPS_SOUND4_CHAN_SWBUF_FORMAT "swbuf_format" +#define SNDST_DSPS_SOUND4_CHAN_SWBUF_RATE "swbuf_rate" #define SNDST_DSPS_SOUND4_CHAN_SWBUF_SIZE "swbuf_size" #define SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKSZ "swbuf_blksz" #define SNDST_DSPS_SOUND4_CHAN_SWBUF_BLKCNT "swbuf_blkcnt" diff --git a/tests/sys/sound/sndstat.c b/tests/sys/sound/sndstat.c index 637e640d3cff..ed292b570429 100644 --- a/tests/sys/sound/sndstat.c +++ b/tests/sys/sound/sndstat.c @@ -184,12 +184,14 @@ ATF_TC_BODY(sndstat_nv, tc) NV(number, LEFTVOL); NV(number, RIGHTVOL); NV(number, HWBUF_FORMAT); + NV(number, HWBUF_RATE); NV(number, HWBUF_SIZE); NV(number, HWBUF_BLKSZ); NV(number, HWBUF_BLKCNT); NV(number, HWBUF_FREE); NV(number, HWBUF_READY); NV(number, SWBUF_FORMAT); + NV(number, SWBUF_RATE); NV(number, SWBUF_SIZE); NV(number, SWBUF_BLKSZ); NV(number, SWBUF_BLKCNT); From nobody Fri May 2 10:46:16 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpnf06F4Lz5vWGW; Fri, 02 May 2025 10:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpnf02pXgz4NZ9; Fri, 02 May 2025 10:46:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182776; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qLijEz75KiKJNK30skCOn1nVjuA7sU+h1151guc/s8U=; b=twKZ/4lSqUrwDNqp3KOXI9/7R7ZegfoYgiVJJq5aED5uoIwSoJCdWDzcUtJzHmYphmqDTj 1C8KO4BXSWtaZwXz1hQ2Pft7m6FXoAW4SE61pa8XGMV1kjDczMtcikN8BAdYa7aSvK+PIQ mwGPbthuLpOOVei+RUItH+ywh9a+Y+pXWK7uO8zSLJp+RJ+l7DCU9MLcfet6y0HvikTrtJ /LR9l5pQ82uAoDVaYkaVsyQfN1A0gT7X1R9OR/pQTGtT2EGcJ+eW1Y15/EynfRnFlmDw4+ zHVEG9TPfpocU6lkr4VWlU/xK7fuUydDW9f1IEvdfjRrTPZ1p6DbRAil7caJ1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182776; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qLijEz75KiKJNK30skCOn1nVjuA7sU+h1151guc/s8U=; b=AHUFi0Wai8OvK1Euxms8Fzr2GdR90HqOX+8mX3XkPrYT0Cuohq76BtmmD3BwSOsrTMfpKa x0rsC0L4eSQjGi99QyRddjM7pgFeB5sEEYzZnJtHI7CtelThfv4Fh1MJvn3i7tlq7jH6hh w3zemG19yoggfFWSvgJTLCjGg+Yspr2J751Ey8xlY2VMzar/iI3nSXZcPmajFQ6EYuQpMf Lnw+KFH1GhAq1KUgLNjsUb22uxyVGbPxDWlOeS7K5W/neRDb6oJzQvkOsvTb/2Wqji2B7R k2+XcapeQct5j4e9XiMdZphLDtPeK2k7JH+9S/w0DVE29M4zXEiX2Y7ol3ITgg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182776; a=rsa-sha256; cv=none; b=cGMtik8Xwun7VBu6mGOVBASojF3YvX1lA5EzAQXGEd08l9HXYSe+ycoCNZDzRjD9+32K3l sH7HSWwKnI5YB0HwHUKhzaIjG482d/WR1xj99cPp5j7IKOljnLt/bf7kAd1oIyMH9/aagS Hyeea3PW5h8k6endQ85E0cohbLpuuLydm4JruMUyl4CJMpstYFf2QfuO5tamw+wKT32VZj 3KSPWm67L5yyBUra43CTsZV1mpQvbJb7LxADnbw8lSXAf573bIaWDyEhG/OTB5Js50gM1c nxhTw2mLdYXo2mF5TbdjnYuL4eVW8BlQUlb3ARRCk07fW/46Pz7g1dTjXwhNKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpnf02J10z18Fq; Fri, 02 May 2025 10:46:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542AkGX7036010; Fri, 2 May 2025 10:46:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AkGXH036008; Fri, 2 May 2025 10:46:16 GMT (envelope-from git) Date: Fri, 2 May 2025 10:46:16 GMT Message-Id: <202505021046.542AkGXH036008@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: a9221e507747 - stable/14 - sndstat.4: Make sndstat nvlist channel names reflect new naming scheme List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a9221e5077478efb877a531d3cf4deb64240a42f Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=a9221e5077478efb877a531d3cf4deb64240a42f commit a9221e5077478efb877a531d3cf4deb64240a42f Author: Christos Margiolis AuthorDate: 2025-04-25 16:55:45 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:44:15 +0000 sndstat.4: Make sndstat nvlist channel names reflect new naming scheme Change introduced in c30f531ddb62 ("sound: Shorten channel names"). Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49981 (cherry picked from commit ef411cae7e9a644564cd079fac02e23105403136) --- share/man/man4/sndstat.4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/share/man/man4/sndstat.4 b/share/man/man4/sndstat.4 index 1764ff418601..b9e831e50b43 100644 --- a/share/man/man4/sndstat.4 +++ b/share/man/man4/sndstat.4 @@ -83,8 +83,8 @@ dsps (NVLIST ARRAY): 1 rvchanrate (NUMBER): 48000 rvchanformat (NUMBER): 0x00000010 channel_info (NVLIST_ARRAY): 1 - name (STRING): pcm0:virtual_play:dsp0.vp0 - parentchan (STRING): pcm0:play:dsp0.p0 + name (STRING): dsp0.virtual_play.0 + parentchan (STRING): dsp0.play.0 unit (NUMBER): 1 caps (NUMBER): 0x073200 latency (NUMBER): 2 From nobody Fri May 2 10:46:17 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpnf15mPhz5vWFF; Fri, 02 May 2025 10:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpnf13lZ9z4NkJ; Fri, 02 May 2025 10:46:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=neUcSyBzceNhTvOtmUfCE7A2pU3QQpuIYatu7xppClc=; b=fTBzeFCtC07J1B7mdo9qyFyKgy49wO8hHqH0BKjVx2qnzaxRyc0/36pI89wcasXqhA8ryC zms/TvqASMcHO6KpCot8BssEkUsjgfi/WBAyDdbLpcJZzIJ3dalhYxG+ypMtJ07tlir3LU AuM3JemB+17hCiZ/GXdMPb7uFzQyCOkFBn1aIxyXYGSiM91lvEDwye0h9OiRW+dSJZns7t g60C51ulGOw1z9R/JVMANM51nCW3RUGJGoPUWmg5hWMrWVKlyr1IhNqg6seVeh/CIoQqzg pwYQ8MzHM3Vurh3FzJuiGN4Kt8AWphXTAUL3DDwcsMlWZvd6F9FBMWj1opMcvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=neUcSyBzceNhTvOtmUfCE7A2pU3QQpuIYatu7xppClc=; b=LIQpg+mGXu+KglapiIeavsm2SHqUpwlUbZxwCw989ktRE/GnDmiYURg+mgvdkaOmPr3CSS DkxVbOhhEf1OhCNwOTG8LH+0FdwawKO941F6fzynkAtuKiZkYL0eIt+m9+x0JL8C6TD6gr Qtd/pOvsKrrvYfQPhUpnD1hcm4aXqB4uSlbyrZB8h9nvav6VBaMfpBrYrBIOZ0nexhN2OO 1Ry69UjkzcziuHSAEY7bwf1Wiq4401E5E47pe4rdDgKGrY7ITIpo9Xf37//AoFQ7mbXM2j tNqTNqv0cNSeI80JqTD9Q9vjwtWls67SNkfZsvUBLpkqn7fEnrgp7/zlILVjnw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182777; a=rsa-sha256; cv=none; b=DF3ccBc33x/XmwsfheIsP+C1TxGm6ctgVYeIlP0H1diLbQmP1UYy03dHrMoc0/ut5sg5nS vFv+ysUtH3zFcNCO9AbVp96KpQmpz5GDJqpzkGYdJ61Ejsq+7fZJtO8Qh1DrOn4SyNfZ2g OtoAxLN/vAZgWt6sRWUwkkfAdQ86GXtwJdPT3M6tM9kOcNycTFORTTgeoAeOyOYoge44SK qWYS5xxlqGh2Fikko21CDtzvJb4judP/m7msySE1cb+eM5qBoJjWR2ITbFX+HgQEuJh/Ti M1nha7CfPzTGCF1YLEf6aJ23EXTVA5hjyX46iIuuSaC3BLzVT6XBB3UJxG977g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpnf13Jvwz18ld; Fri, 02 May 2025 10:46:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542AkHI0036042; Fri, 2 May 2025 10:46:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AkH7T036039; Fri, 2 May 2025 10:46:17 GMT (envelope-from git) Date: Fri, 2 May 2025 10:46:17 GMT Message-Id: <202505021046.542AkH7T036039@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: d99692a81339 - stable/14 - sound: Retire SD_F_PRIO_* List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d99692a8133959a7cb014a2fd3e3486139ee24ad Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=d99692a8133959a7cb014a2fd3e3486139ee24ad commit d99692a8133959a7cb014a2fd3e3486139ee24ad Author: Christos Margiolis AuthorDate: 2025-04-25 16:55:51 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:44:15 +0000 sound: Retire SD_F_PRIO_* The SD_F_* flags are supposed to be softc flags, but SD_F_PRIO_RD and SD_F_PRIO_WR are just generic flags and are only used with dsp_lock_chans() and dsp_unlock_chans(). Since we already have the DSP_F_READ() and DSP_F_WRITE() macros, we can re-use them instead. I am aware the FREAD and FWRITE flags are meant to be used with open(), but I think their use here is clear enough to not cause confusion. No functional change intended. Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49978 (cherry picked from commit abb5521bddc24581a1bcbe3e3f016504a4824c73) --- sys/dev/sound/pcm/dsp.c | 34 +++++++++++++++++----------------- sys/dev/sound/pcm/sound.h | 7 +------ 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index c5caeea8a002..9b174f4592f3 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -67,6 +67,12 @@ SYSCTL_INT(_hw_snd, OID_AUTO, basename_clone, CTLFLAG_RWTUN, #define DSP_REGISTERED(x) (PCM_REGISTERED(x) && (x)->dsp_dev != NULL) +#define DSP_F_VALID(x) ((x) & (FREAD | FWRITE)) +#define DSP_F_DUPLEX(x) (((x) & (FREAD | FWRITE)) == (FREAD | FWRITE)) +#define DSP_F_SIMPLEX(x) (!DSP_F_DUPLEX(x)) +#define DSP_F_READ(x) ((x) & FREAD) +#define DSP_F_WRITE(x) ((x) & FWRITE) + #define OLDPCM_IOCTL static d_open_t dsp_open; @@ -144,18 +150,18 @@ dsp_destroy_dev(device_t dev) static void dsp_lock_chans(struct dsp_cdevpriv *priv, uint32_t prio) { - if (priv->rdch != NULL && (prio & SD_F_PRIO_RD)) + if (priv->rdch != NULL && DSP_F_READ(prio)) CHN_LOCK(priv->rdch); - if (priv->wrch != NULL && (prio & SD_F_PRIO_WR)) + if (priv->wrch != NULL && DSP_F_WRITE(prio)) CHN_LOCK(priv->wrch); } static void dsp_unlock_chans(struct dsp_cdevpriv *priv, uint32_t prio) { - if (priv->rdch != NULL && (prio & SD_F_PRIO_RD)) + if (priv->rdch != NULL && DSP_F_READ(prio)) CHN_UNLOCK(priv->rdch); - if (priv->wrch != NULL && (prio & SD_F_PRIO_WR)) + if (priv->wrch != NULL && DSP_F_WRITE(prio)) CHN_UNLOCK(priv->wrch); } @@ -234,12 +240,6 @@ dsp_chn_alloc(struct snddev_info *d, struct pcm_channel **ch, int direction, return (0); } -#define DSP_F_VALID(x) ((x) & (FREAD | FWRITE)) -#define DSP_F_DUPLEX(x) (((x) & (FREAD | FWRITE)) == (FREAD | FWRITE)) -#define DSP_F_SIMPLEX(x) (!DSP_F_DUPLEX(x)) -#define DSP_F_READ(x) ((x) & FREAD) -#define DSP_F_WRITE(x) ((x) & FWRITE) - static void dsp_close(void *data) { @@ -475,12 +475,12 @@ dsp_io_ops(struct dsp_cdevpriv *priv, struct uio *buf) switch (buf->uio_rw) { case UIO_READ: - prio = SD_F_PRIO_RD; + prio = FREAD; ch = &priv->rdch; chn_io = chn_read; break; case UIO_WRITE: - prio = SD_F_PRIO_WR; + prio = FWRITE; ch = &priv->wrch; chn_io = chn_write; break; @@ -1793,7 +1793,7 @@ dsp_poll(struct cdev *i_dev, int events, struct thread *td) ret = 0; - dsp_lock_chans(priv, SD_F_PRIO_RD | SD_F_PRIO_WR); + dsp_lock_chans(priv, FREAD | FWRITE); wrch = priv->wrch; rdch = priv->rdch; @@ -1809,7 +1809,7 @@ dsp_poll(struct cdev *i_dev, int events, struct thread *td) ret |= chn_poll(rdch, e, td); } - dsp_unlock_chans(priv, SD_F_PRIO_RD | SD_F_PRIO_WR); + dsp_unlock_chans(priv, FREAD | FWRITE); PCM_GIANT_LEAVE(d); @@ -1871,7 +1871,7 @@ dsp_mmap_single(struct cdev *i_dev, vm_ooffset_t *offset, PCM_GIANT_ENTER(d); - dsp_lock_chans(priv, SD_F_PRIO_RD | SD_F_PRIO_WR); + dsp_lock_chans(priv, FREAD | FWRITE); wrch = priv->wrch; rdch = priv->rdch; @@ -1880,7 +1880,7 @@ dsp_mmap_single(struct cdev *i_dev, vm_ooffset_t *offset, (*offset + size) > sndbuf_getallocsize(c->bufsoft) || (wrch != NULL && (wrch->flags & CHN_F_MMAP_INVALID)) || (rdch != NULL && (rdch->flags & CHN_F_MMAP_INVALID))) { - dsp_unlock_chans(priv, SD_F_PRIO_RD | SD_F_PRIO_WR); + dsp_unlock_chans(priv, FREAD | FWRITE); PCM_GIANT_EXIT(d); return (EINVAL); } @@ -1891,7 +1891,7 @@ dsp_mmap_single(struct cdev *i_dev, vm_ooffset_t *offset, rdch->flags |= CHN_F_MMAP; *offset = (uintptr_t)sndbuf_getbufofs(c->bufsoft, *offset); - dsp_unlock_chans(priv, SD_F_PRIO_RD | SD_F_PRIO_WR); + dsp_unlock_chans(priv, FREAD | FWRITE); *object = vm_pager_allocate(OBJT_DEVICE, i_dev, size, nprot, *offset, curthread->td_ucred); diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h index f7411ee096c9..fe982394dac8 100644 --- a/sys/dev/sound/pcm/sound.h +++ b/sys/dev/sound/pcm/sound.h @@ -121,9 +121,6 @@ struct snd_mixer; #define SD_F_EQ_MASK (SD_F_EQ | SD_F_EQ_ENABLED | \ SD_F_EQ_BYPASSED | SD_F_EQ_PC) -#define SD_F_PRIO_RD 0x10000000 -#define SD_F_PRIO_WR 0x20000000 - #define SD_F_BITS "\020" \ "\001SIMPLEX" \ /* "\002 */ \ @@ -138,9 +135,7 @@ struct snd_mixer; "\013EQ_BYPASSED" \ "\014EQ_PC" \ "\015PVCHANS" \ - "\016RVCHANS" \ - "\035PRIO_RD" \ - "\036PRIO_WR" + "\016RVCHANS" #define PCM_ALIVE(x) ((x) != NULL && (x)->lock != NULL) #define PCM_REGISTERED(x) (PCM_ALIVE(x) && ((x)->flags & SD_F_REGISTERED)) From nobody Fri May 2 10:46:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpnf334qCz5vWn1; Fri, 02 May 2025 10:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpnf265m3z4Nkj; Fri, 02 May 2025 10:46:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EjTICGTUdN+yY79IeOhcbNgejJ0oF7vmHVIphUuxA2c=; b=iiSQIYJAInK+KG6NzA6dtLU3c6H8Qoum1HUUQQrWTETbzqbUa+Q7mjeJPucE5AV/uDfmsO ybejKHJbASEquNc21DtRRcUh7qLxen3nxMZ5xkbpwcWjaLwYGMwNyhDF3lGM1jxJ5phswS xwqF1cMn0876h31lAL+biVTgpV4Oi2b6M5ovEEHEavqPvr9rrlm/Ulbb32KQRPsRu4Kdr/ AmX6r3pNak63Ul3ZiF8pKsDoTDNsEc4qNofWQA+oQ+g0UsQ8O8/dutvX2NwWQjsq+JEDHQ CPrBDWHrs+zsdb4HqXPhiGO9OMCG2m1EreG0aSnbLwbo16Q1hZjZRBISftzdFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182778; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EjTICGTUdN+yY79IeOhcbNgejJ0oF7vmHVIphUuxA2c=; b=dsxncO6ZzOFh5K2zSNjtl+FT3Y0Uy450t8l94JC2Qf6UBJgJF/oZ/1VfnFnQVm/u8QLEo9 v/0qxIq/T2K37IDxQ9S4c1NuGhQwG8qfnOfhf5oSjKQQ7enFOmtEZosOSEWQYISODQGlBk MVJgNAfXmBvfOL3d1z45H+/5CA4ToW0LVqgrSbDIv9VaT8jjlFMVnKHeZsmxRU7raYlyeO RgaMLj8P5yxf2WnsLdXYXzMdEtEJGtAKeQCYER04kdfZbDOMDFQtEFBz9UFmy4KDjMIe/S 2ldaWnMZB7kh0Cp/i2CMLbnqqlNtdeUKRretXQSt0WOHr6E4VpUzjnB0r/EiAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182778; a=rsa-sha256; cv=none; b=bzL0+7s0yOpdBt6VlvpAU85cnvk+ZpC2hgNLdCcN0BqiUP3r7opXRwf8Yb9eqiCjqDIQ3E i8FTHdS/YGXWObvBhCPaqcNCrnlqTWCnc5ER2XAsbBMaYAtiB5oHtgH1enR6OKLRmI0M8w 3D62nJXfqhsKMZq1oK8WA2RFZPxaYqWiqkqZ8IlHYwkIvYhl/b9UfnnyUeO5x2HYfxpTsJ tWSrpL6ijfiFijW02IjpCfd+pOrzWsHahUv6OxfWv3UiMj5YzC81G61XnRhl+LYsmc8Nfu EU/cQyhW/f858+fWI/8Z/KKQfQjBRJlRf831kWsFEwHXqOebYYFzk2oddXQSAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpnf24GcKz18mr; Fri, 02 May 2025 10:46:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542AkI7O036078; Fri, 2 May 2025 10:46:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AkIh5036075; Fri, 2 May 2025 10:46:18 GMT (envelope-from git) Date: Fri, 2 May 2025 10:46:18 GMT Message-Id: <202505021046.542AkIh5036075@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: d0e6b4305f47 - stable/14 - sound: Retire volch List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d0e6b4305f47150d9f15295f884040b89952af93 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=d0e6b4305f47150d9f15295f884040b89952af93 commit d0e6b4305f47150d9f15295f884040b89952af93 Author: Christos Margiolis AuthorDate: 2025-04-29 14:00:22 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:44:16 +0000 sound: Retire volch volch is a variable used internally in dsp_ioctl_channel() which corresponds to either priv->rdch or priv->wrch. As a result, priv->volch is also a pointer to one of those two channels, but is also not used anywhere outside dsp_ioctl_channel(). Since the operation of figuring out which channel we want to operate on inside dsp_ioctl_channel() is cheap enough, retire volch to avoid unnecessary complexity and confusion. While here, rename "volch" to just "ch". Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50022 (cherry picked from commit 578cbd03f7a53eb23b71b560f8816f84f5a1461b) --- sys/dev/sound/pcm/dsp.c | 61 ++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/sys/dev/sound/pcm/dsp.c b/sys/dev/sound/pcm/dsp.c index 9b174f4592f3..f1adcdbc5d70 100644 --- a/sys/dev/sound/pcm/dsp.c +++ b/sys/dev/sound/pcm/dsp.c @@ -52,7 +52,6 @@ struct dsp_cdevpriv { struct snddev_info *sc; struct pcm_channel *rdch; struct pcm_channel *wrch; - struct pcm_channel *volch; }; static int dsp_mmap_allow_prot_exec = 0; @@ -551,7 +550,7 @@ dsp_write(struct cdev *i_dev, struct uio *buf, int flag) } static int -dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, +dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *ch, u_long cmd, caddr_t arg) { struct snddev_info *d; @@ -569,25 +568,19 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, rdch = priv->rdch; wrch = priv->wrch; - /* No specific channel, look into cache */ - if (volch == NULL) - volch = priv->volch; - - /* Look harder */ - if (volch == NULL) { + if (ch == NULL) { if (j == SOUND_MIXER_RECLEV && rdch != NULL) - volch = rdch; + ch = rdch; else if (j == SOUND_MIXER_PCM && wrch != NULL) - volch = wrch; + ch = wrch; } - /* Final validation */ - if (volch == NULL) + if (ch == NULL) return (EINVAL); - CHN_LOCK(volch); - if (!(volch->feederflags & (1 << FEEDER_VOLUME))) { - CHN_UNLOCK(volch); + CHN_LOCK(ch); + if (!(ch->feederflags & (1 << FEEDER_VOLUME))) { + CHN_UNLOCK(ch); return (EINVAL); } @@ -595,28 +588,28 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, case MIXER_WRITE(0): switch (j) { case SOUND_MIXER_MUTE: - if (volch->direction == PCMDIR_REC) { - chn_setmute_multi(volch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_RECLEV) != 0); + if (ch->direction == PCMDIR_REC) { + chn_setmute_multi(ch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_RECLEV) != 0); } else { - chn_setmute_multi(volch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_PCM) != 0); + chn_setmute_multi(ch, SND_VOL_C_PCM, (*(int *)arg & SOUND_MASK_PCM) != 0); } break; case SOUND_MIXER_PCM: - if (volch->direction != PCMDIR_PLAY) + if (ch->direction != PCMDIR_PLAY) break; left = *(int *)arg & 0x7f; right = ((*(int *)arg) >> 8) & 0x7f; center = (left + right) >> 1; - chn_setvolume_multi(volch, SND_VOL_C_PCM, + chn_setvolume_multi(ch, SND_VOL_C_PCM, left, right, center); break; case SOUND_MIXER_RECLEV: - if (volch->direction != PCMDIR_REC) + if (ch->direction != PCMDIR_REC) break; left = *(int *)arg & 0x7f; right = ((*(int *)arg) >> 8) & 0x7f; center = (left + right) >> 1; - chn_setvolume_multi(volch, SND_VOL_C_PCM, + chn_setvolume_multi(ch, SND_VOL_C_PCM, left, right, center); break; default: @@ -628,34 +621,34 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, case MIXER_READ(0): switch (j) { case SOUND_MIXER_MUTE: - mute = CHN_GETMUTE(volch, SND_VOL_C_PCM, SND_CHN_T_FL) || - CHN_GETMUTE(volch, SND_VOL_C_PCM, SND_CHN_T_FR); - if (volch->direction == PCMDIR_REC) { + mute = CHN_GETMUTE(ch, SND_VOL_C_PCM, SND_CHN_T_FL) || + CHN_GETMUTE(ch, SND_VOL_C_PCM, SND_CHN_T_FR); + if (ch->direction == PCMDIR_REC) { *(int *)arg = mute << SOUND_MIXER_RECLEV; } else { *(int *)arg = mute << SOUND_MIXER_PCM; } break; case SOUND_MIXER_PCM: - if (volch->direction != PCMDIR_PLAY) + if (ch->direction != PCMDIR_PLAY) break; - *(int *)arg = CHN_GETVOLUME(volch, + *(int *)arg = CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FL); - *(int *)arg |= CHN_GETVOLUME(volch, + *(int *)arg |= CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FR) << 8; break; case SOUND_MIXER_RECLEV: - if (volch->direction != PCMDIR_REC) + if (ch->direction != PCMDIR_REC) break; - *(int *)arg = CHN_GETVOLUME(volch, + *(int *)arg = CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FL); - *(int *)arg |= CHN_GETVOLUME(volch, + *(int *)arg |= CHN_GETVOLUME(ch, SND_VOL_C_PCM, SND_CHN_T_FR) << 8; break; case SOUND_MIXER_DEVMASK: case SOUND_MIXER_CAPS: case SOUND_MIXER_STEREODEVS: - if (volch->direction == PCMDIR_REC) + if (ch->direction == PCMDIR_REC) *(int *)arg = SOUND_MASK_RECLEV; else *(int *)arg = SOUND_MASK_PCM; @@ -669,7 +662,7 @@ dsp_ioctl_channel(struct dsp_cdevpriv *priv, struct pcm_channel *volch, default: break; } - CHN_UNLOCK(volch); + CHN_UNLOCK(ch); return (0); } @@ -703,7 +696,7 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd, caddr_t arg, int mode, PCM_GIANT_EXIT(d); return (0); } - ret = dsp_ioctl_channel(priv, priv->volch, cmd, arg); + ret = dsp_ioctl_channel(priv, NULL, cmd, arg); if (ret != -1) { PCM_GIANT_EXIT(d); return (ret); From nobody Fri May 2 10:46:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpnf44bMCz5vWsH; Fri, 02 May 2025 10:46: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpnf35z3Sz4Nky; Fri, 02 May 2025 10:46:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RsbllGugveboqJLZIeVJZJrrSAbMXII/FIsbpXcjhls=; b=nzKchlLmowFdChYWBR8GEnk55jkt4usOdfXIv8EZEjQV6kpLgmTVmT674znxzkYQ+DU4AL /ideTyKOAcpifC1hYbmSwS0W3ysuQnbdGwXRXgVhsJAvDU+kzod26pK0mD7ndiiHnMjJ3f vW+2fcYdKtMp51/kPTGpre41Lu30d2O7W08BrYvMRemVhdg2SogzfDPJB3gyr/dG0dIS18 y5o33XwHzIqPQ29rubPSDa/Tt7ws3yk5qFoQRAqCeNbSe1UcjaydTLdOtlYuq43FhPiuVE bm0QicBaaXTmn1du1dKV5kLQwz9IimqCyvcHA7TzK+qcmr23lEBM2OUF3SLOJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746182779; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RsbllGugveboqJLZIeVJZJrrSAbMXII/FIsbpXcjhls=; b=xcC8WPEMypRitf0m3GG1fMm/gx+fD+aAo5nANv40XUfeogBRssuIsMNHuzk+P+QOAt80Cy 2nCqi0uRa5N7a4KBFNaXC+IzP1+jvVLL18gBEXdM2EDsL4q4D1oHsWiL5V8PwWjXj5QHKw 4EQumkbjxxmY6ZH/z/rSbavxOSufpvFpWHz0SdMy5qsvd97/euW5H0PHoReEj/yGDHk0a+ 4Z5r8fTa5enc5cPYHf7wQN013873qXz66YreNvNAI7xiitJrRlEdezGgL0U58uOvLPHTN4 6EVxh9MT2Afw5PIW1iikyBM/Fb2CeCDOonVZr6elmp2nR6xDm3JhB/2/mmOvVw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746182779; a=rsa-sha256; cv=none; b=YZvFFJFl95PRLNdmmSHgys8BSlakI4lcfXJ/50s+OXcG1dblYfOhGy+Fl4c91hmfsDR1WQ 3bSdAw8ykJeqbjkHLnOBNy6KspjYlRjxRlOqZ5ToIRMgvrD/yB/JBa8M2GDBW5454TArYJ 4IhoqsEnioGxadnl+FqxsF4SWY4r/24fPO3+W8ffijHPLd4HDJpaWb0cgTwuoOQj4ACbN7 MUvKLPW+lLvP6FZZ8ynYgq6sQGtxgZMyWhqsraHIrjJuwBvzTTwCcSf4YwoRcW7xfDO1ZP tOcjJqzEbnYcMaoM6yLQNBtmMk/uhZQGI3pJkyfLve1s2sOGixQ1KPggSMx4mA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpnf34nT3z18M9; Fri, 02 May 2025 10:46:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542AkJFK036116; Fri, 2 May 2025 10:46:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542AkJUD036113; Fri, 2 May 2025 10:46:19 GMT (envelope-from git) Date: Fri, 2 May 2025 10:46:19 GMT Message-Id: <202505021046.542AkJUD036113@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 2dd67e4f612e - stable/14 - snd_hda: Drain callout in hdac_detach() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2dd67e4f612e76426b7937025f6fc777d9dae6bc Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=2dd67e4f612e76426b7937025f6fc777d9dae6bc commit 2dd67e4f612e76426b7937025f6fc777d9dae6bc Author: Christos Margiolis AuthorDate: 2025-05-02 10:38:41 +0000 Commit: Christos Margiolis CommitDate: 2025-05-02 10:44:16 +0000 snd_hda: Drain callout in hdac_detach() Because we do not drain the hdac callout during detach, hot-unloading can result in a panic if the callback fires after we have freed the resources it uses. pcm0: detached pcm1: detached hdaa0: detached hdacc0: detached Kernel page fault with the following non-sleepable locks held: exclusive sleep mutex hdac0 (HDA driver mutex) r = 0 (0xfffffe000212c820) locked @ /mnt/src/sys/dev/sound/pci/hda/hdac.c:400 [...] db_trace_self_wrapper() at db_trace_self_wrapper+0xa5/frame 0xfffffe0046b04490 kdb_backtrace() at kdb_backtrace+0xc6/frame 0xfffffe0046b045f0 vpanic() at vpanic+0x226/frame 0xfffffe0046b04790 panic() at panic+0xb5/frame 0xfffffe0046b04850 trap_fatal() at trap_fatal+0x65b/frame 0xfffffe0046b04950 trap_pfault() at trap_pfault+0x12b/frame 0xfffffe0046b04a70 trap() at trap+0x54c/frame 0xfffffe0046b04c50 calltrap() at calltrap+0x8/frame 0xfffffe0046b04c50 --- trap 0xc, rip = 0xffffffff8412e7ec, rsp = 0xfffffe0046b04d20, rbp = 0xfffffe0046b04d40 --- hdacc_stream_intr() at hdacc_stream_intr+0x3c/frame 0xfffffe0046b04d40 hdac_intr_handler() at hdac_intr_handler+0x15c/frame 0xfffffe0046b04d90 ithread_loop() at ithread_loop+0x387/frame 0xfffffe0046b04ef0 fork_exit() at fork_exit+0xa3/frame 0xfffffe0046b04f30 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0046b04f30 --- trap 0xc, rip = 0x829cc531a, rsp = 0x82b8b7a88, rbp = 0x82b8b7aa0 --- KDB: enter: panic [ thread pid 12 tid 100211 ] Stopped at kdb_enter+0x34: movq $0,0x1f09af1(%rip) db> Sponsored by: The FreeBSD Foundation MFC after: 1 day Reviewed by: kib, adrian Differential Revision: https://reviews.freebsd.org/D50087 (cherry picked from commit c50c5a47a9d515a7dbf584c10c7f66e56b29b305) --- sys/dev/sound/pci/hda/hdac.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/dev/sound/pci/hda/hdac.c b/sys/dev/sound/pci/hda/hdac.c index 904e3b2001c7..9a7958449f91 100644 --- a/sys/dev/sound/pci/hda/hdac.c +++ b/sys/dev/sound/pci/hda/hdac.c @@ -1757,8 +1757,10 @@ hdac_detach(device_t dev) free(devlist, M_TEMP); hdac_lock(sc); + callout_stop(&sc->poll_callout); hdac_reset(sc, false); hdac_unlock(sc); + callout_drain(&sc->poll_callout); taskqueue_drain(taskqueue_thread, &sc->unsolq_task); hdac_irq_free(sc); From nobody Fri May 2 13:58:16 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZpsvX3M2Hz5vkZk; Fri, 02 May 2025 13:58: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZpsvX2gBYz3rtc; Fri, 02 May 2025 13:58:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746194296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zh/yoLFr6WibGCUKQUe9CI1PSG7QnT6JUwrMufBvX14=; b=N1riEGRPFL8V1e6u2JDqRRXtSqE1cKhACkyUzX22ilYnBYFlG3C4ZkQ4BdUHNDHmr3lsUB n/vRcJZbGSJjNYGQIsvk27SftMYWZOuteZGGQftxx99jw/cSpkDms6ZC254uq6dj/kFv7H EiDf5CkPCm3svUUUMM4G7hoFIt6uj5NVYXsLboDNynYzqs5OlBbZj0jPaJk1Ayz3yIdY67 pK20UpzKEGgCiT6jTjhaothY91g7mPFqX7o4mw/Fef8I6aWzLpUZmnjkg4+rWmTOxYEX6J 7R3EyY8nUzUUNRaRR5BJZEKSzgGshHL6TCWPJ8+K03Bi0L1pSwlVVwgHNAcjeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746194296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Zh/yoLFr6WibGCUKQUe9CI1PSG7QnT6JUwrMufBvX14=; b=yxCl/nR3CNaXJv0aqSZkAiv26uDk2v46U8sceFUS5gO8t/33sFo/WN3uORtB0m4zNuXXzM PqywX7VVgtGmaHsVzRB0eRVQeGJlZVfPdBMybFh4saNRXScdjfTyeqTFI8R20RGuBVzThR vZqsAJNy2pMFAJHN1DYFsK5XgsyWlM7C/vcVXn1bU39q2rz3wIP7lq4mhIQqRyJTBERU4v L6Zyi20/89kEw5rgEN6wBVcJXeMbvMINpmZiSJxsyh2EhecI3TBWfxQygiutn9MdKCTnnh uBSJcZjtrivjwUTB0+1pAcFlPnBtEL8ND4URUfzaLWWWEFmkGZpMvl8VP+sVLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746194296; a=rsa-sha256; cv=none; b=T/jlsX5p9Ge3jqIHZ/WBqydOJ9xVClKj2R7e4uET5dgnXI9GWmN3BITq5QAlo7+SLWe9Bk uHdbUhIecAdNjM3yYelPx0FmTd9G85++373a4xvTQcCRfeDxDBBM5HXgzbAAUrKVf+bq6q DcV+eKwlel9UK2j1+GzNmH10aDRcc2DNtkow3l97HPtxHYnDPXv7/XX8Ju1T3tOfyRAUzJ 5ZPbGAC/DfF+//Y78a4U3N4ejZ8EuhB9AqyXx+GD4/XpUwGHrJt0K9ls2KrV2dPZkq1Ows 4xgFSn7FFK0Y1+m100UJCkwYUAm6ZN73D3Evuk7ThdNE+bai7lVA8avtKX5R+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZpsvX28Gwz1DxG; Fri, 02 May 2025 13:58:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542DwGrI092927; Fri, 2 May 2025 13:58:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542DwGPU092924; Fri, 2 May 2025 13:58:16 GMT (envelope-from git) Date: Fri, 2 May 2025 13:58:16 GMT Message-Id: <202505021358.542DwGPU092924@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 2072a2276f60 - stable/14 - Fix "version introduced" in two manual pages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2072a2276f6044d319837f2ef3ec37b7c4180859 Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=2072a2276f6044d319837f2ef3ec37b7c4180859 commit 2072a2276f6044d319837f2ef3ec37b7c4180859 Author: Tom Hukins AuthorDate: 2024-05-22 12:32:03 +0000 Commit: Ed Maste CommitDate: 2025-05-02 13:58:00 +0000 Fix "version introduced" in two manual pages Signed-off-by: Tom Hukins Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1252 (cherry picked from commit 2ce32ab21a5961dd9405cde8d985da9d0a664276) --- lib/libc/gen/exec.3 | 2 +- usr.bin/posixmqcontrol/posixmqcontrol.1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/gen/exec.3 b/lib/libc/gen/exec.3 index 662e4f8e66f7..41ab18fa89ef 100644 --- a/lib/libc/gen/exec.3 +++ b/lib/libc/gen/exec.3 @@ -343,7 +343,7 @@ function first appeared in The .Fn execvpe function first appeared in -.Fx 15.0 . +.Fx 14.1 . .Sh BUGS The type of the .Fa argv diff --git a/usr.bin/posixmqcontrol/posixmqcontrol.1 b/usr.bin/posixmqcontrol/posixmqcontrol.1 index 6ed36ceffa0a..54f465fd4076 100644 --- a/usr.bin/posixmqcontrol/posixmqcontrol.1 +++ b/usr.bin/posixmqcontrol/posixmqcontrol.1 @@ -172,7 +172,7 @@ info reports a worst-case estimate for QSIZE. The .Nm command appeared in -.Fx 15.0 . +.Fx 14.1 . .Sh AUTHORS The .Nm From nobody Fri May 2 16:14:45 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpwx14szDz5tg3J; Fri, 02 May 2025 16:14:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpwx14CY2z3y0G; Fri, 02 May 2025 16:14:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746202485; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WpoWNSdUJdb1ooekWPavzFUvfh2aqaX5Vsed7+B5SCA=; b=CB3u998S6tuxvzxn5OktENvkOVfZND3e+LPzy3nYDzYbHlJjOrM8zb9hMGpkpQ0tr34Xd4 zG3CyR5nQPTPYiK28xny3MXJ1AoRbcLAjPw1bisGbrG82ydu/7oi2T4xevcOzLKYMR5QoL HldklZM8hIvZw0oAhD6LLHxZvZb+eVvy4uv3XQPE349fP2bWCXVC/tSyhyhtgLwaJATLrh T86i/Jm4W4W+yPQfs7wLvYaVat8mFH4CKZTOlx3xe6+3lx4XSA7Ad/NUDpz/4Mph2RfwZc aRye7IyjxbuHx+ElVBGHpIMOWKHrJ+hNAy+3TLTqacYOpfRtmbSnPm0RlbvXcQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746202485; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WpoWNSdUJdb1ooekWPavzFUvfh2aqaX5Vsed7+B5SCA=; b=xrcwdTnCbXrrmxImS9IuYnacNBKE3Zg8YEEcYge6XH2+07BVvjQsPTzGi+0r98n7WRpPlc /oGdeRTzgy826R8cHq8uZgWWIPlNlPTC86NqQ9mWzwPqGadVgynZZHbVYntHBcU7fs1hE0 sjTiTGTdX4tpDXnWGVfXR+/cV+uJvFBZs5cMu2vz1g5/iO0jSxb0wJLYEjSsoW0wzz22RG ohtfBNuxXbv46LDAmuPfff7FTDwq2+MZH5iymOEJ6XD8BSvmxWFFkhFIcFYS5q0oIzsGHf 3iHFNr56UMMvGgOE6iZTX98YCnIeqo0wxRvNs4sMyZS3p+qCy5GG/PaOHOEhhA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746202485; a=rsa-sha256; cv=none; b=BwYQ/Fu38m+CnL+N0zDCThuZb/ApM6aINSY637MgkdxZxx6zyqQTw467KlsEnswwH0oKln zUYfcXFPiqcgvbQmRDr5AeCQcmXip8Y6Q1TQKo2F7U/j9QyFqHWU+URa1aWONqKyl7+wT8 WpzVyvQxjrBZ08jxuyrqPhCDwfDosuQxGAE48kZjBd2kFPEYvDoCj/h7JcD7BHw8KmDILF ASOo5hqlDBKx9vgJKB8+lbh2u3b0JMXO+n1aGCAmxNxePtdFNeYoT/ODBlNgoc+tKh1OtI oGgHKkUuxkKrbXm+f9ibmv0YMz68MNPEbSc/g8CIwgHTtFsJMS/Qc9RLILKo0Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpwx13h6sz1JZG; Fri, 02 May 2025 16:14:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542GEjmJ054425; Fri, 2 May 2025 16:14:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542GEjx7054422; Fri, 2 May 2025 16:14:45 GMT (envelope-from git) Date: Fri, 2 May 2025 16:14:45 GMT Message-Id: <202505021614.542GEjx7054422@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 03f0c1b18193 - stable/14 - pwait tests: Fix some exit annotations List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 03f0c1b181930c46d1839f20953a0168683fe9d4 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=03f0c1b181930c46d1839f20953a0168683fe9d4 commit 03f0c1b181930c46d1839f20953a0168683fe9d4 Author: Mark Johnston AuthorDate: 2025-04-18 15:35:18 +0000 Commit: Mark Johnston CommitDate: 2025-05-02 16:14:35 +0000 pwait tests: Fix some exit annotations A number of tests rely on timeout(1) to kill a pwait instance, and with --preserve-status the corresponding exit status is propagated to atf_check. Update the checks to reflect this. MFC after: 2 weeks (cherry picked from commit 987ef153c28878c3968420663f6061d6e70540a8) --- bin/pwait/tests/pwait_test.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/pwait/tests/pwait_test.sh b/bin/pwait/tests/pwait_test.sh index a726c467f57e..66bdd6981704 100644 --- a/bin/pwait/tests/pwait_test.sh +++ b/bin/pwait/tests/pwait_test.sh @@ -87,37 +87,37 @@ time_unit_body() atf_check \ -o empty \ -e empty \ - -s exit:143 \ + -s signal:15 \ timeout --preserve-status 2 pwait -t 100000000 $init atf_check \ -o empty \ -e empty \ - -s exit:143 \ + -s signal:15 \ timeout --preserve-status 2 pwait -t 1h $init atf_check \ -o empty \ -e empty \ - -s exit:143 \ + -s signal:15 \ timeout --preserve-status 2 pwait -t 1.5h $init atf_check \ -o empty \ -e empty \ - -s exit:143 \ + -s signal:15 \ timeout --preserve-status 2 pwait -t 1m $init atf_check \ -o empty \ -e empty \ - -s exit:143 \ + -s signal:15 \ timeout --preserve-status 2 pwait -t 1.5m $init atf_check \ -o empty \ -e empty \ - -s exit:143 \ + -s signal:15 \ timeout --preserve-status 2 pwait -t 0 $init # The rest are fast enough that pwait -t is expected to trigger From nobody Fri May 2 16:14:46 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zpwx2742sz5tg3L; Fri, 02 May 2025 16:14: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zpwx25Fc9z3xr2; Fri, 02 May 2025 16:14:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746202486; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ndbJJZPbGNvHs+K4MdheflaeaNoUXFfKhHRUataQEDE=; b=FR4hmnY1X6AwjQrl6Yd/jgDVoxGmPjTKbF7oeMqWmKitzoYG38n1CWkYhZAg71x3Qsq9rd bS5YeTffcKXjVeyt4j7UmSQCzSkQdBR8dYPEHthRHyMkPmCRJMwhthDhdUFLwWN8U5j86K pr06JphVG8Wgz2FcBz7WT0XNuu5c/tYp5IDEVsMAOxPzfx6tgtbVHSzWmQokwkjv1fug+D aVnxI7TXTK9xIDj6TGUJ+aPeQsmS37/7Ek6DYb921sM8qGnZ6EHhz96OOX/eq9lkXI/eKy 95BdcsKBoDE1u1VhHwWiPMT+7ha6ezEprDBwOnWPn+LNWpHEAfXYNNvIGBoJmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746202486; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ndbJJZPbGNvHs+K4MdheflaeaNoUXFfKhHRUataQEDE=; b=GLCTghsfoNz80g6dLXLSjoAwZzKtvZ2aaIkM2yWmrR9/83Pd/tkeQgpVyJpRhTMk/dJSCG M5iB4ZqrfEfjAOEOc9EP4N2djNxiRdahyanhXHxqx6MNsVC+jJSCji+4bvqm+JEFKwzH47 8G4g0RJkbXFzE6QA5fgVGq1bYtVt9oOxbj2OzHz2J1cfTsulGVZqSK6FTluovzs8C+ZB5t tBSsTptJ6s4aORgv9hNu8Qz+Tx4fyA5huxshghIze3dVOP41DCTWv5zDDPVoywCD+BJ3+e z9Tduo+7f+0NoT6gIM6K7OnVJxKeT/BTHtCmZjUY3qbzulAd3Q1IUL5r/c5J+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746202486; a=rsa-sha256; cv=none; b=pLOapW27GJKRMDHaMnkGuI6xgIXpVZyzEuIWVrOFbtpvpnqSsyjGs2XPJd+7n78WxLA6so Nk+GsEzpNaLjXTQ9QWKrMxC+eDl1Q8hedjVOEXjGtgvej86/OGap4aNfOikm/vbide3ZJS liKD54nO++H13PEeecqp5zOyhZ44bXxZJK1BApcmxX4viaC7jMK2a0r6rw5ZPCgyjmVf3J g/cfMbMXeniJiLQoehAynDZ0h4Zqq2RWOZN9ZhKeUmMxpXK8vQ+56LAvPA4awH+HwsIm24 SmDG7rsd/lNJSpfmnzciV7joZDw3wCEzcJDEGCGa4/9bk2p0KixKMSrymOdsxQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zpwx24cTDz1K3B; Fri, 02 May 2025 16:14:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 542GEk6Z054462; Fri, 2 May 2025 16:14:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 542GEkcO054459; Fri, 2 May 2025 16:14:46 GMT (envelope-from git) Date: Fri, 2 May 2025 16:14:46 GMT Message-Id: <202505021614.542GEkcO054459@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 098e4ecd6549 - stable/14 - vm_pageout: Disallow invalid values for act_scan_laundry_weight List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 098e4ecd65492bd23f88f4358f0c6bde13a1e114 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=098e4ecd65492bd23f88f4358f0c6bde13a1e114 commit 098e4ecd65492bd23f88f4358f0c6bde13a1e114 Author: Mark Johnston AuthorDate: 2025-04-18 17:31:27 +0000 Commit: Mark Johnston CommitDate: 2025-05-02 16:14:35 +0000 vm_pageout: Disallow invalid values for act_scan_laundry_weight PR: 234167 MFC after: 2 weeks (cherry picked from commit d8b03c5904faff84656d3a84a25c2b37bcbf8075) --- sys/vm/vm_pageout.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index bc946e2bb844..c2c5281b87af 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -185,8 +185,23 @@ SYSCTL_INT(_vm, OID_AUTO, pageout_oom_seq, "back-to-back calls to oom detector to start OOM"); static int act_scan_laundry_weight = 3; -SYSCTL_INT(_vm, OID_AUTO, act_scan_laundry_weight, CTLFLAG_RWTUN, - &act_scan_laundry_weight, 0, + +static int +sysctl_act_scan_laundry_weight(SYSCTL_HANDLER_ARGS) +{ + int error, newval; + + newval = act_scan_laundry_weight; + error = sysctl_handle_int(oidp, &newval, 0, req); + if (error || req->newptr == NULL) + return (error); + if (newval < 1) + return (EINVAL); + act_scan_laundry_weight = newval; + return (0); +} +SYSCTL_PROC(_vm, OID_AUTO, act_scan_laundry_weight, CTLFLAG_RWTUN | CTLTYPE_INT, + &act_scan_laundry_weight, 0, sysctl_act_scan_laundry_weight, "I", "weight given to clean vs. dirty pages in active queue scans"); static u_int vm_background_launder_rate = 4096; From nobody Sat May 3 08:03:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqKzq0wkjz5tvfY; Sat, 03 May 2025 08:03:35 +0000 (UTC) (envelope-from pstef@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqKzq0Lvnz3YKv; Sat, 03 May 2025 08:03:35 +0000 (UTC) (envelope-from pstef@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746259415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nr89Hqc0Qafd72myeepkiAMpCAzckwOjq0ehLNZjJns=; b=TF7M/J1mPyVNEKqEjtr16D+VahsmukZxahL4qtGf6YfPGAIt10+8yp7jje5k51cDJgoaji gRxN8+FlQ3CS8wCPT9fBhCnflfR/OTSFy9Ni0f6RQD3420mwlxcRyXpR0i0Oexs8kd53kl 5ud+WdhYBOUQhASQ4oqI5P6P21jQQTArfzxMdBm9gVUOP5Ngny5Qi+VwNc2IRnYH5mIAAX xnJ29XksrAYfH79cxoAGJHauOOc8GeWnqzi/nxYvVJPmTI4H/qbAkcO8I7s4E5BlWt+2Ex hgBnz3Pf+3npO+JNg9u/HYk/tRoAGaHEpqXYvWBsT9JRoX9MV7fq/8+5pYdhGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746259415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nr89Hqc0Qafd72myeepkiAMpCAzckwOjq0ehLNZjJns=; b=aQpWeoWX3wYMbv5hsMjTM86zvZ8TERiwgTLwnIf8r0m3gWtcy3ZkHghY6YXflCW2lbHaer 0aP+lfqi8jAfmQlsMXBcGZScu00+vi1/D2c0NtRTOYeElJblMFyBRsjMbQqfy4Mn2YFpli gEItmHO6OJXp+4jFAMP+AW0kWkpld0tWaWgXdqT0jyARWlAabXmVX42Pd1nqxc80MK/epu 2Z2C4CU4KRF8MH0n3QC12/87VsAUwLqaoGKZPo5pQlCoWRglbtdblMDgT0iDKkEwwsbsTZ jODFLCPgd8Yd8Vd4R9HsHeJ3PV24YY+N6uflc7ewqjURy98m9XwV0B5WWnwLsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746259415; a=rsa-sha256; cv=none; b=lGEdI0uh3PPeHmcUBpkJPg48k+3b8LEL32149nCdcO5s+mv4iMKRvd0avEpKEwPRrtwtC4 eYJQa9r5cDmfjRhKKfsSdfMcAngkNsheksIrZpUTVa9badrMgf0eQdPCUE6n8iPEigKNaQ Ag6rqiy6lxNFWn+w7Tg3nZDLX9BW+tGANRfJqMTZUlZXAFLqjTR42wSyvtlnv5Q93T+1GN qQEz3PgZ8Xc3V8bWssjboYkGJ7E26x0CIxzKyc+CSX6FwqSJqFM/JHcpfyw7ynBUAX3G7h Q0kt+Bq6r1Vyilv1lZdhCLXHr9ia+lRZYWc2XSOqnUt+0WjPzRzmM46wJvgZpg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: by freefall.freebsd.org (Postfix, from userid 1403) id 04F931454F; Sat, 03 May 2025 08:03:34 +0000 (UTC) Date: Sat, 3 May 2025 10:03:34 +0200 From: "Piotr P. Stefaniak" To: Olivier Certner Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-branches@freebsd.org Subject: Re: git: 154ccb0196cd - stable/14 - ps(1): Update some options' conformance/practice comments Message-ID: References: <202505011951.541JpiQV068751@gitrepo.freebsd.org> List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <202505011951.541JpiQV068751@gitrepo.freebsd.org> On 2025-05-01 19:51:44, Olivier Certner wrote: >- /*- >+ /* No opinion on which it should be, but the minus character is meaningful within the context of indent(1) - it won't reformat "block" comments. Piotr From nobody Sat May 3 10:09:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqNmf2Vhxz5v4vf; Sat, 03 May 2025 10:09: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqNmd67l0z3gFJ; Sat, 03 May 2025 10:09:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746266945; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hnfewf72aX34+n7Zm5AUL6qYndJ5graRKxK719NOxiw=; b=jVymOeg84901Fs1bBlS3wVXkhvhmu8zLGSojYcc7ru+1gKn3qKT3GW1xdGdasm8KtEoG1U HucrMu2EO16xeT0EGjQpmB+VO4xuJtgoNGrvzpCGtMjB7aYNj1doXzAuVh2EpJMDbci/Iw mTg+52QtPzHOd0FL9j1T2DLYfsXQuaEzhSqtuqnnKrQX0AFkl9nleAn7FSc9aBJOPebm5g cCLCpEbdI0dExdsYBNDxghlLto3BBOQm+3lAq6JUrJoLpi06uh628JXlnkoHxoMCD5dY31 XGZlGSThQ7hfwGYnKaGlFOiTW1JjVtWWUuoz9Ygvd5xDiU5AiMf6J3yKOjGnZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746266945; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Hnfewf72aX34+n7Zm5AUL6qYndJ5graRKxK719NOxiw=; b=Mpwhlv57IFQ46i+jVVgzz3t+q7ldawNwoiJrgQbaBSlgnDzrAzPQ69rF9HarSadTtXz6Ua EVJsPlwAktmQeZbiu0kD7FnsjDR9F3zm7uEvBgHWaqw4A11dxRs7XhNP7YsPxywzm83xla WBj5/y/RPWilYHTYENsScan6j8993+wfoU9WHWI9VFY76rEzHvNqwsx93srNZ7+SVSLh8V 74KrnZGo7Oy6+6EuZJBpKj25/X82PTi0dJ1l9fUaaXRJW/G0pk3Y+KcCWtJmUONBBFFyMi g50oH+b/AW6Xfa/OdP1NBjLhJWZ6Ukapeuy4Htuisg3BRAGIOnAOxuGiluvjvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746266945; a=rsa-sha256; cv=none; b=G0mWke61bvFuhGgpJYXcCGGWILh/ajEFVe3JuK9W/iCXY/QY4V5IToBIaygfWdCh6BKIiL 5BUrIoHFUx3agLYLVgJGY0f586hOLCrqKdNkug9KHJ0nET4h5Sd3MUIEzO1Y/RougO+lWC hWQvozMyOEqxg5oaZjbLem4v68iVu6aTUb8xzbXwJg917N5HrjR8WhCB59g+6Z9mVUK0gg b01+9v59/M3x4qn/X4pSt0W2wlPOzc/bIQoilx3HNajUSM/IHOPuzzNfmu562w7Kd4SG5m u0aUjZvitbhwgmlDjxlV9B58fxBUnsQ4r8kBzSJ2ISYMip9FIH73SnjawojtfA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqNmd5fJgzfQB; Sat, 03 May 2025 10:09:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543A95kJ062102; Sat, 3 May 2025 10:09:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543A95jl062099; Sat, 3 May 2025 10:09:05 GMT (envelope-from git) Date: Sat, 3 May 2025 10:09:05 GMT Message-Id: <202505031009.543A95jl062099@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michal Meloun Subject: git: bec5167645b5 - stable/14 - arm: Improve the creation of kernel.bin List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mmel X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bec5167645b5d157a1c980099162362f115ccbfe Auto-Submitted: auto-generated The branch stable/14 has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=bec5167645b5d157a1c980099162362f115ccbfe commit bec5167645b5d157a1c980099162362f115ccbfe Author: Michal Meloun AuthorDate: 2024-11-03 12:15:33 +0000 Commit: Michal Meloun CommitDate: 2025-05-03 08:11:09 +0000 arm: Improve the creation of kernel.bin Instead of relinking the kernel without elf headers, replace them with a binary blob of the same length starting with a jump to the kernel's start address. This ensures that all symbols stay at the same offsets as in the original kernel, so kernel.debug remains valid also for kernel.bin. Also ensure that the awk script used runs with the neutral locale defined. Awk 'write' is a locale compilant, and script is used to write binary data to a file, so it needs to ensure that bytes > 127 are written unchanged. While I'm on, set the neutral locale also for arm64, where the same script is used to generate the kernel booti image. Reviewed by: emaste, imp Differential Revision: https://reviews.freebsd.org/D47488 (cherry picked from commit ba045ba49dedb068ba2f0e13fbb1c1a91fde8333) --- sys/conf/Makefile.arm | 39 ++++++++++++++++++++------------------- sys/conf/Makefile.arm64 | 1 + 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/sys/conf/Makefile.arm b/sys/conf/Makefile.arm index 5195191e0156..3f4248c85cd0 100644 --- a/sys/conf/Makefile.arm +++ b/sys/conf/Makefile.arm @@ -59,6 +59,7 @@ KERNVIRTADDR= 0xc0000000 # "ELF for the ARM architecture" for more info on the mapping symbols. SYSTEM_LD= \ ${SYSTEM_LD_BASECMD} \ + --Map=/usr2/Meloun/ld.map \ --defsym='text_start=kernbase + SIZEOF_HEADERS' \ -o ${.TARGET} ${SYSTEM_OBJS} vers.o; \ $(OBJCOPY) \ @@ -66,25 +67,6 @@ SYSTEM_LD= \ --strip-symbol='$$[adt]*' \ ${.TARGET} -# Generate the .bin (no elf headers) kernel as an extra build output. -# We must relink to generate the .bin kernel, because without headers the -# location of everything changes. We also strip the ARM marker symbols. -KERNEL_EXTRA+= ${KERNEL_KO}.bin -KERNEL_EXTRA_INSTALL+= ${KERNEL_KO}.bin - -${KERNEL_KO}.bin: ${SYSTEM_DEP} vers.o - @echo "linking ${.TARGET}" - @${SYSTEM_LD_BASECMD} \ - --defsym='text_start=kernbase' \ - -o ${.TARGET} ${SYSTEM_OBJS} vers.o - ${SIZE} ${.TARGET} - @${OBJCOPY} \ - --wildcard \ - --strip-symbol='$$[adt]*' \ - --output-target=binary \ - ${.TARGET} - @chmod 755 ${.TARGET} - # hack because genassym.c includes sys/bus.h which includes these. genassym.o: bus_if.h device_if.h @@ -105,3 +87,22 @@ CLEAN+= ${KERNEL_KO}.bin %RULES .include "$S/conf/kern.post.mk" + +# Generate the .bin (no elf headers) kernel +# Copy the kernel to directly executable format (the elf headers are +# stripped and a binary head blob with jump to kernel start address is +# prepended), saving the output in a temp file. +# We also strip arm "marker" symbols which are used only by elf toolchains. Read +# the symbols from kernel.full and pass them to arm_kernel_boothdr.awk, which +# generates a binary header blob that goes on the front of the stripped kernel. +# Cat the header blob and the temp file together to make the kernel.bin file. +${KERNEL_KO}.bin: ${FULLKERNEL} + @${OBJCOPY} --wildcard --strip-symbol='$$[adtx]*' \ + --output-target=binary ${FULLKERNEL} ${.TARGET}.temp + @{ ${NM} ${FULLKERNEL} | \ + LC_ALL=C \ + ${AWK} -f $S/tools/arm_kernel_boothdr.awk -v hdrtype=v7jump && \ + cat ${.TARGET}.temp; \ + } > ${.TARGET} + @rm ${.TARGET}.temp + @echo "created ${.TARGET} from ${.ALLSRC}" diff --git a/sys/conf/Makefile.arm64 b/sys/conf/Makefile.arm64 index 5e706549486a..69717e98a889 100644 --- a/sys/conf/Makefile.arm64 +++ b/sys/conf/Makefile.arm64 @@ -95,6 +95,7 @@ ${KERNEL_KO}.bin: ${FULLKERNEL} @${OBJCOPY} --wildcard --strip-symbol='$$[adtx]*' \ --output-target=binary ${FULLKERNEL} ${.TARGET}.temp @{ ${NM} ${FULLKERNEL} | \ + LC_ALL=C \ ${AWK} -f $S/tools/arm_kernel_boothdr.awk -v hdrtype=v8booti && \ cat ${.TARGET}.temp; \ } > ${.TARGET} From nobody Sat May 3 10:09:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqNmg3DSfz5v5BX; Sat, 03 May 2025 10:09: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqNmf6vtvz3gFQ; Sat, 03 May 2025 10:09:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746266947; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PYy1fLab1neWtyJXerE2HiFp9zX3HNYDsxf5DCqLG7M=; b=TIlxD+AJeuSilyJxvLn0qNBLHoDzLcflgV0pTOFwLrKAOqcL5JbZDlYNfBaVbebxfwj6Xn iUZiTpVmX6MsPGtTvevQl80EM1qtHpraH7oSq9RFY0BSaWnznmJ9jFyDT9vhHTDz3D1HTr ezqFh/3elYDCDpjpJaOG5g7N7zspcH2iGRxgs2CFlnVfCVPIWrq14qrQqUQ7mTqEheQRaF 3W2HyAigQ9mfBQefhOYlrK0uyiZsfAOHEe8F+3ctGnLO+SoJdMXwT6xutTRp5oLRq5exTM s9HIAHYaL7PVMxMTDk5+p4Ezrc8YDFHQwg/9LAK2KX4tvfi+Ys3lhPmFDIBsrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746266947; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PYy1fLab1neWtyJXerE2HiFp9zX3HNYDsxf5DCqLG7M=; b=XwOTlVnrdXTa009ADLDXZtlT2TblBPoJvrJVfy/mZd8GLL2J1Nw/2FEPpccMGygi5lJkiu IQXZJMgZavUafk6asZow3+Q44TOH0tVlVBFnDYuceAMXfiPW+HzyhjBZFWbyNSlhcZcvwN GQSF1W70ATGlm6ln9O82DYsYWJ3JnHko/oIU1uyTVy8RMrTDdct6gwjLGJcIWjPtljWLDl 6DNXG0CC652vB2ZwpjPdKyD0mZSIRituUU8t0QaITbhe8dtijJogVcEwcZjy2kUrXwzKCk xq409Nr5Er6h3o8S4ycRQ2OD0nZYccL5bDF6v5sib5zYnCE6y5ib6gLSouXbOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746266947; a=rsa-sha256; cv=none; b=RzhbYS4FTpHTtQkLBIXjnfiFGz66FQDTM7JRaf1SLR5CdFAX2RQBx15+IkIQui9ILw+a0d aWgX6vp9qfk/vAMgJYFiKfO5RsKtyAlHQwVpZMUKD/xT6LR266cTwY4s4czu0fUCFZ4KJ4 BSKTun6JXKNThHHlq3+n1xQKXuDoTtRLtfMvx9w1IKxK/MLGTNFJfPOIurhbSXK7UiJpe6 dVW0248eeSAsirGSZb2kzkaHTilse4ieYJxsmihX2q89WPjNwJe9rlSHEa8OLNWoBpYBnC Rk03kRvpH1w2cNCXN4CVw7XZmlwE/icesKEHvVdIuNVk1e2VE2odUyqpj1n+jA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqNmf6GT8zdyB; Sat, 03 May 2025 10:09:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543A96Am062135; Sat, 3 May 2025 10:09:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543A96D1062132; Sat, 3 May 2025 10:09:06 GMT (envelope-from git) Date: Sat, 3 May 2025 10:09:06 GMT Message-Id: <202505031009.543A96D1062132@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Michal Meloun Subject: git: 0aca1d4e7c76 - stable/14 - arm: remove accidentally added -Map switch to linker List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mmel X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0aca1d4e7c766fea577129fdae5796244998b7d6 Auto-Submitted: auto-generated The branch stable/14 has been updated by mmel: URL: https://cgit.FreeBSD.org/src/commit/?id=0aca1d4e7c766fea577129fdae5796244998b7d6 commit 0aca1d4e7c766fea577129fdae5796244998b7d6 Author: Michal Meloun AuthorDate: 2024-11-09 07:25:15 +0000 Commit: Michal Meloun CommitDate: 2025-05-03 08:12:31 +0000 arm: remove accidentally added -Map switch to linker Fixes: ba045ba49ded (cherry picked from commit 0283eebb4a54c7270f9ac03bb4ed2742cb959c28) --- sys/conf/Makefile.arm | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/conf/Makefile.arm b/sys/conf/Makefile.arm index 3f4248c85cd0..0e71f8b2f8df 100644 --- a/sys/conf/Makefile.arm +++ b/sys/conf/Makefile.arm @@ -59,7 +59,6 @@ KERNVIRTADDR= 0xc0000000 # "ELF for the ARM architecture" for more info on the mapping symbols. SYSTEM_LD= \ ${SYSTEM_LD_BASECMD} \ - --Map=/usr2/Meloun/ld.map \ --defsym='text_start=kernbase + SIZEOF_HEADERS' \ -o ${.TARGET} ${SYSTEM_OBJS} vers.o; \ $(OBJCOPY) \ From nobody Sat May 3 11:31:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqQbZ4cFpz5vBVd; Sat, 03 May 2025 11:31: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqQbZ49Mxz3j4t; Sat, 03 May 2025 11:31:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746271882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x0iMnFnao+Q5tVlk4VFEMKm4zpxU8j1mj19nQnUEiuw=; b=kWp6KzIw1f2Y/03AlQaHKuKSfvAImDek9+2oUWUPSiY4LKkj7a/5pbTwFHiaN+g4FWwc33 3zum0qTkvTwOs5owVCx0S1OIyMcuhtWAbDzACas796nxGWC0+DLbDkaC/2MzkuEAeUZYMg /JHfHE3ACATjyiNlHMo/X8HrBnrjPRUWPqhD8eWGhSSDGGB58grOyy4dFUNMM9L5W+ESoL ukKOR+1zBY6hGYKFg+2VI3oUJ1cHQV0//So82gpyDJPmyDz/OsA/Du8DT8rlPL9ATG57t0 y41MUGJwhoXJutGzSwZADR0C47A2NvfRQDcF3QLeY2kI5o5luXNbd5CGPdvpCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746271882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x0iMnFnao+Q5tVlk4VFEMKm4zpxU8j1mj19nQnUEiuw=; b=h9dHsL2d33QGY31t4cH20gS8t5H75o3UX7Vc0smP8F3Bugoe2w3Mbwzqk0xECCK1wnEtLa vt3ceboMkAJtS/pyURxoRXAlKOIGQdGGGv2N5FzyL5TYUTLJKaRFf1IBJN3C499KYszUm9 MguYGziDB1tcmdD7wr3/tp+P4fESMxVtaRwqnjlDKVrrUrryiV/sXoPI+gDhoXhk0DwnmG jJJdGRLF9o43F4bQqvLjJ2fUMpYtL+VS/b2O+S7071vJLHcB50mwBkxu87PuyxqIhaMP75 CdQjSY220X7hkR3XQ9Q0lEEyJwq0yV0UgIaPQHRe8FDwnu78jP1NYeLV7Jk+/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746271882; a=rsa-sha256; cv=none; b=lTDtVW3vYff2Uo10PgO8VhB0h3ptKdVADA3BIGG5gEHpIhmT6lSVQpEw3Qq2GcUlhcj94X 1omyB2d5TpUX6ZIVxbCczbDYQdf69ACdsJZSZMW+FZXTGdb2hwnwkEEMaL1UnepILRg+dW O4u7kqJYcv0Q9ongoeTsV+nXJ9WQ8FPo5PpgfUdvxJyky/iWjAwMEEHi5rT2ZlWfJpsgPk 3oHWJRG5Jc7BiZgS8yGE9Pu0BfgaQONjiw55T0VHJTMGv6Xl6VhnO40vd5PkdZtg5L3X0o 63ckHl2f6X9Z5BxjZcw33ucE7HOyjMEGtOYI84p8zr/wZti9Iu9gZbMxw8HKeQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqQbZ3mTkzhDK; Sat, 03 May 2025 11:31:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543BVMNQ024167; Sat, 3 May 2025 11:31:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543BVMic024164; Sat, 3 May 2025 11:31:22 GMT (envelope-from git) Date: Sat, 3 May 2025 11:31:22 GMT Message-Id: <202505031131.543BVMic024164@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: 45ff300000d1 - stable/14 - nvmecontrol(8): Fix two typos in command messages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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/14 X-Git-Reftype: branch X-Git-Commit: 45ff300000d1f3b36df2bc353b656ca048757398 Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=45ff300000d1f3b36df2bc353b656ca048757398 commit 45ff300000d1f3b36df2bc353b656ca048757398 Author: Gordon Bergling AuthorDate: 2025-04-26 10:18:31 +0000 Commit: Gordon Bergling CommitDate: 2025-05-03 11:29:54 +0000 nvmecontrol(8): Fix two typos in command messages Fix two typos in command messages: - s/identiy/identity/ (cherry picked from commit 52cc1708f5afdb3208d7797b87b3059a780d613b) --- sbin/nvmecontrol/identify.c | 2 +- sbin/nvmecontrol/ns.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/nvmecontrol/identify.c b/sbin/nvmecontrol/identify.c index 81aebad0e0d6..d02ae51d72ee 100644 --- a/sbin/nvmecontrol/identify.c +++ b/sbin/nvmecontrol/identify.c @@ -268,7 +268,7 @@ identify(const struct cmd *f, int argc, char *argv[]) static const struct opts identify_opts[] = { #define OPT(l, s, t, opt, addr, desc) { l, s, t, &opt.addr, desc } OPT("hex", 'x', arg_none, opt, hex, - "Print identiy information in hex"), + "Print identity information in hex"), OPT("verbose", 'v', arg_none, opt, verbose, "More verbosity: print entire identify table"), OPT("nsid", 'n', arg_uint32, opt, nsid, diff --git a/sbin/nvmecontrol/ns.c b/sbin/nvmecontrol/ns.c index 70392af19111..b1c2fb714ed1 100644 --- a/sbin/nvmecontrol/ns.c +++ b/sbin/nvmecontrol/ns.c @@ -334,7 +334,7 @@ static struct identify_options { static const struct opts identify_opts[] = { OPT("hex", 'x', arg_none, identify_opt, hex, - "Print identiy information in hex"), + "Print identity information in hex"), OPT("verbose", 'v', arg_none, identify_opt, verbose, "More verbosity: print entire identify table"), OPT("nsid", 'n', arg_uint32, identify_opt, nsid, From nobody Sat May 3 11:32:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqQdP5gw9z5vBHt; Sat, 03 May 2025 11:32: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqQdP4yR1z3l2x; Sat, 03 May 2025 11:32:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746271977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=spGsHEBr5ObwLne8yIc72dWAlrcrUPixbDq7IB5wmX0=; b=UZiID8+GHm8iCmDrbwredha1EosYxJpIpXVXCTMowIruosCG4LFHOhv7UXfTGcdMxWaBFT K+w8mZHw/SBc+1Ks91sb5wOcdkOeft/5HpmOqO9/igIi3dPNDH8pZ861a0GPjPRP+Vdg68 hkOVskjJIkc90frTSLHgp3pXQ0OVwhk6Ej/7807b5HA+f3MmlX/W9gS8gYj2FwEkrzi5iO dHIvQkCgPWnCLBBjW5MXVVa/ByfOZ2/ajDtRzC+oaLMS0QuEKjyE6rIa6fHJGnpTaeQdaW +weFQ3mxUP/ElZuSvnkgw3/mHjJdX5p4tlsQvnT2L2h++T1XFmwxAewyI8KohA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746271977; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=spGsHEBr5ObwLne8yIc72dWAlrcrUPixbDq7IB5wmX0=; b=WUSd6mfhHRVStevM2If0guLljQd/vAI8q2ZCi1lzlXlLm1qdSw8hCndJXAKc//MaQXqHeE CZG4vbexDeQvfifFEjnbFj+taU0UZc1NbHY+Trgchsjiewvjx1Q26+QagCW0fAYFHFxzdN 6eWvLiEZyWj9AzNVpad17Src+Rg9yePuXyvAorGdAelUDpNXkFbozU1lhJk/f1+0a+L7dB deGWmr5kzFZEv1vgsETqOabUfeK33FNwdc2i25HD3qg5mGV36z58HD4dKpi9eyKSEcff+x 1uh0grGqkebe/c3Eg3Yta77Jo3oPPeHhaUiQIHh2rjpFM8FYxql6b6wEpQuItg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746271977; a=rsa-sha256; cv=none; b=ZjD0PjrIS0sVJBZVFafDuIsMhOeZcdkTMgAfMfRC2W+du9dQQZdYFUlKw3PEiVKYRZnjYU fJiZtl8qLzrynv+qbM8F4DU9+kL0pSLPXMIzL8ti+7NP1xYkwLhIz5bbn6hrdmHzmr/M2+ iLW7VRFeBP9CNOGG1IRg4VDj+Wn/fW5TpnkJeijpKfFhvkBCtvOfqY969mlLK43eF+CnyM ID4YDW2JkFR9LXFqYVyF/CWfbUbhg5JVno55G4kZWpm+Udka1+IJLeAM1ltTVD597GKGPN yoST+0XEz5XNAcYLyRhr+s+361/badOj/QjQaY2aDMuDjMTefuzmQ3EvHANH5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqQdP4R8BzhYD; Sat, 03 May 2025 11:32:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543BWvkv029953; Sat, 3 May 2025 11:32:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543BWvgw029950; Sat, 3 May 2025 11:32:57 GMT (envelope-from git) Date: Sat, 3 May 2025 11:32:57 GMT Message-Id: <202505031132.543BWvgw029950@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: ee75c4d77a80 - stable/13 - nvmecontrol(8): Fix two typos in command messages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: ee75c4d77a80d7299d50cf6413dafeaccd0d1ac5 Auto-Submitted: auto-generated The branch stable/13 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=ee75c4d77a80d7299d50cf6413dafeaccd0d1ac5 commit ee75c4d77a80d7299d50cf6413dafeaccd0d1ac5 Author: Gordon Bergling AuthorDate: 2025-04-26 10:18:31 +0000 Commit: Gordon Bergling CommitDate: 2025-05-03 11:31:31 +0000 nvmecontrol(8): Fix two typos in command messages Fix two typos in command messages: - s/identiy/identity/ (cherry picked from commit 52cc1708f5afdb3208d7797b87b3059a780d613b) --- sbin/nvmecontrol/identify.c | 2 +- sbin/nvmecontrol/ns.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sbin/nvmecontrol/identify.c b/sbin/nvmecontrol/identify.c index 1ecb7a2360b9..394b37587fe2 100644 --- a/sbin/nvmecontrol/identify.c +++ b/sbin/nvmecontrol/identify.c @@ -269,7 +269,7 @@ identify(const struct cmd *f, int argc, char *argv[]) static const struct opts identify_opts[] = { #define OPT(l, s, t, opt, addr, desc) { l, s, t, &opt.addr, desc } OPT("hex", 'x', arg_none, opt, hex, - "Print identiy information in hex"), + "Print identity information in hex"), OPT("verbose", 'v', arg_none, opt, verbose, "More verbosity: print entire identify table"), OPT("nsid", 'n', arg_uint32, opt, nsid, diff --git a/sbin/nvmecontrol/ns.c b/sbin/nvmecontrol/ns.c index 0f73c9f6c3cc..4fee708853b5 100644 --- a/sbin/nvmecontrol/ns.c +++ b/sbin/nvmecontrol/ns.c @@ -334,7 +334,7 @@ static struct identify_options { static const struct opts identify_opts[] = { OPT("hex", 'x', arg_none, identify_opt, hex, - "Print identiy information in hex"), + "Print identity information in hex"), OPT("verbose", 'v', arg_none, identify_opt, verbose, "More verbosity: print entire identify table"), OPT("nsid", 'n', arg_uint32, identify_opt, nsid, From nobody Sat May 3 15:19:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgN10tcz5vSqY; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgN0BKNz3Kdb; Sat, 03 May 2025 15:20:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285600; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M46ibDhaF2jkGuXfKOUq2WRlOxDJe3fWT792b/1Ff9g=; b=ePC38wxIMHP0jelO0uyrp8/SGqNA6typIdc3TzFDKGtU4ekvjLNlwVaQjC+cPnUScAA4oC bSOfs8JrZRZg/2RPo0Wl8NbVYsppuZo50KrWbCZcLJrkIBBqMBfpnqCEM5/c0XHnmcUVf7 ikrIGKzFny0dOFn6byT9ukyZx/GJO9v3Hd0kPRaT4h5cMzbMVJd95vkrPGxrkxHpqaP+KM cXOgdfFOwFbC5oFLXmjhbLupK2uyf/pAnc7Xc5Ubf5AOUENwHH1FaG1fEtIfWC9Bv4ZigR V/ng5lCfIw0KeHIxYHdV9VOz1WSWxpuDBkCl19p1dRu6V8qcePX8YtMK0z45LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285600; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=M46ibDhaF2jkGuXfKOUq2WRlOxDJe3fWT792b/1Ff9g=; b=S50K4qRGhuc3UJCykL9YF1A2aA33YRuqupDLgh7cYoCu2eKiGIwkTdkausVzmUqVYV+38a e2Ix3LzejB0I0nUPjTxj6J/nDr8/YJY/csfwDrdXHvA6eDcA9QwPOHhuoYMib4uOI0xtwq g8EEvQQIXd9CoI9Z/uH1nS8iDLbUg7BYrkmDIpMqkdx9Ru8N3fZ4RDrbb9oZSLhTrMiTkj 4h09BpXyViNUr49q920y4/f1/scMs0HFqo6a8zcMZcg/++2wUKgz3pLDnyrGRc/NsMHOFQ +67RJ7oDBtL0VAVSn0U8AwIuP7tLzKoDEs7jM4mnH62VngysQHTM1NRIytK5aA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285600; a=rsa-sha256; cv=none; b=usuZ7hJeJKeRF4D7hZgn10AKBkQf71AP2bX7q9YFekSEVAaXLAZ6o/inKbFxQ382ki4628 RmKo5mBcsi8bgIRLpJgS7fd41KOjRgexejaqzIaekSuKkhSU3yZ30b4IuCAQqjgXpA2cPr B/QaCbYaPky3TeF/m50wWBhAHjNeqbcRv7RGWeG8EXlnMtBB1HSc0z1XxhWEpR/MutZS4x Mo3Fz5ixzVJanuE/d23sJMoOKzO8QtMXGnipHq0FuQJLw8qwi7wSrcA6x4AsVCPnnwVqbG pAj68XyvuT4KlvlxE8QE+0ZyHMzBVVeK0Xl83+Hk0Ao50Z6FYmAZywWfZlgpug== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgM6fsrznPh; Sat, 03 May 2025 15:19:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FJxoL045869; Sat, 3 May 2025 15:19:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FJxVE045866; Sat, 3 May 2025 15:19:59 GMT (envelope-from git) Date: Sat, 3 May 2025 15:19:59 GMT Message-Id: <202505031519.543FJxVE045866@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: 4c989e2aba99 - stable/14 - kern_sig.c: extract the first stop handling into a helper List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4c989e2aba9956bac2a70438eb7a4116bc75c27d Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4c989e2aba9956bac2a70438eb7a4116bc75c27d commit 4c989e2aba9956bac2a70438eb7a4116bc75c27d Author: Konstantin Belousov AuthorDate: 2025-04-17 11:44:51 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 kern_sig.c: extract the first stop handling into a helper (cherry picked from commit 4048ccc6ae374c015c31f7b35221d5da8fe7d63f) --- sys/kern/kern_sig.c | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 8e5c9f247b57..a81ae86965f3 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -117,6 +117,8 @@ static int filt_signal(struct knote *kn, long hint); static struct thread *sigtd(struct proc *p, int sig, bool fast_sigblock); static void sigqueue_start(void); static void sigfastblock_setpend(struct thread *td, bool resched); +static void sig_handle_first_stop(struct thread *td, struct proc *p, + int sig, bool ext); static uma_zone_t ksiginfo_zone = NULL; const struct filterops sig_filtops = { @@ -2830,6 +2832,29 @@ sig_suspend_threads(struct thread *td, struct proc *p) return (wakeup_swapper); } +static void +sig_handle_first_stop(struct thread *td, struct proc *p, int sig, bool ext) +{ + if ((td->td_dbgflags & TDB_FSTP) == 0 && + ((p->p_flag2 & P2_PTRACE_FSTP) != 0 || + p->p_xthread != NULL)) + return; + + p->p_xsig = sig; + p->p_xthread = td; + + /* + * If we are on sleepqueue already, let sleepqueue + * code decide if it needs to go sleep after attach. + */ + if (ext || td->td_wchan == NULL) + td->td_dbgflags &= ~TDB_FSTP; + + p->p_flag2 &= ~P2_PTRACE_FSTP; + p->p_flag |= P_STOPPED_SIG | P_STOPPED_TRACE; + sig_suspend_threads(td, p); +} + /* * Stop the process for an event deemed interesting to the debugger. If si is * non-NULL, this is a signal exchange; the new signal requested by the @@ -2890,24 +2915,8 @@ ptracestop(struct thread *td, int sig, ksiginfo_t *si) * already set p_xthread, the current thread will get * a chance to report itself upon the next iteration. */ - if ((td->td_dbgflags & TDB_FSTP) != 0 || - ((p->p_flag2 & P2_PTRACE_FSTP) == 0 && - p->p_xthread == NULL)) { - p->p_xsig = sig; - p->p_xthread = td; + sig_handle_first_stop(td, p, sig, false); - /* - * If we are on sleepqueue already, - * let sleepqueue code decide if it - * needs to go sleep after attach. - */ - if (td->td_wchan == NULL) - td->td_dbgflags &= ~TDB_FSTP; - - p->p_flag2 &= ~P2_PTRACE_FSTP; - p->p_flag |= P_STOPPED_SIG | P_STOPPED_TRACE; - sig_suspend_threads(td, p); - } if ((td->td_dbgflags & TDB_STOPATFORK) != 0) { td->td_dbgflags &= ~TDB_STOPATFORK; } From nobody Sat May 3 15:20:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgP1KsRz5vSnd; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgP0Cpcz3Kdf; Sat, 03 May 2025 15:20:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g+DcexTMq1U2D/MSZM/fyPTIMoSk9COITbuWj6QMxaA=; b=ZqCSh11qgqYkb9C3vKNsKsq7Xj8eYv4uYRXMRpOMnZBZVBuc+1wgPHZfIIDpB1K16o4PbA Nv2D9KkIisEe7sWR5EDoY1NvWtPUUspJL5JPAr+BAiqxjX7hv8ybe+RVEfGwTRXwp7PQRj 2brh2uy9hOJ+cPR/xHTh9vu+G26ojVqA5LpxLoOc8vruwqorjaCqyqb1L7YYcwur4ASHTC jExpFt8453kr1TLckcomgq9HnhRJ3GFET/RBKilBd7VGNl/P7Nd82FZK6h9amulkY2lLwk Qwmko5hRnd3XjSXCe60GGxgoLD7MJszBQ+vn6eUFmK30BY1MY64j7VO4mr8k3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g+DcexTMq1U2D/MSZM/fyPTIMoSk9COITbuWj6QMxaA=; b=NWiV5G+iNuRQxRBixxoa853tnrZIp3q86d1IQmQEZi4qtAkm7A2wqfDLoyB4cTJbzOY5/X VoRqLWKLtCIAwU6MHiR726A3iN9oKsb5cXGbh36Rtx+aLJVs9uCXxXqM0P3pT9oZt5ZGbI EbxgRyEJeO7arN4pXXEnuCkkexYc9Y2bjRi9dkotSahUGxB+QDE5Eq1rajazYYCqr9jnKz TyzWG17qLz3CSH7LJxlTdCjJc1jdXkiAZewEiWR8XQtxSVp4tf1pg4gdd5OfuNEMIqar0j nEPwjknEe0dHYecdnRoyfK5Pw66sJ/XCCr7p+ETxzTCOOSXqYRr+M+MYYeqdbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285601; a=rsa-sha256; cv=none; b=P/u867NKDlX/GKuvzIs80r+PUfSzZ2fVm5nhZ2KORViBeMtUzpB7r6LtyIm/v9fdekHOVx Ctk1HfZyYEtRWMo+2HEceiAap/RuqMoJTL9Ds0b18Q7rhjbWvjGJn3QA7gwDAv4oxvoeJD DAmIS2qMNeuc6AFZMFCerN8gtrDPqHe0/GQlZWCy3Tr/+6Qr6g4cpU95bRphx4jZABFbIj sNzHhkKQXsJrCE9gQ+Uqj85lKqu+hwWKwGDjP+kr2BuI91tXYmtiHXmpKbPKrBxuU3bx5B k/jVaT1nOTuAcywiaAIEpIQmRIvhqByeL/RrSg7GlOU6TqKswFVRwli8+lJeLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgN6t0Tzp50; Sat, 03 May 2025 15:20:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK0SM047700; Sat, 3 May 2025 15:20:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK0rf047695; Sat, 3 May 2025 15:20:00 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:00 GMT Message-Id: <202505031520.543FK0rf047695@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: 18e0f9ec54e8 - stable/14 - PT_ATTACH: do not interrupt interruptible sleeps List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 18e0f9ec54e83fae684d51fe08f8b2b7390da006 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=18e0f9ec54e83fae684d51fe08f8b2b7390da006 commit 18e0f9ec54e83fae684d51fe08f8b2b7390da006 Author: Konstantin Belousov AuthorDate: 2025-04-16 00:09:44 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 PT_ATTACH: do not interrupt interruptible sleeps (cherry picked from commit ecc662c749b11434c63a0d3578fc40df6b4798ec) --- sys/kern/kern_sig.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index a81ae86965f3..4df052629828 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -2361,6 +2361,15 @@ tdsendsignal(struct proc *p, struct thread *td, int sig, ksiginfo_t *ksi) if (prop & SIGPROP_CONT) sigqueue_delete_stopmask_proc(p); else if (prop & SIGPROP_STOP) { + if ((p->p_flag & P_TRACED) != 0 && + (p->p_flag2 & P2_PTRACE_FSTP) != 0) { + td->td_dbgflags |= TDB_FSTP; + PROC_SLOCK(p); + sig_handle_first_stop(td, p, sig, true); + PROC_SUNLOCK(p); + return (0); + } + /* * If sending a tty stop signal to a member of an orphaned * process group, discard the signal here if the action @@ -3355,7 +3364,8 @@ issignal(struct thread *td) } } - if ((p->p_flag & (P_TRACED | P_PPTRACE)) == P_TRACED && + if (false && + (p->p_flag & (P_TRACED | P_PPTRACE)) == P_TRACED && (p->p_flag2 & P2_PTRACE_FSTP) != 0 && SIGISMEMBER(sigpending, SIGSTOP)) { /* From nobody Sat May 3 15:20:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgQ33QNz5vSnh; Sat, 03 May 2025 15: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgQ0jtPz3Kg6; Sat, 03 May 2025 15: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=1746285602; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QSLZ91RbnTZFPwhMYLaQ43F8SsdX52KJ7Qf2VB7uPmU=; b=g0FsMaywYIrn/nwRJ4aKNtnGQmtL7xc082Z76PVAa6Ed9AjX/zjyva6ptn3Q204l/OMOEi t12GGgyhe3MdRQbVLriEXE78xFKmLgULXF2jhaRCtb673VoUw3JSUtYjxkUXnot0RLHxsX 0Z/RERHlIq1psv0RJ7D4COkCwWo38p9v/OPtnRJGSD4L8bFBuIXPRM5WKNKmGczfz9G1+i Xo4JKjBvZg1BBuBb88J9YbN4CQ26F2imQNVQGq3kEP1ifE9H6sLGy9TCYHQf4VF0UdJiwc AKdZnT5Z/6Dbok2Olv4WqErqRlj3U6EQRerzgeFDG2/poJGZHHJPbwYESOsOAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285602; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QSLZ91RbnTZFPwhMYLaQ43F8SsdX52KJ7Qf2VB7uPmU=; b=t2U7b+DUtAa+EfmRCoYqqLesZnP6tlSRdPCgBqDMdI8cIiL73Crj+QoTpvEcLURWpDOczb ww4nTram+ohQNhtd3g2MKOQOy5nmc7gQFgqYt0zTwl1jUfuKisQHRYtzN2RCkC2kky5OLi UrCxanth0uHgKSjuGSSsZvDUdGMDzyaAbhzHICryO5UM/iyjThUR7HHiBg26KRXCCNIxZe DXoRK/cszP5rwmqKr1ubMXL1o8Hvk5YkrPP9aLmVxYM24AvKIgqLZAsqBA/gAgah3DNPmL gn8XfIJTewXWxsXXMtT/koIGSNJSoxLKHykrQZjDbkHdjL2zg6zWQGFuPU+4Kg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285602; a=rsa-sha256; cv=none; b=gXlOvUIRG1Z1Ib9G8eSGWIoYaVw4mAHzxa9ZUtuNfYp/vNGcG2aqyYohOe8hSv8jd0OT2M Wtv0ekbOx/RMWav4fRONruS9uK9B6FURQ9bCR0EIkalcmCxdH+MHArLyaoWsw3+T0hs/h+ 7u47UZ1T5+4pyr1PNJYtoGcnhfDn8m9d4Quw6lsNHluvFvH/TDzEhsEhqKQ4Reh4kbxT+4 f6ons2hZ7fs2NiwCSRZTIwOsAI+xbo7uzeKUAfP9KdvUkJuIFijE2Dg+FcuwxcC9Tkcel5 9i2b8PtC7Hk8E1keV7ddbDNWn4LKJQQ5GwQzwyMx/Zspf9oAENRolmtXzrBSnQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgQ0FcHzp51; Sat, 03 May 2025 15:20:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK1mF047966; Sat, 3 May 2025 15:20:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK1Do047961; Sat, 3 May 2025 15:20:01 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:01 GMT Message-Id: <202505031520.543FK1Do047961@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: 2b11b13b04bd - stable/14 - kern_sig.c: add chicken bit for old way of SIGSTOP handling on PT_ATTACH List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2b11b13b04bd4b5a0519850d35b334fe420502ca Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2b11b13b04bd4b5a0519850d35b334fe420502ca commit 2b11b13b04bd4b5a0519850d35b334fe420502ca Author: Konstantin Belousov AuthorDate: 2025-04-17 11:51:42 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 kern_sig.c: add chicken bit for old way of SIGSTOP handling on PT_ATTACH (cherry picked from commit a6b7d5cddacd4aa14ee058195eedfe207a69029e) --- sys/kern/kern_sig.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 4df052629828..06da39b8cb33 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -176,6 +176,11 @@ SYSCTL_BOOL(_kern, OID_AUTO, sig_discard_ign, CTLFLAG_RWTUN, "Discard ignored signals on delivery, otherwise queue them to " "the target queue"); +static bool pt_attach_transparent = true; +SYSCTL_BOOL(_debug, OID_AUTO, ptrace_attach_transparent, CTLFLAG_RWTUN, + &pt_attach_transparent, 0, + "Hide wakes from PT_ATTACH on interruptible sleeps"); + SYSINIT(signal, SI_SUB_P1003_1B, SI_ORDER_FIRST+3, sigqueue_start, NULL); /* @@ -2361,7 +2366,8 @@ tdsendsignal(struct proc *p, struct thread *td, int sig, ksiginfo_t *ksi) if (prop & SIGPROP_CONT) sigqueue_delete_stopmask_proc(p); else if (prop & SIGPROP_STOP) { - if ((p->p_flag & P_TRACED) != 0 && + if (pt_attach_transparent && + (p->p_flag & P_TRACED) != 0 && (p->p_flag2 & P2_PTRACE_FSTP) != 0) { td->td_dbgflags |= TDB_FSTP; PROC_SLOCK(p); @@ -3364,7 +3370,7 @@ issignal(struct thread *td) } } - if (false && + if (!pt_attach_transparent && (p->p_flag & (P_TRACED | P_PPTRACE)) == P_TRACED && (p->p_flag2 & P2_PTRACE_FSTP) != 0 && SIGISMEMBER(sigpending, SIGSTOP)) { From nobody Sat May 3 15:20:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgS0lnLz5vTB7; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgR2Jhyz3KxH; Sat, 03 May 2025 15:20:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285603; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=56nVL4Qx0TNqoZWqJSBtEYj0TU47OpLwPCppHFF365k=; b=awBYqx385Zsq3R91JAlqH/Z+Vc59s+OaMM+tKsIfKz1Dtm9/JrbJ4GVvZnYQEF9WT66YYv wAN1Wfe54WnWaKrhYm5rSNkfFKngiJ44v/e0WJ16S0u5ayICAD7gU0IUFVvbL8TWsjJO8d xM37ADT3glR2ot6hQ3K6YinWjiCvSbbKDsGLOodonHq3lWawDdOL9IYDls4xtMMrUCzg7S 0dwqqINx8cVyMZOY6WFDCaAj6gncGhPn4Ref0EhQ6fu2BLr56G35dR6LEioJd0JWJ0lahp LNj/2yQUITMlkmpDLWwK2OczmPgbQ4MJxrkEhgr90dR++2BeYhhEHKrJi/bvtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285603; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=56nVL4Qx0TNqoZWqJSBtEYj0TU47OpLwPCppHFF365k=; b=BLZhMJoPh3m5mmwSgKopD6Cv6WBYK3XS01s6VO68dYuYA6Zy5sq+JN0qnut1L9F+19k6dy SnLzG6SLeatZoqHqbehUhRJqz8H1+YlbE/pT05eRxjYs03VPysbrSQq9RkgNqZ01m+ihoQ BFtcrVEggw7iFyvO28Ra/GLZQhAgC7VC+0XJXYWa04Y+DkPW4UvGdUHBFheRN+fStpIDz1 Uy69RLEJpoxKZdq+4qjCkvnVpJwcqKdepsbzlmHeVXNvgzLwonUvJn64wQdaUFlOcKgmPF egU3igv/f3/JeiY9CHPZp6v1EOnAbyqzc9UyjQeybpVvKwe9MLqEKS55571CCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285603; a=rsa-sha256; cv=none; b=F8cLbfGFI5LQyznpiWKT0/gk27TlhsRQh5ZXXKFvg20KOtMIqh5zOxPwnKibmDSrttGf13 NsLYAobGCbiGxZNLS3c/Lgrsvki66LOukZZcwoEklCMFobo3cM1tQG7wds95Cs3fS79xl8 AqYe9RYpxroj8kJeC7UVekbCdeX7tBqgRfvgUTXe2Po0VYMyvHzcBuJc4ARr4obVVHhecF pc8r7OXJdZwk5AZ8rZdrheSr16sGkQf/s7/zBxP2OsDWVfgV7Qs2cID504mExaFEDcBF0M AB6oItulklum84oP7rz6ROmDNmvpfYUa2cDgoIYF+Yzo7lSraIqACEOWEYXeJw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgR15Rzzp52; Sat, 03 May 2025 15:20:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK3Vh048234; Sat, 3 May 2025 15:20:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK3xd048230; Sat, 3 May 2025 15:20:03 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:03 GMT Message-Id: <202505031520.543FK3xd048230@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: a86e21e2caaa - stable/14 - ptrace(): p_xthread could be NULL for P_STOPPED_TRACE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a86e21e2caaa9796308282a235bdb42bd3c71292 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a86e21e2caaa9796308282a235bdb42bd3c71292 commit a86e21e2caaa9796308282a235bdb42bd3c71292 Author: Konstantin Belousov AuthorDate: 2025-04-20 23:19:35 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 ptrace(): p_xthread could be NULL for P_STOPPED_TRACE (cherry picked from commit b63281884e0e1530de999723532f2d536cb32477) --- sys/kern/sys_process.c | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 497084f83563..d4c0737a4769 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -936,12 +936,10 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) } if (tid == 0) { - if ((p->p_flag & P_STOPPED_TRACE) != 0) { - KASSERT(p->p_xthread != NULL, ("NULL p_xthread")); + if ((p->p_flag & P_STOPPED_TRACE) != 0) td2 = p->p_xthread; - } else { + if (td2 == NULL) td2 = FIRST_THREAD_IN_PROC(p); - } tid = td2->td_tid; } @@ -1328,16 +1326,19 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) /* * Clear the pending event for the thread that just - * reported its event (p_xthread). This may not be - * the thread passed to PT_CONTINUE, PT_STEP, etc. if - * the debugger is resuming a different thread. + * reported its event (p_xthread), if any. This may + * not be the thread passed to PT_CONTINUE, PT_STEP, + * etc. if the debugger is resuming a different + * thread. There might be no reporting thread if + * the process was just attached. * * Deliver any pending signal via the reporting thread. */ - MPASS(p->p_xthread != NULL); - p->p_xthread->td_dbgflags &= ~TDB_XSIG; - p->p_xthread->td_xsig = data; - p->p_xthread = NULL; + if (p->p_xthread != NULL) { + p->p_xthread->td_dbgflags &= ~TDB_XSIG; + p->p_xthread->td_xsig = data; + p->p_xthread = NULL; + } p->p_xsig = data; /* From nobody Sat May 3 15:20:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgT4vzKz5vSj4; Sat, 03 May 2025 15:20:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgT2n9zz3Ksc; Sat, 03 May 2025 15:20:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285605; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hEi9DZnrU+pKhXptNPIrkUHf+eYVp6RomE14i7BcVAo=; b=HZAfGcyvXAKBo8iuPUe1t08cpK0UfMTbsQwwgtomQN9vyGN8mKzdDrs4DjFlYYTMhcqt3f PYpmjAOmbxNqqf88koAKHKBYFd6ieXh5ZyNj8+abqhTQD1vu5LVZeuDskE1/cEn+ozsYqu PEl5ij2bq/BCs7cmuEb7BjR7BGwFYyoGe3E01Ql+nuGCCfRdzu6A4UzKqeGTgr+rVauzZc 75hTtFfuZPcHSPKNqO9LsOEUS+vDRnai9JyqZicasRgJWmhvv4CB8Bku9JMeijgh9aRmMy WeTYvXtyZ1ARh/gQSzdNYgdHCuHcsTAdBqR+R4Vf6YcOCk/WCLS9pVQM63V4NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285605; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hEi9DZnrU+pKhXptNPIrkUHf+eYVp6RomE14i7BcVAo=; b=ebMJhxIeicfH3dWqUT8NkC/ayhkeVUy6vfX4Dqzwy8LVIIglOVCQxBBt217k+Rh3sRu0On xxqfsFIQRKypaRNeKIAldu1zzUdEfoeP8IQhVr9y13rOviRKKk1soppOm8n5mCfczO+rrv IZnS4oetQhNFIJUtb0A960dOxTUwCMPeJG/PYqShMFL4ZwBiln34Ojizb8Ck55uj9i+90/ 2P3O9CGs/u68Fvh7Bzm5CartJnR+NE1gHKLq7mbjPPqsU5EchNt+LitkgudZU7OX/MSPNf Qzd0TtO7l8WM4KsGByiod2vmkAc+Sr/OOdryYM1kohPNRItnDzItLXQNZDC55g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285605; a=rsa-sha256; cv=none; b=wDJcF8IGKPkDzhFH3qg6Cl1Fi/0Pe0HaqATFJnjN7WLanJDMv6/+KsoBMImoogwF0gESc+ lKZLUdL728a2vA9+3TUniIpoEKh+KaPyPMYcqFGc10FXuXtRqCpZZUOOPJVsV/MTMcCInZ /RB9gWC4383D5AbuBA2Dqa4o5VBsHloFZYoi2hNfcUv+YVzHMqo6r40QuNc6/zK/a718CX I8NOiMG8qhEuMsfpCTuowbaowy6dkFhMcWzD1EscQJ13ETzQFjgm51k+IrCODh1gJdui9o o7FRkZQIXYutVe+snwmTeMl5lKAC1jvbFc0gasyc7TzEshCOojQM3DwV6oBOPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgT267wzp2n; Sat, 03 May 2025 15:20:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK5pG048771; Sat, 3 May 2025 15:20:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK5k6048766; Sat, 3 May 2025 15:20:05 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:05 GMT Message-Id: <202505031520.543FK5k6048766@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: f0ba6535d446 - stable/14 - sig_handle_first_stop(): notify debugger List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f0ba6535d446ed79b628e3cd27a971131752ee44 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=f0ba6535d446ed79b628e3cd27a971131752ee44 commit f0ba6535d446ed79b628e3cd27a971131752ee44 Author: Konstantin Belousov AuthorDate: 2025-04-23 16:51:12 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 sig_handle_first_stop(): notify debugger (cherry picked from commit 2f87445747430b4ca2e1d344550d9befb54226e7) (cherry picked from commit 4f32b298c679271243855083d20306563f815f17) --- sys/kern/kern_sig.c | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 0f87b8db9244..84bac9fc77ed 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -110,7 +110,7 @@ static int issignal(struct thread *td); static void reschedule_signals(struct proc *p, sigset_t block, int flags); static int sigprop(int sig); static void tdsigwakeup(struct thread *, int, sig_t, int); -static int sig_suspend_threads(struct thread *, struct proc *); +static int sig_suspend_threads(struct thread *, struct proc *, bool *); static int filt_sigattach(struct knote *kn); static void filt_sigdetach(struct knote *kn); static int filt_signal(struct knote *kn, long hint); @@ -2534,12 +2534,14 @@ tdsendsignal(struct proc *p, struct thread *td, int sig, ksiginfo_t *ksi) MPASS(action == SIG_DFL); if (prop & SIGPROP_STOP) { + bool res; + if (p->p_flag & (P_PPWAIT|P_WEXIT)) goto out; p->p_flag |= P_STOPPED_SIG; p->p_xsig = sig; PROC_SLOCK(p); - wakeup_swapper = sig_suspend_threads(td, p); + wakeup_swapper = sig_suspend_threads(td, p, &res); if (p->p_numthreads == p->p_suspcount) { /* * only thread sending signal to another @@ -2804,16 +2806,26 @@ ptrace_remotereq(struct thread *td, int flag) wakeup(p); } +/* + * Suspend threads of the process p, either by directly setting the + * inhibitor for the thread sleeping interruptibly, or by making the + * thread suspend at the userspace boundary by scheduling a suspend AST. + * + * *resp returns true if some threads were suspended directly from the + * sleeping state, and false if all threads are forced to process AST. + */ static int -sig_suspend_threads(struct thread *td, struct proc *p) +sig_suspend_threads(struct thread *td, struct proc *p, bool *resp) { struct thread *td2; int wakeup_swapper; + bool res; PROC_LOCK_ASSERT(p, MA_OWNED); PROC_SLOCK_ASSERT(p, MA_OWNED); wakeup_swapper = 0; + res = false; FOREACH_THREAD_IN_PROC(p, td2) { thread_lock(td2); ast_sched_locked(td2, TDA_SUSPEND); @@ -2833,8 +2845,10 @@ sig_suspend_threads(struct thread *td, struct proc *p) TD_SBDRY_ERRNO(td2)); continue; } - } else if (!TD_IS_SUSPENDED(td2)) + } else if (!TD_IS_SUSPENDED(td2)) { thread_suspend_one(td2); + res = true; + } } else if (!TD_IS_SUSPENDED(td2)) { #ifdef SMP if (TD_IS_RUNNING(td2) && td2 != td) @@ -2843,12 +2857,15 @@ sig_suspend_threads(struct thread *td, struct proc *p) } thread_unlock(td2); } + *resp = res; return (wakeup_swapper); } static void sig_handle_first_stop(struct thread *td, struct proc *p, int sig) { + bool res; + if (td != NULL && (td->td_dbgflags & TDB_FSTP) == 0 && ((p->p_flag2 & P2_PTRACE_FSTP) != 0 || p->p_xthread != NULL)) return; @@ -2865,7 +2882,9 @@ sig_handle_first_stop(struct thread *td, struct proc *p, int sig) p->p_flag2 &= ~P2_PTRACE_FSTP; p->p_flag |= P_STOPPED_SIG | P_STOPPED_TRACE; - sig_suspend_threads(td, p); + sig_suspend_threads(td, p, &res); + if (res && td == NULL) + thread_stopped(p); } /* @@ -3267,6 +3286,8 @@ sigprocess(struct thread *td, int sig) */ prop = sigprop(sig); if (prop & SIGPROP_STOP) { + bool res; + mtx_unlock(&ps->ps_mtx); if ((p->p_flag & (P_TRACED | P_WEXIT | P_SINGLE_EXIT)) != 0 || ((p->p_pgrp-> @@ -3288,7 +3309,7 @@ sigprocess(struct thread *td, int sig) p->p_flag |= P_STOPPED_SIG; p->p_xsig = sig; PROC_SLOCK(p); - sig_suspend_threads(td, p); + sig_suspend_threads(td, p, &res); thread_suspend_switch(td, p); PROC_SUNLOCK(p); mtx_lock(&ps->ps_mtx); From nobody Sat May 3 15:20:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgS6Xw9z5vSqb; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgS25Fjz3L0g; Sat, 03 May 2025 15:20:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285604; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lPZBJDE5AKxB216WzkSAaGUXwXfHY/SSpyJZ8O6gUOI=; b=xwOsCChPzbrJuExwXxMDtu67MMXyFsUd3udxs/zkF5Tikb0x/H5YxngzcrYk7kgmKeyaGE /vDJcExKFhqxjYF0gDLXQULMhMK+xNWlT5qZRM6KQn6b1ezdWygq6wbA6go+RA/UcWIfo3 pGRQbo+9ma2L3HBLCJFLR2T/crpQE6rfnh+hNFd3OLxqg5a1rt4XuCQbNwpdLA3pvnDskI mxFcojLkjZfzfEelAolu8qxSg1S4hwQxhixkjK3po8BD5a8tNIG3uiA3I/EZhxkkwhH/Ja IoaD3NpBCdPs/2p2pZbqX/gOqHHObapdga49b3cQNJumK/Emwf3cMe/c9q7aeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285604; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lPZBJDE5AKxB216WzkSAaGUXwXfHY/SSpyJZ8O6gUOI=; b=JkHAjGg/A0fW7cuukwZEG9IkQicyfyb6ii8QU46CZEs8XmWEgf1tYdGMej0PAPOn+HSLzm pqH/3wFX99vzB4i27hz7x4NSmZ7Ms7VZ132zI7zp1JK8wkMu7xb/+dyWg9ZErlWXKw6UBC WaVS60Sh8IgwTVVvtv799lc8ckBq//MBQ2Zhy6aNlbGaM832mjoIEh7oIK++Dm1oi8gODh 7hn3JMtuT17E9KEuzgZPMVf9YSxIdf9/8A8J7TW5Vm6KuP9fPaWcjF0/nwwIdKJrIQ6vXQ MWCTK9p5atmSawy0SonxwO/In6ZuJ7dQnDhcHzgCB/jKZyJnfbZv2aSGvLvbGA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285604; a=rsa-sha256; cv=none; b=HZlWhV1VOjvCjOKIWGNuLViQCHtLME3lJZ3der8mIy0/v/bhe6F2FKLJShUadnRu/VX5tO NXk94NregAje0XGxCsEUClyFijyIwBfmiAcIIUTzKZjmuapLNnmJ0ehZ4rxRDJrDbraeRt yVJG0/BAdwr7qeNcXZ7ELB3K6+EKPfmaY/AdCJTl0coW7RReH8Tnztf/5P0+aNSByusuya NveUDVTvG1x8+KN+uHdSduiWUk/hb/MlgI4jApeX2216EYl2chnE8lL3G1+gYsblVH94kd YJzrZmrgOAkJGrXmHSJD5HR+uzsce8wA/0KswYLeAEUermzjMbNd4TVWLNCNrA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgS1XVGzp2m; Sat, 03 May 2025 15:20:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK4rD048501; Sat, 3 May 2025 15:20:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK4Zc048497; Sat, 3 May 2025 15:20:04 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:04 GMT Message-Id: <202505031520.543FK4Zc048497@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: 75c6434b1719 - stable/14 - sig_handle_first_stop(): allow NULL leader thread List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 75c6434b17198116553685f56e0979176f6337da Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=75c6434b17198116553685f56e0979176f6337da commit 75c6434b17198116553685f56e0979176f6337da Author: Konstantin Belousov AuthorDate: 2025-04-21 12:54:32 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 sig_handle_first_stop(): allow NULL leader thread (cherry picked from commit f87811ca3bc110af29e3a0e341d241c292dc8424) --- sys/kern/kern_sig.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 06da39b8cb33..0f87b8db9244 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -118,7 +118,7 @@ static struct thread *sigtd(struct proc *p, int sig, bool fast_sigblock); static void sigqueue_start(void); static void sigfastblock_setpend(struct thread *td, bool resched); static void sig_handle_first_stop(struct thread *td, struct proc *p, - int sig, bool ext); + int sig); static uma_zone_t ksiginfo_zone = NULL; const struct filterops sig_filtops = { @@ -2369,9 +2369,8 @@ tdsendsignal(struct proc *p, struct thread *td, int sig, ksiginfo_t *ksi) if (pt_attach_transparent && (p->p_flag & P_TRACED) != 0 && (p->p_flag2 & P2_PTRACE_FSTP) != 0) { - td->td_dbgflags |= TDB_FSTP; PROC_SLOCK(p); - sig_handle_first_stop(td, p, sig, true); + sig_handle_first_stop(NULL, p, sig); PROC_SUNLOCK(p); return (0); } @@ -2848,11 +2847,10 @@ sig_suspend_threads(struct thread *td, struct proc *p) } static void -sig_handle_first_stop(struct thread *td, struct proc *p, int sig, bool ext) +sig_handle_first_stop(struct thread *td, struct proc *p, int sig) { - if ((td->td_dbgflags & TDB_FSTP) == 0 && - ((p->p_flag2 & P2_PTRACE_FSTP) != 0 || - p->p_xthread != NULL)) + if (td != NULL && (td->td_dbgflags & TDB_FSTP) == 0 && + ((p->p_flag2 & P2_PTRACE_FSTP) != 0 || p->p_xthread != NULL)) return; p->p_xsig = sig; @@ -2862,7 +2860,7 @@ sig_handle_first_stop(struct thread *td, struct proc *p, int sig, bool ext) * If we are on sleepqueue already, let sleepqueue * code decide if it needs to go sleep after attach. */ - if (ext || td->td_wchan == NULL) + if (td != NULL && td->td_wchan == NULL) td->td_dbgflags &= ~TDB_FSTP; p->p_flag2 &= ~P2_PTRACE_FSTP; @@ -2930,7 +2928,7 @@ ptracestop(struct thread *td, int sig, ksiginfo_t *si) * already set p_xthread, the current thread will get * a chance to report itself upon the next iteration. */ - sig_handle_first_stop(td, p, sig, false); + sig_handle_first_stop(td, p, sig); if ((td->td_dbgflags & TDB_STOPATFORK) != 0) { td->td_dbgflags &= ~TDB_STOPATFORK; From nobody Sat May 3 15:20:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgV6XB9z5vTBD; Sat, 03 May 2025 15: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgV357wz3Ky4; Sat, 03 May 2025 15: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=1746285606; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rMpgQdR+enCb2gvFlxgP1Bp2NWN9swJJOLfiKHdJEdg=; b=ip9SH2zt0YMeq0JxFGgM0sQRlItsYQHJGwaEKopSHh+OowzywxwpAdJ9QuKezOVcDYXDd8 4z9G2VxpPx5F7AJNH63X7BDKLZJkFUbT20Q46SF2Ie99T9x8jIWDlkEk0ciIzkqgbq9W22 MgrXnFuSEquSQnjrPgMlJ8lgWNueYNJl97LUvvI4qamYUP/VOJUaqxemVsmQA/yqYDM1/o 2SelUC6IOjhgWsOSUlhQtFsCJWYE/0JoK7TceVn/7++ghq4fsFq5kTe+cJSpvaBTz38JPM igrFoPmJk21oAzjjGLqcVTKUyLSYOJdeYNkED8vBphtN9KUWOCc2EssRt5/maQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285606; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rMpgQdR+enCb2gvFlxgP1Bp2NWN9swJJOLfiKHdJEdg=; b=TsdffsoNGBq7LJPs2SXjr922Xpba0oMQD6MdDmvYi2Xq6MnNpuuyu4M7aldKfZAQsG6FhW B/wOEyog1LqhBFst4iKFNPqb+N1BQqbXNqQ6YJttWlGQZp/Kbv5ho9SvI3Bmzx9KLsPEbb EX7WMd4B3UDxmJfGsKOlNpeEWGxWWWUW5dEr9FlV6j7Cu0YWHGK0UbfpI7vZDpykKgdYAB p1sL1sDWOVdGYjPY3x2VFs3BU99ZKpc2uTcIOT10WgDY8WWNIG2aw6WftrzmTqZh1/AA4+ XxxWd71VGLhoqbhdgrkf6fHCBIgkH86zG7EHQNJ2xWru+SpwQAHnXKxsPPSe3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285606; a=rsa-sha256; cv=none; b=WrXqePBx0rRag1zH7yxlVyiYGreQDvE0RiyLcl2pjbLto/46nA/daadpXC2tXgSNlg1y90 Dkw9avAEB86rrH58SXTOWAJGely6zOgn+q/MUGz782a1bHyjdMn5YKMLrCajcXpKYp+0Rf MwP+q28vnjeRV2plmBK0qoLIeglVVqLY4WPZEACDVYLuL6/HBfUY740Sv3ZOeEQMXMZ3R2 ZQMteq7j52xAatdRJ27xl+mnZyf1IPBmxfqRC+T9pMSgtHiAU3QrNYI0/ne4EEMMMEKDmh 1G+4KVSMtBcOnasZN1y1iCHErlms3JYAIKkCRP6Cu54ppCUM9OCyYlRZfBJV3w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgV2bvGznPj; Sat, 03 May 2025 15:20:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK6ji049042; Sat, 3 May 2025 15:20:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK64U049036; Sat, 3 May 2025 15:20:06 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:06 GMT Message-Id: <202505031520.543FK64U049036@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: 82ceed2dc7a5 - stable/14 - ptrace_test PT_SC_REMOTE: fix a race List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 82ceed2dc7a560c6a718f75334546528d77ecb9d Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=82ceed2dc7a560c6a718f75334546528d77ecb9d commit 82ceed2dc7a560c6a718f75334546528d77ecb9d Author: Konstantin Belousov AuthorDate: 2025-04-16 15:02:58 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 ptrace_test PT_SC_REMOTE: fix a race (cherry picked from commit 1f8d845d1cdfeaefa539df5f6f33bec3da65152c) --- tests/sys/kern/ptrace_test.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index 9aff1738f293..bc944ebf371d 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -4379,7 +4379,10 @@ ATF_TC_BODY(ptrace__PT_SC_REMOTE_getpid, tc) exit(0); } - attach_child(fpid); + wpid = waitpid(fpid, &status, 0); + REQUIRE_EQ(wpid, fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); pscr.pscr_syscall = SYS_getpid; pscr.pscr_nargs = 0; From nobody Sat May 3 15:20:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgX0kGPz5vSnm; Sat, 03 May 2025 15: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgW3VXRz3L1S; Sat, 03 May 2025 15: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=1746285607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w/gNeSrYKiu0D4RBzHbnKUeNz6TyG69bz/2vqt+Uohk=; b=rLdoDduBEHg8VYZ3r1B3dwKCCQcfSLpKVXxpFteD3gCGrIGihzvCeqOZYMqzXxzCQsfv6/ BGyw/4GmGHZHwJ3GTijVhP2zxtcGVFEK1cq2hK9CblRZl/HPZCPgTkukban3U+VTpcgUIc OaXZRv/vk1ip0Ve1as7pPj7SZaWkWGXGGl5EEf407dJP2+HhY7nCcALMYko55D+zK9j0Di j4+XtXyM+4VckoU3B/tPXvRFFlcKYeyyeJVIwfEOjuYKlVnGUotpmNzV68l7Kh3ftfWpkQ adloL9W852QabHqn0B8tWqzYqW9BzpRlxtnNk429j2FhUr4G3Gf9C74Km75Ztg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w/gNeSrYKiu0D4RBzHbnKUeNz6TyG69bz/2vqt+Uohk=; b=DOP3K/gTBHBO5NmJMYT0dBrMVpOzZGmIu+AAQurJxnFr/bzFw0faNR6IMEKmoMCQJCSZw1 3ZN3LnQ2LhZ7Sybt7QVQZusIOVk+3Fpw+/+WueI5QxwVE1a7l7ObGy4HW8MgEs2OklJiLW y64Q3eNBf9ckuxAir11SdY5oeSkH9gLgubA93wvZpLDcLzkia4JWEdD4gHw8Sv4GSSu9LC z7xpWHT5kCJ1FR9geGiETR+3bep07CHSjdf4nNPmv/usnfEndN74VZqO8U3GYmKnavu3gD 5nxssS9UgIgsQnzv8dirv5/lKmw+fDtrwFNuv4UJv75dZQQqKnaRjYa/0r5UrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285607; a=rsa-sha256; cv=none; b=x0aROQ2Nou+z1j0vMeB9oQnoBU8xJxU76URvDjUvmpV1aQEbvwtYKJxHId1/SilMasCvs8 1nuipHChNUxiZV8FH6ZIz31gXns7A2yPPrj4iIO2F1JRKqnflnuMfUYVuKD1TCg7WaPaz8 zkl/xjy5l2XJ8h4/iMRlGxIKkORaaPdChcfhDFwAcOgXIkbC+vgIxd5yAbhWdAORWtvVc0 KRlmH134xIZfXqFNv/Er/LQSFbQFfe2yQLGCML4+1G5uKWqHRiPvHbzeaUNI65vDvBU+Yj opbMNRwvMphHTX++jrExnOLXGJBWqKWShZHRDYfWf3ICQe9sWFHpvHSet7nY5w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgW33wrzp53; Sat, 03 May 2025 15:20:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK7TF049306; Sat, 3 May 2025 15:20:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK70d049302; Sat, 3 May 2025 15:20:07 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:07 GMT Message-Id: <202505031520.543FK70d049302@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: 6b7c520b915e - stable/14 - ptrace_test: add test for the PT_ATTACH behavior on sleeping thread List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6b7c520b915e1df72dee494b8abbc5d0fefd30b0 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6b7c520b915e1df72dee494b8abbc5d0fefd30b0 commit 6b7c520b915e1df72dee494b8abbc5d0fefd30b0 Author: Konstantin Belousov AuthorDate: 2025-04-18 12:20:20 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 ptrace_test: add test for the PT_ATTACH behavior on sleeping thread (cherry picked from commit ed080d9915869708a9ab7badc217aff17ebbef6c) --- tests/sys/kern/ptrace_test.c | 61 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/tests/sys/kern/ptrace_test.c b/tests/sys/kern/ptrace_test.c index bc944ebf371d..50acda94642f 100644 --- a/tests/sys/kern/ptrace_test.c +++ b/tests/sys/kern/ptrace_test.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -4465,6 +4466,65 @@ ATF_TC_BODY(ptrace__reap_kill_stopped, tc) REQUIRE_EQ(-1, prk.rk_fpid); } +struct child_res { + struct timespec sleep_time; + int nanosleep_res; + int nanosleep_errno; +}; + +static const long nsec = 1000000000L; +static const struct timespec ten_sec = { + .tv_sec = 10, + .tv_nsec = 0, +}; +static const struct timespec twelve_sec = { + .tv_sec = 12, + .tv_nsec = 0, +}; + +ATF_TC_WITHOUT_HEAD(ptrace__PT_ATTACH_no_EINTR); +ATF_TC_BODY(ptrace__PT_ATTACH_no_EINTR, tc) +{ + struct child_res *shm; + struct timespec rqt, now, wake; + pid_t debuggee; + int status; + + shm = mmap(NULL, sizeof(*shm), PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANON, -1, 0); + ATF_REQUIRE(shm != MAP_FAILED); + + ATF_REQUIRE((debuggee = fork()) != -1); + if (debuggee == 0) { + rqt.tv_sec = 10; + rqt.tv_nsec = 0; + clock_gettime(CLOCK_MONOTONIC_PRECISE, &now); + errno = 0; + shm->nanosleep_res = nanosleep(&rqt, NULL); + shm->nanosleep_errno = errno; + clock_gettime(CLOCK_MONOTONIC_PRECISE, &wake); + timespecsub(&wake, &now, &shm->sleep_time); + _exit(0); + } + + /* Give the debuggee some time to go to sleep. */ + sleep(2); + REQUIRE_EQ(ptrace(PT_ATTACH, debuggee, 0, 0), 0); + REQUIRE_EQ(waitpid(debuggee, &status, 0), debuggee); + ATF_REQUIRE(WIFSTOPPED(status)); + REQUIRE_EQ(WSTOPSIG(status), SIGSTOP); + + REQUIRE_EQ(ptrace(PT_DETACH, debuggee, 0, 0), 0); + REQUIRE_EQ(waitpid(debuggee, &status, 0), debuggee); + ATF_REQUIRE(WIFEXITED(status)); + REQUIRE_EQ(WEXITSTATUS(status), 0); + + ATF_REQUIRE(shm->nanosleep_res == 0); + ATF_REQUIRE(shm->nanosleep_errno == 0); + ATF_REQUIRE(timespeccmp(&shm->sleep_time, &ten_sec, >=)); + ATF_REQUIRE(timespeccmp(&shm->sleep_time, &twelve_sec, <=)); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, ptrace__parent_wait_after_trace_me); @@ -4533,6 +4593,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, ptrace__procdesc_reparent_wait_child); ATF_TP_ADD_TC(tp, ptrace__PT_SC_REMOTE_getpid); ATF_TP_ADD_TC(tp, ptrace__reap_kill_stopped); + ATF_TP_ADD_TC(tp, ptrace__PT_ATTACH_no_EINTR); return (atf_no_error()); } From nobody Sat May 3 15:20:08 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgY0LJrz5vT7r; Sat, 03 May 2025 15:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgX4Jsnz3L39; Sat, 03 May 2025 15: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=1746285608; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GG4w3CIiLqFnlkA1f+hAFsHg/q0j7ibAWYuSPsyAiZg=; b=eN4GAZb6SlMTtNE5CEb7hJm0bFYEt+jca/Od5YC8JZYtCjsmOvgwHzFrcg2/9GyY9qP2c5 efxBHQKpdOe/qy1cOuo7o7zXa+5XwPLUmurjhiPxiHG5Oy46oCbR5zh6eA054gODjZq3Uc B/0M0fokKHbNPvMWLKc5DGfupSCPVjY7DoEXzNioFxcN04b/aTZb75u49pIdzZ0TTnbRIL bDgIZZmPfCKpInPitlFQQGCqlRICZBc9HwMrxhrZlmVSProI9g3Y347clyNypU5FoIAQKF szlFdp8JYtBBIjPCJOC/R3gvs0xZ3YnQ26zz6KpWPIZGELqlF+6URxFHpS2voQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285608; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GG4w3CIiLqFnlkA1f+hAFsHg/q0j7ibAWYuSPsyAiZg=; b=ubmoPeL+4wpLFeDqBs/iFu5VrRY+BNii+k7T6hxo170oZCcIM0+a0g+TcIC4fXef2nJP6H 0bKglHTGXn0yZaerpUNei5z1oz+ZSp56j+n2TK6bBk+oclMMr4WFiwUoKidY2xRmD/gG6B SagRI5YDnHdo6hjXk6NSKb4uFmrx68AWem5Jvz3yiaK65RmAAdhU4icvpgmTOMRkdXtfcF QXGGBp2afbSUc9RiWIfEHTs4ceKpN1QR+HMSZPe3rcb88hirLTNwwVmwmzKLtKWso8D7O9 4qe75pfDh3q/iA0kjCe7lUY4PYIz5BfVqyXpI+mruN00nTW/dUqt80xInyodKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285608; a=rsa-sha256; cv=none; b=yad2YyqfCi2gVrQMOLT5qkYucHu/hLvSi1DDDDvLeNw2m+OJAfIJsFFDRTbI3tSTYj9Ygs ZQvKKNwGaxImhC5i0Frs21e3l9EnJuH9F9ITxKqVLprt41xXeJgpZYpEnfy0/jZSTXp9Cp tFIoRSGAPrI9NHdbY1auWYZErcS2/e55Hu+tYUZrGrGskvcAnlZ0GCTXvf0p0xyiLSTDxe baO90V+FOQWmsYSAYXPgrfF0Uy0/Bn6Jeg+lmVR4U3YalGZYd5G8N0wMwwN72gLjYBTBvr cnTLEgypkOlAtKIROxhgaMDKmCQ13qZv2a8ZZyv6qgVuAIOXn+UEYKxwtd2Bkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgX3dyjznfT; Sat, 03 May 2025 15:20:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK80a049570; Sat, 3 May 2025 15:20:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK89h049567; Sat, 3 May 2025 15:20:08 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:08 GMT Message-Id: <202505031520.543FK89h049567@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: 3637d81e8f68 - stable/14 - x86: add cpu_stdext_feature4 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3637d81e8f6875c7f777ca3cf14a2fc3e601db60 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3637d81e8f6875c7f777ca3cf14a2fc3e601db60 commit 3637d81e8f6875c7f777ca3cf14a2fc3e601db60 Author: Konstantin Belousov AuthorDate: 2024-10-24 02:28:05 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 x86: add cpu_stdext_feature4 (cherry picked from commit 011a3493610cc69e9337c857d4947b0bbc462c0a) --- sys/x86/include/x86_var.h | 1 + sys/x86/x86/identcpu.c | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/sys/x86/include/x86_var.h b/sys/x86/include/x86_var.h index 6609871bf89e..0ff336c9c1f0 100644 --- a/sys/x86/include/x86_var.h +++ b/sys/x86/include/x86_var.h @@ -50,6 +50,7 @@ extern u_int cpu_clflush_line_size; extern u_int cpu_stdext_feature; extern u_int cpu_stdext_feature2; extern u_int cpu_stdext_feature3; +extern u_int cpu_stdext_feature4; extern uint64_t cpu_ia32_arch_caps; extern u_int cpu_high; extern u_int cpu_id; diff --git a/sys/x86/x86/identcpu.c b/sys/x86/x86/identcpu.c index 000f99c683e7..3ae3d17f8028 100644 --- a/sys/x86/x86/identcpu.c +++ b/sys/x86/x86/identcpu.c @@ -107,9 +107,12 @@ char cpu_vendor[20]; /* CPU Origin code */ u_int cpu_vendor_id; /* CPU vendor ID */ u_int cpu_mxcsr_mask; /* Valid bits in mxcsr */ u_int cpu_clflush_line_size = 32; +/* leaf 7 %ecx = 0 */ u_int cpu_stdext_feature; /* %ebx */ u_int cpu_stdext_feature2; /* %ecx */ u_int cpu_stdext_feature3; /* %edx */ +/* leaf 7 %ecx = 1 */ +u_int cpu_stdext_feature4; /* %eax */ uint64_t cpu_ia32_arch_caps; u_int cpu_max_ext_state_size; u_int cpu_mon_mwait_flags; /* MONITOR/MWAIT flags (CPUID.05H.ECX) */ @@ -1039,6 +1042,16 @@ printcpuinfo(void) "\040SSBD" ); } +#define STDEXT4_MASK (CPUID_STDEXT4_LASS | CPUID_STDEXT4_LAM) + if ((cpu_stdext_feature4 & STDEXT4_MASK) != 0) { + printf("\n Structured Extended Features4=0x%b", + cpu_stdext_feature4 & STDEXT4_MASK, + "\020" + "\007LASS" + "\033LAM" + ); + } +#undef STDEXT4_MASK if ((cpu_feature2 & CPUID2_XSAVE) != 0) { cpuid_count(0xd, 0x1, regs); @@ -1534,7 +1547,7 @@ identify_cpu1(void) void identify_cpu2(void) { - u_int regs[4], cpu_stdext_disable; + u_int regs[4], cpu_stdext_disable, max_eax_l7; if (cpu_high >= 6) { cpuid_count(6, 0, regs); @@ -1547,6 +1560,7 @@ identify_cpu2(void) if (cpu_high >= 7) { cpuid_count(7, 0, regs); cpu_stdext_feature = regs[1]; + max_eax_l7 = regs[0]; /* * Some hypervisors failed to filter out unsupported @@ -1563,6 +1577,11 @@ identify_cpu2(void) if ((cpu_stdext_feature3 & CPUID_STDEXT3_ARCH_CAP) != 0) cpu_ia32_arch_caps = rdmsr(MSR_IA32_ARCH_CAP); + + if (max_eax_l7 >= 1) { + cpuid_count(7, 1, regs); + cpu_stdext_feature4 = regs[0]; + } } } From nobody Sat May 3 15:20:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgY6mYNz5vSqq; Sat, 03 May 2025 15:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgY4hbkz3LF8; Sat, 03 May 2025 15: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=1746285609; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gXbmpWr1ZfYiyUrbeTqUd+0FL7C0/42M+0mmq+Z+j+c=; b=iKxwwoFhQGUk0hMPClCgCA4Xoh8U/EioZ8RICwnIhTV9MyxDAMwvLZyp01xWB5H46HmxtY ru/UrISRcsEFJnKLV2z3zHNPbiy6snoRWbjIday3MBC+RxBTpYbPNs4G9MuY1c8DUjYoYM DRxyhzqcmRLWscWqKMp6q00B6NEXZSIgCeQQYb2indkoVoRHTRR52cCDeGf9PB3vV3k5jp 0GbRlUBq9dosoMqLoFoALefeZU3GtExfvErUE5CpqA4xQk55lw+moiFsk3C2/cBb+ywelY p3ZkUGHsUC/lDq6axCFTC4IV1iGhdCt7bpe/KUB3ICH5sLtC44t+GJAbEweauA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285609; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gXbmpWr1ZfYiyUrbeTqUd+0FL7C0/42M+0mmq+Z+j+c=; b=XtLd/R9nLwigvHZT6RwkczHWGiaHjmLHOXE8zNHIp5az59JEaKVXlBH3pcUcWo8lO6yHUE wzFsFfM/9l5pfzdYgbDVkyqARnNhYqxp221jgKphdiltxecNL2nk8t4ioujj/o+sFgtMJm QKvk56QZaCB8gu091FmzbU+MDuiwP7w48Lfdz3uvJPryZguJ6JTJVyqZE7r/EQIcusWC9y 0FYad6Usv3F2m54ssK5bghyu4J1EMmrGcnxY5y/5Cza517jqkK+Ke7U0WZQBJ7+otaYRY+ 9rqmUq2zbpYnMZSIarJtiZPTfWp+T7JkWhdQ6fJgRsf1owg8Pd02c84aIhnkFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285609; a=rsa-sha256; cv=none; b=NbsM6GNs4/ciuwpcbTuOGvvDpgO8AtkABF6EoyLFDIL63PxHEhtgEVJkp5nICQkrx5xaZO qPk6PFi8a3JwILty8uaSCFmKdbDY9ZJ4Ifs+/gI9khoeV/gNheF5mpqCdoegA1NIbm4Yp4 VDQNc36lqDqylm0YEoJBKKSLx2wTtevl61qJcyGzrMT22lbQ6zmQrSzq+H9ikOEeXxvMCV INVlMWiDPLNqU9FXCI9tyDi7LfDGS8Av8f7jZq47gvH2DuMFVgE4r3JfFtzwHZNi/CJ/76 yQNMt4nZhkkXdTQv56LJDAerlEm4fSRe9DO3ytDLs+0jDqWzqJlRy5Cl37ESLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgY465JznlV; Sat, 03 May 2025 15:20:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FK97N050081; Sat, 3 May 2025 15:20:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FK9Ks050073; Sat, 3 May 2025 15:20:09 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:09 GMT Message-Id: <202505031520.543FK9Ks050073@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: 2a6ec58c6d92 - stable/14 - amd64: add elfctl bit to enable LA57 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2a6ec58c6d92a774270533841397f72d35be2caf Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2a6ec58c6d92a774270533841397f72d35be2caf commit 2a6ec58c6d92a774270533841397f72d35be2caf Author: Konstantin Belousov AuthorDate: 2025-04-19 10:47:11 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 amd64: add elfctl bit to enable LA57 (cherry picked from commit 5ad6c3d840a758b25a1b000c37f366be35fc7a95) --- sys/sys/elf_common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/sys/elf_common.h b/sys/sys/elf_common.h index 79237db2a0a6..2f132e43efac 100644 --- a/sys/sys/elf_common.h +++ b/sys/sys/elf_common.h @@ -804,6 +804,7 @@ typedef struct { #define NT_FREEBSD_FCTL_WXNEEDED 0x00000008 #define NT_FREEBSD_FCTL_LA48 0x00000010 /* was ASG_DISABLE, do not reuse 0x00000020 */ +#define NT_FREEBSD_FCTL_LA57 0x00000040 /* Values for n_type. Used in core files. */ #define NT_PRSTATUS 1 /* Process status. */ From nobody Sat May 3 15:20:11 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgc130Kz5vTJP; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgb5nYvz3Kwg; Sat, 03 May 2025 15:20:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285611; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y16Iiik/nwmgN4u6JTJT0X3cYYyrBT+kaxWGtkWbSeE=; b=Hn09ZFe8Y9Q+t1ii1t/rD/tuMq7SM994tJAyhSx/30TXhiLC7PK4QOmCyFAw7MX8zAjprU Yf1QqNHbooAYu9GtYfFdExGNFHRLJvB6s5oCowWRvw2AUTPrQArAN2QUSvH3jwOOmV8tHS l38swaxniU5oluFWsS4fl4fR8JSTkcBVgUB8gq6sVC60OWuY+ldp8b+XRO71aunLJzZcqd TrDS4Wvu0reZxaehuL7snwXDUpYkK0EIQXsdvbuyCtO16tPQO+smvjukLC0i/4KXj0qg/g xrThpW4Mt/ld/zp8JmAlQrHYZK0ImkFZoFJFXTuxkN1aJVaqvTfr4WecfypQRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285611; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y16Iiik/nwmgN4u6JTJT0X3cYYyrBT+kaxWGtkWbSeE=; b=QxFoYz2nIUiH8NOphSbCHjmuTFCPRpKCOfy6+Bkig/O7z35z8NyIkR5SW8rn78AuvzWDEo CG5e1WE3j+ikBw5RjKd0FHVoi8qMcDDktEX3SF6Z4dVjI5tG6AfPLYoyA+/C1vvF6vYKjs g6dtT+lFi8P39VUOWf1sHwXYrD0a7tp8J41ZUk8rk3lc3OytiMm1hMEqtADV9Kc884PTD3 9NG8f9UrqYCcWBp6eKak60MveoVaTlaa59jc4NQADcBM9pkcWMG700Ih/c7a+PxE7+upk7 viX2qXdjN+g6tL6+0ODkmASzspudom655OA9c/1sgZtDtxytWojrONq599zBaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285611; a=rsa-sha256; cv=none; b=PLSD5F4u+4YmxrKacWnJ6enZXBrVjOkZWb8MjqC2sAnyFnAt0KRrTs/dTcmmU0mkDaQDHX xc/1DAupf0H0UuXCjHGIPDJEO7SMu2W2BK0G4UvflIT8PW/TXHn3VCknqlqeyCAJy9vtfP qBDL8wCKHcUCSeWzxw5/eHPQhkp9255/mS5pW7KVrwLFO1pZMi9D909zC0uytoGZayrka1 +Q2PBDLMpJ9EayugTSuCcq39VMmC1yKpVTHJmcDaqfE61b3wl1s1U2DB2mWyDxskErAnVV zWk1jNNVKYqqfkSLc9Ie1UfRTYkOSqiT7zXJnP3CiSw+YoSQe/rUJVKP85ErCg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgb5FJdzp54; Sat, 03 May 2025 15:20:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FKB7v051350; Sat, 3 May 2025 15:20:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FKBM4051342; Sat, 3 May 2025 15:20:11 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:11 GMT Message-Id: <202505031520.543FKBM4051342@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: c5e3af9013ef - stable/14 - elfctl: add knowledge about the la57 bit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c5e3af9013efa1fe015eed0f580c6742f8a5ad8a Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=c5e3af9013efa1fe015eed0f580c6742f8a5ad8a commit c5e3af9013efa1fe015eed0f580c6742f8a5ad8a Author: Konstantin Belousov AuthorDate: 2025-04-19 10:47:45 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 elfctl: add knowledge about the la57 bit (cherry picked from commit b989c1dd1e2edc8cf7597d276625b454b7b72e6d) --- usr.bin/elfctl/elfctl.1 | 14 ++++++++++++++ usr.bin/elfctl/elfctl.c | 5 ++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/usr.bin/elfctl/elfctl.1 b/usr.bin/elfctl/elfctl.1 index 5ba016b664a3..e72c6bcf250a 100644 --- a/usr.bin/elfctl/elfctl.1 +++ b/usr.bin/elfctl/elfctl.1 @@ -95,6 +95,20 @@ Features may also be specified as a single combined value: .Bd -literal -offset indent elfctl -e =0x5 file .Ed +.Sh NOTES +On amd64, on a machine with LA57 (5-level paging) mode supported and +enabled, if both +.Va la57 +and +.Va la48 +feature flags are specified, the +.Va la57 +feature has priority over +.Va la48 . +The +.Va vm.pmap.prefer_uva_la48 +sysctl MIB defines the default user address space size for binaries +which do not set either of these flags. .Sh SEE ALSO .Xr mitigations 7 .Sh HISTORY diff --git a/usr.bin/elfctl/elfctl.c b/usr.bin/elfctl/elfctl.c index d9cb557bbad4..cacd30b44b2d 100644 --- a/usr.bin/elfctl/elfctl.c +++ b/usr.bin/elfctl/elfctl.c @@ -67,7 +67,10 @@ static struct ControlFeatures featurelist[] = { "Disable implicit PROT_MAX" }, { "nostackgap", NT_FREEBSD_FCTL_STKGAP_DISABLE, "Disable stack gap" }, { "wxneeded", NT_FREEBSD_FCTL_WXNEEDED, "Requires W+X mappings" }, - { "la48", NT_FREEBSD_FCTL_LA48, "amd64: Limit user VA to 48bit" }, + { "la48", NT_FREEBSD_FCTL_LA48, + "amd64: Limit user virtual addresses to 48 bits" }, + { "la57", NT_FREEBSD_FCTL_LA57, + "amd64: Allow the use of 57-bit virtual addresses when available" }, }; static struct option long_opts[] = { From nobody Sat May 3 15:20:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgb12Gsz5vTCv; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgZ5Fh5z3LFF; Sat, 03 May 2025 15: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=1746285610; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O9thXtfZNaTFvuWTF8meQ8D4j+0B4gewxLwdv7nCjJs=; b=Zmkdg8jaPp/ITpbJjmhGFubQxR2XUjYgv+uL0eEk3/U3NFqEpUtNDfSOYtuGGExl0Mz/sK fLIvQrv5ruxRWFZ1Xyx7h0FINzrQ/Ju49VM1jegl3ZynPmkDWpwTLMr+xAqWhDqtpmSobb UHwkpZN5aIivwMODBIkClT9L01OxOwGWZw19BRJBaQUHbai41UOJ3NOs/R3WmEkHQ5yEWK cuYy85yoeDYwOWAS3Y0ncGB8B15dg73VAl3RJiaNJUan6TkLsYgr4okQbPE+lc2TMvQhO7 0CCeTAbJZGSmxu5OjN9Z+lJqLrQvJgSUaBs09fnG1279ZKlLktR6GRW2uOXJbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285610; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=O9thXtfZNaTFvuWTF8meQ8D4j+0B4gewxLwdv7nCjJs=; b=EOeIie9m22FMWju5UN1OzM8Bv51rPVUhuuXbFEPeNIO8BdzUJYVO56UELKXL8BXTZtfTV1 sNTrbB9CJDc6F4FxbFwxv7MVIteTbEfhetXEQndj3PrvslwCgsIINTkSCwICXoXBKbQDXS RQ57ahUklGfJlHACv/zX/aTicpHjm2EvbkKcBXyjxTMlJ1DaRre4pWYUnMMU1tlOXTikxz tLtrBPntOv4wKclM8MuEcZNfVBaetcPK7VfCJECRJU1MIvQ+65gibo3Ff5irPd5jrJtbTV NNdY0hqy+QjlxhFxjl8kgbltz1URJh7atthZNoHxpGNDxZ3SMijfO+rZRv1blw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285610; a=rsa-sha256; cv=none; b=JlECrq5uKSKr+algSawyXRrpyyq+mtsq486BxYNR9kzoXDxMbdb6pKZxeoVbkxAkjnezL4 /GFsa48DlPWogTzRZdzMb4VbHwheOPRwRrGw4WGDUZz2vKvySfcZHJuOLWqKQgM/6URpi/ uTVBXBcUgM+cGyhssWvukvayTWpa2yASaR5hD6ML8y7MtCxG/QmpWT2iH/RJgvWppM0LKW yorxrBPRlD2yEFlLVXoy+SVV+nuPcD+YaKLKc0abtlHViyqAtwGUxtxbtwGnKGpkEQ1XDf twNasy9Ipn+Phg7rw+mXc871iDEAcMq0zgPmcqIG6mrU3ISyB/uqzqmqlyQdxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgZ4nCQznwn; Sat, 03 May 2025 15:20:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FKA6e050702; Sat, 3 May 2025 15:20:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FKAZZ050691; Sat, 3 May 2025 15:20:10 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:10 GMT Message-Id: <202505031520.543FKAZZ050691@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: 64a8ac8c63d3 - stable/14 - amd64: make LA57 mode for a process opt-in by default List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64a8ac8c63d3b84b5da8042e5e314aa7938f5b10 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=64a8ac8c63d3b84b5da8042e5e314aa7938f5b10 commit 64a8ac8c63d3b84b5da8042e5e314aa7938f5b10 Author: Konstantin Belousov AuthorDate: 2025-04-19 10:55:18 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 amd64: make LA57 mode for a process opt-in by default (cherry picked from commit 7a8440bf0894f910f871e91a660a9f66dbb23f0b) --- sys/amd64/amd64/elf_machdep.c | 4 +++- sys/amd64/amd64/pmap.c | 9 +++++++++ sys/amd64/include/md_var.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sys/amd64/amd64/elf_machdep.c b/sys/amd64/amd64/elf_machdep.c index fc25decc64a2..e45d45860c9c 100644 --- a/sys/amd64/amd64/elf_machdep.c +++ b/sys/amd64/amd64/elf_machdep.c @@ -171,11 +171,13 @@ freebsd_brand_info_la57_img_compat(struct image_params *imgp, { if ((imgp->proc->p_md.md_flags & P_MD_LA57) != 0) return (true); + if (fctl0 != NULL && (*fctl0 & NT_FREEBSD_FCTL_LA57) != 0) + return (true); if (fctl0 == NULL || (*fctl0 & NT_FREEBSD_FCTL_LA48) != 0) return (false); if ((imgp->proc->p_md.md_flags & P_MD_LA48) != 0) return (false); - return (true); + return (!prefer_uva_la48); } static Elf64_Brandinfo freebsd_brand_info_la48 = { diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 406ff7744e5b..1456cee62aeb 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -433,6 +433,15 @@ SYSCTL_INT(_vm_pmap, OID_AUTO, la57, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, &la57, 0, "5-level paging for host is enabled"); +/* + * The default value is needed in order to preserve compatibility with + * some userspace programs that put tags into sign-extended bits. + */ +int prefer_uva_la48 = 1; +SYSCTL_INT(_vm_pmap, OID_AUTO, prefer_uva_la48, CTLFLAG_RDTUN, + &prefer_uva_la48, 0, + "Userspace maps are limited to LA48 unless otherwise configured"); + static bool pmap_is_la57(pmap_t pmap) { diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index ce6f05fa1739..b6ddc6eaaebe 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -50,6 +50,7 @@ extern vm_paddr_t intel_graphics_stolen_base; extern vm_paddr_t intel_graphics_stolen_size; extern int la57; +extern int prefer_uva_la48; extern vm_paddr_t kernphys; extern vm_paddr_t KERNend; From nobody Sat May 3 15:20:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqWgd0wMZz5vTJS; Sat, 03 May 2025 15:20: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqWgc69b8z3LFg; Sat, 03 May 2025 15:20:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285612; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xAYDclWP5huURXCDIa5GlZQ06HilH7UOhoCedkq+r+Y=; b=kBYS5SZgoIpB2BjULzS9WscL+xNtDNeoQeWnRSSE0XeG3wtX/uxyjaiqwMT5iXAzSEQBLS q1fQh1DKHBigCM4G/mGvz4rwKyFg20q/opyk+N8hy7IldqWdib3lwOoiq705FZQKUbeHXv TDs9qkDDFwTwbotAfPtW2dWWkYInFRg+1Bk8+wgaZ1JS5NcjR9TGCuw7VkFjEeQdTiA5Bz kBZTFuyxVr9cX7mlc7PjiEmOiw9KaJWHtxHRDN4HMrpEdIrBPESycI0+n/yJ98yrappSPp tTuO/t59rZwFjqocovIlx+wc9Fr2Vl8v/ITNci+OvjIp7rNG8mlNLs0iav2mgw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746285612; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xAYDclWP5huURXCDIa5GlZQ06HilH7UOhoCedkq+r+Y=; b=jhAEl9SG1hmQOBk84Mqufz6EBWhwmW1FMy3mNSbCctN5TUVcrJpzFH0GkrdDIPhLwmOFG1 c0yMcQXv3JJbtnBZL1blIrhHctWj97kPh7VbpgnjAbdq2Fmhp8phXdx7HOBj1YtVTA40GY cA6Rcc4jcUfA34z4PvZSaZzPiXMhQ8a1LPiBKBwIk6raSCCiXiGwXTq7RfaRmPsJX5TqDs NDl+rJA1ozP6DcTmfvBNvjssahsse62Ki8q9qaKLWSccAvoKwFNFQUxZWlzIoUA/MUWh7x 46jHnBaQAy5aclRjrq+yCwYZGWhgOxzjGkL7iAqElsQ3g/xJz5qfogZTplwjyw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746285612; a=rsa-sha256; cv=none; b=CMUfVzh+/CoaZUw4NmkGiXppahKI7ZaOzv9RNMTz2UR92VQ9hHY42+3K/vps5tPtg7rAOp Sa00w9ZeOKwiWaVeCFQYEFsLakX9Sa93xOTvpUDHqRpJo4guGRliVkj620ZB59dMGnai7f CsoMNfLIixY59BPyUcsPS3J26S9r3xo8fp6O5zkIzWlKmbBXght/w/GpqsA5XtSWRaGIkC gPH+tfizfKr8XlZ1ZkFOb0iAd/s+9rUDgrR0t2N3AD/slg2eo/LdVtiqEw0gavsQQbsgyc oPSZtgoPq0xCUpSKlFroAFOWEluDqsl1I+fvjiFYegm30VfEsgYSbMlM2aExbw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqWgc5m3vzp2p; Sat, 03 May 2025 15:20:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543FKC3G051991; Sat, 3 May 2025 15:20:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543FKCWB051983; Sat, 3 May 2025 15:20:12 GMT (envelope-from git) Date: Sat, 3 May 2025 15:20:12 GMT Message-Id: <202505031520.543FKCWB051983@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: a75f920158c7 - stable/14 - net/sff8472.h: add double-include protection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a75f920158c7f163ba1ebde1eb4ff42244d7a82d Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a75f920158c7f163ba1ebde1eb4ff42244d7a82d commit a75f920158c7f163ba1ebde1eb4ff42244d7a82d Author: Konstantin Belousov AuthorDate: 2025-04-28 01:43:18 +0000 Commit: Konstantin Belousov CommitDate: 2025-05-03 15:19:41 +0000 net/sff8472.h: add double-include protection (cherry picked from commit 6cb5f1629e6f89a468e34625fd4a35ce4585500f) --- sys/net/sff8472.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/net/sff8472.h b/sys/net/sff8472.h index a33dfed84b0b..4661ffd4cbd7 100644 --- a/sys/net/sff8472.h +++ b/sys/net/sff8472.h @@ -26,6 +26,9 @@ * SUCH DAMAGE. */ +#ifndef _NET_SFF8472_H_ +#define _NET_SFF8472_H_ + /* * The following set of constants are from Document SFF-8472 * "Diagnostic Monitoring Interface for Optical Transceivers" revision @@ -524,3 +527,5 @@ static const char *sff_8024_id[SFF_8024_ID_LAST + 1] = { */ #define SFF_8472_POWER_FACTOR 10000.0 + +#endif From nobody Sat May 3 20:22:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqfNT0hG8z5tbj1; Sat, 03 May 2025 20:22: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqfNT05Vdz3tQn; Sat, 03 May 2025 20:22:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746303753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rtJf3e5HclEaMQwniCvWUw0T1Uin+GGi76m7B0I1drE=; b=FR+lSct7vL7VwHf5BrF8OFVmo05E1aYErEdcB3zBcjKT6gwU1DeaQWUjGbouSOWMm4MS28 Cfp00c6MvtiNFYq4hkv7s4aFnAaCgIJGAjcSlAt/fbtMV3DH81egxP96CVGEgfSVhgHfXt Uos6xIpwN8Dfmf/PBJTK7bdHD8j6DCjS5PF9sq7tRmbSE5ZJgNashH1DJZfcykL6YlcCqc gbfCCfw68l8luRzdTGcxMwXVnAm0g/ciygFxM9S5Ym1Vu+J+qAkjtBj/w1jTaRQBYNs5Ir C3I/cRSQYMHT84HRSgvHDssVFG/aGPNhwJEsz/RZyqCTrBKbq+OpLedffqNAJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746303753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rtJf3e5HclEaMQwniCvWUw0T1Uin+GGi76m7B0I1drE=; b=jPvzy0z3Z5XPs5uGmR4ZP/6S5tb+iotPpIZyDVOcP4TX/mc0mmUtNf6htph47pm8u/xesb AQgAU63z4JjVJkOwHg5t3VXjiRErFn6r3pA/O/xGRyW/8RsZ2ilUmN8F/vX2ZjmlrbAZgF 6ImEIyIGHr9taXqkx9ywB1xjarXTyv+gfr0ZPoh2pEbY9IGEXO/E8RN0oV/l7aEAPlRl9t RhsAQjjpaBHwWcmDXX8aOGWQxXcm/fParmVMpLaj+V1qSjd/P+bwJiph/oBrxnZ5ChhkUY eGQHsjfxk5jVA/Ir7XDtYlS8FNt/U8t92yde4PRb/CTYXzwwBk73X86bhehahQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746303753; a=rsa-sha256; cv=none; b=SL5LKJacHc3P2U9YRsf1MS6spILqYWWPmDyOHo8voWWeHSc9+Nj60gRMUPdy/HkE1utY3P 6iQrYrU+Lb28I2zxmJF79++pRZ2i8ct3u5HViBISMNkMdDH0Ao1cCjlQ2sMf1WZyAEXsT/ PcUDUavk55M9rKFEyhJJn9XVI1RadSQVJzCiIblsDgaWaRtfKqh/Vy64SowqUDby5qW2mS iusxeyc9SqPKQGHpyWtJppGvLOmsfXMw0WcM2qe2DJcnB1hydrpqFRUdtr+H5PQav+NqZm rl2gjQeSkB4XlQXE5IwhBjoAZRcY5indCtj4DIBWImGHGNfScFVt1x0VS+vVlA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqfNS6kDCzy5Y; Sat, 03 May 2025 20:22:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 543KMWUL026708; Sat, 3 May 2025 20:22:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 543KMWpp026705; Sat, 3 May 2025 20:22:32 GMT (envelope-from git) Date: Sat, 3 May 2025 20:22:32 GMT Message-Id: <202505032022.543KMWpp026705@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 97a057f1685a - releng/14.3 - vm_pageout: Disallow invalid values for act_scan_laundry_weight List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 97a057f1685ade6e3e5130787a4ffb6e007780c9 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=97a057f1685ade6e3e5130787a4ffb6e007780c9 commit 97a057f1685ade6e3e5130787a4ffb6e007780c9 Author: Mark Johnston AuthorDate: 2025-04-18 17:31:27 +0000 Commit: Mark Johnston CommitDate: 2025-05-03 20:22:08 +0000 vm_pageout: Disallow invalid values for act_scan_laundry_weight PR: 234167 MFC after: 2 weeks Approved by: re (cperciva) (cherry picked from commit d8b03c5904faff84656d3a84a25c2b37bcbf8075) (cherry picked from commit 098e4ecd65492bd23f88f4358f0c6bde13a1e114) --- sys/vm/vm_pageout.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index bc946e2bb844..c2c5281b87af 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -185,8 +185,23 @@ SYSCTL_INT(_vm, OID_AUTO, pageout_oom_seq, "back-to-back calls to oom detector to start OOM"); static int act_scan_laundry_weight = 3; -SYSCTL_INT(_vm, OID_AUTO, act_scan_laundry_weight, CTLFLAG_RWTUN, - &act_scan_laundry_weight, 0, + +static int +sysctl_act_scan_laundry_weight(SYSCTL_HANDLER_ARGS) +{ + int error, newval; + + newval = act_scan_laundry_weight; + error = sysctl_handle_int(oidp, &newval, 0, req); + if (error || req->newptr == NULL) + return (error); + if (newval < 1) + return (EINVAL); + act_scan_laundry_weight = newval; + return (0); +} +SYSCTL_PROC(_vm, OID_AUTO, act_scan_laundry_weight, CTLFLAG_RWTUN | CTLTYPE_INT, + &act_scan_laundry_weight, 0, sysctl_act_scan_laundry_weight, "I", "weight given to clean vs. dirty pages in active queue scans"); static u_int vm_background_launder_rate = 4096; From nobody Sun May 4 01:07:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zqmhq352rz5tyFP; Sun, 04 May 2025 01:07: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zqmhq0xS7z41Xt; Sun, 04 May 2025 01:07:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746320827; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cnHH8BcOupeNTHdFvqJNU57nW5mDI6aGgILTUt6qo9s=; b=X1i5bsmwFGfUBWvXNOsVxOVeGhsH4BG7EYpW9b46uz3QR9Ybke2wsrZe5WE2UwO6oTi3Mi vJPqCmSnsdDvvqTeDIJPXXYGsI130jVg9jF6V91Q2mLWnA4HCx7iATsg8DtEb1vczHr7LB 7HlK1lJc0IIEotzyB+4Qdv9XkpmqORlm+bII4CCd7VAQdteU0qEFpBC+ifHlTTtBqssb6J Zz9e6mx5D4G4Zin2FSfIxkSTb6QsueyufyvC8XfvhoCbKBfJNafAgyDA7wzwAFBQ15E9hf /Feu7RnoaX5zoksnDhwWl4yPAAj1miLGt0+VxM8u1NsVz9LNkWWgdopXzJPkLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746320827; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cnHH8BcOupeNTHdFvqJNU57nW5mDI6aGgILTUt6qo9s=; b=lY/ss9OVlgCL10LmUf4Fu40LDHnBJjUgAmgH7/j09r450y/PQcUFmHXrB+zXFvfXrTuh1D dHrn8qZ+aq+XZq8nTsug19tr7Ffcq5nqlRtXmUO1tqcdOCnc63GzCDfle2LrYQjHaCCXjL F1xf0AA66FbNHmAodRrRiAJaR4h1ZSHWu81o83yJwqGg2ppEpH6XnjYH9onlQQbTU5xe5m axVDCMD1w/NP3c2w5nmBGM99F0iy7Pb1+F6jRtClp2jaykGuNeQT6BbLqdZOFxvbcBrwTM 9GzCFC4ctF4hJoRFqQpEvLq5nXRKds2k/AsvigYkJikYatj0fV7zotpalNWO0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746320827; a=rsa-sha256; cv=none; b=K0zMB5g8pdrfFUXyylwFFbhsEHK27ssD+vqNnEO+rXbGwwl8tdxQPk7W/KTkU8gmfsqDTc KGnDkxpqu9zDGZ+iJ81gI8ylKJBlSCPvmmNpkYDIlfwzlEO/QktgzQmIy+ZWk9cAIuDXsC /7WWh4qq3Kt6e7ly+HbSiyWOvtTOnyyz0g9NcKkKddsI3bX6NHfCtOaToYD5/WV/0bpUzg ckx1FgE8WGqRwdHng/rV1ULhH9uRBJ1X/HkixAlEW2SnYTLFPSgOFhqnC5EQiBpfjgSa4T +vRsTtJ7TJt30RYe6ywg1QIXMY/k+EWQJz3OCByhw5mBG25shz1LVKXXhAFu9g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4Zqmhq0GMgz16DT; Sun, 04 May 2025 01:07:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 544176HC052953; Sun, 4 May 2025 01:07:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544176CS052950; Sun, 4 May 2025 01:07:06 GMT (envelope-from git) Date: Sun, 4 May 2025 01:07:06 GMT Message-Id: <202505040107.544176CS052950@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: 37abcf06f210 - stable/14 - mountd: Fix updating the network/host(s) for an exports line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 37abcf06f2100eeca41dbd67f8ca8228903ce5e8 Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=37abcf06f2100eeca41dbd67f8ca8228903ce5e8 commit 37abcf06f2100eeca41dbd67f8ca8228903ce5e8 Author: Rick Macklem AuthorDate: 2025-05-01 23:17:20 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 01:04:27 +0000 mountd: Fix updating the network/host(s) for an exports line Mountd reloads the exports(5) file(s) when it receives a SIGHUP and then compares the old and new exports, updating any ones that have changed in the kernel. Without this patch, mountd failed to recognize that a network/host(s) had changed, if there was no other change to the exports line. As such, the change of network/hosts(s) did not take effect until the mountd daemon was (re)started. This patch fixes the code so that it checks for changes in the network/host(s) list for an exports line. PR: 286260 (cherry picked from commit 68daa781c1f12e1cfef768030eaff970c3d35543) --- usr.sbin/mountd/mountd.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/usr.sbin/mountd/mountd.c b/usr.sbin/mountd/mountd.c index f412adbe741e..62d618069c8b 100644 --- a/usr.sbin/mountd/mountd.c +++ b/usr.sbin/mountd/mountd.c @@ -244,6 +244,7 @@ static void free_exports(struct exportlisthead *); static void read_exportfile(int); static int compare_nmount_exportlist(struct iovec *, int, char *); static int compare_export(struct exportlist *, struct exportlist *); +static int compare_addr(struct grouplist *, struct grouplist *); static int compare_cred(struct expcred *, struct expcred *); static int compare_secflavor(int *, int *, int); static void delete_export(struct iovec *, int, struct statfs *, char *); @@ -2350,7 +2351,8 @@ compare_export(struct exportlist *ep, struct exportlist *oep) grp->gr_exflags == ogrp->gr_exflags && compare_cred(&grp->gr_anon, &ogrp->gr_anon) == 0 && compare_secflavor(grp->gr_secflavors, - ogrp->gr_secflavors, grp->gr_numsecflavors) == 0) + ogrp->gr_secflavors, grp->gr_numsecflavors) == 0 && + compare_addr(grp, ogrp) == 0) break; if (ogrp != NULL) ogrp->gr_flag |= GR_FND; @@ -2363,6 +2365,46 @@ compare_export(struct exportlist *ep, struct exportlist *oep) return (0); } +/* + * Compare the addresses in the group. It is safe to return they are not + * the same when the are, so only return they are the same when they are + * exactly the same. + */ +static int +compare_addr(struct grouplist *grp, struct grouplist *ogrp) +{ + struct addrinfo *ai, *oai; + + if (grp->gr_type != ogrp->gr_type) + return (1); + switch (grp->gr_type) { + case GT_HOST: + ai = grp->gr_ptr.gt_addrinfo; + oai = ogrp->gr_ptr.gt_addrinfo; + for (; ai != NULL && oai != NULL; ai = ai->ai_next, + oai = oai->ai_next) { + if (sacmp(ai->ai_addr, oai->ai_addr, NULL) != 0) + return (1); + } + if (ai != NULL || oai != NULL) + return (1); + break; + case GT_NET: + /* First compare the masks and then the nets. */ + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_mask, NULL) != 0) + return (1); + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask) != 0) + return (1); + break; + default: + return (1); + } + return (0); +} + /* * This algorithm compares two arrays of "n" items. It returns 0 if they are * the "same" and 1 otherwise. Although suboptimal, it is always safe to From nobody Sun May 4 01:11:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZqmnW023fz5tyRf; Sun, 04 May 2025 01:11: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZqmnV4K2jz45FT; Sun, 04 May 2025 01:11:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746321070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tZ+Ix3VEt4M4hylNIA1Iz0sU0Vpm52A07Hi1IL+4M+4=; b=jQFPLJRHnGZxWvILdelXPegeMPZ0oStC3XR6uVd5sXu0sYtiH9vyNhBe7Zac/X1DH3wp0t htjNIh8ELcOxdpNpK1FsrWGUl/UI9qn8RnO380Qmu8HMz3EIXEOs5s+dqdnjuRWMQ7id3S gzeLoZfVSvV4nz6Sf7AYKzAgK1GM2e8nq0aKnM8ro9iaNnqCtJismRCvS8c9GMmTBr+6mS +iyCx1lHj915FOTrEx+PXpX9JVr4N4S5M9OwyYbk5RyDo5e4sBJ/K5YeCJaloDwCh8h0q8 gOleW9BlTPD3JEYOc3Ef+zgbpRNqqOHNBBbeL/oJcUOoVtBz/1mbwJDeBnU5nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746321070; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tZ+Ix3VEt4M4hylNIA1Iz0sU0Vpm52A07Hi1IL+4M+4=; b=vim/CpYlhzaucGDxMkfyC2aDhmcFmX3asYuPbx+HbQEGY6CsR1ONksbkGk3FVZb3XUirzY /R1Yi1EoiBEX+57N0We6N5P//ymnfGROAIp8HcvdO0cPDvP1aEI+LOlIYy+gTlSqc/+/Wr ptTsX9fZcP8zKQMEPpyzxWQXslJ3++WuKYpT67obyGMPREw10GlRuVzrZrmGVoazbrEjQA wB9JK30Hzae1eCVYzNHMTNZA7qWl/dQsMGWCQcOnm3aw0BXCx+Be7d/wXDqziGWlRZR5oZ r7lniji+1m6VSNZZBkWKx4mCvp296TCR6j1tTcCMaQ2SF8k838wtATe8s5BvlQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746321070; a=rsa-sha256; cv=none; b=YwFNXIpHc/4N/3eEBlBCbochOcqFULZzGz+4jmwf57bkikHRsrXpyEA5QBPnBnWaDN0sgy oH8hLQJ3jQFnbGI2iQiOErShR6XYdYbrMyTXoQISPTn87pJqiCRuX7LejYwViopgEgG0D7 TQccpnFnubg58vv15FW21hOsxlUlfJSrk0dsZORrGClOTgvwxeQd0ZaJdSAE0abAT6qz+J GKOM7hTfat3NT1vOK0AVkjbMafS3q/unujk5SN81O21gW/zbJXwVS92Wb0UVDYIYEdbWU0 anktGbQC9zWVtryCTYt1dTV6kZhCn26kbgHQ9jkdQsDfCjmxH+K9seOHcZ+FtA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZqmnV3fxsz16Lg; Sun, 04 May 2025 01:11:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 5441BAwA064104; Sun, 4 May 2025 01:11:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 5441BAHw064101; Sun, 4 May 2025 01:11:10 GMT (envelope-from git) Date: Sun, 4 May 2025 01:11:10 GMT Message-Id: <202505040111.5441BAHw064101@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: 70369e4c2c1a - stable/13 - mountd: Fix updating the network/host(s) for an exports line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 70369e4c2c1a882fcf9abf293b305f4f8a0b0c16 Auto-Submitted: auto-generated The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=70369e4c2c1a882fcf9abf293b305f4f8a0b0c16 commit 70369e4c2c1a882fcf9abf293b305f4f8a0b0c16 Author: Rick Macklem AuthorDate: 2025-05-01 23:17:20 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 01:08:24 +0000 mountd: Fix updating the network/host(s) for an exports line Mountd reloads the exports(5) file(s) when it receives a SIGHUP and then compares the old and new exports, updating any ones that have changed in the kernel. Without this patch, mountd failed to recognize that a network/host(s) had changed, if there was no other change to the exports line. As such, the change of network/hosts(s) did not take effect until the mountd daemon was (re)started. This patch fixes the code so that it checks for changes in the network/host(s) list for an exports line. PR: 286260 (cherry picked from commit 68daa781c1f12e1cfef768030eaff970c3d35543) --- usr.sbin/mountd/mountd.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/usr.sbin/mountd/mountd.c b/usr.sbin/mountd/mountd.c index 251b36e39d8b..575d1dc69079 100644 --- a/usr.sbin/mountd/mountd.c +++ b/usr.sbin/mountd/mountd.c @@ -239,6 +239,7 @@ static void free_exports(struct exportlisthead *); static void read_exportfile(int); static int compare_nmount_exportlist(struct iovec *, int, char *); static int compare_export(struct exportlist *, struct exportlist *); +static int compare_addr(struct grouplist *, struct grouplist *); static int compare_cred(struct expcred *, struct expcred *); static int compare_secflavor(int *, int *, int); static void delete_export(struct iovec *, int, struct statfs *, char *); @@ -2298,7 +2299,8 @@ compare_export(struct exportlist *ep, struct exportlist *oep) grp->gr_exflags == ogrp->gr_exflags && compare_cred(&grp->gr_anon, &ogrp->gr_anon) == 0 && compare_secflavor(grp->gr_secflavors, - ogrp->gr_secflavors, grp->gr_numsecflavors) == 0) + ogrp->gr_secflavors, grp->gr_numsecflavors) == 0 && + compare_addr(grp, ogrp) == 0) break; if (ogrp != NULL) ogrp->gr_flag |= GR_FND; @@ -2311,6 +2313,46 @@ compare_export(struct exportlist *ep, struct exportlist *oep) return (0); } +/* + * Compare the addresses in the group. It is safe to return they are not + * the same when the are, so only return they are the same when they are + * exactly the same. + */ +static int +compare_addr(struct grouplist *grp, struct grouplist *ogrp) +{ + struct addrinfo *ai, *oai; + + if (grp->gr_type != ogrp->gr_type) + return (1); + switch (grp->gr_type) { + case GT_HOST: + ai = grp->gr_ptr.gt_addrinfo; + oai = ogrp->gr_ptr.gt_addrinfo; + for (; ai != NULL && oai != NULL; ai = ai->ai_next, + oai = oai->ai_next) { + if (sacmp(ai->ai_addr, oai->ai_addr, NULL) != 0) + return (1); + } + if (ai != NULL || oai != NULL) + return (1); + break; + case GT_NET: + /* First compare the masks and then the nets. */ + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_mask, NULL) != 0) + return (1); + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask) != 0) + return (1); + break; + default: + return (1); + } + return (0); +} + /* * This algorithm compares two arrays of "n" items. It returns 0 if they are * the "same" and 1 otherwise. Although suboptimal, it is always safe to From nobody Sun May 4 19:16:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZrDtK6nZdz5v7jK; Sun, 04 May 2025 19:16: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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZrDtK6GkVz3TYL; Sun, 04 May 2025 19:16:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746386217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J3WQD1Eyo1V5k2SRxzT8Y5vhelb8Wd3/NxPnJL78eeo=; b=oS6ogCIUBhXy8cF5G4pLnMkfaZb9m7noyx/f6bjdo77jLHwTWkMDw53AE/Lf4BxhYodTuC bpyQXsMMbsDaioJRXds0FilJBwBuakFiCFvYAg3ubAj6sNMi244Tlj/Rb11Cb+27Zav6xR KffB/hrH2xWFZHUAp9LC6ZiF+gGDHzZ5duaQE2r5eVF8/TVh6HiX3eOXtDn2qJa/79Z8d/ 5W8zqJwrMsJt80pmU7MkcMhs1IPBhHvL9JF8HccqdSGSSTdS4SGhztZVYeBCjeSWcMl9w7 mnaOCyXk2pMVnMyNJi/lH2YasmLQ4de/AnKhGCy0OXEyi+Bisx29SDhGYWJsig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746386217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=J3WQD1Eyo1V5k2SRxzT8Y5vhelb8Wd3/NxPnJL78eeo=; b=lJ7tt9E0gOjxpJvCoQ5wIGvyOQlpDct3fbkZuoPnjxyxe1d8NdTqrMM5vXJtMHknf288eI j1zYI+9R6f0BMuznavcZ0ZGL9kXYkIY3GiyIm6Y3Y5HYvD1+LE7oZ4J+rph2HCDZXTOIjz MDGwV0cZ0621QeXmRm5mX43aY4wBiBBwK/8+7pf9Q58j/vIN2tiArCC8WI73bEi4qyyTEk 3GMuff3z+aU/ahri0yjjwkPONQ7ijNdY9kz/qbWnOktksaMuxbviKIkNRYsZ9+EsL6tp61 5ID6VpYHe2hcVQ0f8a2/iJPbkt3Wt+T23Yx3ShHkr2mscz9Q36ABIBva3GV2rQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746386217; a=rsa-sha256; cv=none; b=Ur/YFkpoLENvgVGMxlAsRwWP2/t6OK2bJ5jMuohnVnblUU9iCLYCTbEaYrX5ukTmcXFKnQ 5BLCQqiAgUGuktl6TCxvbukFqfQ5954Cg8xkF16YME40xKnIrn3GToxC5p+8LhJYchsJ8d k9AjoThiVMR07wDY1ylb1PpopYeaCip67xTnDX1va+BsGEJe3U3QSBlKFvJQYrbIru7zaz t/7s8dFIh3hY0NlEyfCEtFB9JGYkZgJYTC9T4tk2wk++v9gJ7m5fJWEEMqcWwnbD47qHis LCb+ehpX9WKVHFQQE5ckeKHo2Nn5R8OcUb1Sk5kvwEUlq3dryzdg1ORXDn0iAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4ZrDtK5kNHzhtP; Sun, 04 May 2025 19:16:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 544JGvI1004985; Sun, 4 May 2025 19:16:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 544JGvc0004982; Sun, 4 May 2025 19:16:57 GMT (envelope-from git) Date: Sun, 4 May 2025 19:16:57 GMT Message-Id: <202505041916.544JGvc0004982@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: 2773c07181a7 - releng/14.3 - mountd: Fix updating the network/host(s) for an exports line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.3 X-Git-Reftype: branch X-Git-Commit: 2773c07181a772d5748e97bf4b26e7ffe4d444d7 Auto-Submitted: auto-generated The branch releng/14.3 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=2773c07181a772d5748e97bf4b26e7ffe4d444d7 commit 2773c07181a772d5748e97bf4b26e7ffe4d444d7 Author: Rick Macklem AuthorDate: 2025-05-01 23:17:20 +0000 Commit: Rick Macklem CommitDate: 2025-05-04 19:13:49 +0000 mountd: Fix updating the network/host(s) for an exports line Mountd reloads the exports(5) file(s) when it receives a SIGHUP and then compares the old and new exports, updating any ones that have changed in the kernel. Without this patch, mountd failed to recognize that a network/host(s) had changed, if there was no other change to the exports line. As such, the change of network/hosts(s) did not take effect until the mountd daemon was (re)started. This patch fixes the code so that it checks for changes in the network/host(s) list for an exports line. PR: 286260 Approved by: re (cperciva) (cherry picked from commit 68daa781c1f12e1cfef768030eaff970c3d35543) (cherry picked from commit 37abcf06f2100eeca41dbd67f8ca8228903ce5e8) --- usr.sbin/mountd/mountd.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/usr.sbin/mountd/mountd.c b/usr.sbin/mountd/mountd.c index f412adbe741e..62d618069c8b 100644 --- a/usr.sbin/mountd/mountd.c +++ b/usr.sbin/mountd/mountd.c @@ -244,6 +244,7 @@ static void free_exports(struct exportlisthead *); static void read_exportfile(int); static int compare_nmount_exportlist(struct iovec *, int, char *); static int compare_export(struct exportlist *, struct exportlist *); +static int compare_addr(struct grouplist *, struct grouplist *); static int compare_cred(struct expcred *, struct expcred *); static int compare_secflavor(int *, int *, int); static void delete_export(struct iovec *, int, struct statfs *, char *); @@ -2350,7 +2351,8 @@ compare_export(struct exportlist *ep, struct exportlist *oep) grp->gr_exflags == ogrp->gr_exflags && compare_cred(&grp->gr_anon, &ogrp->gr_anon) == 0 && compare_secflavor(grp->gr_secflavors, - ogrp->gr_secflavors, grp->gr_numsecflavors) == 0) + ogrp->gr_secflavors, grp->gr_numsecflavors) == 0 && + compare_addr(grp, ogrp) == 0) break; if (ogrp != NULL) ogrp->gr_flag |= GR_FND; @@ -2363,6 +2365,46 @@ compare_export(struct exportlist *ep, struct exportlist *oep) return (0); } +/* + * Compare the addresses in the group. It is safe to return they are not + * the same when the are, so only return they are the same when they are + * exactly the same. + */ +static int +compare_addr(struct grouplist *grp, struct grouplist *ogrp) +{ + struct addrinfo *ai, *oai; + + if (grp->gr_type != ogrp->gr_type) + return (1); + switch (grp->gr_type) { + case GT_HOST: + ai = grp->gr_ptr.gt_addrinfo; + oai = ogrp->gr_ptr.gt_addrinfo; + for (; ai != NULL && oai != NULL; ai = ai->ai_next, + oai = oai->ai_next) { + if (sacmp(ai->ai_addr, oai->ai_addr, NULL) != 0) + return (1); + } + if (ai != NULL || oai != NULL) + return (1); + break; + case GT_NET: + /* First compare the masks and then the nets. */ + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_mask, NULL) != 0) + return (1); + if (sacmp((struct sockaddr *)&grp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&ogrp->gr_ptr.gt_net.nt_net, + (struct sockaddr *)&grp->gr_ptr.gt_net.nt_mask) != 0) + return (1); + break; + default: + return (1); + } + return (0); +} + /* * This algorithm compares two arrays of "n" items. It returns 0 if they are * the "same" and 1 otherwise. Although suboptimal, it is always safe to