From nobody Sun Nov 19 19:30:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYLMD5XJJz51DRr; Sun, 19 Nov 2023 19:30:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYLMD4vbXz4Y6Q; Sun, 19 Nov 2023 19:30:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Cv1dyFZdMv5+O8IsaMhrnbFikyfEyTYzgv7439CT17U=; b=mcFQ9be76UdgZ+6Rb5y9vRWeKBBohgTwRYtZjSVh5IrREoZJZNyTd1mNuhEoYrJ7FcxoOH CarTG1FLC+N7I5gVrHMNib7liOmxiMAsjl+6ZzxdktB0X0GE8nCfc9DCraWtc2hXNoinwG swtZm9qxKqS9hAsonndLJvAEBuKXe69nIn+/NAqC8wAVJO0iNM+4vHQUf5wp9KpexzKS2k CAgc4vC7FsnoP9zs54LYE029G9zvdfyiErT6h309DrEVWxx+aUdu/vKXjBXkbB+CYlmoGd h8iDWEFxpBAsx1Sz9K0zOC5mu1BALFWad/TdMGhvTbKJ0gv8L4BePWbZLdGwQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422216; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Cv1dyFZdMv5+O8IsaMhrnbFikyfEyTYzgv7439CT17U=; b=tFuApgpcZrxEDYlIUcl4rjcSa9T+5Vvugwa10uW6Wmgj3y2aOyYM0Dse8GTABvSBTDSToT /KDgEKM5QhBz2F+oLB43Vtk/Sa45/SD0MEx7anRtyNVFAzLouCBzdKQwRoS6cejvvR2Ef5 W8Gwo4MiiMa7bLaF5tdx3qzMcbqWZRjnCKaHlQqfvyVRyesMUehhXSDWPe/zmUR8M35H93 udwID94qp3tN1pvhzD6IUPosxew7OYFF7G3fzRDwBFlQB6y4ZsEXgz5PykTPlGFJyhug7O bJg8YOq3JCq3ZAyIfFzCSA2JE+t25QYfr83hZoOe6qpwUrYrbY5P7hT2yzMZoQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700422216; a=rsa-sha256; cv=none; b=c18ZcdB0Ut3Dy6lUDLHQMSgdt7eNB6q671OH+EJ84hsJC2Vv/lM22cgB3d1Ux6X1ulvqgz nfg48S30UEpu6mo6DrPtDz+u0oC0LuuMiRBh7gAshZ7JfJk1MNf55e8S5NyqubyDuuGTaG ibblrm/ffw2G3P3pEEqxaN+j9TLy+tpEQR5QjaQhy+b7AoqQKzFEHAvadJ0Yfe0FMYAAV7 OgwwJkdSNI2/bMUNAJRCUsPBIk1PaH8sK5GZ40xCHm4V3dUa8D+0K6+WFW08ojaMZX5MTw Nei5YGXHBtR3o/PrnFf4F5JLPqUkgmRP4A+CN//GMIonA2SOvhor00yaLuBtKA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYLMD3tbFz6n3; Sun, 19 Nov 2023 19:30:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJJUGQX026381; Sun, 19 Nov 2023 19:30:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJJUGBo026372; Sun, 19 Nov 2023 19:30:16 GMT (envelope-from git) Date: Sun, 19 Nov 2023 19:30:16 GMT Message-Id: <202311191930.3AJJUGBo026372@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 9ed67f1307f4 - stable/14 - if_wg: Missing radix unlock can cause deadlock List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9ed67f1307f40b3173ea3b3889c6323f9ef4a58f Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=9ed67f1307f40b3173ea3b3889c6323f9ef4a58f commit 9ed67f1307f40b3173ea3b3889c6323f9ef4a58f Author: Aaron LI AuthorDate: 2023-11-11 13:13:08 +0000 Commit: Kristof Provost CommitDate: 2023-11-18 09:46:21 +0000 if_wg: Missing radix unlock can cause deadlock In function 'wg_aip_add()', the error path of returning ENOMEM when (node == NULL) is forgetting to unlock the radix tree, and thus may lead to a deadlock. PR: 275001 Reviewed by: kp MFC after: 1 week (cherry picked from commit dcc4d2939f789a6d1f272ffeab2068ba2b7525ea) --- sys/dev/wg/if_wg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/wg/if_wg.c b/sys/dev/wg/if_wg.c index 4a21afe82eb5..0ea40b763416 100644 --- a/sys/dev/wg/if_wg.c +++ b/sys/dev/wg/if_wg.c @@ -562,7 +562,7 @@ wg_aip_add(struct wg_softc *sc, struct wg_peer *peer, sa_family_t af, const void node = root->rnh_lookup(&aip->a_addr, &aip->a_mask, &root->rh); if (!node) { free(aip, M_WG); - return (ENOMEM); + ret = ENOMEM; } else if (node != aip->a_nodes) { free(aip, M_WG); aip = (struct wg_aip *)node; From nobody Sun Nov 19 19:30:17 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYLMF64Gvz51DDg; Sun, 19 Nov 2023 19:30:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYLMF5MjLz4Xyv; Sun, 19 Nov 2023 19:30:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N3yi/rvXR7VKdJPnKXsBoGf9r4/u7nHPuYjPbthcjlg=; b=TZnu04YT+prpDeIbsCifYgDgNjvkjT4HCktVj1kuEFUtQCOXwDtJ+BIdqQg0mxBe+SFuYq J/iI6suC8qZsNRbWvnxEiNTiLSpgOYBMkLdybqRq18d3B/0Hte7OcG7jk8R2CvZHAhXcHB wkkGNtzJ+Hh7UJEULvEobpiAOfcd3QqyY2uEQ+akkaB12pudX8eiiTT1+8lZUJrAvLg8Md u7EL6vyxrA697EV2mwTNU5cxfa/LRh4vcWPBVZ+XJMUi7xAmpyjpWQF7vNy6o7Q7Xn8A1V vwPa/WNs7sEA9KXwTHIeBNpIC6vm4MMOAhwxZnBgtHwO/w3WDE9wm0LKRPQKQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422217; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N3yi/rvXR7VKdJPnKXsBoGf9r4/u7nHPuYjPbthcjlg=; b=bqQk+TFgk1na1fJNP02fIVTZ3Zr9QQb7Fme+chvn3sBsOiMcmtB4/YdJ349d9kjBp5SNEa oeHz4CkTVr3Nwve1R8oU3B/UhEPh25jDWB05GK1pX2FDyogU+6Y0+LURkLMz9FWQ5LlF8v USYOgkHAGe7Ncfj5V11djhbbJ13wl8oT4qRXunvho5nrnZIGLe0Bwm1rK7Y8hvNTwhFgKv uctG0emeJAYIwFgk+Ol+JLEVkU1gePZeyibIcqM9LFGwJxhCXbIv4z7nCOTYi6ovDNNZ1R oXT3WR7Z8DSP1AlFLfX1Eayq68yz0PiSUtJrA5QgE+wQVfAWEwF3QF9ot6EIEg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700422217; a=rsa-sha256; cv=none; b=MM3Ha+gPsagOAhKnmF7Iu645LNut8J7aPXBjHi7lFLwNf1/2OmpEH4RiP4LWPmKxMDEXrJ B5rj2S2D60Q0ep3KEtcXeSwVDIW1FLxiJRjGq7SyjnTYaCRmOc6oBNodTMnbT1hniSUjup FSIFgcMTs9GbhpLrqDwpjq00u9q0piKeSzoA/hSAd6k8XC9iGwERFtnK9Q8X+dm/lvqupu pj2ylfjA5286vyLNvF5gNqEwB61XUy1LL2SUViYDapv4RUjpR3D48yO/HHjZWWJIa+vgQE h9KVkutLxyIExlT/Ci66mqFGteI4no0be/gFJDXd1AIg/oZZUbsjxO1gbHzOEA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYLMF47vPz6Z1; Sun, 19 Nov 2023 19:30:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJJUHgq026981; Sun, 19 Nov 2023 19:30:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJJUH62026973; Sun, 19 Nov 2023 19:30:17 GMT (envelope-from git) Date: Sun, 19 Nov 2023 19:30:17 GMT Message-Id: <202311191930.3AJJUH62026973@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 4595a9e9af82 - stable/14 - netstat: fix missing tab in icmp6 output List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4595a9e9af827db03b293a9aed72618bc285f54f Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4595a9e9af827db03b293a9aed72618bc285f54f commit 4595a9e9af827db03b293a9aed72618bc285f54f Author: Kristof Provost AuthorDate: 2023-11-12 17:23:04 +0000 Commit: Kristof Provost CommitDate: 2023-11-19 19:29:50 +0000 netstat: fix missing tab in icmp6 output PR: 275044 Submitted by: sigsys@gmail.com Reviewed by: kp MFC after: 1 week (cherry picked from commit 4b5634f4e56ddc0554c5ebba610d45eb48b9210d) --- usr.bin/netstat/inet6.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/netstat/inet6.c b/usr.bin/netstat/inet6.c index b88e84ecc564..9141cca191ee 100644 --- a/usr.bin/netstat/inet6.c +++ b/usr.bin/netstat/inet6.c @@ -992,7 +992,7 @@ icmp6_stats(u_long off, const char *name, int af1 __unused, int proto __unused) "{N:/bad checksum%s}\n"); p(icp6s_badlen, "\t{:dropped-bad-length/%ju} " "{N:/message%s with bad length}\n"); - p(icp6s_dropped, "{:dropped-no-entry/%ju} " + p(icp6s_dropped, "\t{:dropped-no-entry/%ju} " "{N:/total packet%s dropped due to failed NDP resolution}\n"); #define NELEM (int)(sizeof(icmp6stat.icp6s_inhist)/sizeof(icmp6stat.icp6s_inhist[0])) for (first = 1, i = 0; i < NELEM; i++) From nobody Sun Nov 19 19:30:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYLMN2rn3z51DRx; Sun, 19 Nov 2023 19:30:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYLMN0fQHz4YKW; Sun, 19 Nov 2023 19:30:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j5DQtPbIJVemj5aVUguXQ8njWDGac+jNWyAK3akHIyc=; b=nkQDPK3vbFeDXaeRBjcoRJNU9uEX/gaZ7zH0fafkTMVSA25UmBOEn77Xqp68YsJ2tyoI1z E/2+eqA8nCvXfR6jg5XKxgHLeA8alYLukEQs36Hg73V5wjKBDhs2YD8Ib9+2uoHTeFzzKO dSGlVtE3tmO3EJPzqmSywqSgSaHno9qm89wR/1uUwYu3qD07k37By5HGfgj4crXHSA6kuB wFxieBgCgTbVHs0hCGnZ10jTKr+QYrcgDJStNsoZck2oBNx+j2uI8E3aNE0m6KT1OJxYK4 yO1fBNIg+6kUjQBEA7nMAYZgkH5tNrQzbdRxJ5pLlNqCbG6fW3/KPyKXOPj6Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=j5DQtPbIJVemj5aVUguXQ8njWDGac+jNWyAK3akHIyc=; b=xGDjwVjunukCxp8+Ok3gixH91nWp/9zKiyQjpah5X938McGsvCAIbWN8Ymfb/+SkYHadmC lxIVrxPZSHqG68qfODXytkw45OsDXlj0dAxiKmuD343VfnQX9SdqmoLTX6KntIsmcQA2MV 0GCdn9hRiFF3C8+dpqiGigjiGzqZr3886lp12FY2+jnZCYH3MEd47RGBMtUDEFGBAg+fG3 AEoplFjhpB8iu7bxRDWgeRXWvz9+GLa4+dEB1RKGnbj/qIJbnMl7JsdYLydUSnFyUULO5C 8y50uzwprht/+OqDSgRERfYXmVPegNCP6HtSXPQ247MQ+ElV0QzQy7as8DsWsA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700422224; a=rsa-sha256; cv=none; b=Mm+ALcT5Kme6A2GMNBpgQSVIDyZ+c2n6a5BzNFeBJTgi1GKbRMJHWMD66I2ssuHpPxdMF0 ZOEKHMg+D8ofW3PSoqAYrIrFOmUmNHoY8nsinkf6J9yobEFlmJ3aCywpH9EdascvDvCh+p 0sATKDcsI5koO2BkJNnvJlne+/PDmjo0enVzBV8G4jT+vVHCOmSXktqwK9ycLQv0xndETo Uf60SdifXx44c1yS0FuI4drWNz9/xS6enGXLcWvMvm2vg54UHi3zv91ty91NK6baluntf3 N8ZXuptC1A0EQs7ITioOW9v73lMjWq7Zh/HAfwQKbOfjMJqzd00hYQRDps4hbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYLMM6smGz6yw; Sun, 19 Nov 2023 19:30:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJJUNii027452; Sun, 19 Nov 2023 19:30:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJJUNmd027449; Sun, 19 Nov 2023 19:30:23 GMT (envelope-from git) Date: Sun, 19 Nov 2023 19:30:23 GMT Message-Id: <202311191930.3AJJUNmd027449@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 16c65f7ae15e - stable/13 - if_wg: Missing radix unlock can cause deadlock List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 16c65f7ae15e6ca8b36fc546e038c59270c87ccc Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=16c65f7ae15e6ca8b36fc546e038c59270c87ccc commit 16c65f7ae15e6ca8b36fc546e038c59270c87ccc Author: Aaron LI AuthorDate: 2023-11-11 13:13:08 +0000 Commit: Kristof Provost CommitDate: 2023-11-19 19:29:35 +0000 if_wg: Missing radix unlock can cause deadlock In function 'wg_aip_add()', the error path of returning ENOMEM when (node == NULL) is forgetting to unlock the radix tree, and thus may lead to a deadlock. PR: 275001 Reviewed by: kp MFC after: 1 week (cherry picked from commit dcc4d2939f789a6d1f272ffeab2068ba2b7525ea) --- sys/dev/wg/if_wg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/wg/if_wg.c b/sys/dev/wg/if_wg.c index e8a258edc4da..6cd5c985a89f 100644 --- a/sys/dev/wg/if_wg.c +++ b/sys/dev/wg/if_wg.c @@ -566,7 +566,7 @@ wg_aip_add(struct wg_softc *sc, struct wg_peer *peer, sa_family_t af, const void node = root->rnh_lookup(&aip->a_addr, &aip->a_mask, &root->rh); if (!node) { free(aip, M_WG); - return (ENOMEM); + ret = ENOMEM; } else if (node != aip->a_nodes) { free(aip, M_WG); aip = (struct wg_aip *)node; From nobody Sun Nov 19 19:30:25 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYLMP25xrz51DPR; Sun, 19 Nov 2023 19:30:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYLMP1gK5z4YbC; Sun, 19 Nov 2023 19:30:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422225; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GRDOuz7EDLkkbSDGXVbYFV+k/Fd+IK/Gu5YKrK4O6gg=; b=GighU/HoephfxWIhBoJD04vPSGxDHHNeKtiCbeGOVMJWdYBARer92KJ+2JljhE28yjWzGa gzVYQn+8w441reX3fQdsQfCefry3iW29o/2ofxtmJXYd9EpDRhZ/3RgjV0maVim7adFZj5 1oguVgDlacmBXSskzwGYT4bURa3rpIpGIii6o2W2uAFX84lq9C4kObqWUFAqSRDOcvlhTp KOnjnLsAoZ3MIakCDYqkexEMUferSxcfnrXetPUMC/7S5MnZrpk19dXurOM3J60H6/TfMU VUfQwrHv68q4HFcgo9MLDRmPzt5M4DVdixeMCJLITwTeiGvKWT6weWhpa/S3ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700422225; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GRDOuz7EDLkkbSDGXVbYFV+k/Fd+IK/Gu5YKrK4O6gg=; b=OeKizGFWP+kgoRnCke0DWI6jPrLGkQhm92lA4iInCedd99/ApggWxP7djeVR07/Pl5zaLj 9HEM6xQzAJ3uysasJxWRHLUi55DhlvWGk4dcI+yIMZDBYblXLq7cS+uDr7ojYIIGV9wDrk Oq6Wp6JboLr5XbCmbB0bE6KX64TledXUZOhr4T6AdawqfHuqJ1VMSx2nn/LpHfYUzy2nsz TUExR87eR+LBtikT5r9Nmc80AUN3p5QhTGV7n0ZcAyuaGDCxdITKAPidTD8IqE1LBv+9tV nEem8yCj7SLmZW7+o5eS+vGMbV8DPzkBkg6+NeslZxxoadZWIwhxLR2TJdNfCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700422225; a=rsa-sha256; cv=none; b=N0ADn3K4mlsjc9YA9X9T6hPQZFPwowySAAnt5l8zKeqACSuTd51HvHtM1mK/1Cp8yrecY1 LgQKTfOECzp6MJ7Z7qShQGJHpq5tqs3DgnkkHnVTDCxcnPfi7L1/z27M3gbIw9/jPFU9Ct 53uqkRq95yiEqHwEBrA9MLAhCO4ThMxa0AQp8GTMjJYSqD8s+m9p6WX85bPOZoucpIbC0d tcQQ/ArFcsMC/gGb/EQ79Dw2odR59DY50W3oZuVcWm6wcclIGxGXb9lS1nzy1StnLWUBB/ o1M8pWbLVc3McXUEdpwo+Ewt821HesQzXPoV9F69NfFydVR5ZCX89FwsJ8zMmA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYLMP0nG9z6lc; Sun, 19 Nov 2023 19:30:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJJUPEl027500; Sun, 19 Nov 2023 19:30:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJJUPHq027497; Sun, 19 Nov 2023 19:30:25 GMT (envelope-from git) Date: Sun, 19 Nov 2023 19:30:25 GMT Message-Id: <202311191930.3AJJUPHq027497@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 0a97a28c6c9f - stable/13 - netstat: fix missing tab in icmp6 output List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0a97a28c6c9f00997733bebd241403097f533404 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=0a97a28c6c9f00997733bebd241403097f533404 commit 0a97a28c6c9f00997733bebd241403097f533404 Author: Kristof Provost AuthorDate: 2023-11-12 17:23:04 +0000 Commit: Kristof Provost CommitDate: 2023-11-19 19:29:44 +0000 netstat: fix missing tab in icmp6 output PR: 275044 Submitted by: sigsys@gmail.com Reviewed by: kp MFC after: 1 week (cherry picked from commit 4b5634f4e56ddc0554c5ebba610d45eb48b9210d) --- usr.bin/netstat/inet6.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/netstat/inet6.c b/usr.bin/netstat/inet6.c index b88e84ecc564..9141cca191ee 100644 --- a/usr.bin/netstat/inet6.c +++ b/usr.bin/netstat/inet6.c @@ -992,7 +992,7 @@ icmp6_stats(u_long off, const char *name, int af1 __unused, int proto __unused) "{N:/bad checksum%s}\n"); p(icp6s_badlen, "\t{:dropped-bad-length/%ju} " "{N:/message%s with bad length}\n"); - p(icp6s_dropped, "{:dropped-no-entry/%ju} " + p(icp6s_dropped, "\t{:dropped-no-entry/%ju} " "{N:/total packet%s dropped due to failed NDP resolution}\n"); #define NELEM (int)(sizeof(icmp6stat.icp6s_inhist)/sizeof(icmp6stat.icp6s_inhist[0])) for (first = 1, i = 0; i < NELEM; i++) From nobody Sun Nov 19 21:03:26 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYNQk6s0Tz51Kqg; Sun, 19 Nov 2023 21:03:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYNQk58Qjz3MGx; Sun, 19 Nov 2023 21:03:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700427806; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XZ7MJQoCF/wGVLfRWh380HJ6W8HgfQSWNSRCYOVSP9w=; b=g8QdgyRH7Xq8EmJf5NySN1T9tCzK6EPGwBGFIBstcjff2nix2wrsuF13mE7hmirD78ud2J g1FO7iJuOFC/ohkQQIh8Pki3c+4/ZPZ8AI/nrZfdkQUV3OiQjksiMm+y26Nxm3IkYcJzqX RKD9S23LJoEZHePDnH4/wzXFeBamv3aTqRJkXgtmBs+tG0drEFNuzhtmFuzLY7JBGjMGa/ wc5XyL2KHi1uTvgl1irYgIH2NWnhglB9wsk6MWQWdrs62IVnHz3RxjxoJIiYAQZ1VA2Rjq nAK3Wbkrqn8zrMlGl6aWmkJXOpcMcqXpvSz37I05SO7J3CXt2QNuB60FKFrMNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700427806; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XZ7MJQoCF/wGVLfRWh380HJ6W8HgfQSWNSRCYOVSP9w=; b=c0oeMictE3ZuwDC3phZpRZCJNGZU7NFOHYgnqcKveX9ota2Mfo/HhdmMWpTIJZ1kmYqZJc 9t4FHAeCJXf1bObYpnM6CmDgnrfL6sv2Ue5VP95tltUZH1Qi2wVsXEVG+AajRA8oH/XCGT aPE0gF34Pde5my25y5nvxpS8niMbkV1G1JaL4TR6t2mAgJ28xQYx/reOPZEQDJEMTro0Ci 56FqWaWg+nZE5fQ19z1jXLDTWmKuqjIPGXVl++Pq2j2NdQ9dhfj2crD0XySCTdpveDd5c2 YCmNa1OHhkZNB8s3DppblHEZLwGbS+N2VkFfp9ijmRWHtu8w5uMAM+kefSyJfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700427806; a=rsa-sha256; cv=none; b=c16VKexa5rat3aaj1L7SUfjBRYY/h6gULPiYglJjQUd1403LezL+JfzHHRJxw9JBqjYn2a kMuhFFR5zlg0ef01Rt6+X0duZ6taf50yzYeQU6FKejTSDnj+a+xkojUuoSF6mPEAgM1dQ9 A21mwshIVm4rPDqpZ0gsvR8t4ecJJ3Bl84/6bvc+9IUBR3U2/uD6H0sKNctlStrgDSrRxV YrJtfAT5gECz7eW7qa8WyJESORNt4NKkQ4da2+FCCNQazjj4AKZlbTcvAIfKYFNNqlwTQH 6/WYbpLAWNTlI20GYD2vuaA98Lqz7hr1B2tNthHHGWcYP9u1LgJgyunleuMh6w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYNQk4GQRz9KT; Sun, 19 Nov 2023 21:03:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJL3Qg1085326; Sun, 19 Nov 2023 21:03:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJL3Q7N085323; Sun, 19 Nov 2023 21:03:26 GMT (envelope-from git) Date: Sun, 19 Nov 2023 21:03:26 GMT Message-Id: <202311192103.3AJL3Q7N085323@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Alfredo Dal'Ava Junior" Subject: git: 91e53779b4fc - stable/14 - powerpc: Implement fpu_kern_enter/fpu_kern_leave List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: alfredo X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 91e53779b4fc39e755a03190f785ce0cf3f83eb7 Auto-Submitted: auto-generated The branch stable/14 has been updated by alfredo: URL: https://cgit.FreeBSD.org/src/commit/?id=91e53779b4fc39e755a03190f785ce0cf3f83eb7 commit 91e53779b4fc39e755a03190f785ce0cf3f83eb7 Author: Shawn Anastasio AuthorDate: 2023-09-17 14:40:48 +0000 Commit: Alfredo Dal'Ava Junior CommitDate: 2023-11-19 20:55:24 +0000 powerpc: Implement fpu_kern_enter/fpu_kern_leave Summary: Provide an implementation of fpu_kern_enter/fpu_kern_leave for PPC to enable FPU, VSX, and Altivec usage in-kernel. The functions currently only support FPU_KERN_NOCTX, but this is sufficient for ossl(1) and many other users of the API. This patchset has been tested on powerpc64le using a modified version of the in-tree tools/tools/crypto/cryptocheck.c tool to check for FPU/Vec register clobbering along with a follow-up patch to enable ossl(4) on powerpc64*. Reviewed by: jhibbits MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D41540 Relnotes: yes (cherry picked from commit a6662c37b6ffee46e18be5f7570149edc64c1d0b) --- share/man/man9/fpu_kern.9 | 5 +- sys/powerpc/include/altivec.h | 2 + sys/powerpc/include/fpu.h | 20 ++++++ sys/powerpc/include/pcb.h | 7 ++- sys/powerpc/powerpc/altivec.c | 34 +++++++++- sys/powerpc/powerpc/exec_machdep.c | 21 +++---- sys/powerpc/powerpc/fpu.c | 125 +++++++++++++++++++++++++++++++++++++ sys/sys/param.h | 2 +- 8 files changed, 199 insertions(+), 17 deletions(-) diff --git a/share/man/man9/fpu_kern.9 b/share/man/man9/fpu_kern.9 index c9dd58e96adf..92dc0eaa7e17 100644 --- a/share/man/man9/fpu_kern.9 +++ b/share/man/man9/fpu_kern.9 @@ -185,7 +185,8 @@ and false otherwise. .Sh NOTES The .Nm -is currently implemented only for the i386, amd64, and arm64 architectures. +is currently implemented only for the i386, amd64, arm64, and powerpc +architectures. .Pp There is no way to handle floating point exceptions raised from kernel mode. @@ -205,6 +206,8 @@ facitily and this manual page were written by .An Konstantin Belousov Aq Mt kib@FreeBSD.org . The arm64 support was added by .An Andrew Turner Aq Mt andrew@FreeBSD.org . +The powerpc support was added by +.An Shawn Anastasio Aq Mt sanastasio@raptorengineering.com . .Sh BUGS .Fn fpu_kern_leave should probably have type diff --git a/sys/powerpc/include/altivec.h b/sys/powerpc/include/altivec.h index 581a568b7034..e5151529f698 100644 --- a/sys/powerpc/include/altivec.h +++ b/sys/powerpc/include/altivec.h @@ -35,5 +35,7 @@ void enable_vec(struct thread *); void save_vec(struct thread *); void save_vec_nodrop(struct thread *); +void enable_vec_kern(void); +void disable_vec(struct thread *td); #endif /* _MACHINE_ALTIVEC_H_ */ diff --git a/sys/powerpc/include/fpu.h b/sys/powerpc/include/fpu.h index 30df3a470b09..aa5640ea31fb 100644 --- a/sys/powerpc/include/fpu.h +++ b/sys/powerpc/include/fpu.h @@ -76,6 +76,26 @@ void save_fpu(struct thread *); void save_fpu_nodrop(struct thread *); void cleanup_fpscr(void); u_int get_fpu_exception(struct thread *); +void enable_fpu_kern(void); +void disable_fpu(struct thread *td); + +/* + * Flags for fpu_kern_alloc_ctx(), fpu_kern_enter() and fpu_kern_thread(). + */ +#define FPU_KERN_NORMAL 0x0000 +#define FPU_KERN_NOWAIT 0x0001 +#define FPU_KERN_KTHR 0x0002 +#define FPU_KERN_NOCTX 0x0004 + +struct fpu_kern_ctx; + +struct fpu_kern_ctx *fpu_kern_alloc_ctx(u_int flags); +void fpu_kern_free_ctx(struct fpu_kern_ctx *ctx); +void fpu_kern_enter(struct thread *td, struct fpu_kern_ctx *ctx, + u_int flags); +int fpu_kern_leave(struct thread *td, struct fpu_kern_ctx *ctx); +int fpu_kern_thread(u_int flags); +int is_fpu_kern_thread(u_int flags); #endif /* _KERNEL */ diff --git a/sys/powerpc/include/pcb.h b/sys/powerpc/include/pcb.h index e5e6e3223406..050ada6b0f64 100644 --- a/sys/powerpc/include/pcb.h +++ b/sys/powerpc/include/pcb.h @@ -48,7 +48,7 @@ struct pcb { register_t pcb_toc; /* toc pointer */ register_t pcb_lr; /* link register */ register_t pcb_dscr; /* dscr value */ - register_t pcb_fscr; + register_t pcb_fscr; register_t pcb_tar; struct pmap *pcb_pm; /* pmap of our vmspace */ jmp_buf *pcb_onfault; /* For use during @@ -56,11 +56,14 @@ struct pcb { int pcb_flags; #define PCB_FPU 0x1 /* Process uses FPU */ #define PCB_FPREGS 0x2 /* Process had FPU registers initialized */ -#define PCB_VEC 0x4 /* Process had Altivec initialized */ +#define PCB_VEC 0x4 /* Process uses Altivec */ #define PCB_VSX 0x8 /* Process had VSX initialized */ #define PCB_CDSCR 0x10 /* Process had Custom DSCR initialized */ #define PCB_HTM 0x20 /* Process had HTM initialized */ #define PCB_CFSCR 0x40 /* Process had FSCR updated */ +#define PCB_KERN_FPU 0x80 /* Kernel is using FPU/Vector unit */ +#define PCB_KERN_FPU_NOSAVE 0x100 /* FPU/Vec state not saved for kernel use */ +#define PCB_VECREGS 0x200 /* Process had Altivec registers initialized */ struct fpu { union { #if _BYTE_ORDER == _BIG_ENDIAN diff --git a/sys/powerpc/powerpc/altivec.c b/sys/powerpc/powerpc/altivec.c index 16e4477703d2..5072cf3dc6f6 100644 --- a/sys/powerpc/powerpc/altivec.c +++ b/sys/powerpc/powerpc/altivec.c @@ -105,10 +105,11 @@ enable_vec(struct thread *td) * the thread, initialise the vector registers and VSCR to 0, and * set the flag to indicate that the vector unit is in use. */ + pcb->pcb_flags |= PCB_VEC; tf->srr1 |= PSL_VEC; - if (!(pcb->pcb_flags & PCB_VEC)) { + if (!(pcb->pcb_flags & PCB_VECREGS)) { memset(&pcb->pcb_vec, 0, sizeof pcb->pcb_vec); - pcb->pcb_flags |= PCB_VEC; + pcb->pcb_flags |= PCB_VECREGS; } /* @@ -170,3 +171,32 @@ save_vec_nodrop(struct thread *td) if (td == PCPU_GET(vecthread)) save_vec_int(td); } + +void +enable_vec_kern(void) +{ + mtmsr(mfmsr() | PSL_VEC); +} + +void +disable_vec(struct thread *td) +{ + register_t msr; + struct pcb *pcb; + struct trapframe *tf; + + pcb = td->td_pcb; + tf = trapframe(td); + + /* Disable PSL_VEC in kernel (if enabled) */ + msr = mfmsr() & ~PSL_VEC; + isync(); + mtmsr(msr); + + /* + * Disable PSL_VEC in userspace. It will be re-enabled when + * an Altivec instruction is executed. + */ + tf->srr1 &= ~PSL_VEC; + pcb->pcb_flags &= ~PCB_VEC; +} diff --git a/sys/powerpc/powerpc/exec_machdep.c b/sys/powerpc/powerpc/exec_machdep.c index b42978ff94a8..05d3a3cf79ba 100644 --- a/sys/powerpc/powerpc/exec_machdep.c +++ b/sys/powerpc/powerpc/exec_machdep.c @@ -441,12 +441,14 @@ grab_mcontext(struct thread *td, mcontext_t *mcp, int flags) * Repeat for Altivec context */ - if (pcb->pcb_flags & PCB_VEC) { - KASSERT(td == curthread, - ("get_mcontext: fp save not curthread")); - critical_enter(); - save_vec(td); - critical_exit(); + if (pcb->pcb_flags & PCB_VECREGS) { + if (pcb->pcb_flags & PCB_VEC) { + KASSERT(td == curthread, + ("get_mcontext: altivec save not curthread")); + critical_enter(); + save_vec(td); + critical_exit(); + } mcp->mc_flags |= _MC_AV_VALID; mcp->mc_vscr = pcb->pcb_vec.vscr; mcp->mc_vrsave = pcb->pcb_vec.vrsave; @@ -543,11 +545,8 @@ set_mcontext(struct thread *td, mcontext_t *mcp) } if (mcp->mc_flags & _MC_AV_VALID) { - if ((pcb->pcb_flags & PCB_VEC) != PCB_VEC) { - critical_enter(); - enable_vec(td); - critical_exit(); - } + /* enable_vec() will happen lazily on a fault */ + pcb->pcb_flags |= PCB_VECREGS; pcb->pcb_vec.vscr = mcp->mc_vscr; pcb->pcb_vec.vrsave = mcp->mc_vrsave; memcpy(pcb->pcb_vec.vr, mcp->mc_avec, sizeof(mcp->mc_avec)); diff --git a/sys/powerpc/powerpc/fpu.c b/sys/powerpc/powerpc/fpu.c index cc1381046b4b..8f5df2f7d576 100644 --- a/sys/powerpc/powerpc/fpu.c +++ b/sys/powerpc/powerpc/fpu.c @@ -42,6 +42,7 @@ #include #include #include +#include static void save_fpu_int(struct thread *td) @@ -259,3 +260,127 @@ get_fpu_exception(struct thread *td) return ucode; } +void +enable_fpu_kern(void) +{ + register_t msr; + + msr = mfmsr() | PSL_FP; + + if (cpu_features & PPC_FEATURE_HAS_VSX) + msr |= PSL_VSX; + + mtmsr(msr); +} + +void +disable_fpu(struct thread *td) +{ + register_t msr; + struct pcb *pcb; + struct trapframe *tf; + + pcb = td->td_pcb; + tf = trapframe(td); + + /* Disable FPU in kernel (if enabled) */ + msr = mfmsr() & ~(PSL_FP | PSL_VSX); + isync(); + mtmsr(msr); + + /* + * Disable FPU in userspace. It will be re-enabled when + * an FP or VSX instruction is executed. + */ + tf->srr1 &= ~(PSL_FP | PSL_VSX); + pcb->pcb_flags &= ~(PCB_FPU | PCB_VSX); +} + +#ifndef __SPE__ +/* + * XXX: Implement fpu_kern_alloc_ctx/fpu_kern_free_ctx once fpu_kern_enter and + * fpu_kern_leave can handle !FPU_KERN_NOCTX. + */ +struct fpu_kern_ctx { +#define FPU_KERN_CTX_DUMMY 0x01 /* avoided save for the kern thread */ +#define FPU_KERN_CTX_INUSE 0x02 + uint32_t flags; +}; + +void +fpu_kern_enter(struct thread *td, struct fpu_kern_ctx *ctx, u_int flags) +{ + struct pcb *pcb; + + pcb = td->td_pcb; + + KASSERT((flags & FPU_KERN_NOCTX) != 0 || ctx != NULL, + ("ctx is required when !FPU_KERN_NOCTX")); + KASSERT(ctx == NULL || (ctx->flags & FPU_KERN_CTX_INUSE) == 0, + ("using inuse ctx")); + KASSERT((pcb->pcb_flags & PCB_KERN_FPU_NOSAVE) == 0, + ("recursive fpu_kern_enter while in PCB_KERN_FPU_NOSAVE state")); + + if ((flags & FPU_KERN_NOCTX) != 0) { + critical_enter(); + + if (pcb->pcb_flags & PCB_FPU) { + save_fpu(td); + pcb->pcb_flags |= PCB_FPREGS; + } + enable_fpu_kern(); + + if (pcb->pcb_flags & PCB_VEC) { + save_vec(td); + pcb->pcb_flags |= PCB_VECREGS; + } + enable_vec_kern(); + + pcb->pcb_flags |= PCB_KERN_FPU | PCB_KERN_FPU_NOSAVE; + return; + } + + KASSERT(0, ("fpu_kern_enter with !FPU_KERN_NOCTX not implemented!")); +} + +int +fpu_kern_leave(struct thread *td, struct fpu_kern_ctx *ctx) +{ + struct pcb *pcb; + + pcb = td->td_pcb; + + if ((pcb->pcb_flags & PCB_KERN_FPU_NOSAVE) != 0) { + KASSERT(ctx == NULL, ("non-null ctx after FPU_KERN_NOCTX")); + KASSERT(PCPU_GET(fpcurthread) == NULL, + ("non-NULL fpcurthread for PCB_FP_NOSAVE")); + CRITICAL_ASSERT(td); + + /* Disable FPU, VMX, and VSX */ + disable_fpu(td); + disable_vec(td); + + pcb->pcb_flags &= ~PCB_KERN_FPU_NOSAVE; + + critical_exit(); + } else { + KASSERT(0, ("fpu_kern_leave with !FPU_KERN_NOCTX not implemented!")); + } + + pcb->pcb_flags &= ~PCB_KERN_FPU; + + return 0; +} + +int +is_fpu_kern_thread(u_int flags __unused) +{ + struct pcb *curpcb; + + if ((curthread->td_pflags & TDP_KTHREAD) == 0) + return (0); + curpcb = curthread->td_pcb; + return ((curpcb->pcb_flags & PCB_KERN_FPU) != 0); +} + +#endif /* !__SPE__ */ diff --git a/sys/sys/param.h b/sys/sys/param.h index e47588c7b879..438b4808817b 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 1400500 +#define __FreeBSD_version 1400501 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Sun Nov 19 21:03:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYNQm27Gdz51L4N; Sun, 19 Nov 2023 21:03:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYNQl6Bq5z3M5d; Sun, 19 Nov 2023 21:03:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700427807; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q0mkvE9HRAbxRfeN5BXqtgglo65EZepE3koGJlY8uII=; b=LbitBKJhJVwLU/JsQrmiPlG2r2YyzuaMVwmAO8whf21Ww8nDKO59wHapPp5crlBIRsNqko 3R76nZCJ8fL+Cu+J0tDCzw06SyEV1zMtkmi+LpiJmoI8bEXHYD1ij/CGawhtLVaJl72qLh KeUGq1uM1ULTsoaM6mAwWldlYj4zErmWVLvrcDeSNOjLjVStI0aIXSv8p8cGIVcetq1AR3 KYoeULWGIEsj/Xu10E/0q+a3VVUWc1TmK8j0PNsfQWwqMZmZ1Wn6oxjio6raV+MRavvzNT HSbSiGsYKramuXgL6k5wPE8rE1NkO0ldnZcwEycyUDU6HyBslgO6YAIfErwiYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700427807; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q0mkvE9HRAbxRfeN5BXqtgglo65EZepE3koGJlY8uII=; b=F2o8VApdOnxpFrS8d+OgCC2dGAys3iFRYuVFeizShaiX8bimeqZQkNraASplwKRXYTUUcP afiyhdEVaoWo4rMlK2XpClifeF1NZiWMSSrx7rLWD9Wn5xUFrrgfUU/QIipL3iQKX9a1iI YrbGSyWY8rcw5c/12DFrV5HasGp8uFQfVT2/495lzpd/Z0kKQuTWswZY+0/xJxt3o2AkL8 WOCsiVPF/YDmZ8UPRkjcn74KuUKhhzMBpsGpJDLFv/qdZ58RoJUt0lCyvIvs7OrpTDwJ2T 5waoaZIadDlo62JNWzkXhqbSoiAMsP888Z97IeZt675LyP7c42VFbFkIsVl2tg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700427807; a=rsa-sha256; cv=none; b=ZdBvyYxbcJid157CKekWsTO6IkpJLXt5VZ9cBOuugpodzcndulYei+Znz9xLbHtSRT9oPa P6ndz9wBtnh6GwtSHDjleceKiPQa8VCWBUz2WXXAp60JaMqZsjDakuyO6Bs2m/tk49rEOk Z+t4P08rd5WFsxKAYPSAAgxkTk1fUUZbLelcdbqDEhFSQc3OXnXqHz6H2SbyZ6d/95chOt 46kA9p68d0PI+Q7lbBBZNG6/SD1GhpRTC/DkZGj747+nBq2hMJbqkT7Kue2Ff9RAK+X4a6 kYpISS9m+u/Os2chxK1NQ/0XFXLsRnfpLp7oQ0aPjQDa7uXHcIGvvdZ3v57Rtg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYNQl5J3Lz9T9; Sun, 19 Nov 2023 21:03:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AJL3R4H085378; Sun, 19 Nov 2023 21:03:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AJL3R3H085375; Sun, 19 Nov 2023 21:03:27 GMT (envelope-from git) Date: Sun, 19 Nov 2023 21:03:27 GMT Message-Id: <202311192103.3AJL3R3H085375@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Alfredo Dal'Ava Junior" Subject: git: 62646709fd67 - stable/14 - powerpc: Fix inconsistent Altivec handling in set_mcontext List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: alfredo X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 62646709fd67d239bba13cb1c59f3720c6f59a3d Auto-Submitted: auto-generated The branch stable/14 has been updated by alfredo: URL: https://cgit.FreeBSD.org/src/commit/?id=62646709fd67d239bba13cb1c59f3720c6f59a3d commit 62646709fd67d239bba13cb1c59f3720c6f59a3d Author: Shawn Anastasio AuthorDate: 2023-11-03 17:40:18 +0000 Commit: Alfredo Dal'Ava Junior CommitDate: 2023-11-19 20:57:57 +0000 powerpc: Fix inconsistent Altivec handling in set_mcontext When support for fpu_kern_enter/fpu_kern_leave was added to powerpc, set_mcontext was updated to handle Altivec state restoration in the same way that the FPU state by lazily restoring the context on the first trap. However the function was not correctly updated to unconditionally clear the PCB_VEC and PSL_VEC bits from the pcb's flags and srr1 respectively which can sometimes result in a mismatch between a process's MSR[VEC] state and its pcb_flags. Fix this by simply clearing the VEC flags unconditionally in set_mcontext, which is already done for FPU/VSX. Fixes: a6662c37b6ffe ("powerpc: Implement fpu_kern_enter/fpu_kern_leave") Reviewed by: alfredo MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D42417 (cherry picked from commit 270f75cf3433807d124cdf1f0072ab801532f425) --- sys/powerpc/powerpc/exec_machdep.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sys/powerpc/powerpc/exec_machdep.c b/sys/powerpc/powerpc/exec_machdep.c index 05d3a3cf79ba..0b1751a76454 100644 --- a/sys/powerpc/powerpc/exec_machdep.c +++ b/sys/powerpc/powerpc/exec_machdep.c @@ -528,8 +528,8 @@ set_mcontext(struct thread *td, mcontext_t *mcp) * Additionally, ensure VSX is disabled as well, as it is illegal * to leave it turned on when FP or VEC are off. */ - tf->srr1 &= ~(PSL_FP | PSL_VSX); - pcb->pcb_flags &= ~(PCB_FPU | PCB_VSX); + tf->srr1 &= ~(PSL_FP | PSL_VSX | PSL_VEC); + pcb->pcb_flags &= ~(PCB_FPU | PCB_VSX | PCB_VEC); if (mcp->mc_flags & _MC_FP_VALID) { /* enable_fpu() will happen lazily on a fault */ @@ -550,9 +550,6 @@ set_mcontext(struct thread *td, mcontext_t *mcp) pcb->pcb_vec.vscr = mcp->mc_vscr; pcb->pcb_vec.vrsave = mcp->mc_vrsave; memcpy(pcb->pcb_vec.vr, mcp->mc_avec, sizeof(mcp->mc_avec)); - } else { - tf->srr1 &= ~PSL_VEC; - pcb->pcb_flags &= ~PCB_VEC; } return (0); From nobody Mon Nov 20 01:40:19 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVZC67Gyz51gSd; Mon, 20 Nov 2023 01:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVZC5PQnz4D3d; Mon, 20 Nov 2023 01:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2B6s/TCE2tiuO1MZTvQkF1fgCZ4ypzQ8FJPMC10il58=; b=kngW9H4VaJ8iezQ6yD1Z+yOxKzxTIJBznW5WDP1Sonmy95iGVePUlPtcMrkR7bB1EhRtP+ eU3UnJrSxeE3xKzDl5jcyGChjh34MLFQXrUbI+jjFQe6PTYSP6i+VKwMUZfUpDj6Nln2ck 78BpkSoTK/UFLngGIEHBAIxlfIY8jTJNtxY2uP7hYP+mUFk9Q0KBLNbQOVahgKugDzhYyB U15pzcGBg+4wOHGwjUbQLq/FYPP1K0PtR15xhXavMM+i+oKEwszV4JL3Pvg0Rb/KMAKxU1 8cpT8JHZH07w9QTc7fZnUyme/nkhksyCv/SF1Y5LfH3y2t2Y3xL+noOH2LJ8PQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2B6s/TCE2tiuO1MZTvQkF1fgCZ4ypzQ8FJPMC10il58=; b=XFjL+hgDM1EeSvesEeAql0Z8i30AhYuYLne3PMX93oJ1UHZXII0WvLaNTAROyRQoML027V VKhZ5bYEWxfxyl4W619qKt85odsVwfER9oV494heabjiNJmcYURlDz2mYYMwSpCb1PEvlR LqU7pzMlTSP5qwwngXcXtERIBPOHEbMHydhDsGIgUO7tnYOWedKvFgUmOytchZPM+LGT7E 83E9ZIpL59qV5bi91H4csDMEU9sLUIpfZz/u6Sx9krN/6gcRTggpQNRl4AxO2hBdkVyCNR jRqIyzznrHqYAfPKiHzKUXmDxcO1RN1GXbSSNZ3fpAZvBIdYAkmRxxP9eAcw/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444419; a=rsa-sha256; cv=none; b=nCNwfwsVPVA85PBVO3yi/WgngKwyiIcJDTrTniMxdgqBcRSNSy0jWdczGG/C4VstdHMKS3 c3AYOEtZUWIy6ZvhMSY7cDl4u4eXernoINeWW9bgtaVJes4iowOw3lIwjAHDrxLT7RuS/2 p8kuZZhujgv3PzvJJnaybnr2DuOq5FA+Bg9nwoQKqGCDLX6F2vb7AhHh1cELzgPFCUX9Gy nEcdE7pJjZcrliV47dtbz7OsE/CTedOu2gFRHnEOqdU6BWMVYWVV3FFGjF+Buj/SF5/diQ /k1C2agpW/rbZugWdjrV2NDs82OqIb3kR7ghH8kcIlp7H1si2RsGtQH58/6jcQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVZC4Rk1zY5x; Mon, 20 Nov 2023 01:40:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1eJJK044299; Mon, 20 Nov 2023 01:40:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1eJao044296; Mon, 20 Nov 2023 01:40:19 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:40:19 GMT Message-Id: <202311200140.3AK1eJao044296@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: 071364c85081 - stable/14 - reboot(8): adapt for vmmeter v_swappgsin expansion to 64bit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 071364c85081981b22bbf8651fb5307a543e9de9 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=071364c85081981b22bbf8651fb5307a543e9de9 commit 071364c85081981b22bbf8651fb5307a543e9de9 Author: Konstantin Belousov AuthorDate: 2023-11-13 01:30:53 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:39:21 +0000 reboot(8): adapt for vmmeter v_swappgsin expansion to 64bit PR: 275048 (cherry picked from commit 194cc45a81f70aa280546b7a5e658028df0303e7) --- sbin/reboot/reboot.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c index 6f656fd5f88c..bcb6c6bde05a 100644 --- a/sbin/reboot/reboot.c +++ b/sbin/reboot/reboot.c @@ -60,7 +60,7 @@ static char sccsid[] = "@(#)reboot.c 8.1 (Berkeley) 6/5/93"; #include static void usage(void) __dead2; -static u_int get_pageins(void); +static uint64_t get_pageins(void); static int dohalt; @@ -70,7 +70,7 @@ main(int argc, char *argv[]) struct utmpx utx; const struct passwd *pw; int ch, howto, i, fd, lflag, nflag, qflag, sverrno, Nflag; - u_int pageins; + uint64_t pageins; const char *user, *kernel = NULL; if (strstr(getprogname(), "halt") != NULL) { @@ -272,10 +272,10 @@ usage(void) exit(1); } -static u_int +static uint64_t get_pageins(void) { - u_int pageins; + uint64_t pageins; size_t len; len = sizeof(pageins); @@ -284,5 +284,5 @@ get_pageins(void) warnx("v_swappgsin"); return (0); } - return pageins; + return (pageins); } From nobody Mon Nov 20 01:40:20 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVZF0GjMz51gMt; Mon, 20 Nov 2023 01:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVZD6N7Qz4DjJ; Mon, 20 Nov 2023 01:40:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l4Ic7GHHpwgKO709znKStDzO5yqvsHDtupPtuiKVztA=; b=P0d8dM1a3qAruDMxa/1+Xyq1kGdS29u4ukOvFQTWW23+RHamcyF+ObVQiJMawQ/GfvQnQg HfP1BdihZ8oPMWsFU1m83Q5ZrdxGHrZkSqGGLoyl1MFoTtIcz6ww8cgFzt+8cHhjOCyiCt gYK5Im6n2hdTpew79TrFOjiYiTlsDCNeRCjX0q2CO/XBgukFEpEJdSo5i8PVPF3HRGVqzp IT82ZVXPwZfIL1nTpvKMaPy+gY0fh9szcyCUToegqMk0+Qs2+Lew7out4575m+I45du7WV Sw5CD4UuoJFTwKYOO9e9bylZPUkqAze7/PqVhdMo5/XctR9SYbdSLEkC2bxydg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444420; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=l4Ic7GHHpwgKO709znKStDzO5yqvsHDtupPtuiKVztA=; b=eM7qlX70mWT9Fc8lzUacrXHV1CCjYWnRHSRc144EYBEP47XwJkSt861OMOjiZ5aDK/t4Ee 0Vn1sQ5MD78XRdCyTaQgIIIo/NS/v+qJNSlbdkdkdR+fWDR+lAKKHHc7+VFqrD7WBWjq+T 9IiwuRRubaoTjfN8+SWyyEiBo4JQMKzSR2Ehz1evhwOvoHREOpwSr3ENZ7B8lQv+dWkgiI 8mN+/TkZ0NAMZIMsMEAfAGQjbGjy+5mEQdbT9iqSCoaDsRCck7ioR32O6ZYHMPangjH8SN 77NFhyUzat3AuJYUpt/eZcuQU96gKIj1m8D3MC+QZTaWJbPvcZciCaQWMbPRHg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444420; a=rsa-sha256; cv=none; b=OByWoFaG0ZUzoEhdmRTUUZmIAQjkDfPeXi1eygWY6sMSH8cfLl/zSqfyTk6F648QxZXS7t g2HuBszbYhwN445Q60/tHDthfy/PBKNIi65z44QcZyMKiQJ2d9wDETqV0Ix7qVz6fX22cP WCIr5vEFgP1v/Ul98+o6Jdl7UyqqfJDjNJBzXYcJxlGyhQ4P4n9bplQfh4U7m3G3JkgpnA 8FqyC5v+x6WfSPDmul3rBjMmD8NNat/VFamBKa99SfPK/1U/euMXAhvPGrAEBk5jFYh+ae ZMuh3E1Gm5f5o3piqd8NVkSVY/LQxj0wtmdCDadWOoobB19ztRv9elz43YK6/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 4SYVZD5Qf4zYKv; Mon, 20 Nov 2023 01:40:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1eKUE044349; Mon, 20 Nov 2023 01:40:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1eKHR044346; Mon, 20 Nov 2023 01:40:20 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:40:20 GMT Message-Id: <202311200140.3AK1eKHR044346@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: 71c2dedb2106 - stable/14 - reboot(8): print syscall error on sysctl failure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 71c2dedb2106edb069588ada5999fd01114b0b10 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=71c2dedb2106edb069588ada5999fd01114b0b10 commit 71c2dedb2106edb069588ada5999fd01114b0b10 Author: Konstantin Belousov AuthorDate: 2023-11-13 01:46:51 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:39:21 +0000 reboot(8): print syscall error on sysctl failure (cherry picked from commit a294b02fbc07fa8466c8fc12311e7d4e92332467) --- sbin/reboot/reboot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c index bcb6c6bde05a..dce747d79b15 100644 --- a/sbin/reboot/reboot.c +++ b/sbin/reboot/reboot.c @@ -281,7 +281,7 @@ get_pageins(void) len = sizeof(pageins); if (sysctlbyname("vm.stats.vm.v_swappgsin", &pageins, &len, NULL, 0) != 0) { - warnx("v_swappgsin"); + warn("v_swappgsin"); return (0); } return (pageins); From nobody Mon Nov 20 01:40:21 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVZG2BWBz51gFR; Mon, 20 Nov 2023 01:40:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVZG09s9z4Dbs; Mon, 20 Nov 2023 01:40:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444422; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TabtRCP+ZfRV0Ox03fZpCOyLFfmIVNYtVBeoj/uP/Z8=; b=pUdKKMPr83Mq2RPXJ5Nk43K9h6Q2ydZ8j14WMAie7Y/mk5F+1LhTQwICKRe+RMAnjkdeuw Lqxn6DDknql3/TyiV4E3/j8GEQJQtNoAFA3pp+wM4j8r4fwn9gt3fJGoR6mOg8gbuE5/QP Pdm2KyHV/iZHfQuwssh0XhNMEvlrVKgLpxX+2SlRiYmEo1/d2b/6xMoT19AtIKwx28AIeV qep1n9b5Gpy2BNKztjXXLmplF1XDphNVShk68GvEeRVMKliNg7DVMkhffmYUcj2ockxZxm M+QmMDfJCheuyMEQ9+I+hxC7tF8klwV2hGeMptAPpcbmGEhMDejtbXdKOvKD2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444422; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TabtRCP+ZfRV0Ox03fZpCOyLFfmIVNYtVBeoj/uP/Z8=; b=PXMNlbfxfY+BUKusoF0OfXaNeE4bvOr+qWza/KN0F6tg0RV5UzFZusjM/xk7d/2Dq95El/ GrKuLIb6acAf03XDIUDVOKOHZn8Zy9PQhke0O04hgfTyFvsgrMl3IbqxNtC1xxNWtqweeZ af8qEgHCz+l2DL/Yfmgpmik2gqNgOIv1dVLxqlHkVc1Lj1iOgTppdynT1mUev8xn68a5mT Q+t+nX4aCmjnsMVYnpLjCrN8RNYELounV1Tht1NAVmkefDUccMKGP7sJEoS+QpoBGkR84n UZrge+O+IIadpNp9lIBv2mQFALCG2CwdE3MV7nF3aduh7ADV0LcCO/ouoPrznA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444422; a=rsa-sha256; cv=none; b=SPqChkmofRRpcJdeRiqMHknlAsQbCn47aPBAAh8l8WxmZnYhH61OqW1KtzatyKP8eubynh Rps9OiNJ3KDseBqNNcvRP0sbAbKueotx8gyLK9l6D6HUSwelafBsRIozxUUyMYA0LUUXHL U0bLk00JPz9vheOk4IMQWlmsQyMRR5BmZ9z0qXffivsVc+Tmo5br7oCYOdHDvBMdarh03w VrqPPp3HbhVlnLlAxugIBrlZbbOY/ZIiV9dW2ps/PckG558nxBAzRDxLxfFBWwiBW1/NZL Al5KOGByb4PiWvZA2kpzAgJZQvK6mcvXt6Yhw/xRfb7eWtTbN7dT1ustnBv0rw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVZF6MttzY5y; Mon, 20 Nov 2023 01:40:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1eLdY044400; Mon, 20 Nov 2023 01:40:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1eLpo044397; Mon, 20 Nov 2023 01:40:21 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:40:21 GMT Message-Id: <202311200140.3AK1eLpo044397@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: 1703a823c5f8 - stable/14 - vn_copy_file_range(): use local variables for invp/outvp vnodes v_mounts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1703a823c5f827f9690a6baa0f7293a9fe0585ad Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1703a823c5f827f9690a6baa0f7293a9fe0585ad commit 1703a823c5f827f9690a6baa0f7293a9fe0585ad Author: Konstantin Belousov AuthorDate: 2023-11-12 18:29:14 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:39:22 +0000 vn_copy_file_range(): use local variables for invp/outvp vnodes v_mounts (cherry picked from commit 89188bd6ba8d8332c65498f2b71c90e5ed4b9dae) --- sys/kern/vfs_vnops.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 4e4161ef1a7f..e2227537dde1 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -3046,6 +3046,7 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, off_t *outoffp, size_t *lenp, unsigned int flags, struct ucred *incred, struct ucred *outcred, struct thread *fsize_td) { + struct mount *inmp, *outmp; int error; size_t len; uint64_t uval; @@ -3075,15 +3076,17 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, if (len == 0) goto out; + inmp = invp->v_mount; + outmp = outvp->v_mount; + /* * If the two vnodes are for the same file system type, call * VOP_COPY_FILE_RANGE(), otherwise call vn_generic_copy_file_range() * which can handle copies across multiple file system types. */ *lenp = len; - if (invp->v_mount == outvp->v_mount || - strcmp(invp->v_mount->mnt_vfc->vfc_name, - outvp->v_mount->mnt_vfc->vfc_name) == 0) + if (inmp == outmp || strcmp(inmp->mnt_vfc->vfc_name, + outmp->mnt_vfc->vfc_name) == 0) error = VOP_COPY_FILE_RANGE(invp, inoffp, outvp, outoffp, lenp, flags, incred, outcred, fsize_td); else From nobody Mon Nov 20 01:40:22 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVZH1R8Kz51fpr; Mon, 20 Nov 2023 01:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVZH0z3Qz4Dm4; Mon, 20 Nov 2023 01:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CpUEnFj5dWbLXUePvgpUJR0iVRQa1imiYoz2X5DIPXM=; b=Kod7dWKi01H1fzqw0g6XKoNZKd+au4S4BYDXLbjC6T6XuaU4QgTFH8xcNzPFnC8cHbR40b alSoRkVJnrwPOK/tNk4zjuLxfqb83N/mnCs7SkVhZrqrKbV9vqtBvgWY/zZ/ec769kCz5M zL1gbNnaFYdwvJie7f2GeJeJXpysC9+YXTaOAkUa8g26pcMo4BYuRLGwz61DZILz1fNTu1 GtOM+1UxXPb9ymVGy6AJxBM1AJncF58I/mffuv3G5uFhrS5y6vr9ZnH29dMBNCieQANQbb HBeK+T8qTKM4UWVf7r7zmrQUSVRGiMZpocnb9cUQFkmRAcM9hKhi0EET0+yNuQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444423; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CpUEnFj5dWbLXUePvgpUJR0iVRQa1imiYoz2X5DIPXM=; b=KgJp3Q2PMcotJzPZrxtk1nwN7cAfX7jtwlAi0rLOPMXDbU1VOvurj0M+5k/Jsv4AbKMmLX /OCY3a/EAKL4E2/2bhMB3zoWd++Ni++pcrRCo5kZejlr5mHzin1oIRnIz+sk6TuPeERAKs wA0VsQAjQfveVOfmaRjNxcL9Ed7QsudCiB856bbRgjMaa8rhzhrjtaRaaMFADUVx7kZj9n LEMdGSclqkiSD1nWfwNaUGfhlcPocY5WkCj0ru5aHVCflEZKCi2zQ8dfmEOJuak8ZKh5Rn 6HQbfzuF4X0teW1W6nKt+lu7JsCRsK1YMhiSMJnbS+K1Um+GcF0zislyn67HCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444423; a=rsa-sha256; cv=none; b=sLGzrK1HAw59mNi3rTprKaoeeuggZDqdpvzY+u/kh75r4yQ1vd/8R+cWvAQr0al0y6xNLK pNxzzSH3s+5Dpeafarawe5q56rNX9GiCeJYybh/vC+CO6I89s18nY9NhylqNdeMlQTf1DL rpk0QBKx8iVFsC+SBqLQHKQ+mrkqbkv3gKywpH6JWUgonG2lQ5mP/Ex2ZJVAVDBDIErVG4 N1hN5f2KIdkkXGWSXG79RL2Df3FlFNpEUlIXJJXslA0H6s+1Z5B4jtEWJ+uRRbU9eESQWu 38VsC7MTUdbuXv13hrNxHGH0zj7UcFivF7SaiLzPuIz4VuLUWeeJVvOwvFka5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVZH04J8zYKw; Mon, 20 Nov 2023 01:40:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1eMuK044467; Mon, 20 Nov 2023 01:40:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1eMbl044464; Mon, 20 Nov 2023 01:40:22 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:40:22 GMT Message-Id: <202311200140.3AK1eMbl044464@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: 0784b5768e00 - stable/14 - vn_copy_file_range(): busy both in and out mp around call to VOP_COPY_FILE_RANGE() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0784b5768e003bbf5677327d1a68f13d2ea2c230 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0784b5768e003bbf5677327d1a68f13d2ea2c230 commit 0784b5768e003bbf5677327d1a68f13d2ea2c230 Author: Konstantin Belousov AuthorDate: 2023-11-12 18:37:29 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:39:22 +0000 vn_copy_file_range(): busy both in and out mp around call to VOP_COPY_FILE_RANGE() (cherry picked from commit 23210f538a008788b2e16b9eddafa4f598a21663) --- sys/kern/vfs_vnops.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index e2227537dde1..27ce5401f15f 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -3078,6 +3078,29 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, inmp = invp->v_mount; outmp = outvp->v_mount; + if (inmp == NULL || outmp == NULL) { + error = EBADF; + goto out; + } + + for (;;) { + error = vfs_busy(inmp, 0); + if (error != 0) + goto out; + if (inmp == outmp) + break; + error = vfs_busy(outmp, MBF_NOWAIT); + if (error != 0) { + vfs_unbusy(inmp); + error = vfs_busy(outmp, 0); + if (error == 0) { + vfs_unbusy(outmp); + continue; + } + goto out; + } + break; + } /* * If the two vnodes are for the same file system type, call @@ -3092,6 +3115,9 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, else error = vn_generic_copy_file_range(invp, inoffp, outvp, outoffp, lenp, flags, incred, outcred, fsize_td); + vfs_unbusy(outmp); + if (inmp != outmp) + vfs_unbusy(inmp); out: return (error); } From nobody Mon Nov 20 01:41:41 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVbn2nbMz51gQS; Mon, 20 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVbn2Kcwz4Fdk; Mon, 20 Nov 2023 01: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=1700444501; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p0xzyfra3Tfi7roO8v2qt5Lsskj/0QNsz/jn9IWTmGg=; b=UrBlg+slKeCa3QOfdgLmAFXzDbFwPK+27Wvd6N0Yc99zv6uORdg7YikskgYLgpsEMvg8nd pbL/zodtjWDcThEvT2T+5SEPwcGs+sLxgiHPESJCYWDO3ZpXmPdmC0hQP61+t7TqFXs4hx hw2AKPxm7EJaiAiQsBHJRNwNV77+Kbd0hK7pCaJtyo4pG+g8oKEFr4idDNzgd5QTVO+1mb Lu2CaEY8HGbHX7GaR7pZ2m3F61IH/MAkSe7H2vlAH+YRI2yHnYIz9oFHQV7yYM/yKJsZD7 C45FPcmiU8UWdS5+Es4GmsgGlNwbEQSyz7lbUP+7Yw9xRl89lyADAN/0wqsHAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444501; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p0xzyfra3Tfi7roO8v2qt5Lsskj/0QNsz/jn9IWTmGg=; b=ViMSuTeYd9K/MRo3Ga2m8M/wMazaGkOstJi5XjNA4qsnW2S4tZyfnL5Ru5AiwQqADAbers Q2hCzDMSk/tagkOiaygfjWRkgTpAI55tq0RDvKu+imlvR5NOTjbUg0Yhj+YUKQT4eHLnUb r3g2DFtNqkoxF3GKE0oRPZJf93lre6eeRALPLUUq2sT+7j++VaNukvyzEkLjQUNYKQrnk/ i4GnrmfB1cwx9CULJN98HYUowFDfzmA6tdiHpuI8qrfBD5pURVC+H+o5zkDd3G3RC0TFpc 5Pqnti/gyKX6ZXtMocFFNnjHEmsPfZ9LXXRmPt3XjQy2GcOm9tlOnbcpn9z3xA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444501; a=rsa-sha256; cv=none; b=ZM8jyfW65wjOfc8w35FtVdCf5NPYsINP7jxoWfN0PDksLvCGoL3TlIQVP2J6SrQRIA0Cnf iAbNm/VPOTXQmeOnnRx4IwVdkA5LuklRirpH8NB9Loc6JnJfvGtnvKszwTwLn08GH3/EGs zxcfvHgpUqkD9l+9+4FI6vzBnHi2rJOXjmujsuchaE7+y4W7CtzOczOjTt34LByjp5btf7 t7OJecrkO7LAixoyrVWjuZ7ki0bQdaIiohX7IGSQMnwGPiKjfgGPyiOFLPKJtI+Q4F82Nn 3mtdGBTq9FKl9PEXpj+eWMNjQu09fLbwwVBbURRjufVDf6jG8yzFsUX0eIM4Zg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVbn1QRBzYhY; Mon, 20 Nov 2023 01:41:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1ffjh047382; Mon, 20 Nov 2023 01:41:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1ffll047378; Mon, 20 Nov 2023 01:41:41 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:41:41 GMT Message-Id: <202311200141.3AK1ffll047378@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: e6278ae2bd7c - stable/13 - reboot(8): adapt for vmmeter v_swappgsin expansion to 64bit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e6278ae2bd7c59d8057e1dfe8a801b1b46b392d4 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e6278ae2bd7c59d8057e1dfe8a801b1b46b392d4 commit e6278ae2bd7c59d8057e1dfe8a801b1b46b392d4 Author: Konstantin Belousov AuthorDate: 2023-11-13 01:30:53 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:40:34 +0000 reboot(8): adapt for vmmeter v_swappgsin expansion to 64bit PR: 275048 (cherry picked from commit 194cc45a81f70aa280546b7a5e658028df0303e7) --- sbin/reboot/reboot.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c index 9b9d956bea82..a087be7bbf23 100644 --- a/sbin/reboot/reboot.c +++ b/sbin/reboot/reboot.c @@ -58,7 +58,7 @@ static char sccsid[] = "@(#)reboot.c 8.1 (Berkeley) 6/5/93"; #include static void usage(void); -static u_int get_pageins(void); +static uint64_t get_pageins(void); static int dohalt; @@ -68,7 +68,7 @@ main(int argc, char *argv[]) struct utmpx utx; const struct passwd *pw; int ch, howto, i, fd, lflag, nflag, qflag, sverrno, Nflag; - u_int pageins; + uint64_t pageins; const char *user, *kernel = NULL; if (strstr(getprogname(), "halt") != NULL) { @@ -266,10 +266,10 @@ usage(void) exit(1); } -static u_int +static uint64_t get_pageins(void) { - u_int pageins; + uint64_t pageins; size_t len; len = sizeof(pageins); @@ -278,5 +278,5 @@ get_pageins(void) warnx("v_swappgsin"); return (0); } - return pageins; + return (pageins); } From nobody Mon Nov 20 01:41:42 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVbp59R0z51gLH; Mon, 20 Nov 2023 01:41:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVbp3n9Nz4G82; Mon, 20 Nov 2023 01: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=1700444502; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TpIJt5awFI6GR0XXzyZdXLZdiKEHsx9jD7UgosfrfiQ=; b=Sru7ePH9rXVdfnbsZ10kVRdRyJkANvqO3E0mCPj6talDX0H239ZuH1vhSdzMZoFN8M1+JP KUL0WghDYENRxBf8lenTUnmf/1K9bPC4XqozlvKoyPAWfKmqSKPZpG9ey4jBtqD0hoppKq Qw7r1LDWes8f/RhlNdu5yuhukSAmhDoWim1EmErJYSRyH5z+rWl3gHdcZfJw+0bUhgKnjf Csn0ugFa347OmcT6H+UkhaZwQK+r0wjveGnwjwksKwFmfDUHoDP0zM4LdFPl6skt4Ih9e/ i9BLMM0bIQsV016+HjprITBBItb0XProDwmMHGJYChRyR42/v4I/498mAL9HsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444502; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TpIJt5awFI6GR0XXzyZdXLZdiKEHsx9jD7UgosfrfiQ=; b=GIXNuV7Qh7/iyGMKQrrQm44QoZeV41fK4TTmM6Y3ddkyCU+ticpyeoUz9BAUUKKNCALYHC WaY8F94qbITIAzJ5wQBZvifXAt8TIZFB33XNo10V5pV3n8T51ch9RT0+5+1sscjcuNaTng AZYboveTvX/5y1lKbQSdAPKACxd+6ch4AuwKan21Ecch/LKw/zPRe+DfNIRKJvpXg1ML73 qNDcvz5H/01pPVbyi+jZxnRlbAiI+naHrOBN4mNmFkRotfvOUPrBH2goO3zkIBUj3nM1hh 31LYdh/I42Se53RnJyylyMN2qpyMW5yTROpv1wZmh0WmPdOxdOr2ILbAPo6+Ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444502; a=rsa-sha256; cv=none; b=U1AacF3IqDJ4Nhy/Tfx8FwgOujPMIY1sQd7JkUDXglZZgxpAn+i+0uLSDtx3LKIhHXF7xl vsxH3JSxjiwVIzlKbrYigNcsNgGvI79VEss5cAfCxeXD7Xr86GjK708n7Ml/qD0/r6HfWa dKC5zE6c5vp2n9D18zGBddhrsKKMq0wVPcrdP/Sd0drV3rzvCaulHY6Yh4ik0g8iUloTm2 IqsTEXJmS71KcmaKKMSikbIK2thi6+escl//4EzVK92eHIN66DL50wyX6M1kIqBNYAseEv hENpJ1BotQXniw15/tvHQuzgNJUCA0FlNW4XowXSFZbE0b96FbcTVl+7GB9s4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVbp2gpGzYhZ; Mon, 20 Nov 2023 01:41:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1fgEY048851; Mon, 20 Nov 2023 01:41:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1fg1v048846; Mon, 20 Nov 2023 01:41:42 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:41:42 GMT Message-Id: <202311200141.3AK1fg1v048846@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: 26c99c95ccfa - stable/13 - reboot(8): print syscall error on sysctl failure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 26c99c95ccfa59091e30715a86f389a072fa6c11 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=26c99c95ccfa59091e30715a86f389a072fa6c11 commit 26c99c95ccfa59091e30715a86f389a072fa6c11 Author: Konstantin Belousov AuthorDate: 2023-11-13 01:46:51 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:40:34 +0000 reboot(8): print syscall error on sysctl failure (cherry picked from commit a294b02fbc07fa8466c8fc12311e7d4e92332467) --- sbin/reboot/reboot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sbin/reboot/reboot.c b/sbin/reboot/reboot.c index a087be7bbf23..705dae6fae5e 100644 --- a/sbin/reboot/reboot.c +++ b/sbin/reboot/reboot.c @@ -275,7 +275,7 @@ get_pageins(void) len = sizeof(pageins); if (sysctlbyname("vm.stats.vm.v_swappgsin", &pageins, &len, NULL, 0) != 0) { - warnx("v_swappgsin"); + warn("v_swappgsin"); return (0); } return (pageins); From nobody Mon Nov 20 01:41:43 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVbq4tTVz51gLK; Mon, 20 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVbq473cz4Fn7; Mon, 20 Nov 2023 01:41:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444503; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NkR0HRGPyCByOOWCE8yIafofZqOEuWFp4Fe0CjlKXzU=; b=vvYeRJhTtRrFYex/RzqEglH4eSXWGovi+cJsRuw4cIkibMXdP96i3D6phq9Jpa751bw1yE gDKUXWZPMK+kb2wozb2z41DCKTIT+G3MR/cEvH5YGUKCKtA8fnXe72kMITmLW/vOGwKVbc QAbJ51bt29FL1EBvA72NrXSZmZBaoO6V6o3H1oJHc9AW3+Jds0rLFf1+WXjrca8r18oLhN 8dmd4CbgaSsTQ7InBlFc/NvX+FiXEoM6QZOh0HDCuG7IeH0zVjz1FAsEWhBkvuJS9i/1Uz VnjLlLjJBoUC1SVpfx4JE9TSqMBx8eTPAkO68G8uSxETZR0DZUG/W9dbSSi7qw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444503; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NkR0HRGPyCByOOWCE8yIafofZqOEuWFp4Fe0CjlKXzU=; b=A2ookuJc7dm9sLmS1pZYA7odqU3fzLNcvptdND8x49oSUTHmd2HsbiBuIYYFMshfA5huhz IXjYz5eaaDuXWfMrZ552qIN0LwUdxw+eiNF6cgZopEvYOF1AVVheFE0RIs+fP4QH6B0r7b wNZMFPxsnS0FN2MeEeVND7QjZyiotF63SW1TQbsRZvYPsFhbmmaC7qlsy1EhU3TK6TBtq8 K8oTM9Y0A99KlBPzm78OKmzMVhmNSiW05N0H3MRdLHpp8prJXbI1iLCM+C1wQt25+z2GI7 ObtcZOw74ZLgyqGdyw+ka1XNRqmbZZg00QZ6L/y5Ec8dpNgZbCFz19u8V2b54w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444503; a=rsa-sha256; cv=none; b=S8rbAxp+ieVrQ+apHWRnKr8YQ6G7Af9LauHm+bXiVd1BgNh9DdQwPJ7hJRTRZujVYAy9Uv ihRzqlqw8X6NQ6spLc17m+VMlLElROzoC2+HaViP5GKafNcpn2wZQteqFpw357zocjAlBa WK1bO+LM1X3o3wrXR2vEOtZErHCmH3i+0d4CCwdkPyiGMluihgd7vSAHM+Evxb7LyCVefI WF1LaeKsQDgy1jQU47d8038dxhJ0h7fITZ3SJWKs8hZmVoQBdhSWyCs4L+FZRTdBT8Fyif ysGHYCizvS2zZRxGZ2a+SncXlQFOptNouLOrf0yduUPt9xF0zYyiUF9ARNyn4w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVbq39mkzY3n; Mon, 20 Nov 2023 01:41:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1fhVq050203; Mon, 20 Nov 2023 01:41:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1fhbB050191; Mon, 20 Nov 2023 01:41:43 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:41:43 GMT Message-Id: <202311200141.3AK1fhbB050191@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: 02c8fefba6b1 - stable/13 - vn_copy_file_range(): use local variables for invp/outvp vnodes v_mounts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 02c8fefba6b1be95cd738694a616454251a7c709 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=02c8fefba6b1be95cd738694a616454251a7c709 commit 02c8fefba6b1be95cd738694a616454251a7c709 Author: Konstantin Belousov AuthorDate: 2023-11-12 18:29:14 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:40:34 +0000 vn_copy_file_range(): use local variables for invp/outvp vnodes v_mounts (cherry picked from commit 89188bd6ba8d8332c65498f2b71c90e5ed4b9dae) --- sys/kern/vfs_vnops.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index dd3370bc33bb..5194d708f250 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -3026,6 +3026,7 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, off_t *outoffp, size_t *lenp, unsigned int flags, struct ucred *incred, struct ucred *outcred, struct thread *fsize_td) { + struct mount *inmp, *outmp; int error; size_t len; uint64_t uval; @@ -3055,13 +3056,16 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, if (len == 0) goto out; + inmp = invp->v_mount; + outmp = outvp->v_mount; + /* * If the two vnode are for the same file system, call * VOP_COPY_FILE_RANGE(), otherwise call vn_generic_copy_file_range() * which can handle copies across multiple file systems. */ *lenp = len; - if (invp->v_mount == outvp->v_mount) + if (inmp == outmp) error = VOP_COPY_FILE_RANGE(invp, inoffp, outvp, outoffp, lenp, flags, incred, outcred, fsize_td); else From nobody Mon Nov 20 01:41:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYVbr5ztgz51gWK; Mon, 20 Nov 2023 01:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYVbr59b0z4GLB; Mon, 20 Nov 2023 01: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=1700444504; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JCbK3pRCHynAnCz+0tsCWtWAxvZiVAV0BcG0wAssUG0=; b=WYGcPg0Xxgsakkm3GIbJJd0MxLl7clAQEJkj8NXwirmsd00qjQGWhLfREuQJZEUjxOnLsf ihYZdmpFDxJblC63YawZhM2iYKNgPePf7PlDy1l/WZHSbdm0w7RTigsot8ywkMTyMlJNXO ARpv5MjNWyc7ASaSGkR1C2u3a0Iiyt5ykeyKWINVoST5bDt6g64AzTYATmoRODbUJUqr8T z65jO7PZTWsWYP5OeD5+pdaCmUdjVxU8B873MRXTwDrgND3i9cuxPfxVSM7YsTD6IdGhya CbdEGHDluG8AHAlRcr1h8BO6yBz7sKE6Apd26P/IwfRIyKmQsl/OPN96qkP1IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700444504; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JCbK3pRCHynAnCz+0tsCWtWAxvZiVAV0BcG0wAssUG0=; b=rdsfJwwQ1aWXc5tHZ7Z5iXfGnI5PjW75v8dk1CkJ17pTGH+Yx2upY6V2AKhq8oMPla7FiI P9XoRa9SOfgJUdAICZePI1P0AqXahZsTrvWSZnTIPalC9zsefTbgb91hiQMh0VVnTY9DzH F82BmORLNu6SRNBXpChVGeSCCEC/uHMYzrXBsTaKBZYYhG8hEMgJ1NW5oBoR2S37utk+EN mMNEx3Kiqjs2I2rrA4+7dHiYY6nTGD1oIm5RI1EOAuDP18yOakH8Q4kiOJ7ZpzoY85Qu+1 CDF1bgDtVwDz9HPXSzHZusi0RGu7OkgtOyUAgpdtUH6122YDzuhGnZbL9cklzg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700444504; a=rsa-sha256; cv=none; b=T5DGnSZDolgBrKVRtjq5tawlWZD8Ch2HfbNRM73+gdGcHyiajkv/oqmsilProN2Hr7lak1 uuJAHYuBqeu22dov2EHhzfbknIVgdvmhb8pVQ5S+1eghegzg4W0Xg/NyW01SLGEouNcWiQ JJ3c/tEzHyKEWrf3CxW19e2/GtoDczQSyFA2dtZ9GHvSDdCurM8lci3Uc9O61zcdC1BB8A Y8IUD5f8NWOcssKqTddjqB/r8zykwePGzqduFk6l76Wml2xV4KPxN4N5/wMCRfP6qo6VhE wn2YP3Lx/lDj3RV7TmGwPam9K5y4kq05XsM0l+rlnKLcNYQGeD00V0aPaHrmpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYVbr4C54zYjd; Mon, 20 Nov 2023 01:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AK1fiLd050852; Mon, 20 Nov 2023 01:41:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AK1fioZ050849; Mon, 20 Nov 2023 01:41:44 GMT (envelope-from git) Date: Mon, 20 Nov 2023 01:41:44 GMT Message-Id: <202311200141.3AK1fioZ050849@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: 11f0b96a9745 - stable/13 - vn_copy_file_range(): busy both in and out mp around call to VOP_COPY_FILE_RANGE() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 11f0b96a974513628d4b8d2257d921fca4b9c5cf Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=11f0b96a974513628d4b8d2257d921fca4b9c5cf commit 11f0b96a974513628d4b8d2257d921fca4b9c5cf Author: Konstantin Belousov AuthorDate: 2023-11-12 18:37:29 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-20 01:40:34 +0000 vn_copy_file_range(): busy both in and out mp around call to VOP_COPY_FILE_RANGE() (cherry picked from commit 23210f538a008788b2e16b9eddafa4f598a21663) --- sys/kern/vfs_vnops.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 5194d708f250..7af4df16252c 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -3058,6 +3058,29 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, inmp = invp->v_mount; outmp = outvp->v_mount; + if (inmp == NULL || outmp == NULL) { + error = EBADF; + goto out; + } + + for (;;) { + error = vfs_busy(inmp, 0); + if (error != 0) + goto out; + if (inmp == outmp) + break; + error = vfs_busy(outmp, MBF_NOWAIT); + if (error != 0) { + vfs_unbusy(inmp); + error = vfs_busy(outmp, 0); + if (error == 0) { + vfs_unbusy(outmp); + continue; + } + goto out; + } + break; + } /* * If the two vnode are for the same file system, call @@ -3071,6 +3094,9 @@ vn_copy_file_range(struct vnode *invp, off_t *inoffp, struct vnode *outvp, else error = vn_generic_copy_file_range(invp, inoffp, outvp, outoffp, lenp, flags, incred, outcred, fsize_td); + vfs_unbusy(outmp); + if (inmp != outmp) + vfs_unbusy(inmp); out: return (error); } From nobody Mon Nov 20 13:04:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYnlc0p49z51G5n; Mon, 20 Nov 2023 13:04:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYnlc0CJZz3cX2; Mon, 20 Nov 2023 13:04:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700485468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TGZSevQ2ea9wN0t7XbZaldk8SBczi8RLGRzmgZHwnwY=; b=VN3HvVfhdAw9dxqSuCa5I9pj6V9GNUmYW2zbHTFogw5aFq8VtDiIY1byT7kWQ75vtCEuWm 9uqduzJyC7YcUyb1X4TACzKUl+WF6dQK7Q4n9Sd2/zcBUkzAU4cTRvtPd038K631quS5pX EAs/zxZVia1n9RFlkHc70wUnm0uzHAXYVO4Rv9fTaKR9QD8jmHlMIXWewAMRb2vNcSQMOV 59kDI5n8p1BKPYm+YGoVGFD1YfFmHCAWL8XRnL/bSCvBMay9uZtDan3Jy+7RefgOtKzjqZ htf8X+0vaGQizdCN2bsxrrXN4xo4ep03DSAmRixHOeajkWXR8Dp9seIl9LW3kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700485468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TGZSevQ2ea9wN0t7XbZaldk8SBczi8RLGRzmgZHwnwY=; b=p54a5Z5gfZXSsSIvoVqzqej4Eje1r3Fcf7HKjGLraL5GQcCDEFVgdYBjc1SNfi9WlrEr/X 5nH6j/3Q/vDxXz7f5z/MikdMwf1bRb0RKKdcormyhTsTjMPNOdZsajE80aEJHmqGrn5zC3 B2+aKlH2he/3HdruNHUarK4gE3+9hSx1sF9V6/JW8ixXOAXliksB90MfLLKR8cvSl4yCm7 UO11f/wqQEbV5yhPH5bZoM2yAgp5XmtWCWjB/qWbYZjJLcd0su4UzGIhzJlapACXYzXc2p ioGovuLbxUvv+fh/Gp1Xeb2y59hb2j9SAht8vkiCsCbzhgA5jrvO3oFLguR2yg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700485468; a=rsa-sha256; cv=none; b=gAnmHxrp3veXRLETafPUf1WW5azlrb5Q74R0+y1zlpEZQCpPPWVisBkEUW1TDy9FWERxzV v5JrUITpOncV1lyF1xS0cxChmwQ2L6W7oZp9yV0e/Roh9VV3Ii56nnYu/274vlAcx0w1Sz bz2IjrxUN1T5WpG+lU5EwJdUtaeO7uXElaUAoEY4y+8T8rqwMig2WdudMNoJFVVh8CRmkV qnvddD6KvbfX23OyYRIXuWkBg2VjRotd65J/DMXlsuZ+ZQYZLj7VzZeVHaWFnfzBwZb1nJ FfSivfQ2SriHV5H9UXI+Pq4rc1Z3TZIyENbKwFxrp4m6Ves6DAREgLnotEBkkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYnlb6L39ztBx; Mon, 20 Nov 2023 13:04:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AKD4RZM089639; Mon, 20 Nov 2023 13:04:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AKD4RjV089636; Mon, 20 Nov 2023 13:04:27 GMT (envelope-from git) Date: Mon, 20 Nov 2023 13:04:27 GMT Message-Id: <202311201304.3AKD4RjV089636@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: f831517d862d - stable/14 - pf: fix dummynet + ipdivert use case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f831517d862dac2df3110c569b44e8417c3f0afa Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f831517d862dac2df3110c569b44e8417c3f0afa commit f831517d862dac2df3110c569b44e8417c3f0afa Author: Igor Ostapenko AuthorDate: 2023-11-17 16:04:01 +0000 Commit: Kristof Provost CommitDate: 2023-11-20 10:30:19 +0000 pf: fix dummynet + ipdivert use case Dummynet re-injects an mbuf with MTAG_IPFW_RULE added, and the same mtag is used by divert(4) as parameters for packet diversion. If according to pf rule set a packet should go through dummynet first and through ipdivert after then mentioned mtag must be removed after dummynet not to make ipdivert think that this is its input parameters. At the very beginning ipfw consumes this mtag what means the same behavior with tag clearing after dummynet. And after fabf705f4b5a pf passes parameters to ipdivert using its personal MTAG_PF_DIVERT mtag. PR: 274850 Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D42609 (cherry picked from commit fe3bb40b9e807d4010617de1ef040ba3aa623487) --- sys/netpfil/pf/pf.c | 27 +++++++-- tests/sys/netpfil/pf/divert-to.sh | 118 +++++++++++++++++++++++++++++++++++++- 2 files changed, 139 insertions(+), 6 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 6e6b0b20130d..9cb5fe03b5c2 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -303,6 +303,8 @@ static int pf_state_key_attach(struct pf_state_key *, static void pf_state_key_detach(struct pf_kstate *, int); static int pf_state_key_ctor(void *, int, void *, int); static u_int32_t pf_tcp_iss(struct pf_pdesc *); +static __inline void pf_dummynet_flag_remove(struct mbuf *m, + struct pf_mtag *pf_mtag); static int pf_dummynet(struct pf_pdesc *, struct pf_kstate *, struct pf_krule *, struct mbuf **); static int pf_dummynet_route(struct pf_pdesc *, @@ -4140,7 +4142,7 @@ pf_test_eth_rule(int dir, struct pfi_kkif *kif, struct mbuf **m0) /* But only once. We may see the packet multiple times (e.g. * PFIL_IN/PFIL_OUT). */ - mtag->flags &= ~PF_MTAG_FLAG_DUMMYNET; + pf_dummynet_flag_remove(m, mtag); return (PF_PASS); } @@ -4361,7 +4363,7 @@ pf_test_eth_rule(int dir, struct pfi_kkif *kif, struct mbuf **m0) mtag->flags |= PF_MTAG_FLAG_DUMMYNET; ip_dn_io_ptr(m0, &dnflow); if (*m0 != NULL) - mtag->flags &= ~PF_MTAG_FLAG_DUMMYNET; + pf_dummynet_flag_remove(m, mtag); } else { PF_RULES_RUNLOCK(); } @@ -7794,6 +7796,21 @@ pf_test_eth(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, return (pf_test_eth_rule(dir, kif, m0)); } +static __inline void +pf_dummynet_flag_remove(struct mbuf *m, struct pf_mtag *pf_mtag) +{ + struct m_tag *mtag; + + pf_mtag->flags &= ~PF_MTAG_FLAG_DUMMYNET; + + /* dummynet adds this tag, but pf does not need it, + * and keeping it creates unexpected behavior, + * e.g. in case of divert(4) usage right after dummynet. */ + mtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL); + if (mtag != NULL) + m_tag_delete(m, mtag); +} + static int pf_dummynet(struct pf_pdesc *pd, struct pf_kstate *s, struct pf_krule *r, struct mbuf **m0) @@ -7844,7 +7861,7 @@ pf_dummynet_route(struct pf_pdesc *pd, struct pf_kstate *s, ip_dn_io_ptr(m0, &dnflow); if (*m0 != NULL) { pd->pf_mtag->flags &= ~PF_MTAG_FLAG_ROUTE_TO; - pd->pf_mtag->flags &= ~PF_MTAG_FLAG_DUMMYNET; + pf_dummynet_flag_remove(*m0, pd->pf_mtag); } } } @@ -7933,7 +7950,7 @@ pf_test(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, /* But only once. We may see the packet multiple times (e.g. * PFIL_IN/PFIL_OUT). */ - pd.pf_mtag->flags &= ~PF_MTAG_FLAG_DUMMYNET; + pf_dummynet_flag_remove(m, pd.pf_mtag); PF_RULES_RUNLOCK(); return (PF_PASS); @@ -8494,7 +8511,7 @@ pf_test6(int dir, int pflags, struct ifnet *ifp, struct mbuf **m0, struct inpcb if (ip_dn_io_ptr != NULL && pd.pf_mtag != NULL && pd.pf_mtag->flags & PF_MTAG_FLAG_DUMMYNET) { - pd.pf_mtag->flags &= ~PF_MTAG_FLAG_DUMMYNET; + pf_dummynet_flag_remove(m, pd.pf_mtag); /* Dummynet re-injects packets after they've * completed their delay. We've already * processed them, so pass unconditionally. */ diff --git a/tests/sys/netpfil/pf/divert-to.sh b/tests/sys/netpfil/pf/divert-to.sh index 0a37cea78ad3..965464b35810 100644 --- a/tests/sys/netpfil/pf/divert-to.sh +++ b/tests/sys/netpfil/pf/divert-to.sh @@ -51,11 +51,13 @@ # > outbound > diverted > outbound | network terminated # # Test case naming legend: +# ipfwon - with ipfw enabled +# ipfwoff - with ipfw disabled # in - inbound # div - diverted # out - outbound # fwd - forwarded -# ipfwon - with ipfw enabled, which allows all +# dn - delayed by dummynet # . $(atf_get_srcdir)/utils.subr @@ -67,6 +69,13 @@ divert_init() fi } +dummynet_init() +{ + if ! kldstat -q -m dummynet; then + atf_skip "This test requires dummynet" + fi +} + ipfw_init() { if ! kldstat -q -m ipfw; then @@ -396,6 +405,110 @@ ipfwon_in_div_in_fwd_out_div_out_cleanup() pft_cleanup } +atf_test_case "ipfwoff_in_dn_in_div_in_out_dn_out_div_out" "cleanup" +ipfwoff_in_dn_in_div_in_out_dn_out_div_out_head() +{ + atf_set descr 'Test inbound > delayed+diverted > outbound > delayed+diverted > outbound | network terminated' + atf_set require.user root +} +ipfwoff_in_dn_in_div_in_out_dn_out_div_out_body() +{ + local ipfwon + + pft_init + divert_init + dummynet_init + test "$1" == "ipfwon" && ipfwon="yes" + test $ipfwon && ipfw_init || assert_ipfw_is_off + + epair=$(vnet_mkepair) + vnet_mkjail alcatraz ${epair}b + ifconfig ${epair}a 192.0.2.1/24 up + ifconfig ${epair}a ether 02:00:00:00:00:01 + jexec alcatraz ifconfig ${epair}b 192.0.2.2/24 up + test $ipfwon && jexec alcatraz ipfw add 65534 allow all from any to any + + # Sanity check + atf_check -s exit:0 -o ignore ping -c3 192.0.2.2 + + # a) ping should time out due to very narrow dummynet pipes { + + jexec alcatraz dnctl pipe 1001 config bw 1Byte/s + jexec alcatraz dnctl pipe 1002 config bw 1Byte/s + + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "ether pass in from 02:00:00:00:00:01 l3 all dnpipe 1001" \ + "ether pass out to 02:00:00:00:00:01 l3 all dnpipe 1002 " \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq divert-to 127.0.0.1 port 1001 no state" \ + "pass out inet proto icmp icmp-type echorep divert-to 127.0.0.1 port 1002 no state" + + jexec alcatraz $(atf_get_srcdir)/divapp 1001 divert-back & + indivapp_pid=$! + jexec alcatraz $(atf_get_srcdir)/divapp 1002 divert-back & + outdivapp_pid=$! + # Wait for the divappS to be ready + sleep 1 + + atf_check -s not-exit:0 -o ignore ping -c1 -s56 -t1 192.0.2.2 + + wait $indivapp_pid + atf_check_not_equal 0 $? + wait $outdivapp_pid + atf_check_not_equal 0 $? + + # } + + # b) ping should NOT time out due to wide enough dummynet pipes { + + jexec alcatraz dnctl pipe 2001 config bw 100KByte/s + jexec alcatraz dnctl pipe 2002 config bw 100KByte/s + + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "ether pass in from 02:00:00:00:00:01 l3 all dnpipe 2001" \ + "ether pass out to 02:00:00:00:00:01 l3 all dnpipe 2002 " \ + "pass all" \ + "pass in inet proto icmp icmp-type echoreq divert-to 127.0.0.1 port 2001 no state" \ + "pass out inet proto icmp icmp-type echorep divert-to 127.0.0.1 port 2002 no state" + + jexec alcatraz $(atf_get_srcdir)/divapp 2001 divert-back & + indivapp_pid=$! + jexec alcatraz $(atf_get_srcdir)/divapp 2002 divert-back & + outdivapp_pid=$! + # Wait for the divappS to be ready + sleep 1 + + atf_check -s exit:0 -o ignore ping -c1 -s56 -t1 192.0.2.2 + + wait $indivapp_pid + atf_check_equal 0 $? + wait $outdivapp_pid + atf_check_equal 0 $? + + # } +} +ipfwoff_in_dn_in_div_in_out_dn_out_div_out_cleanup() +{ + pft_cleanup +} + +atf_test_case "ipfwon_in_dn_in_div_in_out_dn_out_div_out" "cleanup" +ipfwon_in_dn_in_div_in_out_dn_out_div_out_head() +{ + atf_set descr 'Test inbound > delayed+diverted > outbound > delayed+diverted > outbound | network terminated, with ipfw enabled' + atf_set require.user root +} +ipfwon_in_dn_in_div_in_out_dn_out_div_out_body() +{ + ipfwoff_in_dn_in_div_in_out_dn_out_div_out_body "ipfwon" +} +ipfwon_in_dn_in_div_in_out_dn_out_div_out_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "ipfwoff_in_div" @@ -410,4 +523,7 @@ atf_init_test_cases() atf_add_test_case "ipfwoff_in_div_in_fwd_out_div_out" atf_add_test_case "ipfwon_in_div_in_fwd_out_div_out" + + atf_add_test_case "ipfwoff_in_dn_in_div_in_out_dn_out_div_out" + atf_add_test_case "ipfwon_in_dn_in_div_in_out_dn_out_div_out" } From nobody Mon Nov 20 16:55:13 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYtss4RQZz51XnT; Mon, 20 Nov 2023 16:55:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYtss3pgTz4c7V; Mon, 20 Nov 2023 16:55:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499313; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5rPR9XR1ffq1wG7ZTjg4yuNys2/Phmhb4r+RZSRyIx8=; b=WL/7UZsFgFW94ZP/+vVH/TjrWnpreZUuAoSSdBguIhnFgG/75kzti4W1Nh8pIbujNZiUHG CFGCfmzOYb2bxJl0n6dua155rrXajVwosThVs4FgrxLNo3Wj9M9e1r87QPVgNlqkDt3Acy RkF+1qGaiZc5YiTmTqD4Ezq9xzP4dA1P4AtqbICFHOMujOW/fLAIeX7aL61sEYs8mcInIx kowxTRaWtM9kh57ffSEoj1OnqRHfMVzPBo6OCXlJNSBmorf4FiZxjM8KAKbaerB/9HbEIa Ljk88ixc/mwf1/N6VlVKuOZTSIVDQsQGmF3pKFXbVcEVRfb7aqj72F/xVoIrkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499313; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5rPR9XR1ffq1wG7ZTjg4yuNys2/Phmhb4r+RZSRyIx8=; b=anzHgadAkMaDdv+IqAgaWCkCi9P/wvvzPRi9gunu37DiG111D/eHLcI8Rc790qhbz19XMW yTz94/Kf5jHDeC+b0aeV3jPZd79P0eFFGvmfKbsdFGjhBqzus6dOiGyyclIBtTCCXlS13m DXDgEzK5wBTQa5DGlBEJnWobb1L2BKNH8x71XQJ71Vslru3TsAXE8n+nxqvszCGwdeaTdR lUHPzwdSl9p5vkFIXRhGZieE3O11zoDsfP7Pa4Apktw4rWQdZeiL/z7QjXOyhuMfci7lPr MXNO9hmuP/te5mBWJdXYGjp6jxr9WtIIdyr5cxRDJpE5XLEMLMvFlMiYlKEurA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700499313; a=rsa-sha256; cv=none; b=kmsR+v24KFX0d8vDdY3r3DvGYModPBHSroPLk86+XaOFsyKbUqetfW8h0yqw9r+igP8Lr4 hFCkP/K8cdEe40LbbR6qEhJFtadNT3TJMUTM6Wsv0IZfMq80pXIGQ2WCv2hEczGYy4Snu4 Ip6f82wBmer6/tSkZ2vVLhYHt9NoxKP2rLRvU4Zj3fijLYRQfsprYwe3lp/FDrsVXPfAOI 6qAaXHPs+ZG+Ha2obNwLzFn/29lNNGG0PnyiDbkAC4mnex1V3yJ2WKgj5ZE7YMTDWGGEVi 6PDHAhdqSMhRS3Bf7agZnGTPYusd5YkeB92KqSfmh7RgormP6sOeDwZtpeJ3kg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYtss2s8Dz10TB; Mon, 20 Nov 2023 16:55:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AKGtDAh073306; Mon, 20 Nov 2023 16:55:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AKGtD7u073303; Mon, 20 Nov 2023 16:55:13 GMT (envelope-from git) Date: Mon, 20 Nov 2023 16:55:13 GMT Message-Id: <202311201655.3AKGtD7u073303@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: 637742252ffe - stable/14 - tty: set IUTF8 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 637742252ffeb2f1cc48d6bfbe47bfa8d58f7fc5 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=637742252ffeb2f1cc48d6bfbe47bfa8d58f7fc5 commit 637742252ffeb2f1cc48d6bfbe47bfa8d58f7fc5 Author: Christos Margiolis AuthorDate: 2023-11-04 20:31:47 +0000 Commit: Christos Margiolis CommitDate: 2023-11-20 16:52:01 +0000 tty: set IUTF8 by default 128f63cedc14 and 9e589b093857 added proper UTF-8 backspacing handling in the tty(4) driver, which is enabled by setting the new IUTF8 flag through stty(1). Since the default locale is UTF-8, and the feature itself is important enough, enable IUTF8 by default. Related discussion: https://lists.freebsd.org/archives/freebsd-arch/2023-November/000534.html Reviewed by: imp, bojan.novkovic_fer.hr Differential Revision: https://reviews.freebsd.org/D42464 (cherry picked from commit bb830e346bd50545e9868a1802d631afb6b50bb0) --- sys/sys/ttydefaults.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/ttydefaults.h b/sys/sys/ttydefaults.h index 7e64babbc7f1..6f33973842ce 100644 --- a/sys/sys/ttydefaults.h +++ b/sys/sys/ttydefaults.h @@ -45,7 +45,7 @@ /* * Defaults on "first" open. */ -#define TTYDEF_IFLAG (BRKINT | ICRNL | IMAXBEL | IXON | IXANY) +#define TTYDEF_IFLAG (BRKINT | ICRNL | IMAXBEL | IXON | IXANY | IUTF8) #define TTYDEF_OFLAG (OPOST | ONLCR) #define TTYDEF_LFLAG_NOECHO (ICANON | ISIG | IEXTEN) #define TTYDEF_LFLAG_ECHO (TTYDEF_LFLAG_NOECHO \ From nobody Mon Nov 20 16:55:14 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYtst5WJgz51Y9P; Mon, 20 Nov 2023 16:55: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYtst503xz4c9w; Mon, 20 Nov 2023 16:55:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499314; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xrq7su6C6dzrjgWiloy0XKmydrM4Tn5rIdQh0he0FMQ=; b=f+PZxKvcF618i4olhxUw44eguHjWU0vCxgRop8SKiYM9j4DuurPgpCAj0NHFMiu9JWigi3 tFEWhn5BTf8UWoGRh6pPD/+Vn3TY3MlgDUR33S1IuMl6An27V9BFN3XLymZ9aKPi0x2vpw cHZeeUsNRKinloXCqfQqOATiNBVXRHhaOGwcSoEioUEEwnYXc2meYlsg4iJsFBH6v4cp76 lmh+otL/4N+x6SAh4hTtTKtBZEYbxOCN1sTTY7pF6xVea8c2IT0uVLPcuPzfKb5weFLkUv 9U5CbpS9zb/gYuizOgMkyUINVD7kqis48ivEM+fzPlJNAbktb1zzWphMUZ2pJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499314; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xrq7su6C6dzrjgWiloy0XKmydrM4Tn5rIdQh0he0FMQ=; b=uqhskkZJIDKzGZyl83/IfXmRkeiVDWOeI9mjMyvjATw+bI38xk8bJHzfnY8ck/VqhAYaG8 /vKIyTvNSXM9AfMv7owQ9xgNT4N/xpHp6O96ylexhkc2bgDRh9VtfNV2EsWvccBo9jdzFU bkngZlFZFLPT8jDl5OjDSQooXrFrgv2HiSdEkAnayAVLlMdr/iL9gO/Z/3WZEGcpftH6o7 eA+ylYFOTQ9974NjKH3eBTi18Znepa7ZC6XEkTHCc2lBFH+e0oCuEeVLM9sRksShMO7sp/ P7DYysKlL0tu80ZOEpWdTRfqAS2WSvtcSOAnnKY8xtnj78phG0IAs2Ber2OwPg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700499314; a=rsa-sha256; cv=none; b=jF/v2RrJ4YSQmOkmg83NoN3bnTabegXx3HjyWH8Q8ZnMUJLLgLFMLaER914mCanf98KHww V0R7csbmlhRlCdsT/hVcb5ms9CH5E7TO0HvFT6leq5ZyN0Kv6ZRYYoEITSK3HE0Ci4dZMb adcw7ueJLPynZbdumv9hDhnbImCDJqhJ7yOyq8/ve6ooZoLoeVKSLE+I0ttsNIWR60zdqu ZT9n0b6X1898UL2EQlwfAe3OFB9N0JzqBUQDze8CTsEUpt/AY4JbIwg+odbxH4c5TIrxdI kagKkwsdQCXeMudGYOPxphzxp5DXKem7NndFA9wmrzCYzH7O+vWVifkJdLf+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 4SYtst3h0Vz10FG; Mon, 20 Nov 2023 16:55:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AKGtEqi073360; Mon, 20 Nov 2023 16:55:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AKGtEQM073357; Mon, 20 Nov 2023 16:55:14 GMT (envelope-from git) Date: Mon, 20 Nov 2023 16:55:14 GMT Message-Id: <202311201655.3AKGtEQM073357@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: ae8387cc818a - stable/14 - tty: properly check character position when handling IUTF8 backspaces List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ae8387cc818a0d6a2229ee049b671482e1549519 Auto-Submitted: auto-generated The branch stable/14 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=ae8387cc818a0d6a2229ee049b671482e1549519 commit ae8387cc818a0d6a2229ee049b671482e1549519 Author: Bojan Novković AuthorDate: 2023-11-13 18:02:30 +0000 Commit: Christos Margiolis CommitDate: 2023-11-20 16:54:54 +0000 tty: properly check character position when handling IUTF8 backspaces The tty_rubchar() code handling backspaces for UTF-8 characters didn't properly check whether the beginning of the current line was reached. This resulted in a kernel panic in ttyinq_unputchar() when prodded with certain malformed UTF-8 sequences. PR: 275009 Reviewed by: christos Differential Revision: https://reviews.freebsd.org/D42564 (cherry picked from commit c6d7be214811c315d234d64c6cbaa92d4f55d2c1) --- sys/kern/tty_ttydisc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/kern/tty_ttydisc.c b/sys/kern/tty_ttydisc.c index c46579cefbb1..cb5bf672d040 100644 --- a/sys/kern/tty_ttydisc.c +++ b/sys/kern/tty_ttydisc.c @@ -822,7 +822,13 @@ ttydisc_rubchar(struct tty *tp) /* Loop back through inq until we hit the * leading byte. */ while (CTL_UTF8_CONT(c) && nb < UTF8_STACKBUF) { - ttyinq_peekchar(&tp->t_inq, &c, "e); + /* + * Check if we've reached the beginning + * of the line. + */ + if (ttyinq_peekchar(&tp->t_inq, &c, + "e) != 0) + break; ttyinq_unputchar(&tp->t_inq); bytes[curidx] = c; curidx--; From nobody Mon Nov 20 16:58:09 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYtxF2w88z51YKW; Mon, 20 Nov 2023 16:58: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYtxF2GlVz4d5V; Mon, 20 Nov 2023 16:58:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8E8iTa6eUEinMRXxDfVEc+Tu+IfDeAEWOOPflY9ADW4=; b=bMYEgT/W0MW1C4isOosmu/mTj/1fR2f+CbwJB0fLjg/G+ne7ns2ZLNrgZtRxWgcmipZUDr /CLU18jtwRcrlHLrTIwHkMPVkbcgYadkassR6q8o6nsuW+aygs3klhnsNDXr/mlP0qc5qU kyP3FHOGCwV2MRB21ecJOrgandw3O23us1prlPjcarueHiQR1GrnRbZUoPvg9u1MGY2St/ cQ4D09JObnCXt5iavJAI1b/f2+wuONIAwgeMy3nIzNt0fJyGAwyYGYSeqYUfrI8g+xY3g9 OqxygQQjqeIpm7KZP0TYebXDRIHBy/OINHbbADkZo4wwc3qA4Lt5ql7vsZdMdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8E8iTa6eUEinMRXxDfVEc+Tu+IfDeAEWOOPflY9ADW4=; b=vg5Ky1DZt5BJuL46CoB7kzMYe+GUtNluadYgZ6e17dxyynYenJ3P3gPrKg23OsiMdZRnXs eUzzIJ1eUnzSI4/Jo0bBtqcR9WaotNqS3Ga5gExyGqDzBlVwREKXzuYfGr/NUn9UvZUCbp VR0IwIWV+p9imOSc1kQk4gFvRjjQPLj+ougOvBPmaxPHbvpHC2IDgIIbtRpBG71O2wxJTI HPsar0OaTqwQpDFgUHrO5DS6eSO1TmTKsZW1k38dpGOR/eMpyl23DmTmWXGe0Fd3nD07b5 8n0PSMnPpew/c7ZIuAmHMkdcV4t7QqKeMgl5mXxP3ej1S9Uz+IT0V+nLO8T3KA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700499489; a=rsa-sha256; cv=none; b=CaTYX1q7jDyWgNrd+d9k1kaxt2UGjJP3E0lb38irHIvlZdw0ObNDXylnjGnLc5ie0JhdkA a684/wWQtW22SF7RXNPn9VAGEk91NxNfOSFQi/2p3BSHSqcaezrCigNZAFLn3DNlqilGGY SBdRI7yc8MnRDLk3Af/OhQiJOVjTYfXcJbpAy/Ht46xQLP+GjRrJDYlyYx/SBSpPmgSAgV h2LzZe8EZg28zhv5QkIl0TY0MopjBBIuQ3pG39j83koU5eA0/Fv2xG+R7NtGE3e71+T8Lm m+vB6W0SeDhwPOMy+8ftLS5cBMr7HNtUeve08F2KPp4gH0Rn2dH+q86lm5moqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYtxF1KVkz10k2; Mon, 20 Nov 2023 16:58:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AKGw9Wj074083; Mon, 20 Nov 2023 16:58:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AKGw9Wu074080; Mon, 20 Nov 2023 16:58:09 GMT (envelope-from git) Date: Mon, 20 Nov 2023 16:58:09 GMT Message-Id: <202311201658.3AKGw9Wu074080@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: cd03271ccd16 - stable/13 - tty: set IUTF8 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cd03271ccd16f0585584a1e0f2806526490e6a59 Auto-Submitted: auto-generated The branch stable/13 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=cd03271ccd16f0585584a1e0f2806526490e6a59 commit cd03271ccd16f0585584a1e0f2806526490e6a59 Author: Christos Margiolis AuthorDate: 2023-11-04 20:31:47 +0000 Commit: Christos Margiolis CommitDate: 2023-11-20 16:57:14 +0000 tty: set IUTF8 by default 128f63cedc14 and 9e589b093857 added proper UTF-8 backspacing handling in the tty(4) driver, which is enabled by setting the new IUTF8 flag through stty(1). Since the default locale is UTF-8, and the feature itself is important enough, enable IUTF8 by default. Related discussion: https://lists.freebsd.org/archives/freebsd-arch/2023-November/000534.html Reviewed by: imp, bojan.novkovic_fer.hr Differential Revision: https://reviews.freebsd.org/D42464 (cherry picked from commit bb830e346bd50545e9868a1802d631afb6b50bb0) --- sys/sys/ttydefaults.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/sys/ttydefaults.h b/sys/sys/ttydefaults.h index 7e64babbc7f1..6f33973842ce 100644 --- a/sys/sys/ttydefaults.h +++ b/sys/sys/ttydefaults.h @@ -45,7 +45,7 @@ /* * Defaults on "first" open. */ -#define TTYDEF_IFLAG (BRKINT | ICRNL | IMAXBEL | IXON | IXANY) +#define TTYDEF_IFLAG (BRKINT | ICRNL | IMAXBEL | IXON | IXANY | IUTF8) #define TTYDEF_OFLAG (OPOST | ONLCR) #define TTYDEF_LFLAG_NOECHO (ICANON | ISIG | IEXTEN) #define TTYDEF_LFLAG_ECHO (TTYDEF_LFLAG_NOECHO \ From nobody Mon Nov 20 16:58:10 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SYtxG4d0Hz51Y8M; Mon, 20 Nov 2023 16:58:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SYtxG3XC2z4cxt; Mon, 20 Nov 2023 16:58:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y7Z4/EH5pe/uVQgVOmd+AQj1l6a/Tzt7GjViKG6tNAI=; b=TLgbwmG/OlFkX+5p7yhk31DkTZjspP8eh0hdL3al5OY6pzDKMIAvKhbZH3eo6Q07f9eNDy D6psnQtZq/RaAHKG7878lcRx+07J8SwYk8vNqcehQuKVwqWLHMZfUau6Akh3Zf7hdCqMO4 KNmaiqxE9HSWCG5XB/wqpzCfNHc34lyROVVPv8DrwWj4OP14TxXEtdkJh+R+IbB4L6KOCy PObqB/ldPesKbSAqb8gBDlJfhHE2XZz9cDxZVQcg58AJC6JtHIk5xucymjNKFEZX+9RE8I jzqnvqhHKsUaNQS5n3HmfcLjuORu43Wimz/w+bnNxm5KY9daxkc/XOUIIFkHIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700499490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=y7Z4/EH5pe/uVQgVOmd+AQj1l6a/Tzt7GjViKG6tNAI=; b=lQ7tu1VpHlKrUcmJo0d/5xMxWGpL9bnPpYy2VlwEN7qg+c/hlVhkaVgSbWR/+PgPaBfBt0 v7Yaf6IfEN7wUvJO3OQ2VR49mJ+GceHudLacAAdBlMj80YyPq5gIGPTKMlxLKywJ1pF14Y 0GVkuoJupGSbxIpRbdzNpR2ixO5TcF4zqz3RIXzpAb39gwTA2yxtDiHCtfDq+FBpHWlytE +bck8HPACWoB5J6S4Bsq2HRNXTzfgCghqCz1MpW0xhyR0PCcERBS2hS59BLwELlC+sN+wY Tns5UELhyKEgqU2G8yy0WbWjUP5Fkjdl/S/P84k5nfiKPv3mSlsnbxZAbJRzAQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700499490; a=rsa-sha256; cv=none; b=gjFK/XnfikB0L25dhBWqOtJ2HEr+YEcqbPUoLR/++ng1FY5a2OVVRODPrxI2DyyDnQFE9q F6SIPZ7wJuRCCM4WUAH417ewmiaO6edIqU9yP2zO5iTDqnFXfMA7uabRSjpPYNH0T6iVw7 KMmdBNynK9jGK6E2xafgaHim1Ca7HwYeNcRaC8YuLNDdjf4camomBMoe4AjwsbkrosktdE dVzj5Fx/3+WsApOOcOIhn6WVtknLot+pz+9yCB1kfZi38qwEHI4xQmEegERzX6NT/m+jRl N5bHWMyuPulNsSwnbI6r/HwOvC8UnMWAySBRsI+G63hp2a7gvCsUDqgVpS6+Ig== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SYtxG2cY9z10TK; Mon, 20 Nov 2023 16:58:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AKGwAtN074137; Mon, 20 Nov 2023 16:58:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AKGwAvC074134; Mon, 20 Nov 2023 16:58:10 GMT (envelope-from git) Date: Mon, 20 Nov 2023 16:58:10 GMT Message-Id: <202311201658.3AKGwAvC074134@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: 8647fe60b8c3 - stable/13 - tty: properly check character position when handling IUTF8 backspaces List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 8647fe60b8c3cc03cf1d53d281f9306b7043543b Auto-Submitted: auto-generated The branch stable/13 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=8647fe60b8c3cc03cf1d53d281f9306b7043543b commit 8647fe60b8c3cc03cf1d53d281f9306b7043543b Author: Bojan Novković AuthorDate: 2023-11-13 18:02:30 +0000 Commit: Christos Margiolis CommitDate: 2023-11-20 16:57:49 +0000 tty: properly check character position when handling IUTF8 backspaces The tty_rubchar() code handling backspaces for UTF-8 characters didn't properly check whether the beginning of the current line was reached. This resulted in a kernel panic in ttyinq_unputchar() when prodded with certain malformed UTF-8 sequences. PR: 275009 Reviewed by: christos Differential Revision: https://reviews.freebsd.org/D42564 (cherry picked from commit c6d7be214811c315d234d64c6cbaa92d4f55d2c1) --- sys/kern/tty_ttydisc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/kern/tty_ttydisc.c b/sys/kern/tty_ttydisc.c index c46579cefbb1..cb5bf672d040 100644 --- a/sys/kern/tty_ttydisc.c +++ b/sys/kern/tty_ttydisc.c @@ -822,7 +822,13 @@ ttydisc_rubchar(struct tty *tp) /* Loop back through inq until we hit the * leading byte. */ while (CTL_UTF8_CONT(c) && nb < UTF8_STACKBUF) { - ttyinq_peekchar(&tp->t_inq, &c, "e); + /* + * Check if we've reached the beginning + * of the line. + */ + if (ttyinq_peekchar(&tp->t_inq, &c, + "e) != 0) + break; ttyinq_unputchar(&tp->t_inq); bytes[curidx] = c; curidx--; From nobody Tue Nov 21 06:49:39 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZFNg3tN8z51wgn; Tue, 21 Nov 2023 06:49: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZFNg2wHfz4Kx0; Tue, 21 Nov 2023 06:49:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700549379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=emMrao6EmiGx6Sna2RwEOiulqUQz5qJs1xz3j4zBXEc=; b=Qr5Na3w3kZYGoFGdNeGUZXLl0HGM5GpqlTKeUQXV8DIkzenMfXIJ1aHdGlW9scdgirvofs q/85AjHSta1PaogxdFSkX5XZtbD3E4Ci6btistK57nbh9WsrSTIGftLuMfrZsKE+bQRxgp SQLCaxpqC2l3VM6gPNB9n4bTqvc/FcL/04L+qhVOWBTnO3VLz1vecYbhFp45ywuZd0YdeM kzs+1vDeIAStGQu6xOdk9Gxz54aX/el+IxBU0oilpcUljAOV6WOfjIVCZw1qcjnRwvrUWp NKHDWOY95uy9aIUg+LTtHfw+ttdbFgexz1eyeIbJ3XbZ3VLUkhev4N4N+kukDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700549379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=emMrao6EmiGx6Sna2RwEOiulqUQz5qJs1xz3j4zBXEc=; b=v9fnPEbMiBhGhlmx58IUK9OKEE/E4Thw9ejF6BGMaH838zMXTxaE/2YCUabhegi2/4ET7N xRtj6nv8UHfH8LZl9O2f4SzY6dx3ekJmGn5WfyQ2K0mMFyI2Ze4r9wwiYPVEvGdzx0NvOI gFbs9E3uO2TPQ1yy+UZn3QhLCrgAVleB76q4hpWX2oAkwoWTyT6Yzpd3RCvljtkZJdEUZ+ zJoDqbwGMt93piD0fzYXWlx0uxGrWs1QQVit/9jMJv9S8brrtxxBIuZHCM6OaL/0MGfUL/ Qe/gEzod+NMc7JJtR0v2jE7WUZJHbz9MXFs7MtMrmdQKgC+zxab9BKGfWkmtaw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700549379; a=rsa-sha256; cv=none; b=x8sm1Jz2okjLuEHxQsNVbGq35zRxvetjWXYxjOO6aqWoCp1RSu9D3lPrSL4u95POgCTRDq WujSYmPOXWstA8VuP1FUYRNf9uZ17ypcU63Oj4heBQs0MOTLOvr+Ga5H9BjIBKSK1DXTnc pnH3lYw8XFU2qMxTAQki/nU6zp7+0EK1IfcKOErGo6ar3w+kOnfRw5IfJbBFYNy+w1qnkG j5tYGodJ5c+/J0aIR+11BW4VNgTvHjOYmcnyuoT49LKQJCMc1/w6uoidliZKarAFCcgyno qxwvot2d+xNkrA6sOoFoBCM9bpylgFh2FRPhuva9xbfeH9JSn+i4HueF1QLd/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 4SZFNg1zrbz9Jx; Tue, 21 Nov 2023 06:49:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AL6nd4x059849; Tue, 21 Nov 2023 06:49:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AL6ndoX059846; Tue, 21 Nov 2023 06:49:39 GMT (envelope-from git) Date: Tue, 21 Nov 2023 06:49:39 GMT Message-Id: <202311210649.3AL6ndoX059846@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: edb6d4f50d9e - stable/14 - getpeerid.3: Clarify the 's' argument List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: edb6d4f50d9ea5a57dfc01964e950b5fb3a7e0fa Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=edb6d4f50d9ea5a57dfc01964e950b5fb3a7e0fa commit edb6d4f50d9ea5a57dfc01964e950b5fb3a7e0fa Author: Gordon Bergling AuthorDate: 2023-11-18 09:02:12 +0000 Commit: Gordon Bergling CommitDate: 2023-11-21 06:49:28 +0000 getpeerid.3: Clarify the 's' argument The argument 's' of getpeerid(3) must be a connected UNIX-domain socket, so document it. PR: 248614 Differential Revision: https://reviews.freebsd.org/D42629 (cherry picked from commit fa9f74220146233b7224da7c94870540dc39ae68) --- lib/libc/gen/getpeereid.3 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/gen/getpeereid.3 b/lib/libc/gen/getpeereid.3 index 204dec041d8f..8e3b763f716a 100644 --- a/lib/libc/gen/getpeereid.3 +++ b/lib/libc/gen/getpeereid.3 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 28, 2022 +.Dd November 16, 2023 .Dt GETPEEREID 3 .Os .Sh NAME @@ -44,7 +44,7 @@ peer connected to a socket. The argument .Fa s -must be a +must be a connected .Ux Ns -domain socket .Pq Xr unix 4 From nobody Tue Nov 21 06:49:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZFP12Y4nz51wgs; Tue, 21 Nov 2023 06:49:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZFP122kkz4L6X; Tue, 21 Nov 2023 06:49:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700549397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bqRNP0haYKYr6ukMjTt7yL1V8ccrw1SNQOJcGb23l2Y=; b=QkvqGRwSHP8p/Ebr/Pg0UXmmKISNUspR00ycZP5hFW4EBB7xTrJiWoIEJqHE2pkleCvSR3 Y/gIgTfDr1QDgogUfU1L3spVmx+mkR+oo0f+DcIlIh4w9yvqUPExdSsEQRucDZsP//vjcf bXLxY2CTwyuNzvzLHURspavHc2wL0XjuOJHYAZ85S8a4iP3Ve+e9FHA6FxRmiBO+4+4zzt V6KMZ5CHCEOpU0SSzki/rOTrZbpiNg3wx7YQxBAnDsea0R4Ls7Xvgqm6zm/Dxv3czvU2h5 sT1LaeW/mU3v0kPMqsoVfJ8kWtrfGjprDQmF1CmpdVOmVJIAoGc60hHZrB8d6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700549397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bqRNP0haYKYr6ukMjTt7yL1V8ccrw1SNQOJcGb23l2Y=; b=SW/iOQvmq1j70bySuWeWAUBSsEhA+A+rJ2nh7vu84a7cNrngxPWEvLyDxsNSUYi8IgWoQ5 wnRk87CYZCTrej5rwAQYoaEYjrrvk4xbZu1MCgQmyTpo0ym0AVjju/AlV/M0AolpR51kHH lEZYzMNIjAmWbu0a3C25yjfglB0bFHzsRBKAF4OVIHV4vjHWXDqMBY+/3sNHtrHnHrJ/eP +v1RXfS6+yITgQHHqFddZ6IjxEIzx1wv2YlD292Lf7ZNEHNJWTxTk5UtZIr2RE2+SPTfvz 4970vZxEsoJ4x+T6BeXUx49kF6ohIC37pt/WJ9bFIo/rPxfE9r5vT2l0XNWaSQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700549397; a=rsa-sha256; cv=none; b=Y4hggXSFgUbeCIkcr5LlY3jAKQNZkPscJ084OrphzhWHfxsW6U4S9RuAWW9RTJYyvBc0f8 j/PADXOvscO2S3X9M2sN6MRpX9qzzq/M0NJ0+1dQrUNHsI4bwt0LnkjV4nguYoy7FV2i5s pC/QgSEnMoqc/SR2XdRHtRgX6ea2cy8JnRbUst2wE/1u/lGDTrhmv8HoxHBvIJhNouGET9 cB57RcW0+BPAPFlgb+SK3D9ySyQOWTf153QWP5JoP3a3vnIsUvVx+EODeYgOh5YMvSlO7w E7Sy76n6i8Z9hi02f98AseDzNblB6w9Mm4pMbc1AGak4lLr+sJ8HNQKVor8ZFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZFP115GMz9Jy; Tue, 21 Nov 2023 06:49:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AL6nvSI060023; Tue, 21 Nov 2023 06:49:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AL6nvUk060020; Tue, 21 Nov 2023 06:49:57 GMT (envelope-from git) Date: Tue, 21 Nov 2023 06:49:57 GMT Message-Id: <202311210649.3AL6nvUk060020@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: 05d562a4e53e - stable/13 - getpeerid.3: Clarify the 's' argument List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 05d562a4e53e6c808949591d10b4b94fd0898eeb Auto-Submitted: auto-generated The branch stable/13 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=05d562a4e53e6c808949591d10b4b94fd0898eeb commit 05d562a4e53e6c808949591d10b4b94fd0898eeb Author: Gordon Bergling AuthorDate: 2023-11-18 09:02:12 +0000 Commit: Gordon Bergling CommitDate: 2023-11-21 06:49:47 +0000 getpeerid.3: Clarify the 's' argument The argument 's' of getpeerid(3) must be a connected UNIX-domain socket, so document it. PR: 248614 Differential Revision: https://reviews.freebsd.org/D42629 (cherry picked from commit fa9f74220146233b7224da7c94870540dc39ae68) --- lib/libc/gen/getpeereid.3 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/gen/getpeereid.3 b/lib/libc/gen/getpeereid.3 index 204dec041d8f..8e3b763f716a 100644 --- a/lib/libc/gen/getpeereid.3 +++ b/lib/libc/gen/getpeereid.3 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 28, 2022 +.Dd November 16, 2023 .Dt GETPEEREID 3 .Os .Sh NAME @@ -44,7 +44,7 @@ peer connected to a socket. The argument .Fa s -must be a +must be a connected .Ux Ns -domain socket .Pq Xr unix 4 From nobody Tue Nov 21 10:50:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZLkg67Qhz51N55; Tue, 21 Nov 2023 10:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZLkg5fG2z3Ftb; Tue, 21 Nov 2023 10:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700563835; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JHgHLOvl0FbUQC+OXK6vjE045CmwNLwqBS+7giIiBA4=; b=M6mjCXm/4GgpCPF4AhuXCmqZ22OK6WGBinZX83dgdFvlIrtaQ6X6j4pXjdBGDUgyE8eQPY mECo9jUqn+SM97uez98eUOYkd6noubfNY4/uzMelEQDdSONK794ybwrbrBop7rJi6xBANO CEwXDIvh2KQuRPcvJ1ecE4N7SbCb9zfPd+S9fa/QZk74Po6k3pcGh97OIJ4YtinjAKhSZ9 zjQ2oWcvQxryqaUUxxZSIGlKOhRdzrGGCOIGHg3Lp59uRHPoxlvolI6d+97yewAf4k4iLE VlO1iDAHbFbREafhoZPLTaJY8aCyONum0ko8/V+frOjdsh9SL0/hNGDGjXSvzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700563835; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JHgHLOvl0FbUQC+OXK6vjE045CmwNLwqBS+7giIiBA4=; b=FpX1BGLmfM+ATNniF8vFdBT0zTPFmtkQsknrH6CLj9x3644jnmGyGexwiJWds6KQnYUDM3 7VsZs+FpgKBcpBoabz3/GGxqZKfVV8kmC55SVkURX3uz7o+w6IEH7jRTrUMVLIBoQyAbbI /7s2eR5NQk5a3Vl8OhxpZOpd4QAxhj26q/LdtRxynevZ7D95E5kz6vYY3UNOR533aeN7MQ JE8ZU4Z6hgyDksKKS4XX8SXyjB7ZBIbDTmFoVZBHyVT1g8PujI/nMQXz4VRtB+KDkqFCES u2yqgrTxeBNxRxBuAhSaonsrz37CtmVfaFcZlqfbox4xgBvslzRnLhw3RyqcTg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700563835; a=rsa-sha256; cv=none; b=tUzeXmrd2juw8TtcZoRVZoMuqBaq5DJ1/hQ+gPPzJh8xxGEavogR59xMkltTMoPlLZtA/0 AmAuTZ1e2GkczOAi92NHlImCdahMIYUvvLxGAQB1vUW9pjbqSAyEE8lJETsBBh2tycyvB6 mNqrB3N9cxd3lVTzKW7xbvbvuRAv2eDZyOITHiD+VtU6vQfHsqrBFf/SRvClnXEvJsoH3A nuKTm86FW1mDyQfH9SZwEuxO90Ds35smPJ5ksiYN+MnxXjyvAhPBwGcCTuu38ACv9GyZG3 2DwtAF6AvRPaPLil+75z5hzX9HH8r5aHDX3NETrrCv0T0GTEfnrM2emfHzo6qA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZLkg4hp7zXfw; Tue, 21 Nov 2023 10:50:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ALAoZVO067679; Tue, 21 Nov 2023 10:50:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ALAoZZV067676; Tue, 21 Nov 2023 10:50:35 GMT (envelope-from git) Date: Tue, 21 Nov 2023 10:50:35 GMT Message-Id: <202311211050.3ALAoZZV067676@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Andrey V. Elsukov" Subject: git: f327a5765b77 - stable/14 - ipfw: fix copy&paste bug for number:array tables List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f327a5765b77e4e465117739957bfe45869bd98b Auto-Submitted: auto-generated The branch stable/14 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=f327a5765b77e4e465117739957bfe45869bd98b commit f327a5765b77e4e465117739957bfe45869bd98b Author: Andrey V. Elsukov AuthorDate: 2023-11-14 04:37:04 +0000 Commit: Andrey V. Elsukov CommitDate: 2023-11-21 10:49:32 +0000 ipfw: fix copy&paste bug for number:array tables Use compare_numarray() method for binary search. This fixes table lookups for keys greater than UINT16_MAX. Obtained from: Yandex LLC MFC after: 1 week Sponsored by: Yandex LLC (cherry picked from commit 194df014feebd8b169b41ecd75ae73d63a792d6b) --- sys/netpfil/ipfw/ip_fw_table_algo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netpfil/ipfw/ip_fw_table_algo.c b/sys/netpfil/ipfw/ip_fw_table_algo.c index 2fa65c78c453..89e6b69bc3ad 100644 --- a/sys/netpfil/ipfw/ip_fw_table_algo.c +++ b/sys/netpfil/ipfw/ip_fw_table_algo.c @@ -2693,7 +2693,7 @@ numarray_find(struct table_info *ti, void *key) struct numarray *ri; ri = bsearch(key, ti->state, ti->data, sizeof(struct numarray), - compare_ifidx); + compare_numarray); return (ri); } From nobody Tue Nov 21 10:51:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZLm06RHgz51N0m; Tue, 21 Nov 2023 10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZLm05xRLz3GjZ; Tue, 21 Nov 2023 10:51:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700563904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=szN5a53Gx2kcWxlsff2Kyz8IC5BKizRrL6dLKge6tFE=; b=UAh7B4mawXdh2h6CfKLWr7aNgcb8A2ktXKMQlAObcl7Vc70wjYHeFqhKCcxPjOZPIXAKDL WnEvWBF7aSI0OZ4J/trwOnS+aNba8zU+2QDe4tetgYHHz8QReCkw1DtCd9pf0UW8crVbRG 15p2RFv8ngUdWxGimD41ZI4+9229x8+s3+wvsTzPmklbkRKAvEWbITlAJ99wrqV83Ldem1 4Vpb+5TzJb5rTxjllnPi6tSMzIl3a7pdLvm6VaPtL0b76gBCGu70jFNxA72rD6Dw5uU2Vy IWjm307JfcLaaR3fNWhK73BktMSExdhmOExZLYILFPU8DCX8NjRI3OS1W5qtug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700563904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=szN5a53Gx2kcWxlsff2Kyz8IC5BKizRrL6dLKge6tFE=; b=B8Dovscv9DXmOmlCPy17HCGrgvAYuUnwVmtLrChGJeKR8QyYjHZ31djlzdhcIIkncYuGuG nT4tiIYSVf/ybBz2AbFS1G8f4p6N2EMJmwwGOBHatx7rpj6ZkM3cyjxSipF5XLnzgCIte2 APxFDe722WX0BrIcIeeLkLUJzecy6Ya+IdPE3+fvzT8VynSRCcYvgJZJjsSpwRaiVhfNXh 758Irvj9pvj0U+x+B2/6muqwsrgHH18U9KtUMS7p4zoKczR11Xvyh3IPsZVZpJj3JzPN8q SI9uIkk+PQF9KG+EvOCJtXLa5JD3AGqtDC2pnmwL41GZ/R8bHWLsXUTqlaukMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700563904; a=rsa-sha256; cv=none; b=kFSRdzT++BNR8cVd0hlCsNP9LqZcHRspNxnCeH+/k2CsCL4pPW87ztUdHymUtv/9PTx8Xe KVptY/8RxwO3c8R7agskvwPOOjJVaMvO0vCfdaXi5iyDD7ph0qrWtw+sWBuTyrxMgukomF XJyrQDA5DVe6njce7NV3FM19VssKsdUcyRbSVG/B11Vuw35YnG6yHDsZFwQ00mR0sDfek3 cyFTyAzT2RpOe3a+dYZnHdzCB2QerW5n3OLUFtlnTPiL0HNFnmh7wR16hJlMJAhU6zAn+J Ik1j5DdOIvu56nF8whh+aAbNeNxJWbBQS5CDIM7qfl1x/wHdYS52XIfdLw0WWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZLm050VqzYQ5; Tue, 21 Nov 2023 10:51:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ALApiHN071314; Tue, 21 Nov 2023 10:51:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ALApint071311; Tue, 21 Nov 2023 10:51:44 GMT (envelope-from git) Date: Tue, 21 Nov 2023 10:51:44 GMT Message-Id: <202311211051.3ALApint071311@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Andrey V. Elsukov" Subject: git: e7a86775f751 - stable/13 - ipfw: fix copy&paste bug for number:array tables List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e7a86775f7510ad57409adfdfbd3ccaf3a31bed2 Auto-Submitted: auto-generated The branch stable/13 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=e7a86775f7510ad57409adfdfbd3ccaf3a31bed2 commit e7a86775f7510ad57409adfdfbd3ccaf3a31bed2 Author: Andrey V. Elsukov AuthorDate: 2023-11-14 04:37:04 +0000 Commit: Andrey V. Elsukov CommitDate: 2023-11-21 10:51:15 +0000 ipfw: fix copy&paste bug for number:array tables Use compare_numarray() method for binary search. This fixes table lookups for keys greater than UINT16_MAX. Obtained from: Yandex LLC MFC after: 1 week Sponsored by: Yandex LLC (cherry picked from commit 194df014feebd8b169b41ecd75ae73d63a792d6b) --- sys/netpfil/ipfw/ip_fw_table_algo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netpfil/ipfw/ip_fw_table_algo.c b/sys/netpfil/ipfw/ip_fw_table_algo.c index 44750b8baa7b..f2ea1ddfc384 100644 --- a/sys/netpfil/ipfw/ip_fw_table_algo.c +++ b/sys/netpfil/ipfw/ip_fw_table_algo.c @@ -2696,7 +2696,7 @@ numarray_find(struct table_info *ti, void *key) struct numarray *ri; ri = bsearch(key, ti->state, ti->data, sizeof(struct numarray), - compare_ifidx); + compare_numarray); return (ri); } From nobody Tue Nov 21 23:57:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZhBN613Tz51LBV; Tue, 21 Nov 2023 23:57:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZhBN5Pg3z4XH2; Tue, 21 Nov 2023 23:57:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OfKfJw/tavCu3wMjZziSAFAt8Mu6sz7OtDYIKqy1Eww=; b=C9+nIjA57Oi0SgYcjrOC0l1dp2pVTcd5dQY0Ssal1YTIB3KZcuFPW4zhm28aUp2A/SVAWE Ak/nufBgonkGipREFxxfabAm6kWlTebTG2xskhOHXwNTP5RFvoj0BJiIgLSzVoJh23upaH S6nY66wevJoqqyPiUt1VtRBlZezOCAHvDv51Cj+cQaKWOECQtJ537tGNinLsc4hr7BcZFw rQwJUjwjk0J2P/C17pyxjt3eKiEwS/frN5hrim/eWkqLvd1w6xvGxc2Ot2x/cBl9osNHmD yNtkVV5woTZ4m3lLWMhPnfV2uPHw17ErmKSCF0z/PUFb+nvyxvTTO/tqiFdEdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OfKfJw/tavCu3wMjZziSAFAt8Mu6sz7OtDYIKqy1Eww=; b=DvHPi9FDqjTHzvmzLji6j7k6qmrr6bnXh0+G1Dv7z5GnWnVVitw0t7kphzX1f23xgW+4E4 rNDxPCNuOrMyynxzaqNBOFGDazihxQWPEMMcIifOXSOKrgZPAiM6gmuQTv5ZtIDCW5pC3g 88ZhiDhDQWLi5HYY+Tyuff2ktSZEVOphAi1CyimWchSgJL+YDb9s7RoPB8HJjVIbt9O2Bj HKoIz9nwWbOpAtTe86CdvbG86ckxQ0JkKBQpAStA5B4JSbxf/6UdIGWH4fgsjh6zjiJYBb jYGzVTkIEMEeznITBF/SI4zgq/kZg2860ju/YMK66QJw/qH02EbnAfoHPPqaPA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700611036; a=rsa-sha256; cv=none; b=Ybsnh59dc0SsX/FbiQpukB8aQwdx9M2xpRmbssYYQFP2rM9GF4w5GGpthkM1HHZUo+w10n edHgBg7/YHlhgRbiUheLsZiJ+sijc5m2pL67beBA/jUMzvamYXMokd6T7hkjhuj/2A+59q l8HRbroMy7OoF+4I0e+tv8dxB0Wzi7ba/JWG3ug1+T1lxc2hMGBUlQlSZ7mUX5nFbuo7jt BBepA4rEkFoHOgTKitMXb0L9MRHp4OJKABJW36HM0NXM5iS7cXsMHK7tQqttwAGFDBiTtF jgTLbVHzcAE2XaCnqbe0wp+jW92H8jU+tVVII+TqzD+rTLD11bv5wQ4qHTNzxw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZhBN48F8zwYK; Tue, 21 Nov 2023 23:57:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ALNvGX8080767; Tue, 21 Nov 2023 23:57:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ALNvGlO080764; Tue, 21 Nov 2023 23:57:16 GMT (envelope-from git) Date: Tue, 21 Nov 2023 23:57:16 GMT Message-Id: <202311212357.3ALNvGlO080764@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: 4e583d78b77c - stable/14 - nfscl: Use Claim_Null_FH and Claim_Deleg_Cur_FH List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4e583d78b77ce6a3c05b79d82e4ccf2a3a390d8d Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=4e583d78b77ce6a3c05b79d82e4ccf2a3a390d8d commit 4e583d78b77ce6a3c05b79d82e4ccf2a3a390d8d Author: Rick Macklem AuthorDate: 2023-10-20 23:10:25 +0000 Commit: Rick Macklem CommitDate: 2023-11-21 23:55:19 +0000 nfscl: Use Claim_Null_FH and Claim_Deleg_Cur_FH For NFSv4.1/4.2, there are two new options for the Open operation. These two options use the file handle for the file instead of the file handle for the directory plus a file name. By doing so, the client code is simplified (it no longer needs the "nfsv4node" structure attached to the NFS vnode). It also avoids problems caused by another NFS client (or process running locally in the NFS server) doing a rename or remove of the file name between the Lookup and Open. Unfortunately, there was a bug (fixed recently by commit X) in the NFS server which mis-parsed the Claim_Deleg_Cur_FH arguments. To allow this patch to work with the broken FreeBSD NFSv4.1/4.2 server, NFSMNTP_BUGGYFBSDSRV is defined and is set when a correctly formatted Claim_Deleg_Cur_FH fails with NFSERR_EXPIRED. (This is what the old, broken NFS server does, since it erroneously uses the Getattr arguments as a stateID.) Once this flag is set, the client fills in a stateID, to make the broken NFS server happy. Tested at a recent IETF NFSv4 Bakeathon. (cherry picked from commit 196787f79e67374527a1d528a42efa8b31acd9af) --- sys/fs/nfsclient/nfs_clport.c | 4 +- sys/fs/nfsclient/nfs_clrpcops.c | 92 +++++++++++++++++++++++++++++++---------- sys/fs/nfsclient/nfs_clstate.c | 47 +++++++++++++++++---- sys/fs/nfsclient/nfs_clvnops.c | 16 ------- sys/fs/nfsclient/nfsmount.h | 1 + 5 files changed, 114 insertions(+), 46 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clport.c b/sys/fs/nfsclient/nfs_clport.c index 8ea50d80ae19..c0318b692d86 100644 --- a/sys/fs/nfsclient/nfs_clport.c +++ b/sys/fs/nfsclient/nfs_clport.c @@ -264,10 +264,10 @@ nfscl_nget(struct mount *mntp, struct vnode *dvp, struct nfsfh *nfhp, np->n_fhp = nfhp; /* - * For NFSv4, we have to attach the directory file handle and + * For NFSv4.0, we have to attach the directory file handle and * file name, so that Open Ops can be done later. */ - if (nmp->nm_flag & NFSMNT_NFSV4) { + if (NFSHASNFSV4(nmp) && !NFSHASNFSV4N(nmp)) { np->n_v4 = malloc(sizeof (struct nfsv4node) + dnp->n_fhp->nfh_len + cnp->cn_namelen - 1, M_NFSV4NODE, M_WAITOK); diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c index 8fe9158384a0..5a16a28bd83e 100644 --- a/sys/fs/nfsclient/nfs_clrpcops.c +++ b/sys/fs/nfsclient/nfs_clrpcops.c @@ -392,16 +392,6 @@ nfsrpc_open(vnode_t vp, int amode, struct ucred *cred, NFSPROC_T *p) nfhp = np->n_fhp; retrycnt = 0; -#ifdef notdef -{ char name[100]; int namel; -namel = (np->n_v4->n4_namelen < 100) ? np->n_v4->n4_namelen : 99; -bcopy(NFS4NODENAME(np->n_v4), name, namel); -name[namel] = '\0'; -printf("rpcopen p=0x%x name=%s",p->p_pid,name); -if (nfhp->nfh_len > 0) printf(" fh=0x%x\n",nfhp->nfh_fh[12]); -else printf(" fhl=0\n"); -} -#endif do { dp = NULL; error = nfscl_open(vp, nfhp->nfh_fh, nfhp->nfh_len, mode, 1, @@ -452,6 +442,39 @@ else printf(" fhl=0\n"); op->nfso_own->nfsow_clp, nfhp->nfh_fh, nfhp->nfh_len, cred, p, &dp); } + } else if (NFSHASNFSV4N(nmp)) { + /* + * For the first attempt, try and get a layout, if + * pNFS is enabled for the mount. + */ + if (!NFSHASPNFS(nmp) || nfscl_enablecallb == 0 || + nfs_numnfscbd == 0 || + (np->n_flag & NNOLAYOUT) != 0 || retrycnt > 0) + error = nfsrpc_openrpc(nmp, vp, nfhp->nfh_fh, + nfhp->nfh_len, nfhp->nfh_fh, nfhp->nfh_len, + mode, op, NULL, 0, &dp, 0, 0x0, cred, p, 0, + 0); + else + error = nfsrpc_getopenlayout(nmp, vp, + nfhp->nfh_fh, nfhp->nfh_len, nfhp->nfh_fh, + nfhp->nfh_len, mode, op, NULL, 0, &dp, + cred, p); + if (dp != NULL) { + NFSLOCKNODE(np); + np->n_flag &= ~NDELEGMOD; + /* + * Invalidate the attribute cache, so that + * attributes that pre-date the issue of a + * delegation are not cached, since the + * cached attributes will remain valid while + * the delegation is held. + */ + NFSINVALATTRCACHE(np); + NFSUNLOCKNODE(np); + (void) nfscl_deleg(nmp->nm_mountp, + op->nfso_own->nfsow_clp, + nfhp->nfh_fh, nfhp->nfh_len, cred, p, &dp); + } } else { error = EIO; } @@ -538,19 +561,40 @@ nfsrpc_openrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, int fhlen, *tl = txdr_unsigned(delegtype); } else { if (dp != NULL) { - *tl = txdr_unsigned(NFSV4OPEN_CLAIMDELEGATECUR); - NFSM_BUILD(tl, u_int32_t *, NFSX_STATEID); - if (NFSHASNFSV4N(nmp)) - *tl++ = 0; - else + if (NFSHASNFSV4N(nmp)) { + *tl = txdr_unsigned( + NFSV4OPEN_CLAIMDELEGATECURFH); + NFSLOCKMNT(nmp); + if ((nmp->nm_privflag & NFSMNTP_BUGGYFBSDSRV) != + 0) { + NFSUNLOCKMNT(nmp); + /* + * Add a stateID argument to make old + * broken FreeBSD NFSv4.1/4.2 servers + * happy. + */ + NFSM_BUILD(tl, uint32_t *,NFSX_STATEID); + *tl++ = 0; + *tl++ = dp->nfsdl_stateid.other[0]; + *tl++ = dp->nfsdl_stateid.other[1]; + *tl = dp->nfsdl_stateid.other[2]; + } else + NFSUNLOCKMNT(nmp); + } else { + *tl = txdr_unsigned(NFSV4OPEN_CLAIMDELEGATECUR); + NFSM_BUILD(tl, u_int32_t *, NFSX_STATEID); *tl++ = dp->nfsdl_stateid.seqid; - *tl++ = dp->nfsdl_stateid.other[0]; - *tl++ = dp->nfsdl_stateid.other[1]; - *tl = dp->nfsdl_stateid.other[2]; + *tl++ = dp->nfsdl_stateid.other[0]; + *tl++ = dp->nfsdl_stateid.other[1]; + *tl = dp->nfsdl_stateid.other[2]; + (void)nfsm_strtom(nd, name, namelen); + } + } else if (NFSHASNFSV4N(nmp)) { + *tl = txdr_unsigned(NFSV4OPEN_CLAIMFH); } else { *tl = txdr_unsigned(NFSV4OPEN_CLAIMNULL); + (void)nfsm_strtom(nd, name, namelen); } - (void) nfsm_strtom(nd, name, namelen); } NFSM_BUILD(tl, u_int32_t *, NFSX_UNSIGNED); *tl = txdr_unsigned(NFSV4OP_GETATTR); @@ -2713,6 +2757,8 @@ nfsrpc_createv4(vnode_t dvp, char *name, int namelen, struct vattr *vap, if ((rflags & NFSV4OPEN_RESULTCONFIRM) && (owp->nfsow_clp->nfsc_flags & NFSCLFLAGS_GOTDELEG) && !error && dp == NULL) { + KASSERT(!NFSHASNFSV4N(nmp), + ("nfsrpc_createv4: result confirm")); do { ret = nfsrpc_openrpc(VFSTONFS(dvp->v_mount), dvp, np->n_fhp->nfh_fh, np->n_fhp->nfh_len, @@ -8009,8 +8055,12 @@ nfsrpc_openlayoutrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, nfsm_strtom(nd, op->nfso_own->nfsow_owner, NFSV4CL_LOCKNAMELEN); NFSM_BUILD(tl, uint32_t *, 2 * NFSX_UNSIGNED); *tl++ = txdr_unsigned(NFSV4OPEN_NOCREATE); - *tl = txdr_unsigned(NFSV4OPEN_CLAIMNULL); - nfsm_strtom(nd, name, namelen); + if (NFSHASNFSV4N(nmp)) { + *tl = txdr_unsigned(NFSV4OPEN_CLAIMFH); + } else { + *tl = txdr_unsigned(NFSV4OPEN_CLAIMNULL); + nfsm_strtom(nd, name, namelen); + } NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED); *tl = txdr_unsigned(NFSV4OP_GETATTR); NFSZERO_ATTRBIT(&attrbits); diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index 74d6a14fc4c4..579210941802 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -4383,9 +4383,15 @@ nfscl_moveopen(vnode_t vp, struct nfsclclient *clp, struct nfsmount *nmp, nfscl_newopen(clp, NULL, &owp, NULL, &op, &nop, owp->nfsow_owner, lop->nfso_fh, lop->nfso_fhlen, cred, &newone); ndp = dp; - error = nfscl_tryopen(nmp, vp, np->n_v4->n4_data, np->n_v4->n4_fhlen, - lop->nfso_fh, lop->nfso_fhlen, lop->nfso_mode, op, - NFS4NODENAME(np->n_v4), np->n_v4->n4_namelen, &ndp, 0, 0, cred, p); + if (NFSHASNFSV4N(nmp)) + error = nfscl_tryopen(nmp, vp, lop->nfso_fh, lop->nfso_fhlen, + lop->nfso_fh, lop->nfso_fhlen, lop->nfso_mode, op, + NULL, 0, &ndp, 0, 0, cred, p); + else + error = nfscl_tryopen(nmp, vp, np->n_v4->n4_data, + np->n_v4->n4_fhlen, lop->nfso_fh, lop->nfso_fhlen, + lop->nfso_mode, op, NFS4NODENAME(np->n_v4), + np->n_v4->n4_namelen, &ndp, 0, 0, cred, p); if (error) { if (newone) nfscl_freeopen(op, 0, true); @@ -4476,14 +4482,16 @@ nfsrpc_reopen(struct nfsmount *nmp, u_int8_t *fhp, int fhlen, if (error) return (error); vp = NFSTOV(np); - if (np->n_v4 != NULL) { + if (NFSHASNFSV4N(nmp)) + error = nfscl_tryopen(nmp, vp, fhp, fhlen, fhp, fhlen, mode, op, + NULL, 0, dpp, 0, 0, cred, p); + else if (np->n_v4 != NULL) error = nfscl_tryopen(nmp, vp, np->n_v4->n4_data, np->n_v4->n4_fhlen, fhp, fhlen, mode, op, NFS4NODENAME(np->n_v4), np->n_v4->n4_namelen, dpp, 0, 0, cred, p); - } else { + else error = EINVAL; - } vrele(vp); return (error); } @@ -4500,18 +4508,43 @@ nfscl_tryopen(struct nfsmount *nmp, vnode_t vp, u_int8_t *fhp, int fhlen, int reclaim, u_int32_t delegtype, struct ucred *cred, NFSPROC_T *p) { int error; + struct nfscldeleg *dp; + bool try_busted_xdr; + dp = *ndpp; do { + *ndpp = dp; /* *ndpp needs to be set for retries. */ error = nfsrpc_openrpc(nmp, vp, fhp, fhlen, newfhp, newfhlen, mode, op, name, namelen, ndpp, reclaim, delegtype, cred, p, 0, 0); + try_busted_xdr = false; if (error == NFSERR_DELAY) (void) nfs_catnap(PZERO, error, "nfstryop"); - } while (error == NFSERR_DELAY); + else if (error == NFSERR_EXPIRED && NFSHASNFSV4N(nmp) && + reclaim == 0 && dp != NULL) { + /* This case is a Claim_Deleg_Cur_FH Open. */ + NFSLOCKMNT(nmp); + if ((nmp->nm_privflag & NFSMNTP_BUGGYFBSDSRV) == 0) { + /* + * Old FreeBSD NFSv4.1/4.2 servers erroneously + * expect a stateID argument for Open + * Claim_Deleg_Cur_FH and interpret the + * Getattr reply as a stateID. This results + * in an NFSERR_EXPIRED failure. + * Setting NFSMNTP_BUGGYFBSDSRV makes the Open + * send a stateID, in violation of RFC8881. + */ + try_busted_xdr = true; + nmp->nm_privflag |= NFSMNTP_BUGGYFBSDSRV; + } + NFSUNLOCKMNT(nmp); + } + } while (error == NFSERR_DELAY || try_busted_xdr); if (error == EAUTH || error == EACCES) { /* Try again using system credentials */ newnfs_setroot(cred); do { + *ndpp = dp; /* *ndpp needs to be set for retries. */ error = nfsrpc_openrpc(nmp, vp, fhp, fhlen, newfhp, newfhlen, mode, op, name, namelen, ndpp, reclaim, delegtype, cred, p, 1, 0); diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c index 383d45ba260b..63cb9eaec7b7 100644 --- a/sys/fs/nfsclient/nfs_clvnops.c +++ b/sys/fs/nfsclient/nfs_clvnops.c @@ -2052,14 +2052,6 @@ nfs_rename(struct vop_rename_args *ap) tdnp->n_fhp->nfh_len != fnp->n_v4->n4_fhlen || NFSBCMP(tdnp->n_fhp->nfh_fh, fnp->n_v4->n4_data, tdnp->n_fhp->nfh_len))) { -#ifdef notdef -{ char nnn[100]; int nnnl; -nnnl = (tcnp->cn_namelen < 100) ? tcnp->cn_namelen : 99; -bcopy(tcnp->cn_nameptr, nnn, nnnl); -nnn[nnnl] = '\0'; -printf("ren replace=%s\n",nnn); -} -#endif free(fnp->n_v4, M_NFSV4NODE); fnp->n_v4 = newv4; newv4 = NULL; @@ -2713,14 +2705,6 @@ nfs_lookitup(struct vnode *dvp, char *name, int len, struct ucred *cred, dnp->n_fhp->nfh_len != np->n_v4->n4_fhlen || NFSBCMP(dnp->n_fhp->nfh_fh, np->n_v4->n4_data, dnp->n_fhp->nfh_len))) { -#ifdef notdef -{ char nnn[100]; int nnnl; -nnnl = (len < 100) ? len : 99; -bcopy(name, nnn, nnnl); -nnn[nnnl] = '\0'; -printf("replace=%s\n",nnn); -} -#endif free(np->n_v4, M_NFSV4NODE); np->n_v4 = malloc( sizeof (struct nfsv4node) + diff --git a/sys/fs/nfsclient/nfsmount.h b/sys/fs/nfsclient/nfsmount.h index 37b84a015dab..7571add27b9c 100644 --- a/sys/fs/nfsclient/nfsmount.h +++ b/sys/fs/nfsclient/nfsmount.h @@ -124,6 +124,7 @@ struct nfsmount { #define NFSMNTP_DELEGISSUED 0x00000400 #define NFSMNTP_NODEALLOCATE 0x00000800 #define NFSMNTP_FAKEROOTFH 0x00001000 +#define NFSMNTP_BUGGYFBSDSRV 0x00002000 /* New mount flags only used by the kernel via nmount(2). */ #define NFSMNT_TLS 0x00000001 From nobody Tue Nov 21 23:59:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZhFJ1Wcgz51Lj8; Tue, 21 Nov 2023 23:59: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZhFJ127wz4XT2; Tue, 21 Nov 2023 23:59:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jPBorzLVip8mfrL719V9um0KUh6nmeZ57AjW3ks03HI=; b=ZA96T/exFraknM0QZY01W+vodchkAUYkU3is3UKTrRYw5aI53BtzOBYgVTmXCAe6qc93w/ Xxqwah/ccccmEzSJEsqXnBQ+1BlDUrhdYDsDMAdxlSpOaVTTx15Ya7ZTM2Zh12OqA1pc43 E0Wk1iDsFRVj08Q2uN0zHgDjxx4LcTalGRaxMe5KjrqP1cqP9n/CeiM00/9CEbkMCZwXs+ P5cIb++ag6Tpf0h471FEt6nvZNs2/PgKCPl0nCOt32JSK9zdOQfWZ9vitnsKOaqJxmDzbj ZTvle0JU9ghuhEiuZfssqBkyYVVR1256Fs3xjbXQCSZfOR+Nk2/9/V6d1cXhfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jPBorzLVip8mfrL719V9um0KUh6nmeZ57AjW3ks03HI=; b=Vyoh2h/zB1UFRkLfI5GYFPfddyaS5OpcPFxTbSiO+xny4z8yFdvHorwAe7AbQnvhZiFOci xyQemjoO20D3dxw7Mg1Uxi98lnKSXgHVqYX6mCQH/00euJ9CtnrinmvbbgHu/kNN8nvVt1 keDWYhTLwLyaz2hYYFcNAt8qqoDBTTlcmqdM+C6L2Miqxl3WZVaQlrx9mcWUkLOBd55yz4 8igVoPK87QSG8iRgNPaXg5F8QsIFSY5RnLNd6TBl5n9dXEGRsfJcwgvw45D9dKJv7HPc0r oT1OuJBFrTK4t7T5fXLV29hkF17cR33ZwyjlpuPSseTJP3tK7kVEfku/CSl0pA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700611188; a=rsa-sha256; cv=none; b=tdfXcqiFZhcHGYXgJQddamvOYFOFgaZv4zCuUu8jTvX0rShZNBGrNwbjmjmsjOOtyB6yQn 6yjjDK4E3z51ijc+E5xQgqLbk4IlcGMnkVVVbL1UOnoTscXX3g+kP7ETTg0IDfC32jWZGn Sr5C23UG+SdFpaSi1YZh0Aem+35N+UWBffJxK2aZ6JNvtyndd0Afs3yGDF0ELk/rgM8GvZ DEhY9HJZvD9ETun/VU+3mJhxy8aByEy1aluIE3Kr1h1icXCfizjXMn3IztcdsF6CZp3WuO GgBKC/QYiTpHSm8Im2/RcLd06sxMBeh0m30EW9XjeQS/ISFGI1WfvE/V3tIkLg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZhFJ044BzwWC; Tue, 21 Nov 2023 23:59:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ALNxlGw081235; Tue, 21 Nov 2023 23:59:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ALNxlQ8081232; Tue, 21 Nov 2023 23:59:47 GMT (envelope-from git) Date: Tue, 21 Nov 2023 23:59:47 GMT Message-Id: <202311212359.3ALNxlQ8081232@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: 55671098064f - stable/14 - nfscl: Handle a Getattr failure with NFSERR_DELAY following Open List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 55671098064f715ae106225513a7241bd6aa46b0 Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=55671098064f715ae106225513a7241bd6aa46b0 commit 55671098064f715ae106225513a7241bd6aa46b0 Author: Rick Macklem AuthorDate: 2023-10-22 01:33:33 +0000 Commit: Rick Macklem CommitDate: 2023-11-21 23:57:43 +0000 nfscl: Handle a Getattr failure with NFSERR_DELAY following Open During testing at a recent IETF NFSv4 Bakeathon, a non-FreeBSD server was rebooted. After the reboot, the FreeBSD client sent an Open/Claim_previous with a Getattr after the Open in the same compound. The Open/Claim_previous was done to recover the Open and a Delegation for for a file. The Open succeeded, but the Getattr after the Open failed with NFSERR_DELAY. This resulted in the FreeBSD client retrying the entire RPC over and over again, until the server's recovery grace period ended. Since the Open succeeded, there was no need to retry the entire RPC. This patch modifies the NFSv4 client side recovery Open/Claim_previous RPC reply handling to deal with this case. With this patch, the Getattr reply of NFSERR_DELAY is ignored and the successful Open reply is processed. This bug will not normally affect users, since this non-FreeBSD server is not widely used (it may not even have shipped to any customers). (cherry picked from commit 14bbf4fe5abb20f1126168e66b03127ae920f78e) --- sys/fs/nfsclient/nfs_clrpcops.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c index 5a16a28bd83e..207a51c4aece 100644 --- a/sys/fs/nfsclient/nfs_clrpcops.c +++ b/sys/fs/nfsclient/nfs_clrpcops.c @@ -609,7 +609,8 @@ nfsrpc_openrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, int fhlen, if (error) return (error); NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd); - if (!nd->nd_repstat) { + if (nd->nd_repstat == 0 || (nd->nd_repstat == NFSERR_DELAY && + reclaim != 0 && (nd->nd_flag & ND_NOMOREDATA) == 0)) { NFSM_DISSECT(tl, u_int32_t *, NFSX_STATEID + 6 * NFSX_UNSIGNED); op->nfso_stateid.seqid = *tl++; @@ -681,16 +682,29 @@ nfsrpc_openrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, int fhlen, goto nfsmout; } NFSM_DISSECT(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - error = nfsv4_loadattr(nd, NULL, &nfsva, NULL, - NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, - NULL, NULL, NULL, p, cred); - if (error) - goto nfsmout; + /* If the 2nd element == NFS_OK, the Getattr succeeded. */ + if (*++tl == 0) { + KASSERT(nd->nd_repstat == 0, + ("nfsrpc_openrpc: Getattr repstat")); + error = nfsv4_loadattr(nd, NULL, &nfsva, NULL, + NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, + NULL, NULL, NULL, p, cred); + if (error) + goto nfsmout; + } if (ndp != NULL) { - ndp->nfsdl_change = nfsva.na_filerev; - ndp->nfsdl_modtime = nfsva.na_mtime; - ndp->nfsdl_flags |= NFSCLDL_MODTIMESET; + if (reclaim != 0 && dp != NULL) { + ndp->nfsdl_change = dp->nfsdl_change; + ndp->nfsdl_modtime = dp->nfsdl_modtime; + ndp->nfsdl_flags |= NFSCLDL_MODTIMESET; + } else if (nd->nd_repstat == 0) { + ndp->nfsdl_change = nfsva.na_filerev; + ndp->nfsdl_modtime = nfsva.na_mtime; + ndp->nfsdl_flags |= NFSCLDL_MODTIMESET; + } else + ndp->nfsdl_flags |= NFSCLDL_RECALL; } + nd->nd_repstat = 0; if (!reclaim && (rflags & NFSV4OPEN_RESULTCONFIRM)) { do { ret = nfsrpc_openconfirm(vp, newfhp, newfhlen, op, From nobody Wed Nov 22 00:04:32 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZhLm4mWBz51M15; Wed, 22 Nov 2023 00:04:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZhLm4D14z4Y6n; Wed, 22 Nov 2023 00:04:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2RP++nWCGgw95fvvNigYMTScWbmXSQ5qpvjnfSG9rWQ=; b=KVAAC3fnJKYOYuS7tbBmBGkTh988LhYjPt09Pj6ZLhytJYFkUioo+/+OUJo2xJbRmNgGv4 ZM2xVr1K2m+Hxj/5XrKNIfT04lZGayPdNJdekrX3jFP9xZFszu8O9yv+4/y//LYC5OrkIi bbg4Iw6AUsk+wgJnw3DQN+vzIU2wj52pfTSEyv37kIAg4ykL/Z3uaiHbwSLIjVKRW0RUXG qtc0SjMqZ6QYqqoRG4nJ2gQS82/QScI0w1VVpHJTvzGsZw+0NnWo78EnPfs/64SWxN6F8b LvsUZUSNYFinojndM3masbVXjOxugkkSJCMwiRil6gANmYYliXynW4DzgLAx4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611472; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2RP++nWCGgw95fvvNigYMTScWbmXSQ5qpvjnfSG9rWQ=; b=TUchdfxjM3+1lATNJMcQXzivrKPBAr0m/8sBRjYM529R/+pJ/r4qe4DYA0C/yndVofMB0N GUqCe5sliBwylODfX2I0fBGd96KXqCRGhRZpADjcTo9kk360WM666WlWDZok5F2TxgjeBS n5fQt95/ROd6rxX03I7egb3GU5RE98yG4Lbt+XlVF5CTbLNQ/iCewuYaL9jE2UEsknG3bC AJ/c0aHpt29Nh/T8Ng1eYCispYrqxCZZotuyK5Ws54URxFYY4btCwlj6PPaHUZBxW1LZMV k70RDep5AVb7AP+kX4Bk2xR/oqBCAgwOgz6MPeU7ip501Eva4+Zrdf4AC4PVZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700611472; a=rsa-sha256; cv=none; b=Y5FPQYeGJqkyK94pGSv30uFUT8ieeLFeyZVSQrQtpZJ8LxHBLVQAkplZ8yuWI1g8oPmXkR QUQgnGouRStBVg1nTpPJ49LXtbQEzFX7AM0mWaj+xq54tVvfij3SSSW6d0FHvCRfJztBdT c8dlCJR9RjqzP27DblUVnloz6xY9xSZIWuSm7areMlDq6WzdLIgrLW1kAvxn9IBMFT6WEg Air71itJ5OWFz+OKS4LKY8IdIKYx7PXVwEYd9ODs7m02tXFgRrqTfMoCC1A6aU5MOn1vNJ RmpW1+kwK/ARPeZEB3YIRqA+cN9Wy4So1SZitrD1TIwYy0KAhNZoahMeXbYJDA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZhLm3H5wzwrS; Wed, 22 Nov 2023 00:04:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM04WYT098053; Wed, 22 Nov 2023 00:04:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM04Wm4098050; Wed, 22 Nov 2023 00:04:32 GMT (envelope-from git) Date: Wed, 22 Nov 2023 00:04:32 GMT Message-Id: <202311220004.3AM04Wm4098050@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: 3ab7f15d9116 - stable/13 - nfscl: Handle a Getattr failure with NFSERR_DELAY following Open List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3ab7f15d91160b4ac3369f6c3bc696ba9bf88afc Auto-Submitted: auto-generated The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=3ab7f15d91160b4ac3369f6c3bc696ba9bf88afc commit 3ab7f15d91160b4ac3369f6c3bc696ba9bf88afc Author: Rick Macklem AuthorDate: 2023-10-22 01:33:33 +0000 Commit: Rick Macklem CommitDate: 2023-11-22 00:03:11 +0000 nfscl: Handle a Getattr failure with NFSERR_DELAY following Open During testing at a recent IETF NFSv4 Bakeathon, a non-FreeBSD server was rebooted. After the reboot, the FreeBSD client sent an Open/Claim_previous with a Getattr after the Open in the same compound. The Open/Claim_previous was done to recover the Open and a Delegation for for a file. The Open succeeded, but the Getattr after the Open failed with NFSERR_DELAY. This resulted in the FreeBSD client retrying the entire RPC over and over again, until the server's recovery grace period ended. Since the Open succeeded, there was no need to retry the entire RPC. This patch modifies the NFSv4 client side recovery Open/Claim_previous RPC reply handling to deal with this case. With this patch, the Getattr reply of NFSERR_DELAY is ignored and the successful Open reply is processed. This bug will not normally affect users, since this non-FreeBSD server is not widely used (it may not even have shipped to any customers). (cherry picked from commit 14bbf4fe5abb20f1126168e66b03127ae920f78e) --- sys/fs/nfsclient/nfs_clrpcops.c | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c index be702e703c91..569132aee43c 100644 --- a/sys/fs/nfsclient/nfs_clrpcops.c +++ b/sys/fs/nfsclient/nfs_clrpcops.c @@ -569,7 +569,8 @@ nfsrpc_openrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, int fhlen, if (error) return (error); NFSCL_INCRSEQID(op->nfso_own->nfsow_seqid, nd); - if (!nd->nd_repstat) { + if (nd->nd_repstat == 0 || (nd->nd_repstat == NFSERR_DELAY && + reclaim != 0 && (nd->nd_flag & ND_NOMOREDATA) == 0)) { NFSM_DISSECT(tl, u_int32_t *, NFSX_STATEID + 6 * NFSX_UNSIGNED); op->nfso_stateid.seqid = *tl++; @@ -641,16 +642,29 @@ nfsrpc_openrpc(struct nfsmount *nmp, vnode_t vp, u_int8_t *nfhp, int fhlen, goto nfsmout; } NFSM_DISSECT(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - error = nfsv4_loadattr(nd, NULL, &nfsva, NULL, - NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, - NULL, NULL, NULL, p, cred); - if (error) - goto nfsmout; + /* If the 2nd element == NFS_OK, the Getattr succeeded. */ + if (*++tl == 0) { + KASSERT(nd->nd_repstat == 0, + ("nfsrpc_openrpc: Getattr repstat")); + error = nfsv4_loadattr(nd, NULL, &nfsva, NULL, + NULL, 0, NULL, NULL, NULL, NULL, NULL, 0, + NULL, NULL, NULL, p, cred); + if (error) + goto nfsmout; + } if (ndp != NULL) { - ndp->nfsdl_change = nfsva.na_filerev; - ndp->nfsdl_modtime = nfsva.na_mtime; - ndp->nfsdl_flags |= NFSCLDL_MODTIMESET; + if (reclaim != 0 && dp != NULL) { + ndp->nfsdl_change = dp->nfsdl_change; + ndp->nfsdl_modtime = dp->nfsdl_modtime; + ndp->nfsdl_flags |= NFSCLDL_MODTIMESET; + } else if (nd->nd_repstat == 0) { + ndp->nfsdl_change = nfsva.na_filerev; + ndp->nfsdl_modtime = nfsva.na_mtime; + ndp->nfsdl_flags |= NFSCLDL_MODTIMESET; + } else + ndp->nfsdl_flags |= NFSCLDL_RECALL; } + nd->nd_repstat = 0; if (!reclaim && (rflags & NFSV4OPEN_RESULTCONFIRM)) { do { ret = nfsrpc_openconfirm(vp, newfhp, newfhlen, op, From nobody Wed Nov 22 00:10:39 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZhTq5yXrz51MNn; Wed, 22 Nov 2023 00:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZhTq5Y81z4YlF; Wed, 22 Nov 2023 00:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A4J2a4cAyIFWjbY3z4GXMWikaLkw6vStZJ0YBdWYA1A=; b=qyGoT3gPczVr8hiYUJrGws10Ohkd0j3jbtnO3pHy7ESE6UVrUfKZ4dU3pGBuV1Qucykp7t epNNBm1VuGJOBL6M8wFgztOsJjc9wvoLNcNJlGBT0Bibolue9nayDabLkLxD+pFOcfQ9ig 9DaGiak0nT+zIrBgDYOj57HPtpi9KhytQ7tYVQ6ywVvWcQoG9Ggdovhs8XZrd/MGe+mnW/ /NloVYRUgVJeFzeXN+dIzB92jz2IDKZz01DsbzsZT04GoALjS05W2KzMtFLfscdcjFN/o9 XB1WT0VTi/ScI7kCsPTOFH+ZbliAzMnElD5HdgKFJkfZj0iqrRgBlXEE7c5w2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700611839; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=A4J2a4cAyIFWjbY3z4GXMWikaLkw6vStZJ0YBdWYA1A=; b=GKil6x351Wb3gWkbPnUiMJIK2vaT4yG8URomiAV/DUeqcm1Je29UiDxA3840C5XmEfciSh nIC4bjiYsd7y7XiM4NGVYG+GyQZ2ZtOOqMThUWp+u56bMl3YCQ4Z2FBHpEaC6ijiV3WOHs Y7o12OZqGpDG0tNqpg3C9ce43tbxk3vRcI7lZ+f3ZIkF1I0vdeV5IXTBQgouY+CtIPT0Ju 2UX6dg0d8arn5eLf1E8zTj/c0LD+d1pJlWm/4rmjCvkoJwZxVodb9XK1dkNyOguOhN/1i6 aAyIkXrkcMBYAL/TCCQ233+sjOsG4vbAmq4wUcYJcxvj5RWMt8tpUi16HNyysA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700611839; a=rsa-sha256; cv=none; b=sRkaCM/SyZkKXkRMy9gW31P4p8RGz16bAMOCWpe/3zDnfbF7RiqPBD14Y3Eh4/sCdNdYEs kPSijmV5WCCxlt5+JaBJIkPHB38H3kj6X6WOcb5IAhDjyoDENhoGVYP98mDKmrmKfmsFxI rqOxb5shDZFT3VJYhX3XAhhnMuSvYJ8mvIgkxTRcjv//6HatxSr9Ag8x8hrC4wS22pRNcq AD321+Veg+qJXnz8rqdR1+txziysrZIoKiSGQEaiqNRXIT6Yt7koI/9B9/nQX5hoTAPVyv 9a48ziVR0QU5g2MNg9zgVkALu6gUKSeBywO6n/0U62sJYFF3AFOVJLoAXJKLPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZhTq4d5qzwWb; Wed, 22 Nov 2023 00:10:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM0Ads0007553; Wed, 22 Nov 2023 00:10:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM0Ad9J007549; Wed, 22 Nov 2023 00:10:39 GMT (envelope-from git) Date: Wed, 22 Nov 2023 00:10:39 GMT Message-Id: <202311220010.3AM0Ad9J007549@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: 64d119ab5a36 - stable/14 - nfscl: newnfs_copycred() cannot be called when a mutex is held List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64d119ab5a3600c45daf68a0eade19a5432e7563 Auto-Submitted: auto-generated The branch stable/14 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=64d119ab5a3600c45daf68a0eade19a5432e7563 commit 64d119ab5a3600c45daf68a0eade19a5432e7563 Author: Rick Macklem AuthorDate: 2023-11-06 22:25:30 +0000 Commit: Rick Macklem CommitDate: 2023-11-22 00:09:13 +0000 nfscl: newnfs_copycred() cannot be called when a mutex is held Since newnfs_copycred() calls crsetgroups() which in turn calls crextend() which might do a malloc(M_WAITOK), newnfs_copycred() cannot be called with a mutex held. Fortunately, the malloc() call is rarely done, since XU_GROUPS is 16 and the NFS client uses a maximum of 17 (only 17 groups will cause the malloc() to be called). Further, it is only a problem if the malloc() tries to sleep(). As such, this bug does not seem to have caused problems in practice. This patch fixes the one place in the NFS client where newnfs_copycred() is called while a mutex is held by moving the call to after where the mutex is released. Found by inspection while working on an experimental patch. (cherry picked from commit 501bdf3001190686bf55d9d333cb533858c2cf2f) --- sys/fs/nfsclient/nfs_clstate.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index 579210941802..ebc11efea637 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -526,6 +526,7 @@ nfscl_getstateid(vnode_t vp, u_int8_t *nfhp, int fhlen, u_int32_t mode, struct nfscldeleg *dp; struct nfsnode *np; struct nfsmount *nmp; + struct nfscred ncr; u_int8_t own[NFSV4CL_LOCKNAMELEN], lockown[NFSV4CL_LOCKNAMELEN]; int error; bool done; @@ -683,7 +684,7 @@ nfscl_getstateid(vnode_t vp, u_int8_t *nfhp, int fhlen, u_int32_t mode, * A read ahead or write behind is indicated by p == NULL. */ if (p == NULL) - newnfs_copycred(&op->nfso_cred, cred); + memcpy(&ncr, &op->nfso_cred, sizeof(ncr)); } /* @@ -697,6 +698,8 @@ nfscl_getstateid(vnode_t vp, u_int8_t *nfhp, int fhlen, u_int32_t mode, stateidp->other[1] = op->nfso_stateid.other[1]; stateidp->other[2] = op->nfso_stateid.other[2]; NFSUNLOCKCLSTATE(); + if (p == NULL) + newnfs_copycred(&ncr, cred); return (0); } From nobody Wed Nov 22 00:14:08 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZhYr6wR4z51MwC; Wed, 22 Nov 2023 00:14:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZhYr67JVz4Z8r; Wed, 22 Nov 2023 00:14:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700612048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1iQZgh13K5UH7CTBGoLunDY0tbp/cjKJ7ORhgWbaYfI=; b=PNASlu840WI2s0t3pqN2UVKYL5cQIYie7AM7vg1Cr4Ey52uswwXrSVshT8DBgBhj+VGY3t n2cwYtHzphto7ph64B5W8/JpvqXMgXum2WyRSXDpxfBGuWOg/P6tccpUh4+e9P99KQM7kq xbgm1vqglpD5iEUXddh2bTEioIlayxBJASuDwl/JFM3SAKGculImyW7YC+YleqW7ep8j7O OixhPK9G6d6l4VN5km39HZpvUKiMU5Q0x/NH0nkm3iPIq3zbk9sxABHRlP6VIHF9QaiNvu 3XERh9BNO+dOmt6mYMWnRgTK6gnR6fx/q5HeXKIoDaplaQ2+7RUklzRRx1XNWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700612048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1iQZgh13K5UH7CTBGoLunDY0tbp/cjKJ7ORhgWbaYfI=; b=jkptW69mfbaKZDAGq/KL7O2+/pIzvf/yQDapUtQbWxXT3tnsI2MzUJ/aCEy23jIB9fqtBm CO+Yfs3LbGz7ViccUYAzhtvVY1+irv5UajcLZH0zQt1KtPiPtvhd8UtTRK8y6yRfa8Qyi4 ZHlm606KtoL9jnY/sdN7V8XEfjrux/JBc0QyKTLE7qp46VUqWATTIO2tWYRlxAzKONYTNC IDH/RL6zzVCy/I/RE0N6puRvGdcjBaGWxE+Hz48U+269PXo4rAJEJVfKocqbgvPwXRrvMC KgtaG27k1Vp/yedgQLFrRdCR5R6wwyn9fgRpVso1Jtq6GFrIaGeqcGxcAZ41ag== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700612048; a=rsa-sha256; cv=none; b=U0WqH0gvQNGqk18J/1brSvwqGrphyxr2vRiHrtvv81tVQtZDVH7sPOdzbHE72Gfbuk3kud yiY3sK87Fve0UxgbrCEMYqh+7Q1NGk4R9qhpBFXpusPUqoDDykxs80EvtxmUxfFlNHnwQ8 8kS9B14aCLsVMLteHVMlrQR6r1zZ9m3V0O2/dLKnu/mtXg3ss9MXjEWZ5gHot+sIvIs7s/ 2TKIos4uNirtT1gUZI9yfp9AVUNrMIbCrjnM7ctvTRPEg96DkVrUu7sRnu1qrDjel7RJcn w365CdlWLZ7ViuU0WCe1WcRRU9fG/RQ3eFaDnmvBpt50z9S7V2WADmjW+79fww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZhYr5Cv6zx1W; Wed, 22 Nov 2023 00:14:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM0E8Vv014347; Wed, 22 Nov 2023 00:14:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM0E89L014344; Wed, 22 Nov 2023 00:14:08 GMT (envelope-from git) Date: Wed, 22 Nov 2023 00:14:08 GMT Message-Id: <202311220014.3AM0E89L014344@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: 2d8d914450da - stable/13 - nfscl: newnfs_copycred() cannot be called when a mutex is held List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2d8d914450da1f9b79a7b51c0970445fcd9f648f Auto-Submitted: auto-generated The branch stable/13 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=2d8d914450da1f9b79a7b51c0970445fcd9f648f commit 2d8d914450da1f9b79a7b51c0970445fcd9f648f Author: Rick Macklem AuthorDate: 2023-11-06 22:25:30 +0000 Commit: Rick Macklem CommitDate: 2023-11-22 00:13:25 +0000 nfscl: newnfs_copycred() cannot be called when a mutex is held Since newnfs_copycred() calls crsetgroups() which in turn calls crextend() which might do a malloc(M_WAITOK), newnfs_copycred() cannot be called with a mutex held. Fortunately, the malloc() call is rarely done, since XU_GROUPS is 16 and the NFS client uses a maximum of 17 (only 17 groups will cause the malloc() to be called). Further, it is only a problem if the malloc() tries to sleep(). As such, this bug does not seem to have caused problems in practice. This patch fixes the one place in the NFS client where newnfs_copycred() is called while a mutex is held by moving the call to after where the mutex is released. Found by inspection while working on an experimental patch. (cherry picked from commit 501bdf3001190686bf55d9d333cb533858c2cf2f) --- sys/fs/nfsclient/nfs_clstate.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/fs/nfsclient/nfs_clstate.c b/sys/fs/nfsclient/nfs_clstate.c index 3d516a33934f..9ab0a29e9c5d 100644 --- a/sys/fs/nfsclient/nfs_clstate.c +++ b/sys/fs/nfsclient/nfs_clstate.c @@ -528,6 +528,7 @@ nfscl_getstateid(vnode_t vp, u_int8_t *nfhp, int fhlen, u_int32_t mode, struct nfscldeleg *dp; struct nfsnode *np; struct nfsmount *nmp; + struct nfscred ncr; u_int8_t own[NFSV4CL_LOCKNAMELEN], lockown[NFSV4CL_LOCKNAMELEN]; int error; bool done; @@ -685,7 +686,7 @@ nfscl_getstateid(vnode_t vp, u_int8_t *nfhp, int fhlen, u_int32_t mode, * A read ahead or write behind is indicated by p == NULL. */ if (p == NULL) - newnfs_copycred(&op->nfso_cred, cred); + memcpy(&ncr, &op->nfso_cred, sizeof(ncr)); } /* @@ -699,6 +700,8 @@ nfscl_getstateid(vnode_t vp, u_int8_t *nfhp, int fhlen, u_int32_t mode, stateidp->other[1] = op->nfso_stateid.other[1]; stateidp->other[2] = op->nfso_stateid.other[2]; NFSUNLOCKCLSTATE(); + if (p == NULL) + newnfs_copycred(&ncr, cred); return (0); } From nobody Wed Nov 22 01:51:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkZ0MR0z51W4C; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkY71jtz3HBq; Wed, 22 Nov 2023 01: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=1700617910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kyO7mPocSKUPuoi7vQQjjDfaV6ohwD6LsGoUH3SNJac=; b=JX7Nx7OCySzws9ENzMKkFO9+bAncOIQw6scTfxoHKvkEd4+WlLaklm8yBNb7XOIFvxFAXu UFmvHqVWbSmqYEpKu1uvmQ2bVBuA6bWns4VKIWKJPNRLIBEWtcdfkwktpzkYXe71fIA9gu uvJoYDnWb5171e4bjTNgZsrxjHwWZbohgu+T85q1MqoJpyk+hlmgYr1PFY3jvHKky+POd3 MTcNwVhcnW5XnJp98fhrLGvhMhY0g6ODYI8dA0WMu0NpIlckiGoMlWlNH84rCOPUpe8KoH tESy9VpohszEaan0uPtKpS4fJnEhqU4vQfx9SXiC+230TnUncDiQhRbK8q68AA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617910; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kyO7mPocSKUPuoi7vQQjjDfaV6ohwD6LsGoUH3SNJac=; b=nmnu/CXCtx8OSUh7SaRDay7wRXBwqRG8aV23HWUip8AKYK4TwMm+iggElwNNuoDMJklN7T bBgPOfer3XLw4Ek2ehU1kn2oNGLPxg3w/iAecn2ydFgd7+Wgd61/9NeOedcAqFQvmsXKjz P2BV78aXJOo6WKZMaMciqeNOUkfoMkcVbO5Tq8M1NCiC2wdyF6KO/i7X9kfnwWjH8p6QZK MHTCuyl96OQAFKQ8444+KoxmGjuPBsuuPVymD7VH87Z6Xoy5Vc79/Z5zSS9NcBQh7FpMKp JEE3pLFYAWaF0GpxDRgzdHzpjOZd4fFaGMTVD9/zzrw+ULDjSmHA+gMX0ITTDA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617910; a=rsa-sha256; cv=none; b=iHm1dOKJPTQWmu9bVsWssNoIWdEhOFehG5VdoHQ3tuDDkZGhflwHej7hwRosqAFUQADg62 XI5vVIA0k51WoyWeu+1Y9M6Py7Q06vHrkswg3c4qDFLn+dyj6OtCF14snrRJpmj9mw3gDP SgM63iBjp2Zmh5Qk9YZ5WRkTFwUtxvcOApWQSvGAKZvfBXPbO6HWLad404WK80JfYPvCy0 /D15gH1BDHC02w2IF651RzSskyPM/IJjFoW6z0J11b0cWTN+sTyJebidB5pK6Mig6MIeUo jG79NjEmLHLayLuNXsKkKxupe+jmcJM7htaLNUioof/s6gInOV7KYbTiIn90Qg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkY65KGz10KM; Wed, 22 Nov 2023 01:51:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1pnPJ076127; Wed, 22 Nov 2023 01:51:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pnEZ076124; Wed, 22 Nov 2023 01:51:49 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:49 GMT Message-Id: <202311220151.3AM1pnEZ076124@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: 2b729c222d48 - stable/14 - mlx5: Add modify header 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2b729c222d4821069c817c853f56826d065f7ac7 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=2b729c222d4821069c817c853f56826d065f7ac7 commit 2b729c222d4821069c817c853f56826d065f7ac7 Author: Mark Bloch AuthorDate: 2023-02-19 08:41:24 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:27 +0000 mlx5: Add modify header support (cherry picked from commit e4f84168b3c8bf99297dda712b147906d463b20e) --- sys/dev/mlx5/fs.h | 6 ++ sys/dev/mlx5/mlx5_core/fs_core.h | 15 ++++ sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 73 ++++++++++++++++ sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 32 +++++++ sys/dev/mlx5/mlx5_ifc.h | 160 +++++++++++++++++++++++++++++++++- 5 files changed, 283 insertions(+), 3 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index b630ab22d465..db5ba1964845 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -228,4 +228,10 @@ bool fs_match_exact_mask( void *mask2); /**********end API for sniffer**********/ +struct mlx5_modify_hdr *mlx5_modify_header_alloc(struct mlx5_core_dev *dev, + enum mlx5_flow_namespace_type ns_type, + u8 num_actions, + void *modify_actions); +void mlx5_modify_header_dealloc(struct mlx5_core_dev *dev, + struct mlx5_modify_hdr *modify_hdr); #endif diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index c1033e24a20e..11b042863454 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -168,6 +168,11 @@ struct fs_client_priv_data { void *client_dst_data; }; +struct mlx5_modify_hdr { + enum mlx5_flow_namespace_type ns_type; + u32 id; +}; + void _fs_remove_node(struct kref *kref); #define fs_get_obj(v, _base) {v = container_of((_base), typeof(*v), base); } #define fs_get_parent(v, child) {v = (child)->base.parent ? \ @@ -295,4 +300,14 @@ int mlx5_cmd_update_root_ft(struct mlx5_core_dev *dev, int mlx5_init_fs(struct mlx5_core_dev *dev); void mlx5_cleanup_fs(struct mlx5_core_dev *dev); +void mlx5_fc_update_sampling_interval(struct mlx5_core_dev *dev, + unsigned long interval); + +int mlx5_cmd_modify_header_alloc(struct mlx5_core_dev *dev, + enum mlx5_flow_namespace_type namespace, + u8 num_actions, + void *modify_actions, + struct mlx5_modify_hdr *modify_hdr); +void mlx5_cmd_modify_header_dealloc(struct mlx5_core_dev *dev, + struct mlx5_modify_hdr *modify_hdr); #endif diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 75e48909aae6..214b4141a973 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -283,3 +283,76 @@ int mlx5_cmd_fs_delete_fte(struct mlx5_core_dev *dev, return err; } + +int mlx5_cmd_modify_header_alloc(struct mlx5_core_dev *dev, + enum mlx5_flow_namespace_type namespace, + u8 num_actions, + void *modify_actions, + struct mlx5_modify_hdr *modify_hdr) +{ + u32 out[MLX5_ST_SZ_DW(alloc_modify_header_context_out)] = {}; + int max_actions, actions_size, inlen, err; + void *actions_in; + u8 table_type; + u32 *in; + + switch (namespace) { + case MLX5_FLOW_NAMESPACE_FDB: + max_actions = MLX5_CAP_ESW_FLOWTABLE_FDB(dev, max_modify_header_actions); + table_type = FS_FT_FDB; + break; + case MLX5_FLOW_NAMESPACE_KERNEL: + case MLX5_FLOW_NAMESPACE_BYPASS: + max_actions = MLX5_CAP_FLOWTABLE_NIC_RX(dev, max_modify_header_actions); + table_type = FS_FT_NIC_RX; + break; + case MLX5_FLOW_NAMESPACE_ESW_INGRESS: + max_actions = MLX5_CAP_ESW_INGRESS_ACL(dev, max_modify_header_actions); + table_type = FS_FT_ESW_INGRESS_ACL; + break; + default: + return -EOPNOTSUPP; + } + + if (num_actions > max_actions) { + mlx5_core_warn(dev, "too many modify header actions %d, max supported %d\n", + num_actions, max_actions); + return -EOPNOTSUPP; + } + + actions_size = MLX5_UN_SZ_BYTES(set_add_copy_action_in_auto) * num_actions; + inlen = MLX5_ST_SZ_BYTES(alloc_modify_header_context_in) + actions_size; + + in = kzalloc(inlen, GFP_KERNEL); + if (!in) + return -ENOMEM; + + MLX5_SET(alloc_modify_header_context_in, in, opcode, + MLX5_CMD_OP_ALLOC_MODIFY_HEADER_CONTEXT); + MLX5_SET(alloc_modify_header_context_in, in, table_type, table_type); + MLX5_SET(alloc_modify_header_context_in, in, num_of_actions, num_actions); + + actions_in = MLX5_ADDR_OF(alloc_modify_header_context_in, in, actions); + memcpy(actions_in, modify_actions, actions_size); + + err = mlx5_cmd_exec(dev, in, inlen, out, sizeof(out)); + + modify_hdr->id = MLX5_GET(alloc_modify_header_context_out, out, modify_header_id); + kfree(in); + + return err; +} + +void mlx5_cmd_modify_header_dealloc(struct mlx5_core_dev *dev, + struct mlx5_modify_hdr *modify_hdr) +{ + u32 out[MLX5_ST_SZ_DW(dealloc_modify_header_context_out)] = {}; + u32 in[MLX5_ST_SZ_DW(dealloc_modify_header_context_in)] = {}; + + MLX5_SET(dealloc_modify_header_context_in, in, opcode, + MLX5_CMD_OP_DEALLOC_MODIFY_HEADER_CONTEXT); + MLX5_SET(dealloc_modify_header_context_in, in, modify_header_id, + modify_hdr->id); + + mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); +} diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 734992be9de1..9e9febfe902e 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -2739,3 +2739,35 @@ free_list: mlx5_del_flow_rules_list(rules_list); return NULL; } + +struct mlx5_modify_hdr *mlx5_modify_header_alloc(struct mlx5_core_dev *dev, + enum mlx5_flow_namespace_type ns_type, + u8 num_actions, + void *modify_actions) +{ + struct mlx5_modify_hdr *modify_hdr; + int err; + + modify_hdr = kzalloc(sizeof(*modify_hdr), GFP_KERNEL); + if (!modify_hdr) + return ERR_PTR(-ENOMEM); + + modify_hdr->ns_type = ns_type; + err = mlx5_cmd_modify_header_alloc(dev, ns_type, num_actions, + modify_actions, modify_hdr); + if (err) { + kfree(modify_hdr); + return ERR_PTR(err); + } + + return modify_hdr; +} +EXPORT_SYMBOL(mlx5_modify_header_alloc); + +void mlx5_modify_header_dealloc(struct mlx5_core_dev *dev, + struct mlx5_modify_hdr *modify_hdr) +{ + mlx5_cmd_modify_header_dealloc(dev, modify_hdr); + kfree(modify_hdr); +} +EXPORT_SYMBOL(mlx5_modify_header_dealloc); diff --git a/sys/dev/mlx5/mlx5_ifc.h b/sys/dev/mlx5/mlx5_ifc.h index 5293a83f56d9..fcea7342532b 100644 --- a/sys/dev/mlx5/mlx5_ifc.h +++ b/sys/dev/mlx5/mlx5_ifc.h @@ -473,7 +473,8 @@ struct mlx5_ifc_flow_table_prop_layout_bits { u8 reserved_at_20[0x2]; u8 log_max_ft_size[0x6]; - u8 reserved_at_28[0x10]; + u8 log_max_modify_header_context[0x8]; + u8 max_modify_header_actions[0x8]; u8 max_ft_level[0x8]; u8 reserved_at_40[0x20]; @@ -2251,11 +2252,15 @@ struct mlx5_ifc_flow_context_bits { u8 reserved_4[0x8]; u8 flow_counter_list_size[0x18]; - u8 reserved_5[0x140]; + u8 reserved_5[0x20]; + + u8 modify_header_id[0x20]; + + u8 reserved_6[0x100]; struct mlx5_ifc_fte_match_param_bits match_value; - u8 reserved_6[0x600]; + u8 reserved_7[0x600]; union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits destination[0]; }; @@ -5199,6 +5204,155 @@ struct mlx5_ifc_query_eq_in_bits { u8 reserved_3[0x20]; }; +struct mlx5_ifc_set_action_in_bits { + u8 action_type[0x4]; + u8 field[0xc]; + u8 reserved_at_10[0x3]; + u8 offset[0x5]; + u8 reserved_at_18[0x3]; + u8 length[0x5]; + + u8 data[0x20]; +}; + +struct mlx5_ifc_add_action_in_bits { + u8 action_type[0x4]; + u8 field[0xc]; + u8 reserved_at_10[0x10]; + + u8 data[0x20]; +}; + +struct mlx5_ifc_copy_action_in_bits { + u8 action_type[0x4]; + u8 src_field[0xc]; + u8 reserved_at_10[0x3]; + u8 src_offset[0x5]; + u8 reserved_at_18[0x3]; + u8 length[0x5]; + + u8 reserved_at_20[0x4]; + u8 dst_field[0xc]; + u8 reserved_at_30[0x3]; + u8 dst_offset[0x5]; + u8 reserved_at_38[0x8]; +}; + +union mlx5_ifc_set_add_copy_action_in_auto_bits { + struct mlx5_ifc_set_action_in_bits set_action_in; + struct mlx5_ifc_add_action_in_bits add_action_in; + struct mlx5_ifc_copy_action_in_bits copy_action_in; + u8 reserved_at_0[0x40]; +}; + +enum { + MLX5_ACTION_TYPE_SET = 0x1, + MLX5_ACTION_TYPE_ADD = 0x2, + MLX5_ACTION_TYPE_COPY = 0x3, +}; + +enum { + MLX5_ACTION_IN_FIELD_OUT_SMAC_47_16 = 0x1, + MLX5_ACTION_IN_FIELD_OUT_SMAC_15_0 = 0x2, + MLX5_ACTION_IN_FIELD_OUT_ETHERTYPE = 0x3, + MLX5_ACTION_IN_FIELD_OUT_DMAC_47_16 = 0x4, + MLX5_ACTION_IN_FIELD_OUT_DMAC_15_0 = 0x5, + MLX5_ACTION_IN_FIELD_OUT_IP_DSCP = 0x6, + MLX5_ACTION_IN_FIELD_OUT_TCP_FLAGS = 0x7, + MLX5_ACTION_IN_FIELD_OUT_TCP_SPORT = 0x8, + MLX5_ACTION_IN_FIELD_OUT_TCP_DPORT = 0x9, + MLX5_ACTION_IN_FIELD_OUT_IP_TTL = 0xa, + MLX5_ACTION_IN_FIELD_OUT_UDP_SPORT = 0xb, + MLX5_ACTION_IN_FIELD_OUT_UDP_DPORT = 0xc, + MLX5_ACTION_IN_FIELD_OUT_SIPV6_127_96 = 0xd, + MLX5_ACTION_IN_FIELD_OUT_SIPV6_95_64 = 0xe, + MLX5_ACTION_IN_FIELD_OUT_SIPV6_63_32 = 0xf, + MLX5_ACTION_IN_FIELD_OUT_SIPV6_31_0 = 0x10, + MLX5_ACTION_IN_FIELD_OUT_DIPV6_127_96 = 0x11, + MLX5_ACTION_IN_FIELD_OUT_DIPV6_95_64 = 0x12, + MLX5_ACTION_IN_FIELD_OUT_DIPV6_63_32 = 0x13, + MLX5_ACTION_IN_FIELD_OUT_DIPV6_31_0 = 0x14, + MLX5_ACTION_IN_FIELD_OUT_SIPV4 = 0x15, + MLX5_ACTION_IN_FIELD_OUT_DIPV4 = 0x16, + MLX5_ACTION_IN_FIELD_OUT_FIRST_VID = 0x17, + MLX5_ACTION_IN_FIELD_OUT_IPV6_HOPLIMIT = 0x47, + MLX5_ACTION_IN_FIELD_METADATA_REG_A = 0x49, + MLX5_ACTION_IN_FIELD_METADATA_REG_B = 0x50, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_0 = 0x51, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_1 = 0x52, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_2 = 0x53, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_3 = 0x54, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_4 = 0x55, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_5 = 0x56, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_6 = 0x57, + MLX5_ACTION_IN_FIELD_METADATA_REG_C_7 = 0x58, + MLX5_ACTION_IN_FIELD_OUT_TCP_SEQ_NUM = 0x59, + MLX5_ACTION_IN_FIELD_OUT_TCP_ACK_NUM = 0x5B, + MLX5_ACTION_IN_FIELD_IPSEC_SYNDROME = 0x5D, + MLX5_ACTION_IN_FIELD_OUT_EMD_47_32 = 0x6F, + MLX5_ACTION_IN_FIELD_OUT_EMD_31_0 = 0x70, +}; + +struct mlx5_ifc_alloc_modify_header_context_out_bits { + u8 status[0x8]; + u8 reserved_at_8[0x18]; + + u8 syndrome[0x20]; + + u8 modify_header_id[0x20]; + + u8 reserved_at_60[0x20]; +}; + +struct mlx5_ifc_alloc_modify_header_context_in_bits { + u8 opcode[0x10]; + u8 reserved_at_10[0x10]; + + u8 reserved_at_20[0x10]; + u8 op_mod[0x10]; + + u8 reserved_at_40[0x20]; + + u8 table_type[0x8]; + u8 reserved_at_68[0x10]; + u8 num_of_actions[0x8]; + + union mlx5_ifc_set_add_copy_action_in_auto_bits actions[]; +}; + +struct mlx5_ifc_dealloc_modify_header_context_out_bits { + u8 status[0x8]; + u8 reserved_at_8[0x18]; + + u8 syndrome[0x20]; + + u8 reserved_at_40[0x40]; +}; + +struct mlx5_ifc_dealloc_modify_header_context_in_bits { + u8 opcode[0x10]; + u8 reserved_at_10[0x10]; + + u8 reserved_at_20[0x10]; + u8 op_mod[0x10]; + + u8 modify_header_id[0x20]; + + u8 reserved_at_60[0x20]; +}; + +struct mlx5_ifc_query_modify_header_context_in_bits { + u8 opcode[0x10]; + u8 uid[0x10]; + + u8 reserved_at_20[0x10]; + u8 op_mod[0x10]; + + u8 modify_header_id[0x20]; + + u8 reserved_at_60[0xa0]; +}; + struct mlx5_ifc_query_dct_out_bits { u8 status[0x8]; u8 reserved_0[0x18]; From nobody Wed Nov 22 01:51:50 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkb2M6Zz51W3B; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkb1Gpvz3H6t; Wed, 22 Nov 2023 01: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=1700617911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JL56/fmzzNfaTU34YHjKwo1IvhISpi80Eyt2HLNylMM=; b=pbBjea37V7bbqZ+VCwRU3DjZsM7y87QlKSiwE1liEiWtP7IzOpatiYMpArrTzwpxpGQawM p1ObyvNOdXuF//8EvdZL+rdGyyEpiuEhAmWK5dpvEpmub2q165z8kAHUbjEdbWB+8Kzmz6 DX7DREX4C8yzhK2MLBo3zocTRRMUA1E4AX9So751MDnWZq1pGJbdwD7NJEFf/z2m3/HFvz 5sw6VogVJDruw1vmyWkOmUs/8ra68gM5Bqee+5AOSprW6v5AfJ/SJktdwNIwfxseo670wF lT+wwBjXc5O0pq617W3g5gXHVsh8ej0Et34u0nGdV2yI9xZsAjpZuLhNdx7rAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617911; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JL56/fmzzNfaTU34YHjKwo1IvhISpi80Eyt2HLNylMM=; b=IsFK1jRVlF9a1/vU963BxBLvEd936jZLwZ1+DGhdt93tqlkXCUtxl6RIh71OMUmV8zaGHE +/RaebOV8BNmIVhY5wiNi+A0+JZLjrIZkOwOsAK5UvwvIDDnqUBOknc3/Gkkzw0UNPmhR5 91lt90nGrb2RvNq3oeRdTh6s0HNCPmoDG1NGEjci8T64ymk7/Ba9KWbMz3yEiSkqeKd7Fb 7ZP69se/1yBIhjfpJRyymbud+9RL2mSY4rKLYHG1rOMdy4qha2MGhdW+u93WoE3EEmOBtW IhEUKwbz59RZuF+ppe/vgA/2A4r/UP0eGQNifn0AJrbUVsisBPX1B/1VVu3MuA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617911; a=rsa-sha256; cv=none; b=ffc+ZHah7RHdUeXhWr82G+lQ8CaD0b4QkF9VQ6URBd8FtLaTRhbPh7+anSZF60CFkKAjBp KBpJXmjpGRbAPZxuztA1RWRRpyQn06UE1rTOqlje340gVj5n2p98aeC/9VlTz8PDrYty16 TlLocG1t1qWl+RZDTi12ujKiysif3gcGYB5cG8rnXet1M0LyB3Sn8YEhSp+NldTMKPfrsf +pNciiOh8F/mqEwserc9hbCnrCWATYzCy8Udt+cYv21Ja7erm+5Brd6nlvpEnnbdmgM2ML dN1zjtpAaW3gzm9jh9rLPHZ1x0JxQITI8UgGUtXBG9z/W2PrHWrE9aG7TJhpJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkb00xLz10KN; Wed, 22 Nov 2023 01:51:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1poDH076174; Wed, 22 Nov 2023 01:51:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1poqQ076171; Wed, 22 Nov 2023 01:51:50 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:50 GMT Message-Id: <202311220151.3AM1poqQ076171@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: 87d86f3733a4 - stable/14 - mlx5: Add packet reformat allocation 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 87d86f3733a4cdfb5777bc2b28bd11db93c7ab97 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=87d86f3733a4cdfb5777bc2b28bd11db93c7ab97 commit 87d86f3733a4cdfb5777bc2b28bd11db93c7ab97 Author: Mark Bloch AuthorDate: 2023-02-19 09:36:07 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:27 +0000 mlx5: Add packet reformat allocation support (cherry picked from commit bb4645b95b0b3976decb4e68934b2e5cc002c53d) --- sys/dev/mlx5/fs.h | 14 +++++++ sys/dev/mlx5/mlx5_core/fs_core.h | 12 ++++++ sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 72 +++++++++++++++++++++++++++++++ sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 33 +++++++++++++++ sys/dev/mlx5/mlx5_ifc.h | 79 +++++++++++++++++++++++++---------- 5 files changed, 187 insertions(+), 23 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index db5ba1964845..81384b43131d 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -234,4 +234,18 @@ struct mlx5_modify_hdr *mlx5_modify_header_alloc(struct mlx5_core_dev *dev, void *modify_actions); void mlx5_modify_header_dealloc(struct mlx5_core_dev *dev, struct mlx5_modify_hdr *modify_hdr); + +struct mlx5_pkt_reformat_params { + int type; + u8 param_0; + u8 param_1; + size_t size; + void *data; +}; + +struct mlx5_pkt_reformat *mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat_params *params, + enum mlx5_flow_namespace_type ns_type); +void mlx5_packet_reformat_dealloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat *pkt_reformat); #endif diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index 11b042863454..bd7aade07876 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -173,6 +173,12 @@ struct mlx5_modify_hdr { u32 id; }; +struct mlx5_pkt_reformat { + enum mlx5_flow_namespace_type ns_type; + int reformat_type; /* from mlx5_ifc */ + u32 id; +}; + void _fs_remove_node(struct kref *kref); #define fs_get_obj(v, _base) {v = container_of((_base), typeof(*v), base); } #define fs_get_parent(v, child) {v = (child)->base.parent ? \ @@ -310,4 +316,10 @@ int mlx5_cmd_modify_header_alloc(struct mlx5_core_dev *dev, struct mlx5_modify_hdr *modify_hdr); void mlx5_cmd_modify_header_dealloc(struct mlx5_core_dev *dev, struct mlx5_modify_hdr *modify_hdr); +int mlx5_cmd_packet_reformat_alloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat_params *params, + enum mlx5_flow_namespace_type namespace, + struct mlx5_pkt_reformat *pkt_reformat); +void mlx5_cmd_packet_reformat_dealloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat *pkt_reformat); #endif diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 214b4141a973..7dcd32ed0c44 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -356,3 +356,75 @@ void mlx5_cmd_modify_header_dealloc(struct mlx5_core_dev *dev, mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); } + +int mlx5_cmd_packet_reformat_alloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat_params *params, + enum mlx5_flow_namespace_type namespace, + struct mlx5_pkt_reformat *pkt_reformat) +{ + u32 out[MLX5_ST_SZ_DW(alloc_packet_reformat_context_out)] = {}; + void *packet_reformat_context_in; + int max_encap_size; + void *reformat; + int inlen; + int err; + u32 *in; + + if (namespace == MLX5_FLOW_NAMESPACE_FDB) + max_encap_size = MLX5_CAP_ESW(dev, max_encap_header_size); + else + max_encap_size = MLX5_CAP_FLOWTABLE(dev, max_encap_header_size); + + if (params->size > max_encap_size) { + mlx5_core_warn(dev, "encap size %zd too big, max supported is %d\n", + params->size, max_encap_size); + return -EINVAL; + } + + in = kzalloc(MLX5_ST_SZ_BYTES(alloc_packet_reformat_context_in) + + params->size, GFP_KERNEL); + if (!in) + return -ENOMEM; + + packet_reformat_context_in = MLX5_ADDR_OF(alloc_packet_reformat_context_in, + in, packet_reformat_context); + reformat = MLX5_ADDR_OF(packet_reformat_context_in, + packet_reformat_context_in, + reformat_data); + inlen = reformat - (void *)in + params->size; + + MLX5_SET(alloc_packet_reformat_context_in, in, opcode, + MLX5_CMD_OP_ALLOC_PACKET_REFORMAT_CONTEXT); + MLX5_SET(packet_reformat_context_in, packet_reformat_context_in, + reformat_data_size, params->size); + MLX5_SET(packet_reformat_context_in, packet_reformat_context_in, + reformat_type, params->type); + MLX5_SET(packet_reformat_context_in, packet_reformat_context_in, + reformat_param_0, params->param_0); + MLX5_SET(packet_reformat_context_in, packet_reformat_context_in, + reformat_param_1, params->param_1); + if (params->data && params->size) + memcpy(reformat, params->data, params->size); + + err = mlx5_cmd_exec(dev, in, inlen, out, sizeof(out)); + + pkt_reformat->id = MLX5_GET(alloc_packet_reformat_context_out, + out, packet_reformat_id); + kfree(in); + + return err; +} + +void mlx5_cmd_packet_reformat_dealloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat *pkt_reformat) +{ + u32 out[MLX5_ST_SZ_DW(dealloc_packet_reformat_context_out)] = {}; + u32 in[MLX5_ST_SZ_DW(dealloc_packet_reformat_context_in)] = {}; + + MLX5_SET(dealloc_packet_reformat_context_in, in, opcode, + MLX5_CMD_OP_DEALLOC_PACKET_REFORMAT_CONTEXT); + MLX5_SET(dealloc_packet_reformat_context_in, in, packet_reformat_id, + pkt_reformat->id); + + mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); +} diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 9e9febfe902e..358eb671de5a 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -2771,3 +2771,36 @@ void mlx5_modify_header_dealloc(struct mlx5_core_dev *dev, kfree(modify_hdr); } EXPORT_SYMBOL(mlx5_modify_header_dealloc); + +struct mlx5_pkt_reformat *mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat_params *params, + enum mlx5_flow_namespace_type ns_type) +{ + struct mlx5_pkt_reformat *pkt_reformat; + int err; + + pkt_reformat = kzalloc(sizeof(*pkt_reformat), GFP_KERNEL); + if (!pkt_reformat) + return ERR_PTR(-ENOMEM); + + pkt_reformat->ns_type = ns_type; + pkt_reformat->reformat_type = params->type; + err = mlx5_cmd_packet_reformat_alloc(dev, params, ns_type, + pkt_reformat); + if (err) { + kfree(pkt_reformat); + return ERR_PTR(err); + } + + return pkt_reformat; +} +EXPORT_SYMBOL(mlx5_packet_reformat_alloc); + +void mlx5_packet_reformat_dealloc(struct mlx5_core_dev *dev, + struct mlx5_pkt_reformat *pkt_reformat) +{ + mlx5_cmd_packet_reformat_dealloc(dev, pkt_reformat); + kfree(pkt_reformat); +} +EXPORT_SYMBOL(mlx5_packet_reformat_dealloc); + diff --git a/sys/dev/mlx5/mlx5_ifc.h b/sys/dev/mlx5/mlx5_ifc.h index fcea7342532b..340e3b2e2d03 100644 --- a/sys/dev/mlx5/mlx5_ifc.h +++ b/sys/dev/mlx5/mlx5_ifc.h @@ -778,18 +778,40 @@ struct mlx5_ifc_snapshot_cap_bits { }; struct mlx5_ifc_e_switch_cap_bits { - u8 vport_svlan_strip[0x1]; - u8 vport_cvlan_strip[0x1]; - u8 vport_svlan_insert[0x1]; - u8 vport_cvlan_insert_if_not_exist[0x1]; - u8 vport_cvlan_insert_overwrite[0x1]; - - u8 reserved_0[0x19]; - - u8 nic_vport_node_guid_modify[0x1]; - u8 nic_vport_port_guid_modify[0x1]; + u8 vport_svlan_strip[0x1]; + u8 vport_cvlan_strip[0x1]; + u8 vport_svlan_insert[0x1]; + u8 vport_cvlan_insert_if_not_exist[0x1]; + u8 vport_cvlan_insert_overwrite[0x1]; + u8 reserved_at_5[0x1]; + u8 vport_cvlan_insert_always[0x1]; + u8 esw_shared_ingress_acl[0x1]; + u8 esw_uplink_ingress_acl[0x1]; + u8 root_ft_on_other_esw[0x1]; + u8 reserved_at_a[0xf]; + u8 esw_functions_changed[0x1]; + u8 reserved_at_1a[0x1]; + u8 ecpf_vport_exists[0x1]; + u8 counter_eswitch_affinity[0x1]; + u8 merged_eswitch[0x1]; + u8 nic_vport_node_guid_modify[0x1]; + u8 nic_vport_port_guid_modify[0x1]; + + u8 vxlan_encap_decap[0x1]; + u8 nvgre_encap_decap[0x1]; + u8 reserved_at_22[0x1]; + u8 log_max_fdb_encap_uplink[0x5]; + u8 reserved_at_21[0x3]; + u8 log_max_packet_reformat_context[0x5]; + u8 reserved_2b[0x6]; + u8 max_encap_header_size[0xa]; + + u8 reserved_at_40[0xb]; + u8 log_max_esw_sf[0x5]; + u8 esw_sf_base_id[0x10]; + + u8 reserved_at_60[0x7a0]; - u8 reserved_1[0x7e0]; }; struct mlx5_ifc_flow_table_eswitch_cap_bits { @@ -806,9 +828,18 @@ struct mlx5_ifc_flow_table_eswitch_cap_bits { struct mlx5_ifc_flow_table_nic_cap_bits { u8 nic_rx_multi_path_tirs[0x1]; - u8 nic_rx_multi_path_tirs_fts[0x1]; - u8 allow_sniffer_and_nic_rx_shared_tir[0x1]; - u8 reserved_at_3[0x1fd]; + u8 nic_rx_multi_path_tirs_fts[0x1]; + u8 allow_sniffer_and_nic_rx_shared_tir[0x1]; + u8 reserved_at_3[0x4]; + u8 sw_owner_reformat_supported[0x1]; + u8 reserved_at_8[0x18]; + + u8 encap_general_header[0x1]; + u8 reserved_at_21[0xa]; + u8 log_max_packet_reformat_context[0x5]; + u8 reserved_at_30[0x6]; + u8 max_encap_header_size[0xa]; + u8 reserved_at_40[0x1c0]; struct mlx5_ifc_flow_table_prop_layout_bits flow_table_properties_nic_receive; @@ -2252,7 +2283,7 @@ struct mlx5_ifc_flow_context_bits { u8 reserved_4[0x8]; u8 flow_counter_list_size[0x18]; - u8 reserved_5[0x20]; + u8 packet_reformat_id[0x20]; u8 modify_header_id[0x20]; @@ -2923,7 +2954,7 @@ enum { }; struct mlx5_ifc_flow_table_context_bits { - u8 encap_en[0x1]; + u8 reformat_en[0x1]; u8 decap_en[0x1]; u8 reserved_at_2[0x2]; u8 table_miss_action[0x4]; @@ -5404,15 +5435,17 @@ struct mlx5_ifc_query_dc_cnak_trace_in_bits { }; struct mlx5_ifc_packet_reformat_context_in_bits { - u8 reserved_at_0[0x5]; - u8 reformat_type[0x3]; - u8 reserved_at_8[0xe]; - u8 reformat_data_size[0xa]; + u8 reformat_type[0x8]; + u8 reserved_at_8[0x4]; + u8 reformat_param_0[0x4]; + u8 reserved_at_10[0x6]; + u8 reformat_data_size[0xa]; - u8 reserved_at_20[0x10]; - u8 reformat_data[2][0x8]; + u8 reformat_param_1[0x8]; + u8 reserved_at_28[0x8]; + u8 reformat_data[2][0x8]; - u8 more_reformat_data[0][0x8]; + u8 more_reformat_data[][0x8]; }; struct mlx5_ifc_query_packet_reformat_context_out_bits { From nobody Wed Nov 22 01:51:52 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkc4W0Wz51W4P; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkc2LsLz3HFw; Wed, 22 Nov 2023 01: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=1700617912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jQ388N0RgFt61K7ZhVXAWaEcrCtZPQOiIwQFkyHNyKc=; b=sLq6Foed+tlU03b+8mykN7Vd55TkAvokRbpnlzSz20dHkaoVdsnvN2VZtYV72Q6XUBTqx2 w3+CFko40KHL8p2gD09sJNaH7aEpfsdEKJj7EBXf/ZcM1EK264bSNoe2VEIOdtY05G9I6H JMzIKLP9aMB5S04RzoH/3ur1VrD7BhM4mwtJOFivf54k1fH3XC2NNrGh+JqtcmX9OqJlNf tlH4vkJJZgfBsIwufZnRBYf+LqLRTCXTbwAYlijDhEVux/LiWljmlB9TaxH0OJLWA+KFpy Oq3g8fuVbvTgQd/tTb/PS7bKR0ucMI4SCDt+4fUJDeo98idbXIEHlQffro0+ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617912; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jQ388N0RgFt61K7ZhVXAWaEcrCtZPQOiIwQFkyHNyKc=; b=elSjb8IlneL4QhQ7Sz42KW0EeFesfoBDf3RWnjbqWp+R1zJPo71VSLLlwTWzD8enk3pRH2 u92iJatOgt4F9vIbLWnAmxNCD3HBmtJZtp8ABbPA/zGK7S4O/t5THyx0oVVGwlt56w6Adq SFTBNYLIKIF7KboKk14WjwrJTM8/F/+WBS8Noj3Y+CfnJcukE1K17qD2Cogcx85l6M4UMB FzhWiZdjWMfQGiOp3GpY8jeMZps8QXL5KckTYYfsAOhHaZ8e5Tl/jco7MH3uOLKnHJ034t y8CME6/lriRCRdowVolA9k84fuR6NED5N3AtFI/LllurADg4N8zIbQziCS96lQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617912; a=rsa-sha256; cv=none; b=viFXzztUrxrAbeVCQBKp3p6VnEFT+WnrZyLRrcZcLkKo5a2SvIvgCR2iDI3O3J2HZOyTCu SubTuzL+CumWFaYSTlNJoip9I/U3q/QTLTo0YoYU9+xIScnpEVspdirNUbf4ubtPnAc3rM KBGAyd0ydH2DlzSMaNfwRqk10foA6YLXgiCwuOwGZ3AeHvvNviVkixwRYzoe50cRAqax34 VVGwbkaGXrKCfLW/SS3QAHA0RH+RMS/CY+QSu7a+9TsXB1ZSArqHNNmPttRh96s5AFfEoa Osrhj3X4ChZDbJyJYRpvO5vo4nz87O6brYr9OWNcyRbjZ5Pp5mu4esyxipefBQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkc0nXyz10MJ; Wed, 22 Nov 2023 01:51:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1pq3S076225; Wed, 22 Nov 2023 01:51:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pqit076222; Wed, 22 Nov 2023 01:51:52 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:52 GMT Message-Id: <202311220151.3AM1pqit076222@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: 08e7b322db02 - stable/14 - mlx5: Refactor flow actions into a struct List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 08e7b322db02329516e5d8adcec9df3c7b20774c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=08e7b322db02329516e5d8adcec9df3c7b20774c commit 08e7b322db02329516e5d8adcec9df3c7b20774c Author: Mark Bloch AuthorDate: 2023-02-19 10:47:50 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:27 +0000 mlx5: Refactor flow actions into a struct (cherry picked from commit cb054a493a95cbd5a4b00c693c3924622914c51a) --- sys/dev/mlx5/fs.h | 11 ++++- sys/dev/mlx5/mlx5_core/fs_core.h | 4 +- sys/dev/mlx5/mlx5_core/mlx5_eswitch.c | 11 +++-- sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 5 ++- sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c | 12 +++++- sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 58 +++++++++++++++++-------- sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c | 70 ++++++++++++++++++++----------- sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c | 6 ++- 8 files changed, 123 insertions(+), 54 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index 81384b43131d..7ed7a5380cf1 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -82,6 +82,15 @@ struct mlx5_flow_destination { }; }; +enum mlx5_flow_act_actions { + MLX5_FLOW_ACT_ACTIONS_FLOW_TAG = 1 << 0, +}; + +struct mlx5_flow_act { + u32 actions; /* See enum mlx5_flow_act_actions */ + u32 flow_tag; +}; + #define FT_NAME_STR_SZ 20 #define LEFTOVERS_RULE_NUM 2 static inline void build_leftovers_ft_param(char *name, @@ -154,7 +163,7 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft, u32 *match_criteria, u32 *match_value, u32 action, - u32 flow_tag, + struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest); void mlx5_del_flow_rule(struct mlx5_flow_rule **); diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index bd7aade07876..40c6cadf3223 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -78,9 +78,9 @@ struct fs_fte { struct fs_base base; u32 val[MLX5_ST_SZ_DW(fte_match_param)]; uint32_t dests_size; - uint32_t flow_tag; struct list_head dests; uint32_t index; /* index in ft */ + struct mlx5_flow_act flow_act; u8 action; /* MLX5_FLOW_CONTEXT_ACTION */ enum fs_fte_status status; }; @@ -290,7 +290,7 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, u32 *match_val, enum fs_ft_type type, unsigned int table_id, unsigned int index, unsigned int group_id, - unsigned int flow_tag, + struct mlx5_flow_act *flow_act, unsigned short action, int dest_size, struct list_head *dests); /* mlx5_flow_desination */ diff --git a/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c b/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c index 16e25df2b7ab..9f9350e0260b 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c @@ -221,6 +221,7 @@ esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u8 mac[ETH_ALEN], u32 vport) int match_header = MLX5_MATCH_OUTER_HEADERS; struct mlx5_flow_destination dest; struct mlx5_flow_rule *flow_rule = NULL; + struct mlx5_flow_act flow_act = {}; u32 *match_v; u32 *match_c; u8 *dmac_v; @@ -253,7 +254,7 @@ esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u8 mac[ETH_ALEN], u32 vport) match_c, match_v, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - 0, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(flow_rule)) { printf("mlx5_core: WARN: ""FDB: Failed to add flow rule: dmac_v(%pM) dmac_c(%pM) -> vport(%d), err(%ld)\n", dmac_v, dmac_c, vport, PTR_ERR(flow_rule)); flow_rule = NULL; @@ -783,6 +784,7 @@ static void esw_vport_disable_ingress_acl(struct mlx5_eswitch *esw, static int esw_vport_ingress_config(struct mlx5_eswitch *esw, struct mlx5_vport *vport) { + struct mlx5_flow_act flow_act = {}; struct mlx5_flow_destination dest; u32 *match_v; u32 *match_c; @@ -824,7 +826,7 @@ static int esw_vport_ingress_config(struct mlx5_eswitch *esw, match_c, match_v, MLX5_FLOW_CONTEXT_ACTION_DROP, - 0, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(vport->ingress.drop_rule)) { err = PTR_ERR(vport->ingress.drop_rule); printf("mlx5_core: WARN: ""vport[%d] configure ingress rules, err(%d)\n", vport->vport, err); @@ -839,6 +841,7 @@ out: static int esw_vport_egress_config(struct mlx5_eswitch *esw, struct mlx5_vport *vport) { + struct mlx5_flow_act flow_act = {}; struct mlx5_flow_destination dest; u32 *match_v; u32 *match_c; @@ -883,7 +886,7 @@ static int esw_vport_egress_config(struct mlx5_eswitch *esw, match_c, match_v, MLX5_FLOW_CONTEXT_ACTION_ALLOW, - 0, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(vport->egress.allowed_vlan)) { err = PTR_ERR(vport->egress.allowed_vlan); printf("mlx5_core: WARN: ""vport[%d] configure egress allowed vlan rule failed, err(%d)\n", vport->vport, err); @@ -900,7 +903,7 @@ static int esw_vport_egress_config(struct mlx5_eswitch *esw, match_c, match_v, MLX5_FLOW_CONTEXT_ACTION_DROP, - 0, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(vport->egress.drop_rule)) { err = PTR_ERR(vport->egress.drop_rule); printf("mlx5_core: WARN: ""vport[%d] configure egress drop rule failed, err(%d)\n", vport->vport, err); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 7dcd32ed0c44..5ac0c95c7bca 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -164,7 +164,7 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, u32 *match_val, enum fs_ft_type type, unsigned int table_id, unsigned int index, unsigned int group_id, - unsigned int flow_tag, + struct mlx5_flow_act *flow_act, unsigned short action, int dest_size, struct list_head *dests) /* mlx5_flow_desination */ { @@ -219,7 +219,8 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, in_flow_context = MLX5_ADDR_OF(set_fte_in, in, flow_context); MLX5_SET(flow_context, in_flow_context, group_id, group_id); - MLX5_SET(flow_context, in_flow_context, flow_tag, flow_tag); + if (flow_act->actions & MLX5_FLOW_ACT_ACTIONS_FLOW_TAG) + MLX5_SET(flow_context, in_flow_context, flow_tag, flow_act->flow_tag); MLX5_SET(flow_context, in_flow_context, action, action); MLX5_SET(flow_context, in_flow_context, destination_list_size, dest_size); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c index 2bdf01081650..69df9ecba210 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c @@ -98,6 +98,10 @@ mlx5e_accel_fs_add_inpcb(struct mlx5e_priv *priv, #endif struct mlx5_flow_rule *flow; struct mlx5_flow_spec *spec; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = flow_tag, + }; spec = kvzalloc(sizeof(*spec), GFP_KERNEL); if (!spec) @@ -161,7 +165,7 @@ mlx5e_accel_fs_add_inpcb(struct mlx5e_priv *priv, spec->match_criteria, spec->match_value, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - flow_tag, + &flow_act, &dest); out: kvfree(spec); @@ -176,6 +180,10 @@ accel_fs_tcp_add_default_rule(struct mlx5e_priv *priv, int type) struct mlx5_flow_destination dest = {}; struct mlx5e_accel_fs_tcp *fs_tcp; struct mlx5_flow_rule *rule; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_DEFAULT_FLOW_TAG, + }; fs_tcp = &priv->fts.accel_tcp; @@ -192,7 +200,7 @@ accel_fs_tcp_add_default_rule(struct mlx5e_priv *priv, int type) priv->fts.vlan.t : fs_tcp->tables[type + 1].t; rule = mlx5_add_flow_rule(fs_tcp->tables[type].t, 0, match_criteria, match_value, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_DEFAULT_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR(rule)) return (PTR_ERR(rule)); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 358eb671de5a..8e203a9662bb 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -303,7 +303,7 @@ static void fs_remove_node_parent_locked(struct fs_base *node) } static struct fs_fte *fs_alloc_fte(u8 action, - u32 flow_tag, + struct mlx5_flow_act *flow_act, u32 *match_value, unsigned int index) { @@ -317,9 +317,9 @@ static struct fs_fte *fs_alloc_fte(u8 action, memcpy(fte->val, match_value, sizeof(fte->val)); fte->base.type = FS_TYPE_FLOW_ENTRY; fte->dests_size = 0; - fte->flow_tag = flow_tag; fte->index = index; INIT_LIST_HEAD(&fte->dests); + fte->flow_act = *flow_act; fte->action = action; return fte; @@ -333,12 +333,16 @@ static struct fs_fte *alloc_star_ft_entry(struct mlx5_flow_table *ft, int err; struct fs_fte *fte; struct mlx5_flow_rule *dst; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_DEFAULT_FLOW_TAG, + }; if (fg->num_ftes == fg->max_ftes) return ERR_PTR(-ENOSPC); fte = fs_alloc_fte(MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_DEFAULT_FLOW_TAG, match_value, index); + &flow_act, match_value, index); if (IS_ERR(fte)) return fte; @@ -442,7 +446,7 @@ static int fs_set_star_rule(struct mlx5_core_dev *dev, match_value, src_ft->type, src_ft->id, src_fte->index, src_ft->star_rule.fg->id, - src_fte->flow_tag, + &src_fte->flow_act, src_fte->action, src_fte->dests_size, &src_fte->dests); @@ -1583,7 +1587,7 @@ static struct mlx5_flow_rule *_fs_add_dst_fte(struct fs_fte *fte, ft->vport, &fte->status, fte->val, ft->type, - ft->id, fte->index, fg->id, fte->flow_tag, + ft->id, fte->index, fg->id, &fte->flow_act, fte->action, fte->dests_size, &fte->dests); if (err) goto free_dst; @@ -1647,14 +1651,14 @@ static unsigned int fs_get_free_fg_index(struct mlx5_flow_group *fg, static struct fs_fte *fs_create_fte(struct mlx5_flow_group *fg, u32 *match_value, u8 action, - u32 flow_tag, + struct mlx5_flow_act *flow_act, struct list_head **prev) { struct fs_fte *fte; int index = 0; index = fs_get_free_fg_index(fg, prev); - fte = fs_alloc_fte(action, flow_tag, match_value, index); + fte = fs_alloc_fte(action, flow_act, match_value, index); if (IS_ERR(fte)) return fte; @@ -1704,7 +1708,7 @@ static void fs_del_dst(struct mlx5_flow_rule *dst) err = mlx5_cmd_fs_set_fte(dev, ft->vport, &fte->status, match_value, ft->type, ft->id, fte->index, fg->id, - fte->flow_tag, fte->action, + &fte->flow_act, fte->action, fte->dests_size, &fte->dests); if (err) { mlx5_core_warn(dev, "%s can't delete dst %s\n", @@ -1740,12 +1744,31 @@ static void fs_del_fte(struct fs_fte *fte) fg->num_ftes--; } +static bool check_conflicting_actions(const struct mlx5_flow_act *act1, + const struct mlx5_flow_act *act2) +{ + u32 action1 = act1->actions; + u32 action2 = act2->actions; + u32 xored_actions; + + xored_actions = action1 ^ action2; + + if (xored_actions & (MLX5_FLOW_ACT_ACTIONS_FLOW_TAG)) + return true; + + if (action1 & MLX5_FLOW_ACT_ACTIONS_FLOW_TAG && + act1->flow_tag != act2->flow_tag) + return true; + + return false; +} + /* assuming parent fg is locked */ /* Add dst algorithm */ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, u32 *match_value, u8 action, - u32 flow_tag, + struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest) { struct fs_fte *fte; @@ -1759,7 +1782,8 @@ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, /* TODO: Check of size against PRM max size */ mutex_lock(&fte->base.lock); if (fs_match_exact_val(&fg->mask, match_value, &fte->val) && - action == fte->action && flow_tag == fte->flow_tag) { + action == fte->action && + !check_conflicting_actions(flow_act, &fte->flow_act)) { dst = _fs_add_dst_fte(fte, fg, dest); mutex_unlock(&fte->base.lock); if (IS_ERR(dst)) @@ -1775,7 +1799,7 @@ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, goto unlock_fg; } - fte = fs_create_fte(fg, match_value, action, flow_tag, &prev); + fte = fs_create_fte(fg, match_value, action, flow_act, &prev); if (IS_ERR(fte)) { dst = (void *)fte; goto unlock_fg; @@ -1803,7 +1827,8 @@ static struct mlx5_flow_rule *fs_add_dst_ft(struct mlx5_flow_table *ft, u8 match_criteria_enable, u32 *match_criteria, u32 *match_value, - u8 action, u32 flow_tag, + u8 action, + struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest) { /*? where dst_entry is allocated*/ @@ -1819,8 +1844,7 @@ static struct mlx5_flow_rule *fs_add_dst_ft(struct mlx5_flow_table *ft, match_criteria)) { mutex_unlock(&ft->base.lock); - dst = fs_add_dst_fg(g, match_value, - action, flow_tag, dest); + dst = fs_add_dst_fg(g, match_value, action, flow_act, dest); if (PTR_ERR(dst) && PTR_ERR(dst) != -ENOSPC) goto unlock; } @@ -1833,7 +1857,7 @@ static struct mlx5_flow_rule *fs_add_dst_ft(struct mlx5_flow_table *ft, } dst = fs_add_dst_fg(g, match_value, - action, flow_tag, dest); + action, flow_act, dest); if (IS_ERR(dst)) { /* Remove assumes refcount > 0 and autogroup creates a group * with a refcount = 0. @@ -1854,7 +1878,7 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft, u32 *match_criteria, u32 *match_value, u32 action, - u32 flow_tag, + struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest) { struct mlx5_flow_rule *dst; @@ -1864,7 +1888,7 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft, if (ns) down_read(&ns->dests_rw_sem); dst = fs_add_dst_ft(ft, match_criteria_enable, match_criteria, - match_value, action, flow_tag, dest); + match_value, action, flow_act, dest); if (ns) up_read(&ns->dests_rw_sem); diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c index 8167c3062100..cb23b80deae4 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c @@ -261,6 +261,10 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, u32 *tirn = priv->tirn; u32 tt_vec; int err = 0; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_ETH_FLOW_TAG, + }; dest.type = MLX5_FLOW_DESTINATION_TYPE_TIR; @@ -290,7 +294,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, dest.tir_num = tirn[MLX5E_TT_ANY]; *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -305,7 +309,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -317,7 +321,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -332,7 +336,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -344,7 +348,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -358,7 +362,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -370,7 +374,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -384,7 +388,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -396,7 +400,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -410,7 +414,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -422,7 +426,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, &dest); + &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; } @@ -486,6 +490,10 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) struct mlx5_flow_rule **rule_p; struct mlx5_flow_table *ft = priv->fts.main_vxlan.t; u32 *tirn = priv->tirn_inner_vxlan; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_ETH_FLOW_TAG, + }; int err = 0; dest.type = MLX5_FLOW_DESTINATION_TYPE_TIR; @@ -497,7 +505,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -505,7 +513,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -516,7 +524,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_UDP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -524,7 +532,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6_UDP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -534,7 +542,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_TCP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -542,7 +550,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6_TCP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -552,7 +560,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_IPSEC_AH]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -560,7 +568,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6_IPSEC_AH]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -570,7 +578,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_IPSEC_ESP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -579,7 +587,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -589,7 +597,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) rule_p = &priv->fts.main_vxlan_rule[MLX5E_TT_ANY]; dest.tir_num = tirn[MLX5E_TT_ANY]; *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -686,6 +694,10 @@ mlx5e_add_vlan_rule_sub(struct mlx5e_priv *priv, u8 mc_enable = 0; struct mlx5_flow_rule **rule_p; int err = 0; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_ETH_FLOW_TAG, + }; dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE; dest.ft = priv->fts.vxlan.t; @@ -719,7 +731,7 @@ mlx5e_add_vlan_rule_sub(struct mlx5e_priv *priv, *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, - MLX5_FS_ETH_FLOW_TAG, + &flow_act, &dest); if (IS_ERR(*rule_p)) { @@ -1679,6 +1691,10 @@ mlx5e_add_vxlan_rule_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv, u8 mc_enable; struct mlx5_flow_rule **rule_p; int err = 0; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_ETH_FLOW_TAG, + }; dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE; dest.ft = priv->fts.main_vxlan.t; @@ -1693,7 +1709,7 @@ mlx5e_add_vxlan_rule_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv, MLX5_SET(fte_match_param, mv, outer_headers.udp_dport, el->port); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR(*rule_p)) { err = PTR_ERR(*rule_p); @@ -1809,13 +1825,17 @@ mlx5e_add_vxlan_catchall_rule_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) u8 mc_enable = 0; struct mlx5_flow_rule **rule_p; int err = 0; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_ETH_FLOW_TAG, + }; dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE; dest.ft = priv->fts.main.t; rule_p = &priv->fts.vxlan_catchall_ft_rule; *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, MLX5_FS_ETH_FLOW_TAG, &dest); + MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); if (IS_ERR(*rule_p)) { err = PTR_ERR(*rule_p); diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c index 1b02c8741a56..dc5396d348c5 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c @@ -2180,6 +2180,10 @@ static struct mlx5_ib_flow_handler *create_flow_rule(struct mlx5_ib_dev *dev, struct mlx5_flow_spec *spec; const void *ib_flow = (const void *)flow_attr + sizeof(*flow_attr); unsigned int spec_index; + struct mlx5_flow_act flow_act = { + .actions = MLX5_FLOW_ACT_ACTIONS_FLOW_TAG, + .flow_tag = MLX5_FS_DEFAULT_FLOW_TAG, + }; u32 action; int err = 0; @@ -2211,7 +2215,7 @@ static struct mlx5_ib_flow_handler *create_flow_rule(struct mlx5_ib_dev *dev, spec->match_criteria, spec->match_value, action, - MLX5_FS_DEFAULT_FLOW_TAG, + &flow_act, dst); if (IS_ERR(handler->rule)) { From nobody Wed Nov 22 01:51:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkd3srpz51WK9; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkd206qz3HCx; Wed, 22 Nov 2023 01:51:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pBf6UAnQ6nnY9njT+ReoBrN+tnd0Zx6PX4VG8dDIKfg=; b=M2BZibz/3+PjsxO24QsxXWY6uUP25z98It5n0kJbiHgJ2IgxW1xVrWB9ugAvCz3t+ZltS0 cg/L8IpCtsCGZAjZGLnwbWRymuhpUCvznfMttmPfXvZJM74itLTTEfsUvXojFGnJF/JtWV Ob2ymp3A2vEgr/xZAJyXIfs6gJtN5Ae40tZjNzARuRH2C4IN693hmbsJHUpL0JQaSmDXQL 5hZYSX2Jb38tce7ThQOpf/dMPJV6McVDw7Py+jMhWyREUIMN16wE+RuKdDHLysefMlxWhS qXKtoTOYwb8QK99Tg4/jCXQ4sddsaawDcq2HaO0FwlI8IViRYw8NC0yFb562UA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pBf6UAnQ6nnY9njT+ReoBrN+tnd0Zx6PX4VG8dDIKfg=; b=APhySFJ8wutrCS9CkuObyy1lOTD/QCgAx7p0uh8KE8Z+g+mIZOP+gtbz80qorrq7zyxY09 H48TaC+QmiTGcYNIxmfcbsptkaz605uKF76vfXcgn1Frg9fZmEiZIAvuJXFEBWkeLbYasO Rw8GD+JavaYy+zE8UzQXH7W3q7EJ8iVJKahzc9PgynSwR7MIYm1VVc5ZLHhqx0MG8wYhPG Up9yojw09PkIEUqbmtdld9tjG9Lkwk609AG6WsvzDOiopkDludsPb+onLT/G9wGxnDyfzG u+V5ZR6LwESiaKO8JRzfJUZjGcZtCNQusyDYsce+lZspDowTDpD41G2urKeSvA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617913; a=rsa-sha256; cv=none; b=OeFFbDmj5DIc+y3Agne2CTvHHfMIMS+gTz00twptRvC2iwn28b/bg74f0DQPqrNcU/F1m1 fJ5Kl+2+XCkVeW1Va/xHQ8O8mGudwqJ6HJBNBAgjMg8YGU8TVxQqFZDcG+UxxsXW6WAkDj 9xP5Rs40a0IGQ677NSFu7JZ+XGKZg4BM6ev60nD4YCogC4Sprz8catcA+nv96sRzp1ZtqE Uo3dktt4uYrzQN5PLV+9eyKZYxtZYQ0nrLowRgo0mIWjO/jVAeI0+ijDNeOOI3zA7fXzv1 aXjkqDa0tMrkm0SH6ge1t19y4ZhTVgwwtFhnEF4O2DDjNvi1LofaKxsGbBN+vw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkd166Tz102x; Wed, 22 Nov 2023 01:51:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1prgH076746; Wed, 22 Nov 2023 01:51:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pr1L076718; Wed, 22 Nov 2023 01:51:53 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:53 GMT Message-Id: <202311220151.3AM1pr1L076718@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: 8895a0509698 - stable/14 - mlx5: Add modify header support to flow rules List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8895a0509698f29bb234a186590e3f08970a34d9 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8895a0509698f29bb234a186590e3f08970a34d9 commit 8895a0509698f29bb234a186590e3f08970a34d9 Author: Mark Bloch AuthorDate: 2023-02-19 11:15:00 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:27 +0000 mlx5: Add modify header support to flow rules (cherry picked from commit 847542c60c2b3d922d636cc36ce51714032f9825) --- sys/dev/mlx5/fs.h | 2 ++ sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 9 ++++++++- sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 4 ++++ sys/dev/mlx5/mlx5_ifc.h | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index 7ed7a5380cf1..bb087718d12f 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -84,11 +84,13 @@ struct mlx5_flow_destination { enum mlx5_flow_act_actions { MLX5_FLOW_ACT_ACTIONS_FLOW_TAG = 1 << 0, + MLX5_FLOW_ACT_ACTIONS_MODIFY_HDR = 1 << 1, }; struct mlx5_flow_act { u32 actions; /* See enum mlx5_flow_act_actions */ u32 flow_tag; + struct mlx5_modify_hdr *modify_hdr; }; #define FT_NAME_STR_SZ 20 diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 5ac0c95c7bca..22bc945a4b62 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -179,10 +179,12 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, int opmod = 0; int modify_mask = 0; int atomic_mod_cap; + u32 prm_action = 0; if (action != MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) dest_size = 0; + prm_action = action; inlen = MLX5_ST_SZ_BYTES(set_fte_in) + dest_size * MLX5_ST_SZ_BYTES(dest_format_struct); @@ -221,7 +223,11 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, MLX5_SET(flow_context, in_flow_context, group_id, group_id); if (flow_act->actions & MLX5_FLOW_ACT_ACTIONS_FLOW_TAG) MLX5_SET(flow_context, in_flow_context, flow_tag, flow_act->flow_tag); - MLX5_SET(flow_context, in_flow_context, action, action); + if (flow_act->actions & MLX5_FLOW_ACT_ACTIONS_MODIFY_HDR) { + MLX5_SET(flow_context, in_flow_context, modify_header_id, + flow_act->modify_hdr->id); + prm_action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; + } MLX5_SET(flow_context, in_flow_context, destination_list_size, dest_size); in_match_value = MLX5_ADDR_OF(flow_context, in_flow_context, @@ -244,6 +250,7 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, } } + MLX5_SET(flow_context, in_flow_context, action, prm_action); err = mlx5_cmd_exec(dev, in, inlen, out, sizeof(out)); if (!err) *fte_status |= FS_FTE_STATUS_EXISTING; diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 8e203a9662bb..7c3eb1e86d6d 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -1760,6 +1760,10 @@ static bool check_conflicting_actions(const struct mlx5_flow_act *act1, act1->flow_tag != act2->flow_tag) return true; + /* Can even have complex actions in merged rules */ + if (action1 & MLX5_FLOW_ACT_ACTIONS_MODIFY_HDR) + return true; + return false; } diff --git a/sys/dev/mlx5/mlx5_ifc.h b/sys/dev/mlx5/mlx5_ifc.h index 340e3b2e2d03..9534ac3d1c94 100644 --- a/sys/dev/mlx5/mlx5_ifc.h +++ b/sys/dev/mlx5/mlx5_ifc.h @@ -2264,6 +2264,7 @@ enum { MLX5_FLOW_CONTEXT_ACTION_DROP = 0x2, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST = 0x4, MLX5_FLOW_CONTEXT_ACTION_COUNT = 0x8, + MLX5_FLOW_CONTEXT_ACTION_MOD_HDR = 0x40, }; struct mlx5_ifc_flow_context_bits { From nobody Wed Nov 22 01:51:54 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkf4NRWz51WKD; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkf3NBpz3HRX; Wed, 22 Nov 2023 01: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=1700617914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BYBsCbv7ckmny9WQaEPpnBhmlfsY9WQI/ELH526sQZY=; b=oKvFQxSO9QT8CV2hI0PXNa9ZnO7nf8g/wD8saFmoUBw7NEBBoiBdiLRGqQqnN/OfIdjaou g37SHKakLYDzXEsDp7jhZE//TcH2+gDPvrrVNvJ3xe/2Ywy84rpdVtlx0MgetBHiSP8cUa 364eIQne9uk+QMnBpxrBLO64DrscqUb8onYVqfYScJ761uz5O1g/Was8ghuGu3Lh/WIg25 UkciATNcwvvz4Ov7k42CTJ3zWS4zHfDzFzXe3+5eX4A8I6PmgBScZA8biUoXpmFv7MG2Ic UyjT/g2JZVnCj6M8oKx/dlQQfoKGiZf4cLaNECAly/4SvAF2Ca2nRuUFfEKNXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617914; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BYBsCbv7ckmny9WQaEPpnBhmlfsY9WQI/ELH526sQZY=; b=N6x2+7e8cbrqxykdw6Zov2N7vA3/pwnYhswKV050TUfcAMUoMFUq6eKe52xItjsiH4B8Ot KrjQPQ1Nmz8vvGSpR4aDgfQ/fnp1CV0PhQ1ZjZeybZWIpXUek7TzyGRpC75gtlqJJyps8S 5bB8jFqSebXUTiIKNC/pOou+rKHdKNi6+I1afkgyfgvvzNdfgpiHsCPynTk9zemzptp9Az 5/rRLyAe/FTwjw+ZvDIeO7EY6mxNxfxNPyDtxoG5v3cHDte31LezqfDkyoDJ9jSWe312pB qnydG8c/8nYukoBZePgkYpQz89H2EIdW3LK77JlLr2l1egEv7VBCSKOinizCXQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617914; a=rsa-sha256; cv=none; b=bfcANXM6S7gRcOKmmZVfNK3Jwmo4q/WM96JlGeOEdp8Zq+pAdiB95u5PjVelrCi3NnIqa2 bCyk3PxcBaU6uWhOuKQG7qsYA3QsiIkJj/oJSoSqSbaSPWRuVqvQkJdhACeAftOad7JCqe /tPrzhuilbT/fOURBWaxUeCpRBAY938xrG9syo2InxaAHJtVolHiniC8qx1Is8gPgK00jU pibEHrFvOLL7SgOiXnNpz5XDVF6rsCdUsYCxuX0vkpwX/x2WKVHMF+t+iSn6gXzCaodhQc 3y5Zop/orjpGITMSHlbb1t/ao939ftTSWYtOpVPnPN90TzWygckE7c7aEFQq/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 4SZkkf2Pj0z1030; Wed, 22 Nov 2023 01:51:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1psaE077228; Wed, 22 Nov 2023 01:51:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1psGN077225; Wed, 22 Nov 2023 01:51:54 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:54 GMT Message-Id: <202311220151.3AM1psGN077225@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: 6fb2eebf6471 - stable/14 - mlx5: Add packet reformat support to flow rules List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6fb2eebf6471ee08949dd027a6beffdbf78d8bb1 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6fb2eebf6471ee08949dd027a6beffdbf78d8bb1 commit 6fb2eebf6471ee08949dd027a6beffdbf78d8bb1 Author: Mark Bloch AuthorDate: 2023-02-19 11:27:30 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:27 +0000 mlx5: Add packet reformat support to flow rules (cherry picked from commit 45e2e55df665c9b5749c9f2269d1b804147917eb) --- sys/dev/mlx5/fs.h | 4 ++++ sys/dev/mlx5/mlx5_core/fs_core.h | 5 ++--- sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 13 ++++++++++--- sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 19 ++++++++++++------- sys/dev/mlx5/mlx5_ifc.h | 1 + 5 files changed, 29 insertions(+), 13 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index bb087718d12f..58bdf19ccdab 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -50,6 +50,8 @@ enum { #define FS_MAX_TYPES 10 #define FS_MAX_ENTRIES 32000U +#define FS_REFORMAT_KEYWORD "_reformat" + enum mlx5_flow_namespace_type { MLX5_FLOW_NAMESPACE_BYPASS, MLX5_FLOW_NAMESPACE_OFFLOADS, @@ -85,12 +87,14 @@ struct mlx5_flow_destination { enum mlx5_flow_act_actions { MLX5_FLOW_ACT_ACTIONS_FLOW_TAG = 1 << 0, MLX5_FLOW_ACT_ACTIONS_MODIFY_HDR = 1 << 1, + MLX5_FLOW_ACT_ACTIONS_PACKET_REFORMAT = 1 << 2, }; struct mlx5_flow_act { u32 actions; /* See enum mlx5_flow_act_actions */ u32 flow_tag; struct mlx5_modify_hdr *modify_hdr; + struct mlx5_pkt_reformat *pkt_reformat; }; #define FT_NAME_STR_SZ 20 diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index 40c6cadf3223..34dacf1af253 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -264,9 +264,8 @@ void _fs_remove_node(struct kref *kref); &(fte)->dests) int mlx5_cmd_fs_create_ft(struct mlx5_core_dev *dev, - u16 vport, - enum fs_ft_type type, unsigned int level, - unsigned int log_size, unsigned int *table_id); + u16 vport, enum fs_ft_type type, unsigned int level, + unsigned int log_size, const char *name, unsigned int *table_id); int mlx5_cmd_fs_destroy_ft(struct mlx5_core_dev *dev, u16 vport, diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 22bc945a4b62..8c2708c504ee 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -54,9 +54,8 @@ int mlx5_cmd_update_root_ft(struct mlx5_core_dev *dev, } int mlx5_cmd_fs_create_ft(struct mlx5_core_dev *dev, - u16 vport, - enum fs_ft_type type, unsigned int level, - unsigned int log_size, unsigned int *table_id) + u16 vport, enum fs_ft_type type, unsigned int level, + unsigned int log_size, const char *name, unsigned int *table_id) { u32 in[MLX5_ST_SZ_DW(create_flow_table_in)] = {0}; u32 out[MLX5_ST_SZ_DW(create_flow_table_out)] = {0}; @@ -72,6 +71,9 @@ int mlx5_cmd_fs_create_ft(struct mlx5_core_dev *dev, MLX5_SET(create_flow_table_in, in, flow_table_context.level, level); MLX5_SET(create_flow_table_in, in, flow_table_context.log_size, log_size); + if (strstr(name, FS_REFORMAT_KEYWORD) != NULL) + MLX5_SET(create_flow_table_in, in, + flow_table_context.reformat_en, 1); if (vport) { MLX5_SET(create_flow_table_in, in, vport_number, vport); MLX5_SET(create_flow_table_in, in, other_vport, 1); @@ -228,6 +230,11 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, flow_act->modify_hdr->id); prm_action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; } + if (flow_act->actions & MLX5_FLOW_ACT_ACTIONS_PACKET_REFORMAT) { + MLX5_SET(flow_context, in_flow_context, packet_reformat_id, + flow_act->pkt_reformat->id); + prm_action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT; + } MLX5_SET(flow_context, in_flow_context, destination_list_size, dest_size); in_match_value = MLX5_ADDR_OF(flow_context, in_flow_context, diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 7c3eb1e86d6d..55d7e69d6140 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -816,8 +816,14 @@ static struct mlx5_flow_table *_create_ft_common(struct mlx5_flow_namespace *ns, /*User isn't aware to those rules*/ ft->max_fte = ft_size - 2; log_table_sz = ilog2(ft_size); + + if (name == NULL || name[0] == '\0') { + snprintf(gen_name, sizeof(gen_name), "flow_table_%u", ft->id); + name = gen_name; + } + err = mlx5_cmd_fs_create_ft(root->dev, ft->vport, ft->type, - ft->level, log_table_sz, &ft->id); + ft->level, log_table_sz, name, &ft->id); if (err) goto free_ft; @@ -832,12 +838,8 @@ static struct mlx5_flow_table *_create_ft_common(struct mlx5_flow_namespace *ns, goto destroy_star_rule; } - if (!name || !strlen(name)) { - snprintf(gen_name, 20, "flow_table_%u", ft->id); - _fs_add_node(&ft->base, gen_name, &fs_prio->base); - } else { - _fs_add_node(&ft->base, name, &fs_prio->base); - } + _fs_add_node(&ft->base, name, &fs_prio->base); + list_add_tail(&ft->base.list, &fs_prio->objs); fs_prio->num_ft++; @@ -1764,6 +1766,9 @@ static bool check_conflicting_actions(const struct mlx5_flow_act *act1, if (action1 & MLX5_FLOW_ACT_ACTIONS_MODIFY_HDR) return true; + if (action1 & MLX5_FLOW_ACT_ACTIONS_PACKET_REFORMAT) + return true; + return false; } diff --git a/sys/dev/mlx5/mlx5_ifc.h b/sys/dev/mlx5/mlx5_ifc.h index 9534ac3d1c94..382d6c195ac9 100644 --- a/sys/dev/mlx5/mlx5_ifc.h +++ b/sys/dev/mlx5/mlx5_ifc.h @@ -2264,6 +2264,7 @@ enum { MLX5_FLOW_CONTEXT_ACTION_DROP = 0x2, MLX5_FLOW_CONTEXT_ACTION_FWD_DEST = 0x4, MLX5_FLOW_CONTEXT_ACTION_COUNT = 0x8, + MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT = 0x10, MLX5_FLOW_CONTEXT_ACTION_MOD_HDR = 0x40, }; From nobody Wed Nov 22 01:51:55 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkg50wsz51WML; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkg3s1bz3HM4; Wed, 22 Nov 2023 01: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=1700617915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YLEIyCVy0BO91BT5u0L+5sTmwlF7HpGjs6l4zY2hzNs=; b=gM0I9d72vEjXC+6vT9XAjvc4C4G8k8VAVhFob4qdxg0WwDYOaMr4Ai5fLpchq17QzDkjck QxM6LfsN9GqXhmu8262txkMwm88ltH96PIQy2y4PnRWKbHMWVHn0DKPYenwo5H5/ukNlzN NsltivOzIjp7wNowuobA8ADPIYyHgewK2P9h/UiN5HhFOf3sp4V1XKExWavQSRjlWaeuYE 3YJaJR4j0dqfGICBawoq9yrbuSSqn9NvKX7uh/vPr7er9YCrdYWAN3XFWMn99ZllNkmomn EsW88IlU8fzZJwnMdBEcIGTycb56TrrL/WQttSmZ8XDjxKDqp5tBRh2HtRMzjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617915; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YLEIyCVy0BO91BT5u0L+5sTmwlF7HpGjs6l4zY2hzNs=; b=DR1hKmrzoP7wARf0EHTA/8Jd8y/82UMbEd22WSuTsCjBHtD/rbkfTZD5nSxQOAulshdFqS D/QM7B2Tn8jnvTH6TvaXJRT7eOj6I2GETmi1JD8nT80B+zAxi/6778A1FHA4KAYwBeR7sh xiK1xpKKv6kGwvBgazAllb2AiGh18hbo6RYhEGDzVyeRHBhC/QzHcxI8xOL1JmeSU04sPd x00p0UdYRzjmSFgUqHdEIczM+PkI8PHV2flk96S5ABjYrbmNfhTQIWCBL2PUxD9dEeJQNX GbmH92PZ88s2TCIURmuU9Ir3xNKtSGZFhusqfMBENtqgpTJQtVQUyz+OqIZiBw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617915; a=rsa-sha256; cv=none; b=ZXfkWgsX3x2Ane4fMj9Eqr8nzAf5d4c0KaEJGSIhoigiK6FV2VSo08UFLhU5+2gSG9YECR heLnR4zUBxZEk/KZ9MwvYjLZPMcIwcyiCtdX0OY0zfFcxB0jLiSCAV6WTZCbCS93o5AS3+ K7me7k783Lid2lwLGTA1pEC2DZfHwzKKtVCzc0u8zHADmbFL6gwjVFWi51DhxEeW6u+B1a bJOWnpcgZ+BK04rb/6H21pZPk5M6QtP0PNxJ+mBjlvEdXGTIlY8qjlyQXvym+jHpzI9nHp OMOsqI+HEL6ppRsWhlCA/9NJbfYy/9DNohKfW6YwxN+jlbApvnUyd7Eam1CVaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkg2p5Lz10HB; Wed, 22 Nov 2023 01:51:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1ptbv077283; Wed, 22 Nov 2023 01:51:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1ptiq077280; Wed, 22 Nov 2023 01:51:55 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:55 GMT Message-Id: <202311220151.3AM1ptiq077280@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: 0759f76e579d - stable/14 - mlx5: Use software enum in APIs instead of PRM List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0759f76e579d61e4609b05ea0efcc2d1a63d2679 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0759f76e579d61e4609b05ea0efcc2d1a63d2679 commit 0759f76e579d61e4609b05ea0efcc2d1a63d2679 Author: Mark Bloch AuthorDate: 2023-02-19 12:25:10 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5: Use software enum in APIs instead of PRM (cherry picked from commit 76ed99ed8ad259792fea752461e2cd1ed481e8e1) --- sys/dev/mlx5/fs.h | 8 ++++- sys/dev/mlx5/mlx5_core/fs_core.h | 4 +-- sys/dev/mlx5/mlx5_core/mlx5_eswitch.c | 8 ++--- sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 14 +++++++-- sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c | 4 +-- sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 32 ++++++++++---------- sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c | 50 +++++++++++++++---------------- sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c | 3 +- 8 files changed, 68 insertions(+), 55 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index 58bdf19ccdab..da1a469d333c 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -43,6 +43,12 @@ enum { MLX5_FS_SNIFFER_FLOW_TAG = 0xFFFFFD, }; +enum mlx5_rule_fwd_action { + MLX5_FLOW_RULE_FWD_ACTION_ALLOW = 0x1, + MLX5_FLOW_RULE_FWD_ACTION_DROP = 0x2, + MLX5_FLOW_RULE_FWD_ACTION_DEST = 0x4, +}; + enum { MLX5_FS_FLOW_TAG_MASK = 0xFFFFFF, }; @@ -168,7 +174,7 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft, u8 match_criteria_enable, u32 *match_criteria, u32 *match_value, - u32 action, + u32 sw_action, struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest); void mlx5_del_flow_rule(struct mlx5_flow_rule **); diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index 34dacf1af253..3eae7868833f 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -81,7 +81,7 @@ struct fs_fte { struct list_head dests; uint32_t index; /* index in ft */ struct mlx5_flow_act flow_act; - u8 action; /* MLX5_FLOW_CONTEXT_ACTION */ + u32 sw_action; /* enum mlx5_rule_fwd_action */ enum fs_fte_status status; }; @@ -290,7 +290,7 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, enum fs_ft_type type, unsigned int table_id, unsigned int index, unsigned int group_id, struct mlx5_flow_act *flow_act, - unsigned short action, int dest_size, + u32 sw_action, int dest_size, struct list_head *dests); /* mlx5_flow_desination */ int mlx5_cmd_fs_delete_fte(struct mlx5_core_dev *dev, diff --git a/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c b/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c index 9f9350e0260b..15f5f0ff0336 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_eswitch.c @@ -253,7 +253,7 @@ esw_fdb_set_vport_rule(struct mlx5_eswitch *esw, u8 mac[ETH_ALEN], u32 vport) match_header, match_c, match_v, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(flow_rule)) { printf("mlx5_core: WARN: ""FDB: Failed to add flow rule: dmac_v(%pM) dmac_c(%pM) -> vport(%d), err(%ld)\n", dmac_v, dmac_c, vport, PTR_ERR(flow_rule)); @@ -825,7 +825,7 @@ static int esw_vport_ingress_config(struct mlx5_eswitch *esw, MLX5_MATCH_OUTER_HEADERS, match_c, match_v, - MLX5_FLOW_CONTEXT_ACTION_DROP, + MLX5_FLOW_RULE_FWD_ACTION_DROP, &flow_act, &dest); if (IS_ERR_OR_NULL(vport->ingress.drop_rule)) { err = PTR_ERR(vport->ingress.drop_rule); @@ -885,7 +885,7 @@ static int esw_vport_egress_config(struct mlx5_eswitch *esw, MLX5_MATCH_OUTER_HEADERS, match_c, match_v, - MLX5_FLOW_CONTEXT_ACTION_ALLOW, + MLX5_FLOW_RULE_FWD_ACTION_ALLOW, &flow_act, &dest); if (IS_ERR_OR_NULL(vport->egress.allowed_vlan)) { err = PTR_ERR(vport->egress.allowed_vlan); @@ -902,7 +902,7 @@ static int esw_vport_egress_config(struct mlx5_eswitch *esw, 0, match_c, match_v, - MLX5_FLOW_CONTEXT_ACTION_DROP, + MLX5_FLOW_RULE_FWD_ACTION_DROP, &flow_act, &dest); if (IS_ERR_OR_NULL(vport->egress.drop_rule)) { err = PTR_ERR(vport->egress.drop_rule); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 8c2708c504ee..8032d1a632e5 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -167,7 +167,7 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, enum fs_ft_type type, unsigned int table_id, unsigned int index, unsigned int group_id, struct mlx5_flow_act *flow_act, - unsigned short action, int dest_size, + u32 sw_action, int dest_size, struct list_head *dests) /* mlx5_flow_desination */ { u32 out[MLX5_ST_SZ_DW(set_fte_out)] = {0}; @@ -183,10 +183,18 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, int atomic_mod_cap; u32 prm_action = 0; - if (action != MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) + if (sw_action != MLX5_FLOW_RULE_FWD_ACTION_DEST) dest_size = 0; - prm_action = action; + if (sw_action & MLX5_FLOW_RULE_FWD_ACTION_ALLOW) + prm_action |= MLX5_FLOW_CONTEXT_ACTION_ALLOW; + + if (sw_action & MLX5_FLOW_RULE_FWD_ACTION_DROP) + prm_action |= MLX5_FLOW_CONTEXT_ACTION_DROP; + + if (sw_action & MLX5_FLOW_RULE_FWD_ACTION_DEST) + prm_action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; + inlen = MLX5_ST_SZ_BYTES(set_fte_in) + dest_size * MLX5_ST_SZ_BYTES(dest_format_struct); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c index 69df9ecba210..d7d63d7932a1 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tcp.c @@ -164,7 +164,7 @@ mlx5e_accel_fs_add_inpcb(struct mlx5e_priv *priv, flow = mlx5_add_flow_rule(ft->t, spec->match_criteria_enable, spec->match_criteria, spec->match_value, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); out: @@ -200,7 +200,7 @@ accel_fs_tcp_add_default_rule(struct mlx5e_priv *priv, int type) priv->fts.vlan.t : fs_tcp->tables[type + 1].t; rule = mlx5_add_flow_rule(fs_tcp->tables[type].t, 0, match_criteria, match_value, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR(rule)) return (PTR_ERR(rule)); diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 55d7e69d6140..60353e4b3d5b 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -302,7 +302,7 @@ static void fs_remove_node_parent_locked(struct fs_base *node) kfree(node); } -static struct fs_fte *fs_alloc_fte(u8 action, +static struct fs_fte *fs_alloc_fte(u32 sw_action, struct mlx5_flow_act *flow_act, u32 *match_value, unsigned int index) @@ -320,7 +320,7 @@ static struct fs_fte *fs_alloc_fte(u8 action, fte->index = index; INIT_LIST_HEAD(&fte->dests); fte->flow_act = *flow_act; - fte->action = action; + fte->sw_action = sw_action; return fte; } @@ -341,7 +341,7 @@ static struct fs_fte *alloc_star_ft_entry(struct mlx5_flow_table *ft, if (fg->num_ftes == fg->max_ftes) return ERR_PTR(-ENOSPC); - fte = fs_alloc_fte(MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + fte = fs_alloc_fte(MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, match_value, index); if (IS_ERR(fte)) return fte; @@ -447,7 +447,7 @@ static int fs_set_star_rule(struct mlx5_core_dev *dev, src_ft->id, src_fte->index, src_ft->star_rule.fg->id, &src_fte->flow_act, - src_fte->action, + src_fte->sw_action, src_fte->dests_size, &src_fte->dests); if (err) @@ -1590,7 +1590,7 @@ static struct mlx5_flow_rule *_fs_add_dst_fte(struct fs_fte *fte, &fte->status, fte->val, ft->type, ft->id, fte->index, fg->id, &fte->flow_act, - fte->action, fte->dests_size, &fte->dests); + fte->sw_action, fte->dests_size, &fte->dests); if (err) goto free_dst; @@ -1652,7 +1652,7 @@ static unsigned int fs_get_free_fg_index(struct mlx5_flow_group *fg, static struct fs_fte *fs_create_fte(struct mlx5_flow_group *fg, u32 *match_value, - u8 action, + u32 sw_action, struct mlx5_flow_act *flow_act, struct list_head **prev) { @@ -1660,7 +1660,7 @@ static struct fs_fte *fs_create_fte(struct mlx5_flow_group *fg, int index = 0; index = fs_get_free_fg_index(fg, prev); - fte = fs_alloc_fte(action, flow_act, match_value, index); + fte = fs_alloc_fte(sw_action, flow_act, match_value, index); if (IS_ERR(fte)) return fte; @@ -1710,7 +1710,7 @@ static void fs_del_dst(struct mlx5_flow_rule *dst) err = mlx5_cmd_fs_set_fte(dev, ft->vport, &fte->status, match_value, ft->type, ft->id, fte->index, fg->id, - &fte->flow_act, fte->action, + &fte->flow_act, fte->sw_action, fte->dests_size, &fte->dests); if (err) { mlx5_core_warn(dev, "%s can't delete dst %s\n", @@ -1776,7 +1776,7 @@ static bool check_conflicting_actions(const struct mlx5_flow_act *act1, /* Add dst algorithm */ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, u32 *match_value, - u8 action, + u32 sw_action, struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest) { @@ -1791,7 +1791,7 @@ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, /* TODO: Check of size against PRM max size */ mutex_lock(&fte->base.lock); if (fs_match_exact_val(&fg->mask, match_value, &fte->val) && - action == fte->action && + sw_action == fte->sw_action && !check_conflicting_actions(flow_act, &fte->flow_act)) { dst = _fs_add_dst_fte(fte, fg, dest); mutex_unlock(&fte->base.lock); @@ -1808,7 +1808,7 @@ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, goto unlock_fg; } - fte = fs_create_fte(fg, match_value, action, flow_act, &prev); + fte = fs_create_fte(fg, match_value, sw_action, flow_act, &prev); if (IS_ERR(fte)) { dst = (void *)fte; goto unlock_fg; @@ -1836,7 +1836,7 @@ static struct mlx5_flow_rule *fs_add_dst_ft(struct mlx5_flow_table *ft, u8 match_criteria_enable, u32 *match_criteria, u32 *match_value, - u8 action, + u32 sw_action, struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest) { @@ -1853,7 +1853,7 @@ static struct mlx5_flow_rule *fs_add_dst_ft(struct mlx5_flow_table *ft, match_criteria)) { mutex_unlock(&ft->base.lock); - dst = fs_add_dst_fg(g, match_value, action, flow_act, dest); + dst = fs_add_dst_fg(g, match_value, sw_action, flow_act, dest); if (PTR_ERR(dst) && PTR_ERR(dst) != -ENOSPC) goto unlock; } @@ -1866,7 +1866,7 @@ static struct mlx5_flow_rule *fs_add_dst_ft(struct mlx5_flow_table *ft, } dst = fs_add_dst_fg(g, match_value, - action, flow_act, dest); + sw_action, flow_act, dest); if (IS_ERR(dst)) { /* Remove assumes refcount > 0 and autogroup creates a group * with a refcount = 0. @@ -1886,7 +1886,7 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft, u8 match_criteria_enable, u32 *match_criteria, u32 *match_value, - u32 action, + u32 sw_action, struct mlx5_flow_act *flow_act, struct mlx5_flow_destination *dest) { @@ -1897,7 +1897,7 @@ mlx5_add_flow_rule(struct mlx5_flow_table *ft, if (ns) down_read(&ns->dests_rw_sem); dst = fs_add_dst_ft(ft, match_criteria_enable, match_criteria, - match_value, action, flow_act, dest); + match_value, sw_action, flow_act, dest); if (ns) up_read(&ns->dests_rw_sem); diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c index cb23b80deae4..4939deb4c122 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c @@ -293,7 +293,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, rule_p = &ai->ft_rule[MLX5E_TT_ANY]; dest.tir_num = tirn[MLX5E_TT_ANY]; *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -308,7 +308,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -320,7 +320,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -335,7 +335,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -347,7 +347,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -361,7 +361,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -373,7 +373,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -387,7 +387,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -399,7 +399,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -413,7 +413,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -425,7 +425,7 @@ mlx5e_add_eth_addr_rule_sub(struct mlx5e_priv *priv, MLX5_SET(fte_match_param, mv, outer_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -505,7 +505,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -513,7 +513,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -524,7 +524,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_UDP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -532,7 +532,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6_UDP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -542,7 +542,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_TCP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -550,7 +550,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6_TCP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -560,7 +560,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_IPSEC_AH]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -568,7 +568,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV6_IPSEC_AH]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -578,7 +578,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) dest.tir_num = tirn[MLX5E_TT_IPV4_IPSEC_ESP]; MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IP); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -587,7 +587,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) MLX5_SET(fte_match_param, mv, inner_headers.ethertype, ETHERTYPE_IPV6); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -597,7 +597,7 @@ mlx5e_add_main_vxlan_rules_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) rule_p = &priv->fts.main_vxlan_rule[MLX5E_TT_ANY]; dest.tir_num = tirn[MLX5E_TT_ANY]; *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR_OR_NULL(*rule_p)) goto err_del_ai; @@ -730,7 +730,7 @@ mlx5e_add_vlan_rule_sub(struct mlx5e_priv *priv, } *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); @@ -1709,7 +1709,7 @@ mlx5e_add_vxlan_rule_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv, MLX5_SET(fte_match_param, mv, outer_headers.udp_dport, el->port); *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR(*rule_p)) { err = PTR_ERR(*rule_p); @@ -1835,7 +1835,7 @@ mlx5e_add_vxlan_catchall_rule_sub(struct mlx5e_priv *priv, u32 *mc, u32 *mv) rule_p = &priv->fts.vxlan_catchall_ft_rule; *rule_p = mlx5_add_flow_rule(ft, mc_enable, mc, mv, - MLX5_FLOW_CONTEXT_ACTION_FWD_DEST, &flow_act, &dest); + MLX5_FLOW_RULE_FWD_ACTION_DEST, &flow_act, &dest); if (IS_ERR(*rule_p)) { err = PTR_ERR(*rule_p); diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c index dc5396d348c5..b4c9115bc420 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c @@ -2209,8 +2209,7 @@ static struct mlx5_ib_flow_handler *create_flow_rule(struct mlx5_ib_dev *dev, } spec->match_criteria_enable = get_match_criteria_enable(spec->match_criteria); - action = dst ? MLX5_FLOW_CONTEXT_ACTION_FWD_DEST : - MLX5_FLOW_CONTEXT_ACTION_FWD_NEXT_PRIO; + action = dst ? MLX5_FLOW_RULE_FWD_ACTION_DEST : 0; handler->rule = mlx5_add_flow_rule(ft, spec->match_criteria_enable, spec->match_criteria, spec->match_value, From nobody Wed Nov 22 01:51:56 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkh5xpxz51W9Y; Wed, 22 Nov 2023 01:51:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkh4sh5z3HXq; Wed, 22 Nov 2023 01: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=1700617916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zMsZnUZwWUCtbvf19RQJzjT1QyafrK3ZIEqM68WkWYc=; b=QNClTR2REl7hCpbY8KcSXkDTdAeYHEAJrV4cvBl3GMlg7ONZpOtFcV2LrvVw1mtyHC4JTE zWuBr9CF8ZKoRLWhQB2vwArtp3gKDnmdkkfTPl2RtZC4LfJsEYezYu1fGj9m9PDTpgldev Bv2nh8PV4hL6K6e+Fagj1uHwn1VH3Et7eRAKfLwZMRwEVQTreeIVywTAe/3y2Tg+DwNiUw Oz4EFot3a1975PYXhJ29RVC6wGpGFwEGvd5Vu+rE/1gbRwD4wtPQ2okzoL5KPetVKDpcuE uvzKUQzBwEAYBS4UWdO5Q7nJyFLrn2f+rhYbwwiVuGYhsMntTr58KG0RWA3e3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617916; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zMsZnUZwWUCtbvf19RQJzjT1QyafrK3ZIEqM68WkWYc=; b=Cj0Ww8pBzUOiuwGg11Mfz2MGE6LWypzZIJVpqI42J0blOX4PR3kRmEWma9pTCnN2rIWY/a OATMpVgHGZJq8IFgsl2ovqcGiQloh/zVYS5AqZzZAi/Dy2NNDC48oOYuHvmmzJ2z5biufW WsUDKq9+W2H0UQbWBKWUQ1QYyw2vpc6pAuSSdecWcqUMTajyW6gG9L0sJXMFmZ+YeXssCa VBdTOSovjca713b4bNTuUZOoFqLDoLD0wbEEHGmSHYMvXpLv5giADf4R6WDsJYrzEitxsR e6uOEULSXOfKbb9aWEkJtC8FKwXxRFgevqDyom8uhSMSL+cAotAdnFi+S1eoow== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617916; a=rsa-sha256; cv=none; b=hG/SngsCDtM+Zhv83vXDqQ0ev8+1GVJz9mFR4hBvs+ZNmR+9/ZlH3TklPdZazvA1zNOgvV ff9Kgh8JRUwQcZAFdYkT2X1H97PpweagHcnio0EpHWDhyRn5pIFhjsh6KLvkdmUR8cJ8zj SPfQnu8YF7cX44YN+PVskrn3AUxjAiXAFTb1eMCPCARk+ccHgRFHa+HIFDjdmXdvEyLdVR fW/6LkXpnqHrXd6A55RGNwUmP+xFxhvbxjRKZdXl4kbMadi5mLj5KCiVt8AVlDDUJ1gc6y FlLPasX8P0JMCUcsBqPUZ/aAg2D9aL6Ts9V6v7M68+1KhBGbbQQzXy6ekIc1lw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkh3btpz10HC; Wed, 22 Nov 2023 01:51:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1puaH077328; Wed, 22 Nov 2023 01:51:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pudu077325; Wed, 22 Nov 2023 01:51:56 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:56 GMT Message-Id: <202311220151.3AM1pudu077325@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: 4c6a46cea41b - stable/14 - net/mlx5: Fix auto group size calculation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4c6a46cea41b236f9b06e702e8491055dddc7d4c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4c6a46cea41b236f9b06e702e8491055dddc7d4c commit 4c6a46cea41b236f9b06e702e8491055dddc7d4c Author: Mark Bloch AuthorDate: 2023-02-19 14:05:16 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 net/mlx5: Fix auto group size calculation (cherry picked from commit 04db54fe4309e896c4c80baadbcc47b171722027) --- sys/dev/mlx5/mlx5_core/fs_core.h | 1 + sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index 3eae7868833f..dc619fc2d2db 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -97,6 +97,7 @@ struct mlx5_flow_table { struct { bool active; unsigned int max_types; + unsigned int group_size; unsigned int num_types; } autogroup; unsigned int max_fte; diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 60353e4b3d5b..b59373d48730 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -918,6 +918,9 @@ struct mlx5_flow_table *mlx5_create_auto_grouped_flow_table(struct mlx5_flow_nam ft->autogroup.active = true; ft->autogroup.max_types = max_num_groups; + /* We save place for flow groups in addition to max types */ + ft->autogroup.group_size = ft->max_fte / (max_num_groups + 1); + if (is_shared_prio) ft->shared_refcount = 1; @@ -1066,6 +1069,7 @@ static struct mlx5_flow_group *fs_create_fg(struct mlx5_core_dev *dev, int refcount) { struct mlx5_flow_group *fg; + unsigned int group_size; int err; char name[20]; @@ -1073,6 +1077,8 @@ static struct mlx5_flow_group *fs_create_fg(struct mlx5_core_dev *dev, if (IS_ERR(fg)) return fg; + group_size = MLX5_GET(create_flow_group_in, fg_in, end_flow_index) - + MLX5_GET(create_flow_group_in, fg_in, start_flow_index) + 1; err = mlx5_cmd_fs_create_fg(dev, fg_in, ft->vport, ft->type, ft->id, &fg->id); @@ -1080,7 +1086,8 @@ static struct mlx5_flow_group *fs_create_fg(struct mlx5_core_dev *dev, goto free_fg; mutex_lock(&ft->base.lock); - if (ft->autogroup.active) + + if (ft->autogroup.active && group_size == ft->autogroup.group_size) ft->autogroup.num_types++; snprintf(name, sizeof(name), "group_%u", fg->id); @@ -1125,7 +1132,7 @@ static void fs_del_fg(struct mlx5_flow_group *fg) dev = fs_get_dev(&parent_ft->base); WARN_ON(!dev); - if (parent_ft->autogroup.active) + if (parent_ft->autogroup.active && fg->max_ftes == parent_ft->autogroup.group_size) parent_ft->autogroup.num_types--; if (mlx5_cmd_fs_destroy_fg(dev, parent_ft->vport, @@ -1432,7 +1439,7 @@ static struct mlx5_flow_group *create_autogroup(struct mlx5_flow_table *ft, if (ft->autogroup.num_types < ft->autogroup.max_types) - group_size = ft->max_fte / (ft->autogroup.max_types + 1); + group_size = ft->autogroup.group_size; else group_size = 1; From nobody Wed Nov 22 01:51:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkk0T7Qz51WMQ; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkj5NXgz3HQd; Wed, 22 Nov 2023 01: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=1700617917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6FhQxdNVXr6YhJmXpSuw8jKFC/1E39MbZ5mJUzcfO+Y=; b=Z3sT4LeSZm/MokASfEXE+Z0cY5m0EnBg9JkWqZ0/IPVkmrGtcdYTnzgeFfysMtbUJVf1Rl mumCxfZmv+ceET3V7W5hZ1JPNOTV2TZshB7Msl1ZJWlv354CGDXiXn/okrm9PBLPGzZHJL NqD7+ChzttAjIESJt+ZXicLNhTDK4f+WeLPdw4YQ+epi7TxFoWQRE7P33nnWMS/zak4WCU INlYlee8rUat6aA4kO+kBUkjbLZa1sAoETuVgbbHWHJhDXyc9Oj3zVXgQpEY0RWCJ72fOL OPOT/d2hjRer1A2zZcnjb4UORuZM4T0BdqgzhidT4buuK10zVzao3F/3FQlf2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617917; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6FhQxdNVXr6YhJmXpSuw8jKFC/1E39MbZ5mJUzcfO+Y=; b=IeqWSTdfsYrR8e1yY+OsFGRndb3N6hceibh617ulFQ6PoxSVUt08lFfQuUkD4NvM29KunE +fR3xbPZqoe/G3OellcR7YlJ6Fu0fptEh2v3ZiKoICfBp74iHEXy89IwCwCGI++MxG9ttO Ym0dy0JaxIVXpSTB+F76hEiotes8pQ9cDeL+1xj5nle1U+pfZzfEDm9mWPuYRIZjZpKWhe Ke7raNRowKtJUuNnQCkiZWTi/EaFSWkbmaY55xko0k2n076JuST5oxf+CTug+ubC/GSqI+ cE3tEJzRWit0bxbsvhxqWSlws4yWJ0ldl7ziJ5Z3ImgRpquo55W8+UdiWgeqFQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617917; a=rsa-sha256; cv=none; b=UVUup56J6dJgW0Xt8a5UGNm/qly+QT33+OMmBzOksAG6sGwuPOYKjugGBUGimVy3SjTiWN EP0GzdCngtu4JPz30cd3lDVZ2+PNwsKatXaZ3aLsijrKaW/+oDaL5jNw4EH4SsOeTiLREu r8qBXAc7OI6OCsJZDOgPhCk1gFl062XCqWkPs2Top1DOzUWUiW0AFwVq1aXP/t37hULfZ2 GorYnE2Hz2uIarroZCzP2kfO9buRAJeVbXjCx6sIxsABRPqJeWlOd82QYRg56pGitnncNV 31dY9fTE1zJLpi8MPaH9lzG0fXNKtvO4h7TOI+BMluEdkjbdhWb4T4DcsVNNCQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkj4Chqz10HG; Wed, 22 Nov 2023 01:51:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1pvFD078137; Wed, 22 Nov 2023 01:51:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pvOb078119; Wed, 22 Nov 2023 01:51:57 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:57 GMT Message-Id: <202311220151.3AM1pvOb078119@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: 67a9c8868af3 - stable/14 - net/mlx5: Allow creating autogroups with reserved entries List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 67a9c8868af371f3e0b96a18d1f9d54fd2be4b1a Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=67a9c8868af371f3e0b96a18d1f9d54fd2be4b1a commit 67a9c8868af371f3e0b96a18d1f9d54fd2be4b1a Author: Mark Bloch AuthorDate: 2023-02-19 14:16:43 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 net/mlx5: Allow creating autogroups with reserved entries (cherry picked from commit 0a5db6bb3a953bd22f53f3607ae6853487548532) --- sys/dev/mlx5/fs.h | 3 ++- sys/dev/mlx5/mlx5_core/fs_core.h | 1 + sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 22 +++++++++++++++++----- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index da1a469d333c..d61a2bb498b7 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -140,7 +140,8 @@ mlx5_create_auto_grouped_flow_table(struct mlx5_flow_namespace *ns, int prio, const char *name, int num_flow_table_entries, - int max_num_groups); + int max_num_groups, + int num_reserved_entries); struct mlx5_flow_table * mlx5_create_vport_flow_table(struct mlx5_flow_namespace *ns, diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index dc619fc2d2db..a9273fdab61c 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -99,6 +99,7 @@ struct mlx5_flow_table { unsigned int max_types; unsigned int group_size; unsigned int num_types; + unsigned int max_fte; } autogroup; unsigned int max_fte; unsigned int level; diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index b59373d48730..dcf93e5fc892 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -892,12 +892,18 @@ struct mlx5_flow_table *mlx5_create_auto_grouped_flow_table(struct mlx5_flow_nam int prio, const char *name, int num_flow_table_entries, - int max_num_groups) + int max_num_groups, + int num_reserved_entries) { struct mlx5_flow_table *ft = NULL; struct fs_prio *fs_prio; bool is_shared_prio; + if (max_num_groups > (num_flow_table_entries - num_reserved_entries)) + return ERR_PTR(-EINVAL); + if (num_reserved_entries > num_flow_table_entries) + return ERR_PTR(-EINVAL); + fs_prio = find_prio(ns, prio); if (!fs_prio) return ERR_PTR(-EINVAL); @@ -918,8 +924,9 @@ struct mlx5_flow_table *mlx5_create_auto_grouped_flow_table(struct mlx5_flow_nam ft->autogroup.active = true; ft->autogroup.max_types = max_num_groups; + ft->autogroup.max_fte = num_flow_table_entries - num_reserved_entries; /* We save place for flow groups in addition to max types */ - ft->autogroup.group_size = ft->max_fte / (max_num_groups + 1); + ft->autogroup.group_size = ft->autogroup.max_fte / (max_num_groups + 1); if (is_shared_prio) ft->shared_refcount = 1; @@ -1109,11 +1116,13 @@ struct mlx5_flow_group *mlx5_create_flow_group(struct mlx5_flow_table *ft, { struct mlx5_flow_group *fg; struct mlx5_core_dev *dev = fs_get_dev(&ft->base); + unsigned int start_index; + start_index = MLX5_GET(create_flow_group_in, in, start_flow_index); if (!dev) return ERR_PTR(-ENODEV); - if (ft->autogroup.active) + if (ft->autogroup.active && start_index < ft->autogroup.max_fte) return ERR_PTR(-EPERM); fg = fs_create_fg(dev, ft, ft->fgs.prev, in, 1); @@ -1132,7 +1141,9 @@ static void fs_del_fg(struct mlx5_flow_group *fg) dev = fs_get_dev(&parent_ft->base); WARN_ON(!dev); - if (parent_ft->autogroup.active && fg->max_ftes == parent_ft->autogroup.group_size) + if (parent_ft->autogroup.active && + fg->max_ftes == parent_ft->autogroup.group_size && + fg->start_index < parent_ft->autogroup.max_fte) parent_ft->autogroup.num_types--; if (mlx5_cmd_fs_destroy_fg(dev, parent_ft->vport, @@ -1423,6 +1434,7 @@ static struct mlx5_flow_group *create_autogroup(struct mlx5_flow_table *ft, u32 *in; int inlen = MLX5_ST_SZ_BYTES(create_flow_group_in); void *match_criteria_addr; + u32 max_fte = ft->autogroup.max_fte; if (!ft->autogroup.active) return ERR_PTR(-ENOENT); @@ -1459,7 +1471,7 @@ static struct mlx5_flow_group *create_autogroup(struct mlx5_flow_table *ft, prev = &g->base.list; } - if (candidate_index + group_size > ft->max_fte) { + if (candidate_index + group_size > max_fte) { ret = ERR_PTR(-ENOSPC); goto out; } From nobody Wed Nov 22 01:51:58 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkl0ZmMz51W9k; Wed, 22 Nov 2023 01: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkk66k8z3Hc5; Wed, 22 Nov 2023 01: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=1700617918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jqzuon5X6PUk1Bl82qiDEoeBJD0E/fD0gMqugDWbbWk=; b=Wt7XrDMArQ1qG3eQIwtSZwiBUTydHMReZiBchCcztfAjO5vSIsbhvxjdHk8XNmQs0yEVF8 BvmCejMo/p9W1KrYn0Had87G705qGbK7z9fEsE/OA7ZL9aVEKPsQJFW6fgi+GLqzX6b4Tk M92EDvy/8P+4o+Gw5uhEHkNagqwQNLYPgYyXi7033VHl9g5yp8ahTYoAS5n7BVa80jBMaC dvEJFHZYBG0sL3/vALNVP76iJrXHhkMsNqSzpRwLb1Yd2aYs9sk0BfjYijLCRz+2YOcIAB zMayRuE0iYM2vTBaRRnnESe2g+LnXZleWy1+9JjyX/l8GjvPdnUsbGJHWZrUSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617918; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jqzuon5X6PUk1Bl82qiDEoeBJD0E/fD0gMqugDWbbWk=; b=WCLc6ELQTvCEWZr4scOrw5qwx2UlVTMxLg6woEWMOZ1c67+AQ/vwhWZGb3KJecsNgeWrPc UzTey8c0/L9vPvdyWGYHr0aF/4VhUTTOvNmVxGMtgHkBYmwT9hXuzqKLP/8oQEmUV2CrKV mUhbUd5WfLq12X0CuTbKnltD635n9xt6XrzqwAJ8ZRxCOTjG+Llz/H001FNhQsjFVyjZhW lSe4VQ+weCCP608rdnzy6uQLMDa63yNyNcwJ4BSz32BBDjikckD4njzz+yaf0N0WOuBENr U/ZZv+qMbliZaVGSBu1FggUPL9shf9s4WTXBDBRVV2lL1yK4Vvr2gd3fRHRPEA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617918; a=rsa-sha256; cv=none; b=Apk/ckg75lUowMfNHXZiEHZwAA3Pho/cr/CS5TRuHNEVKnWS4nmTrRNXQDyF0LnQLktcdp jgZENyJ9M2Uk0zaDBGj6UqvAR3bmWF6TwqmRNNmky6plD7FNXSMvfGY6HrcFW4O59p+89d l38FqIQuEfToFoMLWhSAK9Es8U6sgNQRahCCWp1tQzPZ6JcCvoBoyx3Xe4BqgFnjjON0MD NC92dODQ4wVbd9XxFTvSFyXomHyb2pGbIobApSQSlBgBgzyFaTIaqtJQsCMOyViNTlcoH4 bUXkkIA2Kv/0dFnbpsjjJUwUob4qg+t3rfZsf2xk7oGlZ5ybzqYvRZGdZSp4lw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkk5DBHz10Dl; Wed, 22 Nov 2023 01:51:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1pw9s078258; Wed, 22 Nov 2023 01:51:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pwJ2078255; Wed, 22 Nov 2023 01:51:58 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:58 GMT Message-Id: <202311220151.3AM1pwJ2078255@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: 5a2ff1f03ad2 - stable/14 - mlx5: Add a no-append flow insertion 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5a2ff1f03ad245577498bcbc3907f4ae336fd9e8 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5a2ff1f03ad245577498bcbc3907f4ae336fd9e8 commit 5a2ff1f03ad245577498bcbc3907f4ae336fd9e8 Author: Mark Bloch AuthorDate: 2023-02-20 15:46:42 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5: Add a no-append flow insertion mode (cherry picked from commit 6a6af22b6ec42eb0436381fae8dd1b86bc4c6327) --- sys/dev/mlx5/fs.h | 5 +++++ sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index d61a2bb498b7..f62716d806d0 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -96,8 +96,13 @@ enum mlx5_flow_act_actions { MLX5_FLOW_ACT_ACTIONS_PACKET_REFORMAT = 1 << 2, }; +enum MLX5_FLOW_ACT_FLAGS { + MLX5_FLOW_ACT_NO_APPEND = 1 << 0, +}; + struct mlx5_flow_act { u32 actions; /* See enum mlx5_flow_act_actions */ + u32 flags; u32 flow_tag; struct mlx5_modify_hdr *modify_hdr; struct mlx5_pkt_reformat *pkt_reformat; diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index dcf93e5fc892..c4edc940b1bc 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -1806,6 +1806,9 @@ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, char fte_name[20]; mutex_lock(&fg->base.lock); + if (flow_act->flags & MLX5_FLOW_ACT_NO_APPEND) + goto insert_fte; + fs_for_each_fte(fte, fg) { /* TODO: Check of size against PRM max size */ mutex_lock(&fte->base.lock); @@ -1821,6 +1824,7 @@ static struct mlx5_flow_rule *fs_add_dst_fg(struct mlx5_flow_group *fg, mutex_unlock(&fte->base.lock); } +insert_fte: fs_get_parent(ft, fg); if (fg->num_ftes == fg->max_ftes) { dst = ERR_PTR(-ENOSPC); From nobody Wed Nov 22 01:51:59 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkm0K5Wz51WMX; Wed, 22 Nov 2023 01:52:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkl6p5Vz3HNF; Wed, 22 Nov 2023 01:51:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617919; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9FsQ20DJnMcNvF5qZXR+k1wf7U//HNy5575RvGO6VrA=; b=eo+yiKIIPA+xF3DS0hh2UY6B13IrET0zcQOtQhJ9eRoWkBzG5rKy09lnbzsEfcKeFI3iS7 n9huYMA6feflVcl5Q5xiFjEEp8L1LLrksD9nWPpPp60ECAhfPMV1bDzserAGlt5u/FSANp ScbAPjJKjbqRB1HSx3rzj456lkQXioR+o50YJn1lTHNdT2QxeglzgPrbDnXe7za46Orlu6 C0OOI/RgZ+f2Dah4nuDpxQBtSa9va/qjjhhaFbdZgTWmClETANr9gYk6Q1z3Y/PoUZfSmW A85v7Qv5TxrHRDSLXD/MrgCleQKY5vGhIMatPAvL8XZ42WqX1qCrSqKjQfDNdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617920; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9FsQ20DJnMcNvF5qZXR+k1wf7U//HNy5575RvGO6VrA=; b=eAJBzPNu3P3AFwnbal/715lExuAtZtMIawnf8SnpNRTY7BBvGsS/CNLMheCdQmyoUWZHgF 5+cbYGrTfcx8tmtB4zaHOmb9KzXGNwbesryzzsRcaUdyTvpnTrLFQxe5utVJoMyuxVyQMK ETiF6iiBpQWDKrS9eGE1lP6qUIHdCq3xxK5RgsZPda3n+vibcRK6e4/WPxR9bIQVIDRASw JsAPqc6NFyc+EwZ8Ws1RRHkayzUxbbVjtkOM+i3Yf0pTsADn3c8r/66n1m9UtuVPevj30B ClZ+OUNZq1cXILibuDHohvcFCAb70RpKKQJ95mHxMhAnaMsxQQPasKWK3ikftA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617920; a=rsa-sha256; cv=none; b=CO0nZEdiD3oUe7SnFTk1/tQF0G9jt3TlGrNHsF6f8uPyS97wOq7ovpDM7yFT69x7MgUeMI rRDzxDrj4UnkQ9oOfAbuMHwzjelOMH/V6+eQN4hkqvgl5C77+R8fgPz8qelEWWbqfLlsNv ORo6zXMQV06Jc17E8NSbi+Pi+7O4+9TNhW6f8JReYcwG2eEUaeSWB6J8kIh1aB8IBF4jtw VbdVnyORSgL9tzqNUifY8ZUyXFf9M7VNFc1hPXu6ntlgLqkNZ+a7uPbWRsmk2Sc6x79c5n CC8TuQ7AZ/09m7+1QDCW/T/KbJPeA+OymSVjPK2nQlnC5KfatD82n8f0fQkr7A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkl5k3Qz1031; Wed, 22 Nov 2023 01:51:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1pxEc078295; Wed, 22 Nov 2023 01:51:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1pxwb078292; Wed, 22 Nov 2023 01:51:59 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:51:59 GMT Message-Id: <202311220151.3AM1pxwb078292@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: 52164cb3bd38 - stable/14 - mlx5: add fs_counters List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 52164cb3bd38ef23c108149e4a91042da204a2f3 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=52164cb3bd38ef23c108149e4a91042da204a2f3 commit 52164cb3bd38ef23c108149e4a91042da204a2f3 Author: Raed Salem AuthorDate: 2023-02-20 16:10:29 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5: add fs_counters (cherry picked from commit 35bbcf0916992d77fe1521962db42b3106a701fb) --- sys/dev/mlx5/driver.h | 43 ++ sys/dev/mlx5/fs.h | 16 +- sys/dev/mlx5/mlx5_core/fs_core.h | 5 + sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.c | 102 ++++ sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.h | 54 +++ sys/dev/mlx5/mlx5_core/mlx5_fs_counters.c | 758 ++++++++++++++++++++++++++++++ sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 5 + sys/dev/mlx5/mlx5_ifc.h | 22 +- sys/modules/mlx5/Makefile | 2 + 9 files changed, 1003 insertions(+), 4 deletions(-) diff --git a/sys/dev/mlx5/driver.h b/sys/dev/mlx5/driver.h index cb1a2907a443..9daa1235bd9c 100644 --- a/sys/dev/mlx5/driver.h +++ b/sys/dev/mlx5/driver.h @@ -50,6 +50,7 @@ #define MLX5_MAX_NUMBER_OF_VFS 128 #define MLX5_INVALID_QUEUE_HANDLE 0xffffffff +#define MLX5_ST_SZ_BYTES(typ) (sizeof(struct mlx5_ifc_##typ##_bits) / 8) enum { MLX5_BOARD_ID_LEN = 64, @@ -269,6 +270,36 @@ struct mlx5_traffic_counter { u64 octets; }; +struct mlx5_fc_pool { + struct mlx5_core_dev *dev; + struct mutex pool_lock; /* protects pool lists */ + struct list_head fully_used; + struct list_head partially_used; + struct list_head unused; + int available_fcs; + int used_fcs; + int threshold; +}; + +struct mlx5_fc_stats { + spinlock_t counters_idr_lock; /* protects counters_idr */ + struct idr counters_idr; + struct list_head counters; + struct llist_head addlist; + struct llist_head dellist; + + struct workqueue_struct *wq; + struct delayed_work work; + unsigned long next_query; + unsigned long sampling_interval; /* jiffies */ + u32 *bulk_query_out; + int bulk_query_len; + size_t num_counters; + bool bulk_query_alloc_failed; + unsigned long next_bulk_query_alloc; + struct mlx5_fc_pool fc_pool; +}; + enum mlx5_cmd_mode { MLX5_CMD_MODE_POLLING, MLX5_CMD_MODE_EVENTS @@ -607,6 +638,7 @@ struct mlx5_priv { struct mlx5_bfreg_data bfregs; struct mlx5_uars_page *uar; + struct mlx5_fc_stats fc_stats; }; enum mlx5_device_state { @@ -963,6 +995,17 @@ int mlx5_cmd_exec_cb(struct mlx5_async_ctx *ctx, void *in, int in_size, struct mlx5_async_work *work); int mlx5_cmd_exec(struct mlx5_core_dev *dev, void *in, int in_size, void *out, int out_size); +#define mlx5_cmd_exec_inout(dev, ifc_cmd, in, out) \ + ({ \ + mlx5_cmd_exec(dev, in, MLX5_ST_SZ_BYTES(ifc_cmd##_in), out, \ + MLX5_ST_SZ_BYTES(ifc_cmd##_out)); \ + }) + +#define mlx5_cmd_exec_in(dev, ifc_cmd, in) \ + ({ \ + u32 _out[MLX5_ST_SZ_DW(ifc_cmd##_out)] = {}; \ + mlx5_cmd_exec_inout(dev, ifc_cmd, in, _out); \ + }) int mlx5_cmd_exec_polling(struct mlx5_core_dev *dev, void *in, int in_size, void *out, int out_size); int mlx5_cmd_alloc_uar(struct mlx5_core_dev *dev, u32 *uarn); diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index f62716d806d0..65d38b9ee67a 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -254,7 +254,6 @@ bool fs_match_exact_mask( void *mask1, void *mask2); /**********end API for sniffer**********/ - struct mlx5_modify_hdr *mlx5_modify_header_alloc(struct mlx5_core_dev *dev, enum mlx5_flow_namespace_type ns_type, u8 num_actions, @@ -275,4 +274,19 @@ struct mlx5_pkt_reformat *mlx5_packet_reformat_alloc(struct mlx5_core_dev *dev, enum mlx5_flow_namespace_type ns_type); void mlx5_packet_reformat_dealloc(struct mlx5_core_dev *dev, struct mlx5_pkt_reformat *pkt_reformat); +/********** Flow counters API **********/ +struct mlx5_fc; +struct mlx5_fc *mlx5_fc_create(struct mlx5_core_dev *dev, bool aging); + +/* As mlx5_fc_create() but doesn't queue stats refresh thread. */ +struct mlx5_fc *mlx5_fc_create_ex(struct mlx5_core_dev *dev, bool aging); + +void mlx5_fc_destroy(struct mlx5_core_dev *dev, struct mlx5_fc *counter); +u64 mlx5_fc_query_lastuse(struct mlx5_fc *counter); +void mlx5_fc_query_cached(struct mlx5_fc *counter, + u64 *bytes, u64 *packets, u64 *lastuse); +int mlx5_fc_query(struct mlx5_core_dev *dev, struct mlx5_fc *counter, + u64 *packets, u64 *bytes); +u32 mlx5_fc_id(struct mlx5_fc *counter); +/******* End of Flow counters API ******/ #endif diff --git a/sys/dev/mlx5/mlx5_core/fs_core.h b/sys/dev/mlx5/mlx5_core/fs_core.h index a9273fdab61c..05757f493469 100644 --- a/sys/dev/mlx5/mlx5_core/fs_core.h +++ b/sys/dev/mlx5/mlx5_core/fs_core.h @@ -323,4 +323,9 @@ int mlx5_cmd_packet_reformat_alloc(struct mlx5_core_dev *dev, struct mlx5_pkt_reformat *pkt_reformat); void mlx5_cmd_packet_reformat_dealloc(struct mlx5_core_dev *dev, struct mlx5_pkt_reformat *pkt_reformat); +int mlx5_init_fc_stats(struct mlx5_core_dev *dev); +void mlx5_cleanup_fc_stats(struct mlx5_core_dev *dev); +void mlx5_fc_queue_stats_work(struct mlx5_core_dev *dev, + struct delayed_work *dwork, + unsigned long delay); #endif diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.c new file mode 100644 index 000000000000..f3410249e67f --- /dev/null +++ b/sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.c @@ -0,0 +1,102 @@ +/*- + * Copyright (c) 2022 NVIDIA corporation & affiliates. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include + +int mlx5_cmd_fc_bulk_alloc(struct mlx5_core_dev *dev, + enum mlx5_fc_bulk_alloc_bitmask alloc_bitmask, + u32 *id) +{ + u32 out[MLX5_ST_SZ_DW(alloc_flow_counter_out)] = {}; + u32 in[MLX5_ST_SZ_DW(alloc_flow_counter_in)] = {}; + int err; + + MLX5_SET(alloc_flow_counter_in, in, opcode, + MLX5_CMD_OP_ALLOC_FLOW_COUNTER); + MLX5_SET(alloc_flow_counter_in, in, flow_counter_bulk, alloc_bitmask); + + err = mlx5_cmd_exec_inout(dev, alloc_flow_counter, in, out); + if (!err) + *id = MLX5_GET(alloc_flow_counter_out, out, flow_counter_id); + return err; +} + +int mlx5_cmd_fc_alloc(struct mlx5_core_dev *dev, u32 *id) +{ + return mlx5_cmd_fc_bulk_alloc(dev, 0, id); +} + +int mlx5_cmd_fc_free(struct mlx5_core_dev *dev, u32 id) +{ + u32 in[MLX5_ST_SZ_DW(dealloc_flow_counter_in)] = {}; + + MLX5_SET(dealloc_flow_counter_in, in, opcode, + MLX5_CMD_OP_DEALLOC_FLOW_COUNTER); + MLX5_SET(dealloc_flow_counter_in, in, flow_counter_id, id); + return mlx5_cmd_exec_in(dev, dealloc_flow_counter, in); +} + +int mlx5_cmd_fc_query(struct mlx5_core_dev *dev, u32 id, + u64 *packets, u64 *bytes) +{ + u32 out[MLX5_ST_SZ_BYTES(query_flow_counter_out) + + MLX5_ST_SZ_BYTES(traffic_counter)] = {}; + u32 in[MLX5_ST_SZ_DW(query_flow_counter_in)] = {}; + void *stats; + int err = 0; + + MLX5_SET(query_flow_counter_in, in, opcode, + MLX5_CMD_OP_QUERY_FLOW_COUNTER); + MLX5_SET(query_flow_counter_in, in, op_mod, 0); + MLX5_SET(query_flow_counter_in, in, flow_counter_id, id); + err = mlx5_cmd_exec(dev, in, sizeof(in), out, sizeof(out)); + if (err) + return err; + + stats = MLX5_ADDR_OF(query_flow_counter_out, out, flow_statistics); + *packets = MLX5_GET64(traffic_counter, stats, packets); + *bytes = MLX5_GET64(traffic_counter, stats, octets); + return 0; +} + +int mlx5_cmd_fc_bulk_query(struct mlx5_core_dev *dev, u32 base_id, int bulk_len, + u32 *out) +{ + int outlen = mlx5_cmd_fc_get_bulk_query_out_len(bulk_len); + u32 in[MLX5_ST_SZ_DW(query_flow_counter_in)] = {}; + + MLX5_SET(query_flow_counter_in, in, opcode, + MLX5_CMD_OP_QUERY_FLOW_COUNTER); + MLX5_SET(query_flow_counter_in, in, flow_counter_id, base_id); + MLX5_SET(query_flow_counter_in, in, num_of_counters, bulk_len); + return mlx5_cmd_exec(dev, in, sizeof(in), out, outlen); +} + diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.h b/sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.h new file mode 100644 index 000000000000..3adebb3ca94c --- /dev/null +++ b/sys/dev/mlx5/mlx5_core/mlx5_fc_cmd.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023, NVIDIA Technologies. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef _MLX5_FC_CMD_ +#define _MLX5_FC_CMD_ + +#include "fs_core.h" + +int mlx5_cmd_fc_alloc(struct mlx5_core_dev *dev, u32 *id); +int mlx5_cmd_fc_bulk_alloc(struct mlx5_core_dev *dev, + enum mlx5_fc_bulk_alloc_bitmask alloc_bitmask, + u32 *id); +int mlx5_cmd_fc_free(struct mlx5_core_dev *dev, u32 id); +int mlx5_cmd_fc_query(struct mlx5_core_dev *dev, u32 id, + u64 *packets, u64 *bytes); + +int mlx5_cmd_fc_bulk_query(struct mlx5_core_dev *dev, u32 base_id, int bulk_len, + u32 *out); +static inline int mlx5_cmd_fc_get_bulk_query_out_len(int bulk_len) +{ + return MLX5_ST_SZ_BYTES(query_flow_counter_out) + + MLX5_ST_SZ_BYTES(traffic_counter) * bulk_len; +} + +#endif diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_counters.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_counters.c new file mode 100644 index 000000000000..7214c5256388 --- /dev/null +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_counters.c @@ -0,0 +1,758 @@ +/*- + * Copyright (c) 2013-2019, Mellanox Technologies, Ltd. All rights reserved. + * Copyright (c) 2022 NVIDIA corporation & affiliates. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS `AS IS' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include + +#define MLX5_FC_STATS_PERIOD msecs_to_jiffies(1000) +#define MLX5_FC_BULK_QUERY_ALLOC_PERIOD msecs_to_jiffies(180 * 1000) +/* Max number of counters to query in bulk read is 32K */ +#define MLX5_SW_MAX_COUNTERS_BULK BIT(15) +#define MLX5_INIT_COUNTERS_BULK 8 +#define MLX5_FC_POOL_MAX_THRESHOLD BIT(18) +#define MLX5_FC_POOL_USED_BUFF_RATIO 10 + +struct mlx5_fc_cache { + u64 packets; + u64 bytes; + u64 lastuse; +}; + +struct mlx5_fc { + struct list_head list; + struct llist_node addlist; + struct llist_node dellist; + + /* last{packets,bytes} members are used when calculating the delta since + * last reading + */ + u64 lastpackets; + u64 lastbytes; + + struct mlx5_fc_bulk *bulk; + u32 id; + bool aging; + + struct mlx5_fc_cache cache ____cacheline_aligned_in_smp; +}; + +static void mlx5_fc_pool_init(struct mlx5_fc_pool *fc_pool, struct mlx5_core_dev *dev); +static void mlx5_fc_pool_cleanup(struct mlx5_fc_pool *fc_pool); +static struct mlx5_fc *mlx5_fc_pool_acquire_counter(struct mlx5_fc_pool *fc_pool); +static void mlx5_fc_pool_release_counter(struct mlx5_fc_pool *fc_pool, struct mlx5_fc *fc); + +/* locking scheme: + * + * It is the responsibility of the user to prevent concurrent calls or bad + * ordering to mlx5_fc_create(), mlx5_fc_destroy() and accessing a reference + * to struct mlx5_fc. + * e.g en_tc.c is protected by RTNL lock of its caller, and will never call a + * dump (access to struct mlx5_fc) after a counter is destroyed. + * + * access to counter list: + * - create (user context) + * - mlx5_fc_create() only adds to an addlist to be used by + * mlx5_fc_stats_work(). addlist is a lockless single linked list + * that doesn't require any additional synchronization when adding single + * node. + * - spawn thread to do the actual destroy + * + * - destroy (user context) + * - add a counter to lockless dellist + * - spawn thread to do the actual del + * + * - dump (user context) + * user should not call dump after destroy + * + * - query (single thread workqueue context) + * destroy/dump - no conflict (see destroy) + * query/dump - packets and bytes might be inconsistent (since update is not + * atomic) + * query/create - no conflict (see create) + * since every create/destroy spawn the work, only after necessary time has + * elapsed, the thread will actually query the hardware. + */ + +static struct list_head *mlx5_fc_counters_lookup_next(struct mlx5_core_dev *dev, + u32 id) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + struct mlx5_fc *counter; + int next_id = id + 1; + + rcu_read_lock(); + /* skip counters that are in idr, but not yet in counters list */ + while ((counter = idr_get_next(&fc_stats->counters_idr, &next_id)) != NULL && + list_empty(&counter->list)) + next_id++; + rcu_read_unlock(); + + return counter ? &counter->list : &fc_stats->counters; +} + +static void mlx5_fc_stats_insert(struct mlx5_core_dev *dev, + struct mlx5_fc *counter) +{ + struct list_head *next = mlx5_fc_counters_lookup_next(dev, counter->id); + + list_add_tail(&counter->list, next); +} + +static void mlx5_fc_stats_remove(struct mlx5_core_dev *dev, + struct mlx5_fc *counter) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + + list_del(&counter->list); + + spin_lock(&fc_stats->counters_idr_lock); + WARN_ON(!idr_remove(&fc_stats->counters_idr, counter->id)); + spin_unlock(&fc_stats->counters_idr_lock); +} + +static int get_init_bulk_query_len(struct mlx5_core_dev *dev) +{ + return min_t(int, MLX5_INIT_COUNTERS_BULK, + (1 << MLX5_CAP_GEN(dev, log_max_flow_counter_bulk))); +} + +static int get_max_bulk_query_len(struct mlx5_core_dev *dev) +{ + return min_t(int, MLX5_SW_MAX_COUNTERS_BULK, + (1 << MLX5_CAP_GEN(dev, log_max_flow_counter_bulk))); +} + +static void update_counter_cache(int index, u32 *bulk_raw_data, + struct mlx5_fc_cache *cache) +{ + void *stats = MLX5_ADDR_OF(query_flow_counter_out, bulk_raw_data, + flow_statistics[index]); + u64 packets = MLX5_GET64(traffic_counter, stats, packets); + u64 bytes = MLX5_GET64(traffic_counter, stats, octets); + + if (cache->packets == packets) + return; + + cache->packets = packets; + cache->bytes = bytes; + cache->lastuse = jiffies; +} + +static void mlx5_fc_stats_query_counter_range(struct mlx5_core_dev *dev, + struct mlx5_fc *first, + u32 last_id) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + bool query_more_counters = (first->id <= last_id); + int cur_bulk_len = fc_stats->bulk_query_len; + u32 *data = fc_stats->bulk_query_out; + struct mlx5_fc *counter = first; + u32 bulk_base_id; + int bulk_len; + int err; + + while (query_more_counters) { + /* first id must be aligned to 4 when using bulk query */ + bulk_base_id = counter->id & ~0x3; + + /* number of counters to query inc. the last counter */ + bulk_len = min_t(int, cur_bulk_len, + ALIGN(last_id - bulk_base_id + 1, 4)); + + err = mlx5_cmd_fc_bulk_query(dev, bulk_base_id, bulk_len, + data); + if (err) { + mlx5_core_err(dev, "Error doing bulk query: %d\n", err); + return; + } + query_more_counters = false; + + list_for_each_entry_from(counter, &fc_stats->counters, list) { + int counter_index = counter->id - bulk_base_id; + struct mlx5_fc_cache *cache = &counter->cache; + + if (counter->id >= bulk_base_id + bulk_len) { + query_more_counters = true; + break; + } + + update_counter_cache(counter_index, data, cache); + } + } +} + +static void mlx5_fc_free(struct mlx5_core_dev *dev, struct mlx5_fc *counter) +{ + mlx5_cmd_fc_free(dev, counter->id); + kfree(counter); +} + +static void mlx5_fc_release(struct mlx5_core_dev *dev, struct mlx5_fc *counter) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + + if (counter->bulk) + mlx5_fc_pool_release_counter(&fc_stats->fc_pool, counter); + else + mlx5_fc_free(dev, counter); +} + +static void mlx5_fc_stats_bulk_query_size_increase(struct mlx5_core_dev *dev) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + int max_bulk_len = get_max_bulk_query_len(dev); + unsigned long now = jiffies; + u32 *bulk_query_out_tmp; + int max_out_len; + + if (fc_stats->bulk_query_alloc_failed && + time_before(now, fc_stats->next_bulk_query_alloc)) + return; + + max_out_len = mlx5_cmd_fc_get_bulk_query_out_len(max_bulk_len); + bulk_query_out_tmp = kzalloc(max_out_len, GFP_KERNEL); + if (!bulk_query_out_tmp) { + mlx5_core_warn(dev, + "Can't increase flow counters bulk query buffer size, insufficient memory, bulk_size(%d)\n", + max_bulk_len); + fc_stats->bulk_query_alloc_failed = true; + fc_stats->next_bulk_query_alloc = + now + MLX5_FC_BULK_QUERY_ALLOC_PERIOD; + return; + } + + kfree(fc_stats->bulk_query_out); + fc_stats->bulk_query_out = bulk_query_out_tmp; + fc_stats->bulk_query_len = max_bulk_len; + if (fc_stats->bulk_query_alloc_failed) { + mlx5_core_info(dev, + "Flow counters bulk query buffer size increased, bulk_size(%d)\n", + max_bulk_len); + fc_stats->bulk_query_alloc_failed = false; + } +} + +static void mlx5_fc_stats_work(struct work_struct *work) +{ + struct mlx5_core_dev *dev = container_of(work, struct mlx5_core_dev, + priv.fc_stats.work.work); + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + /* Take dellist first to ensure that counters cannot be deleted before + * they are inserted. + */ + struct llist_node *dellist = llist_del_all(&fc_stats->dellist); + struct llist_node *addlist = llist_del_all(&fc_stats->addlist); + struct mlx5_fc *counter = NULL, *last = NULL, *tmp; + unsigned long now = jiffies; + + if (addlist || !list_empty(&fc_stats->counters)) + queue_delayed_work(fc_stats->wq, &fc_stats->work, + fc_stats->sampling_interval); + + llist_for_each_entry(counter, addlist, addlist) { + mlx5_fc_stats_insert(dev, counter); + fc_stats->num_counters++; + } + + llist_for_each_entry_safe(counter, tmp, dellist, dellist) { + mlx5_fc_stats_remove(dev, counter); + + mlx5_fc_release(dev, counter); + fc_stats->num_counters--; + } + + if (fc_stats->bulk_query_len < get_max_bulk_query_len(dev) && + fc_stats->num_counters > get_init_bulk_query_len(dev)) + mlx5_fc_stats_bulk_query_size_increase(dev); + + if (time_before(now, fc_stats->next_query) || + list_empty(&fc_stats->counters)) + return; + last = list_last_entry(&fc_stats->counters, struct mlx5_fc, list); + + counter = list_first_entry(&fc_stats->counters, struct mlx5_fc, + list); + if (counter) + mlx5_fc_stats_query_counter_range(dev, counter, last->id); + + fc_stats->next_query = now + fc_stats->sampling_interval; +} + +static struct mlx5_fc *mlx5_fc_single_alloc(struct mlx5_core_dev *dev) +{ + struct mlx5_fc *counter; + int err; + + counter = kzalloc(sizeof(*counter), GFP_KERNEL); + if (!counter) + return ERR_PTR(-ENOMEM); + + err = mlx5_cmd_fc_alloc(dev, &counter->id); + if (err) { + kfree(counter); + return ERR_PTR(err); + } + + return counter; +} + +static struct mlx5_fc *mlx5_fc_acquire(struct mlx5_core_dev *dev, bool aging) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + struct mlx5_fc *counter; + + if (aging && MLX5_CAP_GEN(dev, flow_counter_bulk_alloc) != 0) { + counter = mlx5_fc_pool_acquire_counter(&fc_stats->fc_pool); + if (!IS_ERR(counter)) + return counter; + } + + return mlx5_fc_single_alloc(dev); +} + +struct mlx5_fc *mlx5_fc_create_ex(struct mlx5_core_dev *dev, bool aging) +{ + struct mlx5_fc *counter = mlx5_fc_acquire(dev, aging); + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + int err = 0; + + if (IS_ERR(counter)) + return counter; + + INIT_LIST_HEAD(&counter->list); + counter->aging = aging; + + if (aging) { + u32 id = counter->id; + + counter->cache.lastuse = jiffies; + counter->lastbytes = counter->cache.bytes; + counter->lastpackets = counter->cache.packets; + + idr_preload(GFP_KERNEL); + spin_lock(&fc_stats->counters_idr_lock); + + err = idr_alloc(&fc_stats->counters_idr, counter, id, id + 1, + GFP_NOWAIT); + + spin_unlock(&fc_stats->counters_idr_lock); + idr_preload_end(); + if (err < 0 || err != id) + goto err_out_alloc; + + llist_add(&counter->addlist, &fc_stats->addlist); + } + + return counter; + +err_out_alloc: + mlx5_fc_release(dev, counter); + return ERR_PTR(err); +} + +struct mlx5_fc *mlx5_fc_create(struct mlx5_core_dev *dev, bool aging) +{ + struct mlx5_fc *counter = mlx5_fc_create_ex(dev, aging); + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + + if (aging) + mod_delayed_work(fc_stats->wq, &fc_stats->work, 0); + return counter; +} +EXPORT_SYMBOL(mlx5_fc_create); + +u32 mlx5_fc_id(struct mlx5_fc *counter) +{ + return counter->id; +} +EXPORT_SYMBOL(mlx5_fc_id); + +void mlx5_fc_destroy(struct mlx5_core_dev *dev, struct mlx5_fc *counter) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + + if (!counter) + return; + + if (counter->aging) { + llist_add(&counter->dellist, &fc_stats->dellist); + mod_delayed_work(fc_stats->wq, &fc_stats->work, 0); + return; + } + + mlx5_fc_release(dev, counter); +} +EXPORT_SYMBOL(mlx5_fc_destroy); + +int mlx5_init_fc_stats(struct mlx5_core_dev *dev) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + int init_bulk_len; + int init_out_len; + + spin_lock_init(&fc_stats->counters_idr_lock); + idr_init(&fc_stats->counters_idr); + INIT_LIST_HEAD(&fc_stats->counters); + init_llist_head(&fc_stats->addlist); + init_llist_head(&fc_stats->dellist); + + init_bulk_len = get_init_bulk_query_len(dev); + init_out_len = mlx5_cmd_fc_get_bulk_query_out_len(init_bulk_len); + fc_stats->bulk_query_out = kzalloc(init_out_len, GFP_KERNEL); + if (!fc_stats->bulk_query_out) + return -ENOMEM; + fc_stats->bulk_query_len = init_bulk_len; + + fc_stats->wq = create_singlethread_workqueue("mlx5_fc"); + if (!fc_stats->wq) + goto err_wq_create; + + fc_stats->sampling_interval = MLX5_FC_STATS_PERIOD; + INIT_DELAYED_WORK(&fc_stats->work, mlx5_fc_stats_work); + + mlx5_fc_pool_init(&fc_stats->fc_pool, dev); + return 0; + +err_wq_create: + kfree(fc_stats->bulk_query_out); + return -ENOMEM; +} + +void mlx5_cleanup_fc_stats(struct mlx5_core_dev *dev) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + struct llist_node *tmplist; + struct mlx5_fc *counter; + struct mlx5_fc *tmp; + + if (!dev->priv.fc_stats.wq) + return; + + cancel_delayed_work_sync(&dev->priv.fc_stats.work); + destroy_workqueue(dev->priv.fc_stats.wq); + dev->priv.fc_stats.wq = NULL; + + tmplist = llist_del_all(&fc_stats->addlist); + llist_for_each_entry_safe(counter, tmp, tmplist, addlist) + mlx5_fc_release(dev, counter); + + list_for_each_entry_safe(counter, tmp, &fc_stats->counters, list) + mlx5_fc_release(dev, counter); + + mlx5_fc_pool_cleanup(&fc_stats->fc_pool); + idr_destroy(&fc_stats->counters_idr); + kfree(fc_stats->bulk_query_out); +} + +int mlx5_fc_query(struct mlx5_core_dev *dev, struct mlx5_fc *counter, + u64 *packets, u64 *bytes) +{ + return mlx5_cmd_fc_query(dev, counter->id, packets, bytes); +} +EXPORT_SYMBOL(mlx5_fc_query); + +u64 mlx5_fc_query_lastuse(struct mlx5_fc *counter) +{ + return counter->cache.lastuse; +} + +void mlx5_fc_query_cached(struct mlx5_fc *counter, + u64 *bytes, u64 *packets, u64 *lastuse) +{ + struct mlx5_fc_cache c; + + c = counter->cache; + + *bytes = c.bytes - counter->lastbytes; + *packets = c.packets - counter->lastpackets; + *lastuse = c.lastuse; + + counter->lastbytes = c.bytes; + counter->lastpackets = c.packets; +} + +void mlx5_fc_queue_stats_work(struct mlx5_core_dev *dev, + struct delayed_work *dwork, + unsigned long delay) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + + queue_delayed_work(fc_stats->wq, dwork, delay); +} + +void mlx5_fc_update_sampling_interval(struct mlx5_core_dev *dev, + unsigned long interval) +{ + struct mlx5_fc_stats *fc_stats = &dev->priv.fc_stats; + + fc_stats->sampling_interval = min_t(unsigned long, interval, + fc_stats->sampling_interval); +} + +/* Flow counter bluks */ + +struct mlx5_fc_bulk { + struct list_head pool_list; + u32 base_id; + int bulk_len; + unsigned long *bitmask; + struct mlx5_fc fcs[]; +}; + +static void mlx5_fc_init(struct mlx5_fc *counter, struct mlx5_fc_bulk *bulk, + u32 id) +{ + counter->bulk = bulk; + counter->id = id; +} + +static int mlx5_fc_bulk_get_free_fcs_amount(struct mlx5_fc_bulk *bulk) +{ + return bitmap_weight(bulk->bitmask, bulk->bulk_len); +} + +static struct mlx5_fc_bulk *mlx5_fc_bulk_create(struct mlx5_core_dev *dev) +{ + enum mlx5_fc_bulk_alloc_bitmask alloc_bitmask; + struct mlx5_fc_bulk *bulk; + int err = -ENOMEM; + int bulk_len; + u32 base_id; + int i; + + alloc_bitmask = MLX5_CAP_GEN(dev, flow_counter_bulk_alloc); + bulk_len = alloc_bitmask > 0 ? MLX5_FC_BULK_NUM_FCS(alloc_bitmask) : 1; + + bulk = kvzalloc(struct_size(bulk, fcs, bulk_len), GFP_KERNEL); + if (!bulk) + goto err_alloc_bulk; + + bulk->bitmask = kvcalloc(BITS_TO_LONGS(bulk_len), sizeof(unsigned long), + GFP_KERNEL); + if (!bulk->bitmask) + goto err_alloc_bitmask; + + err = mlx5_cmd_fc_bulk_alloc(dev, alloc_bitmask, &base_id); + if (err) + goto err_mlx5_cmd_bulk_alloc; + + bulk->base_id = base_id; + bulk->bulk_len = bulk_len; + for (i = 0; i < bulk_len; i++) { + mlx5_fc_init(&bulk->fcs[i], bulk, base_id + i); + set_bit(i, bulk->bitmask); + } + + return bulk; + +err_mlx5_cmd_bulk_alloc: + kvfree(bulk->bitmask); +err_alloc_bitmask: + kvfree(bulk); +err_alloc_bulk: + return ERR_PTR(err); +} + +static int +mlx5_fc_bulk_destroy(struct mlx5_core_dev *dev, struct mlx5_fc_bulk *bulk) +{ + if (mlx5_fc_bulk_get_free_fcs_amount(bulk) < bulk->bulk_len) { + mlx5_core_err(dev, "Freeing bulk before all counters were released\n"); + return -EBUSY; + } + + mlx5_cmd_fc_free(dev, bulk->base_id); + kvfree(bulk->bitmask); + kvfree(bulk); + + return 0; +} + +static struct mlx5_fc *mlx5_fc_bulk_acquire_fc(struct mlx5_fc_bulk *bulk) +{ + int free_fc_index = find_first_bit(bulk->bitmask, bulk->bulk_len); + + if (free_fc_index >= bulk->bulk_len) + return ERR_PTR(-ENOSPC); + + clear_bit(free_fc_index, bulk->bitmask); + return &bulk->fcs[free_fc_index]; +} + +static int mlx5_fc_bulk_release_fc(struct mlx5_fc_bulk *bulk, struct mlx5_fc *fc) +{ + int fc_index = fc->id - bulk->base_id; + + if (test_bit(fc_index, bulk->bitmask)) + return -EINVAL; + + set_bit(fc_index, bulk->bitmask); + return 0; +} + +/* Flow counters pool API */ + +static void mlx5_fc_pool_init(struct mlx5_fc_pool *fc_pool, struct mlx5_core_dev *dev) +{ + fc_pool->dev = dev; + mutex_init(&fc_pool->pool_lock); + INIT_LIST_HEAD(&fc_pool->fully_used); + INIT_LIST_HEAD(&fc_pool->partially_used); + INIT_LIST_HEAD(&fc_pool->unused); + fc_pool->available_fcs = 0; + fc_pool->used_fcs = 0; + fc_pool->threshold = 0; +} + +static void mlx5_fc_pool_cleanup(struct mlx5_fc_pool *fc_pool) +{ + struct mlx5_core_dev *dev = fc_pool->dev; + struct mlx5_fc_bulk *bulk; + struct mlx5_fc_bulk *tmp; + + list_for_each_entry_safe(bulk, tmp, &fc_pool->fully_used, pool_list) + mlx5_fc_bulk_destroy(dev, bulk); + list_for_each_entry_safe(bulk, tmp, &fc_pool->partially_used, pool_list) + mlx5_fc_bulk_destroy(dev, bulk); + list_for_each_entry_safe(bulk, tmp, &fc_pool->unused, pool_list) + mlx5_fc_bulk_destroy(dev, bulk); +} + +static void mlx5_fc_pool_update_threshold(struct mlx5_fc_pool *fc_pool) +{ + fc_pool->threshold = min_t(int, MLX5_FC_POOL_MAX_THRESHOLD, + fc_pool->used_fcs / MLX5_FC_POOL_USED_BUFF_RATIO); +} + +static struct mlx5_fc_bulk * +mlx5_fc_pool_alloc_new_bulk(struct mlx5_fc_pool *fc_pool) +{ + struct mlx5_core_dev *dev = fc_pool->dev; + struct mlx5_fc_bulk *new_bulk; + + new_bulk = mlx5_fc_bulk_create(dev); + if (!IS_ERR(new_bulk)) + fc_pool->available_fcs += new_bulk->bulk_len; + mlx5_fc_pool_update_threshold(fc_pool); + return new_bulk; +} *** 175 LINES SKIPPED *** From nobody Wed Nov 22 01:52:00 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkn0Q9Sz51W0c; Wed, 22 Nov 2023 01:52:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkm6zpYz3HqH; Wed, 22 Nov 2023 01:52:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617921; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MPPW4yFGIMOk016Ju+lmfs+s4LVfpPIVTrOyvTG6ZX0=; b=PYxeRelkPTOtjpGoSHRxZllunNaFQJqjUKREIA9BXrS36QDG7XC+e2p90x7PupqvIOiXi2 0KcP+WTAKSJPzEg+3gJ5o57PUaEbnCBfVUTfZvEV6oLPX1bGa6Gik6pscL+qjQLbZRVbx4 oCqS0qd5jZgLyBx+B4PORPO9Ufkg1haa3o//sbRv/oODT/L/1tRYrCPDfSUpm5OqxDY2Up u13SVwMcvAAXUAo+kTuqevica/H7uGP88Plm5N2B8aHN+KR23mZLJPJJePppXxTmQKvzd8 6+laP2uaF+vXYK5geBRqtjE21neYGk1qXkOBJh7N0gjVwXzp2yFn3LMWS5ksjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617921; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MPPW4yFGIMOk016Ju+lmfs+s4LVfpPIVTrOyvTG6ZX0=; b=OIEM7EDHEqo6H9YCgWX7Ryf+AEhUMUoTcZXLAGx3Ykd/1Osd3J/is2SXKeMBZmsHkVvY5Z +5O4D0tsCHZEMNic+lxaZo45EjqnzCsOfHWe3yO8YVCFyUwPqTpCBvudmxjEo3FIGJikSC lsv//l75ZiFiARuvf69uZ2LGjeJdew8ifExNc/2AzytpNxUf/VUgAsjw8ihfmgZ39Z5vHR XeWl1j4AyhZ5UeS5bKyqbMzO2pfV93tTeiAqkaseV5BrDYSYhxjrLF7YhBA1Ofty08dTSl JsFro78aKwE6FgvnT/Hv7TAL/AclEGpWsiDVOSc1E0HlK5hBpuT/wCUmOe0E8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617921; a=rsa-sha256; cv=none; b=hFTml9sw2L+6kGSp3CYqEj+fWXID+/XZ3S8VWn3PWWXxhTQRnjptBFNd1kAy4WgeetmQqO DLfPS3LD4X9BOMfhKE5hC+JZqg8oDuAvQnYUMAwuPW36T6fBkq1nXCCd2KZhW8YXEU1CRK aAMkBMJPNy+6fcqQI3GELKgr7XALtfDfmueVPqY0HMemiobvqn/SVrQfoY4k44aeO2+LMt 4RzW7d4n+n2z+2DzBXc5wn68uRcYIUK7OIDsM0Kkd7cvRv72KIvozgMVQRX46Tlfi9H61E 92iqVu+sTP/ce5UZJZLnOXl0lKjC5zsgPUexJUz/mJM2Q3L1nIo3gHnAG6hMkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkm65qGz10Dp; Wed, 22 Nov 2023 01:52:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1q0Tr079317; Wed, 22 Nov 2023 01:52:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1q0Yk079303; Wed, 22 Nov 2023 01:52:00 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:52:00 GMT Message-Id: <202311220152.3AM1q0Yk079303@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: e073fccf1456 - stable/14 - mlx5: add ability to attach flow counter to steering rule List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e073fccf14569f61b312078d0cee9a6f6eb17a37 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e073fccf14569f61b312078d0cee9a6f6eb17a37 commit e073fccf14569f61b312078d0cee9a6f6eb17a37 Author: Mark Bloch AuthorDate: 2023-02-22 05:44:56 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5: add ability to attach flow counter to steering rule (cherry picked from commit ad744541311bfddd74ea3c5d49d52a4c366b9762) --- sys/dev/mlx5/fs.h | 2 ++ sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c | 19 +++++++++++++++++-- sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 3 +++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index 65d38b9ee67a..8aaa0e201f4a 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -94,6 +94,7 @@ enum mlx5_flow_act_actions { MLX5_FLOW_ACT_ACTIONS_FLOW_TAG = 1 << 0, MLX5_FLOW_ACT_ACTIONS_MODIFY_HDR = 1 << 1, MLX5_FLOW_ACT_ACTIONS_PACKET_REFORMAT = 1 << 2, + MLX5_FLOW_ACT_ACTIONS_COUNT = 1 << 3, }; enum MLX5_FLOW_ACT_FLAGS { @@ -106,6 +107,7 @@ struct mlx5_flow_act { u32 flow_tag; struct mlx5_modify_hdr *modify_hdr; struct mlx5_pkt_reformat *pkt_reformat; + struct mlx5_fc *counter; }; #define FT_NAME_STR_SZ 20 diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c index 8032d1a632e5..0f827f0e69d3 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_cmd.c @@ -182,6 +182,7 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, int modify_mask = 0; int atomic_mod_cap; u32 prm_action = 0; + int count_list = 0; if (sw_action != MLX5_FLOW_RULE_FWD_ACTION_DEST) dest_size = 0; @@ -195,8 +196,13 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, if (sw_action & MLX5_FLOW_RULE_FWD_ACTION_DEST) prm_action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; + if (flow_act->actions & MLX5_FLOW_ACT_ACTIONS_COUNT) { + prm_action |= MLX5_FLOW_CONTEXT_ACTION_COUNT; + count_list = 1; + } + inlen = MLX5_ST_SZ_BYTES(set_fte_in) + - dest_size * MLX5_ST_SZ_BYTES(dest_format_struct); + (dest_size + count_list) * MLX5_ST_SZ_BYTES(dest_format_struct); if (!dev) return -EINVAL; @@ -248,8 +254,10 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, in_match_value = MLX5_ADDR_OF(flow_context, in_flow_context, match_value); memcpy(in_match_value, match_val, MLX5_ST_SZ_BYTES(fte_match_param)); + + in_dests = MLX5_ADDR_OF(flow_context, in_flow_context, destination); + if (dest_size) { - in_dests = MLX5_ADDR_OF(flow_context, in_flow_context, destination); list_for_each_entry(dst, dests, base.list) { unsigned int id; @@ -265,6 +273,13 @@ int mlx5_cmd_fs_set_fte(struct mlx5_core_dev *dev, } } + if (flow_act->actions & MLX5_FLOW_ACT_ACTIONS_COUNT) { + MLX5_SET(dest_format_struct, in_dests, destination_id, + mlx5_fc_id(flow_act->counter)); + in_dests += MLX5_ST_SZ_BYTES(dest_format_struct); + MLX5_SET(flow_context, in_flow_context, flow_counter_list_size, 1); + } + MLX5_SET(flow_context, in_flow_context, action, prm_action); err = mlx5_cmd_exec(dev, in, inlen, out, sizeof(out)); if (!err) diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 91543d3878ef..5966a73c58d1 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -1788,6 +1788,9 @@ static bool check_conflicting_actions(const struct mlx5_flow_act *act1, if (action1 & MLX5_FLOW_ACT_ACTIONS_PACKET_REFORMAT) return true; + if (action1 & MLX5_FLOW_ACT_ACTIONS_COUNT) + return true; + return false; } From nobody Wed Nov 22 01:52:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkp2bF0z51WRX; Wed, 22 Nov 2023 01:52:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkp0zdhz3Ht5; Wed, 22 Nov 2023 01:52:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5MZs0E4GsBcMkQBd5dLyM9mkuda6deT95mSV0dZtsy8=; b=w24qEsDfaAcMVRFHBWhrlDOm4PZL/cX3+7ZkXCZV2746LK8NhIroblseJL2248I+Z1wN8C 0J2mYo1sq6pYrcpoR+y34q4ZFNTQzK08cPAn6o+2GvKgpNqRUF+8SRgnU8091BBhezQxCy FdFAOhe8Im3t+Eia/aq5fWWasqDpy1vCRQWuhOlEsS7KVa+5+jUoiIcVTHT8bWEAIE6Bcb 0S9DRntDYFX+ua2lmRB4F9uvstrI8xfARpUYcQ1pSDXiurdwjvu3s3sG55cJGqll6rn50E GIbxs3qbKhiXciW4fHoGdSXG6DtxOiWJBVC6F6Zhlp5OjzB9+qyHtyV1mAAHdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617922; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5MZs0E4GsBcMkQBd5dLyM9mkuda6deT95mSV0dZtsy8=; b=UuDlyj9f8XPYtjhU5YZ++bNp2Ds4jHRwPN0uYvJQPptRuBivZe5R+XLP4GEK1aPjxYnlC+ 05mgFx8HITJAyfGVzStm5eMlkAVm7cEbQ7p+GKW8Zh8Pu8960vUZpOZiMDIkrA4okOOHN5 ph+rPnYRVFPAOURJPA2oD+bK64IxFMMX0i+eTg02TgVQ1ootzTQGM5UWu+meKehZqaKg9u fKO7kJuJEmjjeQj7WaQsA5NuxrDjt/VEXBLeDb/uZk/rOph+a4CtyPejI3lHapalZbe7Zz v4OkezJsisDbVs95QbqWjgV0h3fJeZFynlQVAYOeoCi0rj2LNVFA7QdGDqirjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617922; a=rsa-sha256; cv=none; b=NslVsHJXtgeh4p4Lpb+XMtgErHr1ptS81mucdvRX8Zs819qOSI822xUZByJ8IDtNigIZ7X njEQgIZr1DVSCw2ynWtKNPI73htma6WYMmUrv9zpfs8VFvjpqD9lA4P9hlApBqhaq/ZJf7 wVPGgxP0x1AZJE4llXVBbtCL1iphIawUgGf8lDHqIAWgHNTGD9K8+pWkJP3Y5NOcOsDMQs 1TwrC2vQSmeYV0OBxPUfTW4J/CuQRIJXvPSMV6ClQCGcGcKAkEZZV1vu3M/4qiP+9T+SUB TR2+D3e1/ageo+Ans633X8zZzyuD1M1UjKc9/VrafztNEQ73JzNGCuwJGZfkBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkp05qCzyns; Wed, 22 Nov 2023 01:52:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1q1Sk080749; Wed, 22 Nov 2023 01:52:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1q1Oj080732; Wed, 22 Nov 2023 01:52:01 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:52:01 GMT Message-Id: <202311220152.3AM1q1Oj080732@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: d82618894153 - stable/14 - mlx5ib: adjust for the mlx5_create_auto_grouped_flow_table() interface change List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d82618894153d0f53b272a0c76fd180658efbb41 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d82618894153d0f53b272a0c76fd180658efbb41 commit d82618894153d0f53b272a0c76fd180658efbb41 Author: Konstantin Belousov AuthorDate: 2023-11-13 00:16:51 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5ib: adjust for the mlx5_create_auto_grouped_flow_table() interface change (cherry picked from commit b94ef2a3bcbb369d85b276a45504d42f2f2cd369) --- sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c index b4c9115bc420..027f8ded3faf 100644 --- a/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c +++ b/sys/dev/mlx5/mlx5_ib/mlx5_ib_main.c @@ -2157,7 +2157,8 @@ static struct mlx5_ib_flow_prio *get_flow_table(struct mlx5_ib_dev *dev, if (!ft) { ft = mlx5_create_auto_grouped_flow_table(ns, priority, "bypass", num_entries, - num_groups); + num_groups, + 0); if (!IS_ERR(ft)) { prio->refcount = 0; From nobody Wed Nov 22 01:52:03 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkq44z2z51WB5; Wed, 22 Nov 2023 01:52:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkq1ymtz3HZP; Wed, 22 Nov 2023 01:52:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617923; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lxv5bl/g6F/0n8Mov7ljJWp6B+9HHI0rIi5A7JMikoI=; b=m6sL7PtjghLBl/dq1MVFScrJdkLVw94c4zzV/GnG8pFIJQZ5VUORKBSR2Ssz23X08gJwU0 oOf9yOV/uF8/qVxfLa9jJBvKfv5KsayFcdpIeYP5zT7TN9YbdEjqkrAQ5uz3NyMcgmLb1p t2bkhAatu3xfSu5dtgxoxanWW2N/2smNyN73Pw7waaw9wl9zCtQdZs3mfQZG6+53fxUdzP En2NGSR3DHjjS2m8XUSwSAUXL5Sy5nRGjpRvOnRrJaFY6sXfLWQba6caayD1xSU+LHpMPV fcGEPejXjQaUn1OZw9PBCyYyS9t708PK4MBsl7+s9MXTvlqpJD2LQhjurSVrmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617923; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lxv5bl/g6F/0n8Mov7ljJWp6B+9HHI0rIi5A7JMikoI=; b=Fo4lJND/aV6Sb1rGKQiAzNC8wdjc8cYXg94L/XpL9exkRABF5kAhWSYICJCSQXOSOsVHKM Hj9u6ARto/GwGE+IdshHpRQQN4RnaH8G2iZETf+cVk4pD4Y092ExD8AyKhe9DyaySwwYtq 2s9UP06pUAYb0rjYc0z61ApoFRB2Oh8fy3JPUuz5uDHA7FjPAU5QvWXBH8StxsjV+ldA8v dy8l/eyEkOUVBKz+aQLDzBSo3ntHObHMp3zqygEeq3FaG+nh7CQrjZe7s4rXF2VYlh82Fn p8CgiAoxbCqRD87xfjSp5Npq+1eeo32e5zQDEBAvFwt2URwCSwG8/MC8v6Ykdw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617923; a=rsa-sha256; cv=none; b=ZcH+UtyTn4+jOGLcf5OgxgTLylom0o/d3+cgYJpW+mJurGjkRQRekNDPVOmS8+vMMIKgO0 vytp6IfY8rN91hxnAyz01mlL3iUa6sxnvMHGc9woXTo1r7nbkGm5kCXMM6gw3JfNxN4fSv /OtythHMIdUFA5Pzqgcd1Uq00TP6bjgaCZ520BuBmUdMoR9U6+zecdnGNwahUW3IEsCquk f24o+usqzsmmh1huBPsm0wzEHvGaEoXrn54hd0iwMPNUm7fzRWzmu03Dwoh0wIa2DjfKXV 26ms9lr0jvemdEUAOAV1aw6RGZgnosd16MrF9rPjPKvHSe6FKCRdi0Ce1Zl9kQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkq0rmQz10Dr; Wed, 22 Nov 2023 01:52:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1q3bG080982; Wed, 22 Nov 2023 01:52:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1q3qu080979; Wed, 22 Nov 2023 01:52:03 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:52:03 GMT Message-Id: <202311220152.3AM1q3qu080979@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: 588203bfbdc4 - stable/14 - mlx5: Introduce new destination type TABLE_TYPE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 588203bfbdc46073dc8b4515d31a6a9efe3d9a3c Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=588203bfbdc46073dc8b4515d31a6a9efe3d9a3c commit 588203bfbdc46073dc8b4515d31a6a9efe3d9a3c Author: Patrisious Haddad AuthorDate: 2023-04-04 06:01:24 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5: Introduce new destination type TABLE_TYPE (cherry picked from commit 7b959396ca6fae5635260131eedb9bc19f2726a3) --- sys/dev/mlx5/device.h | 4 +++ sys/dev/mlx5/mlx5_core/mlx5_main.c | 43 +++++++++++++++++++++++++++++ sys/dev/mlx5/mlx5_ifc.h | 55 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 100 insertions(+), 2 deletions(-) diff --git a/sys/dev/mlx5/device.h b/sys/dev/mlx5/device.h index 11afc68efdf2..4b7cf8686794 100644 --- a/sys/dev/mlx5/device.h +++ b/sys/dev/mlx5/device.h @@ -993,6 +993,7 @@ enum mlx5_cap_type { MLX5_CAP_DEC, MLX5_CAP_TLS, MLX5_CAP_DEV_EVENT = 0x14, + MLX5_CAP_GENERAL_2 = 0x20, /* NUM OF CAP Types */ MLX5_CAP_NUM }; @@ -1031,6 +1032,9 @@ enum mlx5_mcam_feature_groups { #define MLX5_CAP_GEN_MAX(mdev, cap) \ MLX5_GET(cmd_hca_cap, mdev->hca_caps_max[MLX5_CAP_GENERAL], cap) +#define MLX5_CAP_GEN_2(mdev, cap) \ + MLX5_GET(cmd_hca_cap_2, mdev->hca_caps_cur[MLX5_CAP_GENERAL_2], cap) + #define MLX5_CAP_ETH(mdev, cap) \ MLX5_GET(per_protocol_networking_offload_caps,\ mdev->hca_caps_cur[MLX5_CAP_ETHERNET_OFFLOADS], cap) diff --git a/sys/dev/mlx5/mlx5_core/mlx5_main.c b/sys/dev/mlx5/mlx5_core/mlx5_main.c index df38a41a8be0..efaf726e19e5 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_main.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_main.c @@ -559,6 +559,43 @@ static int handle_hca_cap_atomic(struct mlx5_core_dev *dev) return err; } +static int handle_hca_cap_2(struct mlx5_core_dev *dev) +{ + void *set_ctx; + void *set_hca_cap; + int set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in); + int err; + + if (MLX5_CAP_GEN_MAX(dev, hca_cap_2)) { + err = mlx5_core_get_caps(dev, MLX5_CAP_GENERAL_2); + if (err) + return err; + } else { + return 0; + } + + /* To be added if sw_vhca support was added */ + /*if (!MLX5_CAP_GEN_2_MAX(dev, sw_vhca_id_valid) || + !(dev->priv.sw_vhca_id > 0)) + return 0;*/ + + set_ctx = kzalloc(set_sz, GFP_KERNEL); + if (!set_ctx) + return -ENOMEM; + + MLX5_SET(set_hca_cap_in, set_ctx, op_mod, + MLX5_CAP_GENERAL_2 << 1); + set_hca_cap = MLX5_ADDR_OF(set_hca_cap_in, set_ctx, capability); + memcpy(set_hca_cap, dev->hca_caps_cur[MLX5_CAP_GENERAL_2], + MLX5_ST_SZ_BYTES(cmd_hca_cap_2)); + //MLX5_SET(cmd_hca_cap_2, set_hca_cap, sw_vhca_id_valid, 1); + + err = set_caps(dev, set_ctx, set_sz); + + kfree(set_ctx); + return err; +} + static int set_hca_ctrl(struct mlx5_core_dev *dev) { struct mlx5_reg_host_endianess he_in; @@ -1139,6 +1176,12 @@ static int mlx5_load_one(struct mlx5_core_dev *dev, struct mlx5_priv *priv, goto reclaim_boot_pages; } + err = handle_hca_cap_2(dev); + if (err) { + mlx5_core_err(dev, "handle_hca_cap_2 failed\n"); + goto reclaim_boot_pages; + } + err = mlx5_satisfy_startup_pages(dev, 0); if (err) { mlx5_core_err(dev, "failed to allocate init pages\n"); diff --git a/sys/dev/mlx5/mlx5_ifc.h b/sys/dev/mlx5/mlx5_ifc.h index 7e76112cbec9..a10cb60dbfdd 100644 --- a/sys/dev/mlx5/mlx5_ifc.h +++ b/sys/dev/mlx5/mlx5_ifc.h @@ -302,6 +302,11 @@ enum { MLX5_CMD_OP_GENERAL_END = 0xd00, }; +enum { + MLX5_FT_NIC_RX_2_NIC_RX_RDMA = BIT(0), + MLX5_FT_NIC_TX_RDMA_2_NIC_TX = BIT(1), +}; + enum { MLX5_ICMD_CMDS_OPCODE_ICMD_OPCODE_QUERY_FW_INFO = 0x8007, MLX5_ICMD_CMDS_OPCODE_ICMD_QUERY_CAPABILITY = 0x8400, @@ -524,7 +529,9 @@ struct mlx5_ifc_dest_format_struct_bits { u8 destination_type[0x8]; u8 destination_id[0x18]; - u8 reserved_0[0x20]; + u8 reserved_0[0x8]; + u8 destination_table_type[0x8]; + u8 reserved_at_1[0x10]; }; struct mlx5_ifc_ipv4_layout_bits { @@ -1144,7 +1151,12 @@ enum { }; struct mlx5_ifc_cmd_hca_cap_bits { - u8 reserved_0[0x80]; + u8 reserved_0[0x20]; + + u8 hca_cap_2[0x1]; + u8 reserved_at_21[0x1f]; + + u8 reserved_at_40[0x40]; u8 log_max_srq_sz[0x8]; u8 log_max_qp_sz[0x8]; @@ -1439,10 +1451,48 @@ struct mlx5_ifc_cmd_hca_cap_bits { u8 reserved_at_7c0[0x40]; }; +struct mlx5_ifc_cmd_hca_cap_2_bits { + u8 reserved_at_0[0x80]; + + u8 migratable[0x1]; + u8 reserved_at_81[0x1f]; + + u8 max_reformat_insert_size[0x8]; + u8 max_reformat_insert_offset[0x8]; + u8 max_reformat_remove_size[0x8]; + u8 max_reformat_remove_offset[0x8]; + + u8 reserved_at_c0[0x8]; + u8 migration_multi_load[0x1]; + u8 migration_tracking_state[0x1]; + u8 reserved_at_ca[0x16]; + + u8 reserved_at_e0[0xc0]; + + u8 flow_table_type_2_type[0x8]; + u8 reserved_at_1a8[0x3]; + u8 log_min_mkey_entity_size[0x5]; + u8 reserved_at_1b0[0x10]; + + u8 reserved_at_1c0[0x60]; + + u8 reserved_at_220[0x1]; + u8 sw_vhca_id_valid[0x1]; + u8 sw_vhca_id[0xe]; + u8 reserved_at_230[0x10]; + + u8 reserved_at_240[0xb]; + u8 ts_cqe_metadata_size2wqe_counter[0x5]; + u8 reserved_at_250[0x10]; + + u8 reserved_at_260[0x5a0]; +}; + enum mlx5_flow_destination_type { MLX5_FLOW_DESTINATION_TYPE_VPORT = 0x0, MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE = 0x1, MLX5_FLOW_DESTINATION_TYPE_TIR = 0x2, + MLX5_FLOW_DESTINATION_TYPE_TABLE_TYPE = 0xA, }; union mlx5_ifc_dest_format_struct_flow_counter_list_auto_bits { @@ -2937,6 +2987,7 @@ struct mlx5_ifc_hca_vport_context_bits { union mlx5_ifc_hca_cap_union_bits { struct mlx5_ifc_cmd_hca_cap_bits cmd_hca_cap; + struct mlx5_ifc_cmd_hca_cap_2_bits cmd_hca_cap_2; struct mlx5_ifc_odp_cap_bits odp_cap; struct mlx5_ifc_atomic_caps_bits atomic_caps; struct mlx5_ifc_roce_cap_bits roce_cap; From nobody Wed Nov 22 01:52:04 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkkr3Shlz51W0j; Wed, 22 Nov 2023 01:52:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkkr2xGTz3Hyt; Wed, 22 Nov 2023 01:52:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617924; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SY3IRIG1LvmMRgms95rkJqrGjKy6Lw5jSxW2+06G7cY=; b=brF3/zEv4TxoZebYw8WGYcoGyQ1hgxegCxZ735yKpXcpsGjz0lER+ijkKrpH7a42BxRvnU RSKlrdheBsuLPwjHmFc70jqVJ/0rKac8pIRUKW4NVenbwxnQOKTIYBNWDh5e+iRuUWycHj d+yawRFeqTpTtjzNnaT5L+HZlFslLpD8mh0i6qBH24v99d4IC+BwTiUI+M9tpkN3aWXxcZ zrOuHbnsx8WuUwkQ3Y2w6pAM5a2Mdfy/Z1YW0VIv7BhnE+4qVIf8WRSe9gqq4SCztdwJn+ J10DbyOkc7PDt4rK4dDQMLR9bKOIdTmOrEwZl1yKS/hP3qiF5WkilPGGjPI4FQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617924; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SY3IRIG1LvmMRgms95rkJqrGjKy6Lw5jSxW2+06G7cY=; b=x4j44srgpfcyu0tJKF1MDK4ccv+ScETdmdY87ewrDUnSu9USVPEJF5ifvj1xHRO3WdgLbf N0fsXyaAftIKZ9pnHMtTBn44WyLhUxx+/Oo1O1NDtMlXSfTqjvxZK7wzH3Aw9BFZyU0eVQ B7eb7AWVBwTaxb7c4GLXb5XhsE1LpOXJqcoSJH+Zxkhtw2YFaHYSyozi5AuPx3QKlGlXG1 y3YtF/+JMZ1PCAT1h2I/mVgYVoFYTfQKx0KsVM/C/cew6/CXjqcWD8mF2SU8+CBn6y5KjJ mS6tQhw4qEoOeOW1qa9ut9cNWBUXiQaAHSsQJnD0u+GAxv2H6i/E6h2mXin/Lg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617924; a=rsa-sha256; cv=none; b=c+6UAMtWTHcDWXYstSirftb9HZnd/xdf6sZvra+QqoUtpbGpgAG8nxBzcgRliXfTgNJUo7 q3eOoLhLPm05/tcaihukdlLC/tj9g1Dxo/GRDQgwpEbT1f6ZUo+wviXAViHG7Aqnk3ABPN KWxpMeW8RmooCXYP0BLmrExXzXf5ou0Sm1C+1wG6XE8rBlz9ADxcuhSTSWAJECoHiBv4pZ Vm4SVEWv5pzx4qGdxU6I49APqzqpRwBeo6tkz5F8GeF3jVAgz6yq7oaGbeM9f68Sb3B1S3 oX8LmMm0Ao3405n7Q0fq+v7WwWAZPAlYKKLILYmZnIHlAh3vA3DEcj2ECKGo0w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkkr1x8pz10Dt; Wed, 22 Nov 2023 01:52:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1q42r081045; Wed, 22 Nov 2023 01:52:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1q4SL081041; Wed, 22 Nov 2023 01:52:04 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:52:04 GMT Message-Id: <202311220152.3AM1q4SL081041@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: 8377dd1c9aeb - stable/14 - mlx5core: add linux/bitops.h include for mlx5_ifc.h use of 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8377dd1c9aeb7f4e42ec2679bb8913379d9c77e7 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8377dd1c9aeb7f4e42ec2679bb8913379d9c77e7 commit 8377dd1c9aeb7f4e42ec2679bb8913379d9c77e7 Author: Konstantin Belousov AuthorDate: 2023-11-13 00:17:09 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:28 +0000 mlx5core: add linux/bitops.h include for mlx5_ifc.h use of BIT() (cherry picked from commit 97beac79edf450851474934199e504e6244a7116) --- sys/dev/mlx5/fs.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/mlx5/fs.h b/sys/dev/mlx5/fs.h index 8aaa0e201f4a..8107726bc76a 100644 --- a/sys/dev/mlx5/fs.h +++ b/sys/dev/mlx5/fs.h @@ -27,6 +27,7 @@ #define _MLX5_FS_ #include +#include #include #include From nobody Wed Nov 22 01:52:05 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZkks4WW9z51W0q; Wed, 22 Nov 2023 01:52: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZkks3ZCkz3Hm4; Wed, 22 Nov 2023 01:52:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uUYCic9OZuvmtwrEI+psZSwCU8zDkB2GdUD9OWtBBoE=; b=ck40LLpz/srJj8Btq5EW14fNCGTm+dzWZpm6PZlh+DK4SxNlntxB//g7WWU2ej27kLQMAV 8QBbGPxkOKzF+r0mH2Z4R8I4wyc2sa70CaYmKQpAf582sxy1R+R04I4ySF7DVPiDlb9yaG ojUZBzESlWNQRk1WQ3gLyRFEpYY3LybkuFZhJ5lt+wxv3CGTPeBAGrWCI2xwAnwVlc9Okn /Nay5eT1k6WBnTzlIRMKM4IOAPXzW5mEYfg5baisPGLH8LZ1jWIybUDK5ZKRTDtXe5BEMj 4JlWvGc1j5FAWobpzp4iQO9qzfTf3dv5O0lZyLAO9PCn42oHLmtX33qtwjuI2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700617925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uUYCic9OZuvmtwrEI+psZSwCU8zDkB2GdUD9OWtBBoE=; b=h/m7S8Az/nOxMSRqJqsx4P8b3vcsTu/2a84uHdVWMAlbYclMBRePt6g/Qj9+qAqbaQ/yQB gM63UhLudWFRw44uA4LOMRy3U33l5K1zRbGpZJ+L6hV6PgayIzKb42jEwHHqMhrUAngcKN Cwn/FcKdPh/d0S9TbN+1JLHv/x+OZU/Fj/wdbhL3Npt5ftAg/GNM+Y6XO4rvPSIxhXPfLw k3WLbCLFH8FCGwDdLpM7py+O/If39RVMvok5G5ULEbYaKDiwjZe0QvIKTQa0zkW6dLw4Kt N8Wcx0jJBI5RUa2grVtFhQfwMy0AZMNLbnyqxOb7KNcZlkVbYXvEJNXjs+Ndcg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700617925; a=rsa-sha256; cv=none; b=xTL7PS8k/vAqmEygHz6jK9VFNshNUr0bDr5HaGI2BDfTB61IwX43q1Sr2357jnXqxj20tu VHeQnZF16xfOXwPKKg/5jug99OoTcpE0IWNlNL2/BX4a13bCsBijiW5c5dcz+Dc+qf6DaV w10yOpa2Uc3bkumcECPUynJLpUvQFGJEHqEtan80Xr+agB4LAiKn3WRfGlX/fc1P/tIZ63 mlplaKWjjwvDEUGXGHIljEo2nNzyPX2sPznXtXZDqjiNG/MS6NQWam8utnwtXZKJkZEOv0 S7uCcufrHRRzjkBZxrrnB20yORJ4h6Ot1S2GOXhTafvot7Jk/qwHqDzKkANKqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZkks2g8Gz10HS; Wed, 22 Nov 2023 01:52:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM1q5YD081102; Wed, 22 Nov 2023 01:52:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM1q56w081099; Wed, 22 Nov 2023 01:52:05 GMT (envelope-from git) Date: Wed, 22 Nov 2023 01:52:05 GMT Message-Id: <202311220152.3AM1q56w081099@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: 22584860f2c6 - stable/14 - mlx5_core: add new files to the static files list List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 22584860f2c693b97e7c1e4d2fb1f9d05f41bdfb Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=22584860f2c693b97e7c1e4d2fb1f9d05f41bdfb commit 22584860f2c693b97e7c1e4d2fb1f9d05f41bdfb Author: Konstantin Belousov AuthorDate: 2023-11-13 00:09:57 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-22 01:40:29 +0000 mlx5_core: add new files to the static files list (cherry picked from commit 6eda49b7bfd3a5e013bef54262dddf9a54a3be07) --- sys/conf/files | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/conf/files b/sys/conf/files index 62eb54a0b765..f737f6ca6352 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -4903,8 +4903,12 @@ dev/mlx5/mlx5_core/mlx5_eq.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_eswitch.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_fc_cmd.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fs_cmd.c optional mlx5 pci \ compile-with "${OFED_C}" +dev/mlx5/mlx5_core/mlx5_fs_counters.c optional mlx5 pci \ + compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fs_tcp.c optional mlx5 pci \ compile-with "${OFED_C}" dev/mlx5/mlx5_core/mlx5_fs_tree.c optional mlx5 pci \ From nobody Wed Nov 22 08:00:39 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZtw811rrz524tL; Wed, 22 Nov 2023 08:00:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZtw80X25z3DZc; Wed, 22 Nov 2023 08:00:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700640040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yKHFDw0vrFC9++u6NkSijKp49M+r3MjLzHNVubVjWJw=; b=rF2rYVuQeF0euHCka35srXcSltBbR7k2kP+RFKxJUyeOM7VKIMSxhySmXhmHWATMakuw0A BUXal1FzMRqm9v+8VvfNLcW8bQQLB9si34iyawIN41/YRdN1ZIIiZhyDSLIjPEzWzUe4E1 6Nw1s/erJIVhihXY+GnuPPuQc3OtnQqlkG4m9UueeB6kc93llHll8vpdg0dEoGZ48AcOoO C6Z3SukQo3jHqqdcej1J+P3REOJc+Sr7KXY3bWDAbcMedIKn2eWXiLn7qAaVkjYZ5RPCtJ olpAICXGei8DqzRlAT0zN1a0VZySWJeFU7sAZrMRCG8JK6YET8VQm59N5BdIcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700640040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yKHFDw0vrFC9++u6NkSijKp49M+r3MjLzHNVubVjWJw=; b=v9d1AwfV5CB3MeplylD0oy3a72oLBGVgNoC4Zh3FvuViSMsSPB1ciKH6bv/igbC4tY3Ham G2N1jE+gcAOSQr+ppdR2x1Yz0bjXQmjuIY/Qjfu9/YpY7Q+0eGtXjuRKNP+XK1ZmqvRhlx JYc910Cih11SbuI9FrRi4pXLdELZT6fWUHkhJKQMttEucRWtMqRvsvAGIOXh8+wHS8EK0e 63NEWRok6H+8EKXY8R97p5cb8FlVlY23PiwWtWDeTrGXKJMzB3B7qlDsleWt7dRj63zQo7 PG/akuKXN0wGj8cAn1OdSchiWQECKvLoSRRClQ8fNXATVYJEC8C4+AuTpWJdVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700640040; a=rsa-sha256; cv=none; b=n1WcEI2fGpbUyy70RKC9ejNUqjzJ7A9OaV9DtvCku1Fi6IqhE+uT1YA4vuEydE3jR2WTs6 G5l65PIpYF90aJIUROR9JhuEOif9qUll3+9OJJ2u+w4ArmSUUCs0Bo+W8cXIP5XbUaYGtA a1ZI0jD1yI8cxACgxqr0FQR5IC0l33tudeuBFuXLLz2BEXOglKjazKJ/sM9vTrmcKh0I8M sEhhxJtrOTslx/8Uu4E6fRc8tcZflGeQqKsl5PDRoBGowzF4p5JQU74LRPOcv0lRWBGcet rMRM9+3yiTPV4Zauc8FPx2jinHlpHDR968Pxdx+hBkXBRpf3O/LdhjkxwcnCYw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZtw76l6Nz18lq; Wed, 22 Nov 2023 08:00:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM80dg4094096; Wed, 22 Nov 2023 08:00:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM80dRx094093; Wed, 22 Nov 2023 08:00:39 GMT (envelope-from git) Date: Wed, 22 Nov 2023 08:00:39 GMT Message-Id: <202311220800.3AM80dRx094093@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Martin Matuska Subject: git: ac83e415ef08 - stable/14 - mlx5_core: fix deadlock when using RXTLS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ac83e415ef083da400509c6fa434ee59cfe9668f Auto-Submitted: auto-generated The branch stable/14 has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=ac83e415ef083da400509c6fa434ee59cfe9668f commit ac83e415ef083da400509c6fa434ee59cfe9668f Author: Martin Matuska AuthorDate: 2023-11-13 13:29:27 +0000 Commit: Martin Matuska CommitDate: 2023-11-22 08:00:23 +0000 mlx5_core: fix deadlock when using RXTLS If removing a node of type FS_TYPE_FLOW_DEST we lock the flow group too late. This can lead to a deadlock with fs_add_dst_fg(). PR: 274715 Reviewed by: kib Tested by: mm Differential Revision: https://reviews.freebsd.org/D42368 (cherry picked from commit a592812327deaf69ab226afc5c8a01af43dc03c2) --- sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c index 5966a73c58d1..b76ea7b60582 100644 --- a/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c +++ b/sys/dev/mlx5/mlx5_core/mlx5_fs_tree.c @@ -229,14 +229,19 @@ static void __fs_remove_node(struct kref *kref) { struct fs_base *node = container_of(kref, struct fs_base, refcount); - if (node->parent) + if (node->parent) { + if (node->type == FS_TYPE_FLOW_DEST) + mutex_lock(&node->parent->parent->lock); mutex_lock(&node->parent->lock); + } mutex_lock(&node->lock); cmd_remove_node(node); mutex_unlock(&node->lock); complete(&node->complete); if (node->parent) { mutex_unlock(&node->parent->lock); + if (node->type == FS_TYPE_FLOW_DEST) + mutex_unlock(&node->parent->parent->lock); _fs_put(node->parent, _fs_remove_node, false); } } @@ -1719,7 +1724,7 @@ static void fs_del_dst(struct mlx5_flow_rule *dst) fs_get_parent(fte, dst); fs_get_parent(fg, fte); - mutex_lock(&fg->base.lock); + sx_assert(&fg->base.lock.sx, SX_XLOCKED); memcpy(match_value, fte->val, sizeof(fte->val)); /* ft can't be changed as fg is locked */ fs_get_parent(ft, fg); @@ -1739,7 +1744,6 @@ static void fs_del_dst(struct mlx5_flow_rule *dst) } call_to_del_rule_notifiers(dst, fte); err: - mutex_unlock(&fg->base.lock); kvfree(match_value); } From nobody Wed Nov 22 08:26:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZvV44KXCz526vc; Wed, 22 Nov 2023 08:26:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZvV416cyz3HgF; Wed, 22 Nov 2023 08:26:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700641596; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HRj1mt86CnH0ZMa1fzGIoGI1uTRctBXWzFvYcN3okRk=; b=dF625n109Ca55iZLhDQFLNwQmgJ01+5vbF6jBzPexHg9NT1lGDiVnp2cf3AiPJD/r27Mov CYbbL9zjqf7H4ioF6g4Yeq+OQy3AnlQ0Y7fouxiQos0SPyhlzzlDD1p3vDFJOMa8TP7Q6D nylAItbv/kRfJFJRbvEMj3OdmMHKEFKDVlqzHWskO+TvwErW0oEYDO0uoGlk49fuCQHu/e F7moYD6ahtebxeAkjGYP5a3ebEvgQhoWx0szkTXx5uYFHgZ480x4WbcgIN7kkZCkYK2FBu eVKWAmJmtMzHe4xXLKNcfG89yF5BZJzmAMTs4u+++GPUZQKXWddtawKgHgGqSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700641596; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HRj1mt86CnH0ZMa1fzGIoGI1uTRctBXWzFvYcN3okRk=; b=BKGMGROjZAHIHXgiM6VQNlwjFr48gDWw/SeIqAf9MXge6i/ER5IXskdSMeF3zPdonJNLzZ jXhExwsY2zaB8Bn7n9YJZHVwnn99lxeX8C1R/P+3Z27GLRBnNG25YewiSNYrB1jNhZmX76 5tGm96nx4EW1WVmrAOttp1Kl6eCQlnc1ZkwqawGY3ovauuI/g4+glHMEW3u81kWeZE7Ey5 Z3eOCVlljuvOQjwojimFgbmT2DsQkERFZ14R6BK3HDDmEIVTj+EYQHyGZP6NN5ZoUoR5mp WE2GUgp0LQW5N/eMbJBBPTVnRDKIyY6i8NWsoSEfe9rapWRKlMrNQWNql7elQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700641596; a=rsa-sha256; cv=none; b=uK6olB2KfBr8oQo2nyss3aKXW5+AlYit1JlYpOqBMrENZR02N+5bPOQtLxOeccT4UCiiVt IKoVFSB3fdnBRwkO+kraoQ0jdsjdUkLDqgDVGbGe5bmc7xiAuHVwByf5wRC5ZjeNULJWkv ToXM4KbqZmAzNsSHK9rEp5ODh+bsu7QF+0eJkcjM/VE7lbulUh9gqeigwOpjY03ONSQE6d KUZtoRIYdjn3E4Vc30xFZTEuSNvRCBkadzmELVkj0ftaz6QaOV2K9vpdS1Py44XuoPoFF3 qWuab8yP9xap83ffZtYSirdA3u3MSlcX4AEJP2k76POfKin9r+wzQdOHcdp17Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZvV409fyz19YG; Wed, 22 Nov 2023 08:26:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM8QZ0j034773; Wed, 22 Nov 2023 08:26:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM8QZVM034771; Wed, 22 Nov 2023 08:26:35 GMT (envelope-from git) Date: Wed, 22 Nov 2023 08:26:35 GMT Message-Id: <202311220826.3AM8QZVM034771@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: 0c0d524e5e6c - stable/14 - SEE ALSO section improvements for tuning(7), tunefs(8) and fsck_ffs(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0c0d524e5e6cf5deafb24c6be2c3e6461272e055 Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=0c0d524e5e6cf5deafb24c6be2c3e6461272e055 commit 0c0d524e5e6cf5deafb24c6be2c3e6461272e055 Author: Gordon Bergling AuthorDate: 2023-11-17 18:24:22 +0000 Commit: Gordon Bergling CommitDate: 2023-11-22 08:26:23 +0000 SEE ALSO section improvements for tuning(7), tunefs(8) and fsck_ffs(8) cross-reference ffs(7) in fsck_ffs(8) cross-reference ffs(7) and tuning(7) in tunefs(8) cross-reference ffs(7) in tuning(7) PR: 263433 Reviewed by: bcr Differential Revision: https://reviews.freebsd.org/D42631 (cherry picked from commit 115459be3132079f38b848749d20c972fa823fbb) --- sbin/fsck_ffs/fsck_ffs.8 | 3 ++- sbin/tunefs/tunefs.8 | 4 +++- share/man/man7/tuning.7 | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/sbin/fsck_ffs/fsck_ffs.8 b/sbin/fsck_ffs/fsck_ffs.8 index f100686e70e8..8288216c0681 100644 --- a/sbin/fsck_ffs/fsck_ffs.8 +++ b/sbin/fsck_ffs/fsck_ffs.8 @@ -28,7 +28,7 @@ .\" .\" @(#)fsck.8 8.4 (Berkeley) 5/9/95 .\" -.Dd May 3, 2019 +.Dd November 17, 2023 .Dt FSCK_FFS 8 .Os .Sh NAME @@ -425,6 +425,7 @@ are fully enumerated and explained in Appendix A of .Sh SEE ALSO .Xr fs 5 , .Xr fstab 5 , +.Xr ffs 7 , .Xr fsck 8 , .Xr fsdb 8 , .Xr newfs 8 , diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8 index bda39462a272..19059e335834 100644 --- a/sbin/tunefs/tunefs.8 +++ b/sbin/tunefs/tunefs.8 @@ -27,7 +27,7 @@ .\" .\" @(#)tunefs.8 8.2 (Berkeley) 12/11/93 .\" -.Dd August 16, 2022 +.Dd November 17, 2023 .Dt TUNEFS 8 .Os .Sh NAME @@ -218,6 +218,8 @@ specified mount point. .El .Sh SEE ALSO .Xr fs 5 , +.Xr ffs 7 , +.Xr tuning 7 , .Xr dumpfs 8 , .Xr gjournal 8 , .Xr growfs 8 , diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7 index 0756598e79e2..f04500d0f0dc 100644 --- a/share/man/man7/tuning.7 +++ b/share/man/man7/tuning.7 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 11, 2022 +.Dd November 17, 2023 .Dt TUNING 7 .Os .Sh NAME @@ -698,6 +698,7 @@ over services you export from your box (web services, email). .Xr login.conf 5 , .Xr rc.conf 5 , .Xr sysctl.conf 5 , +.Xr ffs 7 , .Xr firewall 7 , .Xr hier 7 , .Xr ports 7 , From nobody Wed Nov 22 08:26:53 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZvVQ1LtLz526jr; Wed, 22 Nov 2023 08:26:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZvVQ0bpYz3J1X; Wed, 22 Nov 2023 08:26:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700641614; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qS+NvfGbMN/l51aafQlgYqN8htlyQDdJBKA3DmD4seI=; b=SEj7pTuE1LwGGcwLUqvMi8XgIg14VQOOjdP9oBrl8OpIkTZ7oLN7grDP8zJP5rttf0aVLd 9tjeEBb7Q3lPyqbmF6zykMYL/j7l6R4scxwyyI3oRWvQwkoMkGmHgymcLPg4kPQnplxfT2 RkgGSqx4cK/md4JdPVR0ab66qeJ8oHhD+cOXecmTSPbFdbnfJv2qJTrQwLmIxc0ETZDET5 mlsHgtLH07Z+mSY8SvMckZCKEzpQdViP7oGH5Sn/KigSxV4Z/AS3mSkpQU/fkMZmIEGH0/ kYyx+SrsuXTMQpMLLwQYRx2m6eKXlfDatZsr9Gl4PZuW2cOiPQXKWz7I+rB1mQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700641614; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qS+NvfGbMN/l51aafQlgYqN8htlyQDdJBKA3DmD4seI=; b=luNbPaQZ1xDDqsSQsbojtypSuFo7WVqbqKDXsbHkhMyufK1IVxpsyhqeZrqhxla8q8Nmdb 1grnOwn+4RzbSI6P3MCDeH1p+21HpUqz4uMzINJ5r/m1YgE3x3nLnFI7pWftSWCrepFtM5 LTxZg9sLWU/76jQbVqSmCkIgnoCKjnRYpUYlYMyUJBfV50v1X8OdYKMvEgA4EhM/Xu6OiK teCRBrmWT86dHfOvzoQUXkdCNFfGQY9CtFnZDAQ9JVGWwuLurOW0tM/m4RqTz2c+BJ+zkm KAwFn/Np34IZ+gGEIT4w9NzIOE09g9YYnrjzwvM2Fge1UDvFD8cBOSODhJRA2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700641614; a=rsa-sha256; cv=none; b=HfjxDeYTk/9H23c6Ai+pNECxej5Bnf9GOSxLBF1IF8iK3chOrk+8YG0C+w09b+wK4z2Umg yWtWWtsN1hROj/nIMcsKUO4DkPQMnuziP6iFpQRdJb+YEyPdelu2M0fQ2tr6YwGPqB/JPm nCmC6XHHTCjRD+/uZu54BGPljve/GT6eCMU4JzgmYiL9n4hpVhwJjxeTp2GR+dNlTOKbWs kBnliDFGdoOrQLDbxdBdGD5ijJpNGKDB706IyfpfWYXX7Ruawus0fIS1K9yqfPpwQ3Iedw AFJYCj08xBDiOCmSi/ZClhennH1VD0nmHW9CNQ0VkQSYuCMn2mK6q6iIHz6ZnQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZvVP6qQQz19Pj; Wed, 22 Nov 2023 08:26:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AM8Qr4q034952; Wed, 22 Nov 2023 08:26:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AM8Qr6e034949; Wed, 22 Nov 2023 08:26:53 GMT (envelope-from git) Date: Wed, 22 Nov 2023 08:26:53 GMT Message-Id: <202311220826.3AM8Qr6e034949@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: 234ee2a34b6f - stable/13 - SEE ALSO section improvements for tuning(7), tunefs(8) and fsck_ffs(8) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 234ee2a34b6fb66b4ea798b7a57926ac0b9d2596 Auto-Submitted: auto-generated The branch stable/13 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=234ee2a34b6fb66b4ea798b7a57926ac0b9d2596 commit 234ee2a34b6fb66b4ea798b7a57926ac0b9d2596 Author: Gordon Bergling AuthorDate: 2023-11-17 18:24:22 +0000 Commit: Gordon Bergling CommitDate: 2023-11-22 08:26:43 +0000 SEE ALSO section improvements for tuning(7), tunefs(8) and fsck_ffs(8) cross-reference ffs(7) in fsck_ffs(8) cross-reference ffs(7) and tuning(7) in tunefs(8) cross-reference ffs(7) in tuning(7) PR: 263433 Reviewed by: bcr Differential Revision: https://reviews.freebsd.org/D42631 (cherry picked from commit 115459be3132079f38b848749d20c972fa823fbb) --- sbin/fsck_ffs/fsck_ffs.8 | 3 ++- sbin/tunefs/tunefs.8 | 4 +++- share/man/man7/tuning.7 | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/sbin/fsck_ffs/fsck_ffs.8 b/sbin/fsck_ffs/fsck_ffs.8 index f100686e70e8..8288216c0681 100644 --- a/sbin/fsck_ffs/fsck_ffs.8 +++ b/sbin/fsck_ffs/fsck_ffs.8 @@ -28,7 +28,7 @@ .\" .\" @(#)fsck.8 8.4 (Berkeley) 5/9/95 .\" -.Dd May 3, 2019 +.Dd November 17, 2023 .Dt FSCK_FFS 8 .Os .Sh NAME @@ -425,6 +425,7 @@ are fully enumerated and explained in Appendix A of .Sh SEE ALSO .Xr fs 5 , .Xr fstab 5 , +.Xr ffs 7 , .Xr fsck 8 , .Xr fsdb 8 , .Xr newfs 8 , diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8 index bda39462a272..19059e335834 100644 --- a/sbin/tunefs/tunefs.8 +++ b/sbin/tunefs/tunefs.8 @@ -27,7 +27,7 @@ .\" .\" @(#)tunefs.8 8.2 (Berkeley) 12/11/93 .\" -.Dd August 16, 2022 +.Dd November 17, 2023 .Dt TUNEFS 8 .Os .Sh NAME @@ -218,6 +218,8 @@ specified mount point. .El .Sh SEE ALSO .Xr fs 5 , +.Xr ffs 7 , +.Xr tuning 7 , .Xr dumpfs 8 , .Xr gjournal 8 , .Xr growfs 8 , diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7 index 0756598e79e2..f04500d0f0dc 100644 --- a/share/man/man7/tuning.7 +++ b/share/man/man7/tuning.7 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 11, 2022 +.Dd November 17, 2023 .Dt TUNING 7 .Os .Sh NAME @@ -698,6 +698,7 @@ over services you export from your box (web services, email). .Xr login.conf 5 , .Xr rc.conf 5 , .Xr sysctl.conf 5 , +.Xr ffs 7 , .Xr firewall 7 , .Xr hier 7 , .Xr ports 7 , From nobody Wed Nov 22 11:45:40 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SZzvn0rm4z51Rcn; Wed, 22 Nov 2023 11:45:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SZzvn0SDsz3f25; Wed, 22 Nov 2023 11:45:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700653541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ai0dMXv1oGXOEDKQbtAZ1zHvcpNvCN5BJwEeVNUi/XY=; b=CpsgltsViQcFzJki9N/+3PAjoubQXPbFFWOnlTxzHNUIzi7ibUOG7L1YLy/UUqLoDbb84v MKQmh6iAN9Ksey2YoQmXVmiWqUe9spY3YeYZp3GHKEXfDTcSscQXkDRepvSDt7Iy7qv9s7 QWlIfbBFlPgM2SY7uI7S8lsAgULDTvJN3orPvQRL/zxeefes6AtKJKw4Vi92rKMM5p35Fw kdl3/qwOJNyLVIfQVf/H9T+/s67POnOaBsES4emppFeKVs5Cl3V1sJCFjwZTdGcUzgUfyf lZa+XDaioTQZYM9ncj96MTEE4Z6XQdJzMrsKEwlz/16XU1kM6qeTSXADGd4TdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700653541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ai0dMXv1oGXOEDKQbtAZ1zHvcpNvCN5BJwEeVNUi/XY=; b=mGsuUIgg7RGymRP9VbreIck80rHlOo93c3bxI84DpMcJ9Zx5PKuZqufAUjq090g3w0yPBR WZAnumWMtsYGhHmDXkrdKt4ia4QqYXqlwDMHCjY1gObapuFVGwYnIgpG87mwyjJW6ZtHDO vQVVuWLyia7uZiQJEKmB7Xb6zfntiiEBa8ae8EN9JIaNpgY/9Oh2i3CHqd0d8USYnYaXds aoJD5DZ00oKsD4Cuvjc48a/qMxuGpZgsv8fD1PqiW3029Th8Sf/rfH8zRy5A1zhDGRcHzh 7yHaCKUJ8aucuG8hu33tyhVh8IQEr595bcxkJQ3JFGHnyLGLp6NEkzJorTdz6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700653541; a=rsa-sha256; cv=none; b=FQ9owaQHfFPLLXlWogyjEO+CcO06Ge2652FQ5Ssae+qW5Bcexgy2hL6b/RfzRr28WS7msH 2y9sJINnmm2ys9c02dl+WM0bDp1cxP535Hf88UCFELvtG14VhupHBHlzuqJIGUvfody1q1 deTxlcldNQWu/BIemTsNsYHhnCr7vTJ10Zb05Av9rnsq54cQvKn60bukLESBXjenwJFbR3 6YMvOVH6U9MzLe2OlPROPeGQnrFZ/YF4FtAlZGyMyRR480M3ps6VMv+EDv0ppcPEATnKHi YwPKg5w6N4rUtVXVBaUaF8eMIOP+gkXy86kfMsSxnNdS8sMDyL/YQyYZwXXX5Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SZzvm6RN3z2Kb; Wed, 22 Nov 2023 11:45:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AMBjex5067817; Wed, 22 Nov 2023 11:45:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AMBjexn067814; Wed, 22 Nov 2023 11:45:40 GMT (envelope-from git) Date: Wed, 22 Nov 2023 11:45:40 GMT Message-Id: <202311221145.3AMBjexn067814@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Martin Matuska Subject: git: f7f5c2419ea7 - stable/14 - zfs: merge openzfs/zfs@55dd24c4c (zfs-2.2-release) into stable/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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mm X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f7f5c2419ea7e66460fe33bc6a5588842fd5312c Auto-Submitted: auto-generated The branch stable/14 has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=f7f5c2419ea7e66460fe33bc6a5588842fd5312c commit f7f5c2419ea7e66460fe33bc6a5588842fd5312c Merge: 0c0d524e5e6c 55dd24c4ccee Author: Martin Matuska AuthorDate: 2023-11-22 11:43:59 +0000 Commit: Martin Matuska CommitDate: 2023-11-22 11:43:59 +0000 zfs: merge openzfs/zfs@55dd24c4c (zfs-2.2-release) into stable/14 OpenZFS release 2.2.1 Notable upstream pull request merges: #14378 6d693e20a Large sync writes perform worse with slog #15243 78fd79eac Add zfs_prepare_disk script for disk firmware install #15356 b76724ae4 FreeBSD: Improve taskq wrapper #15360 f9a9aea12 Add mutex_enter_interruptible() for interruptible sleeping IOCTLs #15371 e82e68400 DMU: Do not pre-read holes during write #15390 79f7de575 Remove lock from dsl_pool_need_dirty_delay() #15397 6e41aca51 Trust ARC_BUF_SHARED() more #15402 eaa62d995 Properly pad struct tx_cpu to cache line #15405 1cc1bf4fa Set spa_ccw_fail_time=0 when expanding a vdev #15416 edebca5df FreeBSD: taskq: Remove unused declaration #15451 7aef672b7 Read prefetched buffers from L2ARC #15452 bd7a02c25 Tune zio buffer caches and their alignments #15456 3ec4ea68d Unify arc_prune_async() code #15465 459c99ff2 Fix block cloning between unencrypted and encrypted datasets #15478 76663fe37 Fix accounting error for pending sync IO ops in zpool iostat #15529 87e9e8286 Add a tunable to disable BRT support Obtained from: OpenZFS OpenZFS commit: 55dd24c4ccee2da61d5396289ef560f9b7bc6a68 OpenZFS tag: zfs-2.2.1 cddl/lib/libzfs/Makefile | 2 +- cddl/usr.libexec/Makefile | 1 + cddl/usr.libexec/zfs_prepare_disk/Makefile | 19 ++ sys/contrib/openzfs/.gitignore | 1 + sys/contrib/openzfs/META | 4 +- sys/contrib/openzfs/cmd/arc_summary | 2 +- sys/contrib/openzfs/cmd/zed/agents/zfs_mod.c | 96 ++++++++-- .../openzfs/cmd/zpool/compatibility.d/grub2 | 9 + .../cmd/zpool/compatibility.d/openzfsonosx-1.8.1 | 1 - sys/contrib/openzfs/cmd/zpool/zpool_iter.c | 33 +--- sys/contrib/openzfs/cmd/zpool/zpool_util.h | 4 + sys/contrib/openzfs/cmd/zpool/zpool_vdev.c | 43 ++++- sys/contrib/openzfs/config/Rules.am | 1 + sys/contrib/openzfs/config/kernel-fsync-bdev.m4 | 36 ++++ .../openzfs/config/kernel-generic_fillattr.m4 | 39 ++++- sys/contrib/openzfs/config/kernel-inode-times.m4 | 43 +++++ sys/contrib/openzfs/config/kernel.m4 | 2 + sys/contrib/openzfs/configure.ac | 1 + .../contrib/debian/{changelog => changelog.in} | 6 + sys/contrib/openzfs/contrib/debian/control | 1 - .../contrib/debian/openzfs-zfsutils.install | 2 + sys/contrib/openzfs/include/libzfs.h | 9 + sys/contrib/openzfs/include/libzutil.h | 2 +- .../openzfs/include/os/freebsd/spl/sys/mutex.h | 1 + .../openzfs/include/os/freebsd/spl/sys/taskq.h | 18 +- .../include/os/linux/kernel/linux/vfs_compat.h | 6 + .../openzfs/include/os/linux/spl/sys/kmem_cache.h | 2 +- .../openzfs/include/os/linux/spl/sys/mutex.h | 21 ++- sys/contrib/openzfs/include/os/linux/spl/sys/uio.h | 8 - .../include/os/linux/zfs/sys/zfs_vfsops_os.h | 2 + .../include/os/linux/zfs/sys/zfs_vnops_os.h | 5 + sys/contrib/openzfs/include/os/linux/zfs/sys/zpl.h | 13 +- sys/contrib/openzfs/include/sys/arc.h | 2 +- sys/contrib/openzfs/include/sys/arc_impl.h | 1 - sys/contrib/openzfs/include/sys/spa.h | 2 +- sys/contrib/openzfs/include/sys/txg_impl.h | 3 +- sys/contrib/openzfs/include/sys/vdev_impl.h | 5 +- sys/contrib/openzfs/include/sys/vdev_raidz_impl.h | 4 +- sys/contrib/openzfs/include/sys/zfs_context.h | 2 + sys/contrib/openzfs/lib/libzfs/libzfs.abi | 4 + sys/contrib/openzfs/lib/libzfs/libzfs_util.c | 193 +++++++++++++++++++++ sys/contrib/openzfs/lib/libzpool/kernel.c | 9 + .../lib/libzutil/os/linux/zutil_import_os.c | 5 +- sys/contrib/openzfs/man/Makefile.am | 1 + sys/contrib/openzfs/man/man4/zfs.4 | 64 ++++++- sys/contrib/openzfs/man/man7/zpool-features.7 | 9 + sys/contrib/openzfs/man/man8/.gitignore | 1 + sys/contrib/openzfs/man/man8/zfs_prepare_disk.8.in | 70 ++++++++ sys/contrib/openzfs/module/Kbuild.in | 4 + .../openzfs/module/os/freebsd/spl/spl_taskq.c | 76 ++++---- sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c | 62 ------- .../openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 34 +++- sys/contrib/openzfs/module/os/linux/zfs/arc_os.c | 51 ------ .../openzfs/module/os/linux/zfs/zfs_ctldir.c | 2 +- sys/contrib/openzfs/module/os/linux/zfs/zfs_uio.c | 29 ---- .../openzfs/module/os/linux/zfs/zfs_vfsops.c | 2 +- .../openzfs/module/os/linux/zfs/zfs_vnops_os.c | 29 +++- .../openzfs/module/os/linux/zfs/zfs_znode.c | 18 +- .../openzfs/module/os/linux/zfs/zpl_ctldir.c | 11 +- .../openzfs/module/os/linux/zfs/zpl_file_range.c | 5 + .../openzfs/module/os/linux/zfs/zpl_inode.c | 6 +- .../openzfs/module/os/linux/zfs/zpl_super.c | 2 +- .../openzfs/module/os/linux/zfs/zpl_xattr.c | 7 +- sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c | 18 ++ sys/contrib/openzfs/module/zfs/arc.c | 98 ++++++++--- sys/contrib/openzfs/module/zfs/dmu_tx.c | 8 +- sys/contrib/openzfs/module/zfs/dsl_pool.c | 14 +- sys/contrib/openzfs/module/zfs/spa_config.c | 17 +- sys/contrib/openzfs/module/zfs/vdev_queue.c | 7 +- sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 5 +- sys/contrib/openzfs/module/zfs/zil.c | 2 +- sys/contrib/openzfs/module/zfs/zio.c | 89 +++++----- sys/contrib/openzfs/rpm/generic/zfs-dkms.spec.in | 90 +++++++++- sys/contrib/openzfs/scripts/Makefile.am | 2 + sys/contrib/openzfs/scripts/zfs_prepare_disk | 17 ++ sys/contrib/openzfs/tests/runfiles/linux.run | 8 +- .../openzfs/tests/test-runner/bin/zts-report.py.in | 1 + .../openzfs/tests/zfs-tests/include/commands.cfg | 9 +- .../openzfs/tests/zfs-tests/include/libtest.shlib | 21 +++ .../openzfs/tests/zfs-tests/include/tunables.cfg | 3 +- .../openzfs/tests/zfs-tests/tests/Makefile.am | 1 + .../tests/functional/block_cloning/cleanup.ksh | 4 + .../tests/functional/block_cloning/setup.ksh | 5 + .../zpool_create/zpool_create_features_007_pos.ksh | 10 +- .../tests/functional/cli_user/misc/misc.cfg | 4 +- .../functional/fault/auto_replace_001_pos.ksh | 41 ++++- .../functional/fault/auto_replace_002_pos.ksh | 192 ++++++++++++++++++++ .../tests/functional/procfs/pool_state.ksh | 6 +- sys/modules/zfs/zfs_config.h | 23 ++- sys/modules/zfs/zfs_gitrev.h | 2 +- 90 files changed, 1411 insertions(+), 432 deletions(-) diff --cc cddl/lib/libzfs/Makefile index 6f8965e4c14a,000000000000..ee57c30cc6ca mode 100644,000000..100644 --- a/cddl/lib/libzfs/Makefile +++ b/cddl/lib/libzfs/Makefile @@@ -1,107 -1,0 +1,107 @@@ + +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zcommon +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs/os/freebsd +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libshare +.PATH: ${SRCTOP}/sys/contrib/openzfs/include +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd/lib + +PACKAGE= zfs +LIB= zfs +LIBADD= \ + avl \ + bsdxml \ + crypto \ + geom \ + m \ + md \ + nvpair \ + pthread \ + rt \ + umem \ + util \ + uutil \ + z \ + zfs_core \ + zutil + +INCS= libzfs.h +USER_C = \ + libzfs_changelist.c \ + libzfs_config.c \ + libzfs_crypto.c \ + libzfs_dataset.c \ + libzfs_diff.c \ + libzfs_import.c \ + libzfs_iter.c \ + libzfs_mount.c \ + libzfs_pool.c \ + libzfs_sendrecv.c \ + libzfs_status.c \ + libzfs_util.c + +# FreeBSD +USER_C += \ + libzfs_compat.c \ + libzfs_zmount.c + +# libshare +USER_C += \ + libshare.c \ + nfs.c \ + os/freebsd/nfs.c \ + os/freebsd/smb.c + +KERNEL_C = \ + cityhash.c \ + zfeature_common.c \ + zfs_comutil.c \ + zfs_deleg.c \ + zfs_fletcher.c \ + zfs_fletcher_superscalar.c \ + zfs_fletcher_superscalar4.c \ + zfs_namecheck.c \ + zfs_prop.c \ + zpool_prop.c \ + zprop_common.c + + +ARCH_C = +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +ARCH_C += zfs_fletcher_intel.c \ + zfs_fletcher_sse.c +CFLAGS += -DHAVE_SSE2 +.endif +.if ${MACHINE_ARCH} == "amd64" +ARCH_C += zfs_fletcher_avx512.c +CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F +.endif +.if ${MACHINE_CPUARCH} == "aarch64" +ARCH_C += zfs_fletcher_aarch64_neon.c +.endif + +SRCS= $(USER_C) $(KERNEL_C) $(ARCH_C) + +WARNS?= 2 +SHLIB_MAJOR= 4 +CSTD= c99 +CFLAGS+= -DIN_BASE +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include/os/freebsd +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libshare +CFLAGS+= -I${SRCTOP}/sys/contrib/ck/include +CFLAGS+= -I${SRCTOP}/sys +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h +CFLAGS+= -DHAVE_ISSETUGID +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h +CFLAGS+= -DSYSCONFDIR=\"/etc\" +CFLAGS+= -DPKGDATADIR=\"/usr/share/zfs\" - ++CFLAGS+= -DZFSEXECDIR=\"${LIBEXECDIR}/zfs\" + +.include diff --cc cddl/usr.libexec/Makefile index 692f16d33717,000000000000..9eb4872b69d5 mode 100644,000000..100644 --- a/cddl/usr.libexec/Makefile +++ b/cddl/usr.libexec/Makefile @@@ -1,9 -1,0 +1,10 @@@ + +.include + +SUBDIR.${MK_ZFS}+= \ ++ zfs_prepare_disk \ + zpool_influxdb + +SUBDIR_PARALLEL= + +.include diff --cc cddl/usr.libexec/zfs_prepare_disk/Makefile index 000000000000,000000000000..0efb4452829d new file mode 100644 --- /dev/null +++ b/cddl/usr.libexec/zfs_prepare_disk/Makefile @@@ -1,0 -1,0 +1,19 @@@ ++ZFSTOP= ${SRCTOP}/sys/contrib/openzfs ++ ++.PATH: ${ZFSTOP}/scripts ++ ++PACKAGE= zfs ++SCRIPTS= zfs_prepare_disk ++SCRIPTSDIR= ${LIBEXECDIR}/zfs ++ ++.PATH: ${ZFSTOP}/man/man8 ++MAN= zfs_prepare_disk.8 ++ ++CLEANFILES+= zfs_prepare_disk.8 ++ ++zfs_prepare_disk.8: zfs_prepare_disk.8.in ++ sed ${MAN_SUB} ${.ALLSRC} >${.TARGET} ++ ++MAN_SUB+= -e 's|@zfsexecdir@|${LIBEXECDIR}/zfs|g' ++ ++.include diff --cc sys/contrib/openzfs/.gitignore index 47d17ae16d34,000000000000..a2cb92dd5406 mode 100644,000000..100644 --- a/sys/contrib/openzfs/.gitignore +++ b/sys/contrib/openzfs/.gitignore @@@ -1,89 -1,0 +1,90 @@@ +# +# This is the top-level .gitignore file: +# ignore everything except a list of allowed files. +# +# This is not the place for entries that are specific to +# a subdirectory. Instead add those files to the +# .gitignore file in that subdirectory. +# +# N.B. +# Please use 'git ls-files -i --exclude-standard' +# command after changing this file, to see if there are +# any tracked files which get ignored after the change. + +* + +!.github +!cmd +!config +!contrib +!etc +!include +!lib +!man +!module +!rpm +!scripts +!tests +!udev + +!.github/** +!cmd/** +!config/** +!contrib/** +!etc/** +!include/** +!lib/** +!man/** +!module/** +!rpm/** +!scripts/** +!tests/** +!udev/** + +!.editorconfig +!.cirrus.yml +!.gitignore +!.gitmodules +!.mailmap +!AUTHORS +!autogen.sh +!CODE_OF_CONDUCT.md +!configure.ac +!copy-builtin +!COPYRIGHT +!LICENSE +!Makefile.am +!META +!NEWS +!NOTICE +!README.md +!RELEASES.md +!TEST +!zfs.release.in + +# +# Normal rules +# +*.[oa] +*.o.ur-safe +*.lo +*.la +*.mod.c +*~ +*.swp +*.gcno +*.gcda +*.pyc +*.pyo +.deps +.libs +.dirstamp +.DS_Store +modules.order +Makefile +Makefile.in ++changelog +*.patch +*.orig +*.tmp +*.log diff --cc sys/contrib/openzfs/config/kernel-fsync-bdev.m4 index 000000000000,c47e236f705f..c47e236f705f mode 000000,100644..100644 --- a/sys/contrib/openzfs/config/kernel-fsync-bdev.m4 +++ b/sys/contrib/openzfs/config/kernel-fsync-bdev.m4 diff --cc sys/contrib/openzfs/man/man8/zfs_prepare_disk.8.in index 000000000000,2a741531e415..2a741531e415 mode 000000,100644..100644 --- a/sys/contrib/openzfs/man/man8/zfs_prepare_disk.8.in +++ b/sys/contrib/openzfs/man/man8/zfs_prepare_disk.8.in diff --cc sys/contrib/openzfs/scripts/zfs_prepare_disk index 000000000000,02aa9f8a7728..02aa9f8a7728 mode 000000,100755..100755 --- a/sys/contrib/openzfs/scripts/zfs_prepare_disk +++ b/sys/contrib/openzfs/scripts/zfs_prepare_disk diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_replace_002_pos.ksh index 000000000000,2259e604317b..2259e604317b mode 000000,100755..100755 --- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_replace_002_pos.ksh +++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/fault/auto_replace_002_pos.ksh diff --cc sys/modules/zfs/zfs_config.h index 9c423a3e3e36,000000000000..02f5116f3eb3 mode 100644,000000..100644 --- a/sys/modules/zfs/zfs_config.h +++ b/sys/modules/zfs/zfs_config.h @@@ -1,1134 -1,0 +1,1149 @@@ +/* + */ + +/* zfs_config.h. Generated from zfs_config.h.in by configure. */ +/* zfs_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* bio_end_io_t wants 1 arg */ +/* #undef HAVE_1ARG_BIO_END_IO_T */ + +/* lookup_bdev() wants 1 arg */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ + +/* submit_bio() wants 1 arg */ +/* #undef HAVE_1ARG_SUBMIT_BIO */ + +/* bdi_setup_and_register() wants 2 args */ +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 2 args */ +/* #undef HAVE_2ARGS_VFS_GETATTR */ + +/* zlib_deflate_workspacesize() wants 2 args */ +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ + +/* bdi_setup_and_register() wants 3 args */ +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */ + +/* vfs_getattr wants 3 args */ +/* #undef HAVE_3ARGS_VFS_GETATTR */ + +/* vfs_getattr wants 4 args */ +/* #undef HAVE_4ARGS_VFS_GETATTR */ + +/* kernel has access_ok with 'type' parameter */ +/* #undef HAVE_ACCESS_OK_TYPE */ + +/* posix_acl has refcount_t */ +/* #undef HAVE_ACL_REFCOUNT */ + +/* add_disk() returns int */ +/* #undef HAVE_ADD_DISK_RET */ + +/* Define if host toolchain supports AES */ +#define HAVE_AES 1 + +/* Define if you have [rt] */ +#define HAVE_AIO_H 1 + +#ifdef __amd64__ +#ifndef RESCUE +/* Define if host toolchain supports AVX */ +#define HAVE_AVX 1 +#endif + +/* Define if host toolchain supports AVX2 */ +#define HAVE_AVX2 1 + +/* Define if host toolchain supports AVX512BW */ +#define HAVE_AVX512BW 1 + +/* Define if host toolchain supports AVX512CD */ +#define HAVE_AVX512CD 1 + +/* Define if host toolchain supports AVX512DQ */ +#define HAVE_AVX512DQ 1 + +/* Define if host toolchain supports AVX512ER */ +#define HAVE_AVX512ER 1 + +/* Define if host toolchain supports AVX512F */ +#define HAVE_AVX512F 1 + +/* Define if host toolchain supports AVX512IFMA */ +#define HAVE_AVX512IFMA 1 + +/* Define if host toolchain supports AVX512PF */ +#define HAVE_AVX512PF 1 + +/* Define if host toolchain supports AVX512VBMI */ +#define HAVE_AVX512VBMI 1 + +/* Define if host toolchain supports AVX512VL */ +#define HAVE_AVX512VL 1 +#endif + +/* bdevname() is available */ +/* #undef HAVE_BDEVNAME */ + +/* bdev_check_media_change() exists */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_63 */ + +/* bdev_*_io_acct() available */ +/* #undef HAVE_BDEV_IO_ACCT_OLD */ + +/* bdev_kobj() exists */ +/* #undef HAVE_BDEV_KOBJ */ + +/* bdev_max_discard_sectors() is available */ +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ + +/* bdev_max_secure_erase_sectors() is available */ +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ + +/* block_device_operations->submit_bio() returns void */ +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ + +/* bdev_whole() is available */ +/* #undef HAVE_BDEV_WHOLE */ + +/* bio_alloc() takes 4 arguments */ +/* #undef HAVE_BIO_ALLOC_4ARG */ + +/* bio->bi_bdev->bd_disk exists */ +/* #undef HAVE_BIO_BDEV_DISK */ + +/* bio->bi_opf is defined */ +/* #undef HAVE_BIO_BI_OPF */ + +/* bio->bi_status exists */ +/* #undef HAVE_BIO_BI_STATUS */ + +/* bio has bi_iter */ +/* #undef HAVE_BIO_BVEC_ITER */ + +/* bio_*_io_acct() available */ +/* #undef HAVE_BIO_IO_ACCT */ + +/* bio_max_segs() is implemented */ +/* #undef HAVE_BIO_MAX_SEGS */ + +/* bio_set_dev() is available */ +/* #undef HAVE_BIO_SET_DEV */ + +/* bio_set_dev() GPL-only */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ + +/* bio_set_dev() is a macro */ +/* #undef HAVE_BIO_SET_DEV_MACRO */ + +/* bio_set_op_attrs is available */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ + +/* blkdev_get_by_path() exists and takes 4 args */ +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */ + +/* blkdev_get_by_path() handles ERESTARTSYS */ +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ + +/* blkdev_issue_discard() is available */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD */ + +/* blkdev_issue_secure_erase() is available */ +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ + +/* blkdev_put() accepts void* as arg 2 */ +/* #undef HAVE_BLKDEV_PUT_HOLDER */ + +/* blkdev_reread_part() exists */ +/* #undef HAVE_BLKDEV_REREAD_PART */ + +/* blkg_tryget() is available */ +/* #undef HAVE_BLKG_TRYGET */ + +/* blkg_tryget() GPL-only */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ + +/* blk_alloc_disk() exists */ +/* #undef HAVE_BLK_ALLOC_DISK */ + +/* blk_alloc_queue() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ + +/* blk_alloc_queue_rh() expects request function */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ + +/* blk_cleanup_disk() exists */ +/* #undef HAVE_BLK_CLEANUP_DISK */ + +/* blk_mode_t is defined */ +/* #undef HAVE_BLK_MODE_T */ + +/* block multiqueue is available */ +/* #undef HAVE_BLK_MQ */ + +/* blk queue backing_dev_info is dynamic */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ + +/* blk_queue_discard() is available */ +/* #undef HAVE_BLK_QUEUE_DISCARD */ + +/* blk_queue_flag_clear() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */ + +/* blk_queue_flag_set() exists */ +/* #undef HAVE_BLK_QUEUE_FLAG_SET */ + +/* blk_queue_flush() is available */ +/* #undef HAVE_BLK_QUEUE_FLUSH */ + +/* blk_queue_flush() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */ + +/* blk_queue_secdiscard() is available */ +/* #undef HAVE_BLK_QUEUE_SECDISCARD */ + +/* blk_queue_secure_erase() is available */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ + +/* blk_queue_update_readahead() exists */ +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ + +/* blk_queue_write_cache() exists */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */ + +/* blk_queue_write_cache() is GPL-only */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */ + +/* BLK_STS_RESV_CONFLICT is defined */ +/* #undef HAVE_BLK_STS_RESV_CONFLICT */ + +/* Define if release() in block_device_operations takes 1 arg */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */ + +/* Define if revalidate_disk() in block_device_operations */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ + +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ + +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ + +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ + +/* check_disk_change() exists */ +/* #undef HAVE_CHECK_DISK_CHANGE */ + +/* clear_inode() is available */ +/* #undef HAVE_CLEAR_INODE */ + +/* dentry uses const struct dentry_operations */ +/* #undef HAVE_CONST_DENTRY_OPERATIONS */ + +/* copy_from_iter() is available */ +/* #undef HAVE_COPY_FROM_ITER */ + +/* copy_splice_read exists */ +/* #undef HAVE_COPY_SPLICE_READ */ + +/* copy_to_iter() is available */ +/* #undef HAVE_COPY_TO_ITER */ + +/* cpu_has_feature() is GPL-only */ +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */ + +/* yes */ +/* #undef HAVE_CPU_HOTPLUG */ + +/* current_time() exists */ +/* #undef HAVE_CURRENT_TIME */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* DECLARE_EVENT_CLASS() is available */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ + +/* dentry aliases are in d_u member */ +/* #undef HAVE_DENTRY_D_U_ALIASES */ + +/* dequeue_signal() takes 4 arguments */ +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ + +/* lookup_bdev() wants dev_t arg */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ + +/* sops->dirty_inode() wants flags */ +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */ + +/* disk_check_media_change() exists */ +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */ + +/* disk_*_io_acct() available */ +/* #undef HAVE_DISK_IO_ACCT */ + +/* disk_update_readahead() exists */ +/* #undef HAVE_DISK_UPDATE_READAHEAD */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* d_make_root() is available */ +/* #undef HAVE_D_MAKE_ROOT */ + +/* d_prune_aliases() is available */ +/* #undef HAVE_D_PRUNE_ALIASES */ + +/* dops->d_revalidate() operation takes nameidata */ +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */ + +/* eops->encode_fh() wants child and parent inodes */ +/* #undef HAVE_ENCODE_FH_WITH_INODE */ + +/* sops->evict_inode() exists */ +/* #undef HAVE_EVICT_INODE */ + +/* FALLOC_FL_ZERO_RANGE is defined */ +/* #undef HAVE_FALLOC_FL_ZERO_RANGE */ + +/* fault_in_iov_iter_readable() is available */ +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ + +/* filemap_range_has_page() is available */ +/* #undef HAVE_FILEMAP_RANGE_HAS_PAGE */ + +/* fops->aio_fsync() exists */ +/* #undef HAVE_FILE_AIO_FSYNC */ + +/* file_dentry() is available */ +/* #undef HAVE_FILE_DENTRY */ + +/* fops->fadvise() exists */ +/* #undef HAVE_FILE_FADVISE */ + +/* file_inode() is available */ +/* #undef HAVE_FILE_INODE */ + +/* flush_dcache_page() is GPL-only */ +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */ + +/* iops->follow_link() cookie */ +/* #undef HAVE_FOLLOW_LINK_COOKIE */ + +/* iops->follow_link() nameidata */ +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */ + +/* Define if compiler supports -Wformat-overflow */ +/* #undef HAVE_FORMAT_OVERFLOW */ + ++/* fsync_bdev() is declared in include/blkdev.h */ ++/* #undef HAVE_FSYNC_BDEV */ ++ +/* fops->fsync() with range */ +/* #undef HAVE_FSYNC_RANGE */ + +/* fops->fsync() without dentry */ +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */ + +/* yes */ +/* #undef HAVE_GENERIC_FADVISE */ + +/* generic_fillattr requires struct mnt_idmap* */ +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */ + ++/* generic_fillattr requires struct mnt_idmap* and u32 request_mask */ ++/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */ ++ +/* generic_fillattr requires struct user_namespace* */ +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ + +/* generic_*_io_acct() 3 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */ + +/* generic_*_io_acct() 4 arg available */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ + +/* generic_readlink is global */ +/* #undef HAVE_GENERIC_READLINK */ + +/* generic_setxattr() exists */ +/* #undef HAVE_GENERIC_SETXATTR */ + +/* generic_write_checks() takes kiocb */ +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* iops->get_acl() exists */ +/* #undef HAVE_GET_ACL */ + +/* iops->get_acl() takes rcu */ +/* #undef HAVE_GET_ACL_RCU */ + +/* has iops->get_inode_acl() */ +/* #undef HAVE_GET_INODE_ACL */ + +/* iops->get_link() cookie */ +/* #undef HAVE_GET_LINK_COOKIE */ + +/* iops->get_link() delayed */ +/* #undef HAVE_GET_LINK_DELAYED */ + +/* group_info->gid exists */ +/* #undef HAVE_GROUP_INFO_GID */ + +/* has_capability() is available */ +/* #undef HAVE_HAS_CAPABILITY */ + +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */ +/* #undef HAVE_IATTR_VFSID */ + +/* Define if you have the iconv() function and it works. */ +#define HAVE_ICONV 1 + +/* iops->getattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_GETATTR */ + +/* iops->setattr() takes struct mnt_idmap* */ +/* #undef HAVE_IDMAP_IOPS_SETATTR */ + +/* APIs for idmapped mount are present */ +/* #undef HAVE_IDMAP_MNT_API */ + +/* Define if compiler supports -Wimplicit-fallthrough */ +/* #undef HAVE_IMPLICIT_FALLTHROUGH */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_INFINITE_RECURSION */ + ++/* inode_get_ctime() exists in linux/fs.h */ ++/* #undef HAVE_INODE_GET_CTIME */ ++ +/* yes */ +/* #undef HAVE_INODE_LOCK_SHARED */ + +/* inode_owner_or_capable() exists */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ + +/* inode_owner_or_capable() takes mnt_idmap */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */ + +/* inode_owner_or_capable() takes user_ns */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */ + ++/* inode_set_ctime_to_ts() exists in linux/fs.h */ ++/* #undef HAVE_INODE_SET_CTIME_TO_TS */ ++ +/* inode_set_flags() exists */ +/* #undef HAVE_INODE_SET_FLAGS */ + +/* inode_set_iversion() exists */ +/* #undef HAVE_INODE_SET_IVERSION */ + +/* inode->i_*time's are timespec64 */ +/* #undef HAVE_INODE_TIMESPEC64_TIMES */ + +/* timestamp_truncate() exists */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* in_compat_syscall() is available */ +/* #undef HAVE_IN_COMPAT_SYSCALL */ + +/* iops->create() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_CREATE_IDMAP */ + +/* iops->create() takes struct user_namespace* */ +/* #undef HAVE_IOPS_CREATE_USERNS */ + +/* iops->mkdir() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKDIR_IDMAP */ + +/* iops->mkdir() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKDIR_USERNS */ + +/* iops->mknod() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_MKNOD_IDMAP */ + +/* iops->mknod() takes struct user_namespace* */ +/* #undef HAVE_IOPS_MKNOD_USERNS */ + +/* iops->permission() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_PERMISSION_IDMAP */ + +/* iops->permission() takes struct user_namespace* */ +/* #undef HAVE_IOPS_PERMISSION_USERNS */ + +/* iops->rename() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_RENAME_IDMAP */ + +/* iops->rename() takes struct user_namespace* */ +/* #undef HAVE_IOPS_RENAME_USERNS */ + +/* iops->setattr() exists */ +/* #undef HAVE_IOPS_SETATTR */ + +/* iops->symlink() takes struct mnt_idmap* */ +/* #undef HAVE_IOPS_SYMLINK_IDMAP */ + +/* iops->symlink() takes struct user_namespace* */ +/* #undef HAVE_IOPS_SYMLINK_USERNS */ + +/* iov_iter_advance() is available */ +/* #undef HAVE_IOV_ITER_ADVANCE */ + +/* iov_iter_count() is available */ +/* #undef HAVE_IOV_ITER_COUNT */ + +/* iov_iter_fault_in_readable() is available */ +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */ + +/* iov_iter_revert() is available */ +/* #undef HAVE_IOV_ITER_REVERT */ + +/* iov_iter_type() is available */ +/* #undef HAVE_IOV_ITER_TYPE */ + +/* iov_iter types are available */ +/* #undef HAVE_IOV_ITER_TYPES */ + +/* yes */ +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */ + +/* Define to 1 if you have the `issetugid' function. */ +#define HAVE_ISSETUGID 1 + +/* iter_iov() is available */ +/* #undef HAVE_ITER_IOV */ + +/* kernel has kernel_fpu_* functions */ +/* #undef HAVE_KERNEL_FPU */ + +/* kernel has asm/fpu/api.h */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ + +/* kernel fpu internal */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ + +/* kernel has asm/fpu/internal.h */ +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ + +/* uncached_acl_sentinel() exists */ +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */ + +/* Define if compiler supports -Winfinite-recursion */ +/* #undef HAVE_KERNEL_INFINITE_RECURSION */ + +/* kernel does stack verification */ +/* #undef HAVE_KERNEL_OBJTOOL */ + +/* kernel has linux/objtool.h */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ + +/* kernel_read() take loff_t pointer */ +/* #undef HAVE_KERNEL_READ_PPOS */ + +/* timer_list.function gets a timer_list */ +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */ + +/* struct timer_list has a flags member */ +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */ + +/* timer_setup() is available */ +/* #undef HAVE_KERNEL_TIMER_SETUP */ + +/* kernel_write() take loff_t pointer */ +/* #undef HAVE_KERNEL_WRITE_PPOS */ + +/* kmem_cache_create_usercopy() exists */ +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */ + *** 585 LINES SKIPPED *** From nobody Thu Nov 23 04:01:01 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPY9307Nz51C75; Thu, 23 Nov 2023 04:01:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPY92W5Qz4Nwh; Thu, 23 Nov 2023 04:01:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/wucx1diwwKRokDWAWq1oEfWXdh256o4iBi91tGQ/U=; b=vpgyjw0peYq6jo3KA3KZCgUqroDqDTtcmbipo0jsfH+OZDPWxmigszwI1zo4z3sqsg9yec 6kTGR7x7I3oPsk/lQg5B5Da3nBjYjlLt4VO4k8BINqzKrMMhWOMWil/uUWqcuz3FRGu8sH XfKWVnm+KTCfV2p1o0+e/1xFPc6Puj71rvwRYsFchIcIiazd11xLrl5XGB+uoYcefcblp/ Ed2RCsqUFlh822ek2NTMnnUEkUBsUAj7oYxgW8irkoM5wk84x5+tvhzp2DrWnkydKNaJTN HtqmcmnugOr8im7jQIixoDpZA/uSCCUFzTr9ZQj9SJNIEPA+xo50yuynxxA60g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/wucx1diwwKRokDWAWq1oEfWXdh256o4iBi91tGQ/U=; b=iomgxsgkyAI2BfcCgpAa7AQAEievRWvku/jr6vVeSEqo360Y6IWgWj38IyU7CbbWnl+RID JSx0yT7NlKexBfAnlhGRdP/liIXck2CQ4O8qMTNHM41RR3NTQC6oKXa/LE4zYl7cUK3ZKZ S+mD+Ta7iPOd3Qdyk1SAykvVnWp4YsTlLCQBxHi46q+S0jsfOjL83H1D4KC/v4J6jNNLEm Z/lbh0VRX0QsX42K0Gr/kLK32cuHBbnKm1jqt8iJ3YKrqYu6hfsvlxcOWw1+abNvT/sOjE vwgUyMekk7cwpLP74A/Zg1LW/8LJH6C2TWm8gJWgaC47NPt1GJ1knOnJbRUF9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712061; a=rsa-sha256; cv=none; b=o2vUKYVWSso6O8DyEYPk9xSkHEwJo8nzWgcxlBvmqbhMGNhqNLlnahL+okcCcpVJegJ8Ux WWe2hQuMFL5sOMQCGeUfkNVu1W0xb9FjNO/cElale5/5Q03oMcSDRDBxhf44a8TlcfI6up JywzdkpHwEq/U+XUqNpfy4EZbffZKc0QTXG4RGjKHk3mBeclSB1QGkkXWckV4un4Z543OL cpuyPNWFpp9xOzkPT598QFWpbEKHSyOWeldRPGUwKI37WoTrG4dg6ksLz1wtRg78isj/0Y k695J9XHWw7G5dPcCmv9u0jElPAHyye6zlAX/AfuI92wDG9SoAetesU/gcs2dg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPY91ZJZzmbM; Thu, 23 Nov 2023 04:01:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN411rd098597; Thu, 23 Nov 2023 04:01:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN411OM098594; Thu, 23 Nov 2023 04:01:01 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:01:01 GMT Message-Id: <202311230401.3AN411OM098594@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: 5889b1f052fe - stable/14 - arm64: do not register elf32 brand if hardware cannot exec aarch32 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 5889b1f052fef73cd75dbb71e05d855fa8a10bb4 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5889b1f052fef73cd75dbb71e05d855fa8a10bb4 commit 5889b1f052fef73cd75dbb71e05d855fa8a10bb4 Author: Konstantin Belousov AuthorDate: 2023-11-16 19:45:52 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:00:36 +0000 arm64: do not register elf32 brand if hardware cannot exec aarch32 (cherry picked from commit 0aa93010c571b88a6402405be22745fa05a5baab) --- sys/arm64/arm64/elf32_machdep.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index 26aa2cddfdb2..4acb68b09108 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -153,8 +153,16 @@ static Elf32_Brandinfo freebsd32_brand_info = { .header_supported= elf32_arm_abi_supported, }; -SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_FIRST, - (sysinit_cfunc_t)elf32_insert_brand_entry, &freebsd32_brand_info); +static void +register_elf32_brand(void *arg) +{ + /* Check if we support AArch32 */ + if (ID_AA64PFR0_EL0_VAL(READ_SPECIALREG(id_aa64pfr0_el1)) == + ID_AA64PFR0_EL0_64_32) { + elf32_insert_brand_entry(&freebsd32_brand_info); + } +} +SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_FIRST, register_elf32_brand, NULL); static bool elf32_arm_abi_supported(struct image_params *imgp, int32_t *osrel __unused, @@ -162,11 +170,6 @@ elf32_arm_abi_supported(struct image_params *imgp, int32_t *osrel __unused, { const Elf32_Ehdr *hdr; - /* Check if we support AArch32 */ - if (ID_AA64PFR0_EL0_VAL(READ_SPECIALREG(id_aa64pfr0_el1)) != - ID_AA64PFR0_EL0_64_32) - return (false); - #define EF_ARM_EABI_FREEBSD_MIN EF_ARM_EABI_VER4 hdr = (const Elf32_Ehdr *)imgp->image_header; if (EF_ARM_EABI_VERSION(hdr->e_flags) < EF_ARM_EABI_FREEBSD_MIN) { From nobody Thu Nov 23 04:01:02 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPYB48dHz51C94; Thu, 23 Nov 2023 04:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPYB3jSfz4NxC; Thu, 23 Nov 2023 04:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BQGjBcdJx04bcHQqocdFyEL38FVTJMrxGwFKw+4BH1o=; b=CBUBwpoZmSkkNlAR6WUxbnkoYoht4ZCHbo47DaVoaiyt+euhfWflJtfVvbTkBODBz/LEBM 2kQEBvqnCxEps3Hv8xSqs2BMHeRZW5Ox1spqMTb+kA7BZDYSiYGN8cmHHFjy2L7iWTGCJB G18MyII/x/4l3sWno8sEJPFPgcx378UC3A8UNX9XQUEVcoFDx9TBYbkd/3Vl4nrnXkMCPe LnPIoxnWe2mi24yJ9yQpEHRsQA1b5Ii38VW/p4gI9UNDTJLKQTc9mgvE3NnUmYKByCFYtz Tkod+JdULXHn643a3jjf3Wj7QRuBXstZPOvqpHDGBEzrHdcxQzX5ayrHTd2u3A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BQGjBcdJx04bcHQqocdFyEL38FVTJMrxGwFKw+4BH1o=; b=b0MFSufcLyEBRccRB64wuoM1JFN+ShzPncTXRzBBMfFwTSez5WIRGgvma9DzbLpBzSpy3J m5SUugcadfUpqgUe39kgfu4MXPVHuE4hjvJkr93L7ki7ixCqmt4tXezeeqvreGf6yy7LF5 orA1sWjY4mQdTXpqgP0Na3qw/Y3ainzdHrnuG40bniyxleZImSrpAz/JSNH2+H220Ck9wP UncvdXY8BByCaVBtlW0iCGmqZMDXzVaU98VMlBe1kbjPZI4W6CpHpyFkuLgUODKgSqR5Rr ER0pLH4llMVmYWUvRUqrdkjHZVjJdRtqAy2GrGHzeCXK3vO2ctocZ4KS8smPAg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712062; a=rsa-sha256; cv=none; b=ZJwBFSvevFIFERmbgkzETq1QSM67peNZIlXQymjPlfy0X5eHnF5Cde2Km1uAUjZS8DVAD/ Ol1ialg+XzQq1LGtpeyrXBXaM72bLB+85kSWMb7JWuKvouVPCSz6y+FhM486Hg8MIeEFb3 5Qz5R7pIP1DpwSiWeCcObswvu9heibtHcpYRFs5jFgtTAqzfkrKoGedYUe9zI4SpxacQ3c PyD21m38mXxmDm2Vm+9BkiWtx6Nl/U+ht6WJgXL/VKmiYcLTj0/MtS85cNi5iAZkEfHYPL 5K/cAHzRb8DYFXK7bT45d2WTKV7qauJMSfx1fOl9fAKDJmkDrrdQ5VES7YIBBw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPYB2pfVzmMd; Thu, 23 Nov 2023 04:01:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN412CJ098642; Thu, 23 Nov 2023 04:01:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN412eX098639; Thu, 23 Nov 2023 04:01:02 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:01:02 GMT Message-Id: <202311230401.3AN412eX098639@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: 9d7412604d63 - stable/14 - kernel: add missed FEATUREs compat_freebsd 8-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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9d7412604d631c0a6ab7f24fc69a644ff93b4ac7 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9d7412604d631c0a6ab7f24fc69a644ff93b4ac7 commit 9d7412604d631c0a6ab7f24fc69a644ff93b4ac7 Author: Konstantin Belousov AuthorDate: 2023-11-16 20:47:18 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:00:36 +0000 kernel: add missed FEATUREs compat_freebsd 8-14 (cherry picked from commit e256f71389fbf0ef6cf8f547342d5f789e69f918) --- sys/kern/kern_mib.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c index 2298f942da6b..9094d09550ee 100644 --- a/sys/kern/kern_mib.c +++ b/sys/kern/kern_mib.c @@ -630,6 +630,30 @@ FEATURE(compat_freebsd6, "Compatible with FreeBSD 6"); FEATURE(compat_freebsd7, "Compatible with FreeBSD 7"); #endif +#ifdef COMPAT_FREEBSD8 +FEATURE(compat_freebsd8, "Compatible with FreeBSD 8"); +#endif + +#ifdef COMPAT_FREEBSD9 +FEATURE(compat_freebsd9, "Compatible with FreeBSD 9"); +#endif + +#ifdef COMPAT_FREEBSD10 +FEATURE(compat_freebsd10, "Compatible with FreeBSD 10"); +#endif + +#ifdef COMPAT_FREEBSD11 +FEATURE(compat_freebsd11, "Compatible with FreeBSD 11"); +#endif + +#ifdef COMPAT_FREEBSD12 +FEATURE(compat_freebsd12, "Compatible with FreeBSD 12"); +#endif + +#ifdef COMPAT_FREEBSD13 +FEATURE(compat_freebsd13, "Compatible with FreeBSD 13"); +#endif + /* * This is really cheating. These actually live in the libc, something * which I'm not quite sure is a good idea anyway, but in order for From nobody Thu Nov 23 04:01:03 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPYC5WDyz51C27; Thu, 23 Nov 2023 04:01:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPYC4m7Wz4Nxq; Thu, 23 Nov 2023 04:01:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bhLuLVhWbzLx4PQG/k6WUEYPbB2WCFa2w+K3L/HLSw0=; b=RXxTrhZjT0NaS3916KUBhyfyYSBG6UDyElZ57kYZXTF5uArYSWy1zC5BOglZcuyVE1qR4b xcBrN7zbK4SxENBo3eoXUAc6+qvcil7hE96see7wAfJP08ivoVDr+d3pEp3x9JvymrnCeV 2YGp+FEecYuuiYVxj7fKwYfAVJZaS6T0ApvvDdcRqR1k1WzbIZIs+oZLldmhzN1PA66VqR hwB2nddy+75UacbfAiAuItU/GA7dfC0nBHHUR1oeiomzv/ShNWv4zv9T92UqvrPaoE7/GZ r6M5GokNVzzKXZUSiIi89RKm+iogXcakNHzQFf0u4MiJ9mavnf2YVUTMoStvIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bhLuLVhWbzLx4PQG/k6WUEYPbB2WCFa2w+K3L/HLSw0=; b=fgmg7/1yNKcGufYxFDmJ2G+dimUkxGyx/EIEJYhXR0emeZJymZuSYKtBk1HYNZMMucIxMA O+5P/PgdfIiLsXtnn3Wl1eQkUd2IcLL7a1BStX+2xw1jr3dW7q6hoG5K2FGeWhBKlqmX/e jECEW7xrgzgJxE8D7J+NWlJhJE3TOey+sKaZOYthyx2C6VgJjvhx0ae3ROv+EU64G4rwy5 wnPnOalsilwCrlTWzILfSlV8Y4agSiZWzIqe/Q5DU18rZxF8w7Dr5PlX4i9pLIkTVIzc15 toM6YOZX1afxBQy+jU7FuKGjqqT/x8I2wBx9yRv3ds3b08reZf8VEjZYNOAokQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712063; a=rsa-sha256; cv=none; b=UlbFWEN1xrEAPJurEowRMJ3nxWyfkSKC/2+UuYBEAhLAh34FR+SBufdNaJ5ULyQPDzyRLm aq2VMc3K65Gv85umWhpG+h6E8qqjBYpLPznYwsVUq1zDjsf/Seoi7Izs8FLMJYzDG0WOHK jpx+LN9SBdFeZVF+O/9X8QLwBd/4bbW9ZF5FJNeh3zCQqr9tdyOWhaXVfdqrZXFEyHeIgY qVsP3PNVoRujX4Fc6UgF4Dlvnz15qW9HDLRyCqKDeWu28+6ynynpoP54yenLz9cs0/LULj KAYmOL/hgUsQx68jrJRCmTG0WSTfyqZ+q9bZG3eX1GVrf1r84zUa7ut7p9wCvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPYC3Sx1zmfN; Thu, 23 Nov 2023 04:01:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN413uJ098692; Thu, 23 Nov 2023 04:01:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN413J0098689; Thu, 23 Nov 2023 04:01:03 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:01:03 GMT Message-Id: <202311230401.3AN413J0098689@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: 3114e149b020 - stable/14 - vn_lock_pair(): reasonably handle vp1 == vp2 case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3114e149b02016f7231c9f2fc774b7a61af191c4 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=3114e149b02016f7231c9f2fc774b7a61af191c4 commit 3114e149b02016f7231c9f2fc774b7a61af191c4 Author: Konstantin Belousov AuthorDate: 2023-11-16 22:42:25 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:00:36 +0000 vn_lock_pair(): reasonably handle vp1 == vp2 case (cherry picked from commit 22bac49b09a9f975330dc0d811436599ce740890) --- sys/kern/vfs_vnops.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 27ce5401f15f..f81516608eeb 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -4042,10 +4042,10 @@ vn_lock_pair_pause(const char *wmesg) } /* - * Lock pair of vnodes vp1, vp2, avoiding lock order reversal. - * vp1_locked indicates whether vp1 is locked; if not, vp1 must be - * unlocked. Same for vp2 and vp2_locked. One of the vnodes can be - * NULL. + * Lock pair of (possibly same) vnodes vp1, vp2, avoiding lock order + * reversal. vp1_locked indicates whether vp1 is locked; if not, vp1 + * must be unlocked. Same for vp2 and vp2_locked. One of the vnodes + * can be NULL. * * The function returns with both vnodes exclusively or shared locked, * according to corresponding lkflags, and guarantees that it does not @@ -4056,12 +4056,14 @@ vn_lock_pair_pause(const char *wmesg) * * Only one of LK_SHARED and LK_EXCLUSIVE must be specified. * LK_NODDLKTREAT can be optionally passed. + * + * If vp1 == vp2, only one, most exclusive, lock is obtained on it. */ void vn_lock_pair(struct vnode *vp1, bool vp1_locked, int lkflags1, struct vnode *vp2, bool vp2_locked, int lkflags2) { - int error; + int error, locked1; MPASS(((lkflags1 & LK_SHARED) != 0) ^ ((lkflags1 & LK_EXCLUSIVE) != 0)); MPASS((lkflags1 & ~(LK_SHARED | LK_EXCLUSIVE | LK_NODDLKTREAT)) == 0); @@ -4071,6 +4073,35 @@ vn_lock_pair(struct vnode *vp1, bool vp1_locked, int lkflags1, if (vp1 == NULL && vp2 == NULL) return; + if (vp1 == vp2) { + MPASS(vp1_locked == vp2_locked); + + /* Select the most exclusive mode for lock. */ + if ((lkflags1 & LK_TYPE_MASK) != (lkflags2 & LK_TYPE_MASK)) + lkflags1 = (lkflags1 & ~LK_SHARED) | LK_EXCLUSIVE; + + if (vp1_locked) { + ASSERT_VOP_LOCKED(vp1, "vp1"); + + /* No need to relock if any lock is exclusive. */ + if ((vp1->v_vnlock->lock_object.lo_flags & + LK_NOSHARE) != 0) + return; + + locked1 = VOP_ISLOCKED(vp1); + if (((lkflags1 & LK_SHARED) != 0 && + locked1 != LK_EXCLUSIVE) || + ((lkflags1 & LK_EXCLUSIVE) != 0 && + locked1 == LK_EXCLUSIVE)) + return; + VOP_UNLOCK(vp1); + } + + ASSERT_VOP_UNLOCKED(vp1, "vp1"); + vn_lock(vp1, lkflags1 | LK_RETRY); + return; + } + if (vp1 != NULL) { if ((lkflags1 & LK_SHARED) != 0 && (vp1->v_vnlock->lock_object.lo_flags & LK_NOSHARE) != 0) From nobody Thu Nov 23 04:01:04 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPYD68SJz51CLZ; Thu, 23 Nov 2023 04:01:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPYD5Zjhz4P8X; Thu, 23 Nov 2023 04:01:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kJbKosrVjZM6/+786W7sn27/fpKfy8Mk2KGHbiNnWWE=; b=P3bezc10BznnWrI4QUPQBn5UP8nJwbopNUE67KuGLGlxPHKuJb0nJFYbRAtJimyvwYLFml GEG0yTyGJohW2Jq8IINWMOyiYj3TFVbhe4iifhDjXsO2ha/O+8oX4qF3pHqpghpWN7OOvx oIj6BqbCNqzl8TQDXaLvaBBHEhb7iPE62irUKAd7n97orbMTSzfqUS50kbWfY/yZRQwh+k PWirMkZ7BQ81R8qVqHfMEa8BV7i9WT8m9FNWiR9YY+J9Scn1oxRMAHrG501ximufcKLJvD B9SOh8TvIvZFoMa/YeUeb6jjiL71s/rZ5ARnPfw98iS4dKtjwXmE7JtaBSFDGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kJbKosrVjZM6/+786W7sn27/fpKfy8Mk2KGHbiNnWWE=; b=QbhwdGI5JxMfZVBxCOAU4JIJQGT8S7OhLX0+qC3l9IluR3l012bFUANpJ13zMcJw3GQLjJ AnIJK0FUVYy3kPriVKN2GZuHlzaSZGZlEN7Mk3fFh5dStiwO9nngruUYYEHvS0C3Fg59X4 x0zjJu0KYiCPmUNw3PqWy5IlNiP1Sstzdg/mMD2wATsOoz+amomSUZuC8DDOt5Ot37kFnA qHuW4JmJjiBhFLiTXubLmidx9gvnLwktjy6nZnD45NxIWkBSeBfqWj5GYhu0s/vRrQYO0n 5RQptkHTEHvS3U8k5b2Hcen8oGZFJSNxYtnj+RKAqSwlpNQ2KZfNIMY7JIPMBg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712064; a=rsa-sha256; cv=none; b=DkaUBmIFrIj8xUL0eqihuq/T+XP2hRxDdFgZLO0JQowene8k0D/Z5LqT+S7nj5mL9NT6Yk 7a1ULZvbA0ngOWIdW5AoNVKq+QOenSznx+xibZPv2PbQm7zDgkDZ9C/w5wJvmMD0DDKxuQ DdrIeqAGqBnAmoDCxvJyeCScBnZWOJgPs7wIHD3qte0ANWnWzwPZpSnfoQP/7yhaA/j9oM kPANjGbeatNPHTzhqvMzhSC/IYBawHOyyi7XJpgM5Q1CZZBzQTAot0T4YnboCDFmlzX78j b3Ss6CT3RmgGsTGyQwq1EV8TrV8zskcFFv1BGM1yOe/+qTV7Sj43FLEdyn4IUA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPYD4fbCzmpT; Thu, 23 Nov 2023 04:01:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN414gi098728; Thu, 23 Nov 2023 04:01:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN414Tq098725; Thu, 23 Nov 2023 04:01:04 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:01:04 GMT Message-Id: <202311230401.3AN414Tq098725@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: 4603a50fa323 - stable/14 - fuse_vnop_copy_file_range(): use vn_lock_pair() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4603a50fa32346f838c1f304d755e1204f6ad59a Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4603a50fa32346f838c1f304d755e1204f6ad59a commit 4603a50fa32346f838c1f304d755e1204f6ad59a Author: Konstantin Belousov AuthorDate: 2023-11-14 22:48:47 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:00:36 +0000 fuse_vnop_copy_file_range(): use vn_lock_pair() (cherry picked from commit 318c56714aa8c170132ebe008f52904e0f119b5f) --- sys/fs/fuse/fuse_vnops.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 3249e5988801..aead188276ec 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -879,23 +879,11 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) td = ap->a_fsizetd; pid = td->td_proc->p_pid; - /* Lock both vnodes, avoiding risk of deadlock. */ - do { - err = vn_lock(outvp, LK_EXCLUSIVE); - if (invp == outvp) - break; - if (err == 0) { - err = vn_lock(invp, LK_SHARED | LK_NOWAIT); - if (err == 0) - break; - VOP_UNLOCK(outvp); - err = vn_lock(invp, LK_SHARED); - if (err == 0) - VOP_UNLOCK(invp); - } - } while (err == 0); - if (err != 0) - return (err); + vn_lock_pair(invp, false, LK_SHARED, outvp, false, LK_EXCLUSIVE); + if (invp->v_data == NULL || outvp->v_data == NULL) { + err = EBADF; + goto unlock; + } err = fuse_filehandle_getrw(invp, FREAD, &infufh, incred, pid); if (err) From nobody Thu Nov 23 04:01:05 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPYG1FrBz51C2G; Thu, 23 Nov 2023 04:01:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPYF6gVMz4PKp; Thu, 23 Nov 2023 04:01:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wGCV5ojvavGsirvLgCjW2Jor9sgVQpsYup6XvUB+evE=; b=gFymZJkakyhS4LFi/cEJh3++HJxqm/EZF02SvbYhKJjw6H7zdlHW/wbeW2A9fhd2tl+tIa l8Hq3kKN0xUZ1cxd91C4KruDrhepM3scx/1mtfsmCP9dPikZpgvEMyl6g8Ves01anXt5TD EroxCwLr4zWVBVXFT1+lFbausZGl+CwQe+ze6s43C6uUzHsoWSkJD3CUUdNOXLGA6aIoo9 PRYMmnyTXz2DUFjxp0PMrQNBRkp+xbehyUxTlaLrX2m6dGmj1KNnPTxPNp6ZtjKQ1sGPm+ udE02RWeNj92V43UDZP+SqOsmnVC6o22Gu+Jqup/I39ZRvhObNXFw/uuC30JvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wGCV5ojvavGsirvLgCjW2Jor9sgVQpsYup6XvUB+evE=; b=btmnE/TJj1LejhLYKaOKG5Ip+46ONsKlYppcA9MHUwXo+2rt2l42xHd5n5zHugqulOjwZj uZ50ihhcCzYCTJNIP4E9/2a+6IgpU6xPb3jeC12D3FkajGmXT1WxuHJNzhDORf/l0Cm6Ru +IeS4X8tX+mfP0IVyzchIxmpKFtIGvkeM09L8vTks3Huywu4CzsBumMvt9jTWxHkcE2veU H0ighzYmXpjrMXDpFPIv6gyU4htlpscSXMosccQCtj/XQATZoafSn80Zt0Y+8018SHaSCV IUMTTY12taq0WMrMkZsAJJB70sGVzViSa/67dIFWH4JkuewjX/tS2X++mP1pew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712065; a=rsa-sha256; cv=none; b=Xa9sMUrQHrMTpa7699X+mKf6INxGl7Glf3b1+xSqZisMhIUnOxXGkzJdiBnwNhUqICnU+c bHYeRY3Sb9H6CvAFtplj7TNOIx04Cddkj27skLiBUeUR4DFwc10pjV7WJVGmbRvlkICaa/ OIijGnhQIkolN73miGnbV8Yhc6+ohnPb/i7BNyEvBUxwuGQS9EBUbV+SBnkpopeGXW4qWC Cm3smjcj2Tg7FTJrqbuDg8dxF98xpSOa94/jRZAFwv9px8AGJedlPED2zLkV5/qt82oxpq /R2EJy6egOCxxjxI+6wFzCraYC2mHu20dgAgBM0pmnpfDsCTkXaYdpzuXy1wkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPYF5Zp0zmQV; Thu, 23 Nov 2023 04:01:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN415Ct098775; Thu, 23 Nov 2023 04:01:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN4151D098772; Thu, 23 Nov 2023 04:01:05 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:01:05 GMT Message-Id: <202311230401.3AN4151D098772@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: 7f8ec7791b73 - stable/14 - fuse_vnop_copy_file_range(): add safety List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7f8ec7791b73b79d608b6670646a16fbce392c0e Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=7f8ec7791b73b79d608b6670646a16fbce392c0e commit 7f8ec7791b73b79d608b6670646a16fbce392c0e Author: Konstantin Belousov AuthorDate: 2023-11-14 22:49:35 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:00:36 +0000 fuse_vnop_copy_file_range(): add safety (cherry picked from commit 4c6cded2166111079c6b5e8b2353171dcc7ed0c4) --- sys/fs/fuse/fuse_vnops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index aead188276ec..b9e4e48e6dbd 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -861,7 +861,7 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) pid_t pid; int err; - if (mp != vnode_mount(outvp)) + if (mp == NULL || mp != vnode_mount(outvp)) goto fallback; if (incred->cr_uid != outcred->cr_uid) @@ -870,6 +870,7 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) if (incred->cr_groups[0] != outcred->cr_groups[0]) goto fallback; + /* Caller busied mp, mnt_data can be safely accessed. */ if (fsess_not_impl(mp, FUSE_COPY_FILE_RANGE)) goto fallback; From nobody Thu Nov 23 04:02:33 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPZy0Zb5z51C8N; Thu, 23 Nov 2023 04:02:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPZy04rPz4QYH; Thu, 23 Nov 2023 04:02:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712154; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tqBfYoZJ53SYPv0INbRW8KzX6j5UADgdD4PbHWXQ19Y=; b=c7p73OuyQpZz14erpBs1H4QDl0igrmOMmxpmvAF8inz8aZFB4Cv5Re7U+W/M41cWxMK6o3 2fFm8LuyoNXKQf589TI+Cy74H5TYJmrQJxhEdq1XOqS0CCQODswpay3Vbsj4Gj5bnBZSv0 MyRidOYjlcOVN9LGXOcRq1XhSykwGIFLiA1sgfN70D3bPQqTJ9Ah0raGUzwmX0F8pbCav9 ws2SHnvM8YPDdAlHUtMatFHEPkcO81JS8nsd797MuYPGKMxss3tmq+59Y66badrVtMBjRE 6dfLi/d7lQEgr0Dz24a1dOjjQS7d72vdaWCk7JIwXtkCW5LNCfjPwYdJmZ3mCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712154; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tqBfYoZJ53SYPv0INbRW8KzX6j5UADgdD4PbHWXQ19Y=; b=hBgRUA2kRhaJLYZ7pRqo5Ch/Q+DY3wsxaAPBhayCL2pC6/MT4zaIdwgw2n1EtHTXDIfbiw rZxllftPofaKz0pi3AoTTetw9oP3wmBRUr8HwgIHh54/7LUqSvCNqLGCRPnYtDExYGq7pq tVouyxpSKgkaKCyD/7qLiY05OVrImQ40PIbKmWTp5U8ZuRI1p5eBSGc7jsjKj62H9+Bs64 /qVuU307UYy+bj6yTMSYzCBBCezJjPpTMysqBKv3kSle4DXHmt3GA8lQ4UqZrNzygzOgxh Y19yyCwdtGoiQIsvGbZh7RgrHpman3lGIUrfkBKUWNAHgLy1TPEONjHjPZikyA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712154; a=rsa-sha256; cv=none; b=PxrhH/Q0RU38UD2ffKmmzq4RXfpI+jnuqjosFQZkG+F01s8ImISxWBojIrkEPkCeWMi99m 6sZX8whwObA4lmWRq7kBS9P+F4hvJAurcJJjPZy7mjVjnXP6WPWbPEw2xNcoKdj6I7Tb3c jFwke1eUX9SgvQ5UML0zWReuk6SFWT20lKnYV8F1czF6eTTVx9LMAV2u1eJDM71P/4UNKm kN9kB9DExFk1ZIE5AYPPBYg6zOjAchSiAUqHrPgSzxug7fClimsswi5Ses3YVx10xOaSry 6k6tVL4q7X2bOMy9TIC6DhPFwqh8mqmeDSVGgJbUwA4ADWvclVCyovEltsYRaQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPZx617WzmN1; Thu, 23 Nov 2023 04:02:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN42X0x005475; Thu, 23 Nov 2023 04:02:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN42X1C005472; Thu, 23 Nov 2023 04:02:33 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:02:33 GMT Message-Id: <202311230402.3AN42X1C005472@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: a0ae6258c8e1 - stable/13 - vn_lock_pair(): reasonably handle vp1 == vp2 case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a0ae6258c8e1340b9371b85ba0a13c3633e37723 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a0ae6258c8e1340b9371b85ba0a13c3633e37723 commit a0ae6258c8e1340b9371b85ba0a13c3633e37723 Author: Konstantin Belousov AuthorDate: 2023-11-16 22:42:25 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:02:00 +0000 vn_lock_pair(): reasonably handle vp1 == vp2 case (cherry picked from commit 22bac49b09a9f975330dc0d811436599ce740890) --- sys/kern/vfs_vnops.c | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 7af4df16252c..48737be64beb 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -3901,10 +3901,10 @@ vn_lock_pair_pause(const char *wmesg) } /* - * Lock pair of vnodes vp1, vp2, avoiding lock order reversal. - * vp1_locked indicates whether vp1 is locked; if not, vp1 must be - * unlocked. Same for vp2 and vp2_locked. One of the vnodes can be - * NULL. + * Lock pair of (possibly same) vnodes vp1, vp2, avoiding lock order + * reversal. vp1_locked indicates whether vp1 is locked; if not, vp1 + * must be unlocked. Same for vp2 and vp2_locked. One of the vnodes + * can be NULL. * * The function returns with both vnodes exclusively or shared locked, * according to corresponding lkflags, and guarantees that it does not @@ -3915,12 +3915,14 @@ vn_lock_pair_pause(const char *wmesg) * * Only one of LK_SHARED and LK_EXCLUSIVE must be specified. * LK_NODDLKTREAT can be optionally passed. + * + * If vp1 == vp2, only one, most exclusive, lock is obtained on it. */ void vn_lock_pair(struct vnode *vp1, bool vp1_locked, int lkflags1, struct vnode *vp2, bool vp2_locked, int lkflags2) { - int error; + int error, locked1; MPASS(((lkflags1 & LK_SHARED) != 0) ^ ((lkflags1 & LK_EXCLUSIVE) != 0)); MPASS((lkflags1 & ~(LK_SHARED | LK_EXCLUSIVE | LK_NODDLKTREAT)) == 0); @@ -3930,6 +3932,35 @@ vn_lock_pair(struct vnode *vp1, bool vp1_locked, int lkflags1, if (vp1 == NULL && vp2 == NULL) return; + if (vp1 == vp2) { + MPASS(vp1_locked == vp2_locked); + + /* Select the most exclusive mode for lock. */ + if ((lkflags1 & LK_TYPE_MASK) != (lkflags2 & LK_TYPE_MASK)) + lkflags1 = (lkflags1 & ~LK_SHARED) | LK_EXCLUSIVE; + + if (vp1_locked) { + ASSERT_VOP_LOCKED(vp1, "vp1"); + + /* No need to relock if any lock is exclusive. */ + if ((vp1->v_vnlock->lock_object.lo_flags & + LK_NOSHARE) != 0) + return; + + locked1 = VOP_ISLOCKED(vp1); + if (((lkflags1 & LK_SHARED) != 0 && + locked1 != LK_EXCLUSIVE) || + ((lkflags1 & LK_EXCLUSIVE) != 0 && + locked1 == LK_EXCLUSIVE)) + return; + VOP_UNLOCK(vp1); + } + + ASSERT_VOP_UNLOCKED(vp1, "vp1"); + vn_lock(vp1, lkflags1 | LK_RETRY); + return; + } + if (vp1 != NULL) { if ((lkflags1 & LK_SHARED) != 0 && (vp1->v_vnlock->lock_object.lo_flags & LK_NOSHARE) != 0) From nobody Thu Nov 23 04:02:34 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPZz0syKz51CY5; Thu, 23 Nov 2023 04:02:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPZz0RqRz4QFk; Thu, 23 Nov 2023 04:02:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YdwWJA46sbZD9mUhTflv2aFdctFEn/ox9NqjfA80Tb4=; b=ubZatDqktdt4vsf9siklHK/pc/fM8fGzRO0idwwoPNh+En6CDo2BPqILiyvK2XnAn6CNdd 9Vb3vSQ+kC7zPNkVsFjJerlSrSnjIeOhixYlNBt9Jk2dEjtFfCE6nJt6B/5a5HXlcVSeO/ 4DVigJ31CrOez5i/ONH86cIKDoRJn2IUntzo56It0lS14siEBxngLT/e6Zak+wQMmz4K6K 8rNjyzpizEPWFhSXooKueP3do2TZUkHVdL1MMYadLKD+qewtR8L4unk5Wv2Ugqao8g5FKm vTp1hXn+DJ0XpMorIQUtvnQP7JexVQ71n8dSpIg+oCj3IcCC+QlretRWzGRx+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YdwWJA46sbZD9mUhTflv2aFdctFEn/ox9NqjfA80Tb4=; b=ofk8KMAeRjEEV7x65AfAtscuIVJknmn6+NDW/ymSXRaLHvl9XlfQwwFg2pOmvlihmM7WcP 0Rky4IAyGMNktWlh75J87TgKVg/mGS6kyVNj95bLtJi/GeFK6op99mT7J87XKiUmd6ee1s DPyfeQdECA590jC7DHoabDnO5Hj0pPXTMnRiutmC9dIi65kJPG8vNFDwUE5j2/uQEVRjAd cPQrogYxNZj3Bc9h91yNCCVnCCPPKFRJ1TE84ktXVOfvhvbS8G8ANurJ+90ircvP5BYmlj 3gnB8ldF504EzB8dK8Rq+/ilJ1BCS2wCKiJz/Etvg2wyVtNxPGWSCYbWNk1M0w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712155; a=rsa-sha256; cv=none; b=wo03hEfY47URZeDFGDXMm13+p6zecKUnls+NkbXIPtMuwE/IWK7Pm6c3agwBJH7R67KRBn IjhyuYYYfk/93ez/bvoai7nw940b5zNVLwqgNjCP2z+YDjhhAfViZPrRiX6BF4jSnY93Fv RxCAwMvTwIGFImaXwv9y5IayJARxZ4WvyDzolZUUAZ6AY25SgXg5BceSPWv3F2nmSzUQJ/ rjGn6JFK1YZdfPUsf9s6fDH7EIpL8nj7VHj5JpZM7gC3YnCnK5bfU2HLIYs7fseh+utxyy SyKIQkoORkqTTSniLP9kELoRpp2LbDfTnH12DWMbfhIhkDtJDx1feWlPBzJgfQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPZy6XHTzmfy; Thu, 23 Nov 2023 04:02:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN42YQh005511; Thu, 23 Nov 2023 04:02:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN42YKS005508; Thu, 23 Nov 2023 04:02:34 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:02:34 GMT Message-Id: <202311230402.3AN42YKS005508@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: 0f3bb3b9ee48 - stable/13 - fuse_vnop_copy_file_range(): use vn_lock_pair() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0f3bb3b9ee48ddd9dcc2079062f27758bfb4b940 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0f3bb3b9ee48ddd9dcc2079062f27758bfb4b940 commit 0f3bb3b9ee48ddd9dcc2079062f27758bfb4b940 Author: Konstantin Belousov AuthorDate: 2023-11-14 22:48:47 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:02:00 +0000 fuse_vnop_copy_file_range(): use vn_lock_pair() (cherry picked from commit 318c56714aa8c170132ebe008f52904e0f119b5f) --- sys/fs/fuse/fuse_vnops.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 988e7aa3278e..0b683a7c63bd 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -880,23 +880,11 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) td = ap->a_fsizetd; pid = td->td_proc->p_pid; - /* Lock both vnodes, avoiding risk of deadlock. */ - do { - err = vn_lock(outvp, LK_EXCLUSIVE); - if (invp == outvp) - break; - if (err == 0) { - err = vn_lock(invp, LK_SHARED | LK_NOWAIT); - if (err == 0) - break; - VOP_UNLOCK(outvp); - err = vn_lock(invp, LK_SHARED); - if (err == 0) - VOP_UNLOCK(invp); - } - } while (err == 0); - if (err != 0) - return (err); + vn_lock_pair(invp, false, LK_SHARED, outvp, false, LK_EXCLUSIVE); + if (invp->v_data == NULL || outvp->v_data == NULL) { + err = EBADF; + goto unlock; + } err = fuse_filehandle_getrw(invp, FREAD, &infufh, incred, pid); if (err) From nobody Thu Nov 23 04:02:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPb02Gsdz51CT8; Thu, 23 Nov 2023 04:02:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPb01Gvsz4Qhw; Thu, 23 Nov 2023 04:02:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712156; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EkPDazf3GvC+p1VoC4eoh5NlVy035eON2iiVFCIqHVg=; b=UF5DkXJnZX/zXRTpACZk+PvBOzm1S9uOCrpmj9r8AcA7PAi6kmn47ntNCUThdGN+eKR7ph qXDlnIpQ8yFtUCIdEZvbTHksNZKd2BbKAsxTTG3aPqmC12NPyXGcVcShxSBflVW0LAd7LV k3aWKjLxtjKd9Xi4+BBkNJnoDglWzSj9w5nMQ0RTgKbJnTzU5sX1+ZoCzBvr8NsLQPUMQ3 N+KjoYRHr1nJ1XyZ13K6WqRx7k9yEh7SRfe0QUEis6TCXZR3y/SenPYmpQINSc9SVhEQjL Figuzd1TY7t0jacu5s8ckZephfPJRey+/wnHLLYgkSVcpWij+pJ1fXq6b3GYHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712156; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EkPDazf3GvC+p1VoC4eoh5NlVy035eON2iiVFCIqHVg=; b=bvDKnNTtDDrzHpwEx3bsegRYaASCSiLW1aL9JUXoK3a3Xcb+u6C6q1XQ5OgJeyDqHiVywW ZziGNdxWDil5VdIIkt4eKFdwr51HfhKyXtRfuJTAA94Mkkc/dRYp/7ClnlDZFwcqJSf0kO lgOfu14csqdasVJVHDBB3HC4waAFJiLtIUPKApa40NsZPJR7xEMcUoP431Shju3Pbgd8Ki kF6qL0vIkuIq0KGUdqhZ4dA281WbcAWuBpKwxutLS4aHkygdk+otQWNDEBpzlpKebXj4xq oniVOcqlurf0KeDpHJ5s0E3adYt7ohP7wMSZf/3Ym2AUIFE/xrI0+O+PrZrJjw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712156; a=rsa-sha256; cv=none; b=u+wVyvYqRPxQd6gQ3gFtSyY49dwajZbHuG5oDR00KgjooC3pvenbPURI/8Cw85D+wuefuR /qmCy/+SdblX5xfqisVMLCQu4vainUK2qMNJl2ZDFCifbukBvjBui2OQK9l/voQKj6Xd8v op8kl2qEUYFs+GctenneKI7RODFOjYhK2OLlHxhrRp6I66f8a0hHgEyK9cWp8KaDswFAkl CW8b8Y3Hm6O7imRvTcACG/yHLN1EiklfRDx4OZXSr4+wbTcHk7Omn0BziviOsniNr5hgbI jE68EKbpC1oZBIULThnOqy4MftWtnQGLuYvc9CerOVukr+t7TKjsLM+jyLbWfA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPb00KX4zn2D; Thu, 23 Nov 2023 04:02:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN42ZiX005550; Thu, 23 Nov 2023 04:02:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN42ZTT005547; Thu, 23 Nov 2023 04:02:35 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:02:35 GMT Message-Id: <202311230402.3AN42ZTT005547@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: 0ea5e0c7ee26 - stable/13 - fuse_vnop_copy_file_range(): add safety List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 0ea5e0c7ee262f0d1178b6ca4871ab353e3aa0e3 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=0ea5e0c7ee262f0d1178b6ca4871ab353e3aa0e3 commit 0ea5e0c7ee262f0d1178b6ca4871ab353e3aa0e3 Author: Konstantin Belousov AuthorDate: 2023-11-14 22:49:35 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:02:00 +0000 fuse_vnop_copy_file_range(): add safety (cherry picked from commit 4c6cded2166111079c6b5e8b2353171dcc7ed0c4) --- sys/fs/fuse/fuse_vnops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 0b683a7c63bd..6871461d26f1 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -862,7 +862,7 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) pid_t pid; int err; - if (mp != vnode_mount(outvp)) + if (mp == NULL || mp != vnode_mount(outvp)) goto fallback; if (incred->cr_uid != outcred->cr_uid) @@ -871,6 +871,7 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) if (incred->cr_groups[0] != outcred->cr_groups[0]) goto fallback; + /* Caller busied mp, mnt_data can be safely accessed. */ if (fsess_not_impl(mp, FUSE_COPY_FILE_RANGE)) goto fallback; From nobody Thu Nov 23 04:02:36 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbPb23jv7z51CYp; Thu, 23 Nov 2023 04:02: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbPb12c72z4QTn; Thu, 23 Nov 2023 04:02:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kaZBKonZg/I99xnq9HSsel6B4rRL6OKfjH80+JO9dE4=; b=jnBvtlbWDqa24Lzut7BSXaTH28G6l8JBGGVQj/TtgGMgY188kVuS3FAJizwufjgDXnTjdp PG/4Cd4AaR/28rnyjL0WUvojKYr6sQMbFfSlWYc/O/rfobP3WMzsuOrn5qmal/WfLNb0Rm xfV1s0R66w6OkeZXJ72NkWRODZGcZqj09DfDJwTw4E4ApX+jcTNld/75Hxn+DlJVgmi49q 9oMohsJs7VCLC2cCiYb2gGaLVvgu6tnj4m6p/DVIO8OtVL1vN5DcGvwuAGIkERdgyH/c/9 cGfmOE9LS9tBDSlOL70n06V8oQg+hayaCLH+q/UD5yBacyycorKmblPF+g88ng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700712157; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kaZBKonZg/I99xnq9HSsel6B4rRL6OKfjH80+JO9dE4=; b=LtXQKUYZDSKmDl2o9WHV/9Kp2VRe4c5wZzcrO2/Lt1oaFXdoGvciWQDZmavi42zODkieJu h3pc2O8vyv3ZqeKrkPyJC7DsB8uHizcBnCuiNla2LJyjPdowpO1R2IVBRdb+vA79lmaLQM QJctxB1w/HnqQM5H41JLuFsway4N83rkOtsr6q1spzlpsBBoofGZJ+LL1xjUobv15li0VS HeGYaZW1rEKoK4by3gSs5EXwCKF0v/cc9eXfLbmB+LPrMXUClsQe3dMQRCBJVe8bpNmQjr U1qMha2mqqvpGdVa2f1wovqhnnvfbAhDfHayvMFXXSTaxhMqmd43QSwRe1gNew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700712157; a=rsa-sha256; cv=none; b=ds05xqupgOQZJIcGTWG3qvw3J7iRtkp++p3L5CteEdCMOcFWt6ysmw71ybcDWCFpb3liAu T8NieGmMqfENvGhPdg1vJMKVKR6GNM68nDx7yVTa+mC78eIeyBrahhpz5Z5lCVtFknaGmJ uuFCx3H22shrzfCvVIPrZeRG2GjWjTkmRyR1A1T3kMCIbiBX3clksOs8S17dBUaa7K/z0I Z9rGa78lUhwbZDpx3uRguwZDEh6ULdPb027jxkt0to+1QmB29zfE8T8pLNxcrpQwNL3k3B tTvSUaDhMG1NY4UywcJVBx+SAZ0+AcxfxFPMHw5/1o6QA/Xm2Yu+sdSbWDtgdA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbPb10bc6zmN2; Thu, 23 Nov 2023 04:02:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AN42bp4005604; Thu, 23 Nov 2023 04:02:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AN42atv005601; Thu, 23 Nov 2023 04:02:36 GMT (envelope-from git) Date: Thu, 23 Nov 2023 04:02:36 GMT Message-Id: <202311230402.3AN42atv005601@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: ecb4d2c6e1d8 - stable/13 - kernel: add missed FEATUREs compat_freebsd 8-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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: ecb4d2c6e1d8685c02e730e8986400a52403d8d3 Auto-Submitted: auto-generated The branch stable/13 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ecb4d2c6e1d8685c02e730e8986400a52403d8d3 commit ecb4d2c6e1d8685c02e730e8986400a52403d8d3 Author: Konstantin Belousov AuthorDate: 2023-11-16 20:47:18 +0000 Commit: Konstantin Belousov CommitDate: 2023-11-23 04:02:00 +0000 kernel: add missed FEATUREs compat_freebsd 8-14 (cherry picked from commit e256f71389fbf0ef6cf8f547342d5f789e69f918) --- sys/kern/kern_mib.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c index 55f1ce5889bb..37b7b46c87a2 100644 --- a/sys/kern/kern_mib.c +++ b/sys/kern/kern_mib.c @@ -630,6 +630,26 @@ FEATURE(compat_freebsd6, "Compatible with FreeBSD 6"); FEATURE(compat_freebsd7, "Compatible with FreeBSD 7"); #endif +#ifdef COMPAT_FREEBSD8 +FEATURE(compat_freebsd8, "Compatible with FreeBSD 8"); +#endif + +#ifdef COMPAT_FREEBSD9 +FEATURE(compat_freebsd9, "Compatible with FreeBSD 9"); +#endif + +#ifdef COMPAT_FREEBSD10 +FEATURE(compat_freebsd10, "Compatible with FreeBSD 10"); +#endif + +#ifdef COMPAT_FREEBSD11 +FEATURE(compat_freebsd11, "Compatible with FreeBSD 11"); +#endif + +#ifdef COMPAT_FREEBSD12 +FEATURE(compat_freebsd12, "Compatible with FreeBSD 12"); +#endif + /* * This is really cheating. These actually live in the libc, something * which I'm not quite sure is a good idea anyway, but in order for From nobody Thu Nov 23 15:48:55 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SbjFz31CCz51jT1; Thu, 23 Nov 2023 15:48: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SbjFz2VMwz4LhN; Thu, 23 Nov 2023 15:48:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700754535; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8oz8b6FinxJhBOYr0qX3oYfjkgoPtpvJ9AbIVLGWoDo=; b=iuRPMBfdCIxEknPicHe/0WHeN21vEZUDJGCed4zgrMLrmIjOEaYuDU4UI+ip7RO8EkRppu IrULy6GvGHCqJIK8tmH72aRYvL/sKqgp5Tnqk5PTQZ1sq3LnnOemnUIGB022KgzoMSlyFI CCyCgN8RCch3dy0dzZaI5W5vUtDIc+ON6p+5gX1an/rOE3U7ZE6MSmPFXECZP0LGtZ1DQJ BzAsT/Rmv+7Pv6kC5IRGGtgongmuFVjtTNYzj4M12MCUY3WmAeNQ5NIV67f1jsMhPYdfjx 8nreIvlslNZ3Jo0yaZ1qfEuKpRj/jL3Hd5nvpBfS5wXMDg/MdPgCZSqNyjWcPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700754535; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8oz8b6FinxJhBOYr0qX3oYfjkgoPtpvJ9AbIVLGWoDo=; b=HvH7x3GK+sn076ZmaruxFnL4oij8jD07oQWrrXWva0k/YiBzOwzPpCAgRVC4HDjS+v6knV GtrZiQIYm0aG9ZYqutCsSmHlLsJECtgY6usL6Ev/d3w6J3UN650vRAcsLtgkV7TXA6tG6f IDnmLjXz004IF1i/C/C2C/gJRV7USABO8hZZAYSxazSYkgOKTj2CL+3Zd+CL+yo2l/H6Tg HYjp2AhohsBRHhI3c7QskHXBsHH8dgW6Ob34/gGP2wiJvE52ijdTVWqSs/drGDHDCpylGF jgdFsmHZyh3Qr92foPEP2DzYE1cwlZtfuX942aDKii34ARypsyTeKScvWTvn0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700754535; a=rsa-sha256; cv=none; b=ORdudfTNaOdIFUWrj/S4wf7bmY6KuanrZmyOLybjOTe2rIse0FZofugXW+wV+g1q7i0UoI jTZ9nK4NsTnK/qzTVCd5iQ2tFf3/Cj95SDTcyG3y7Il/h9LXjs74STS4rpk5VyL+iPDI+R l+IavNcDpe0G+EElzTpk+19aLOr7hkCDL5AI7n1FhWWH6EcsAJ+JbU1ix25p4ZfvRNwYvZ J5vDFtpst6iOLh/DoqMvOPaK6f3s/jHbSCJLc5Zvk+QFGXtr1K8q4wJvQGEah4Y46udXkZ Y8v1w+kgOvEPwXgihmHdrnNr5hf7DH64NjWfv0XLPsPhzptye9NX1cVn9d/uNg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SbjFz1Xz2z177p; Thu, 23 Nov 2023 15:48:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3ANFmtUE073710; Thu, 23 Nov 2023 15:48:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3ANFmtKZ073707; Thu, 23 Nov 2023 15:48:55 GMT (envelope-from git) Date: Thu, 23 Nov 2023 15:48:55 GMT Message-Id: <202311231548.3ANFmtKZ073707@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: a2bb07585b56 - stable/14 - ktls: Remove unneeded vm/uma_dbg.h 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a2bb07585b56d01ead0f6e568036a1bed2f72f60 Auto-Submitted: auto-generated The branch stable/14 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=a2bb07585b56d01ead0f6e568036a1bed2f72f60 commit a2bb07585b56d01ead0f6e568036a1bed2f72f60 Author: Alexander Motin AuthorDate: 2023-11-09 18:53:07 +0000 Commit: Alexander Motin CommitDate: 2023-11-23 15:48:08 +0000 ktls: Remove unneeded vm/uma_dbg.h include It was used in original implementation, but is no longer. MFC after: 2 weeks (cherry picked from commit 1f8a5187ffdd9eb7d78e699f948f7bab3abf60e9) --- sys/kern/uipc_ktls.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/kern/uipc_ktls.c b/sys/kern/uipc_ktls.c index 5d8165ae3e8b..c996157dbc41 100644 --- a/sys/kern/uipc_ktls.c +++ b/sys/kern/uipc_ktls.c @@ -72,7 +72,6 @@ #endif #include #include -#include #include #include #include From nobody Fri Nov 24 14:10:44 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2F1T4Dz52bDn; Fri, 24 Nov 2023 14:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2F0trvz3fmf; Fri, 24 Nov 2023 14:10:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HThg+IG7Yf9E1AMdborCdwm//B4eq33YNMZDpHK0Z8M=; b=pXXUgkGE2XioX97o1L67SnronQWG+gpNj+W/BS+qr8QFhMafFJCIVChTeat47D59qgZTGO O83xhjkeK0cWNT77BgW8q2TFojUVInBGsBScrZMgiuOTn/FrnIGXzisYAkaPcjgHJsMEQk +FOL5UFbuZXQUK5A3DjulDpPjPjtUQ1LP2vnttAb0T9GQAaFnRrE/BlMxb0lx97SyxiGM+ rKd1SGXT8NaHK5j7dwYwGH75yUq+O5IHgYLskRZS24yNcd+5b8ZaqlaXklebdcUDX3sbiC 84AZ78PmnztwJakghuFA9bMEp8whUZxbE6r/Ba5+IbBgzqdC0MFHp2tkAmZAoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HThg+IG7Yf9E1AMdborCdwm//B4eq33YNMZDpHK0Z8M=; b=js6pp6IVYuFZa9lkyxAP+9OwSmaQxCsUix1Oe5vs6fap8vk4yEwX7vzRanJb6wc4wJMpCJ ELDGXI919XwgdWHyyn1X0JvboifvEC6riemm6eU/r7s/RftnEZnI7aSfDfYxNQw3Ew8pLf OHzBLXyqSu4wg44VndAyazOcsiAnY1b8raJ5UEacDTkJq74ByH7hjOG5ReQIk+4ivJonGV ylKQ1gBqkB2ADfH2FGLcz88uf/s/HijEmU57Y2RuFmXYnsq+4QEMdTsshy/MrFQYUQm9FR JBw+rakfkHKksvERuWFSfWTDe7rIxf6lQHEOBWrofQ4oyYRBcFnwcT9hEyfazQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835045; a=rsa-sha256; cv=none; b=HWrN2NI9wJuTLaHrAxFmswYi62w++Y2/FvUxdvmPLzkwn0YRU3ecjPWRoQsw2WJqwAyhzC 7keuWyuyavkZdLQfW41F9jQKjhTNHeuBA6mAvczTgkl3GWhWwpDT7BP463TQIIxo368C+O /JFovZEcomO5nPCLGvmh0DAgQLX9JloJb3wJ0wc5IabA3Q7zDTd8iB1u+a4GBSq7uwYvwv 5iLlggm+SifIr37spc39RXrGPjA15ae16AZ7RoSWCJvwpUX7mwcTYy+dZGsH21uxarqwEO wJQ2ZXX3vHwJ4AqG/hYs0bbYBk70Szz/+4B17gA0q6XSptJPKPvcbaLXhVYJrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2D75njzp1q; Fri, 24 Nov 2023 14:10:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAiar024763; Fri, 24 Nov 2023 14:10:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAi9Y024760; Fri, 24 Nov 2023 14:10:44 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:44 GMT Message-Id: <202311241410.3AOEAi9Y024760@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 8423bf2a9e60 - stable/14 - libpfctl: handle allocation failure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8423bf2a9e60a12e5978ed453eb16533247fa25a Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=8423bf2a9e60a12e5978ed453eb16533247fa25a commit 8423bf2a9e60a12e5978ed453eb16533247fa25a Author: Kristof Provost AuthorDate: 2023-11-17 09:14:59 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:19:08 +0000 libpfctl: handle allocation failure While it's unlikely for userspace to fail to allocate memory it is still possible. Handle malloc() returning NULL. Reported by: Bill Meeks MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 33d55d0d0f33787e9e2796b5000be73af42573bc) --- lib/libpfctl/libpfctl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 72da534ac1df..1ef96f52c19c 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -71,6 +71,11 @@ pfctl_do_ioctl(int dev, uint cmd, size_t size, nvlist_t **nvl) retry: nv.data = malloc(size); + if (nv.data == NULL) { + ret = ENOMEM; + goto out; + } + memcpy(nv.data, data, nvlen); nv.len = nvlen; @@ -190,6 +195,8 @@ _pfctl_get_status_counters(const nvlist_t *nvl, struct pfctl_status_counter *c; c = malloc(sizeof(*c)); + if (c == NULL) + continue; c->id = ids[i]; c->counter = counts[i]; From nobody Fri Nov 24 14:10:45 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2F3TVCz52bH7; Fri, 24 Nov 2023 14:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2F2drPz3fh2; Fri, 24 Nov 2023 14:10:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ag6P2K9M5AMGPI34LfnIr7CCfiK12QEV9cU71bdCmeQ=; b=W2JpSFOuj+mOBdAB2PVjX+5TqA54dXiQ6plxtp2c0/TED72ev9PiV+3z+XQDCB7DR0wktc AK+tMDr3gDkOKMYbYIhnqAVhZh07PUDkUibTxFSOXJqPZMLDMFpXw3EE1vZNv1KRCVh23s rad2bOM5hGigOMoOwni/63eEJ18fLhv+IvJyBu/SZ9ExkVUc+Mqut0M+R5EpimL2TGqpqg oIR244/MZPGamM6kJ3OROPW4uiWRJ3RITCI6NgLGOcWG100c+W2hs7QEKhupVPRZWmC4D/ TSO5TG1W2aVZJKr+GJxdupjSe6JfNng+nMSbNCZ0kmVO7kg5GNAyjAtIqD68NQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ag6P2K9M5AMGPI34LfnIr7CCfiK12QEV9cU71bdCmeQ=; b=MvF1DJiJBwS/GOEtbRmx4vnrYIzZnCRLT5PxpKnZHBOpifJ8x42v6KIV36TGrzTrkJBfoK ibufUHLWGMvjQTxTiW3uHqlxpUqx3WDJN9kKzzT+RcqAV3T2onwZvnSngRiEyOTWokVkhQ quj5imhXRvOGZFiFaEnTljj8i3UyzO9bD0ldZOi0SN1FVxdPr4Rch2E+CBYhkFl+ZU0r3T r7d35EZ39oHZt4zaUcuCfGnSv8UJoO5KAd184e0oAcuk68Qm90ELd9eBGCFQC1KuZA1B1G C5yviiM4cbNnzR1xtGxvSvpdl82TtZSu6SAr0Ouk56iQqD5bfK3pwdzp0dSEgw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835045; a=rsa-sha256; cv=none; b=E7pRPSSXPw+u8SmkbcuysZiFKoHZpGuVmid9LJFjmCXr3j4fQydJzXHms+A1C4KfidyQFU 8VeozLdtgAmC+NAJtRPA6zihtbvNLqnpoYbVRbF8oleeCVuRY87lPJS/RIvOGIpuwYJVsB roPTXFJXuFNqdUC7MvYtK1MYvVFax60hq50Sla9Mw45zxcVq5z4rZvxu00raAhRu3fLtkw MrzwwBT0ObtutOIuPmPkX3zq7EMe9nJQhWrJHvjDN0IOJTKlgprE9Mb3AMisiE33/2usnQ Ye6AVrHDRMKcROh772Y/xypTTz4yzOvDTVGqEq1rB6+oOY1r70umQxenrjd0Yw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2F1jqwzp1r; Fri, 24 Nov 2023 14:10:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAjXG024861; Fri, 24 Nov 2023 14:10:45 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAjIM024857; Fri, 24 Nov 2023 14:10:45 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:45 GMT Message-Id: <202311241410.3AOEAjIM024857@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 3b0e5375ca85 - stable/13 - libpfctl: handle allocation failure List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3b0e5375ca85124a1684ae22b9ef5872ea0f5278 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=3b0e5375ca85124a1684ae22b9ef5872ea0f5278 commit 3b0e5375ca85124a1684ae22b9ef5872ea0f5278 Author: Kristof Provost AuthorDate: 2023-11-17 09:14:59 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:19:04 +0000 libpfctl: handle allocation failure While it's unlikely for userspace to fail to allocate memory it is still possible. Handle malloc() returning NULL. Reported by: Bill Meeks MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 33d55d0d0f33787e9e2796b5000be73af42573bc) --- lib/libpfctl/libpfctl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 7fc22734994b..e5675f2a232b 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -71,6 +71,11 @@ pfctl_do_ioctl(int dev, uint cmd, size_t size, nvlist_t **nvl) retry: nv.data = malloc(size); + if (nv.data == NULL) { + ret = ENOMEM; + goto out; + } + memcpy(nv.data, data, nvlen); nv.len = nvlen; @@ -190,6 +195,8 @@ _pfctl_get_status_counters(const nvlist_t *nvl, struct pfctl_status_counter *c; c = malloc(sizeof(*c)); + if (c == NULL) + continue; c->id = ids[i]; c->counter = counts[i]; From nobody Fri Nov 24 14:10:46 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2G2g58z52b1h; Fri, 24 Nov 2023 14:10:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2G1xbPz3fw9; Fri, 24 Nov 2023 14:10:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yUWAjA+FBf/aX/Zk75IxO4dzFqQkwcro09T4QpmMJoQ=; b=ZTV4QIeU3YkM0qVOvc7gAtvvlvLoFh67PkwNb7fA/ol+qjqUcdKC2xWZXOHbOhc7aLwqcy piauAQn3PQmfWQaij+SQjEYUnWd1y13NLmcKWFk4eHK2LgyNwz+rPlGvWej8VeLOuO/5AE mYyh0BuZMDNP32QqpMfWtO99VDiyDrJ7d4mtitGklLzl2k8RD8MzWs70YbWZrDm108Pm3d TCw4g5k6OrQi9PHAnW1c5p8h+z35AKxlFZWPTELHu+BY3Bg7N1OhB8UWtBTxCSFMGqgsdt 8X/shZYEwfphA6Ya0a227gfTL9ojSFAVjJFRPQrg+KB6keVZrPxws0tHmvCQUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yUWAjA+FBf/aX/Zk75IxO4dzFqQkwcro09T4QpmMJoQ=; b=TAvb6+wdblh68hU3Pn0CbJhpkkjPOzn11ehgHC8lQAebeYvQPQO6H+wQO1kOx0jyTfsf2/ cgvpOg9uFx2eQbg2d5mh2PXEQuRJ3PSKkHndP5TQyoCmTvaBgxvKWJnD+/VZyvn9k+0NXN 10NG33GtHM2HUoBCNqIJVxpppOyYd6j9FHoR3VpK+kgsEuCMTKS2+XMj/CHCkYa5j2mdEJ SPWc5jnCC7ZEcHMkBPytD8koUMdqvk2BpVLGhfq6wN+6z86VcKwtdqVYvDJaVeIhxU4zWf BlE9ykGFdw25PFi0Tc3JpD+QY4Gi7lWZi85BXuJchsS8nZqobysfXHiGbLsuiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835046; a=rsa-sha256; cv=none; b=R9n6RcbCIeq//vlam2FCRnRg9AWSaBZARnhUvtWKiBIJqxZ50nEIy51ZOg3HHgowY5sgk7 e6DRCgokIox5v+6/a3UxDVe9RVET7CfqC5Ju+qbcwq+ho0TGAIhAWew2bdfaZBKKugMXE7 tqIOl7Vli6MDSE3oULcqHMogGghUU5q9lNzOo7i+cc0xJIxwatBgUiIF8NrmBuJ93wxfwL j0Bc5YcIzxVSfiEekKJzurqEIUIyAWmRK83OL/EXtDROpEGuXH/RLMQnlem6Y+yrzboyVc wreRy8fbXke2SErPR6JprXRgrWMMa0nDwy5QU6g/RrenL38rO18lsTIkGr1P3g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2G0zCdznk5; Fri, 24 Nov 2023 14:10:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAkT8024907; Fri, 24 Nov 2023 14:10:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAkLr024904; Fri, 24 Nov 2023 14:10:46 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:46 GMT Message-Id: <202311241410.3AOEAkLr024904@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 68013761ce74 - stable/14 - libpfctl: handle pfctl_do_ioctl() failures better List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 68013761ce7403bce5ab842885eceade23488796 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=68013761ce7403bce5ab842885eceade23488796 commit 68013761ce7403bce5ab842885eceade23488796 Author: Kristof Provost AuthorDate: 2023-11-17 09:19:38 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:19:13 +0000 libpfctl: handle pfctl_do_ioctl() failures better Ensure that we free nvlists and other allocations if pfctl_do_ioctl() fails. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 498934c5ff51e6b0d3199db5d27ed11b1e8b9582) --- lib/libpfctl/libpfctl.c | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index 1ef96f52c19c..f43fb78d9a0f 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -221,6 +221,7 @@ pfctl_get_status(int dev) nvl = nvlist_create(0); if (pfctl_do_ioctl(dev, DIOCGETSTATUSNV, 4096, &nvl)) { + nvlist_destroy(nvl); free(status); return (NULL); } @@ -741,12 +742,13 @@ pfctl_get_eth_rulesets_info(int dev, struct pfctl_eth_rulesets_info *ri, nvlist_add_string(nvl, "path", path); if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULESETS, 256, &nvl)) != 0) - return (ret); + goto out; ri->nr = nvlist_get_number(nvl, "nr"); +out: nvlist_destroy(nvl); - return (0); + return (ret); } int @@ -763,16 +765,16 @@ pfctl_get_eth_ruleset(int dev, const char *path, int nr, nvlist_add_number(nvl, "nr", nr); if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULESET, 1024, &nvl)) != 0) - return (ret); + goto out; ri->nr = nvlist_get_number(nvl, "nr"); strlcpy(ri->path, nvlist_get_string(nvl, "path"), MAXPATHLEN); strlcpy(ri->name, nvlist_get_string(nvl, "name"), PF_ANCHOR_NAME_SIZE); +out: nvlist_destroy(nvl); - - return (0); + return (ret); } int @@ -788,13 +790,14 @@ pfctl_get_eth_rules_info(int dev, struct pfctl_eth_rules_info *rules, nvlist_add_string(nvl, "anchor", path); if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULES, 1024, &nvl)) != 0) - return (ret); + goto out; rules->nr = nvlist_get_number(nvl, "nr"); rules->ticket = nvlist_get_number(nvl, "ticket"); +out: nvlist_destroy(nvl); - return (0); + return (ret); } int @@ -813,7 +816,7 @@ pfctl_get_eth_rule(int dev, uint32_t nr, uint32_t ticket, nvlist_add_bool(nvl, "clear", clear); if ((ret = pfctl_do_ioctl(dev, DIOCGETETHRULE, 4096, &nvl)) != 0) - return (ret); + goto out; pfctl_nveth_rule_to_eth_rule(nvl, rule); @@ -821,8 +824,9 @@ pfctl_get_eth_rule(int dev, uint32_t nr, uint32_t ticket, strlcpy(anchor_call, nvlist_get_string(nvl, "anchor_call"), MAXPATHLEN); +out: nvlist_destroy(nvl); - return (0); + return (ret); } int @@ -1079,7 +1083,7 @@ int pfctl_get_clear_rule(int dev, uint32_t nr, uint32_t ticket, nvlist_add_bool(nvl, "clear_counter", true); if ((ret = pfctl_do_ioctl(dev, DIOCGETRULENV, 8192, &nvl)) != 0) - return (ret); + goto out; pf_nvrule_to_rule(nvlist_get_nvlist(nvl, "rule"), rule); @@ -1087,9 +1091,9 @@ int pfctl_get_clear_rule(int dev, uint32_t nr, uint32_t ticket, strlcpy(anchor_call, nvlist_get_string(nvl, "anchor_call"), MAXPATHLEN); +out: nvlist_destroy(nvl); - - return (0); + return (ret); } int @@ -1284,13 +1288,13 @@ _pfctl_clear_states(int dev, const struct pfctl_kill *kill, nvlist_add_bool(nvl, "kill_match", kill->kill_match); if ((ret = pfctl_do_ioctl(dev, ioctlval, 1024, &nvl)) != 0) - return (ret); + goto out; if (killed) *killed = nvlist_get_number(nvl, "killed"); +out: nvlist_destroy(nvl); - return (ret); } @@ -1466,8 +1470,10 @@ pfctl_get_syncookies(int dev, struct pfctl_syncookies *s) nvl = nvlist_create(0); - if ((ret = pfctl_do_ioctl(dev, DIOCGETSYNCOOKIES, 256, &nvl)) != 0) - return (errno); + if ((ret = pfctl_do_ioctl(dev, DIOCGETSYNCOOKIES, 256, &nvl)) != 0) { + ret = errno; + goto out; + } enabled = nvlist_get_bool(nvl, "enabled"); adaptive = nvlist_get_bool(nvl, "adaptive"); @@ -1485,9 +1491,9 @@ pfctl_get_syncookies(int dev, struct pfctl_syncookies *s) s->lowwater = nvlist_get_number(nvl, "lowwater") * 100 / state_limit; s->halfopen_states = nvlist_get_number(nvl, "halfopen_states"); +out: nvlist_destroy(nvl); - - return (0); + return (ret); } int From nobody Fri Nov 24 14:10:46 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2G4bNzz52b1j; Fri, 24 Nov 2023 14:10:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2G3ff0z3ffR; Fri, 24 Nov 2023 14:10:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MeQqgSrQpuJyxW6HY4AiOB6quG2gImi6xESWmQBeyk4=; b=WiR6TdRquy7zO0umRX673y2BW113fvSHzxAYG7FqLD4FXfpTL+QLU+38lGxvVLvNrR5OwO v1EMnSfPMSwAm4U+VvIG0Yg9soDKCqF4dQpJDWm92kx3jtwLYds3hcXD5/4vqaIjJKSGj1 /O7WIzWee2pUpj2EEF9thEyXpvf3X2dn3IB8Pn3lrUIiyXVzBQRPp48Cb1DtUydBOFkugh b1mTkc9rnjOl1jdy/V4FKWwgsckT8jBLmPwBMu+huYULgVkTRbw+TR+2cg9Rw321WOY4IG +R5tn3CPxdaZocPG4mJlfI5d/qwTTRyZhH56Mih133AB0ODogiLlvbFGB7Xb7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MeQqgSrQpuJyxW6HY4AiOB6quG2gImi6xESWmQBeyk4=; b=ubH772EKr5Q5tEEidkLdFsOTPYtvY7EtDlzYjvlW7ZNt1xmdNu5i93Y4nMJDUQD2Ka4wLi ds+4/UfAHXXLjUAkXMvipbWbFi+CPFdiCko4jFrbISoHEGmtqep5uaBNu+omQu/aWNchfu R+W1/5epC6YW/dAXgm/QzkAnx3gDFdP4o9iUk16a7GHG+TdMJE2ezvS2/XGy5V28cAh4Ys fuUUH2/I6rIqlgvThgn0TVjCPYMFuVgt5n2eISP28WBN2RoIn0w+hvh/W3pchido61e+Lq hFHFN14nPJai9ASeZBxybrlXfoaZDp8O9mt268jkUwcp9GMrzP05JMPsfW3uzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835046; a=rsa-sha256; cv=none; b=JL1UIWsTwPgxhQZ/fG1deUbXDSMfTRPOXkxPU9++9eXVCCVEuzOJC6C+B2/UQtc3QbZtGT VG0BOahkePcASjOTdC8ZhMLnw5wnAGhDSXY3m+KjKX6vgziimWQTEH2C/vS92aydWpjm1o RCfujIB5yfnsAW49aWuheVW3oNv6sa4H2eZ/j2dsV7xhF2wLulxHQWGQRGYESAlovFO/L5 B7lVzt5kueV1Trm8MP81/rGAck1J1tWxJclCzLu/vPUApsbjGyaHqnrtq2X752jMZEfWX6 U0CYiT8SkWA53TX2D7iFF8fql66ScebUxfaZ+fjNStVhSzrmZQQyQpywrKkIGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2G2hpYznk6; Fri, 24 Nov 2023 14:10:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAkcr024949; Fri, 24 Nov 2023 14:10:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAkWI024946; Fri, 24 Nov 2023 14:10:46 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:46 GMT Message-Id: <202311241410.3AOEAkWI024946@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: df4feb98df2a - stable/13 - libpfctl: handle pfctl_do_ioctl() failures better List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: df4feb98df2a2887c05798d9f8752953777d1564 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=df4feb98df2a2887c05798d9f8752953777d1564 commit df4feb98df2a2887c05798d9f8752953777d1564 Author: Kristof Provost AuthorDate: 2023-11-17 09:19:38 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:19:39 +0000 libpfctl: handle pfctl_do_ioctl() failures better Ensure that we free nvlists and other allocations if pfctl_do_ioctl() fails. MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 498934c5ff51e6b0d3199db5d27ed11b1e8b9582) --- lib/libpfctl/libpfctl.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index e5675f2a232b..be45746368de 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -221,6 +221,7 @@ pfctl_get_status(int dev) nvl = nvlist_create(0); if (pfctl_do_ioctl(dev, DIOCGETSTATUSNV, 4096, &nvl)) { + nvlist_destroy(nvl); free(status); return (NULL); } @@ -792,7 +793,7 @@ int pfctl_get_clear_rule(int dev, uint32_t nr, uint32_t ticket, nvlist_add_bool(nvl, "clear_counter", true); if ((ret = pfctl_do_ioctl(dev, DIOCGETRULENV, 8192, &nvl)) != 0) - return (ret); + goto out; pf_nvrule_to_rule(nvlist_get_nvlist(nvl, "rule"), rule); @@ -800,9 +801,9 @@ int pfctl_get_clear_rule(int dev, uint32_t nr, uint32_t ticket, strlcpy(anchor_call, nvlist_get_string(nvl, "anchor_call"), MAXPATHLEN); +out: nvlist_destroy(nvl); - - return (0); + return (ret); } int @@ -985,13 +986,13 @@ _pfctl_clear_states(int dev, const struct pfctl_kill *kill, nvlist_add_bool(nvl, "kill_match", kill->kill_match); if ((ret = pfctl_do_ioctl(dev, ioctlval, 1024, &nvl)) != 0) - return (ret); + goto out; if (killed) *killed = nvlist_get_number(nvl, "killed"); +out: nvlist_destroy(nvl); - return (ret); } @@ -1135,8 +1136,10 @@ pfctl_get_syncookies(int dev, struct pfctl_syncookies *s) nvl = nvlist_create(0); - if ((ret = pfctl_do_ioctl(dev, DIOCGETSYNCOOKIES, 256, &nvl)) != 0) - return (errno); + if ((ret = pfctl_do_ioctl(dev, DIOCGETSYNCOOKIES, 256, &nvl)) != 0) { + ret = errno; + goto out; + } enabled = nvlist_get_bool(nvl, "enabled"); adaptive = nvlist_get_bool(nvl, "adaptive"); @@ -1154,9 +1157,9 @@ pfctl_get_syncookies(int dev, struct pfctl_syncookies *s) s->lowwater = nvlist_get_number(nvl, "lowwater") * 100 / state_limit; s->halfopen_states = nvlist_get_number(nvl, "halfopen_states"); +out: nvlist_destroy(nvl); - - return (0); + return (ret); } int From nobody Fri Nov 24 14:10:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2H6hjPz52b1n; Fri, 24 Nov 2023 14:10:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2H2wKXz3ffv; Fri, 24 Nov 2023 14:10:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V3aMsUMjAeOGEAmA0vctcDyQzTeBRrZ1w6fMMLxaXgQ=; b=cWYmfC5p8abcP3CyezivNuEhnwTf83Faivbb9c66IABtgua3m2V6rQdW6UQVLFqB1CQeUE 2WGpSHVu52+m0fLMfkKDPHcNJEYOosdQPe1l2FdY+CELqQpehQvQJ02iDedu1ZKFmu7SvK W1Z9hjfbjVA7qRC6IaemF0hwMb3wxnW+oBtocoxMZZIv3NpBpCVJOkDm60aq27wFz0N13c Qr3muLPrDOm5lFXnoNOv2aqe44rDCU5KQEb6/jgVYiKRzBdK2cnUm5ls1shjems0/jM20Y 2jh7qTZpoKnBCOhS9f9gGMto28uu7KSlIM7ajWmtp8vvvOaIvz4UmKmYDf1uQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=V3aMsUMjAeOGEAmA0vctcDyQzTeBRrZ1w6fMMLxaXgQ=; b=o87V0pyoJ6mIuSgXCJdNuDAl3iTxg+TqevSKvO+4VSV2vmzb3hg9NXovLdXnCia8RwIJcl brlhBaTAyAGpzpwJTsM5Fyd7a4HQYXmvC/RxhSiYLZZkWZOi6g+TAYijvAnqabwNXqRB/M L03OW2w0vPbWTT7I0pwf9g3j+51KLfLpvpccwfwPamvdBSspM9fXy/tNXEpM0QMEmZRlV7 2ODw+aKkZoprjQV7gu67lt8p+aTJhvCsiwl4s22lhzJ7E9zRrFgte86pAALrOXFF3GHrgQ BMYm1MY4wjO5mGk6HLQZwcsDM7CFawB7fzPe8xNjSZzNNEpIPn4qjZBohAio2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835047; a=rsa-sha256; cv=none; b=BJ2iw8ojCojzl5eiP74+aXUdMka0Ie6dkSM1IJ25oHTyogP6rMPh+ZYKGDZpG2P6mRU8vk rkGWTC5Og9jHlAZ2WUpvlDvGw0+LpFZorV0CdOJ9bL0MEPTVEJQ5fBscHUfr1soXINOGN1 YxD25kt4jb+3hCKl5QnrkfcujOjy6nM01gl0+SUol21TTHpOeaIUf8xrdyDDSODDpTCWTo SVhwZZVE8+/ZQZYwpj4FwuKC17cFfVZ7ylf1f3v9FaaQrZmbw6hU0WLTQ0Dn18VmUQUXU0 YiP86zEafy7uS/a46XIZxhsI8kPFULFbAB/RweYc5ZqREcbkOtiVF8KbXFrscA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2H20hvznsb; Fri, 24 Nov 2023 14:10:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAlpv024999; Fri, 24 Nov 2023 14:10:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAlXb024996; Fri, 24 Nov 2023 14:10:47 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:47 GMT Message-Id: <202311241410.3AOEAlXb024996@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 38663ae5ccc2 - stable/14 - pf: always create multihomed states as floating List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 38663ae5ccc2b83677356306279dec294459614c Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=38663ae5ccc2b83677356306279dec294459614c commit 38663ae5ccc2b83677356306279dec294459614c Author: Kristof Provost AuthorDate: 2023-11-16 16:06:29 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:19:55 +0000 pf: always create multihomed states as floating When we create a new state for multihomed sctp connections (i.e. based on INIT/INIT_ACK or ASCONF parameters) we cannot know what interfaces we'll be seeing that traffic on. Make those states floating, irrespective of state policy. MFC after: 1 week Sponsored by: Orange Business Services (cherry picked from commit 0fe663b2a815dcb41431543940ec51408f418392) --- sys/netpfil/pf/pf.c | 8 ++++++-- tests/sys/netpfil/pf/sctp.py | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 9cb5fe03b5c2..a9870ebe166b 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6131,8 +6131,12 @@ again: j->pd.sctp_flags |= PFDESC_SCTP_ADD_IP; PF_RULES_RLOCK(); sm = NULL; - /* XXX: May generated unwanted abort if we try to insert a duplicate state. */ - ret = pf_test_rule(&r, &sm, kif, + /* + * New connections need to be floating, because + * we cannot know what interfaces it will use. + * That's why we pass V_pfi_all rather than kif. + */ + ret = pf_test_rule(&r, &sm, V_pfi_all, j->m, off, &j->pd, &ra, &rs, NULL); PF_RULES_RUNLOCK(); SDT_PROBE4(pf, sctp, multihome, test, kif, r, j->m, ret); diff --git a/tests/sys/netpfil/pf/sctp.py b/tests/sys/netpfil/pf/sctp.py index 5db52dd993f2..6042badffb64 100644 --- a/tests/sys/netpfil/pf/sctp.py +++ b/tests/sys/netpfil/pf/sctp.py @@ -372,6 +372,7 @@ class TestSCTP(VnetTestTemplate): ToolsHelper.print_output("/sbin/pfctl -e") ToolsHelper.pf_rules([ + "set state-policy if-bound", "block proto sctp", "pass inet proto sctp to 192.0.2.0/24"]) @@ -386,9 +387,9 @@ class TestSCTP(VnetTestTemplate): # Check that we have a state for 192.0.2.3 and 192.0.2.2 to 192.0.2.1, but also to 192.0.2.4 states = ToolsHelper.get_output("/sbin/pfctl -ss") print(states) - assert re.search(r"all sctp 192.0.2.1:.*192.0.2.3:1234", states) + assert re.search(r".*sctp 192.0.2.1:.*192.0.2.3:1234", states) assert re.search(r"all sctp 192.0.2.1:.*192.0.2.2:1234", states) - assert re.search(r"all sctp 192.0.2.4:.*192.0.2.3:1234", states) + assert re.search(r".*sctp 192.0.2.4:.*192.0.2.3:1234", states) assert re.search(r"all sctp 192.0.2.4:.*192.0.2.2:1234", states) class TestSCTPv6(VnetTestTemplate): From nobody Fri Nov 24 14:10:47 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2J11SCz52bW0; Fri, 24 Nov 2023 14:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2H4h6Jz3fqy; Fri, 24 Nov 2023 14:10:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gc7i84h1OzOtPUbFAZEXbbVW5vtS7O8Nu0OAf5cSfhs=; b=a0s41VQMA182WAqFSG+kNkox13RXXJggYAKMdiQrhNHXF1pcL2YYydyK/0x1YE6wa4OoO9 e2X2ksaSWZzob4zbrTsBHzW06MS3xTwCxE903BCXw1H+XjwzjdExaIDIiLfq0d0yV1mAqJ q+xTMbxABWL2Yyhn1DMZ0ol2mGlcSB7xZgxXSpE8B/82PaWHOE1E+mEqbT6CbSk0/VWLFJ 5l882XkNFgZdcrLc4UkTi0Hl9l4QhheI4LlzGJXXLE7hGL5U1qZklcHeslYq/sU6hObgDI g+gJLseFSwltG5KBmgYagh2CQmSFSFkZu/ruP63Kc7dGW2X5ePgVl7LZH6ZMyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gc7i84h1OzOtPUbFAZEXbbVW5vtS7O8Nu0OAf5cSfhs=; b=jIOYPnVDNMfFK0rOJ+7zztPcNaSjysgz+Z2K/1Eqb8JySRSsZccT/j+hZA5QZ8sFMS4uEK IEFfOWAmxCWmaWuTl9YRq5apjscoN0wtXheM3ekefAwOi65UWWTRgHupTnESTXTMu5qXgN 74yDQKa1cml0LOQNj6WV0CswNBBpisKnlYpC2dcU9rPlDIlimuLEzvtUrQZqC8MS3Do99d m5LS8TUzLjlx/wbfYwef0u/FQNkD2oMK1YluxBjuK+n6pUJzKaZgYCcPMrQf3qcKgMWP72 OQ/W2JXmMeMm8Uv6gUP4X2eIxi/HOrva4pSroMFHqqxXQL/kv42X3yPA/oIlKw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835047; a=rsa-sha256; cv=none; b=Kf1J7tU3qEpq/OFAU6paIQjqIq3ppxnoJCjlcQtE7F/oconlGWLCOTX58FrS/v2Iwrqnbb FablYssAbD2x8ZcZg2XiZi+xGbWvaki1LSB/2KlVQ2OxmUG+DkBmxXjAKCoaBZtnWwt5WZ WNvttxPUGelKDJVRIKIBfv7EhlyGeUrCB+EtBaxykmKUT2qRW2jrGsIf9Lm9Pv9UvSoImx Lp5UoBXCNeYTZX3AguIUWOiZy8UTPUh/oJ9KjA8RwKpWguOQvR2mLINy34LUEygqorZCZz QhkmJYkEcgQ+KpyRNVfhXlxYkmY6DWYx6EcRNnhG/SOCkPqeS2x78wFw+1C2wg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2H3m0Pznsc; Fri, 24 Nov 2023 14:10:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAlMH025047; Fri, 24 Nov 2023 14:10:47 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAl11025044; Fri, 24 Nov 2023 14:10:47 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:47 GMT Message-Id: <202311241410.3AOEAl11025044@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 147f278d7d4b - stable/13 - pf: always create multihomed states as floating List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 147f278d7d4b0e9550d6a8e47082251c6ce7d136 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=147f278d7d4b0e9550d6a8e47082251c6ce7d136 commit 147f278d7d4b0e9550d6a8e47082251c6ce7d136 Author: Kristof Provost AuthorDate: 2023-11-16 16:06:29 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:20:22 +0000 pf: always create multihomed states as floating When we create a new state for multihomed sctp connections (i.e. based on INIT/INIT_ACK or ASCONF parameters) we cannot know what interfaces we'll be seeing that traffic on. Make those states floating, irrespective of state policy. MFC after: 1 week Sponsored by: Orange Business Services (cherry picked from commit 0fe663b2a815dcb41431543940ec51408f418392) --- sys/netpfil/pf/pf.c | 8 ++++++-- tests/sys/netpfil/pf/sctp.py | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 1323a1003af8..84ff1fea7731 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -5540,8 +5540,12 @@ again: j->pd.sctp_flags |= PFDESC_SCTP_ADD_IP; PF_RULES_RLOCK(); sm = NULL; - /* XXX: May generated unwanted abort if we try to insert a duplicate state. */ - ret = pf_test_rule(&r, &sm, pd->dir, kif, + /* + * New connections need to be floating, because + * we cannot know what interfaces it will use. + * That's why we pass V_pfi_all rather than kif. + */ + ret = pf_test_rule(&r, &sm, pd->dir, V_pfi_all, j->m, off, &j->pd, &ra, &rs, NULL); PF_RULES_RUNLOCK(); SDT_PROBE4(pf, sctp, multihome, test, kif, r, j->m, ret); diff --git a/tests/sys/netpfil/pf/sctp.py b/tests/sys/netpfil/pf/sctp.py index 5db52dd993f2..6042badffb64 100644 --- a/tests/sys/netpfil/pf/sctp.py +++ b/tests/sys/netpfil/pf/sctp.py @@ -372,6 +372,7 @@ class TestSCTP(VnetTestTemplate): ToolsHelper.print_output("/sbin/pfctl -e") ToolsHelper.pf_rules([ + "set state-policy if-bound", "block proto sctp", "pass inet proto sctp to 192.0.2.0/24"]) @@ -386,9 +387,9 @@ class TestSCTP(VnetTestTemplate): # Check that we have a state for 192.0.2.3 and 192.0.2.2 to 192.0.2.1, but also to 192.0.2.4 states = ToolsHelper.get_output("/sbin/pfctl -ss") print(states) - assert re.search(r"all sctp 192.0.2.1:.*192.0.2.3:1234", states) + assert re.search(r".*sctp 192.0.2.1:.*192.0.2.3:1234", states) assert re.search(r"all sctp 192.0.2.1:.*192.0.2.2:1234", states) - assert re.search(r"all sctp 192.0.2.4:.*192.0.2.3:1234", states) + assert re.search(r".*sctp 192.0.2.4:.*192.0.2.3:1234", states) assert re.search(r"all sctp 192.0.2.4:.*192.0.2.2:1234", states) class TestSCTPv6(VnetTestTemplate): From nobody Fri Nov 24 14:10:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2J6bMhz52bTf; Fri, 24 Nov 2023 14:10: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2J3xR4z3fnb; Fri, 24 Nov 2023 14:10:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZNTjTv7z9lNHKoxQe4xGKCiALyYx7owl/PHCudpol+I=; b=qlvWC2rECwkoDAdlGwrste+oeqtSP0EmVjdExC39VI3yDJcgimaZYwZ2s/oZfv6lIUlny3 lcQ1+lKZivFJ5iKs6ZCALABqFeZHYQRRsy5OK9M2H/wlplg2skzsyy+z/u2WArbaWoFX58 V4plQHFspz++k/rKEF7h7kScoLJm6eXXFvwCILQCrOXkUUbkP8PI31T9hHqhxqycQsquMa 0q2iZ13RxwYaYqv8tYxUNpVr0wIs29GJvCQfj5DAOp5TqwYBUmjHDMT2vbTDfWTZ7WGkTn 3VT1dyFMioceM6hCF7s63jGxK2x35tlNYtoKig5MKIg/10BG4V8XA6MxdSC7ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZNTjTv7z9lNHKoxQe4xGKCiALyYx7owl/PHCudpol+I=; b=fdivcDgas3KYOgk9ij4oQybPK3/Q/CvhjoCcZk04fJDbBj2Rg72hxr9s0qa925EAP6k3Wi fAyqjHfPlazs8GsaTRHPgd568M+iyXtXJ+QVcyWVEcdY7JvJw/ZnV4lK+J1Lo755ZBrzUq F2amtJvyXbuQlJUpJZcm/vTFCBz6yLwGsZWHiCduQID750VDwpfb82FaUMxn2rrqvhWkHV 5zmr9bp+xRTiqCLHDeEUobqzyzcti7woXt/W9Oq9fDQlkNABx0vvujQQZL5PG4LEOCh+fU J7ZyYKhpfK/bxS8eycTB9VHnHzjYuMhJaQ17X/NLlAQGMmlbPtxHTn+tRHcB/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835048; a=rsa-sha256; cv=none; b=YiIhHVciscnT6bSJ1wyvYo/dreyt+SoIE5+zowYwxZrBUEUGGv8FJjyg8y1+JzKUXFrR0r uwcmzHTsL2MPZK8tbu8+sicI78HXx+g0wwCor1JRr7bybgOpIure/wOVJkxOTQJs+cRaoo atbCFm7Hp9Q7IcilGsdQHtFml3KygFZRyR/uizSwI4JYF9rs6W0hFD/DZ/hjKdHygCIo/e O3CkHLriTmunmrZBHEsWcojMhJrsn5dJli8HJ43cgVZ905uds+wzXX4k5cpA7hTFN3n0Y3 i/fcTyRq1I1F9URxhX3mFkx2bl7hkojYdqdPvhhkFxOgCEsWpy3GLEe6g5lxgg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2J32f2znY0; Fri, 24 Nov 2023 14:10:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAmYe025100; Fri, 24 Nov 2023 14:10:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAmSJ025097; Fri, 24 Nov 2023 14:10:48 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:48 GMT Message-Id: <202311241410.3AOEAmSJ025097@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: 4b25aa8d20ba - stable/14 - pf: skip urpf check for sctp multihomed states List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4b25aa8d20ba22dea992d7893ac074d5d54ac807 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=4b25aa8d20ba22dea992d7893ac074d5d54ac807 commit 4b25aa8d20ba22dea992d7893ac074d5d54ac807 Author: Kristof Provost AuthorDate: 2023-11-16 19:55:02 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:20:32 +0000 pf: skip urpf check for sctp multihomed states When we create a new state for multihomed sctp connections (i.e. based on INIT/INIT_ACK or ASCONF parameters) we cannot know what interfaces we'll be seeing that traffic on. These states are floating states, i.e. on "all" interfaces. We cannot do reverse path filtering for these states, so do not do so. MFC after: 1 week Sponsored by: Orange Business Services (cherry picked from commit a8dbbeb1c71b6f302818b8e041a2b50486b90180) --- sys/netpfil/pf/pf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index a9870ebe166b..082987d34b07 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -7160,6 +7160,9 @@ pf_routable(struct pf_addr *addr, sa_family_t af, struct pfi_kkif *kif, if (af != AF_INET && af != AF_INET6) return (0); + if (kif == V_pfi_all) + return (1); + /* Skip checks for ipsec interfaces */ if (kif != NULL && kif->pfik_ifp->if_type == IFT_ENC) return (1); From nobody Fri Nov 24 14:10:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2K3Lpsz52bKS; Fri, 24 Nov 2023 14:10:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2J5JCwz3fj8; Fri, 24 Nov 2023 14:10:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/+CUX2pFcSJnmAwVGi6hgDC6sTfO2Mhs3j1H9fugWro=; b=k5fDqLIM7ZgHkMngwIGtAPQTu1ep5X5uWmn5o1ytKHFOH4V7sW9IqNa3gcNbOvDm6RPANP tEmnQYc4BEFBrPr9/2SC3NZBVVy4tvbJrU1i5WBWQyQAwgrFnp9jtKzH4uhggIkk22w+YQ Uplnq1oUre+DnaNVCQEGuVn2rjltTa5aiyL9lrLDqJ83v6fYuqjLCbw5/41LqPvE9kDzQS 62Y85khS0ktU7Rlb79pYkz6xGBPs9rK73whlZIvbLKIcm4lt5/Ze4mpQ5s/neq0rhUE8ku cVdbxvfsJr03cyK2ZMNRA/b3uy5pyruqJYvMQgR0juGLK2xSIKdnF1CmmAd44Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/+CUX2pFcSJnmAwVGi6hgDC6sTfO2Mhs3j1H9fugWro=; b=BZ1yWnyFrt3yc+6E/KVdsXv1wv+Med+dcBncGbzqIX+o40/oTJ1v6rBuuRiN6nHo5au42L jPy7szW7IJtxX5RO8lxPQYQjdn9UiwkzCU/T3uiDOZgwy2VF9nvV0K/UcemYFZvZSIwiBn RmtYZw6T/hHdV24MMLKlKzlkbKItaFHGuLuS1ZLqtGEKv37zx+89Ub01CH0Owb9X/5Z7Uo M2AHP0mEb9yOp9/yKfVl8Auj2PCKS6UVuD6rZuHR5ohEq4i7DQERpvQIDRLDwJPnjG//an pHhSp/ihFNeAWBZDqEXA1y6gAmk0Tq2DcXvMAhgZVBMqfxttVrWRkLeiCOV2Kw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835048; a=rsa-sha256; cv=none; b=Rkqxh5AbmqMgltASNASjdE8SAdjPo/eEGpP4NkeoC3pHHg19osyHyQM7qWMxS6sVtbB6f0 B9GD3dajrQz7/FMmI/7QOHF2eaKirgMIRGWd7RIzYZp1R4oLKQ+7n59KhUqYJYrY4RKdTp Ra++kEKEg8xxocmM+n2/sFxK0CnczhyyAdEPm3W6T3n2kfCRmabh2ffFSNcD2nrGw55fpl rOUepbyRBTK1c2pq+DQthZQl3/73cBFJsLeWGQueRLUozKRyze2Old7Y7FrGCXw+v3ruxr iDI/gQjH9bwfPbAqEvdvoKKZ6zZ42z4+eJHE5UYn1R+hLHQ3Im6CoGaotklQ5Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2J4NtBzp1F; Fri, 24 Nov 2023 14:10:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAmNH025151; Fri, 24 Nov 2023 14:10:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAm56025148; Fri, 24 Nov 2023 14:10:48 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:48 GMT Message-Id: <202311241410.3AOEAm56025148@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: a0fb8e16fe3d - stable/13 - pf: skip urpf check for sctp multihomed states List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: a0fb8e16fe3d43445c1ac312ddcf38ceb50f23d1 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=a0fb8e16fe3d43445c1ac312ddcf38ceb50f23d1 commit a0fb8e16fe3d43445c1ac312ddcf38ceb50f23d1 Author: Kristof Provost AuthorDate: 2023-11-16 19:55:02 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:20:36 +0000 pf: skip urpf check for sctp multihomed states When we create a new state for multihomed sctp connections (i.e. based on INIT/INIT_ACK or ASCONF parameters) we cannot know what interfaces we'll be seeing that traffic on. These states are floating states, i.e. on "all" interfaces. We cannot do reverse path filtering for these states, so do not do so. MFC after: 1 week Sponsored by: Orange Business Services (cherry picked from commit a8dbbeb1c71b6f302818b8e041a2b50486b90180) --- sys/netpfil/pf/pf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 84ff1fea7731..278c1db118cf 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -6570,6 +6570,9 @@ pf_routable(struct pf_addr *addr, sa_family_t af, struct pfi_kkif *kif, if (af != AF_INET && af != AF_INET6) return (0); + if (kif == V_pfi_all) + return (1); + /* Skip checks for ipsec interfaces */ if (kif != NULL && kif->pfik_ifp->if_type == IFT_ENC) return (1); From nobody Fri Nov 24 14:10:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2K639Jz52bBy; Fri, 24 Nov 2023 14:10:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2K549xz3ftn; Fri, 24 Nov 2023 14:10:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Lj90uDqOgwfvR6MbCkApE21M2Xm7fxrF32lkZ88+Er8=; b=N7z58UmPFU0r90xzqNeAs9zgRMJiqxu0sHluXWlVlXR/FD/54YPaWuKjxEagNp+xPvqAXo sNM/GYIUOkFScs/haEkOTK+3lf/evujHBOx2vyz+hfTx0yCfn2nvxqYDMJnJEoM5eV2yen h63bwlUH3A2CBNXyHcJlzXNnTBHC/pCaNvMM1auasYFRfNLX6A6tiJ5dV4SIJaZMwbCFju I/+joZoNRDn1TfzfZNMb5KVF19fEfzXN43t36dDRjnHemS5gt1VMmGEr1iecIZgzsoGQHu qVOln+GryLZq8W9oKZdW85wDFagm5mGgd6l+6KPXDPaXmKXPoFqWbr9QtCxr0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Lj90uDqOgwfvR6MbCkApE21M2Xm7fxrF32lkZ88+Er8=; b=RNxlNec9JkI0fN5Ixbtw+7XQ2+itryI7/HghxMUDGz3UtUcwlFvPEDF8cN+j7V3nyBHgxw j4qmYXuazCVLQ9/jx1gD5Os2nXexRafqzoHO83IJr+eC7LGJLkKALT1c9cDK2xCd4DdFwU VS8e0Q9pLWozmU7DSqAwVLIGtgiqvvAkouOrKA36e6Avx6j+Fp6BOazNdKCGd+vO2A0kEb hIFcSthepLS4RSVg8ftPin8BClLCBd4HWTXSoo9gp0vUDsc9PSnmTJ1/QYU8BU29nwvyOm aXbFir8kj0sB20fVw0YtckYxVtz89bLfOgl+hAlKKpJRoFj342z6m7vGIiXNCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835049; a=rsa-sha256; cv=none; b=qrFv1K4c5RmO7JLGUBAelMSQTHWNHQ/O6SUdulkE4O7ezj9ufUEHq+RX1vUAeSldjx01dq nBOafqsypNLXGDLMUXQYxftCeeF0XzLA9RlurIuKJuY2dQ4fv7cGB7KT9GM6ApAWeqL28B YuO6M2ZOCXISDD+beHbyIPJtzI/Ojl13M/YqD7pUlna3L4Cm9ScYbEyQr6lx3B9HT6dZUe qd8Jgux0zWDy4zsNjd3WSHYbkWJ1D9ngesDwn5p6pkYbvH+f7ij8vv/PDSkeck4K23YU6X BQ9PstvK1dRKFRedk4vOE1059vnb98TdLAK/1LssAna1UGEPtgz2ZRQZBq/d3Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2K46RDznqG; Fri, 24 Nov 2023 14:10:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAnWm025196; Fri, 24 Nov 2023 14:10:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAnVO025193; Fri, 24 Nov 2023 14:10:49 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:49 GMT Message-Id: <202311241410.3AOEAnVO025193@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: ad57a81170fc - stable/14 - pf: sctp heartbeats confirm a connection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ad57a81170fce9f638a6d57d60cb46362363dd1d Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=ad57a81170fce9f638a6d57d60cb46362363dd1d commit ad57a81170fce9f638a6d57d60cb46362363dd1d Author: Kristof Provost AuthorDate: 2023-11-17 12:52:34 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:20:45 +0000 pf: sctp heartbeats confirm a connection When we create a new state for multihomed sctp connections (i.e. based on INIT/INIT_ACK or ASCONF parameters) the new connection will never see a COOKIE/COOKIE_ACK exchange. We should consider HEARTBEAT_ACK to be a confirmation that the connection is established. This ensures that such connections do not time out earlier than expected. MFC after: 1 week Sponsored by: Orange Business Services (cherry picked from commit 7093414c63b08864dd9348f63e67b39a70c8b1be) --- sys/net/pfvar.h | 17 ++++++++++------- sys/netpfil/pf/pf.c | 2 +- sys/netpfil/pf/pf_norm.c | 10 +++++++++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index 15fa671ddcbe..27428ad161f8 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -1580,13 +1580,16 @@ struct pf_pdesc { #define PFDESC_SCTP_INIT 0x0001 #define PFDESC_SCTP_INIT_ACK 0x0002 #define PFDESC_SCTP_COOKIE 0x0004 -#define PFDESC_SCTP_ABORT 0x0008 -#define PFDESC_SCTP_SHUTDOWN 0x0010 -#define PFDESC_SCTP_SHUTDOWN_COMPLETE 0x0020 -#define PFDESC_SCTP_DATA 0x0040 -#define PFDESC_SCTP_ASCONF 0x0080 -#define PFDESC_SCTP_OTHER 0x0100 -#define PFDESC_SCTP_ADD_IP 0x0200 +#define PFDESC_SCTP_COOKIE_ACK 0x0008 +#define PFDESC_SCTP_ABORT 0x0010 +#define PFDESC_SCTP_SHUTDOWN 0x0020 +#define PFDESC_SCTP_SHUTDOWN_COMPLETE 0x0040 +#define PFDESC_SCTP_DATA 0x0080 +#define PFDESC_SCTP_ASCONF 0x0100 +#define PFDESC_SCTP_HEARTBEAT 0x0200 +#define PFDESC_SCTP_HEARTBEAT_ACK 0x0400 +#define PFDESC_SCTP_OTHER 0x0800 +#define PFDESC_SCTP_ADD_IP 0x1000 u_int16_t sctp_flags; u_int32_t sctp_initiate_tag; diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 082987d34b07..84bd75276af7 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -5932,7 +5932,7 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, dst->scrub->pfss_v_tag = pd->sctp_initiate_tag; } - if (pd->sctp_flags & PFDESC_SCTP_COOKIE) { + if (pd->sctp_flags & (PFDESC_SCTP_COOKIE | PFDESC_SCTP_HEARTBEAT_ACK)) { if (src->state < SCTP_ESTABLISHED) { pf_set_protostate(*state, psrc, SCTP_ESTABLISHED); (*state)->timeout = PFTM_SCTP_ESTABLISHED; diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c index 5f2b8e9d36ff..2625966a0278 100644 --- a/sys/netpfil/pf/pf_norm.c +++ b/sys/netpfil/pf/pf_norm.c @@ -2115,12 +2115,20 @@ pf_scan_sctp(struct mbuf *m, int ipoff, int off, struct pf_pdesc *pd, pd->sctp_flags |= PFDESC_SCTP_SHUTDOWN_COMPLETE; break; case SCTP_COOKIE_ECHO: - case SCTP_COOKIE_ACK: pd->sctp_flags |= PFDESC_SCTP_COOKIE; break; + case SCTP_COOKIE_ACK: + pd->sctp_flags |= PFDESC_SCTP_COOKIE_ACK; + break; case SCTP_DATA: pd->sctp_flags |= PFDESC_SCTP_DATA; break; + case SCTP_HEARTBEAT_REQUEST: + pd->sctp_flags |= PFDESC_SCTP_HEARTBEAT; + break; + case SCTP_HEARTBEAT_ACK: + pd->sctp_flags |= PFDESC_SCTP_HEARTBEAT_ACK; + break; case SCTP_ASCONF: pd->sctp_flags |= PFDESC_SCTP_ASCONF; From nobody Fri Nov 24 14:10:49 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScH2L119Lz52b3y; Fri, 24 Nov 2023 14:10:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScH2K6kT9z3fyt; Fri, 24 Nov 2023 14:10:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZZd7RFUIwpZwQwZ+22WsqJETzj4gtd9XSf+RuC451lE=; b=unZE/piXL+YSxgTH/iIh3nAfRYcTpHh3a4eqH/5XiU5vvMoPbhAyi4yssy0Ro6hHsuJM8R +ZuAR8Dym3AFNRvPUTeV2Be6NPKJ01VyqZ5j5yOIK2HO9ZwqdKY3sZvS6sEjD+/E+4m0Ga p0uWmM2e3+DF/y/i4zyTsB+Hc4h9A9s5wDonWoxH/KPIrVhbymG9TAkxePAr7z9z2Y8lzZ gd2VtPMaG3AFJTtUCNaQqThQ0DnsAZjh3NJSEu66j1P2GvoQjQAkbpji58TBQJiV6cbQpS 9mmWt1zsy2+JRSdGvgNkrOu3SZXgekEN9/DXNWjF06AVQockhF2w0NO4hpPfeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700835050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZZd7RFUIwpZwQwZ+22WsqJETzj4gtd9XSf+RuC451lE=; b=B05Kk5mLQ0CgC+Sre4ayJcNsRsl3PVYGLqeMpLwMAx1+Okw+XEH3h2hE2bPASF5UrXElMH 5111gelqk+6GJK4a1TEOSTf5lyg7D94iOFO6HeetUhsRKvPb+u3oHHuPQxlSvcxXPLhz5E zaODReQLvQty1f+q8bcsz4rcOtwsMPlrzj6qsCzGTGBSNncFSu03ppmrJ2/iGe8LUaT+JN 8va4Xgz67tvk6fWCTRP6UNVJg/OJakTPTANrTxwoWFsti7ng7CqG2ickVrpteB4zUZ0z5h dCGW39nZSNr0/KocYBcqPQzWdYL9/w9zQggDAz9GAHJPGvFvGJdostye3rrm+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700835050; a=rsa-sha256; cv=none; b=rG4+vlwi43Fr1eK5vgidU9NIlMz/uVV2+Ha9LUop6Lmt+nb1ZmYmLwjFXF0OXjpRuUFPaK eQiTLSsMO9nNCztCeG3cnvpXyN3LT8rB9XdGvC0ezdXHC+VDde23APu8bnTXVQMPh+63J7 bpUTITTAxpDUXIBYAYGXG3piYSmeikNI9nrCVf2h+G1S07KZ/hRQGbJOitd69WEtfSaMsx wqDq7hQWvmS8Ycy/2P7G52dUiEapuWwK6nC1KsnEAZJ+Jm89eBeYnCgvrOS01FOAEcdEsL Cwpv6jDprKTftjqyB8WeMrsSAE7V3izFUMorG1t0SVPSsaQkE7xhNHi7crMQpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScH2K5fp3zn1x; Fri, 24 Nov 2023 14:10:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOEAnxc025241; Fri, 24 Nov 2023 14:10:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOEAn1H025238; Fri, 24 Nov 2023 14:10:49 GMT (envelope-from git) Date: Fri, 24 Nov 2023 14:10:49 GMT Message-Id: <202311241410.3AOEAn1H025238@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: c5abe31a4f7d - stable/13 - pf: sctp heartbeats confirm a connection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c5abe31a4f7d8d518c5d25ebed3127d23e2b1c89 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=c5abe31a4f7d8d518c5d25ebed3127d23e2b1c89 commit c5abe31a4f7d8d518c5d25ebed3127d23e2b1c89 Author: Kristof Provost AuthorDate: 2023-11-17 12:52:34 +0000 Commit: Kristof Provost CommitDate: 2023-11-24 09:20:42 +0000 pf: sctp heartbeats confirm a connection When we create a new state for multihomed sctp connections (i.e. based on INIT/INIT_ACK or ASCONF parameters) the new connection will never see a COOKIE/COOKIE_ACK exchange. We should consider HEARTBEAT_ACK to be a confirmation that the connection is established. This ensures that such connections do not time out earlier than expected. MFC after: 1 week Sponsored by: Orange Business Services (cherry picked from commit 7093414c63b08864dd9348f63e67b39a70c8b1be) --- sys/net/pfvar.h | 17 ++++++++++------- sys/netpfil/pf/pf.c | 2 +- sys/netpfil/pf/pf_norm.c | 10 +++++++++- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index 9c6f5bccae02..11bde6224eb3 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -1329,13 +1329,16 @@ struct pf_pdesc { #define PFDESC_SCTP_INIT 0x0001 #define PFDESC_SCTP_INIT_ACK 0x0002 #define PFDESC_SCTP_COOKIE 0x0004 -#define PFDESC_SCTP_ABORT 0x0008 -#define PFDESC_SCTP_SHUTDOWN 0x0010 -#define PFDESC_SCTP_SHUTDOWN_COMPLETE 0x0020 -#define PFDESC_SCTP_DATA 0x0040 -#define PFDESC_SCTP_ASCONF 0x0080 -#define PFDESC_SCTP_OTHER 0x0100 -#define PFDESC_SCTP_ADD_IP 0x0200 +#define PFDESC_SCTP_COOKIE_ACK 0x0008 +#define PFDESC_SCTP_ABORT 0x0010 +#define PFDESC_SCTP_SHUTDOWN 0x0020 +#define PFDESC_SCTP_SHUTDOWN_COMPLETE 0x0040 +#define PFDESC_SCTP_DATA 0x0080 +#define PFDESC_SCTP_ASCONF 0x0100 +#define PFDESC_SCTP_HEARTBEAT 0x0200 +#define PFDESC_SCTP_HEARTBEAT_ACK 0x0400 +#define PFDESC_SCTP_OTHER 0x0800 +#define PFDESC_SCTP_ADD_IP 0x1000 u_int16_t sctp_flags; u_int32_t sctp_initiate_tag; diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 278c1db118cf..c09f80d2f82b 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -5341,7 +5341,7 @@ pf_test_state_sctp(struct pf_kstate **state, struct pfi_kkif *kif, dst->scrub->pfss_v_tag = pd->sctp_initiate_tag; } - if (pd->sctp_flags & PFDESC_SCTP_COOKIE) { + if (pd->sctp_flags & (PFDESC_SCTP_COOKIE | PFDESC_SCTP_HEARTBEAT_ACK)) { if (src->state < SCTP_ESTABLISHED) { pf_set_protostate(*state, psrc, SCTP_ESTABLISHED); (*state)->timeout = PFTM_SCTP_ESTABLISHED; diff --git a/sys/netpfil/pf/pf_norm.c b/sys/netpfil/pf/pf_norm.c index 071387c12983..d1ffa21d7873 100644 --- a/sys/netpfil/pf/pf_norm.c +++ b/sys/netpfil/pf/pf_norm.c @@ -2084,12 +2084,20 @@ pf_scan_sctp(struct mbuf *m, int ipoff, int off, struct pf_pdesc *pd, pd->sctp_flags |= PFDESC_SCTP_SHUTDOWN_COMPLETE; break; case SCTP_COOKIE_ECHO: - case SCTP_COOKIE_ACK: pd->sctp_flags |= PFDESC_SCTP_COOKIE; break; + case SCTP_COOKIE_ACK: + pd->sctp_flags |= PFDESC_SCTP_COOKIE_ACK; + break; case SCTP_DATA: pd->sctp_flags |= PFDESC_SCTP_DATA; break; + case SCTP_HEARTBEAT_REQUEST: + pd->sctp_flags |= PFDESC_SCTP_HEARTBEAT; + break; + case SCTP_HEARTBEAT_ACK: + pd->sctp_flags |= PFDESC_SCTP_HEARTBEAT_ACK; + break; case SCTP_ASCONF: pd->sctp_flags |= PFDESC_SCTP_ASCONF; From nobody Fri Nov 24 16:37:56 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScLJ42wJbz52PfK; Fri, 24 Nov 2023 16:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScLJ42T9Kz3XY5; Fri, 24 Nov 2023 16:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700843876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FtYyd6EUA9aAK8BFhM9vVkRQr5ncDaxnHrUy9XSTvUE=; b=mv0/ns/jIX6SaZtKDqtmCBir2cGYFW990jpr+Dn33Funi2i9RVyVUTPBfWgFkkVhcxkkwW hVxAKE+ofAL57eV1R8YKAxsC7YYKAI9rzpWr7UUKZQKu9oGiMhC2aj9oRNX8KA8cb/OO1y 9s/3rLwxZ8w8cvArxafqm8p3r2LkRAf0Ym5x+WqDAdXywTIYAIapULGb40HqsEQKt4I38c Vxk5dEqnppvTsyBmta9fXJP4Nt5o+wOiAiWVZkHKrGqUhY0VB3hlkXUeuI85DEseP7eaJV bIPN7W/QSN/0jKbdacTN4k/wOn/nocFoOoWumn9Q4Lx9QIkma1Bs2juDR9Dfeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700843876; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FtYyd6EUA9aAK8BFhM9vVkRQr5ncDaxnHrUy9XSTvUE=; b=LUk1H84vu1VQT/Odwpsd2+FxrK1ubTkX9t/Dq2pMziUAfKHuDFks1LA4+K1k//Q03HHeI6 KubPBTmC4LQD4U3gK8C3Dvphd23KmQkfxzJVme79ohfVpCmTn70AzENfceh13DcTb3mE/J 51LLY7o7PVoNJUiezGQjv8vuzB+haTFya0kDtR2JI7Mg6xOrgMDagS9DvJJdp89CNfs/7w 9CNUr69MuhUWVA/xxU7XIbA+SdTsFpvb2uV7fwozzjASJk8MRlVX/ULjfE6S3E4EoDJ78G yukCDiE/o87+G9f54INRGEVXXw4IdveDHI6zc9lhXV87yXz5h3CNfRQRXCTFmg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700843876; a=rsa-sha256; cv=none; b=U0R2PH9Jd4M+hzenkb4juzF8DeH4tO1a59Z2hcyblGLhTmOj+q0YqOcvhFbYw7Fn2iv8h1 T4L6hRo1iOSVOKFxsOFX9QdouNVy4aLJqh3ly5OICFSqCqdu9eh9HvoQ6qy9LdEsxYzrFm YcOX0O5ks2VeZXoiluXb/aaO8j2GFAnl3MJUY+Mp6FBesKKBcUKyu2nZpsuN93nK6yzkqe BFtsK5wi9wlssTvaOWT5Ss2anPXUWUL067T6WvJw810BF9UWE/iHfey9CF8zF4qARnc9lx lOlLZVfCcG5PhGT73tck067iCmnuQv07SJ4GHGNNpUKdLQtL1opZC3iToLkFHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScLJ41YJyzsHf; Fri, 24 Nov 2023 16:37:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOGbuff067778; Fri, 24 Nov 2023 16:37:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOGburw067775; Fri, 24 Nov 2023 16:37:56 GMT (envelope-from git) Date: Fri, 24 Nov 2023 16:37:56 GMT Message-Id: <202311241637.3AOGburw067775@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: 187268c471c1 - stable/14 - bhyve: Fix the GDB_LOG build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 187268c471c1708371365dd1c56bd3fec1120c03 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=187268c471c1708371365dd1c56bd3fec1120c03 commit 187268c471c1708371365dd1c56bd3fec1120c03 Author: Mark Johnston AuthorDate: 2023-11-11 17:14:49 +0000 Commit: Mark Johnston CommitDate: 2023-11-24 16:37:43 +0000 bhyve: Fix the GDB_LOG build MFC after: 1 week Fixes: 7d9ef309bd09 ("libvmmapi: Add a struct vcpu and use it in most APIs.") (cherry picked from commit 4e288572b85815bcefb929fcc4f20c01a459e9db) --- usr.sbin/bhyve/gdb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/gdb.c b/usr.sbin/bhyve/gdb.c index 55178677f837..a6c0700308e7 100644 --- a/usr.sbin/bhyve/gdb.c +++ b/usr.sbin/bhyve/gdb.c @@ -764,7 +764,7 @@ gdb_cpu_add(struct vcpu *vcpu) CPU_SET(vcpuid, &vcpus_active); if (!TAILQ_EMPTY(&breakpoints)) { vm_set_capability(vcpu, VM_CAP_BPT_EXIT, 1); - debug("$vCPU %d enabled breakpoint exits\n", vcpu); + debug("$vCPU %d enabled breakpoint exits\n", vcpuid); } /* From nobody Fri Nov 24 16:37:57 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScLJ54BJBz52PfM; Fri, 24 Nov 2023 16:37:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScLJ53TQKz3Xk2; Fri, 24 Nov 2023 16:37:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700843877; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x7x9pqj58nohW/VoWSjBBohDc42PvDYHrWwmVQlc5Oo=; b=wqHuDNhMBxn9iICdwTWFMYxe8yFZ7Vt1pY8dVXCp/vge7fIDpPXvQw6AQMu7h/h9FrKDdT VGQVN4IkdCbt7VUrkF4xD2GAQKNprDp4zB4deMs/skfgkPWUOiYCkjtkcQV08NYHCRynVE hyuZK3H2MVXKT3LvCuA9uDwz+9TDNxIcVMmH5EOIRKzf8BhBHjaDWgzFN9sQ8v3226uC/H JOus5UjwBaHktTzzPVifMBTZe5CGkvuiLg682lv01JMZS57+YECHBbKyRsXTTCUmIkQXMm RLuz+EwZs+MpFwR6C2hH8txXzdtGiUuqAQz/R0M9qFLgtxOyx44PZiCANya/1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700843877; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x7x9pqj58nohW/VoWSjBBohDc42PvDYHrWwmVQlc5Oo=; b=FxhP93zLRD5M3seeTXOFJGL15ofMcpAtJKcrz2YKzBmk1H1HybPorYPIZxjWcgBTNBlam0 +dMaq8ZEOwhGRAUahCYYUIu2lnjglmE3I21GXoXt0C/6WvVm2qBjtANgIIyVy5r2PAGTSU VyWyZH4LUgr+kwAqQWu0G9ouceSJtdSA1uw7y5OOab7UTnj84L414DFs6Qw+528MxXMHH7 4GKk3O+EGQdOHlu8wQNfuPwEyPfG1N013JRUZwqwPqC9uHTY3c/yFWHEM/tRoKsunyG0ut oc3YWy1uRUfb8EFmQLqgGZPcEgj407o8YHp4QAQS+FZMBgtZG2vun5aKvIo99A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700843877; a=rsa-sha256; cv=none; b=JVIv26Fk4e5pjipYzVNkao3kgxDYjfIsBBotR2xVePfCKkMzxCcAshAATak8Ir8oYcFYcY mmpQAwGElQnTq/xcFihlyqi5/mIytw3LKHSA+3eWQhL7Qi8DAtcCPkhLmTlW0pM1hwRoX2 JzaB2cwkYNEwwlheVb7JWAMJGwFXIDzM5OlJVBTqtAcZLlNY9b7PY1TmdeDsvzDqV0vpvq l3ubMKjvL1SGw61UFG+Sz06Kc49ShZMWgQ6t4pWGX5fnfzZA4SHIYSOe2pIWCvqSs+PGg6 7LOdY3ebbv52JJm6dLtpbcDpOui5wcPFh4HQihIFyWDnY23KDJenv59xEs4ygg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScLJ52Y0hzrlH; Fri, 24 Nov 2023 16:37:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOGbvMw067832; Fri, 24 Nov 2023 16:37:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOGbvtu067829; Fri, 24 Nov 2023 16:37:57 GMT (envelope-from git) Date: Fri, 24 Nov 2023 16:37:57 GMT Message-Id: <202311241637.3AOGbvtu067829@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: 34c7691f5320 - stable/14 - ktls tests: Relax error checking for shutdown(2) a 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: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 34c7691f532064c5a3d61a115b4ea086b2da3179 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=34c7691f532064c5a3d61a115b4ea086b2da3179 commit 34c7691f532064c5a3d61a115b4ea086b2da3179 Author: Mark Johnston AuthorDate: 2023-11-17 14:29:28 +0000 Commit: Mark Johnston CommitDate: 2023-11-24 16:37:46 +0000 ktls tests: Relax error checking for shutdown(2) a bit In my test suite runs I occasionally see shutdown(2) fail with ECONNRESET rather than ENOTCONN. soshutdown(2) will return ENOTCONN if the socket has been disconnected (synchronized by the socket lock), and tcp_usr_shutdown() will return ECONNRESET if the inpcb has been dropped (synchronized by the inpcb lock). I think it's possible to pass the first check in soshutdown() but fail the second check in tcp_usr_shutdown(), so modify the KTLS tests to permit this. Reviewed by: jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D42277 (cherry picked from commit b08a9b86f581edf09c5a2729d877a0204499685b) --- tests/sys/kern/ktls_test.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/sys/kern/ktls_test.c b/tests/sys/kern/ktls_test.c index a3d0c17d6d62..f57ae74112a2 100644 --- a/tests/sys/kern/ktls_test.c +++ b/tests/sys/kern/ktls_test.c @@ -1904,10 +1904,13 @@ test_ktls_receive_bad_size(const atf_tc_t *tc, struct tls_enable *en, /* * The other end may notice the error and drop the connection * before this executes resulting in shutdown() failing with - * ENOTCONN. Ignore this error if it occurs. + * either ENOTCONN or ECONNRESET. Ignore this error if it + * occurs. */ - if (shutdown(sockets[1], SHUT_WR) != 0) - ATF_REQUIRE_ERRNO(ENOTCONN, true); + if (shutdown(sockets[1], SHUT_WR) != 0) { + ATF_REQUIRE_MSG(errno == ENOTCONN || errno == ECONNRESET, + "shutdown() failed: %s", strerror(errno)); + } ktls_receive_tls_error(sockets[0], EMSGSIZE); From nobody Fri Nov 24 17:22:34 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScMHZ2JPqz51JJ9; Fri, 24 Nov 2023 17:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScMHZ1q2sz4GTq; Fri, 24 Nov 2023 17:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700846554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+aw41kTqqDOaKN+AI6mUzgwVWJfBH2cFqNgN4fUwcYY=; b=aU70mR2w6Z6ucnC3cnwpvcaYMY8K3Jju6mABiiMC7t4iGGWvo7/t4lyMU9l3fs6iH/asmH 7iQWZ47ApFowbFEYj3y+YHdV2vsq/SGjrEQ3DipicPK/DHFGDqNYI0zoWdGvfskmUyG3RS g1N80OM6o49USnpsyVuLSz5hwfCACfmKrtLyCZPSG65mr1hCRjR8gGZ0R0vkCqrrUadNpy txa6M6EuHT1rR4TCC4cEhq8NO/UBA9DsN6tOglUv+rAbCwfqv5nOi1SsZFdzQGY0KjHJTR dHO76Mjuf8NLiQyedWIMX3i+vwJ+KGs3yjlfP5HtEi8NS0GN+77/gLG7Tw57+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700846554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+aw41kTqqDOaKN+AI6mUzgwVWJfBH2cFqNgN4fUwcYY=; b=T6glgLa1Gp7Z4ic3fm49xN9jqSegt6/35jnNUXwasqvWQwhrgO7yM56JxVMV/TJMP9rf8P lZVa9mdauZ2RD+udbgq6wr46Gd+732/RX3UTExbNH5EACTiWoZSvkmY+nuq22z2a0DIIOx b4sgKPUl8kcHVPdjqmy8oEczLOMxALzieB8JH5xPFmaAO0kH/dgSNnhUa8a4SspA9NaoiI P8TBQgx4IzAsb/39q+6He8XPQr/wz4OWdWNLhMbF3uG/ZBYDaCcziHRR429QmzDYkHWb0k +h7z2iRXZRV53Dce7jnLuSa8a5C7Nz/1A3629iO/8UkiDZXEqMssBv+QppIMxg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700846554; a=rsa-sha256; cv=none; b=CXEMv2mqlxSD8MSKFPf923pwwItf2Sn4QGW9QlIMgauAP6lAK0uOO7FmVTUq6N044/TRHd jOTv+0mraO/2FpRw3EANkt9qePH0uyoL0x/AuTThxAG1f/UHYc3VsND53XFBo1/Z+B8gWl AnULG0gSMgeYAUPO3xmVpB1uwdXyCe7zV4J2bKGJEEV0gU4kqesOX+heJ2WH6J0ZcoXjiT h4EIGIAnVUVE4jL3kL/9mfIHBuQM14EQc/01QBPZBgXn6qocgcz0x65a43TqPVAfG96kGI spIGBjyv7WYzc+Pz52HorkwVzxjxRTU/xdDxbP2PlmqQLCjokAtwrot54dxnzg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScMHZ0jVdztp4; Fri, 24 Nov 2023 17:22:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOHMYuj050633; Fri, 24 Nov 2023 17:22:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOHMXBM050630; Fri, 24 Nov 2023 17:22:34 GMT (envelope-from git) Date: Fri, 24 Nov 2023 17:22:34 GMT Message-Id: <202311241722.3AOHMXBM050630@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Guzik Subject: git: 94bddd2ab75f - stable/14 - pseudofs: fix off by one in hash iteration in pfs_purge List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 94bddd2ab75fd59fb25c7e162b3b335679bc518a Auto-Submitted: auto-generated The branch stable/14 has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=94bddd2ab75fd59fb25c7e162b3b335679bc518a commit 94bddd2ab75fd59fb25c7e162b3b335679bc518a Author: Alvin Chen AuthorDate: 2023-11-20 05:55:35 +0000 Commit: Mateusz Guzik CommitDate: 2023-11-24 17:22:15 +0000 pseudofs: fix off by one in hash iteration in pfs_purge Sponsored by: Dell Technologies Differential Revision: https://reviews.freebsd.org/D42628 (cherry picked from commit e0d0f0930ee22af7bf38d28d8590d4e6c822871d) --- sys/fs/pseudofs/pseudofs_vncache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/fs/pseudofs/pseudofs_vncache.c b/sys/fs/pseudofs/pseudofs_vncache.c index 33023dd0d08f..e58aced7f81b 100644 --- a/sys/fs/pseudofs/pseudofs_vncache.c +++ b/sys/fs/pseudofs/pseudofs_vncache.c @@ -306,7 +306,7 @@ pfs_purge(struct pfs_node *pn) mtx_lock(&pfs_vncache_mutex); restart: removed = 0; - for (i = 0; i < pfs_vncache_hash; i++) { + for (i = 0; i <= pfs_vncache_hash; i++) { restart_chain: SLIST_FOREACH(pvd, &pfs_vncache_hashtbl[i], pvd_hash) { if (pn != NULL && pvd->pvd_pn != pn) From nobody Fri Nov 24 18:11:48 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScNNN4mVDz520dj; Fri, 24 Nov 2023 18:11: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScNNN4KMpz4bxn; Fri, 24 Nov 2023 18:11:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700849508; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k7NbS2yuIJ+pQm/2Uxi+BgLcsDbISgkmm8cfAM5Ouyk=; b=kYzNkS17bGcIqr772oxS9cztnv7jGADD91Vu2OHXjvxaaODB8McubbDSDuljZosIVxRZTG 75rf6VwvsSu5MGB3yWjZhrGLSAKemwUzi0O1Fzm+bX1GdZJTSumfanH1FrILkFqYzDshIy oe8cSRwaFR6akvN0wTReKW3eXRdlt6EInQmfuIgQcJLpCx35RTDFqPWVQ7APCqaUePL88R 2FIbbCoSdejylLP4LontNblFr7pIP/Y394YyBqZ0gISlH08uCJ7K8EFJU5YWYzvgLnurMC ZOqBAqrNS3IbCkpfWdB+vI4pn6jXSuEn/saAm1qYXzTak0hG2zL5655U+wSEsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700849508; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=k7NbS2yuIJ+pQm/2Uxi+BgLcsDbISgkmm8cfAM5Ouyk=; b=pb2EDdWkHi4eQ+sToGjhzSLUAI6gdnEa7qh1UoJjTEeM60fLljJKvnnteoaVss0YDskiQX e9S4CXeRJWLAXtLOhTpN7es1QTbn8PIQsS4TV/M8mYVLv0e/Ldkw0cQbmEYrspNCdnGooP pw2Kmw2r/Me/j4mIVfMlrJ5YNcCuJfDjb4WHr9wACuD5GnSgAzQf83voiGOBJMEfQdvrF3 ef159MS/oBpE8znhofqCco8tbVF4YDNmnowmkDAtwNqYt2hgd4qSLYWF3xxl7UIT4BpEA2 4aSW1ZfaZPf38c2X9PWdE//olL360FcXMDaOI2PkCRfgOSqBSLI3ehUejYLT2w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700849508; a=rsa-sha256; cv=none; b=LOHnDq6TQzyILBSu8+nqGJFaCHCasg2Ne3HZ7H/02G6V1uNX0Sm3Mu1W4Skw+zs4xHRIO9 umiba9uLoa6+kqPRzIuC0wuJ5K6s1ovU0Jf2gtmQdFhiEHmEtH/feS4KZsecxW6m50aAEB p9DqyFq1+Z5BOgulhQPX+FbfB3gnJcndW+uW30iSrr+pL4efnpCWNkz0Gg777M8vISk28A Mp97/5vjirJ5Rw4i8Ba/f1M8zaYe0qLPi3EnWoYTe8QDzuP49sakXNFKCb6B1VwBdGSswi /oUO0XERnFkGD40FZKp9acKz13mVsQhxtAKVCFEoEiLzAYjURzHvu8sxnw5zTQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScNNN3Q1Bzw2C; Fri, 24 Nov 2023 18:11:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOIBmoo034561; Fri, 24 Nov 2023 18:11:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOIBmOe034558; Fri, 24 Nov 2023 18:11:48 GMT (envelope-from git) Date: Fri, 24 Nov 2023 18:11:48 GMT Message-Id: <202311241811.3AOIBmOe034558@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mike Karels Subject: git: 3569e21f0714 - stable/14 - khelp: suppress useless warning message on shutdown List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: karels X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3569e21f07147c8dd4bee82e5e7efe69c98edeb1 Auto-Submitted: auto-generated The branch stable/14 has been updated by karels: URL: https://cgit.FreeBSD.org/src/commit/?id=3569e21f07147c8dd4bee82e5e7efe69c98edeb1 commit 3569e21f07147c8dd4bee82e5e7efe69c98edeb1 Author: Mike Karels AuthorDate: 2023-11-17 18:51:18 +0000 Commit: Mike Karels CommitDate: 2023-11-24 18:11:16 +0000 khelp: suppress useless warning message on shutdown If a module (e.g. the ertt hhook for TCP) can't clean up at shutdown, there is nothing to be done about it. In the ertt case, cleanup is just shutting down a UMA zone, which doesn't need to be done. Suppress EBUSY warnings on shutdown. PR: 271677 Reviewed by: tuexen, imp Differential Revision: https://reviews.freebsd.org/D42650 (cherry picked from commit 415c1c748d5492e41328fedf96b6bf3c9be94595) --- sys/kern/kern_khelp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_khelp.c b/sys/kern/kern_khelp.c index 3d75da141b48..f8a6f3e749da 100644 --- a/sys/kern/kern_khelp.c +++ b/sys/kern/kern_khelp.c @@ -357,7 +357,7 @@ khelp_modevent(module_t mod, int event_type, void *data) } else if (error == ENOENT) /* Do nothing and allow unload if helper not in list. */ error = 0; - else if (error == EBUSY) + else if (error == EBUSY && event_type != MOD_SHUTDOWN) printf("Khelp module \"%s\" can't unload until its " "refcount drops from %d to 0.\n", kmd->name, kmd->helper->h_refcount); From nobody Fri Nov 24 19:47:23 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScQVh239dz51qbf; Fri, 24 Nov 2023 19:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScQVh0M0Pz3Xxx; Fri, 24 Nov 2023 19:47:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700855244; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jR/TZdmXbNHFs6DHUyZQRq4xQL+FY45lgccqqhLRftI=; b=gp76GPsYr+TzZlRi7exRtEdNmYIlJKAPC1ZBWFVulDsG4/GaQjIveWnSAgSGHt23M7uhne OHAnMmX/n/2SXrJ+zHWsElC7u3i+DwWEHcukrdKTPiUWUSFI53iQa3SHfu65PrV5Swj7xH oafwFrR7UEV9wgPS8GQlNd0zpPLzynqV5h43Q/EdxFYluzN5iEZxuUvHHwOKeP+RwZBGVW 22yUMYUNAHCu+UK45UqmtMWjBeN5RF3+xXqNNTiYxjvqJuilqreCzJGWqOiK6O0tWNonKZ QGFslB+fzBD5gX/JDFQeAz+DHMFG+nRwsm1aKx75kUTNAtyFiRtfXUSwImNBzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700855244; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jR/TZdmXbNHFs6DHUyZQRq4xQL+FY45lgccqqhLRftI=; b=P/OnmOTpQu3qq0ZQhW5S5XWNN8l7HnF2XLDrJIRygwGrg7JeRzZcT2wzxLOK6iwoLimOFU 7F1iZa03RsthQNK4NniEwnE4DA8nqsQ28Ow8XgiXRSJYF/4BUcImweoZpfQegh7nYlGvia GmrDgygroPVoVlXfuQe/TlPOTvg1VUhS3Ss9tiG0XK0Oj5ngQjM8b+XXaXMh/Jfph+CxX0 cE28VSO1Wox7DYBhQ1pRBDzzjBfheKoe7IXZPlfyWCIm+bcQCvoboiIqo+IhgDX/kO1sO9 SMHNkvEvMljA5ztIpCnPUD+nAIr/gmix44pwmdsYW7Yy5cXraBUYJPkfuKy//Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700855244; a=rsa-sha256; cv=none; b=es9D4JAcSQ9fBvZbuA/kJ2guaw1WDZtKACfsbHHEFi6qfrhP/3l6Nq88qVfn9KSTA0na/W brI6S/190LdsbDzTy3XFTnUs4mmmWci6RNWYZoq7xiIoWdNcSbd9d017jnlBFYS2afVa82 c2RqYT5FONbe5hKmid8shEg26shuiqsG6EmsBlIY2CPsoEpmNFB3dZ9umooMpw1MyrWCxg QwgqFbq60xhHCZmlMCNDe/e62xfP3GfsfrfIjxD/ArB1fZRMF9YA3Ufq+GHgYMigkXG9V4 qjn7MvbGBFXLyMifDuxcA2yQSKNrs6k5uibRkEFs9t/26dpktmSfhhtF9iWcIg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScQVg6SWczyL3; Fri, 24 Nov 2023 19:47:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AOJlNeo085936; Fri, 24 Nov 2023 19:47:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AOJlNBN085933; Fri, 24 Nov 2023 19:47:23 GMT (envelope-from git) Date: Fri, 24 Nov 2023 19:47:23 GMT Message-Id: <202311241947.3AOJlNBN085933@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mateusz Guzik Subject: git: e6d025c5c57d - stable/13 - pseudofs: fix off by one in hash iteration in pfs_purge List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mjg X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e6d025c5c57dbcf4f7b078c9d42533e5839af932 Auto-Submitted: auto-generated The branch stable/13 has been updated by mjg: URL: https://cgit.FreeBSD.org/src/commit/?id=e6d025c5c57dbcf4f7b078c9d42533e5839af932 commit e6d025c5c57dbcf4f7b078c9d42533e5839af932 Author: Alvin Chen AuthorDate: 2023-11-20 05:55:35 +0000 Commit: Mateusz Guzik CommitDate: 2023-11-24 19:47:15 +0000 pseudofs: fix off by one in hash iteration in pfs_purge Sponsored by: Dell Technologies Differential Revision: https://reviews.freebsd.org/D42628 (cherry picked from commit e0d0f0930ee22af7bf38d28d8590d4e6c822871d) --- sys/fs/pseudofs/pseudofs_vncache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/fs/pseudofs/pseudofs_vncache.c b/sys/fs/pseudofs/pseudofs_vncache.c index c1aee2ff4ae1..82dfc7a5366f 100644 --- a/sys/fs/pseudofs/pseudofs_vncache.c +++ b/sys/fs/pseudofs/pseudofs_vncache.c @@ -305,7 +305,7 @@ pfs_purge(struct pfs_node *pn) mtx_lock(&pfs_vncache_mutex); restart: removed = 0; - for (i = 0; i < pfs_vncache_hash; i++) { + for (i = 0; i <= pfs_vncache_hash; i++) { restart_chain: SLIST_FOREACH(pvd, &pfs_vncache_hashtbl[i], pvd_hash) { if (pn != NULL && pvd->pvd_pn != pn) From nobody Sat Nov 25 00:34:26 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScXst6KcGz525vx; Sat, 25 Nov 2023 00:34:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScXst5rwnz3Zfp; Sat, 25 Nov 2023 00:34:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700872466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sLbbqAKGRTPh5yj11ZZrwjprXV4Cc3D5RwnuKxKA3uk=; b=ED6mbrkFtoJSk88CuXw9zgWj38D3J53CF/2ADQPHfn57a0JP67zQL1BGqTVb8LmNw9/7kC 0ns6m33hB8aSWc3X1qUp7FprJHXO28y7XFrrBDHrVuts9JjkecfYlXZwb3CXLlyHabCHRN WHFWCLAByJaYbHkCOmzShHb3Y2J+nrS80bwi9RCUh2RPITUvvopq9b3AMwth6Ru94ky5F9 eJdof6sdfUH8+EQJdiFHYpQUP7SLedMYZe5HmZBMeyE7oHSPfhKl59GdgLxUr+xWxAOcmw ttOyCnXBVahFBvQiXWLSmPDZsURpZ7ABoFuA96IF3lMBeawkEq+DmKk8C4VcWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700872466; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sLbbqAKGRTPh5yj11ZZrwjprXV4Cc3D5RwnuKxKA3uk=; b=nG/FKoagEQbLxvEH78oAHaHAv3SlPMHuUO7TlunioaWAj+LJoevq2EihHoVtQhsBZzdY1q +WFjZsl5JaKq2c/0l41Jug+zTLbD9CsG5cJbQ9+H2rLXEeaSwjmO9dULz4f0zkCqDPBKUN Vkmv+Tc+2z4pIMfMi5q/YYzL/iCexA3cqa+RYKmYCqwrKZvfU+34gkyH6ehaLBxAdLHiv5 SIPFjqEL8uL09mSJeJQVLuz+aAgS7YnIcQeSK2KIOOIqngebWIyGXyhon9v9giEF4/FDff Vhcbz4XP9y22WFf4sQi1P468R6de0/dx5N9GlZjpwxj3nVmy3cZkJRmSmctDsg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700872466; a=rsa-sha256; cv=none; b=A7fZnDfNBu9AHUbT4gqIc2KDqHGN9qTBoh9aJDvhE7We3D3V3QZ5bXbjdiWrSJuo2wTky1 8ScCB9ensbcObYZZiR2fwxyk2fNiRHX4dj7ht9NZ0vjdpOtF4BzJYzsMl+HDtBpn6VVGkw QmRbiv1cLZgAq5LWBPtWirIe53iZDYy0NxtRuj74+jAJt7CnfJxZoxdmG8TkqxE3M2VvNi 2T7gU9ZFAFQdVc/PbLvyG0vYE6Nxu34/jv6YqR4XRo0D4yyQLtcCJXCxnp7tK6Z49v6Jog hNVT1Hp/rVgMCjeqTSVuQUAMOAlv6cs5pHsn7ZvMOXoV9GGDSGUlCgP/kwt1RQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScXst4vFgz16J8; Sat, 25 Nov 2023 00:34:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP0YQjc069203; Sat, 25 Nov 2023 00:34:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP0YQei069200; Sat, 25 Nov 2023 00:34:26 GMT (envelope-from git) Date: Sat, 25 Nov 2023 00:34:26 GMT Message-Id: <202311250034.3AP0YQei069200@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: 7826693aa546 - stable/14 - iostat: Tune formatting for higher disk speeds List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7826693aa546f261edcf1c3b72755641cbc77267 Auto-Submitted: auto-generated The branch stable/14 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=7826693aa546f261edcf1c3b72755641cbc77267 commit 7826693aa546f261edcf1c3b72755641cbc77267 Author: Alexander Motin AuthorDate: 2023-11-10 23:35:38 +0000 Commit: Alexander Motin CommitDate: 2023-11-25 00:34:19 +0000 iostat: Tune formatting for higher disk speeds MFC after: 2 weeks (cherry picked from commit 105c7c4b8dcec22567a5f137b9406a95fbd9f4f2) --- usr.sbin/iostat/iostat.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/usr.sbin/iostat/iostat.c b/usr.sbin/iostat/iostat.c index d4f7a2519a1b..c6ba6aa8a7a2 100644 --- a/usr.sbin/iostat/iostat.c +++ b/usr.sbin/iostat/iostat.c @@ -765,9 +765,9 @@ phdr(void) (void)printf(" blk xfr msps "); } else { if (Iflag == 0) - printf(" KB/t tps MB/s "); + printf("KB/t tps MB/s "); else - printf(" KB/t xfrs MB "); + printf("KB/t xfrs MB "); } printed++; } @@ -934,26 +934,30 @@ devstats(int perf_select, long double etime, int havelast) msdig, ms_per_transaction); else - printf("%4.1" PRIu64 "%4.1" PRIu64 "%5.*Lf ", + printf("%4" PRIu64 "%4" PRIu64 "%5.*Lf ", total_blocks, total_transfers, msdig, ms_per_transaction); } else { if (Iflag == 0) - printf(" %4.*Lf %4.0Lf %5.*Lf ", + printf("%4.*Lf %5.0Lf %5.*Lf ", kb_per_transfer >= 100 ? 0 : 1, kb_per_transfer, transfers_per_second, - mb_per_second >= 1000 ? 0 : 1, + mb_per_second >= 1000 ? 0 : + (total_mb >= 100 ? 1 : 2), mb_per_second); else { total_mb = total_bytes; total_mb /= 1024 * 1024; - printf(" %4.1Lf %4.1" PRIu64 " %5.2Lf ", + printf("%4.*Lf %5" PRIu64 " %5.*Lf ", + kb_per_transfer >= 100 ? 0 : 1, kb_per_transfer, total_transfers, + total_mb >= 1000 ? 0 : + (total_mb >= 100 ? 1 : 2), total_mb); } } From nobody Sat Nov 25 00:34:27 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScXsw0XDLz525cK; Sat, 25 Nov 2023 00:34:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScXsv6x0xz3ZlM; Sat, 25 Nov 2023 00:34:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700872468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yBo5XVYomXo3vD+PH8auDS51yZm3293CM4DBnhbf+z4=; b=cF7X/Fw/ACETdRVGzMxyWZkLrcALdSXDrpA8hSJVC7NCGEKkbDdLGhyEVD7Y/zCIiMTsol t1Z21ivWBkb5RKe6QqDApOYE+sN368sGhGRg8OVLWGZ4oWoMPMzf+c1TOULMIRus9Zhu2n zcsITo5PGBtVA9Lruw4KlGganBERCQcQBWeB5S+RugGSI7gNKfWLGzeoYMsR16pzF1PKrq rIngCdQtUpsQbkO9+LLmDtuJBxA1woxQHcQ1I4WkGaVQ3f7g5RXrhoWRvMmUC+eH3Ho7IC Lixyk3FJT5kpjgjSL/xVCGRLOYrobSWQ5LObGVnpvCVkaxLXUWVXlyBuUJjn2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700872468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yBo5XVYomXo3vD+PH8auDS51yZm3293CM4DBnhbf+z4=; b=Bid/BLksqxg1j3BF4EeJiSJ/OM/ekbkYb456r+mvGKfzJCzGRy2p7WqF83TTi+QE/kEuY1 WaKWlTWY8HhRGXbS41lcC8Y30RCeKbhdFqcxFu+gAuJ415o5+CTHYQfIYCASBhNBauXVck qKoYeD4YDLRgVZ05sNxIh167cJPpAVf9fL0Ju5KmvbA36CDzTSHNRhYQYDtNeOwge4CyZJ 6CART86Pg93gE5lm48boof0T4magBOgAWQ9n0ISg50Q7C3Cgop8lFAJZJXeTftSwv+0e1n n2ndMUacjpu1ecPjpWqBkWVVoYgGIcy/mR5FsrsjxqJAMTU0Bgu8FtpgSvC0Yg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700872468; a=rsa-sha256; cv=none; b=phyVj/unrF8tsISKCz0cFL6ukh3YUk0EGzwox+gk8amS2nsQ/Z2+GU1sUOKmcgn3IxCED4 u5U51drXT6dVvlmr2xH9FWVUaonVfCi0I2wXt5JHp3ljq4XmpiWdxvbtMgjT5j6corwn7L vYurFFENLMBugSDSfSW96H7X6Yag2pAQCu5W8K/idJTpEShfDwKZDt0F7WT0VdtKbkTD2z Lcs9XQx1O536+voY6LRL1PIdfvfUbiIAiHCLGhYRjSzlvmsikb5mBFw5tjwAfb4HkvZU3p HLRuhWNYVimY8aXlp6V3XsDtQrFTZmBhsJ6lC9XSS14PSh9vlycoTsHmB2unjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScXsv5grhz16T7; Sat, 25 Nov 2023 00:34:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP0YR0v069254; Sat, 25 Nov 2023 00:34:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP0YR0S069251; Sat, 25 Nov 2023 00:34:27 GMT (envelope-from git) Date: Sat, 25 Nov 2023 00:34:27 GMT Message-Id: <202311250034.3AP0YR0S069251@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Motin Subject: git: c3d7d7798218 - stable/14 - iostat: Restore lost spaces after tout List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mav X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c3d7d77982180bef96e8c004360cda23cfe49675 Auto-Submitted: auto-generated The branch stable/14 has been updated by mav: URL: https://cgit.FreeBSD.org/src/commit/?id=c3d7d77982180bef96e8c004360cda23cfe49675 commit c3d7d77982180bef96e8c004360cda23cfe49675 Author: Alexander Motin AuthorDate: 2023-11-16 04:45:22 +0000 Commit: Alexander Motin CommitDate: 2023-11-25 00:34:19 +0000 iostat: Restore lost spaces after tout MFC after: 2 weeks (cherry picked from commit 3aebcb9ecba73805546b64f45e9a7ea2ba99ebb0) --- usr.sbin/iostat/iostat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usr.sbin/iostat/iostat.c b/usr.sbin/iostat/iostat.c index c6ba6aa8a7a2..ec18f4fd35b3 100644 --- a/usr.sbin/iostat/iostat.c +++ b/usr.sbin/iostat/iostat.c @@ -612,7 +612,7 @@ main(int argc, char **argv) } if (xflag == 0 && Tflag > 0) - printf("%4.0Lf %5.0Lf", cur.tk_nin / etime, + printf("%4.0Lf %5.0Lf ", cur.tk_nin / etime, cur.tk_nout / etime); devstats(hflag, etime, havelast); @@ -731,7 +731,7 @@ phdr(void) return; if (Tflag > 0) - (void)printf(" tty"); + (void)printf(" tty "); for (i = 0, printed=0;(i < num_devices) && (printed < maxshowdevs);i++){ int di; if ((dev_select[i].selected != 0) @@ -753,7 +753,7 @@ phdr(void) (void)printf("\n"); if (Tflag > 0) - (void)printf(" tin tout"); + (void)printf(" tin tout "); for (i=0, printed = 0;(i < num_devices) && (printed < maxshowdevs);i++){ if ((dev_select[i].selected != 0) From nobody Sat Nov 25 01:26:35 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScZ232pHdz52WM6; Sat, 25 Nov 2023 01:26:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScZ232JdXz4N23; Sat, 25 Nov 2023 01:26:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700875595; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w0YE0pg+crRFf07f1N9K1pImkSvw8vRQIKskKR9h6Pk=; b=KAOOJa/fWNT/Sn0l9Qw3IAjWc9bkL/Ph1aTcgN8KxRy7Z/1BXpruUoIdT2mvEeHhCjdUik 3ytFDsKTeODmDdFdsNU48ns1FfPfWOF+aryz19MSCWnXi6Ym0ZJ7v1a0vV9JAnIfarfNLV sU56fJNkrFcQZzCD8EBUFOrgyKq7g128RZiv1LqNVVruIJCHBh8avY2150+XXOKt4TE1vs fXCeb3A1ooWebIX9dCiAjwYOjQ7Q+vfg3WD29/2v7FI9wfN9V2ZnFzf3PUn/6F9xYLzuNc b+5S2Jb2I7l07x774Z2idUydLwQE9n1UAAPxDyi1UylH296A0wSDGqYOxNtrBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700875595; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w0YE0pg+crRFf07f1N9K1pImkSvw8vRQIKskKR9h6Pk=; b=tQCgpwj91Mb8ohgJPEJExKeGj3UPEyD787jSdkuWiNd+826uzm1Jvjc7KfBgBt/pca87VG W46PjJlamSZV7VaVuk4KuSuPkFqceVAXqu0sXZ81Z5bB05URVkyHu0zefVL3Kp7pd4OWjT h10zydOpd4T3F/lJ46HExMRgWEEftpq520A0pG5m+BVOLkBF/4TjP2br5mWDWpJkBA+Rp0 19M1txBlGbMp91QWcKKoRRf1fUS3FLErZYbgFCf0i9IYxtUQTNmb5FgLQ7zGfNewwAe969 Sp5Bo5y4AFTQJ4w4LByiCohL+1glNDLvWJbrHai/cE3w0O8hdvSl/cPR74TIBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700875595; a=rsa-sha256; cv=none; b=KcTs+jeXoMB/TaGwuOctmBKE2kcUyD8DZ/P26DD96+r+OCtau3vrnFh5TfZxgYF+j6SHKk miDkwwrZ6AsRVlxd+2XYcZiK6ydYVm3tCw9mFakfESpvP5ch/Mn3CP3bio6OPGmKKqrNG4 RMGQJ5Gyw1yZtOe8UIIkd8hnMjRbY31nlWpJco0ZrVsEebV/WTbAq+3uZwHikMzTZ7ORzs paNyEKutP//BJvN10AD6cFdH0/Wf6fzQYtx5irk4YjeOy7gzqBIiDqoMP48pfa79IIL4YP K7qk83XXGKMMiMSJ/H2qPtKgoBxS3hsUXMVRK4ZzCosEsklGvLkz68HhRnHnDQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScZ231NrFz17mW; Sat, 25 Nov 2023 01:26:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP1QZNP052297; Sat, 25 Nov 2023 01:26:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP1QZ61052294; Sat, 25 Nov 2023 01:26:35 GMT (envelope-from git) Date: Sat, 25 Nov 2023 01:26:35 GMT Message-Id: <202311250126.3AP1QZ61052294@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Doug Moore Subject: git: 210fce73ae0e - stable/14 - vm_phys: fix freelist_contig List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dougm X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 210fce73ae0e4106a3aeb1970ffbeb30d0baa6ba Auto-Submitted: auto-generated The branch stable/14 has been updated by dougm: URL: https://cgit.FreeBSD.org/src/commit/?id=210fce73ae0e4106a3aeb1970ffbeb30d0baa6ba commit 210fce73ae0e4106a3aeb1970ffbeb30d0baa6ba Author: Doug Moore AuthorDate: 2023-11-15 09:25:45 +0000 Commit: Doug Moore CommitDate: 2023-11-25 01:19:05 +0000 vm_phys: fix freelist_contig vm_phys_find_freelist_contig is called to search a list of max-sized free page blocks and find one that, when joined with adjacent blocks in memory, can satisfy a request for a memory allocation bigger than any single max-sized free page block. In commit fa8a6585c7522b7de6d29802967bd5eba2f2dcf1, I defined this function in order to offer two improvements: 1) reduce the worst-case search time, and 2) allow solutions that include less-than max-sized free page blocks at the front or back of the giant allocation. However, it turns out that this change introduced an error, reported in In Bug 274592. That error concerns failing to check segment boundaries. This change fixes an error in vm_phys_find_freelist_config that resolves that bug. It also abandons improvement 2), because the value of that improvement is small and because preserving it would require more testing than I am able to do. PR: 274592 Reported by: shafaisal.us@gmail.com Reviewed by: alc, markj Tested by: shafaisal.us@gmail.com Fixes: fa8a6585c752 vm_phys: avoid waste in multipage allocation MFC after: 10 days Differential Revision: https://reviews.freebsd.org/D42509 (cherry picked from commit 2a4897bd4e1bd8430d955abd3cf6675956bb9d61) --- sys/vm/vm_phys.c | 146 +++++++++++++++++++++++-------------------------------- 1 file changed, 62 insertions(+), 84 deletions(-) diff --git a/sys/vm/vm_phys.c b/sys/vm/vm_phys.c index bc992bdfc58b..cd75ed092691 100644 --- a/sys/vm/vm_phys.c +++ b/sys/vm/vm_phys.c @@ -1360,108 +1360,75 @@ vm_phys_unfree_page(vm_page_t m) } /* - * Find a run of contiguous physical pages from the specified page list. + * Find a run of contiguous physical pages, meeting alignment requirements, from + * a list of max-sized page blocks, where we need at least two consecutive + * blocks to satisfy the (large) page request. */ static vm_page_t -vm_phys_find_freelist_contig(struct vm_freelist *fl, int oind, u_long npages, +vm_phys_find_freelist_contig(struct vm_freelist *fl, u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary) { struct vm_phys_seg *seg; - vm_paddr_t frag, lbound, pa, page_size, pa_end, pa_pre, size; - vm_page_t m, m_listed, m_ret; - int order; + vm_page_t m, m_iter, m_ret; + vm_paddr_t max_size, size; + int max_order; - KASSERT(npages > 0, ("npages is 0")); - KASSERT(powerof2(alignment), ("alignment is not a power of 2")); - KASSERT(powerof2(boundary), ("boundary is not a power of 2")); - /* Search for a run satisfying the specified conditions. */ - page_size = PAGE_SIZE; + max_order = VM_NFREEORDER - 1; size = npages << PAGE_SHIFT; - frag = (npages & ~(~0UL << oind)) << PAGE_SHIFT; - TAILQ_FOREACH(m_listed, &fl[oind].pl, listq) { - /* - * Determine if the address range starting at pa is - * too low. - */ - pa = VM_PAGE_TO_PHYS(m_listed); - if (pa < low) - continue; + max_size = (vm_paddr_t)1 << (PAGE_SHIFT + max_order); + KASSERT(size > max_size, ("size is too small")); + /* + * In order to avoid examining any free max-sized page block more than + * twice, identify the ones that are first in a physically-contiguous + * sequence of such blocks, and only for those walk the sequence to + * check if there are enough free blocks starting at a properly aligned + * block. Thus, no block is checked for free-ness more than twice. + */ + TAILQ_FOREACH(m, &fl[max_order].pl, listq) { /* - * If this is not the first free oind-block in this range, bail - * out. We have seen the first free block already, or will see - * it before failing to find an appropriate range. + * Skip m unless it is first in a sequence of free max page + * blocks >= low in its segment. */ - seg = &vm_phys_segs[m_listed->segind]; - lbound = low > seg->start ? low : seg->start; - pa_pre = pa - (page_size << oind); - m = &seg->first_page[atop(pa_pre - seg->start)]; - if (pa != 0 && pa_pre >= lbound && m->order == oind) + seg = &vm_phys_segs[m->segind]; + if (VM_PAGE_TO_PHYS(m) < MAX(low, seg->start)) + continue; + if (VM_PAGE_TO_PHYS(m) >= max_size && + VM_PAGE_TO_PHYS(m) - max_size >= MAX(low, seg->start) && + max_order == m[-1 << max_order].order) continue; - - if (!vm_addr_align_ok(pa, alignment)) - /* Advance to satisfy alignment condition. */ - pa = roundup2(pa, alignment); - else if (frag != 0 && lbound + frag <= pa) { - /* - * Back up to the first aligned free block in this - * range, without moving below lbound. - */ - pa_end = pa; - for (order = oind - 1; order >= 0; order--) { - pa_pre = pa_end - (page_size << order); - if (!vm_addr_align_ok(pa_pre, alignment)) - break; - m = &seg->first_page[atop(pa_pre - seg->start)]; - if (pa_pre >= lbound && m->order == order) - pa_end = pa_pre; - } - /* - * If the extra small blocks are enough to complete the - * fragment, use them. Otherwise, look to allocate the - * fragment at the other end. - */ - if (pa_end + frag <= pa) - pa = pa_end; - } - - /* Advance as necessary to satisfy boundary conditions. */ - if (!vm_addr_bound_ok(pa, size, boundary)) - pa = roundup2(pa + 1, boundary); - pa_end = pa + size; /* - * Determine if the address range is valid (without overflow in - * pa_end calculation), and fits within the segment. + * Advance m_ret from m to the first of the sequence, if any, + * that satisfies alignment conditions and might leave enough + * space. */ - if (pa_end < pa || seg->end < pa_end) - continue; - - m_ret = &seg->first_page[atop(pa - seg->start)]; + m_ret = m; + while (!vm_addr_ok(VM_PAGE_TO_PHYS(m_ret), + size, alignment, boundary) && + VM_PAGE_TO_PHYS(m_ret) + size <= MIN(high, seg->end) && + max_order == m_ret[1 << max_order].order) + m_ret += 1 << max_order; /* - * Determine whether there are enough free oind-blocks here to - * satisfy the allocation request. + * Skip m unless some block m_ret in the sequence is properly + * aligned, and begins a sequence of enough pages less than + * high, and in the same segment. */ - pa = VM_PAGE_TO_PHYS(m_listed); - do { - pa += page_size << oind; - if (pa >= pa_end) - return (m_ret); - m = &seg->first_page[atop(pa - seg->start)]; - } while (oind == m->order); + if (VM_PAGE_TO_PHYS(m_ret) + size > MIN(high, seg->end)) + continue; /* - * Determine if an additional series of free blocks of - * diminishing size can help to satisfy the allocation request. + * Skip m unless the blocks to allocate starting at m_ret are + * all free. */ - while (m->order < oind && - pa + 2 * (page_size << m->order) > pa_end) { - pa += page_size << m->order; - if (pa >= pa_end) - return (m_ret); - m = &seg->first_page[atop(pa - seg->start)]; + for (m_iter = m_ret; + m_iter < m_ret + npages && max_order == m_iter->order; + m_iter += 1 << max_order) { } + if (m_iter < m_ret + npages) + continue; + return (m_ret); } return (NULL); } @@ -1508,11 +1475,10 @@ vm_phys_find_queues_contig( } if (order < VM_NFREEORDER) return (NULL); - /* Search for a long-enough sequence of small blocks. */ - oind = VM_NFREEORDER - 1; + /* Search for a long-enough sequence of max-order blocks. */ for (pind = 0; pind < VM_NFREEPOOL; pind++) { fl = (*queues)[pind]; - m_ret = vm_phys_find_freelist_contig(fl, oind, npages, + m_ret = vm_phys_find_freelist_contig(fl, npages, low, high, alignment, boundary); if (m_ret != NULL) return (m_ret); @@ -1593,6 +1559,18 @@ vm_phys_alloc_contig(int domain, u_long npages, vm_paddr_t low, vm_paddr_t high, /* Return excess pages to the free lists. */ fl = (*queues)[VM_FREEPOOL_DEFAULT]; vm_phys_enq_range(&m_run[npages], m - &m_run[npages], fl, 0); + + /* Return page verified to satisfy conditions of request. */ + pa_start = VM_PAGE_TO_PHYS(m_run); + KASSERT(low <= pa_start, + ("memory allocated below minimum requested range")); + KASSERT(pa_start + ptoa(npages) <= high, + ("memory allocated above maximum requested range")); + seg = &vm_phys_segs[m_run->segind]; + KASSERT(seg->domain == domain, + ("memory not allocated from specified domain")); + KASSERT(vm_addr_ok(pa_start, ptoa(npages), alignment, boundary), + ("memory alignment/boundary constraints not satisfied")); return (m_run); } From nobody Sat Nov 25 08:25:16 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SclK85N9gz52mXs; Sat, 25 Nov 2023 08:25:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SclK84vKPz4QSN; Sat, 25 Nov 2023 08:25:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700900716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dHVtUBY32xquXlXKFwfYZV2GbbY16GkRmt2bkAV8cDM=; b=owGn/Ji8WfkL7TC9g83SCnlNTVYglhoIiAOiSkwYdBlfYiGpJ8hLvf4dIANhkJsy5WFIXy oO4I3y751aL2OfboZj5/Hy/Uo/3N39DRTPdfXj/SWbqKhkNKBr6C5TwvWvGhKBD1xfpvi1 YcI/mU4G+EPt7svV6sqkMLcra9CUM3A+jcg43tvMESNw+mijxUZNshOELlFHIA1cc2Mvlt 0jNz1LbqNPncBTtfzL/5X9TAQ8w5xiUjw+aPb3dh685crPu0EYd3x0Q3txZxKVcc+2FB1e vb4+d2TLbnUX8zePmtNGbcyqGoPGWF41m94+RSPq5S/mhZGC8jei0SRQB8EoJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700900716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dHVtUBY32xquXlXKFwfYZV2GbbY16GkRmt2bkAV8cDM=; b=AqMPw5SWt9384DdLgj3wSSoEv5x9Dd+97Xli7EUz72dXDjhgso1zohnxi9Nwwd8IeW8YN8 sowApDUccJB3PDr4o306GSnL/M1XKRModJIBKwzYvANX/2BS5rl5+S3AjGn9H7tv9oxwe0 YeNE3MtzQWDlI1M59S+GcxXEH+x+oyf4Dz3dyhOkQzeJEJC/FjC30VOgEoueXMapj86dr0 gZh0YPxC7a1YVHciGWYOzQyIudPCZNgWwezlazJ3kcaY9IsD0mA9SdxydiPmbMpxP08kNF OqkGQXoMXfEG2Po2cUsQCmQWnrSWhblp5fml/+ScxTCZ8cG+sHERwq00lD2xVA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700900716; a=rsa-sha256; cv=none; b=D+eNrBwF1ArvxHVF9+IyoWjRVgml15g9zT2U6UMFlG4VA/jKpdB2H5TChbV0nGqMk5gQCB x2lIjQjEsjTGITXXqYzLyu7FkNAo/8Aeo6XknhxHXAiY1hhz1qbwmckwhvTTjtHow3OnKC nB8x8O/TqgGkiHwrDmMkfB4QcUQpzRgqi4n0xcDCliU/g/uLtejEvZ4JURUxq0/0if16AC mFYrHbyXJQuQtYsYl5J7pfxiP1lq1o4A3YAF5iG+/KHDfJAdAgtBP4TDnFzmtI/OiDZXEU B744Sf+swl62L7Zd09uGLb8Hxo7IX1fL0mB6c9sUFdp2klIHmfBe8zfj4J6elA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SclK83zLwz1Kx7; Sat, 25 Nov 2023 08:25:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP8PGGQ054442; Sat, 25 Nov 2023 08:25:16 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP8PGrt054439; Sat, 25 Nov 2023 08:25:16 GMT (envelope-from git) Date: Sat, 25 Nov 2023 08:25:16 GMT Message-Id: <202311250825.3AP8PGrt054439@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: 7041faf5a5bc - stable/14 - Add a HISTORY section for memcpy(3) and mempcpy(3) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7041faf5a5bcd6d49d382edafb313aa8c9726791 Auto-Submitted: auto-generated The branch stable/14 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=7041faf5a5bcd6d49d382edafb313aa8c9726791 commit 7041faf5a5bcd6d49d382edafb313aa8c9726791 Author: Gordon Bergling AuthorDate: 2023-11-18 09:09:40 +0000 Commit: Gordon Bergling CommitDate: 2023-11-25 08:25:03 +0000 Add a HISTORY section for memcpy(3) and mempcpy(3) The memcpy() function first appeared in AT&T System V UNIX and was reimplemented for 4.3BSD-Tahoe. The mempcpy() function first appeared in FreeBSD 13.1. PR: 272227 Differential Revision: https://reviews.freebsd.org/D42630 (cherry picked from commit 8c8ffe541eabb23e21ddffb534ecda7ac6d7e04a) --- lib/libc/string/memcpy.3 | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/libc/string/memcpy.3 b/lib/libc/string/memcpy.3 index 5ce43d5dfe75..4207ccb018c1 100644 --- a/lib/libc/string/memcpy.3 +++ b/lib/libc/string/memcpy.3 @@ -31,7 +31,7 @@ .\" .\" @(#)memcpy.3 8.1 (Berkeley) 6/4/93 .\" -.Dd July 14, 2021 +.Dd November 18, 2023 .Dt MEMCPY 3 .Os .Sh NAME @@ -77,7 +77,7 @@ function returns a pointer to the byte after the last written byte. .Xr memccpy 3 , .Xr memmove 3 , .Xr strcpy 3 , -.Xr wmemcpy 3 +.Xr wmemcpy 3 , .Xr wmempcpy 3 .Sh STANDARDS The @@ -85,3 +85,14 @@ The function conforms to .St -isoC . +.Sh HISTORY +The +.Fn memcpy +function first appeared in +.At V +and was reimplemented for +.Bx 4.3 Tahoe . +The +.Fn mempcpy +function first appeared in +.Fx 13.1 . From nobody Sat Nov 25 08:25:38 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4SclKZ4xW1z52mhb; Sat, 25 Nov 2023 08:25: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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SclKZ4NsKz4QXb; Sat, 25 Nov 2023 08:25:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700900738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8SmqFAUJIoZTzRC/4sm1FBoBKesYZLJ0Q3G+o0SakNg=; b=qUHo5oPtvnC2fY5412Ay1eAVqwx4qQRssc124vgz0a8/12FiGnEFVxjl0gQ+TnOEZuYsir tHONQp0LbwZson/YBnWCNFWpZJVqZCa1HjHUInaaotpo9JGVoWK0GBJF0ppt+s7RFCcxbx 4gVe382bvsSp8h0H4Trs5MXFm5WiRKb41605RghhzMj2U+JnGP5zB1WNxNTq4ll42Ngcat jF/9wcqoExP3/NS1h0JnqbtgrIo2lSPJ0Xs4rlEbhB+AqwhMddhk5AhBWuUP2kbZVY7V74 jDX/E78ComtX3c8YanF0dBi/gV5V2Qe/LKtXaQZ4kvfdrRh37/ADPpOVN1tq4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700900738; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8SmqFAUJIoZTzRC/4sm1FBoBKesYZLJ0Q3G+o0SakNg=; b=iuJbSdEnffGDBXOXj/uL0te7eF8cWRlW9RaArQPu/g1nKOqTH9wCY+UGSqCwYUmG0SFos5 PxnG/0VPyzrKe7PL0m6eUxqUqFDWsIJRJEiJK5Q5keqjDWRMHfMinqqJN7O7HbAtnMRzif QobwBVp0dqbyrLEWyeTP66QZnGQ5EWCDzw9KxFkmxsMNHSBo9AVhnDq/aaRg0i/c5PZi1K niel9iZjN3J454W747bWm4aVXpifrNhmUT+0s9mZ5pOzMWp51q9Y1qNyJBVDKMQ2kVoinx PLYbOsIFClnGBqHwlKi4CYNiuYtwY/JUJ7jvW32jtlzGwOkdMYzHstlDg0atsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700900738; a=rsa-sha256; cv=none; b=elCBfCvjnKUf/bJXIfxLsl9a4xgL0MVs0e8pOUuejWEnAtMdTTP3yV99QYiR2Pp+oWs1Bv tvfKdYKtV1R0MkCosCKiHKYtbr8Ys1acwNdL48ELR7yIWJMGbe9I1h9opHuCmk3u+GwyJG 01n9miIThEySIW5X6FSUoAWfgJPEYoDP7BIaj1vkdtNU5i5V0GTNmDiut6Sg+4fyCdrbjF 32KUT5G9Ms/Q11a1p/qNcDjkhW54M5Zlb66QZwv+RJDXemxfRGRluyQ1HArjqdnr15INFx RRJ79tDLA0iTVKCySInjLk6cZAbJPnWEoONpFgCLUuTgpKSk2qoSR6uF0gBp0w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4SclKZ3VV9z1KvQ; Sat, 25 Nov 2023 08:25:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP8PclL054653; Sat, 25 Nov 2023 08:25:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP8PcQB054650; Sat, 25 Nov 2023 08:25:38 GMT (envelope-from git) Date: Sat, 25 Nov 2023 08:25:38 GMT Message-Id: <202311250825.3AP8PcQB054650@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: b54addc27ceb - stable/13 - Add a HISTORY section for memcpy(3) and mempcpy(3) List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: gbe X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b54addc27ceb76abf9b4aeec3bca924e9599169f Auto-Submitted: auto-generated The branch stable/13 has been updated by gbe: URL: https://cgit.FreeBSD.org/src/commit/?id=b54addc27ceb76abf9b4aeec3bca924e9599169f commit b54addc27ceb76abf9b4aeec3bca924e9599169f Author: Gordon Bergling AuthorDate: 2023-11-18 09:09:40 +0000 Commit: Gordon Bergling CommitDate: 2023-11-25 08:25:25 +0000 Add a HISTORY section for memcpy(3) and mempcpy(3) The memcpy() function first appeared in AT&T System V UNIX and was reimplemented for 4.3BSD-Tahoe. The mempcpy() function first appeared in FreeBSD 13.1. PR: 272227 Differential Revision: https://reviews.freebsd.org/D42630 (cherry picked from commit 8c8ffe541eabb23e21ddffb534ecda7ac6d7e04a) --- lib/libc/string/memcpy.3 | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/libc/string/memcpy.3 b/lib/libc/string/memcpy.3 index 5ce43d5dfe75..4207ccb018c1 100644 --- a/lib/libc/string/memcpy.3 +++ b/lib/libc/string/memcpy.3 @@ -31,7 +31,7 @@ .\" .\" @(#)memcpy.3 8.1 (Berkeley) 6/4/93 .\" -.Dd July 14, 2021 +.Dd November 18, 2023 .Dt MEMCPY 3 .Os .Sh NAME @@ -77,7 +77,7 @@ function returns a pointer to the byte after the last written byte. .Xr memccpy 3 , .Xr memmove 3 , .Xr strcpy 3 , -.Xr wmemcpy 3 +.Xr wmemcpy 3 , .Xr wmempcpy 3 .Sh STANDARDS The @@ -85,3 +85,14 @@ The function conforms to .St -isoC . +.Sh HISTORY +The +.Fn memcpy +function first appeared in +.At V +and was reimplemented for +.Bx 4.3 Tahoe . +The +.Fn mempcpy +function first appeared in +.Fx 13.1 . From nobody Sat Nov 25 09:05:39 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScmCl2mzCz51tvm; Sat, 25 Nov 2023 09:05:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScmCl2LL6z4c5d; Sat, 25 Nov 2023 09:05:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700903139; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+n7aQ5oBq/IWqEGmJAMuQ6DKtmQRv7lx1QgGHtqe2DM=; b=sM4nQODAc3YSq5CLa94IN8AiyNe95FxvcHgGmEIi1g6NRxDyAOiBAcvxnXQZSw29le4vYg cPOA9eZ2dBwkT83kHei7XReuMy9m/YPtVTmFj0FNU+L74MSTU5Nqg3c1MUdW3ffPRII67M 0FWoZ/m75g5t6TjcUjllbilQ7YZt7fbQLwDuz/l2DmzR7KPncHbZjmeKnSiXy6+YVanPRi Xa5iVtU3swp2uF+7PE9a/keeTcDIsYyH9MDeDINFpNiQITo8ToKwsvNj5VtO3Rxwqx+NG3 fKhIeok7rUn6Rs3LRcid7SaO4ynwZRtIXwRkIwJcQdCqyq/n15Y0zsjmlufJOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700903139; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+n7aQ5oBq/IWqEGmJAMuQ6DKtmQRv7lx1QgGHtqe2DM=; b=fY7TZ6wJvt4cYJDYtGtM8yHzjBBbhZLUid0XB6t7zue6X8nbziP6Y9kMMb8l4QuQMMWeyz ZKx/R81z1/RWZTsaH9gUPbEZqfVtC8KTmROx/LtEpxmDJSDFMed63WYTru0MkMwhWM/NRP JP+WIvGHTD9olM/QwoufkhfrqwWlNZ4RBwEE90/pL5n3BI50LfWWnCffB6ZMUVTwQD2hb3 EIW+Zr+xTtNGgVnF+DcWFCOqjrok1aMzjXFutunFg+/c8geLf90ftV6gEnfGubMUmfu+sD EbR6HOs55jF37zo/s+IEWqiJCGcxTFLoaxJ6vuPqn0b4KJsFrsvQmEgVaNjUww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700903139; a=rsa-sha256; cv=none; b=kHIqtq0m0V2A2MIZqttDqEK/GSBVSxvOa18GKT3F3eqF6v5PuyoCw7U5DqtuzcGJGG5HzH 34BLZ59TF+O1J0agakRCaDkw3lB4nW0Z15TB7VjyK4nKHlaWW4kTiaV140iKkRody1Mdo5 rV17Tv7e3wBfsVeMhAPda++IXZeCl3N1suxOaln3llYVc943IFFgAhCoqNMzPxsf3Jkd8L 2JhdlgqZVZViCjLV/8fKAsJXht/GBeWj0+82e9JTW4d768GmzB7lJ56C5A1HjBzQvpyaRM TxGE011H7ndAUtPm7hYKoKeHHmVnG3gWeQX8fjPkWmtKVOyagS08xkO7nPxe2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScmCl1Qnsz1L9B; Sat, 25 Nov 2023 09:05:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP95dT7021437; Sat, 25 Nov 2023 09:05:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP95dHE021434; Sat, 25 Nov 2023 09:05:39 GMT (envelope-from git) Date: Sat, 25 Nov 2023 09:05:39 GMT Message-Id: <202311250905.3AP95dHE021434@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 1e4798e9677f - stable/14 - compiler-rt: avoid segfaults when re-exec'ing with ASLR List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1e4798e9677f17a7cdc9a1873a0c6e008fc620d8 Auto-Submitted: auto-generated The branch stable/14 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=1e4798e9677f17a7cdc9a1873a0c6e008fc620d8 commit 1e4798e9677f17a7cdc9a1873a0c6e008fc620d8 Author: Dimitry Andric AuthorDate: 2023-11-22 18:23:06 +0000 Commit: Dimitry Andric CommitDate: 2023-11-25 09:05:09 +0000 compiler-rt: avoid segfaults when re-exec'ing with ASLR After 930a7c2ac67e ("compiler-rt: re-exec with ASLR disabled when necessary") and 96fe7c8ab0f6 ("compiler-rt: support ReExec() on FreeBSD"), binaries linked against the sanitizer libraries may segfault due to procctl(2) being intercepted. Instead, the non-intercepted internal_procctl() should be called. Similarly, the ReExec() function that re-executes the binary after turning off ASLR should not call elf_aux_info(3) and realpath(3), since these will also be intercepted. Instead, loop directly over the elf aux info vector to find the executable path, and avoid calling realpath(3) since it is actually unwanted for this use case. Fixes: 930a7c2ac67e, 96fe7c8ab0f6 MFC after: 3 days (cherry picked from commit 4c9a0adad18263ec8725d9bfc5f560c6ad1da8bd) --- .../compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp | 2 +- .../lib/sanitizer_common/sanitizer_linux_libcdep.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp index 3f544623c6fb..ebbd14eca72f 100644 --- a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp +++ b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp @@ -2323,7 +2323,7 @@ void CheckASLR() { "and binaries compiled with PIE\n" "ASLR will be disabled and the program re-executed.\n"); int aslr_ctl = PROC_ASLR_FORCE_DISABLE; - CHECK_NE(procctl(P_PID, 0, PROC_ASLR_CTL, &aslr_ctl), -1); + CHECK_NE(internal_procctl(P_PID, 0, PROC_ASLR_CTL, &aslr_ctl), -1); ReExec(); } # elif SANITIZER_PPC64V2 diff --git a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp index ff62fc4af430..58310e05b359 100644 --- a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp +++ b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp @@ -56,6 +56,7 @@ // that, it was never implemented. So just define it to zero. #undef MAP_NORESERVE #define MAP_NORESERVE 0 +extern const Elf_Auxinfo *__elf_aux_vector; #endif #if SANITIZER_NETBSD @@ -947,11 +948,11 @@ void ReExec() { const char *pathname = "/proc/self/exe"; #if SANITIZER_FREEBSD - char exe_path[PATH_MAX]; - if (elf_aux_info(AT_EXECPATH, exe_path, sizeof(exe_path)) == 0) { - char link_path[PATH_MAX]; - if (realpath(exe_path, link_path)) - pathname = link_path; + for (const auto *aux = __elf_aux_vector; aux->a_type != AT_NULL; aux++) { + if (aux->a_type == AT_EXECPATH) { + pathname = static_cast(aux->a_un.a_ptr); + break; + } } #elif SANITIZER_NETBSD static const int name[] = { From nobody Sat Nov 25 09:05:54 2023 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ScmD252snz51v12; Sat, 25 Nov 2023 09:05:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ScmD24cS7z4cR9; Sat, 25 Nov 2023 09:05:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700903154; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=azIy6uxyQLJM2QeY3w/OfBcvQD0e+ac2V0lDHNXhVfg=; b=wRfDQqKem9WT/x4jHJZ0SRfXX6uQByVxo52RZG2euHigD6EqAMg4uRPTr+N8WFlQ4uzsMi UpS+rZeGKewngYBhh/4Hfbu+qEJPt23L1IjeInfTET5IgY/tyy5KlZb2I/bVEDZJwK/Pxw +guik8jvzM4kWgskDgnosrIJfaYlAofyuX/KH94pK9zhVRdnezzPnmdoCXKkF+7902kVbO OZCR9f8cPKkrLxXxDn4PJs3C3soDOxvKqc98OMMLoeTc5KZNBQ3nx58AqfVkuU5JC21p5B 63cpPfn7cvBE61Yvc6r9hfFexYuAsQkgXpD7ZgawTFrgJXYXhnHzK75lKYc2YA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1700903154; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=azIy6uxyQLJM2QeY3w/OfBcvQD0e+ac2V0lDHNXhVfg=; b=BrGAM01jjxVkW1a0ExACZX1dyCpZ9B+N1S0yk9H5IsPPHGqltbHU7P4AaNQZ0f7hwNfxLf pTaLDwe4xxGnLsFNHCOr0rADFWU4WihPlhhDKZlesZJ1JhGuGkCt4BET/tFYN7/weWdSpx guotrxZaliyM5vOHU6AZ6xERCFY6RLSvNVLdTOZ9ry4+owpWNgMuOHHf73ks5PI5UNSt/K QNPF2jkcrUH9sAvXhlo4RDJY07OwoTiXuvYrsPeQ61/vNF5CjyPHoq7YdWCk4cLsGvN7uX JwKLlrdFo1MKqv7xUwCH0yRyAfDtaszWXyNKon4aREsgJd536v1Did+/wJzX+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1700903154; a=rsa-sha256; cv=none; b=tFgiQuda9DRhqWujzhBf8RS6t568H12Emf6M6cdPZOM8lnmt0K0WvBLKGvw2T7kGaYug7B QolTsKYPoyGCdNJnLsIuWo7SY2VYQfJNEVDAwdpWjGM9nNwkf4Rt4odzyucukUT2Ezca2x HeN98fef2TJkJMQzZcuSSs9W3e3GaU9H8ck39qAU+7WXN5S72LmWEkd46Oyvf64YZ5Fhvz FCHfmEngwJZ2xF2tYXc7je0gQhWQYwzxtuYkIvsdT6idESbleFv/yIGq6tP+bDSmn83Rcl d4xzdwu8SryhNWnn+l7LqzrbAJEyhzv7kFVaOIJvV7nFI8PQLLmsHcg5S41nUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ScmD23YQdz1LhS; Sat, 25 Nov 2023 09:05:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AP95suK021598; Sat, 25 Nov 2023 09:05:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AP95s23021595; Sat, 25 Nov 2023 09:05:54 GMT (envelope-from git) Date: Sat, 25 Nov 2023 09:05:54 GMT Message-Id: <202311250905.3AP95s23021595@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dimitry Andric Subject: git: 7c25a53a2cb9 - stable/13 - compiler-rt: avoid segfaults when re-exec'ing with ASLR List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dim X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 7c25a53a2cb975e516cfea78898bfb850db88524 Auto-Submitted: auto-generated The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=7c25a53a2cb975e516cfea78898bfb850db88524 commit 7c25a53a2cb975e516cfea78898bfb850db88524 Author: Dimitry Andric AuthorDate: 2023-11-22 18:23:06 +0000 Commit: Dimitry Andric CommitDate: 2023-11-25 09:05:14 +0000 compiler-rt: avoid segfaults when re-exec'ing with ASLR After 930a7c2ac67e ("compiler-rt: re-exec with ASLR disabled when necessary") and 96fe7c8ab0f6 ("compiler-rt: support ReExec() on FreeBSD"), binaries linked against the sanitizer libraries may segfault due to procctl(2) being intercepted. Instead, the non-intercepted internal_procctl() should be called. Similarly, the ReExec() function that re-executes the binary after turning off ASLR should not call elf_aux_info(3) and realpath(3), since these will also be intercepted. Instead, loop directly over the elf aux info vector to find the executable path, and avoid calling realpath(3) since it is actually unwanted for this use case. Fixes: 930a7c2ac67e, 96fe7c8ab0f6 MFC after: 3 days (cherry picked from commit 4c9a0adad18263ec8725d9bfc5f560c6ad1da8bd) --- .../compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp | 2 +- .../lib/sanitizer_common/sanitizer_linux_libcdep.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp index 3f544623c6fb..ebbd14eca72f 100644 --- a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp +++ b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp @@ -2323,7 +2323,7 @@ void CheckASLR() { "and binaries compiled with PIE\n" "ASLR will be disabled and the program re-executed.\n"); int aslr_ctl = PROC_ASLR_FORCE_DISABLE; - CHECK_NE(procctl(P_PID, 0, PROC_ASLR_CTL, &aslr_ctl), -1); + CHECK_NE(internal_procctl(P_PID, 0, PROC_ASLR_CTL, &aslr_ctl), -1); ReExec(); } # elif SANITIZER_PPC64V2 diff --git a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp index ff62fc4af430..58310e05b359 100644 --- a/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp +++ b/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp @@ -56,6 +56,7 @@ // that, it was never implemented. So just define it to zero. #undef MAP_NORESERVE #define MAP_NORESERVE 0 +extern const Elf_Auxinfo *__elf_aux_vector; #endif #if SANITIZER_NETBSD @@ -947,11 +948,11 @@ void ReExec() { const char *pathname = "/proc/self/exe"; #if SANITIZER_FREEBSD - char exe_path[PATH_MAX]; - if (elf_aux_info(AT_EXECPATH, exe_path, sizeof(exe_path)) == 0) { - char link_path[PATH_MAX]; - if (realpath(exe_path, link_path)) - pathname = link_path; + for (const auto *aux = __elf_aux_vector; aux->a_type != AT_NULL; aux++) { + if (aux->a_type == AT_EXECPATH) { + pathname = static_cast(aux->a_un.a_ptr); + break; + } } #elif SANITIZER_NETBSD static const int name[] = {