From nobody Mon Apr 14 16:10:20 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZbshD5DfWz5t3mr; Mon, 14 Apr 2025 16:10:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZbshD4hrDz44XW; Mon, 14 Apr 2025 16:10:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744647020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N/rqc0xqIysnTB/48sNCB+Vwhz8GO/UDPuybvWTQA50=; b=aeyXxWQKpNAW4Rthv0R7ncf/aSxIgkxi8PtBvJeW2U/ttKF5zHlfswtBmYklJXyJ6A8y0C Brx8kW9jd+9nnWiHZV27LY2XyLIs0Nig8cuW6Xu0iShik/Vw+JotZpHm0RzHnesu4wCHQh W9kZ5LDUtOkOii3Ee951/S9a7OoTMJmF/cIJP/GhteM3gr2mG+FzoZ+tP7MGIQY9BPhPh/ o7jnPsAPw+4gNfoyHh+AVkVtuYRo3lo0vj+PJmbkOA8qyM/H55Ja2qR05M4T7tvyY/ecxx k5iNdrABqUInxDnvMd1x7aL6h47eplwdrNBRc9q1DbB+V/4cavEY+lls2P2bAQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744647020; a=rsa-sha256; cv=none; b=NkRVupK05k4tR7d77pJoR0toYCxveP8hF93XAusSC2agTgukjohxNB93vIYdq7ahoRbO5h H5lW7rbJjy/9j8BaQV/Kh3efx48SWICVRDktCVNpXFFFB/KUXClIqxRhHgalVcYgsEQ8tG rvpqOUCD5GE7aFnqmOxsFvCtwPNLBtNKWzHYaorajmyED8tQRBNo6KGOeHCUwrta01hTG4 3kObWj+z4viX7G0uY/ZhguugiXdlmF7WOMQ5L2Lqb4v3Wp5PP6diMuQpegG48x7sVf2vqR ip3QAjIHnWNnM4DbU4XvSa3jJHP8wfu/XSOtGk+WGEf4eGJ/AHVk4+/2yBgZWQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744647020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N/rqc0xqIysnTB/48sNCB+Vwhz8GO/UDPuybvWTQA50=; b=ee6KV/kyP1WwSdUB/JANq7/XoFjityrViUmN+bhVnVBxkVMofCgelvkGQBYJAmnMurtNKC W7OAr7dICgo0FKvOrg+mJbrbOGHmSRxJu35Xy+1p8kyW5JGaZKAR04/kuhnTLs3bC/sSGc vLO6ewHHNQ8JwbVY9A0avdhmO1eqFCZZSftR730NZy+QA8TTV8onXldVDBMTOrZSs0yXiH aN+3wEOAECsi4iMbU0B6WnJ+uoPtyBxPvNz7XUMk2Tb/hi5N/LZ5NqbVqet6bML7zGvOjZ dhRVUEI4xppWdrUynxmod0/wKQ0OZ+mwE997S+8VsEB4bVQaDzHPVYESMp+ktA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZbshD3vBJzw4D; Mon, 14 Apr 2025 16:10:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53EGAK8W066276; Mon, 14 Apr 2025 16:10:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53EGAKuI066273; Mon, 14 Apr 2025 16:10:20 GMT (envelope-from git) Date: Mon, 14 Apr 2025 16:10:20 GMT Message-Id: <202504141610.53EGAKuI066273@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 43933d89a325 - stable/14 - acpi_pci: Add quirk for DELAY-after-EJ0 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 43933d89a3256f33d0eb29473ac56b3e0e7b9318 Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=43933d89a3256f33d0eb29473ac56b3e0e7b9318 commit 43933d89a3256f33d0eb29473ac56b3e0e7b9318 Author: Colin Percival AuthorDate: 2025-03-06 05:22:33 +0000 Commit: Colin Percival CommitDate: 2025-04-14 16:09:49 +0000 acpi_pci: Add quirk for DELAY-after-EJ0 On some EC2 instances, there is a race between removing a device from the system and making the PCI bus stop reporting the presence of the device. As a result, a PCI BUS_RESCAN performed immediately after the _EJ0 method returns "sees" the device which is being ejected, which then causes problems later (e.g. we won't recognize a new device being plugged into that slot because we never knew it was vacant). On other operating systems the bus is synchronously marked as needing to be rescanned but the rescan does not occur until O(1) seconds later. Create a new ACPI_Q_DELAY_BEFORE_EJECT_RESCAN quirk and set it in EC2 AMIs, and add a 10 ms DELAY between _EJ0 and BUS_RESCAN when tht quirk is set. Reviewed by: jhb MFC after: 1 month Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D49252 (cherry picked from commit 55c3348ed78fb1d0891e8bb51a8948f95da3560b) --- release/tools/ec2.conf | 5 +++-- sys/dev/acpica/acpi_pci.c | 2 ++ sys/dev/acpica/acpivar.h | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/release/tools/ec2.conf b/release/tools/ec2.conf index 21ea56d109ca..3675736ab986 100644 --- a/release/tools/ec2.conf +++ b/release/tools/ec2.conf @@ -68,8 +68,9 @@ ec2_common() { # (in fact the PL061 has no pullup/pulldown resistors). Graviton 1 # through Graviton 3 have non-functional PCI _EJ0 and need a value # written to the PCI power status register in order to eject a - # device. - echo 'debug.acpi.quirks="24"' >> ${DESTDIR}/boot/loader.conf + # device. EC2 instances with PCI (not PCIe) buses need a short + # delay before rescanning upon device detach. + echo 'debug.acpi.quirks="56"' >> ${DESTDIR}/boot/loader.conf # Load the kernel module for the Amazon "Elastic Network Adapter" echo 'if_ena_load="YES"' >> ${DESTDIR}/boot/loader.conf diff --git a/sys/dev/acpica/acpi_pci.c b/sys/dev/acpica/acpi_pci.c index 97704111839b..b7a2bf70b4e0 100644 --- a/sys/dev/acpica/acpi_pci.c +++ b/sys/dev/acpica/acpi_pci.c @@ -432,6 +432,8 @@ acpi_pci_device_notify_handler(ACPI_HANDLE h, UINT32 notify, void *context) acpi_name(h), AcpiFormatException(status)); return; } + if (acpi_quirks & ACPI_Q_DELAY_BEFORE_EJECT_RESCAN) + DELAY(10 * 1000); BUS_RESCAN(dev); bus_topo_unlock(); break; diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h index 830764434f48..d35504127c9c 100644 --- a/sys/dev/acpica/acpivar.h +++ b/sys/dev/acpica/acpivar.h @@ -232,6 +232,8 @@ extern struct mtx acpi_mutex; * as "PullUp" and they should be treated as "NoPull" instead. * ACPI_Q_CLEAR_PME_ON_DETACH: Specifies that PCIM_PSTAT_(PME & ~PMEENABLE) * should be written to the power status register as part of ACPI Eject. + * ACPI_Q_DELAY_BEFORE_EJECT_RESCAN: Specifies that we need a short (10ms) + * delay after _EJ0 returns before rescanning the PCI bus. */ extern int acpi_quirks; #define ACPI_Q_OK 0 @@ -240,6 +242,7 @@ extern int acpi_quirks; #define ACPI_Q_MADT_IRQ0 (1 << 2) #define ACPI_Q_AEI_NOPULL (1 << 3) #define ACPI_Q_CLEAR_PME_ON_DETACH (1 << 4) +#define ACPI_Q_DELAY_BEFORE_EJECT_RESCAN (1 << 5) #if defined(__amd64__) || defined(__i386__) /* From nobody Mon Apr 14 19:24:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zby0p6dcBz5tL1Q; Mon, 14 Apr 2025 19:24:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zby0p5C0Zz3D3B; Mon, 14 Apr 2025 19:24:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744658698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jVC3Rlw3juP0xKUP0fzsAZyTFUzQBCllGc0W/kPjUms=; b=JvXq3BgYOcZTErKs0SHX15wN+8IBHzfcR5DQvD9dH9QEpASeB08rw26x99a+ha+sPylBi0 dZ/L7rE+C94/xVjLEhngbHJ146pzdw+4v/vuZjE21c8XXsKMpn3NQRby48D0F9oRlAbQlq c1g4kK4ct65n8fsTaI86rolkDhrYT29ISNt6zGSWpt1Ow1ZMFzE7OE9i/0iFAozgBns4zB fzK7WqRGUKLpVsacUVTYO/xr6ScuVaPtQR55EjbwV9FljeBWY3HZun23Lie3Cw2cvuHDH6 8SKxxgfZZO+yMG5lnEzfPiMrtbPQUSHJR0Z7+WsY7kPNvBcSsMPE8X+Eg1bzug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744658698; a=rsa-sha256; cv=none; b=F2MfqcvCjkO0BcA5EY0NT5Sq+O7YrRzTg6prOhGioDfo1vBDTc4wU/Z3PlcRp4mRSwn4vS +N1BxOtVJNMOpSv3Xx5eDJE+bkQE9PbkT4hNGwhCoW/BRKVSBb9SkMRXi09DAWU2cCwldV b7eP0GERea3xWy5exqwOzhooqcVTv8xaqxgUpy/MZdaI+E1Ld+9FzzKNzJvSpf8o2mOQL0 G01Yj4J2GhufbbCseamXeww5cFCrsF4xDtwd5mIAQ4TlcrivlSjr85o1TruF3Hol7n14yI 2ZFUe1RrNUH/b1MTR+BafSNTxwSyRfM8hxwOApkyPlzc3RQf2jO/422xBgiHNQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744658698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jVC3Rlw3juP0xKUP0fzsAZyTFUzQBCllGc0W/kPjUms=; b=txGz29VoPAghF/aefjP/6iEjbzz3s9/hcy3XVQHWYqvn9xr699e3Ca8JSynwHBe/7XL6jI QqAmTSeSdz4ubIN6Lr2maUB/yfrSuPRXuSpXFWl6U/F+RsrgDQ7AIn+bGNGeUWkWqoHqmG tMFt/ZRmHWTkQbRjI0OGl65ZsAmmwR/8AlKQHCWslzcX9Gx9Tej2ygyZoDJrZeFGmimY87 a3hH2ymk2XE4tLJ/6qXbCZilW197I+BdN4WCA9N5cHi2H1q8IeocgyLAuUUZw5rqfizSoI 60Z2ENu4AGURTbCzpVKbivgkywPt9Pb8rlMTMDKyLcad5fcTLg06Rv7VgsYf/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 4Zby0p4Zz1z1188; Mon, 14 Apr 2025 19:24:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53EJOwFa030698; Mon, 14 Apr 2025 19:24:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53EJOwZY030695; Mon, 14 Apr 2025 19:24:58 GMT (envelope-from git) Date: Mon, 14 Apr 2025 19:24:58 GMT Message-Id: <202504141924.53EJOwZY030695@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: fcda475ccfca - stable/14 - OpenSSH: Fix logic error in DisableForwarding option List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fcda475ccfcabe6f70e6ef25ccd507ac4b92c1ee Auto-Submitted: auto-generated The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=fcda475ccfcabe6f70e6ef25ccd507ac4b92c1ee commit fcda475ccfcabe6f70e6ef25ccd507ac4b92c1ee Author: Ed Maste AuthorDate: 2025-04-09 14:54:46 +0000 Commit: Ed Maste CommitDate: 2025-04-14 19:24:47 +0000 OpenSSH: Fix logic error in DisableForwarding option This option was documented as disabling X11 and agent forwarding but it failed to do so. Spotted by Tim Rice. Obtained from: OpenBSD d31ec64016fc Sponsored by: The FreeBSD Foundation (cherry picked from commit 3620d70511dc8bf45752028dac0af6f157ec6146) --- crypto/openssh/session.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crypto/openssh/session.c b/crypto/openssh/session.c index 591f1e329a8d..03a20f9d9648 100644 --- a/crypto/openssh/session.c +++ b/crypto/openssh/session.c @@ -2194,7 +2194,8 @@ session_auth_agent_req(struct ssh *ssh, Session *s) if ((r = sshpkt_get_end(ssh)) != 0) sshpkt_fatal(ssh, r, "%s: parse packet", __func__); if (!auth_opts->permit_agent_forwarding_flag || - !options.allow_agent_forwarding) { + !options.allow_agent_forwarding || + options.disable_forwarding) { debug_f("agent forwarding disabled"); return 0; } @@ -2589,7 +2590,7 @@ session_setup_x11fwd(struct ssh *ssh, Session *s) ssh_packet_send_debug(ssh, "X11 forwarding disabled by key options."); return 0; } - if (!options.x11_forwarding) { + if (!options.x11_forwarding || options.disable_forwarding) { debug("X11 forwarding disabled in server configuration file."); return 0; } From nobody Mon Apr 14 19:25:29 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zby1P5T9Xz5tKmm; Mon, 14 Apr 2025 19:25:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zby1P2fkdz3DHC; Mon, 14 Apr 2025 19:25:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744658729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XcvEDN9AHH7SAJyL8arcDLu+jJVYojrctu5Hp0qbANA=; b=QFnJvQrrb1nPt9NSDi0+6bIxnms+9meMex7fpFhjJ0pUCyI/bGsGIY0ZIfgpz+zm7NNLO9 lFIHBRpxcpz3xKPAO0ifhqKcojPoo8DMDagN7aqA8A3ZtByDvD6SfRAx+FIvbjiVMnVhR5 Chkt0Hru2yPafEHexzovFeSIcm4e4+Q9LuAzvV7HF3ShOKuxn87R+uANSpM3305dmlHm5M zhBzaH3UFqgY9LKIKIbf5tVx1ZF1zwrUWaacSBkiPr3XlL/s+Erj6gfviidxUqgkPOllTl j7KS92ZIo90MOqu0AsRCNsxvdM/BI0t3TdqWfcp/XrWxCPW4vRPpqQMMzLGKkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744658729; a=rsa-sha256; cv=none; b=b2FCZrmDp3G6AE0ej+ahbSFumx7lZI8On5IZ5YgmuuYexLicuWeMxwnlVO+3IzA1fasCXq LPQ7nBTOIrcRyznuK3SF4VZa+EjD4wcwJe66+4dklc8yip7Yf9ZVyMYEguDrx+TcTaS2wx XftDReoXtZ7YqX4ozmQZeDHZ1j8jmW8V18xpsW8MMW2rpDCOD5e4CZ4TRq5elGZkeKcVB2 TtGk3WYnz8mr+VC4dzKwo70PrsXIbFqvso956x6sHD6sYUy0HGXaeDhHPQ2RiywlT2AjmM /xWc0/NHcnC5jRwxq1EOIVsmSaJpLKfLnJkDTYHZWRjpgl3jLHaaMFQERitUZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744658729; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XcvEDN9AHH7SAJyL8arcDLu+jJVYojrctu5Hp0qbANA=; b=EpcKyw7FqKofXMKPrCCHhVNsOdl7UIBQcKraKOO5WVOQu0NALpcHlCwePmkLuyobIaTCH+ JC+o7w/UGZFupNV3s8p+zSMRliHb2rvScbUDnuuhMS3tdC5kmkgF/CVJaU4hSnpBbDj/BB D39C40UyAFOW5TxhwHlxai2gZoGia6jqs9I/Q6+U8vjqAzjAYQvbSDRVRB1yP7d9bJqXB7 dAO8twf6/mX9xyFdK5XC77kZuAuiBPTapFAAKdmy2hx8IjSf9ZvRY7TllUbyN29V0LAL8v aCzqIM7bt4GFNRuICTpnvTlB2B8G6sFNuavnN6bkGe7MvST9FRo0X2FEvJUYVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zby1P2Fv3z11wv; Mon, 14 Apr 2025 19:25:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53EJPTjN030980; Mon, 14 Apr 2025 19:25:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53EJPTcY030977; Mon, 14 Apr 2025 19:25:29 GMT (envelope-from git) Date: Mon, 14 Apr 2025 19:25:29 GMT Message-Id: <202504141925.53EJPTcY030977@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: c976df712c0f - stable/13 - OpenSSH: Fix logic error in DisableForwarding option List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c976df712c0f64d43970be7036301ce7cf558a78 Auto-Submitted: auto-generated The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=c976df712c0f64d43970be7036301ce7cf558a78 commit c976df712c0f64d43970be7036301ce7cf558a78 Author: Ed Maste AuthorDate: 2025-04-09 14:54:46 +0000 Commit: Ed Maste CommitDate: 2025-04-14 19:25:13 +0000 OpenSSH: Fix logic error in DisableForwarding option This option was documented as disabling X11 and agent forwarding but it failed to do so. Spotted by Tim Rice. Obtained from: OpenBSD d31ec64016fc Sponsored by: The FreeBSD Foundation (cherry picked from commit 3620d70511dc8bf45752028dac0af6f157ec6146) (cherry picked from commit fcda475ccfcabe6f70e6ef25ccd507ac4b92c1ee) --- crypto/openssh/session.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crypto/openssh/session.c b/crypto/openssh/session.c index 591f1e329a8d..03a20f9d9648 100644 --- a/crypto/openssh/session.c +++ b/crypto/openssh/session.c @@ -2194,7 +2194,8 @@ session_auth_agent_req(struct ssh *ssh, Session *s) if ((r = sshpkt_get_end(ssh)) != 0) sshpkt_fatal(ssh, r, "%s: parse packet", __func__); if (!auth_opts->permit_agent_forwarding_flag || - !options.allow_agent_forwarding) { + !options.allow_agent_forwarding || + options.disable_forwarding) { debug_f("agent forwarding disabled"); return 0; } @@ -2589,7 +2590,7 @@ session_setup_x11fwd(struct ssh *ssh, Session *s) ssh_packet_send_debug(ssh, "X11 forwarding disabled by key options."); return 0; } - if (!options.x11_forwarding) { + if (!options.x11_forwarding || options.disable_forwarding) { debug("X11 forwarding disabled in server configuration file."); return 0; } From nobody Tue Apr 15 02:25:30 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7L3383Qz5sjbM; Tue, 15 Apr 2025 02:25:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L32DPpz3Lvs; Tue, 15 Apr 2025 02:25:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e0WhZMF2wyLeDO+iWTGVjxr5CSdSlncwpe0IetGTg0Q=; b=dgAul/FgmlUV8VQE8hcfN0Pno5vaxGtfNAT2kiA4HHT58qDtPjgfn8icZaysQjmr3HXodm aWXPS35ytRkTg000MQkVoblYLC3L45orYfV4AT/Av8uWVvYHWhYK1w7D9Pc6m/KEIEGWuF /4DPyxW76yz/Wzuy6e6VQiJ93ub4Dru/wKpcmQTbqsJdZM1y4Zi6JS52iJ8HPrmBlXujJJ f3yjuYxBsJh84ZtSERLSA6HKRJNlA4Oqk99fZUT8pP58z2sRBduDJKpiW6WfZD1Ze7AToI dacvkmX+w6B/WojoGNuRlw7eQtXZ359VScZPQFimdx2GBRFtsfabHxrv/l7Olg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683931; a=rsa-sha256; cv=none; b=Kg3Zcb3hOtWOr8qvD13UXNab44GljRcOBNzF6MWpLwcK3NyLt7Lv/yXjOcOetH7JkQ9N7M VuYUjo/BB17X59wC/RRfDWqqVFA0k38iQ49AClcJshuSM+ntMtFIJB0i+2cf7K9HpquGuh mUYjDBBNDGHs5WhK1i4dC/CTR3JeDO5VRFxQnY7LJEdev8i1271pl/tIc2cfEXDE9YCC5M 5z3dRKLw3KNy1XJdA3aO+tMb0sri/QZQ3+Xj20mKXgyDdx7NrdLKrD1jWuhRnPUdxC89WK nWu7wSUl7qpdCwL+VX1uYuwLBYFKBdqqiMNCSNSCsY2/w+Gy1xXFjFqSxp7wDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=e0WhZMF2wyLeDO+iWTGVjxr5CSdSlncwpe0IetGTg0Q=; b=SOM5PtuzEllvskQGt+8c5ea37LDazopCNb7CuziHu+zu6rW8sSRMQ2imqlOgcRoEpsZNyN yTlY6ZDVgyNbpbwRnNAbo701IZiVhqi8CY9+lDy+4PwfPJcTeN5tVA/Ra0J1Fd5dWGELOP KcLErBO9k3ukLD5Z93VRddS8nDEHL5VMv5CoxVDi20OEFZZVTucq5C4VhoFs32pwWnKZfk BMmzTJh8TcR6LPa2I0uHKlJqx8khEHTjWalHP79242sUxG+LBghVJusWIRuf+UQSAnRpV9 7vMorxyhiw16fD6nv9Mln+Y2yHQvzyNUACzdaci2RpoYYWsL+8qHbjdSAzGYrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L31JqCz1Cct; Tue, 15 Apr 2025 02:25:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2PUco014407; Tue, 15 Apr 2025 02:25:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PUTa014404; Tue, 15 Apr 2025 02:25:30 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:30 GMT Message-Id: <202504150225.53F2PUTa014404@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: 52465324497a - stable/14 - socket: Handle the possibility of a protocol with no ctloutput List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 52465324497af565076a584280299135ae6cbebd Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=52465324497af565076a584280299135ae6cbebd commit 52465324497af565076a584280299135ae6cbebd Author: Mark Johnston AuthorDate: 2025-03-29 08:55:08 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 socket: Handle the possibility of a protocol with no ctloutput Add a default ctloutput handler and remove various NULL checks. This fixes a problem wherein the generic SO_SETFIB handler did not check whether the protocol has a ctloutput implementation before calling the function pointer. Reported by: syzkaller Reviewed by: glebius Fixes: caccbaef8e26 ("socket: Move SO_SETFIB handling to protocol layers") MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D49436 (cherry picked from commit 590b45036ee16163f9eb8c34791d197e76de502d) --- sys/kern/uipc_domain.c | 7 +++++++ sys/kern/uipc_socket.c | 12 +++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sys/kern/uipc_domain.c b/sys/kern/uipc_domain.c index 22b8a17295ed..221ac19287e0 100644 --- a/sys/kern/uipc_domain.c +++ b/sys/kern/uipc_domain.c @@ -106,6 +106,12 @@ pr_control_notsupp(struct socket *so, u_long cmd, void *data, return (EOPNOTSUPP); } +static int +pr_ctloutput_notsupp(struct socket *so, struct sockopt *sopt) +{ + return (ENOPROTOOPT); +} + static int pr_disconnect_notsupp(struct socket *so) { @@ -210,6 +216,7 @@ pr_init(struct domain *dom, struct protosw *pr) NOTSUPP(pr_connect2); NOTSUPP(pr_connectat); NOTSUPP(pr_control); + NOTSUPP(pr_ctloutput); NOTSUPP(pr_disconnect); NOTSUPP(pr_listen); NOTSUPP(pr_peeraddr); diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 7a4e3b1f2507..fffb1d5b9af4 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -3793,10 +3793,7 @@ sosetopt(struct socket *so, struct sockopt *sopt) CURVNET_SET(so->so_vnet); error = 0; if (sopt->sopt_level != SOL_SOCKET) { - if (so->so_proto->pr_ctloutput != NULL) - error = (*so->so_proto->pr_ctloutput)(so, sopt); - else - error = ENOPROTOOPT; + error = (*so->so_proto->pr_ctloutput)(so, sopt); } else { switch (sopt->sopt_name) { case SO_ACCEPTFILTER: @@ -4004,7 +4001,7 @@ sosetopt(struct socket *so, struct sockopt *sopt) error = ENOPROTOOPT; break; } - if (error == 0 && so->so_proto->pr_ctloutput != NULL) + if (error == 0) (void)(*so->so_proto->pr_ctloutput)(so, sopt); } bad: @@ -4055,10 +4052,7 @@ sogetopt(struct socket *so, struct sockopt *sopt) CURVNET_SET(so->so_vnet); error = 0; if (sopt->sopt_level != SOL_SOCKET) { - if (so->so_proto->pr_ctloutput != NULL) - error = (*so->so_proto->pr_ctloutput)(so, sopt); - else - error = ENOPROTOOPT; + error = (*so->so_proto->pr_ctloutput)(so, sopt); CURVNET_RESTORE(); return (error); } else { From nobody Tue Apr 15 02:25:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7L440g6z5sj16; Tue, 15 Apr 2025 02:25:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L42Gj1z3Lvw; Tue, 15 Apr 2025 02:25:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HqTrwx0jsOvh+Z8Oh6c0T+qDt4rk3icqFcq+Y5Sk9OI=; b=Ds3CM6IFcY0zNpF9YG0HGq8V5DrvVLr+BR+NwbMJN+3H1ptAMXvr6fdYr0RD8gYkXSU/WK u1QrtV0mafI4zoqlfUirxwXZZhQ+YvLZylMMAHCR4ejpFDiM9ZIgOi42WbqnfB5Rl6DzXA Mydz6xdUWhegvz0EOpWU7bWOLYjBy1q3hdEkxewtHXp5F/n+ZZMFLAU1bFFWNP/1ACEimx HUL0yz7J0egzLfEXiTio2l1XqmEedL7HlryqHQTlbg4N7AozqlMXw8fgnMxEijcReOb5uB DSmRMfu8iZ8IehxvBSy3atwjaUt/fodK7roWDPvoDKJsU+VdWCJVtPIbfW0EJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683932; a=rsa-sha256; cv=none; b=iYWMTZXJ+T654V0BwP/LwgGu2YIZJcRCyGuB270ZNmAdCoPi57k73o+7rAmtkzS7PdXie/ AnWv19qHT1Ft5/X8B6DKioF39zARIa3yBls6ra9FLcJoM5IDOKlkr5eGcxTS4jd0dGRDxU veyJqWjnCGcTvgYkl3hcC2LkfAqNAZ4fjxU7Auboxq+u6tCU6oeh8hJTscUDDFuiIxTC4p nmQquULV3RZhB3QL6L8Ibkr8X6gvNHxLQYdVirqJnDIKYkxdeBzlJA/mXtjRkwEQDPGCQ3 LACLUWVUmey5oEqpUKThFQHu7kmAeQtwhVhtf0F9Er8iOR/VfEq7UzZvuM3ldQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HqTrwx0jsOvh+Z8Oh6c0T+qDt4rk3icqFcq+Y5Sk9OI=; b=VZXbdFQmHflPB+qR4L51dHRSXxeVTQsvgy6hf+o+6sfqnlrRCaeIR6AETc8WpynhCp05sG b+d0MRuS/L5xqO8viOAW2PNlAVnd9XtEzZU0Cxs+DVUvulegv2yIL65NWqrPWbo0111f2V 6sPAPSXPAtKAahAMhn8bzGyXbAFkEVPKfihNSRBtoEFRjVYWE/PAxSPd1THVVh72ViBB2N VChzxGetpvIbcVxjJOsUENNDcVJTfS4FiW0hgSBa6dGwcROmlPZcJUchjbu3S1pCxVzQi7 r/KkKp5G4qg4Kzf1ANVKmPwS0zsXoxDZqqKiipIv4BI+fmcv8Lo4ZBy7Pu2jqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L41XgvzGJ; Tue, 15 Apr 2025 02:25:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2PW61014444; Tue, 15 Apr 2025 02:25:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PWvc014441; Tue, 15 Apr 2025 02:25:32 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:32 GMT Message-Id: <202504150225.53F2PWvc014441@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: 24b82123a83e - stable/14 - i386: Avoid registering overlapping vm_phys_seg 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 24b82123a83e375f2b4a045c4bff3fb869a7c9dc Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=24b82123a83e375f2b4a045c4bff3fb869a7c9dc commit 24b82123a83e375f2b4a045c4bff3fb869a7c9dc Author: Mark Johnston AuthorDate: 2025-03-26 09:34:53 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 i386: Avoid registering overlapping vm_phys_seg entries The entry added in pmap_bootstrap() is guaranteed to be covered by that added in pmap_cold(). This apparently went unnoticed until commit 8a14ddcc1d8e ("vm_phys: Check for overlap when adding a segment"). PR: 285415 Tested by: dim MFC after: 2 weeks (cherry picked from commit e173855c9f6b3b87c975418d0acf1c22ac4f1626) --- sys/i386/i386/pmap.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 5e750b48ec5e..828e39b58cac 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -624,15 +624,6 @@ __CONCAT(PMTYPE, bootstrap)(vm_paddr_t firstaddr) res = atop(firstaddr - (vm_paddr_t)KERNLOAD); - /* - * Add a physical memory segment (vm_phys_seg) corresponding to the - * preallocated kernel page table pages so that vm_page structures - * representing these pages will be created. The vm_page structures - * are required for promotion of the corresponding kernel virtual - * addresses to superpage mappings. - */ - vm_phys_early_add_seg(KPTphys, KPTphys + ptoa(nkpt)); - /* * Initialize the first available kernel virtual address. * However, using "firstaddr" may waste a few pages of the From nobody Tue Apr 15 02:25:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7L53Qxrz5sjVf; Tue, 15 Apr 2025 02:25:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L52N6Rz3M2h; Tue, 15 Apr 2025 02:25:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wZVulW4RVSV5mcrinzR7K3q7szFmUt/h3COYREVS8A8=; b=bZ3BLzyBtOCLM4qQgDjW708B0yHhzUyYYf0tc9lUI2B/FWS2V8FVv6unE3qxNJBFUsaVzO R2+TzVJECXLChlLnWC7UjX2sEUYpVhyyrB/QgkuGNv9veEs6L/qoTrpcRNuQcypW23kAb0 bk6AvlQByqJvprQLk/uH35q82PErucizHVX0zSfkUzTxz589rmQmFrqYSo8dizsxUIMhL2 h2yyfS7VXatOr4bt/UZ3RR4KQGmFhN4j6m8BW3ponpuQKL/S2A61+8wgWTVhT7akCb0OR8 0q13O937A1IxaH1Fc1OyqiErub9rxPAOebPREodSV4oOrsxK+0/gwL5Lsdli9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683933; a=rsa-sha256; cv=none; b=Z432TuBIsJvrLh48uYzNP4E867A2jas6O9TAipuilN8Ikl7D8rX7ZQFkKa1UpDhmiP+hTz U2oLTaJ4nF3ImQq4CZYVqiPDkm+VquzooTW8LM9pLDlo7jaA7KX65hPQp6nPteWysidMNH axfktklsL/JcxCNSDQ2cZTE0r6hzNsx6lYpLNURHAtM7lfilNQHnXmJMdMspBXohaI0Iqh 0a2dZXgRW/QO/ANTj8OhGIi8SJJPtwzo6nHsMtc0v75Q4jyPJycNT3OS2UenWIiyQXksoY 0j8ViIH6fkmcxtOyx7IQXhU9KmRGyqg2Q5YelJIIOIljNkp+WoRiRNQzQZoTOQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683933; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wZVulW4RVSV5mcrinzR7K3q7szFmUt/h3COYREVS8A8=; b=OZBj1s9Zef/ge+gGKmXajOeFKhsgK8dFVxJx8+TccUNWXNPAWsESeA/jHcEjpeKcvsQ7Wo n/6WkuMYzR9+ACvz2JDc4UhXNNa1DeEyFUrFNXYUVCeKOCwmOjhqO6mHyzr4yITulebO1u V5pC8Xx6R1Pqmcj6SddjozBhe7PqX/LtrXCIGdZLe8RrqkUxeIR2yD2jaz6wRhml/+3ZiH tQTNYJrzt/50KXH8i6W4LitM9K5PI7v3b/8OobV6V1s8QaoHInOLL8j4mrp2vhERWx76wW /sCWZ7bJAKXqRXIHujhcWdmFJ5FDXrf9xOtjktdZ1Uc99c3LvqwheX8beIcRTQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L51rXdzJ1; Tue, 15 Apr 2025 02:25:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2PXbb014480; Tue, 15 Apr 2025 02:25:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PXVV014476; Tue, 15 Apr 2025 02:25:33 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:33 GMT Message-Id: <202504150225.53F2PXVV014476@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: aaa266adc32b - stable/14 - pf: Use a macro to get the hash row in pf_find_state_byid() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: aaa266adc32b5e5a71aedbf5a1cf610049705553 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=aaa266adc32b5e5a71aedbf5a1cf610049705553 commit aaa266adc32b5e5a71aedbf5a1cf610049705553 Author: Mark Johnston AuthorDate: 2025-03-29 08:52:06 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 pf: Use a macro to get the hash row in pf_find_state_byid() This seems a bit preferable to open-coding it. No functional change intended. Reviewed by: kp, glebius MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49518 (cherry picked from commit 27f70efebf1d9424462f291e9d04e62272083aa7) --- sys/net/pfvar.h | 3 ++- sys/netpfil/pf/pf.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index 9ceed54fd52b..949cb36ee474 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -2117,7 +2117,8 @@ VNET_DECLARE(struct pf_idhash *, pf_idhash); VNET_DECLARE(struct pf_srchash *, pf_srchash); #define V_pf_srchash VNET(pf_srchash) -#define PF_IDHASH(s) (be64toh((s)->id) % (V_pf_hashmask + 1)) +#define PF_IDHASHID(id) (be64toh(id) % (V_pf_hashmask + 1)) +#define PF_IDHASH(s) PF_IDHASHID((s)->id) VNET_DECLARE(void *, pf_swi_cookie); #define V_pf_swi_cookie VNET(pf_swi_cookie) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index b14ab91cd7aa..06761060b583 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -1658,7 +1658,7 @@ pf_find_state_byid(uint64_t id, uint32_t creatorid) pf_counter_u64_add(&V_pf_status.fcounters[FCNT_STATE_SEARCH], 1); - ih = &V_pf_idhash[(be64toh(id) % (V_pf_hashmask + 1))]; + ih = &V_pf_idhash[PF_IDHASHID(id)]; PF_HASHROW_LOCK(ih); LIST_FOREACH(s, &ih->states, entry) From nobody Tue Apr 15 02:25:34 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7L66d39z5sjVh; Tue, 15 Apr 2025 02:25: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L63hW4z3LpQ; Tue, 15 Apr 2025 02:25:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683934; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x/8GdiLQzUTDaPvaFK6ZS3aUz0Pbto4LAdpaOBQeUMM=; b=kgHpMm+7zoUMtIIZZetRYXcSEZNbnbwmcyOxydcnbdjczfzwmQ9N46MR+Hzie4E/nOIrL4 KormgcY01476LtXPwgGRlnSHhui88EDxJC61XgwkY3rBXWgQcOkgEy/Q+MYnDkUtwa/ily AZhyMPzrTjewtURat07KqGN/dkU9emzoKXtKQ6ShCZ4smw19bMw/pwC2W87dEyma2ZcRPh 3If6QOjikvusQDtAPfMxprgQSGRQNDgNIFQS1XR/Q099Taic3vMp5+3e/pTR3B+BFWbEOL 8m7AhqqWr1qpmHU7I8yZkkvJlKFvlcSiJtCB+gkTaGn4unTCcCA+CkkaAPbSpw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683934; a=rsa-sha256; cv=none; b=reGebzfldXxXMVOUJOwJXpLn2mDmbC4/EXpB6ePANFFjG1gR5PbH5oGsbvAtsiDB02bw7/ BXBh6gJU+VxYv/WQgfGaw8d97k3QpOS307UhB+WSVELVk7WlR7My8QTThtqJk86BIVQB1m TAh7NoBLVy2ga+ZufDHCh3HZbf6tBs1SeN5/KuTVYZS603JcUvhiTz0u25zanDTNpC1g8G r3wnJA9glErEY2t+7INKMkOJdan7++Lzj4O4W8HBSazcCjH7SA+zpf+LBZZ65RKItB9Kfx VWVK4MUuniKhkhGiPaKb4waYd7YMkPwSvavqJ/bQ62zvkjEx9Sy2h8s8IYek3A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683934; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x/8GdiLQzUTDaPvaFK6ZS3aUz0Pbto4LAdpaOBQeUMM=; b=SvmIz8QF+KzNlUfU1ieHtMndOnN1MPceCjRyP3lQc/T7c34sBmDXZZkn7cGTa8qgLqv+S6 IhgkhO+P4iCSD8/EpZrp0TZD+eVeLVDL5ULcFxhjm6MwVW8hqLdnjH0Kh71lufDL/WrHx9 6mjnI5PNxJkOyaUY9/7piYyuTR14SK2D4Gn0CZltVqO52aRW/lnPtQbUYeyrENoNTC24I2 O3EEzdmKyhQkEoFqUqkr8OWz2KpJWxP3dIW7Vk7s7/0+OaFj8ebKweLXkj6FbMYkday1CO WaJ1CZPqd91103jXbEgljOt0VibRX8qbiNECyaxoVzzW/d2sHiezf+HN/9q/jQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L635PwzJ2; Tue, 15 Apr 2025 02:25:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2PY84014514; Tue, 15 Apr 2025 02:25:34 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PYrE014511; Tue, 15 Apr 2025 02:25:34 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:34 GMT Message-Id: <202504150225.53F2PYrE014511@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: 07c5a2486cc6 - stable/14 - hyperv/storvsc: Fix busdma constraints List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 07c5a2486cc6f8e64715b5d7c31ccfa02f9f3745 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=07c5a2486cc6f8e64715b5d7c31ccfa02f9f3745 commit 07c5a2486cc6f8e64715b5d7c31ccfa02f9f3745 Author: Mark Johnston AuthorDate: 2025-03-31 10:45:14 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 hyperv/storvsc: Fix busdma constraints - The BUS_DMA_KEEP_PG_OFFSET flag is needed, since storvsc_xferbuf_prepare() assumes that only the first segment may have a non-zero offset, and that all following segments are page-sized and -aligned. - storvsc_xferbuf_prepare() handles 64-bit bus addresses, so avoid unneeded bouncing on i386. PR: 285681 Reported by: dim Tested by: dim, whu MFC after: 2 weeks (cherry picked from commit a319ba694538a38429115aaaf1d4b3946ea3a8b5) --- sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c index d7e7bd85ae29..076b436a2191 100644 --- a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c +++ b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c @@ -954,13 +954,18 @@ storvsc_init_requests(device_t dev) bus_get_dma_tag(dev), /* parent */ 1, /* alignment */ PAGE_SIZE, /* boundary */ +#if defined(__i386__) && defined(PAE) + BUS_SPACE_MAXADDR_48BIT, /* lowaddr */ + BUS_SPACE_MAXADDR_48BIT, /* highaddr */ +#else BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ +#endif NULL, NULL, /* filter, filterarg */ STORVSC_DATA_SIZE_MAX, /* maxsize */ STORVSC_DATA_SEGCNT_MAX, /* nsegments */ STORVSC_DATA_SEGSZ_MAX, /* maxsegsize */ - 0, /* flags */ + BUS_DMA_KEEP_PG_OFFSET, /* flags */ NULL, /* lockfunc */ NULL, /* lockfuncarg */ &sc->storvsc_req_dtag); From nobody Tue Apr 15 02:25:35 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7L76WkFz5sjdv; Tue, 15 Apr 2025 02:25: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L744Wlz3M1R; Tue, 15 Apr 2025 02:25:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vB+FmXs6zulT0RqSGYDk9d2KB8qTAzRL/icXTytzJrc=; b=xv8n1RFXXSYUmuxWsM4wjV1hY2f4YbPune/Eum0ggmIf6VRI/pmtkHACPEIM6gJkgFdt3v iMo2P9KfP5qAXpzud+7QsXMft00ENBM3dCN1dcrP5gqZkDUU8TZn3bWd/YMuRUpT2qsOpD kZ7qRY6LwqA2d5fJAOKyWqXsD/MOedcZ7BOFjuhsUL0ReVMv5wg4zqsoL/DX8FGHYRpqKv nBxGhW+IZio8ly/sd9R9ZoQowRZFl//V/LxYn9dNhm4yyiTSsisQqJaETDvb3jf9QHncA2 VCFmeQdcg/STFlz+97GGQJw7qKF18r0sZsjAaIV5gI+cx+uGNu9XcOSv6xfgNw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683935; a=rsa-sha256; cv=none; b=a0ePO57xPTqbQKef2drAWTy5VhFMQnfaZJZKBQRzK8B3YeVNI8wuFcJEdvH7A5dAoThRVB wz8sKRp7ACQ+/9OLN4XL/AzQWpiPeb7a3FZjobzioWvQEpKS7ZZ1h2GN1FI5Pk/7NeWJbP hrgiwT8bojj7SJ+K2n/gdJWG/3E8O0fqPHGRUmQDwzx3sc5fyZaK3cTV9X9HR9Z+pWL6D+ 8FbMtg8n+fxmSwqxj8eCbn21OXkm+vU44/gMuxhtNCqdVIkK5Fmj7kOP8voHGiKRHI3QXn HZUXhtR5vsC0gASmdGB0skYXWwQcgVYrfzr10LkUtA67MXvL9IQR+46k4GcYRQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683935; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vB+FmXs6zulT0RqSGYDk9d2KB8qTAzRL/icXTytzJrc=; b=ANYyIMK8MLNpKI/NiewDFVVBC+NZnAvK11ZGb2Md9425fBZDrnk845ee9jCCOGvNuZ9F3b VpsqqkKXQYgPuXgjZWgWOUJz7ViOeNkVVECxVx1Zyue2F0b/NLsUJFXhEkNXn0vod6GfNc Q5UZ8lhbi+lKhqmLaCG6eLBFeun6YYlmqx+iiruOLEGcFW8SDWjrE8N+hwvmz9X2mKi/CS TlI4ASDrX8Mn+PQLv7UNjdTggHcM/EHwKVZDMEVJmosBSr18N4yqBnvulJ7OCAJ9qHtMdw jXr32Exma7sql1C9BoKpf3B4OZsMVqszsmv45VgCTtqlTM46QUENrcoDcO7b7g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L73fLHz69; Tue, 15 Apr 2025 02:25:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2PZId014559; Tue, 15 Apr 2025 02:25:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PZAO014556; Tue, 15 Apr 2025 02:25:35 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:35 GMT Message-Id: <202504150225.53F2PZAO014556@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: e6a3962d7dd7 - stable/14 - hyperv/storvsc: Avoid conditional asserts in storvsc_xferbuf_prepare() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: e6a3962d7dd7f302c094d5cea68a3d63a1b67eb6 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e6a3962d7dd7f302c094d5cea68a3d63a1b67eb6 commit e6a3962d7dd7f302c094d5cea68a3d63a1b67eb6 Author: Mark Johnston AuthorDate: 2025-03-31 10:45:55 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 hyperv/storvsc: Avoid conditional asserts in storvsc_xferbuf_prepare() whu@ cannot reproduce the assertion failure which led to these ifdefs being added in the first place, and since they appear wrong, i.e., the assertions ought to apply to all platforms, let's remove them. This reverts commits 0af5a0cd2788efce9f444f4f781357d317bb0bb1 and 6f7b1310b6fe36f9bb653d3e97bc257adced3a2b. PR: 285681 Tested by: whu MFC after: 2 weeks (cherry picked from commit 54a3920dc9b3b5a47cdaaa3132b4fcf1c448a737) --- sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c index 076b436a2191..70a5f414d986 100644 --- a/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c +++ b/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c @@ -1833,7 +1833,6 @@ storvsc_xferbuf_prepare(void *arg, bus_dma_segment_t *segs, int nsegs, int error for (i = 0; i < nsegs; i++) { #ifdef INVARIANTS -#if !defined(__aarch64__) if (nsegs > 1) { if (i == 0) { KASSERT((segs[i].ds_addr & PAGE_MASK) + @@ -1853,7 +1852,6 @@ storvsc_xferbuf_prepare(void *arg, bus_dma_segment_t *segs, int nsegs, int error segs[i].ds_len)); } } -#endif #endif prplist->gpa_page[i] = atop(segs[i].ds_addr); } From nobody Tue Apr 15 02:25:36 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7L952tLz5sjTL; Tue, 15 Apr 2025 02:25:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L85PnCz3LyQ; Tue, 15 Apr 2025 02:25:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yppcTl5edpmh0oPVMkDLhvqEuknWbCz6FtAwfdQYBA0=; b=lzs911vbVCoPhLZceO2gsVinX9pSQWcScjY4RjY8yttsAgdQUYNcCZzZSGOtJWN/eJ6nYV bqM61dSMQUcVBqHmpoPbztu7QNPHmRGj9oPYo/ogVK/prh/k8ijYvkXdsCdoaDjnIZDoIs 7YhW7VYF09KMzi9nsvRyMRbRaTINzn5jqeYTngbm6m9M+FuNGTMMTf3JSeBRr0U9jKWtGG lkjDN2ROFta98a/mjgQtleAuEx3/ya/PE1N+SrgvX959pVHloQPeTpsgjEhUcdsj/mYF/c jXN+MNbL9IVMXZtjT9ujn3EuZkZJJnOSIEVB7EZnQ9+oul/GrqGmFwB0R4mOyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683936; a=rsa-sha256; cv=none; b=RKhUObOvuyMTSqMkeJr+0fBnR80z8n1M5Je07OZ6Rs+aPcrel0x+s8UZW27FysdMijfNpi ulafI/K3/aMCleAPGDNjhv7U5vmdXJeUKPwzUtHiy80zE25crxeCVSMvmttVsSm0qCWtso 3/4AVumVUl9yCmOIca7KrWMLcDhf/KFNzGjIXhwRanJ/bFqVfJwlU6cIKSUpFC1BniO69C l7IdSLQ+6dyAgT679Fq2v85EXDzqd9ddRos27D1cGlntbfuqgQONbea5r1V/m4pVoXwhn5 KzD/Q9Fb8QloPBv8A8sT1zhDlOVbxB8cH7/ft9QohCrIxw3SOA2z7Zy+B9vFGQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683936; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yppcTl5edpmh0oPVMkDLhvqEuknWbCz6FtAwfdQYBA0=; b=LQkrE5IL7JQqKXn/b+WiXIj+zpBBQhr2nzQOMF7RP31lt08E0FngsRXSm8E40xwWEXyv8I u0bGoZhBF4BzuFOpgRmeDIZMPLcwz9VeqmzRVTsRmA17TYuSLjnywv4iSia54mqvJR6wjt WS2pcaP/qXo8m1tlOi7kzNuy0Al7URrbqUCdt59by+XeHAU4a5Iyb/q8ZkhLxPV7TTGQmu FPjg9+toPFBAqrqNIT8sKKVeht3yZ8iyU7Lq4MLZkHPXmtnM02m/o8fDukgMUt3PCD8f1m rW21hQXAaLgFFy6qYJ+ANoTQdjN4cz2N6mHSxMvX0QRwBsqNej6AHWFsa4R+vQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L84yWXz8J; Tue, 15 Apr 2025 02:25:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2Pakf014593; Tue, 15 Apr 2025 02:25:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PaGe014590; Tue, 15 Apr 2025 02:25:36 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:36 GMT Message-Id: <202504150225.53F2PaGe014590@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: c1aa97cf79a6 - stable/14 - file: Add foffset_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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: c1aa97cf79a6fd40eb89bcbd4faebdc5656a6279 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c1aa97cf79a6fd40eb89bcbd4faebdc5656a6279 commit c1aa97cf79a6fd40eb89bcbd4faebdc5656a6279 Author: Mark Johnston AuthorDate: 2025-03-31 01:25:16 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 file: Add foffset_lock_pair() This will be used in kern_copy_file_range(), which needs to lock two offsets. Reviewed by: kib, rmacklem MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49440 (cherry picked from commit 12ecb0fe0afda8c051605045e446371ddd34741f) --- sys/kern/vfs_vnops.c | 20 ++++++++++++++++++++ sys/sys/file.h | 2 ++ 2 files changed, 22 insertions(+) diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index c28d6e66853f..c447ceea1634 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -894,6 +894,26 @@ foffset_read(struct file *fp) } #endif +void +foffset_lock_pair(struct file *fp1, off_t *off1p, struct file *fp2, off_t *off2p, + int flags) +{ + KASSERT(fp1 != fp2, ("foffset_lock_pair: fp1 == fp2")); + + /* Lock in a consistent order to avoid deadlock. */ + if ((uintptr_t)fp1 > (uintptr_t)fp2) { + struct file *tmpfp; + off_t *tmpoffp; + + tmpfp = fp1, fp1 = fp2, fp2 = tmpfp; + tmpoffp = off1p, off1p = off2p, off2p = tmpoffp; + } + if (fp1 != NULL) + *off1p = foffset_lock(fp1, flags); + if (fp2 != NULL) + *off2p = foffset_lock(fp2, flags); +} + void foffset_lock_uio(struct file *fp, struct uio *uio, int flags) { diff --git a/sys/sys/file.h b/sys/sys/file.h index bef21d39e641..07f6bbd5bcae 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -85,6 +85,8 @@ struct ucred; #define FOF_NEXTOFF_W 0x08 /* Also update f_nextoff[UIO_WRITE] */ #define FOF_NOUPDATE 0x10 /* Do not update f_offset */ off_t foffset_lock(struct file *fp, int flags); +void foffset_lock_pair(struct file *fp1, off_t *off1p, struct file *fp2, + off_t *off2p, int flags); void foffset_lock_uio(struct file *fp, struct uio *uio, int flags); void foffset_unlock(struct file *fp, off_t val, int flags); void foffset_unlock_uio(struct file *fp, struct uio *uio, int flags); From nobody Tue Apr 15 02:25:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7LC2F3fz5sjTQ; Tue, 15 Apr 2025 02:25: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7LC0KC3z3MBc; Tue, 15 Apr 2025 02:25:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FQi48Nwe9cfUMPrmAvjA5dUIg3PH3OASlTe+sdCl1Xc=; b=C7dcMpete43KGJkBAehtWDjVYnWYinw2V4kFxWiuQjoz9xV99nggpmQO+Q68gXl5BG9M28 1nJCpOeW5G4nNmd1VpL3k1HZj6GIb2qfLelYAMdqWXX0Kz4UqBJBxjDgp4mKaYwfTSaJrE KXqu/8HO8gAunXt3X7BA5W+Sl+sVqxD2HY8Q3gWLN0RP2Up0AA6pj+cwG7PLhJcqdBv8s7 G3WQTI5Ui9mV8DvOiZt0ZJssKzCV1OkZubIHTfYMwvoo/rjX6bL3fZtDiYVCOespWugJFK xmX8BHbM4LD4EoFaLKwvQzWx/rKMaTI0BKS+pyFVuw08PzDmyN5jdNiBJwEkHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683939; a=rsa-sha256; cv=none; b=rlBXSMuuFs1RhkUB5b9sQjWBBJ3hfYU1kBfYgusrabAF15zq8jk+jJX1h3WeAby0ccIiC+ brj9Sn4G6ObZYxRBKQZHuZVrxQ5ehOKr8FOsbWL1MjlNM9kPglPhhT7XVahnBNJv943EQl c2CPDkXCEq8cLqYOMkUgmWIRkrQ0EDAhGwDTcBfHoLQLdJQz3ciYlcHFt7MKRmZrtLZU7g lfEDozrXd6JRTnddhMeSwcqETM+3prXEpNVip88Q6rZBb3yezmEZ+Pnaz3FrcPfrCgSPIa jOWsKHfTOUAOCRv942QtkYrAMUOACB+mc4xQ5YLDt9rPZLYQg5kyx0KjIDeeKA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FQi48Nwe9cfUMPrmAvjA5dUIg3PH3OASlTe+sdCl1Xc=; b=bfY4hw0tkP0GmjR6n+vByzic9E9otpfy9YfL4dn8yMt3GmGJQTOJieNhhZKkxnumMgPaUX XrCpWtlQjnR4WI8d9iFfCSY8++DuOQjVC2sVOXCFzxY6I9E27Y6ECJqbDye4izuWgnhuPo QmjhlBXG8eC9yBFWvNTHQ+uDJK4oae2HKBY89gEcVQuYZNwj8LLzdHsKEybe3OSlpLgxgL Oh0hAuh2jkPQ3HTcYI2XiCpshkX6KQvNIcTSHl5lEiGtZbYoHYr/HFdOMCKZx83HUynYmj QBxE2qvEVAyiRciTFe6+URCBuuG4MLYIm3NPcA/Jr1PsfufpJItVFteUgXr06A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7LB6llYz8K; Tue, 15 Apr 2025 02:25:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2Pcaf014664; Tue, 15 Apr 2025 02:25:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PcsP014660; Tue, 15 Apr 2025 02:25:38 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:38 GMT Message-Id: <202504150225.53F2PcsP014660@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: 693664482649 - stable/14 - proc: Disallow re-enabling of process itimers during exit List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 69366448264956c18d0b46f900593442ed8e79ba Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=69366448264956c18d0b46f900593442ed8e79ba commit 69366448264956c18d0b46f900593442ed8e79ba Author: Mark Johnston AuthorDate: 2025-03-31 01:22:14 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 proc: Disallow re-enabling of process itimers during exit During process exit, it's possible for the exiting thread to send a signal to its process, via killjobc(). This happens after the itimer is drained. If itimers are stopped, i.e., P2_ITSTOPPED is set, then itimer_proc_continue() will resume the callout after it has been drained. Fix the problem by simply clearing P2_ITSTOPPED as part of the drain. Then, a signal received after that point will not re-enable the callout. For good measure, also make sure that we don't reset the itimer callout in an exiting process. Reported by: syzkaller Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49529 (cherry picked from commit a6268f89d58c1962d2372a664a35eaecbf367fbb) --- sys/kern/kern_exit.c | 1 + sys/kern/kern_time.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index 788b58da450d..0c3070f2e360 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -377,6 +377,7 @@ exit1(struct thread *td, int rval, int signo) * Stop the real interval timer. If the handler is currently * executing, prevent it from rearming itself and let it finish. */ + p->p_flag2 &= ~P2_ITSTOPPED; if (timevalisset(&p->p_realtimer.it_value) && callout_stop(&p->p_itcallout) == 0) { timevalclear(&p->p_realtimer.it_interval); diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c index d109dbb509dd..000394d7f4b8 100644 --- a/sys/kern/kern_time.c +++ b/sys/kern/kern_time.c @@ -885,6 +885,8 @@ realitexpire_reset_callout(struct proc *p, sbintime_t *isbtp) { sbintime_t prec; + if ((p->p_flag & P_WEXIT) != 0) + return; prec = isbtp == NULL ? tvtosbt(p->p_realtimer.it_interval) : *isbtp; callout_reset_sbt(&p->p_itcallout, tvtosbt(p->p_realtimer.it_value), prec >> tc_precexp, realitexpire, p, C_ABSOLUTE); From nobody Tue Apr 15 02:25:37 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7LB1lJ5z5sjTP; Tue, 15 Apr 2025 02: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7L96SM2z3M5j; Tue, 15 Apr 2025 02:25:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HBMrLyw9gGyHxKr4i5Ekrxyx+Ym1m6o8EvQTDEajPs8=; b=bJy/PDb+6MNOGbP/xTptgZTVPsYBjBFsbA4XBxSnr5rzcBNSwpxLYY9PCSQKffct1utHak W6axOjFGbEq10KON+XoVh610jgYsigbsqu0OV/pJ6hBnfXeiKEHq5THpEOIuu0W5Nbeawl x9ilAts44fDLlF8N6OoPjCOgaX6HiOjShI2/Evy0razY6rRUXvgcBAIepK2FOiw5y4w2VN iODQ76Se4v5uW6kU8ObM6SfkEnrQS952AVciIOxM4P9dmxDvGsW1UKwgptnCtpbR0ztif9 /BbnUCov1l82JPm+Novtl/qOmI7/9AJeaxP+Xn5dxFxcYr+gQ6YNdVIdUHsv9Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683938; a=rsa-sha256; cv=none; b=QS259hv/RBowXUkrAd6Zs7sJy7B2ZO7PoercL3fERIkSXcNygtJZGLHxTMK9qMpg4W3Fqd 1hgjWN6OskWy67sBV772GTpG1IrOsnxQN9Q3mcKjkiZSG+9rStC+w0q4gzoRqA35REbyl4 LZKHlWwDj+Q0uz4jtEXw7A44dJFi9yz/ddq6Tp40UjPw8zrDKIeOrxB/uL+p7QVnXGNB7z 79mjejsPDgK6hZFjuZb0JReE8C1c21QoYBkBq16lsXjT6inT6RsYM06FJgIB5fJcVSXFqb anNmbnjb3n/ayyfCKYkCqmW+ygS6a/VdJF/VTeEzMimhIenZVhT3dYwmzImwfw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683937; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HBMrLyw9gGyHxKr4i5Ekrxyx+Ym1m6o8EvQTDEajPs8=; b=ECPu39r7dZtjDMurNaQGgwJtmTelJbvmJ7CaEshxgrHDwOweXWkZmaR7DuvQigjimOvfMY CyiMZyvIjiztllOHSvbRw9cobgbtWMRhpiuveZNaBww4J2GQY4MydfGVB2nIa9r8xtl5PQ X+XHefUkvaH38GX5RIrxzjH9pbT3Qj7loY5Kt75CcDRa+e7JqmEjrQef3z2l9CIZk6qRfz UHkKPQUlVVdbOpD/M68j0lJWtk5PT+ztolaBY17YSBBuMbFLHZirnOITqiVZAb6PS1Q/AB qqLBf5qKni7sqFA/2W9dwcNvx8NiA32YQ1hMrqcjgrJ1WJCA+cnGJNyIwj94uw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7L9604xzNH; Tue, 15 Apr 2025 02:25:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2Pb7f014627; Tue, 15 Apr 2025 02:25:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PbKp014624; Tue, 15 Apr 2025 02:25:37 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:37 GMT Message-Id: <202504150225.53F2PbKp014624@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: 1d2fd8c9cf0f - stable/14 - file: Fix offset handling in kern_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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 1d2fd8c9cf0fb796d8b7b7590288d3125398d445 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1d2fd8c9cf0fb796d8b7b7590288d3125398d445 commit 1d2fd8c9cf0fb796d8b7b7590288d3125398d445 Author: Mark Johnston AuthorDate: 2025-03-31 01:23:30 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 file: Fix offset handling in kern_copy_file_range() One can ask copy_file_range(2) to use the file offsets of the file descriptions that it copies from and to. We were updating those offsets without any locking, which is incorrect and can lead to unkillable loops in the event of a race (e.g., the check for overlapping ranges in kern_copy_file_range() is subject to a TOCTOU race with the following loop which range-locks the input and output file). Use foffset_lock() to serialize updates to the file descriptions, as we do for other, similar system calls. Reported by: syzkaller Reviewed by: rmacklem, kib MFC after: 2 weeks Fixes: bbbbeca3e9a3 ("Add kernel support for a Linux compatible copy_file_range(2) syscall.") Differential Revision: https://reviews.freebsd.org/D49440 (cherry picked from commit 197997a4c36d8be5807688a4f973ebe8ae807a6e) --- sys/kern/vfs_syscalls.c | 74 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 22 deletions(-) diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 17ab419fb0ae..9f8c960d054c 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -4902,16 +4902,17 @@ int kern_copy_file_range(struct thread *td, int infd, off_t *inoffp, int outfd, off_t *outoffp, size_t len, unsigned int flags) { - struct file *infp, *outfp; + struct file *infp, *infp1, *outfp, *outfp1; struct vnode *invp, *outvp; int error; size_t retlen; void *rl_rcookie, *rl_wcookie; - off_t savinoff, savoutoff; + off_t inoff, outoff, savinoff, savoutoff; + bool foffsets_locked; infp = outfp = NULL; rl_rcookie = rl_wcookie = NULL; - savinoff = -1; + foffsets_locked = false; error = 0; retlen = 0; @@ -4953,13 +4954,35 @@ kern_copy_file_range(struct thread *td, int infd, off_t *inoffp, int outfd, goto out; } - /* Set the offset pointers to the correct place. */ - if (inoffp == NULL) - inoffp = &infp->f_offset; - if (outoffp == NULL) - outoffp = &outfp->f_offset; - savinoff = *inoffp; - savoutoff = *outoffp; + /* + * Figure out which file offsets we're reading from and writing to. + * If the offsets come from the file descriptions, we need to lock them, + * and locking both offsets requires a loop to avoid deadlocks. + */ + infp1 = outfp1 = NULL; + if (inoffp != NULL) + inoff = *inoffp; + else + infp1 = infp; + if (outoffp != NULL) + outoff = *outoffp; + else + outfp1 = outfp; + if (infp1 != NULL || outfp1 != NULL) { + if (infp1 == outfp1) { + /* + * Overlapping ranges are not allowed. A more thorough + * check appears below, but we must not lock the same + * offset twice. + */ + error = EINVAL; + goto out; + } + foffset_lock_pair(infp1, &inoff, outfp1, &outoff, 0); + foffsets_locked = true; + } + savinoff = inoff; + savoutoff = outoff; invp = infp->f_vnode; outvp = outfp->f_vnode; @@ -4978,37 +5001,44 @@ kern_copy_file_range(struct thread *td, int infd, off_t *inoffp, int outfd, * If infp and outfp refer to the same file, the byte ranges cannot * overlap. */ - if (invp == outvp && ((savinoff <= savoutoff && savinoff + len > - savoutoff) || (savinoff > savoutoff && savoutoff + len > - savinoff))) { + if (invp == outvp && ((inoff <= outoff && inoff + len > + outoff) || (inoff > outoff && outoff + len > inoff))) { error = EINVAL; goto out; } /* Range lock the byte ranges for both invp and outvp. */ for (;;) { - rl_wcookie = vn_rangelock_wlock(outvp, *outoffp, *outoffp + - len); - rl_rcookie = vn_rangelock_tryrlock(invp, *inoffp, *inoffp + - len); + rl_wcookie = vn_rangelock_wlock(outvp, outoff, outoff + len); + rl_rcookie = vn_rangelock_tryrlock(invp, inoff, inoff + len); if (rl_rcookie != NULL) break; vn_rangelock_unlock(outvp, rl_wcookie); - rl_rcookie = vn_rangelock_rlock(invp, *inoffp, *inoffp + len); + rl_rcookie = vn_rangelock_rlock(invp, inoff, inoff + len); vn_rangelock_unlock(invp, rl_rcookie); } retlen = len; - error = vn_copy_file_range(invp, inoffp, outvp, outoffp, &retlen, + error = vn_copy_file_range(invp, &inoff, outvp, &outoff, &retlen, flags, infp->f_cred, outfp->f_cred, td); out: if (rl_rcookie != NULL) vn_rangelock_unlock(invp, rl_rcookie); if (rl_wcookie != NULL) vn_rangelock_unlock(outvp, rl_wcookie); - if (savinoff != -1 && (error == EINTR || error == ERESTART)) { - *inoffp = savinoff; - *outoffp = savoutoff; + if (foffsets_locked) { + if (error == EINTR || error == ERESTART) { + inoff = savinoff; + outoff = savoutoff; + } + if (inoffp == NULL) + foffset_unlock(infp, inoff, 0); + else + *inoffp = inoff; + if (outoffp == NULL) + foffset_unlock(outfp, outoff, 0); + else + *outoffp = outoff; } if (outfp != NULL) fdrop(outfp, td); From nobody Tue Apr 15 02:25:39 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zc7LD3bB5z5sjTT; Tue, 15 Apr 2025 02:25:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zc7LD0lJQz3MKY; Tue, 15 Apr 2025 02:25:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NdD7z4y4EnZ8x/g1KzdQPdBm9//4Kn8xdCYHF1YmE30=; b=ShO7zVMGo0sJSPwnBKZ2XykZ2teDB9iaYs5kSuOVyW5gKySnhc3abdAoFyde4I6ujXWTk9 P3ii6zxyxrDwBn7l3y6oFLrdrVTojfncZ1dKyrBeigS1z1QwDfz2HKPIi8H5qYXEQjj5XW REoTEHQxmsACqAJpcI122rOfQynGpyn00Bk8xUnOM4i8drHmNr+FGP4L0o95mFXrIscJgT SXS5VlQZA1wU7shZg50MKf/1im2/sb+YrCTELs1Lz5J5goZixQmllAuSS8k/0rRhm+7fBX bg8+fRHhMVqwIv3ibjuA33okAfPwQCfC4MwsoC4PLR2KtswusVbKM+ei656IQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744683940; a=rsa-sha256; cv=none; b=QUUj+puafWyxt3v+KBqNdVoC6iklS0/kM6F0E0Q2du0KlV6ItL4TBu0j0Nhl1oVmMIWuPR F4AzMCBlDVIg62UCbHJ+X8xnYJotbsgB4y3Y+dz+8jjWbXeKmm2t5F+u1OwOt0oZpZwYpF u1fvMIDAGverR/TrUjs2JpK1RGCW/ffyRu6efEE4AUJZs1s3MdtIMb4QpebhPxo9bz6pzz lBBWcfsesYruR3lZPAqW9TlVWjnchQLKe6jDFTsuDT4L9FCgR/qRL3hVExYoaVWRTGt3mV wuur1mWkck5/BMA/F8qVmWbSx6Kn9jdDeEtbPhTMAt53qJf02SC1Eefy1u98Xg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744683940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NdD7z4y4EnZ8x/g1KzdQPdBm9//4Kn8xdCYHF1YmE30=; b=uuGLwJIRJC/mjvfakXgmWyrzz7eflUUCtAq0t5WGAldOf+MKhk5MaCO0EImxT9UXsi0GYA sNi2OrBsj/z3Ok272xe1CJs2JmHUBFo7Ip0xUrKwDhFHmp7GcFioqzPj19ryjBeRYkH4Lg oVtK+Fpv6Sa/cJKqbr111b2uBQqkZBR4G+wIKTvDsfyeInWg8NOKwClvdM6rh5MYyMpIfM xRDbE0isFrIy/wz75oG06Cz0e6E35UEfJzxntGShRNYMpeJ4yPATYp2Wzr/7SQwudxSnt8 qKBjO9C0uFNsWlYBwjOkgEhdQFIFSpd+RLfgZAU0gbN0rDTpy31HilMpfDPx7Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zc7LD0FmVzJ3; Tue, 15 Apr 2025 02:25:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53F2PdYX014699; Tue, 15 Apr 2025 02:25:39 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53F2PdTY014696; Tue, 15 Apr 2025 02:25:39 GMT (envelope-from git) Date: Tue, 15 Apr 2025 02:25:39 GMT Message-Id: <202504150225.53F2PdTY014696@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: 74a0b8908483 - stable/14 - ptrace: Do not pass a negative resid to proc_rwmem() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 74a0b890848362f1a4115972262a518f3d83f504 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=74a0b890848362f1a4115972262a518f3d83f504 commit 74a0b890848362f1a4115972262a518f3d83f504 Author: Mark Johnston AuthorDate: 2025-03-29 08:54:48 +0000 Commit: Mark Johnston CommitDate: 2025-04-15 02:25:24 +0000 ptrace: Do not pass a negative resid to proc_rwmem() While here, avoid truncting uio_resid in proc_rwmem(). Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49479 (cherry picked from commit 1a80a157cbe823ba75bb88823dbf1b245fe87c99) --- sys/kern/sys_process.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 19fe8bcc7627..497084f83563 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -393,7 +393,7 @@ proc_rwmem(struct proc *p, struct uio *uio) /* * How many bytes to copy */ - len = min(PAGE_SIZE - page_offset, uio->uio_resid); + len = MIN(PAGE_SIZE - page_offset, uio->uio_resid); /* * Fault and hold the page on behalf of the process. @@ -1388,6 +1388,10 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) case PT_IO: piod = addr; + if (piod->piod_len > SSIZE_MAX) { + error = EINVAL; + goto out; + } iov.iov_base = piod->piod_addr; iov.iov_len = piod->piod_len; uio.uio_offset = (off_t)(uintptr_t)piod->piod_offs; From nobody Tue Apr 15 12:26:35 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZcNgc1JYXz5t4Bq; Tue, 15 Apr 2025 12: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZcNgc0gWbz3NHB; Tue, 15 Apr 2025 12: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=1744719996; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HDt6cjJ8jPLcElumbGY9dLHKaWXKZN/LY87B7qPxCNA=; b=xm/1emDXlYmi1ebAI76ayeJF4vKR4H/d3/lY1XDL2lTApolbJu7YkM7C8asDCiBokarSIj 1q+5o0YEsmmkGT0KPBQgtJjscBVTzJIws6KT6krBGqonyqm9JjbtvA9RMCKnFtEFG85IXt /cw0oO6lhVNYat5epz2bnZAaRkgwNuTbW4HcOR6EjMq5LNrVnaNq8TkipQVlGKOf9yeQpe KlLmzzw+C9+Ws+Q/G0esmO6BrSblhqScKh8UP2jUh4DrCuet7r4FDko+JLMr/6UIr50gAR uSLWkLKoWBBRat+a62kloRDfV+ThqZ75OfBoSXeJsFDohOC7I0emVrHjceZB4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744719996; a=rsa-sha256; cv=none; b=t6msgqIPc9bbKHED30cJEOFqWtdBZ0vUoim0vmW6aE8DLKjwo7MTvMU/zBn9LHyOg69Zak IAM42vrEGrg+DMxx7WsCiIJG5mCfKPPr3Glnvl1q/MF7niWvqLW6r7VVZL/ifTi96hvalC C6DnpgmgAl8sWnv6sbl3An61piBG/rUODUDBsBZBB+nu2ku2pOyESSRmtTdXsG0RQhW2QA vE4EvA1JCVsORErSOO1srpB/J4dgHeGZksfT62mOytAkAr7iyL+0cRUnineSGvT2zytWPK Q29CYMeuNiIzqAuPRfXRJgTSA6543utLUqs44Fw+ZTYgqSwPPZzE5zRdykLzjw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744719996; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HDt6cjJ8jPLcElumbGY9dLHKaWXKZN/LY87B7qPxCNA=; b=sOzk5/0lDG5qYTXQhFGrGHbY+9AMw7VXS3lbmgNe++cP1D7kJXfjr9RI3P83CmK/wgeLrk 0XP5j/Wo2wDxa2bxE3xk0N+qpnoqfnmf3V8dp1EwqnDJ1tR4iooy5SnIW3MxXX0I+gvLMS nn3WbdDXuoXz/d5KxqET2pajDCPBzHdVwse+DfypxgA0iqkjgc3UVDjylfgjG8cNYsVKD0 f9epc2+CvolQ0R3WkpwdSuDgIs5APTJZhv3M/7Qvb3veDTGYUR+pIL3jaVP3Z4sG3SgTeY X8PeZfgQmJuG3cjZ8RjUKwJbAu+v6fnwcOpJcw7/RRyK5sOBkhcg0GSCFb8pFg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZcNgb6pvBzZfB; Tue, 15 Apr 2025 12:26:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53FCQZnP040988; Tue, 15 Apr 2025 12:26:35 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53FCQZJ9040985; Tue, 15 Apr 2025 12:26:35 GMT (envelope-from git) Date: Tue, 15 Apr 2025 12:26:35 GMT Message-Id: <202504151226.53FCQZJ9040985@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: 1463d5ff1316 - stable/14 - if_ovpn: fix use-after-free of mbuf List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 1463d5ff13164362f0825c4613dcb4eb42a7396c Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=1463d5ff13164362f0825c4613dcb4eb42a7396c commit 1463d5ff13164362f0825c4613dcb4eb42a7396c Author: Kristof Provost AuthorDate: 2025-04-01 13:19:26 +0000 Commit: Kristof Provost CommitDate: 2025-04-15 07:27:09 +0000 if_ovpn: fix use-after-free of mbuf m_unshare() can return a new mbuf pointer. We update the 'm' pointer in ovpn_udp_input(), but if we decide to pass on the packet (e.g. because it's for an unknown peer) the caller (udp_append()) continues with the old 'm' pointer, eventually resulting in a use-after-free. Re-order operations in ovpn_udp_input() so that we don't modify the 'm' pointer until we're committed to keeping the packet. PR: 283426 Test case by: takahiro.kurosawa@gmail.com MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 04a7134c1e92c7752ffdc665f99ae26db70866c0) --- sys/net/if_ovpn.c | 12 +++--- tests/sys/net/if_ovpn/if_ovpn.sh | 81 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 6 deletions(-) diff --git a/sys/net/if_ovpn.c b/sys/net/if_ovpn.c index 6309d1f365cf..879cc0636db7 100644 --- a/sys/net/if_ovpn.c +++ b/sys/net/if_ovpn.c @@ -2255,12 +2255,6 @@ ovpn_udp_input(struct mbuf *m, int off, struct inpcb *inp, M_ASSERTPKTHDR(m); - m = m_unshare(m, M_NOWAIT); - if (m == NULL) { - OVPN_COUNTER_ADD(sc, nomem_data_pkts_in, 1); - return (true); - } - OVPN_COUNTER_ADD(sc, transport_bytes_received, m->m_pkthdr.len - off); ohdrlen = sizeof(*ohdr) - sizeof(ohdr->auth_tag); @@ -2288,6 +2282,12 @@ ovpn_udp_input(struct mbuf *m, int off, struct inpcb *inp, return (false); } + m = m_unshare(m, M_NOWAIT); + if (m == NULL) { + OVPN_COUNTER_ADD(sc, nomem_data_pkts_in, 1); + return (true); + } + m = m_pullup(m, off + sizeof(*uhdr) + ohdrlen); if (m == NULL) { OVPN_RUNLOCK(sc); diff --git a/tests/sys/net/if_ovpn/if_ovpn.sh b/tests/sys/net/if_ovpn/if_ovpn.sh index 3623f57115ac..b0967c992b5d 100644 --- a/tests/sys/net/if_ovpn/if_ovpn.sh +++ b/tests/sys/net/if_ovpn/if_ovpn.sh @@ -106,6 +106,86 @@ atf_test_case "4in4" "cleanup" ovpn_cleanup } +atf_test_case "bz283426" "cleanup" +bz283426_head() +{ + atf_set descr 'FreeBSD Bugzilla 283426' + atf_set require.user root + atf_set require.progs openvpn python3 +} + +bz283426_body() +{ + ovpn_init + + l=$(vnet_mkepair) + + vnet_mkjail a ${l}a + jexec a ifconfig ${l}a 192.0.2.1/24 up + vnet_mkjail b ${l}b + jexec b ifconfig ${l}b 192.0.2.2/24 up + + # Sanity check + atf_check -s exit:0 -o ignore jexec a ping -c 1 192.0.2.2 + + ovpn_start a " + dev ovpn0 + dev-type tun + proto udp4 + + cipher AES-256-GCM + auth SHA256 + + bind 0.0.0.0:1194 + server 198.51.100.0 255.255.255.0 + ca $(atf_get_srcdir)/ca.crt + cert $(atf_get_srcdir)/server.crt + key $(atf_get_srcdir)/server.key + dh $(atf_get_srcdir)/dh.pem + + mode server + script-security 2 + auth-user-pass-verify /usr/bin/true via-env + topology subnet + + keepalive 100 600 + " + ovpn_start b " + dev tun0 + dev-type tun + + client + + remote 192.0.2.1 + auth-user-pass $(atf_get_srcdir)/user.pass + + ca $(atf_get_srcdir)/ca.crt + cert $(atf_get_srcdir)/client.crt + key $(atf_get_srcdir)/client.key + dh $(atf_get_srcdir)/dh.pem + + keepalive 100 600 + " + + # Give the tunnel time to come up + sleep 10 + + atf_check -s exit:0 -o ignore jexec b ping -c 1 198.51.100.1 + + # Send a broadcast packet in the outer link. + echo "import socket as sk +s = sk.socket(sk.AF_INET, sk.SOCK_DGRAM) +s.setsockopt(sk.SOL_SOCKET, sk.SO_BROADCAST, 1) +s.sendto(b'x' * 1000, ('192.0.2.255', 1194))" | jexec b python3 + + atf_check -s exit:0 -o ignore jexec b ping -c 3 198.51.100.1 +} + +bz283426_cleanup() +{ + ovpn_cleanup +} + atf_test_case "4mapped" "cleanup" 4mapped_head() { @@ -1033,6 +1113,7 @@ gcm_128_cleanup() atf_init_test_cases() { atf_add_test_case "4in4" + atf_add_test_case "bz283426" atf_add_test_case "4mapped" atf_add_test_case "6in4" atf_add_test_case "6in6" From nobody Tue Apr 15 19:44:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZcZNw4T0Jz5th06; Tue, 15 Apr 2025 19:44:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZcZNw2Gcyz3bWs; Tue, 15 Apr 2025 19:44:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744746272; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ur+jTN3U2sk/xTEpK8wRSk2D3s+sZRpuNWSl5A+Myvg=; b=A/15TyZZkJQsBe5aboSBEMLtUXhDFARWzP2vkltBK3lOfAS/py0eh5HYB9QZ6PB3Blg4sI veQg5T1qKErSRzv5xnX3o4vD2rVHlVILTP/aaovkWv1L84DGgWExbVpEM8oKp+JfF9NnJh rdZB5Tfh3optwaodXTJHyOIyGNX7ifOcvxEHlkfoarrbVVnEiJUiFJqySRboTTqTijvtvV MgZWqgxmlnR4bmCDs9rwjU+WkiWCFN4YtWoCTkUc/M9XI+i4hTsUwgpXChd93p7RO30Y64 Ru6dKrn+OEPZWkqrfYdzDSAVbYGGL58Y5XBdyRyfKMql865yXqqL4DSbZdQnog== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744746272; a=rsa-sha256; cv=none; b=gjzzuOL65IxEcUXCiqZgC/pkTUnh3wwFKDXemVlqNgS++E/GwGK4v91oOZIBCA8Zn4pCja C12ysAqYfHNTxXMn5z9u0ibEL2YFhWvqJ43N7CxYSLdAtzi91ZUnIxCjc8FxLaHaGzfCDv n6RuNvY1TWZiZSax3mXjhJU7bNyRhDuld8PA7jzdJCccNMjNtpnZMA3rZldxNAHIN+C8Bt YltWrk0OOpN69HeNe/YuDrSNXEhAyuSQsZvTEwYShkjPtyBQoBS6b4g2XwgjDMCqq/z+RH CmedoqQMgUkQfLox4kBn6eEh7KDubCCLCaYwApH7V3o2PTSsUV2JcsKMoO9HYg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744746272; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ur+jTN3U2sk/xTEpK8wRSk2D3s+sZRpuNWSl5A+Myvg=; b=UBLJnBrpfmotryh1e8wyvGXywNFjnJgYEAUN7emLFQbpUcEBbX2+CAA8kFQC2AIoIsYHnX jUtCp8gBvPrjDSnJqTqcO69vGyv8EoqWNDXyDB0yA9DpChfzj+4NKgvK5xiY9TizNvbmz0 u5EWo5x5+A17Q/k0xb9z+ke5BMkqja2/xpsVthEPpYMZG/daJWwUSJWjVjVoSblgq+Q1Pm xKasjBB92yceGmWqU/WDrijxR4JJm2h5l6KwqkvXSkFH1gCDLDiJHStju0tzysOxnUERYu Lwxq4+4ukR4te/cBQlU8OhI+ljN+ld60xKnLkil0YCDYneWL8AawYCPDi3VSgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZcZNw1s5SznbP; Tue, 15 Apr 2025 19:44:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53FJiWf1063924; Tue, 15 Apr 2025 19:44:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53FJiWNG063921; Tue, 15 Apr 2025 19:44:32 GMT (envelope-from git) Date: Tue, 15 Apr 2025 19:44:32 GMT Message-Id: <202504151944.53FJiWNG063921@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Gleb Smirnoff Subject: git: fca3395674d4 - stable/14 - cred: fix struct credbatch to use long for refcount List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: fca3395674d41fded108e493c6b5695bb6dcd077 Auto-Submitted: auto-generated The branch stable/14 has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=fca3395674d41fded108e493c6b5695bb6dcd077 commit fca3395674d41fded108e493c6b5695bb6dcd077 Author: Gleb Smirnoff AuthorDate: 2025-03-29 22:09:15 +0000 Commit: Gleb Smirnoff CommitDate: 2025-04-15 19:40:02 +0000 cred: fix struct credbatch to use long for refcount This structure collects count from multiple cred structures. Of course it can't use a smaller type. PR: 283747 Reviewed by: olce, mjg, markj Differential Revision: https://reviews.freebsd.org/D49562 Fixes: 37337709d3334f32650ba3a7c529fa013ed5e1f2 (cherry picked from commit cd46e980134f6fc765b28ee9c8bf41e8fc1b0261) --- sys/kern/kern_prot.c | 2 +- sys/sys/ucred.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index 31652a338e8e..d0f4c8cd6992 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -2365,7 +2365,7 @@ crunuse(struct thread *td) } static void -crunusebatch(struct ucred *cr, int users, int ref) +crunusebatch(struct ucred *cr, u_int users, long ref) { KASSERT(users > 0, ("%s: passed users %d not > 0 ; cred %p", diff --git a/sys/sys/ucred.h b/sys/sys/ucred.h index be7d5bab1d19..f43e3bb12414 100644 --- a/sys/sys/ucred.h +++ b/sys/sys/ucred.h @@ -195,8 +195,8 @@ struct proc; struct credbatch { struct ucred *cred; - int users; - int ref; + u_int users; + long ref; }; static inline void From nobody Tue Apr 15 22:10:33 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZcddQ0dRBz5sPmS; Tue, 15 Apr 2025 22:10:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZcddQ0BfSz3Q4V; Tue, 15 Apr 2025 22:10:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744755034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w9z1nj4hhXZZRsvLZ+y61gvANFV1YOzmWggYzMxHHXc=; b=qa8WN1T+gfwqM9sXS6jbeFLj/MB8Tx6GL7X6q4IbRln6eIb74w8ZTOT3c/Gj+Xmh72LpA8 eQrXFMxMShz9hZkhQpSmvhy9PZkTcvei7LS/yA4yIv/PJo9tmMVvvniRpcwkrhkP6hnTGM kLRsbfM0zeSVnSe0VZFEzLsVd7rHCkhaokxXYHblUE7eYbmwjwma8tKE5hyvjHHOiAjaZd fqZaMi8pN6a5UEAh6FUORDctT6TbHXgxV7hhN1vimAKqBu86iMOLOUYFe0PuQvqZHTR5yk VzCw15aKzpRPuNFL28Kcii3yQwDp0SIpvzD51t3/iuOBLPA6PqKRcAWbXDJjOw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744755034; a=rsa-sha256; cv=none; b=wrO7o41HAFebLry6c3Ako610Lb7y9epvdIKlVy38Wd1D7rsp8meAta2pTQK+irIn0cdhtl /A7M161wCHcu2WJLT0up7/afA0PZ0PSntQRicm9wJ4S9Wf9JDcGvBPmIMcT3ITJsXA2JGV Ui7QOo5FDkDsFAQtpTp8kUpvcm9ij5NFsFq67g0xYoTLlZIxkwIQz/IN42Q9HyG36gERr/ zDsm0b/jTcdHhQq07D9W5rxw4YbhblUX3SJseNxMh6zML8cJeHbChdkZV1GivKzA+ozubd aasvcdjcNsv6gTQSp6hJmsDL7pDQpBaxm8LuwJwZOIbsoPoN5glRE6lLaCEAwA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744755034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w9z1nj4hhXZZRsvLZ+y61gvANFV1YOzmWggYzMxHHXc=; b=qEt14Wy+6qcK4sLaK+DvMwMWTGnQ/QL1iMw/62u7vuWDmRDwAjtiF5AY2c/kHGeE229RH6 bK0+TFErdKFPmfnYjDnCxNevXNZowGOnBBny9cmETw0lPYspxf4pY/poIglWUzoPPz+9WT fgzy4FDQAIHOWFeHlydXskYU7+45lyp3fpc366i9NtSpHkT5oKTWIg8xcDVEeMCmALxSpT Ix5z1mS14oU460rF3+ihh4kJ3/f/5YHGTMjyEAffpVn2rpdiqw0gHAcAXSLWyQy1Wgye/i H7hMKw7kEui22OL8tKDU/rHlKVBodHIoA7mf3EbWSCpV3YMW+WuNXihMAL3RPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZcddP6cKxzrfS; Tue, 15 Apr 2025 22:10:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53FMAXL4037791; Tue, 15 Apr 2025 22:10:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53FMAXfY037788; Tue, 15 Apr 2025 22:10:33 GMT (envelope-from git) Date: Tue, 15 Apr 2025 22:10:33 GMT Message-Id: <202504152210.53FMAXfY037788@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dave Cottlehuber Subject: git: 4317d0aa8c21 - stable/14 - release: avoid sparse-file handling for container image layers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dch X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4317d0aa8c21f19764dabcd0bea3d1d92fea19c3 Auto-Submitted: auto-generated The branch stable/14 has been updated by dch: URL: https://cgit.FreeBSD.org/src/commit/?id=4317d0aa8c21f19764dabcd0bea3d1d92fea19c3 commit 4317d0aa8c21f19764dabcd0bea3d1d92fea19c3 Author: Doug Rabson AuthorDate: 2025-04-15 22:00:50 +0000 Commit: Dave Cottlehuber CommitDate: 2025-04-15 22:09:29 +0000 release: avoid sparse-file handling for container image layers This improves compatiblity with Podman. See https://github.com/containers/podman/issues/25270 for details. Differential Revision: https://reviews.freebsd.org/D49821 (cherry picked from commit 3a79ca65531adf9fc8799b39407fe4d1b51906f6) --- release/scripts/make-oci-image.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/release/scripts/make-oci-image.sh b/release/scripts/make-oci-image.sh index 0fd64602b403..cc599c76bd51 100644 --- a/release/scripts/make-oci-image.sh +++ b/release/scripts/make-oci-image.sh @@ -95,8 +95,13 @@ commit_container() { local image=$1; shift local output=$1; shift - # Note: the diff_id (needed for image config) is the hash of the uncompressed tar - tar -C ${workdir}/rootfs --strip-components 1 -cf ${workdir}/rootfs.tar . + # Note: the diff_id (needed for image config) is the hash of the + # uncompressed tar. + # + # For compatibility with Podman, we must disable sparse-file + # handling. See https://github.com/containers/podman/issues/25270 for + # more details. + tar -C ${workdir}/rootfs --strip-components 1 --no-read-sparse -cf ${workdir}/rootfs.tar . local diff_id=$(sha256 -q < ${workdir}/rootfs.tar) gzip -f ${workdir}/rootfs.tar local create_time=$(date -u +%Y-%m-%dT%TZ) From nobody Wed Apr 16 01:39:08 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZckG470wVz5slDh; Wed, 16 Apr 2025 01:39:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZckG46R8yz46Jb; Wed, 16 Apr 2025 01:39:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767548; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0KMG2AHpEyPZE6iLvZ93O35mwjzhI7VM4+b5wS3hJqE=; b=xSHGkHNt5sQflpbAvyKEKH5yui1bNoLGNLYnzsscHdfiNJZDsFam/YC6rfnYsmTNJjC501 Jq0xl3nPkfG7xdPV+FvW96w6xEOG0OerGut66qsubOwpo+MOrwJXp357AlPHt0vUrcUbIO kRI8BMnSOCvD2u2tylTuViEOjwOPpApmoqMazzrEZBWWamjEZNDlVWVdmDmhOFYpCL6n95 c511FT6uBN2wgb1cVcgyfJMAhCWRjAbTvF/2PnQIkmkFPWkzEYpFunESKQVf6nlFNz9qhA zFJlo3jT6HH5+AeUuzo+sbVjAQ29VFao+wk+RYdkyUq631nYDi1qtsEVTB0vRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744767548; a=rsa-sha256; cv=none; b=TWLrVMeMpomweE7p7wd6RqL69UhZ4FOD72xIkTscoMvhtdAw1IrvOirf0+c6dg9X4R3VrO QnObCT8zNS5H8+hTnC9RcRMEvkjaJ6Gz37LV0/pQuA3S45F6kPW0Iwr2vgDN/VUcdJZ1MW aiQVHsltNiYmMk329THPYg2sLStNJz9a4o0/mXxgicBAiu8Js6aOPGdFhFhQq11mUUmFJl sPUdLXNCTkp2iRaURcuytGRsII11vIQ4r9DE5UfDgiv5pAW4n9EQC8ShpeySGnAh3kntjI Yj6DG6MnBCR+XK64NfunCq0Dgx1yC+J2IFBmFnn5J69SU+IzaJcUbCBsjaOs4g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767548; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0KMG2AHpEyPZE6iLvZ93O35mwjzhI7VM4+b5wS3hJqE=; b=dNoP0vkJ+U2EkbnFTsT2Kr6eCgFLsJs7YuIJef+9V6LkUIq/mllgIIa5IpFMtTHgYGuAkU FEmWntso7EbBS7TcdHdLr61pwQlKEeu3/JHO2XK0O8mwX9bL+aqRZ3wq/JBaBezoSB3jeK S8fSe+R2s5QWWq4+GPsPjyOU3ADdYjEe7b7NWo1O5hJf4xspSamn0b/dRQTikdV4+8aVGg rjbnCF5FjWQ/k2foCezFIvMyUfw0ZA4nuMPEM6DMg6lZr8JrGmBCsNQcrTxaC8hliyWt3Z 4c3RtVCAiXhpk4QO48YYdAPA+pL6/OyPKxT1qoZZUHeUdEccKuF1LTw7mlpJpg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZckG45kDRzyV4; Wed, 16 Apr 2025 01:39:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G1d8sa019971; Wed, 16 Apr 2025 01:39:08 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G1d8xE019968; Wed, 16 Apr 2025 01:39:08 GMT (envelope-from git) Date: Wed, 16 Apr 2025 01:39:08 GMT Message-Id: <202504160139.53G1d8xE019968@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: ab259b19bd81 - stable/14 - amd64: also limit printings of EFIRT page faults List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ab259b19bd8105d779ec79a0cc00cf7f1feaf434 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ab259b19bd8105d779ec79a0cc00cf7f1feaf434 commit ab259b19bd8105d779ec79a0cc00cf7f1feaf434 Author: Konstantin Belousov AuthorDate: 2025-04-09 07:35:56 +0000 Commit: Konstantin Belousov CommitDate: 2025-04-16 01:38:33 +0000 amd64: also limit printings of EFIRT page faults PR: 285797 (cherry picked from commit 99332926f6fc6d1e4bb850a2b26744b948b14014) --- sys/amd64/amd64/trap.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 692491ecfc5a..1877aedee17a 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -895,8 +895,13 @@ after_vmfault: if (td->td_intr_nesting_level == 0 && curpcb->pcb_onfault != NULL) { if ((td->td_pflags2 & TDP2_EFIRT) != 0) { - trap_diag(frame, eva); - printf("EFI RT page fault\n"); + u_long cnt = atomic_fetchadd_long(&cnt_efirt_faults, 1); + + if ((print_efirt_faults == 1 && cnt == 1) || + print_efirt_faults == 2) { + trap_diag(frame, eva); + printf("EFI RT page fault\n"); + } } frame->tf_rip = (long)curpcb->pcb_onfault; return (0); From nobody Wed Apr 16 01:39:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZckG62gwvz5sl68; Wed, 16 Apr 2025 01:39:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZckG56TBGz46Wq; Wed, 16 Apr 2025 01:39:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tFVxTnNXqFlHu+412wWRxL3HmJ0TDpnmNgauiOMkrzg=; b=cjzlTYG7D2e3AmGWotGAchA7Qn8/wHiKEkPLgxFbY3tfOuuijsnwfv5EN3mKR3ETPSVcqD osmxVo6o1HLBLAjuCyIpE95rCPB5Y6sQAy5CC1xdWrHvNxh4+55yYDkUF3azWWf4VmunEC zZMZ4F06WNL3nNKaV2J0qCHtQUtT+cTF10Naht8+XQL+3GuXo8g/FRMZw00fE9TCj8qCV+ kEvxcNwc342nBdzT14cXQ/fEvwZDlsRfguHyoEqqENzTYxrtVeh81ln8cCuQwdDHBfdS5j vE0iy1CgtKlzxU/aN89wgOueJNti+8wcAdf7TkH1hXrRuchcL5XR1GXFerve/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744767549; a=rsa-sha256; cv=none; b=GxgqOvNNvzpED577bHn1/SssX4Ayd3kxAkpSniwV3nOF3fkTqWU5cBouFYfb72bFwKniwS HGTFjtJy1m9DoOyJP8Pb8jXs2iWSHH4aeDRU0SR7Z8RBxYL9j+cx28zjQBy9YjQPHSbpy+ 88bKHObAqaumfkXbXdtOmZlGrcseBN4WJ94BGWgdk5D0D7Jp3Gm9JoO1VtI4nuXYQc0zFG 4BlwpbsFS9FKRfODfUR0D4Lif0CZCRCtHBVHvDlqUlznaR2AxSDg6heoTugNdNMw8TTzkL F3deM0ZuULy8FXmMYJ/4xEO1ZRjSc3IY/Cc87a9iuuq6iLGWTqmJ8Pu3JEk+AA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tFVxTnNXqFlHu+412wWRxL3HmJ0TDpnmNgauiOMkrzg=; b=xJ1TPMwf7PyfPklGRUxCJ7dwgzm30FKcEzaKc+BSbHgWHPUhNiRxM9xn2AU6LvIGkNWHbm oy29A10/dMjp2xxdoWHp66hV7tGv3oWRm5MPnztNdtgZ5LkV2FAUc+SMKMGFZxgqcB3xeb qQLnEc/XV0YRG2NKit0KugxvZ6V+e+yCuNZLQ45er7UvDjW5AQbDBt3RfgpiKBc7IcmTFn ilGPu3WUMCYINIw9bsir73Jdc0d/Q4sZVx48/Nm3+wlTp3WgQIQCSR4geazlwm7pVN6SXF aoJICAUSFV1XCguh+eo8asSVqP4NcZsX3op4tqzQL5F0reveQKBZOjQAZFkrqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZckG563ttzy3Z; Wed, 16 Apr 2025 01:39:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G1d9Mv020007; Wed, 16 Apr 2025 01:39:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G1d9Gu020003; Wed, 16 Apr 2025 01:39:09 GMT (envelope-from git) Date: Wed, 16 Apr 2025 01:39:09 GMT Message-Id: <202504160139.53G1d9Gu020003@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: b9a015bd0a19 - stable/14 - amd64: print limited EFIRT fault messages on first fault, not second List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: b9a015bd0a19dcc87a6d229e4918fdbb15a65f8b Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=b9a015bd0a19dcc87a6d229e4918fdbb15a65f8b commit b9a015bd0a19dcc87a6d229e4918fdbb15a65f8b Author: Konstantin Belousov AuthorDate: 2025-04-09 23:54:23 +0000 Commit: Konstantin Belousov CommitDate: 2025-04-16 01:38:33 +0000 amd64: print limited EFIRT fault messages on first fault, not second (cherry picked from commit 9227ecea6f4d4fc8a0ac9830a63eac6d79b5ce57) --- sys/amd64/amd64/trap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 1877aedee17a..2c3b8f0b4dd8 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -458,7 +458,7 @@ trap(struct trapframe *frame) curpcb->pcb_onfault != NULL && type != T_PAGEFLT) { u_long cnt = atomic_fetchadd_long(&cnt_efirt_faults, 1); - if ((print_efirt_faults == 1 && cnt == 1) || + if ((print_efirt_faults == 1 && cnt == 0) || print_efirt_faults == 2) { trap_diag(frame, 0); printf("EFI RT fault %s\n", @@ -897,7 +897,7 @@ after_vmfault: if ((td->td_pflags2 & TDP2_EFIRT) != 0) { u_long cnt = atomic_fetchadd_long(&cnt_efirt_faults, 1); - if ((print_efirt_faults == 1 && cnt == 1) || + if ((print_efirt_faults == 1 && cnt == 0) || print_efirt_faults == 2) { trap_diag(frame, eva); printf("EFI RT page fault\n"); From nobody Wed Apr 16 01:42:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZckLC11c3z5slky; Wed, 16 Apr 2025 01:42:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZckLB3Jgsz49V7; Wed, 16 Apr 2025 01:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CzdAIYLZL8sUaSn1rtbYCbradkH6rsPs0BQqq7vM3+s=; b=F8hHQV0oU0Vk5tdvdKNGkS3CMSqmP+bqIhzyCn3ZonQ3dz0gvNbh7qN9keYQcO+nKYjP+a MVy7RQ4A0c8MJKhI6psGtJDdR7GWqBhvm7UrJgLJ7dPVdyq3zmAdSbxLZrlqkdNvootHSd NmYY+Xd+Dg5ydcHJhobrYXK3dVNB1rsiqnu8yz6oCQq+6hJy2T/gH4HON+mS5AzEgM71je 4CeAHgCaVJtEBSaBnTFDr1hnUd66+/ag3BAUc27eDNmtycLjBCmq8kcofb+fIJe+/cDLw4 hEjKMSOVzq978TFr4h1Hb6Hu3Ii3SkuEnE0QRp0Nihb4I0W3kgJX+2xIoJ6V8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744767762; a=rsa-sha256; cv=none; b=TBQhHspCzxE0pCG3GsAuW/xIRGH2Cu+sQcs3ybRlndE5Ea1LlLpPUw13fIHt96/rMYkRmq 3fyoDLQaiy/JQdiYPM2kqSCs5Pe2+mUBze/GD8XdbZV5XALfcRtQ+O2MMOUqjfzOKLt2jl QdgdPx3OPqRN+RoTVBlCN8So19QqBRdrffBGpPIf3re8ypw27o9XQwhev3HDmt0AKvCXRx 40YCdBkGFqQLS1SkTryBaUtaitbzcWf1mB/JcZLe4+9Lzwqi+WIAh6j9N35Q+/ccTAyJKg O6wB3EelYwsJ4BHQwrHDUOQb+KbJKCyLTLFu0ywBzmAR32F4bz6qNVfrT+xIHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744767762; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CzdAIYLZL8sUaSn1rtbYCbradkH6rsPs0BQqq7vM3+s=; b=TpwMR9kwNMX0Q5bRX5i10co9DXBfMsLZyfHFeWq5sYwDDxTW45y0GncS3RVjeebXDpGGt3 8p4wF1DugAK/wOlKwqiEKe2uAtYio21HyZTkxe8si0RfVAiny7txjDQlN5SpomRO7FtMqh 4I9/Pmyr9PxAuHmoCy6j0rtk1mFkQ2U77O0cQP9gggqe+DTo8dgzEKIBy1DaBRizujM5IW Iv+bqv7qpV+J1sPnxCOioIu7C13dcuBBfCQoeSQrEiCOT5EdlU3OeIs0/X/IZkH6Eopfl9 wSPqs8t6JZ9xDDw45CAeaIstBERzNbsfYWmA76UmAiy4Ovc5/1qOAmRGkbyaCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZckLB2h3lzyk0; Wed, 16 Apr 2025 01:42:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G1ggEO037000; Wed, 16 Apr 2025 01:42:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G1ggHx036997; Wed, 16 Apr 2025 01:42:42 GMT (envelope-from git) Date: Wed, 16 Apr 2025 01:42:42 GMT Message-Id: <202504160142.53G1ggHx036997@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: 63697ff85a3a - stable/14 - mlx5en: Use connector type instead of cable type for media detection List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org 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: 63697ff85a3a8db4da800cc797f72272797a8da8 Auto-Submitted: auto-generated The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=63697ff85a3a8db4da800cc797f72272797a8da8 commit 63697ff85a3a8db4da800cc797f72272797a8da8 Author: Ariel Ehrenberg AuthorDate: 2025-03-25 12:40:58 +0000 Commit: Konstantin Belousov CommitDate: 2025-04-16 01:41:49 +0000 mlx5en: Use connector type instead of cable type for media detection (cherry picked from commit 89e0e3814e8ca205db7523f6ce6c63cebe4bfb0d) --- sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 98 +++++++++++++++++-------------------- sys/dev/mlx5/port.h | 13 +++++ 2 files changed, 57 insertions(+), 54 deletions(-) diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index 058923be5769..81af98082311 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -164,186 +164,186 @@ static const struct media mlx5e_mode_table[MLX5E_LINK_SPEEDS_NUMBER] = }, }; -static const struct media mlx5e_ext_mode_table[MLX5E_EXT_LINK_SPEEDS_NUMBER][MLX5E_CABLE_TYPE_NUMBER] = +static const struct media mlx5e_ext_mode_table[MLX5E_EXT_LINK_SPEEDS_NUMBER][MLX5E_CONNECTOR_TYPE_NUMBER] = { /**/ - [MLX5E_SGMII_100M][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_SGMII_100M][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100_SGMII, .baudrate = IF_Mbps(100), }, /**/ - [MLX5E_1000BASE_X_SGMII][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_1000BASE_X_SGMII][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_1000_CX, .baudrate = IF_Mbps(1000), }, - [MLX5E_1000BASE_X_SGMII][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_1000BASE_X_SGMII][MLX5E_PORT_FIBRE] = { .subtype = IFM_1000_SX, .baudrate = IF_Mbps(1000), }, /**/ - [MLX5E_5GBASE_R][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_5GBASE_R][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_5000_KR, .baudrate = IF_Mbps(5000), }, - [MLX5E_5GBASE_R][MLX5E_CABLE_TYPE_TWISTED_PAIR] = { + [MLX5E_5GBASE_R][MLX5E_PORT_TP] = { .subtype = IFM_5000_T, .baudrate = IF_Mbps(5000), }, /**/ - [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_10G_KR, .baudrate = IF_Gbps(10ULL), }, - [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_PORT_DA] = { .subtype = IFM_10G_CR1, .baudrate = IF_Gbps(10ULL), }, - [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_10GBASE_XFI_XAUI_1][MLX5E_PORT_FIBRE] = { .subtype = IFM_10G_SR, .baudrate = IF_Gbps(10ULL), }, /**/ - [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_40G_KR4, .baudrate = IF_Gbps(40ULL), }, - [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_PORT_DA] = { .subtype = IFM_40G_CR4, .baudrate = IF_Gbps(40ULL), }, - [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_40GBASE_XLAUI_4_XLPPI_4][MLX5E_PORT_FIBRE] = { .subtype = IFM_40G_SR4, .baudrate = IF_Gbps(40ULL), }, /**/ - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_25G_KR, .baudrate = IF_Gbps(25ULL), }, - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_DA] = { .subtype = IFM_25G_CR, .baudrate = IF_Gbps(25ULL), }, - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_FIBRE] = { .subtype = IFM_25G_SR, .baudrate = IF_Gbps(25ULL), }, - [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_CABLE_TYPE_TWISTED_PAIR] = { + [MLX5E_25GAUI_1_25GBASE_CR_KR][MLX5E_PORT_TP] = { .subtype = IFM_25G_T, .baudrate = IF_Gbps(25ULL), }, /**/ - [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_50G_KR2, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_PORT_DA] = { .subtype = IFM_50G_CR2, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_50GAUI_2_LAUI_2_50GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { .subtype = IFM_50G_SR2, .baudrate = IF_Gbps(50ULL), }, /**/ - [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_50G_KR_PAM4, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_PORT_DA] = { .subtype = IFM_50G_CP, .baudrate = IF_Gbps(50ULL), }, - [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR][MLX5E_PORT_FIBRE] = { .subtype = IFM_50G_SR, .baudrate = IF_Gbps(50ULL), }, /**/ - [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100G_KR4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_PORT_DA] = { .subtype = IFM_100G_CR4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_CAUI_4_100GBASE_CR4_KR4][MLX5E_PORT_FIBRE] = { .subtype = IFM_100G_SR4, .baudrate = IF_Gbps(100ULL), }, /**/ - [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100G_KR_PAM4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_PORT_DA] = { .subtype = IFM_100G_CR_PAM4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_100GAUI_1_100GBASE_CR_KR][MLX5E_PORT_FIBRE] = { .subtype = IFM_100G_SR2, /* XXX */ .baudrate = IF_Gbps(100ULL), }, /**/ - [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_100G_KR4, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_PORT_DA] = { .subtype = IFM_100G_CP2, .baudrate = IF_Gbps(100ULL), }, - [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_100GAUI_2_100GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { .subtype = IFM_100G_SR2, .baudrate = IF_Gbps(100ULL), }, /**/ - [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_200G_KR4_PAM4, /* XXX */ .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_PORT_DA] = { .subtype = IFM_200G_CR4_PAM4, /* XXX */ .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_200GAUI_2_200GBASE_CR2_KR2][MLX5E_PORT_FIBRE] = { .subtype = IFM_200G_SR4, /* XXX */ .baudrate = IF_Gbps(200ULL), }, /**/ - [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_200G_KR4_PAM4, .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_CABLE_TYPE_PASSIVE_COPPER] = { + [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_PORT_DA] = { .subtype = IFM_200G_CR4_PAM4, .baudrate = IF_Gbps(200ULL), }, - [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_CABLE_TYPE_OPTICAL_MODULE] = { + [MLX5E_200GAUI_4_200GBASE_CR4_KR4][MLX5E_PORT_FIBRE] = { .subtype = IFM_200G_SR4, .baudrate = IF_Gbps(200ULL), }, /**/ - [MLX5E_400GAUI_8][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_400GAUI_8][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_400G_LR8, /* XXX */ .baudrate = IF_Gbps(400ULL), }, /**/ - [MLX5E_400GAUI_4_400GBASE_CR4_KR4][MLX5E_CABLE_TYPE_UNKNOWN] = { + [MLX5E_400GAUI_4_400GBASE_CR4_KR4][MLX5E_PORT_UNKNOWN] = { .subtype = IFM_400G_LR8, /* XXX */ .baudrate = IF_Gbps(400ULL), }, @@ -367,7 +367,7 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) u32 eth_proto_oper; int error; u8 i; - u8 cable_type; + u8 connector_type; u8 port_state; u8 is_er_type; bool ext; @@ -398,24 +398,14 @@ mlx5e_update_carrier(struct mlx5e_priv *priv) ext = MLX5_CAP_PCAM_FEATURE(mdev, ptys_extended_ethernet); eth_proto_oper = MLX5_GET_ETH_PROTO(ptys_reg, out, ext, eth_proto_oper); - + connector_type = MLX5_GET(ptys_reg, out, connector_type); i = ilog2(eth_proto_oper); if (ext) { - error = mlx5_query_pddr_cable_type(mdev, 1, &cable_type); - if (error != 0) { - /* use fallback entry */ - media_entry = mlx5e_ext_mode_table[i][MLX5E_CABLE_TYPE_UNKNOWN]; - - mlx5_en_err(priv->ifp, - "query port pddr failed: %d\n", error); - } else { - media_entry = mlx5e_ext_mode_table[i][cable_type]; - + media_entry = mlx5e_ext_mode_table[i][connector_type]; /* check if we should use fallback entry */ - if (media_entry.subtype == 0) - media_entry = mlx5e_ext_mode_table[i][MLX5E_CABLE_TYPE_UNKNOWN]; - } + if (media_entry.subtype == 0) + media_entry = mlx5e_ext_mode_table[i][MLX5E_PORT_UNKNOWN]; } else { media_entry = mlx5e_mode_table[i]; } diff --git a/sys/dev/mlx5/port.h b/sys/dev/mlx5/port.h index bfbc721139d3..a35265852ae4 100644 --- a/sys/dev/mlx5/port.h +++ b/sys/dev/mlx5/port.h @@ -128,6 +128,19 @@ enum mlx5e_ext_link_speed { MLX5E_EXT_LINK_SPEEDS_NUMBER = 32, }; +enum mlx5e_connector_type { + MLX5E_PORT_UNKNOWN = 0, + MLX5E_PORT_NONE = 1, + MLX5E_PORT_TP = 2, + MLX5E_PORT_AUI = 3, + MLX5E_PORT_BNC = 4, + MLX5E_PORT_MII = 5, + MLX5E_PORT_FIBRE = 6, + MLX5E_PORT_DA = 7, + MLX5E_PORT_OTHER = 8, + MLX5E_CONNECTOR_TYPE_NUMBER = 9, +}; + enum mlx5e_cable_type { MLX5E_CABLE_TYPE_UNKNOWN = 0, MLX5E_CABLE_TYPE_ACTIVE_CABLE = 1, From nobody Wed Apr 16 03:18:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZcmTF6RD4z5str7; Wed, 16 Apr 2025 03:18:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZcmTF5hN7z3wck; Wed, 16 Apr 2025 03:18:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744773537; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h+trbHeRjzvzv9SdYIulAsx5sd+zIUyu45VJNXsuS0o=; b=mzyK1svdeZvhzXFLRtTUY+zVsCtfv9ieC404pv0Ga0S1CDqvm039cURfDZgrIf/o8dUcZX QDdu5EZ4DBYqsWTV/Ybe4mPu1SMIvhzMi05NzSUNMNvnntszD2mkdwj/1x/6yQ0sLQh3Jm mm5yndCmRXPTbNhJ2lj6smbNPbJqvtaSI3w+t6RydEQQEAz7AE9fbQ/7OhPOtagVJqtJdi Tq2FhTAaCK5LgIINlrcre9jTUsxL/gv1833lprK8QPqcbAYqyxfhS7obZt2nLAoqL+kmjr Jeopg3VA10JYnxoCph4ONRfTbTGJyUKZprvLZfaMrmuZF/3vPrkQLhauyrmnuQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744773537; a=rsa-sha256; cv=none; b=CEwMcdlNto4QDcqBK338TFH2jcz36VCBO3Mce9aNIZO8L8LxqXXXc+CE/ktmO3yFNVZT9R kr/chNUCK3sB2C88mThT5mcDMV3anAG4HCesHO3olTwKDKu/BdzXCyC+QwEbn12Gq6q2or Gof08U0VQo39nd2OuAUisLOzYN99RW5hcZIpIyA1hCaIZvybTwkMJEkIIA6A+4JEhPV+2H UNfXxPnCHK90F1e1Qbzzr0Ga1FI9WsPoygb95MfuaPOeWc+GYmsE/Rb4ax628pPt+9I1Qr MdLC2p+2dLMnZR2Tf0vrMsG7tstbShHxJRHhmTwLLBmLhxnriudu89Q22CMi6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744773537; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h+trbHeRjzvzv9SdYIulAsx5sd+zIUyu45VJNXsuS0o=; b=oWvWSVaN/iPUtOF/QUuogFsL3CryrjwxQ0Tx7RJiJzfaIXSExYidNruzViW9dd22vUpaJA aHXl7Xvi4XV5YcWAD2uVXxSBKH1XrcSDxl3+JhyJ3pY6w9dt6IY7RIBs6ktPyN4T6bDMvr ceVpAUs4uae+HDcKp619FhzI1GSMNUkxPVUKy2+5G1yPXYSn3fphi3t9mluX+Pbos3eu3K ShsqOe7f3wyXFfgo6ZseWRrJwUswgdzIMAfi/smxkZ+HpTrMTHTor3CDmoqQr2zpEWeajo 8i8rOw+SLYHhvZ+G7frqOhJhokRf5X7IDhEi7ZvYWj7qvxUEPdYh7PaOTHPABg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZcmTF4zSCz11rT; Wed, 16 Apr 2025 03:18:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G3IvsB009095; Wed, 16 Apr 2025 03:18:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G3Iv6T009092; Wed, 16 Apr 2025 03:18:57 GMT (envelope-from git) Date: Wed, 16 Apr 2025 03:18:57 GMT Message-Id: <202504160318.53G3Iv6T009092@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 1bd29261b9d0 - stable/14 - Correct CTLTYPE of SYSCTL_SBINTIME_MSEC etc List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1bd29261b9d0a1f64faa45bac531c62a4709dda9 Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=1bd29261b9d0a1f64faa45bac531c62a4709dda9 commit 1bd29261b9d0a1f64faa45bac531c62a4709dda9 Author: Colin Percival AuthorDate: 2025-03-31 04:05:33 +0000 Commit: Colin Percival CommitDate: 2025-04-16 03:13:13 +0000 Correct CTLTYPE of SYSCTL_SBINTIME_MSEC etc These should be CTLTYPE_S64, not CTLTYPE_INT, since they handle 64-bit values. Reviewed by: imp Fixes: 003ffd57fee1 ("Add sysctl_usec_to_sbintime [...]") MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D49584 (cherry picked from commit e85aaed60eb061f31b2f1e5dc92b0ff0419b5fbf) --- sys/sys/sysctl.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/sys/sysctl.h b/sys/sys/sysctl.h index 5955b704b7f9..5fce4b8e1713 100644 --- a/sys/sys/sysctl.h +++ b/sys/sys/sysctl.h @@ -866,7 +866,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); /* OID expressing a sbintime_t as microseconds */ #define SYSCTL_SBINTIME_USEC(parent, nbr, name, access, ptr, descr) \ SYSCTL_OID(parent, nbr, name, \ - CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + CTLTYPE_S64 | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ (ptr), 0, sysctl_usec_to_sbintime, "Q", descr); \ CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_S64) @@ -876,7 +876,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_S64); \ sysctl_add_oid(ctx, parent, nbr, name, \ - CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + CTLTYPE_S64 | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ __ptr, 0, sysctl_usec_to_sbintime, "Q", __DESCR(descr), \ NULL); \ }) @@ -884,7 +884,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); /* OID expressing a sbintime_t as milliseconds */ #define SYSCTL_SBINTIME_MSEC(parent, nbr, name, access, ptr, descr) \ SYSCTL_OID(parent, nbr, name, \ - CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + CTLTYPE_S64 | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ (ptr), 0, sysctl_msec_to_sbintime, "Q", descr); \ CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_S64) @@ -894,7 +894,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_S64); \ sysctl_add_oid(ctx, parent, nbr, name, \ - CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ + CTLTYPE_S64 | CTLFLAG_MPSAFE | CTLFLAG_RD | (access), \ __ptr, 0, sysctl_msec_to_sbintime, "Q", __DESCR(descr), \ NULL); \ }) From nobody Wed Apr 16 03:18:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZcmTH1l7qz5str8; Wed, 16 Apr 2025 03:18:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZcmTG5dZ5z3wfc; Wed, 16 Apr 2025 03:18:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744773538; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i1eKPib/ofg1SYqSM4a3L68D1SHEo9kBombE1k4ElAM=; b=Ioq+EW+mxJaXjJQf287GtDySrOXWNzxAKQMpjEzA7tg4/P5VkPO1zkhQBVl/FKOap/rqz0 O/mJSlyQboTkJgP5qfOkpj6PYPsnrtDdMqh2VUyIGox3pss7HEYWltvaJEFHs0Bv9JH0GQ dmGfFkxFOCKpO99tlB6HJ0+WZDC1LYVYcFqHf/rzvg6fJZXQ9xYtwxXmK3MnrUBtCErs6G WIX63alBGXuMy3JbM8YVENOMvParxmyK/MDvWQIv8XMr8bCXj3STxceXgjb97gtziLU+4c LEWFfCVReFYyAWtvb3POFejzAOqEknFxDMwTkb9/KLKgDwFoWJOhDLkx/NzfZw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744773538; a=rsa-sha256; cv=none; b=yo0S/JuZJIKjhrN6oSOsGt8phefnwv0+h46eYawBGe5loYz6Q5GSVwsrvJr9UT6PgFXvnY dy9sj34JY0PoGspklDLVfRWs0+wDojiaYEYT47ImODvXqM2vFpyq0aUAxwmc6TZQH8ltnM F+2Sb/t5SGzmgxKFY3PTfFNiGZZzIFm+wf6upmeKflH02jeqzpb799eAfyOGaX6GhlkDgi Ndyy8qcqo0FNv9ZKvgcD9C8A6I++dXwtZc9E4+jYZG1QJxHNGSVw/qLiBCSFH6H2UJlnKd mkmoAgkG6ARBNNqDFsjREgM1QTs5NYZIF8Lg1osgBX4asRMl+bfB+00FaHXf5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744773538; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i1eKPib/ofg1SYqSM4a3L68D1SHEo9kBombE1k4ElAM=; b=LdAzSzfaKKwJizFGIHlyjsXojQ4X9bf3SJtvH6+SEFZDbilzWhi0aNT+5nSCmZ+H6u8AtG O/k0AnqYADJSMAbO4iPkBXuVVT2XDgo7MTsxLnvXmm7PHXb83UxCMjOh1ZvQ4vuRs5OWZE JkSOWx/31mWODoGmF/wlVIGm8ytei+v+E0bYTT2ufX5iMxdgoeUPaQiej528XZ4IWLU130 pEBCB+qdIww+tqVwWM7tnBpuhBUjiZRvZX82Y295nL/CbDoViT847pPxFABLXB5RzY7ekF 6wKQ6ihCO0Uzh7RVk4Z3XHuq+/tFNVhdY2m6ymW2kTaiQXTsgSe2tLC9vXZVrw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZcmTG59bdz11WR; Wed, 16 Apr 2025 03:18:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G3IwVL009133; Wed, 16 Apr 2025 03:18:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G3Iw0F009130; Wed, 16 Apr 2025 03:18:58 GMT (envelope-from git) Date: Wed, 16 Apr 2025 03:18:58 GMT Message-Id: <202504160318.53G3Iw0F009130@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 217fce137713 - stable/14 - pci: Make PCIe Eject timeout configurable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 217fce137713ab7f44783c28681ebd4cfcd1465d Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=217fce137713ab7f44783c28681ebd4cfcd1465d commit 217fce137713ab7f44783c28681ebd4cfcd1465d Author: Colin Percival AuthorDate: 2025-03-31 04:08:44 +0000 Commit: Colin Percival CommitDate: 2025-04-16 03:15:00 +0000 pci: Make PCIe Eject timeout configurable PCIe mandates a 5 second delay between when the "Attention Button" is pressed and when the associated device is detached; this is to allow for the button to be pressed a second time to cancel the ejection. On some systems this 5 second delay may not be desireable; so introduce a hw.pci.pcie_hp_detach_timeout sysctl (which can also be set as a loader tunable) which specifies the timeout in milliseconds (default 5000). If set to zero, the device is detached immediately. Reviewed by: jhb MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D49585 (cherry picked from commit 9be42ee6c9c741052bdc49f13bc953bf88a24423) --- sys/dev/pci/pci_pci.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 06e8c2bc8433..a9567b3e2c4c 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -951,6 +951,11 @@ SYSCTL_INT(_hw_pci, OID_AUTO, enable_pcie_hp, CTLFLAG_RDTUN, &pci_enable_pcie_hp, 0, "Enable support for native PCI-express HotPlug."); +static sbintime_t pcie_hp_detach_timeout = 5 * SBT_1S; +SYSCTL_SBINTIME_MSEC(_hw_pci, OID_AUTO, pcie_hp_detach_timeout, CTLFLAG_RWTUN, + &pcie_hp_detach_timeout, + "Attention Button delay for PCI-express Eject."); + TASKQUEUE_DEFINE_THREAD(pci_hp); static void @@ -1221,11 +1226,17 @@ pcib_pcie_intr_hotplug(void *arg) &sc->pcie_ab_task, NULL); } else if (old_slot_sta & PCIEM_SLOT_STA_PDS) { /* Only initiate detach sequence if device present. */ - device_printf(dev, - "Attention Button Pressed: Detaching in 5 seconds\n"); - sc->flags |= PCIB_DETACH_PENDING; - taskqueue_enqueue_timeout(taskqueue_pci_hp, - &sc->pcie_ab_task, 5 * hz); + if (pcie_hp_detach_timeout != 0) { + device_printf(dev, + "Attention Button Pressed: Detaching in %ld ms\n", + (long)(pcie_hp_detach_timeout / SBT_1MS)); + sc->flags |= PCIB_DETACH_PENDING; + taskqueue_enqueue_timeout_sbt(taskqueue_pci_hp, + &sc->pcie_ab_task, pcie_hp_detach_timeout, + SBT_1S, 0); + } else { + sc->flags |= PCIB_DETACHING; + } } } if (sc->pcie_slot_sta & PCIEM_SLOT_STA_PFD) From nobody Wed Apr 16 03:18:59 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZcmTJ14Whz5stV4; Wed, 16 Apr 2025 03:19:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZcmTH6W7lz3wZs; Wed, 16 Apr 2025 03:18:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744773539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PC6Afv2AQnw/zKAPCSFKu4U+MpPxMB5yji5MpXAUock=; b=Y/oCW4Fspr92vQ7TcDJQdAV8V8tjzSC5sxVbl0w2zPAQVvh66195IW7pYpD24W+6aiz9cJ Tz42xCKDf2umoh1lSuC0bxzTL4r2VnzEzvygoEZ0o6sFhrorf3vnwnPUjnq7DvdbhjQBfb H/KPNO9CiQ/dx7neDkr8LWLxWtWPTZ8qZOGx4Ynn3M8kL4Ly0toKBjGvMPT+k6kzPCpgUu 0taCqoxNOeAN8Scti7yfXbSuoVXQS+s2PrD31n6DcqzRQd0zCEBBQsMmSKYp0UWk5EPd2V zulaZG4kRhQN5lFxXNFuPzwXR1IShKeMi7JT+iOKwPi8FJZ8awhNm5BNa0H0mA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744773539; a=rsa-sha256; cv=none; b=czTMOQ47piDs8JiN4qf5WeuwPlrMUjAFIzLAk/XW4x/3SnBfsAYsGZZOZ1lbGF8SX+QCib /RSOBXknRvZTNLdvvLOg9qaigHJUUECs4fornw2NZb5mn0i1mxUCdDefe6D/B3nsv6d6jU 3hDmzvlDoA2dWVfHWX7qduOVKgSJ7gUZo4vyFPwe3d5d5SNNk17k4z+Qotu54M7TZyBiup syfjBj7+uIUlPDyXT3X2EEir2hT0fJKNfLmVapPwpcb+/2BxNlm818xTlMgjCevUYxvLJ7 UsoK+pzoQ3L+S6JNXPx/aOuhafpvKIfFvsyNoAPL6BnW7DolWK7+4Xuu3Y8maQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744773539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PC6Afv2AQnw/zKAPCSFKu4U+MpPxMB5yji5MpXAUock=; b=TE3hksIuviSuZ9kJP/kGrz3VD23z02ywj0vUP2m/hMdgA68TVm2d+3XEYprEL2NMxK/7BK AoDmZM9SocZ+W6t9jeKmDdE2igAd7SJlf/r7zjJhZJG7eynNpEWrx7TVgbbcEDcyxMXTEq J2sYUIn0a84jnULwZyRydyjuW1SF9asK0PyDocE+XcM4ARQwQ+GjvLM7VGWkQ5eNst2E9/ WRKTZuR+wl4upDXPaVKmkt5nHjD6JHaUEBjxXO12mwq4N1U/iZz1aZC3pIc7ud/Em/h6nz dpfNByFQc8P7n1xDxcYHjmkAtf1U3Z0ezbcL3TCTHJmsmNcfo+jr/qcrFz+4Tg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZcmTH67B7z11WS; Wed, 16 Apr 2025 03:18:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53G3IxrU009172; Wed, 16 Apr 2025 03:18:59 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53G3IxTA009169; Wed, 16 Apr 2025 03:18:59 GMT (envelope-from git) Date: Wed, 16 Apr 2025 03:18:59 GMT Message-Id: <202504160318.53G3IxTA009169@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: f852f4f7b6f1 - stable/14 - EC2: Set PCIe eject timeout to 0 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f852f4f7b6f1666b09b16dba4aaab7acdb49980d Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=f852f4f7b6f1666b09b16dba4aaab7acdb49980d commit f852f4f7b6f1666b09b16dba4aaab7acdb49980d Author: Colin Percival AuthorDate: 2025-03-31 04:11:23 +0000 Commit: Colin Percival CommitDate: 2025-04-16 03:18:03 +0000 EC2: Set PCIe eject timeout to 0 Since PCIe device detaching is done via API, there is no opportunity to "press the attention button a second time" and thus the 5 second timeout mandated by PCIe serves no purpose. MFC after: 2 weeks Sponsored by: Amazon (cherry picked from commit 80febaa1714e897d67a8217edc305a0e81498a6f) --- release/tools/ec2.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/release/tools/ec2.conf b/release/tools/ec2.conf index 3675736ab986..2856068459c3 100644 --- a/release/tools/ec2.conf +++ b/release/tools/ec2.conf @@ -79,6 +79,12 @@ ec2_common() { # historical "nvd" driver. echo 'hw.nvme.use_nvd="0"' >> ${DESTDIR}/boot/loader.conf + # Reduce the timeout for PCIe Eject ("hotunplug") requests. PCIe + # mandates a 5 second timeout to allow someone to cancel the eject + # by pressing the "Attention button" a second time, but in the EC2 + # environment this delay serves no purpose. + echo 'hw.pci.pcie_hp_detach_timeout="0"' >> ${DESTDIR}/boot/loader.conf + # Disable KbdInteractiveAuthentication according to EC2 requirements. sed -i '' -e \ 's/^#KbdInteractiveAuthentication yes/KbdInteractiveAuthentication no/' \ From nobody Wed Apr 16 13:48:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zd2S96Dvrz5sjSg; Wed, 16 Apr 2025 13:48:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zd2S95XJPz3gSR; Wed, 16 Apr 2025 13:48:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744811337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uX9RGmHw/Idault9TdyNIbcxr7fMLO/0DKISUgJZwPA=; b=nEt+C2MGL3BzWugcXmeG6XhOjK7Lb+WlkVzp0onoscu0RUPI5OdZQwxFCgHgoMf0hjtEan w93wrHazvzfUDkFJ8zR1A7mKAsQnDGqYachYg6ybUWAgnIC6ghILN5Zf/eXXukFX+Pcqwn 0Sowu2w/BfhWFZeTiYEhRbq6BOw2+hnlmqTVxrp8vnfCkpKoXIek+RHQltjbY0VN8Y9u3e 9L2fIIiYHLIogWXC81RWYFlIk98X+XuVv3ArpISZS48NgqB6VzT9hePWY3xDhuPfoV/UXf SFVnnm+SKv5ObUNRgETCKqVEkKnvY0Hxfs9tTnfH0+WBV1sDLNUaBequ2anxmg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744811337; a=rsa-sha256; cv=none; b=XpqWJ5ZumCHxeuYreWgy8G3C+AVyKAr7iS4s/AEoUdjwufoCFuw/x80t0zhjLWoh27bQ11 TdGjEHP+wWS7excd6sZYEgoGZVSi1ITofQK2xlcoORkHBSR9FY84TlVGQ6wHmy/QPhKNmA zKlwfpwZoFVooqbx8hrEL9QG2ODyZ8RASlvpQvbD1DfeC+I+epgr4F6OAwaX39FbbGBEPM yipN/93HeUpkOOFmKwGcQ551LGsvBnlB2QqFeuYyoXfQ8H4mvq/BJcI6PuP+VtXLB5aJkw aQ8Q5gweADeJ+r16A8ws6EcXbOQPxYICL/Knq/7n/KIn/i4/FKsqC3yhKkQECg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744811337; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uX9RGmHw/Idault9TdyNIbcxr7fMLO/0DKISUgJZwPA=; b=ej4DGNHtIIh/1km3e6Na/1aqJY2Gx4jjtGDvgUU/WD9UJOACsii/pHFoVN6wWI3n6ZWtye DB/N10WhB8eLO2Eg0JG1kvQlqJWEPdP/P6NxH6FXdKWjvVBTujhVBpvR61Rh1A973jSjL5 nfF5HEuSfxVvzEnZt/qotNoC+26szuF4t1MIm5YhoA3a/27M8ybTJ82CwmR0R9lJNrJjQx kwr7XPBWskw1epT70HJk93Stm1Gt27fulCCqc8CgY8VukOtzJU4cGYZ8eatEaUPMplCmeX jUIWaU9nkU3Qn2MCdQ6WVP5nqY2t+IQtSVIx2yvJW8HGRvn4ULF0Ur+4X4zK/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zd2S94mvdz1K5R; Wed, 16 Apr 2025 13:48:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53GDmvLw088129; Wed, 16 Apr 2025 13:48:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53GDmvjR088126; Wed, 16 Apr 2025 13:48:57 GMT (envelope-from git) Date: Wed, 16 Apr 2025 13:48:57 GMT Message-Id: <202504161348.53GDmvjR088126@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: 0da181786849 - stable/14 - pfctl: fix recursive printing of NAT 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 0da181786849d3af346a3f392e9f28ac6c2ecf96 Auto-Submitted: auto-generated The branch stable/14 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=0da181786849d3af346a3f392e9f28ac6c2ecf96 commit 0da181786849d3af346a3f392e9f28ac6c2ecf96 Author: Kristof Provost AuthorDate: 2025-04-02 16:04:46 +0000 Commit: Kristof Provost CommitDate: 2025-04-16 07:34:56 +0000 pfctl: fix recursive printing of NAT rules pfctl_show_nat() is called recursively to print nat anchors. This passes the anchor path, but this path was modified by pfctl_show_nat(), leading to issues printing the anchors. Make a copy of the path ('npath') before we modify it. Ensure we do this correctly by sprinking in 'const', and add a test case to verify that we do now print things correctly. Reported by: Thomas Pasqualini MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 58164dcb55d62ca73b5e550b8344bf61e2d8a47a) --- sbin/pfctl/pfctl.c | 29 +++++++++++++------------- tests/sys/netpfil/pf/anchor.sh | 46 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index 5b5bfc636807..dfc473f21566 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -93,12 +93,12 @@ int pfctl_load_hostid(struct pfctl *, u_int32_t); int pfctl_load_reassembly(struct pfctl *, u_int32_t); int pfctl_load_syncookies(struct pfctl *, u_int8_t); int pfctl_get_pool(int, struct pfctl_pool *, u_int32_t, u_int32_t, int, - char *); + const char *); void pfctl_print_eth_rule_counters(struct pfctl_eth_rule *, int); void pfctl_print_rule_counters(struct pfctl_rule *, int); int pfctl_show_eth_rules(int, char *, int, enum pfctl_show, char *, int, int); int pfctl_show_rules(int, char *, int, enum pfctl_show, char *, int, int); -int pfctl_show_nat(int, char *, int, char *, int, int); +int pfctl_show_nat(int, const char *, int, char *, int, int); int pfctl_show_src_nodes(int, int); int pfctl_show_states(int, const char *, int); int pfctl_show_status(int, int); @@ -946,7 +946,7 @@ pfctl_id_kill_states(int dev, const char *iface, int opts) int pfctl_get_pool(int dev, struct pfctl_pool *pool, u_int32_t nr, - u_int32_t ticket, int r_action, char *anchorname) + u_int32_t ticket, int r_action, const char *anchorname) { struct pfioc_pooladdr pp; struct pf_pooladdr *pa; @@ -1398,7 +1398,7 @@ pfctl_show_rules(int dev, char *path, int opts, enum pfctl_show format, } int -pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, +pfctl_show_nat(int dev, const char *path, int opts, char *anchorname, int depth, int wildcard) { struct pfctl_rules_info ri; @@ -1421,16 +1421,17 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, p[0] = '\0'; } + if ((npath = calloc(1, MAXPATHLEN)) == NULL) + errx(1, "pfctl_rules: calloc"); + if (anchorname[0] == '/') { - if ((npath = calloc(1, MAXPATHLEN)) == NULL) - errx(1, "pfctl_rules: calloc"); snprintf(npath, MAXPATHLEN, "%s", anchorname); } else { - if (path[0]) - snprintf(&path[len], MAXPATHLEN - len, "/%s", anchorname); + snprintf(npath, MAXPATHLEN, "%s", path); + if (npath[0]) + snprintf(&npath[len], MAXPATHLEN - len, "/%s", anchorname); else - snprintf(&path[len], MAXPATHLEN - len, "%s", anchorname); - npath = path; + snprintf(&npath[len], MAXPATHLEN - len, "%s", anchorname); } /* @@ -1463,12 +1464,12 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, INDENT(depth, !(opts & PF_OPT_VERBOSE)); printf("}\n"); } - path[len] = '\0'; + npath[len] = '\0'; return (0); } for (i = 0; i < 3; i++) { - ret = pfctl_get_rules_info(dev, &ri, nattype[i], path); + ret = pfctl_get_rules_info(dev, &ri, nattype[i], npath); if (ret != 0) { warn("DIOCGETRULES"); return (-1); @@ -1476,13 +1477,13 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, for (nr = 0; nr < ri.nr; ++nr) { INDENT(depth, !(opts & PF_OPT_VERBOSE)); - if (pfctl_get_rule(dev, nr, ri.ticket, path, + if (pfctl_get_rule(dev, nr, ri.ticket, npath, nattype[i], &rule, anchor_call)) { warn("DIOCGETRULE"); return (-1); } if (pfctl_get_pool(dev, &rule.rpool, nr, - ri.ticket, nattype[i], path) != 0) + ri.ticket, nattype[i], npath) != 0) return (-1); if (dotitle) { diff --git a/tests/sys/netpfil/pf/anchor.sh b/tests/sys/netpfil/pf/anchor.sh index eba1ee935930..da4ef3970d18 100644 --- a/tests/sys/netpfil/pf/anchor.sh +++ b/tests/sys/netpfil/pf/anchor.sh @@ -161,10 +161,56 @@ wildcard_cleanup() pft_cleanup } +atf_test_case "nat" "cleanup" +nat_head() +{ + atf_set descr 'Test nested nat anchors' + atf_set require.user root +} + +nat_body() +{ + pft_init + + epair=$(vnet_mkepair) + vnet_mkjail alcatraz ${epair}a + + ifconfig ${epair}b 192.0.2.2/24 up + jexec alcatraz ifconfig ${epair}a 192.0.2.1/24 up + + # Sanity check + atf_check -s exit:0 -o ignore ping -c 1 192.0.2.1 + + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "nat-anchor \"foo/*\"" \ + "pass" + + echo "nat log on ${epair}a inet from 192.0.2.0/24 to any port = 53 -> 192.0.2.1" \ + | jexec alcatraz pfctl -a "foo/bar" -g -f - + echo "rdr on ${epair}a proto tcp to port echo -> 127.0.0.1 port echo" \ + | jexec alcatraz pfctl -a "foo/baz" -g -f - + + jexec alcatraz pfctl -sn -a "*" + jexec alcatraz pfctl -sn -a "foo/bar" + jexec alcatraz pfctl -sn -a "foo/baz" + + atf_check -s exit:0 -o match:"nat log on epair0a inet from 192.0.2.0/24 to any port = domain -> 192.0.2.1" \ + jexec alcatraz pfctl -sn -a "*" + atf_check -s exit:0 -o match:"rdr on epair0a inet proto tcp from any to any port = echo -> 127.0.0.1 port 7" \ + jexec alcatraz pfctl -sn -a "*" +} + +nat_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "pr183198" atf_add_test_case "pr279225" atf_add_test_case "nested_anchor" atf_add_test_case "wildcard" + atf_add_test_case "nat" } From nobody Wed Apr 16 13:48:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zd2SB67ZDz5sjbH; Wed, 16 Apr 2025 13:48:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zd2SB4DVmz3gcH; Wed, 16 Apr 2025 13:48:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744811338; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uMz0hTFDgLquVOvkM0ZjMqhk+C7atUC5p3EoJ/tXdIY=; b=thI9uvxfSGLTElTfoKtIHuOFSQckmYjmvRQb9yVDlWYRUSDhvYpJHaEjncTSmmaYC0CjR2 rLN3R2h2cuGkGGV3Yjcw9CjmV+AaIv7vqcOV8EH3q9q5+fq9Z9L9vwJkm25mnYNBE8PXBR ti9sdHlo3bKoP6cQpHWkozZGMdomM8w37ZSDW8nlOwblMMv3wmzUkqDngLAQflL77XijlU Fq+Co9EmZmF+1mebM58Et4XLgONSp7S75lbgiLpKfRaFLUSg+O4IiECJJlFssnwNoAcgUh XN6wClh/AtXjc2q1/Hr/FXWr8f/h7rTVPZUAn8/0YoMr63QuOY7TswTTDTYgKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744811338; a=rsa-sha256; cv=none; b=k0/V96SHQ8PfbxqZDMSKocSmRf5FI7q7yCqqu970/9cZDCSgILolP+wJKTTcFxf+Yc5AES XKZw0cjwGS+ngR3wgEeQwk4SEfIU1roqekaR2dkR1weNjFuyNT6xiBHJHQ5nEj8X3jy40c NDo2DqBwe6gm4bAC4U2VcC+vJsev8eZUePF/NDHAKe0DCUUWWR4/shMHJwHJbq3ZkquouG 6McGq8NbUPbVUXLQ5RCqwxnQND74md/m762n/eivFLG3H9gYkpS6q+OOcMi7YSzlymIP/f VjlSnqB5A21s72Xpms+jKEhHErK6z2fU7b3CJdGtTxtLWhVGDGYWC1DbTLMRBQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744811338; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uMz0hTFDgLquVOvkM0ZjMqhk+C7atUC5p3EoJ/tXdIY=; b=db8CV0qH8Fp9qYzTEnR69zLWMWn5efV56iRMoOE/1LRkZYm3s0EWneBqU2NioHMtx3PoNj TOtYhPaypiqDeGpi7Esuw2uheOpQWkJ5hd3BHEvFRcMGTPFobgzvaiouoph8O8/eIwFhPZ PMueVu1m2K9HaFOvHAYJ64BwsUtqIr/VRenkqHeguX+azi7aAeFIG7NUoCzEEbTuGJbJpc LbN+Nhf0dDn7oU8rZG38Pbe7Uj8grjJuBfZVtCvqcqvn6yLLOGvQ1q/qjVZR05zMGSxuuq dahd5ep1jRJhPMMxBuUE5UKlnhcWCXGWuuFUPnX12LQ2fYrk4mcR5gVNpF3LuA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zd2SB3r7Fz1K81; Wed, 16 Apr 2025 13:48:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53GDmwCt088223; Wed, 16 Apr 2025 13:48:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53GDmwcS088220; Wed, 16 Apr 2025 13:48:58 GMT (envelope-from git) Date: Wed, 16 Apr 2025 13:48:58 GMT Message-Id: <202504161348.53GDmwcS088220@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: 9edd1e62ca11 - stable/13 - pfctl: fix recursive printing of NAT 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 9edd1e62ca11e2d15bc31db4901da8d2ec44c5d3 Auto-Submitted: auto-generated The branch stable/13 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=9edd1e62ca11e2d15bc31db4901da8d2ec44c5d3 commit 9edd1e62ca11e2d15bc31db4901da8d2ec44c5d3 Author: Kristof Provost AuthorDate: 2025-04-02 16:04:46 +0000 Commit: Kristof Provost CommitDate: 2025-04-16 07:35:42 +0000 pfctl: fix recursive printing of NAT rules pfctl_show_nat() is called recursively to print nat anchors. This passes the anchor path, but this path was modified by pfctl_show_nat(), leading to issues printing the anchors. Make a copy of the path ('npath') before we modify it. Ensure we do this correctly by sprinking in 'const', and add a test case to verify that we do now print things correctly. Reported by: Thomas Pasqualini MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 58164dcb55d62ca73b5e550b8344bf61e2d8a47a) --- sbin/pfctl/pfctl.c | 29 +++++++++++++------------- tests/sys/netpfil/pf/anchor.sh | 46 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/sbin/pfctl/pfctl.c b/sbin/pfctl/pfctl.c index 8399051048b8..b7d5bf9f2819 100644 --- a/sbin/pfctl/pfctl.c +++ b/sbin/pfctl/pfctl.c @@ -93,10 +93,10 @@ int pfctl_load_logif(struct pfctl *, char *); int pfctl_load_hostid(struct pfctl *, u_int32_t); int pfctl_load_syncookies(struct pfctl *, u_int8_t); int pfctl_get_pool(int, struct pfctl_pool *, u_int32_t, u_int32_t, int, - char *); + const char *); void pfctl_print_rule_counters(struct pfctl_rule *, int); int pfctl_show_rules(int, char *, int, enum pfctl_show, char *, int, int); -int pfctl_show_nat(int, char *, int, char *, int, int); +int pfctl_show_nat(int, const char *, int, char *, int, int); int pfctl_show_src_nodes(int, int); int pfctl_show_states(int, const char *, int); int pfctl_show_status(int, int); @@ -920,7 +920,7 @@ pfctl_id_kill_states(int dev, const char *iface, int opts) int pfctl_get_pool(int dev, struct pfctl_pool *pool, u_int32_t nr, - u_int32_t ticket, int r_action, char *anchorname) + u_int32_t ticket, int r_action, const char *anchorname) { struct pfioc_pooladdr pp; struct pf_pooladdr *pa; @@ -1220,7 +1220,7 @@ pfctl_show_rules(int dev, char *path, int opts, enum pfctl_show format, } int -pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, +pfctl_show_nat(int dev, const char *path, int opts, char *anchorname, int depth, int wildcard) { struct pfctl_rules_info ri; @@ -1243,16 +1243,17 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, p[0] = '\0'; } + if ((npath = calloc(1, MAXPATHLEN)) == NULL) + errx(1, "pfctl_rules: calloc"); + if (anchorname[0] == '/') { - if ((npath = calloc(1, MAXPATHLEN)) == NULL) - errx(1, "pfctl_rules: calloc"); snprintf(npath, MAXPATHLEN, "%s", anchorname); } else { - if (path[0]) - snprintf(&path[len], MAXPATHLEN - len, "/%s", anchorname); + snprintf(npath, MAXPATHLEN, "%s", path); + if (npath[0]) + snprintf(&npath[len], MAXPATHLEN - len, "/%s", anchorname); else - snprintf(&path[len], MAXPATHLEN - len, "%s", anchorname); - npath = path; + snprintf(&npath[len], MAXPATHLEN - len, "%s", anchorname); } /* @@ -1285,12 +1286,12 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, INDENT(depth, !(opts & PF_OPT_VERBOSE)); printf("}\n"); } - path[len] = '\0'; + npath[len] = '\0'; return (0); } for (i = 0; i < 3; i++) { - ret = pfctl_get_rules_info(dev, &ri, nattype[i], path); + ret = pfctl_get_rules_info(dev, &ri, nattype[i], npath); if (ret != 0) { warn("DIOCGETRULES"); return (-1); @@ -1298,13 +1299,13 @@ pfctl_show_nat(int dev, char *path, int opts, char *anchorname, int depth, for (nr = 0; nr < ri.nr; ++nr) { INDENT(depth, !(opts & PF_OPT_VERBOSE)); - if (pfctl_get_rule(dev, nr, ri.ticket, path, + if (pfctl_get_rule(dev, nr, ri.ticket, npath, nattype[i], &rule, anchor_call)) { warn("DIOCGETRULE"); return (-1); } if (pfctl_get_pool(dev, &rule.rpool, nr, - ri.ticket, nattype[i], path) != 0) + ri.ticket, nattype[i], npath) != 0) return (-1); if (dotitle) { diff --git a/tests/sys/netpfil/pf/anchor.sh b/tests/sys/netpfil/pf/anchor.sh index eba1ee935930..da4ef3970d18 100644 --- a/tests/sys/netpfil/pf/anchor.sh +++ b/tests/sys/netpfil/pf/anchor.sh @@ -161,10 +161,56 @@ wildcard_cleanup() pft_cleanup } +atf_test_case "nat" "cleanup" +nat_head() +{ + atf_set descr 'Test nested nat anchors' + atf_set require.user root +} + +nat_body() +{ + pft_init + + epair=$(vnet_mkepair) + vnet_mkjail alcatraz ${epair}a + + ifconfig ${epair}b 192.0.2.2/24 up + jexec alcatraz ifconfig ${epair}a 192.0.2.1/24 up + + # Sanity check + atf_check -s exit:0 -o ignore ping -c 1 192.0.2.1 + + jexec alcatraz pfctl -e + pft_set_rules alcatraz \ + "nat-anchor \"foo/*\"" \ + "pass" + + echo "nat log on ${epair}a inet from 192.0.2.0/24 to any port = 53 -> 192.0.2.1" \ + | jexec alcatraz pfctl -a "foo/bar" -g -f - + echo "rdr on ${epair}a proto tcp to port echo -> 127.0.0.1 port echo" \ + | jexec alcatraz pfctl -a "foo/baz" -g -f - + + jexec alcatraz pfctl -sn -a "*" + jexec alcatraz pfctl -sn -a "foo/bar" + jexec alcatraz pfctl -sn -a "foo/baz" + + atf_check -s exit:0 -o match:"nat log on epair0a inet from 192.0.2.0/24 to any port = domain -> 192.0.2.1" \ + jexec alcatraz pfctl -sn -a "*" + atf_check -s exit:0 -o match:"rdr on epair0a inet proto tcp from any to any port = echo -> 127.0.0.1 port 7" \ + jexec alcatraz pfctl -sn -a "*" +} + +nat_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "pr183198" atf_add_test_case "pr279225" atf_add_test_case "nested_anchor" atf_add_test_case "wildcard" + atf_add_test_case "nat" } From nobody Thu Apr 17 01:05:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdKTJ14TLz5tVRh; Thu, 17 Apr 2025 01:05:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdKTH6fKmz3XpK; Thu, 17 Apr 2025 01:05:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744851956; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3IGcRJbE+ayr3aAaEbs9ltMM+WhBOj+xUcfE7sa5txw=; b=gSzum/Wn4GRvWTEUaeL9tMNkpN3UgGEmBUxSMdS/iHUCbdi4T2Q7tPzT7nKXXBRoKA9FYm dD9HpWKqVNOqKpvNSoGAxOtMWhsqTgpFCsyRW4mFTvF0UV4I8D95LEBbXUiETX1wg5FbL4 gLTr0kOvVCnXatoHT67y0sTSh9rUQawR2leRjnUEHjuS56SCT8GRmlSpPx8faAn6aMx53m mrW1cF3TzL+qs+3CTKkDGiG9pKu/SIIj7CoY4SyYxpAZ5aDaqUTOOkoLx0IcQdknzxot9M HWuO28SWne4FuzVbpoVL/th3YDsqrmdnFq/Ni5+8R0Q466a/QMzTuqiJkJK0ng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744851956; a=rsa-sha256; cv=none; b=Is4kytD+aWObQaXhXLLn8Nyd31wfRmPBqZKwOa1rgEImerGkSy9A0sBvYymdEyTeRDPGcY 7WGxSqFgMIxE+SkYeXE8AK/gDJLZqQbcnWS59VKiMoAKBwZ6cLbuY2T6F+g2+ecwRzyfbH mX/Zmx4mjA92y7CofNFQxI1m9HQEso2SAstjCgMDnu7fi3R0HewVu3yBzusXZUMlomntec q6LZf7CRcjwCRA8cDsL343/Xxnep+UxcXXbnecsk691lfcPBoZVCn2k36rINN6qJaHSjAC DyrBzzemv1+3glr0keCc8oZZPD+lWhjajQYl3pXJsaCjuChFnQ/bgmLnUZryaQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744851956; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3IGcRJbE+ayr3aAaEbs9ltMM+WhBOj+xUcfE7sa5txw=; b=JFeY6dfrxr1fkxUnZiYKe11BfgPMLC+JXbsM6EVJXNVG9x8K9zD1qV5Jk151yIVkY4NEJZ 0L2qNlBNF9LETy6Ty/foy2u3lufxmveLPT3x0Gnd1OLbN7HY5HVYdAg96kwA/5lUbh6AJ7 /kj/M1Xll8ouYV9qt4wFXAruaohXkoRvCjoXd+QSUVjdIrMmTPT9iuHQQLoIU3V59bGkNQ z1YbCzfEj0G4weVlHqq+4PmojqgMF+ueSdaz9eFyyggfUzMKySE7HZghJI5qpUE9aNqwbq UHgh4t98MDY6hjo6VNWGjuu7mhwfHRHZzMMcDpJGcs3pd10aIzHGmoZB1R15Bw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdKTH6Fl1zBJF; Thu, 17 Apr 2025 01:05:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53H15t70062411; Thu, 17 Apr 2025 01:05:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53H15toI062408; Thu, 17 Apr 2025 01:05:55 GMT (envelope-from git) Date: Thu, 17 Apr 2025 01:05:55 GMT Message-Id: <202504170105.53H15toI062408@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: a420e1b1cee6 - stable/14 - grep: avoid duplicated lines when we're coloring 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a420e1b1cee696f6f0fdeacdc04fd4f1e992234b Auto-Submitted: auto-generated The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=a420e1b1cee696f6f0fdeacdc04fd4f1e992234b commit a420e1b1cee696f6f0fdeacdc04fd4f1e992234b Author: Kyle Evans AuthorDate: 2025-03-20 04:34:13 +0000 Commit: Kyle Evans CommitDate: 2025-04-17 01:01:29 +0000 grep: avoid duplicated lines when we're coloring output For the default uncolored output, we'll just output a line once and then move on. For colored output, we'll output multiple matches per line with context from the line interspersed and may end up writing out some match context multiple times as we don't persist which part of the lines have already been printed. Fix it by tracking the length of line printed thus far in printline() and retaining it across successive calls to printline() in the same line. printline() should indicate whether it terminated the line or not to avoid tracking the logic for that in multiple places: -o lines are always terminated, so it's generally only some --color contexts where we wouldn't have terminated. Add a test to make sure that we're only printing one line going forward. Reported and tested by: Jamie Landeg-Jones Reviewed by: emaste (cherry picked from commit 4c9ffb13dd74159bd3ed7e1c4c706dbd15a70df2) --- usr.bin/grep/tests/grep_freebsd_test.sh | 15 +++++++ usr.bin/grep/util.c | 72 +++++++++++++++++++++++++++------ 2 files changed, 74 insertions(+), 13 deletions(-) diff --git a/usr.bin/grep/tests/grep_freebsd_test.sh b/usr.bin/grep/tests/grep_freebsd_test.sh index 77017529843e..906b70645151 100755 --- a/usr.bin/grep/tests/grep_freebsd_test.sh +++ b/usr.bin/grep/tests/grep_freebsd_test.sh @@ -103,10 +103,25 @@ zflag_body() atf_check grep -qz "foo.*bar" in } +atf_test_case color_dupe +color_dupe_body() +{ + + # This assumes a MAX_MATCHES of exactly 32. Previously buggy procline() + # calls would terminate the line premature every MAX_MATCHES matches, + # meaning we'd see the line be output again for the next MAX_MATCHES + # number of matches. + jot -nb 'A' -s '' 33 > in + + atf_check -o save:color.out grep --color=always . in + atf_check -o match:"^ +1 color.out" wc -l color.out +} + atf_init_test_cases() { atf_add_test_case grep_r_implied atf_add_test_case rgrep atf_add_test_case gnuext atf_add_test_case zflag + atf_add_test_case color_dupe } diff --git a/usr.bin/grep/util.c b/usr.bin/grep/util.c index 4e1c44b442f2..ed87e56956f6 100644 --- a/usr.bin/grep/util.c +++ b/usr.bin/grep/util.c @@ -72,7 +72,7 @@ static int litexec(const struct pat *pat, const char *string, size_t nmatch, regmatch_t pmatch[]); #endif static bool procline(struct parsec *pc); -static void printline(struct parsec *pc, int sep); +static bool printline(struct parsec *pc, int sep, size_t *last_out); static void printline_metadata(struct str *line, int sep); bool @@ -214,15 +214,29 @@ procmatch_match(struct mprintc *mc, struct parsec *pc) /* Print the matching line, but only if not quiet/binary */ if (mc->printmatch) { - printline(pc, ':'); + size_t last_out; + bool terminated; + + last_out = 0; + terminated = printline(pc, ':', &last_out); while (pc->matchidx >= MAX_MATCHES) { /* Reset matchidx and try again */ pc->matchidx = 0; if (procline(pc) == !vflag) - printline(pc, ':'); + terminated = printline(pc, ':', &last_out); else break; } + + /* + * The above loop processes the entire line as long as we keep + * hitting the maximum match count. At this point, we know + * that there's nothing left to be printed and can terminate the + * line. + */ + if (!terminated) + printline(pc, ':', &last_out); + first_match = false; mc->same_file = true; mc->last_outed = 0; @@ -748,26 +762,39 @@ printline_metadata(struct str *line, int sep) } /* - * Prints a matching line according to the command line options. + * Prints a matching line according to the command line options. We need + * *last_out to be populated on entry in case this is just a continuation of + * matches within the same line. + * + * Returns true if the line was terminated, false if it was not. */ -static void -printline(struct parsec *pc, int sep) +static bool +printline(struct parsec *pc, int sep, size_t *last_out) { - size_t a = 0; + size_t a = *last_out; size_t i, matchidx; regmatch_t match; + bool terminated; + + /* + * Nearly all paths below will terminate the line by default, but it is + * avoided in some circumstances in case we don't have the full context + * available here. + */ + terminated = true; /* If matchall, everything matches but don't actually print for -o */ if (oflag && matchall) - return; + return (terminated); matchidx = pc->matchidx; /* --color and -o */ - if ((oflag || color) && matchidx > 0) { + if ((oflag || color) && (pc->printed > 0 || matchidx > 0)) { /* Only print metadata once per line if --color */ - if (!oflag && pc->printed == 0) + if (!oflag && pc->printed == 0) { printline_metadata(&pc->ln, sep); + } for (i = 0; i < matchidx; i++) { match = pc->matches[i]; /* Don't output zero length matches */ @@ -780,9 +807,10 @@ printline(struct parsec *pc, int sep) if (oflag) { pc->ln.boff = match.rm_so; printline_metadata(&pc->ln, sep); - } else + } else { fwrite(pc->ln.dat + a, match.rm_so - a, 1, stdout); + } if (color) fprintf(stdout, "\33[%sm\33[K", color); fwrite(pc->ln.dat + match.rm_so, @@ -793,13 +821,31 @@ printline(struct parsec *pc, int sep) if (oflag) putchar('\n'); } - if (!oflag) { - if (pc->ln.len - a > 0) + + /* + * Don't terminate if we reached the match limit; we may have + * other matches on this line to process. + */ + *last_out = a; + if (!oflag && matchidx != MAX_MATCHES) { + if (pc->ln.len - a > 0) { fwrite(pc->ln.dat + a, pc->ln.len - a, 1, stdout); + *last_out = pc->ln.len; + } putchar('\n'); + } else if (!oflag) { + /* + * -o is terminated on every match output, so this + * branch is only designed to capture MAX_MATCHES in a + * line which may be a signal to us for a lack of + * context. The caller will know more and call us again + * to terminate if it needs to. + */ + terminated = false; } } else grep_printline(&pc->ln, sep); pc->printed++; + return (terminated); } From nobody Thu Apr 17 01:05:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdKTL4PBTz5tVmK; Thu, 17 Apr 2025 01:05:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdKTL11c0z3XvV; Thu, 17 Apr 2025 01:05:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744851958; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3aLvD/PzW/QpXq877arLCXTvsTwp/OSDaLoV0zZJfQ0=; b=pgglWMxnr2Eu+wY5ODkbXg1KF+Mv7Js6DWb767invlUcqNsrcH16XHI1XiDk2i4mtf8fls k/gcN3cK4FfW8nr2kNy4YDWEzKErNl6OTSWjES7R2PcCxbajiX8rrvX1/PYy3iMgVZxqSw 047qaA+QcfrebPVefvhatspCJ0rK9M69EmR7bEVCzUKw4uyTGNL2rS3zrLAklh6XxVkNSB fgbFd8f3+1QF64lpnXG2yfZf9kyWz2T+UsON+cnJPvqP3CzJsSBiySM4hkXS9og+rT0k05 YuqftZB8qpZK0UUAQKYCOadzhYqAqYzTl/B98FWavaMHtxmkJ5qs7+l53+Y9TQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744851958; a=rsa-sha256; cv=none; b=fbZTgX+CEtcGXRdxm7WBRk3/En6J8j2I8uM+8emmgOykir0RjETr5bn1nwOceuv9YFqpzP /qdJ6cA5ZGR8+3vEL8HfaxB5gLLR/xvZhra4y8PgBzpotxrOLTNshW0t707HJMvY9+5IQ6 1PD0Zu/YJd9ibdLnSIuDcdNhbkPZAl/HTv/FNnl/ygv0Rav53tRYUS7V5FmFiOhUg4MpKj hx0u3UCkrpKXCrI+pbBCDEnrZRpU2b33dCHrlNcBdJES6MYYrHyDTA4JYj2ektCBq4Y4gu zNb/GUUseik0/RQTuE9gNJjpUxkmdMt0rS378Kori8j+2bEEuxZuEfXtygr8Zg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744851958; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3aLvD/PzW/QpXq877arLCXTvsTwp/OSDaLoV0zZJfQ0=; b=EqbngRPQ296KsxqSwYIEWLOW74t6bZJdhNtGcfVCCvR03PxgmTFm2cnwr5LmqwfE/KAYz1 8E5f6h21lk5u2y+GAaMGuPAvgSl8we7jT1JZZlxCU/VpgHKopb/6CrRUgUudmwBIyki3It zW2XRn3Z3IrbVQ5iwxK8oWcmuzi9Pb2PBVhXn2bddyRnpzQJPWYBJtVeDU5E0lZh+Bf7SS yDyBKenFS/UnEcU84JAeMkZ31fR2K5ORvNU856VlPaGUAC3oURaK4TaG4c8SompTTIcmIR Qgfz9mpDiwFJb1Dofz+XtSkk4JtxZLA4rOcTjMLVNFks4cec6ZKXxm29KTnrcQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdKTL0HmdzB38; Thu, 17 Apr 2025 01:05:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53H15vsS062480; Thu, 17 Apr 2025 01:05:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53H15vL8062477; Thu, 17 Apr 2025 01:05:57 GMT (envelope-from git) Date: Thu, 17 Apr 2025 01:05:57 GMT Message-Id: <202504170105.53H15vL8062477@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: df4b8eff7b19 - stable/14 - libc: tests: add some tests for __cxa_atexit handling List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: df4b8eff7b19311f6cc5c339aebb41ecafd2e52c Auto-Submitted: auto-generated The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=df4b8eff7b19311f6cc5c339aebb41ecafd2e52c commit df4b8eff7b19311f6cc5c339aebb41ecafd2e52c Author: Kyle Evans AuthorDate: 2025-04-05 00:47:54 +0000 Commit: Kyle Evans CommitDate: 2025-04-17 01:01:46 +0000 libc: tests: add some tests for __cxa_atexit handling This adds a basic test that __cxa_atexit works, and also adds some tests for __cxa_atexit handlers registered in the middle of __cxa_finalize. PR: 285870 (cherry picked from commit ee9ce1078c596f5719f312feedd616ab0fb41dc9) --- lib/libc/tests/stdlib/Makefile | 2 + lib/libc/tests/stdlib/cxa_atexit_test.c | 132 +++++++++++++++++++++++++++ lib/libc/tests/stdlib/libatexit/Makefile | 11 +++ lib/libc/tests/stdlib/libatexit/libatexit.cc | 67 ++++++++++++++ 4 files changed, 212 insertions(+) diff --git a/lib/libc/tests/stdlib/Makefile b/lib/libc/tests/stdlib/Makefile index 860e530389df..974bbf7c0704 100644 --- a/lib/libc/tests/stdlib/Makefile +++ b/lib/libc/tests/stdlib/Makefile @@ -2,6 +2,7 @@ .include ATF_TESTS_C+= clearenv_test +ATF_TESTS_C+= cxa_atexit_test ATF_TESTS_C+= dynthr_test ATF_TESTS_C+= heapsort_test ATF_TESTS_C+= mergesort_test @@ -79,5 +80,6 @@ LIBADD.${t}+= netbsd util LIBADD.strtod_test+= m SUBDIR+= dynthr_mod +SUBDIR+= libatexit .include diff --git a/lib/libc/tests/stdlib/cxa_atexit_test.c b/lib/libc/tests/stdlib/cxa_atexit_test.c new file mode 100644 index 000000000000..7e2cafbce850 --- /dev/null +++ b/lib/libc/tests/stdlib/cxa_atexit_test.c @@ -0,0 +1,132 @@ +/*- + * Copyright (c) 2025 Kyle Evans + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +#include +#include +#include +#include + +#include + +#define ARBITRARY_EXIT_CODE 42 + +static char * +get_shlib(const char *srcdir) +{ + char *shlib; + + shlib = NULL; + if (asprintf(&shlib, "%s/libatexit.so", srcdir) < 0) + atf_tc_fail("failed to construct path to libatexit.so"); + return (shlib); +} + +static void +run_test(const atf_tc_t *tc, bool with_fatal_atexit, bool with_exit) +{ + pid_t p; + void (*set_fatal_atexit)(bool); + void (*set_exit_code)(int); + void *hdl; + char *shlib; + + shlib = get_shlib(atf_tc_get_config_var(tc, "srcdir")); + + hdl = dlopen(shlib, RTLD_LAZY); + ATF_REQUIRE_MSG(hdl != NULL, "dlopen: %s", dlerror()); + + free(shlib); + + if (with_fatal_atexit) { + set_fatal_atexit = dlsym(hdl, "set_fatal_atexit"); + ATF_REQUIRE_MSG(set_fatal_atexit != NULL, + "set_fatal_atexit: %s", dlerror()); + } + if (with_exit) { + set_exit_code = dlsym(hdl, "set_exit_code"); + ATF_REQUIRE_MSG(set_exit_code != NULL, "set_exit_code: %s", + dlerror()); + } + + p = atf_utils_fork(); + if (p == 0) { + /* + * Don't let the child clobber the results file; stderr/stdout + * have been replaced by atf_utils_fork() to capture it. We're + * intentionally using exit() instead of _exit() here to run + * __cxa_finalize at exit, otherwise we'd just leave it be. + */ + closefrom(3); + + if (with_fatal_atexit) + set_fatal_atexit(true); + if (with_exit) + set_exit_code(ARBITRARY_EXIT_CODE); + + dlclose(hdl); + + /* + * If the dtor was supposed to exit (most cases), then we should + * not have made it to this point. If it's not supposed to + * exit, then we just exit with success here because we might + * be expecting either a clean exit or a signal on our way out + * as the final __cxa_finalize tries to run a callback in the + * unloaded DSO. + */ + if (with_exit) + exit(1); + exit(0); + } + + dlclose(hdl); + atf_utils_wait(p, with_exit ? ARBITRARY_EXIT_CODE : 0, "", ""); +} + +ATF_TC_WITHOUT_HEAD(simple_cxa_atexit); +ATF_TC_BODY(simple_cxa_atexit, tc) +{ + /* + * This test exits in a global object's dtor so that we check for our + * dtor being run at dlclose() time. If it isn't, then the forked child + * will have a chance to exit(1) after dlclose() to raise a failure. + */ + run_test(tc, false, true); +} + +ATF_TC_WITHOUT_HEAD(late_cxa_atexit); +ATF_TC_BODY(late_cxa_atexit, tc) +{ + /* + * This test creates another global object during a __cxa_atexit handler + * invocation. It's been observed in the wild that we weren't executing + * it, then the DSO gets torn down and it was executed at application + * exit time instead. In the best case scenario we would crash if + * something else hadn't been mapped there. + */ + run_test(tc, true, false); +} + +ATF_TC_WITHOUT_HEAD(late_cxa_atexit_ran); +ATF_TC_BODY(late_cxa_atexit_ran, tc) +{ + /* + * This is a slight variation of the previous test where we trigger an + * exit() in our late-registered __cxa_atexit handler so that we can + * ensure it was ran *before* dlclose() finished and not through some + * weird chain of events afterwards. + */ + run_test(tc, true, true); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, simple_cxa_atexit); + ATF_TP_ADD_TC(tp, late_cxa_atexit); + ATF_TP_ADD_TC(tp, late_cxa_atexit_ran); + return (atf_no_error()); +} diff --git a/lib/libc/tests/stdlib/libatexit/Makefile b/lib/libc/tests/stdlib/libatexit/Makefile new file mode 100644 index 000000000000..9ba04c77af62 --- /dev/null +++ b/lib/libc/tests/stdlib/libatexit/Makefile @@ -0,0 +1,11 @@ +SHLIB_CXX= libatexit +SHLIB_NAME= libatexit.so +SHLIB_MAJOR= 1 +SHLIBDIR= ${TESTSDIR} +PACKAGE= tests +SRCS= libatexit.cc + +TESTSDIR:= ${TESTSBASE}/${RELDIR:C/libc\/tests/libc/:H} + + +.include diff --git a/lib/libc/tests/stdlib/libatexit/libatexit.cc b/lib/libc/tests/stdlib/libatexit/libatexit.cc new file mode 100644 index 000000000000..bb286c97e421 --- /dev/null +++ b/lib/libc/tests/stdlib/libatexit/libatexit.cc @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 Kyle Evans + * + * SPDX-License-Identifier: BSD-2-Clause + * + */ + +#include + +static int exit_code = -1; +static bool fatal_atexit; + +extern "C" { + void set_fatal_atexit(bool); + void set_exit_code(int); +} + +void +set_fatal_atexit(bool fexit) +{ + fatal_atexit = fexit; +} + +void +set_exit_code(int code) +{ + exit_code = code; +} + +struct other_object { + ~other_object() { + + /* + * In previous versions of our __cxa_atexit handling, we would + * never actually execute this handler because it's added during + * ~object() below; __cxa_finalize would never revisit it. We + * will allow the caller to configure us to exit with a certain + * exit code so that it can run us twice: once to ensure we + * don't crash at the end, and again to make sure the handler + * actually ran. + */ + if (exit_code != -1) + _exit(exit_code); + } +}; + +void +create_staticobj() +{ + static other_object obj; +} + +struct object { + ~object() { + /* + * If we're doing the fatal_atexit behavior (i.e., create an + * object that will add its own dtor for __cxa_finalize), then + * we don't exit here. + */ + if (fatal_atexit) + create_staticobj(); + else if (exit_code != -1) + _exit(exit_code); + } +}; + +static object obj; From nobody Thu Apr 17 02:23:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdMBd4XxHz5tbL6; Thu, 17 Apr 2025 02:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdMBd2sKlz3gkN; Thu, 17 Apr 2025 02:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744856601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=24X13bY3+ymZbk2L3zz745vvhcns1CkqvatKzS4x2QU=; b=ODvhW/fdTg5IZBJCw3gi8TkFctPKESsV1jvKVf68gYldYfXRhnMl3RkHIM3fFQWYsnokNz QT+AbT6oG8EA+hJQYZYRfZmx7DQqQ9Qgz1Uja/xFLSs7F69tIRVOk5QWqu0y+vRJKenudl zin5T4jdYM/Hw5STVS5lYVBRLouxMYKOihANUpJ6cnlJ8kgu1GOzVMNuXW9mjQppNyL54x 6kUlcXJmahRL1f7RpLUXf7RX34DUB0LL9zZpVyxMaRnOe/1nU6CZD1MH1Gb8R8wCm6mV4u JKZL4VV+MvFzCNVAnLIxbOLYKF7O9tqBOzkBzFystXyqCjss9rlQr8ts5Q4z+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744856601; a=rsa-sha256; cv=none; b=LxS/uRkaaPVJFt3vH+9t6J/PR0+Roevvqx4EqNXTq3b1gbYAO5DcSrEoPyF21DGWWodtAJ aioLVfkPSqtz+SHl47+axUhDPG0uJtzBeDA0Mnhye7iFdamwctrjqLWyTlI6OmegJxRIHe hXDdxlLfkNS429hUEjx8dNJid4Pn4CgdalxD0Gp6/4CzS4Yrwiyh+qWUPmBvKcNZqyTS6o Q3N8rHjEiqlFmsExdtOcb66yPk8mBRteJuWEmyNLptZ74UvT+s9smAMRdvzD/5XYUHVepp AG0NoR+CtLL5iAihXDytm05FDSZn+L7VnmWyEsItyu0nvlLy+8qju9QUzmlGww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744856601; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=24X13bY3+ymZbk2L3zz745vvhcns1CkqvatKzS4x2QU=; b=tw9cCX1nQJXuN63cYwQFu87T9YVhaElYCp3Q4zB1jQo+0PfIlhyRD4clb8Wd7ar2H6ticA 6S0LKBCLmFWep3iPvuGd8KZaigUjVoBI6N313MHt+7BJV5tqwu3p+NxFa+UesqMuoC+jfM gpI2lpbaYtZKRcHXu5sVgz1N1UFGBaEEO+GnUwr1R3lZLwOBxfAabrjft4seRBYTV9bIC0 lqZEXLpZfX3yWNKk9AYDYyZKYNv/lQ+r3s/FLatrjg+HkuJ8jjF5iteQgLSyhMJ3JDXFAS cHcAN6bpPR5mPG4FqzwUd7ZpRAzPha3OlsKGBRtdC3yL7Vvcz1ywhng7Crt7mw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdMBd2H43zDDV; Thu, 17 Apr 2025 02:23:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53H2NL3l011183; Thu, 17 Apr 2025 02:23:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53H2NLTe011180; Thu, 17 Apr 2025 02:23:21 GMT (envelope-from git) Date: Thu, 17 Apr 2025 02:23:21 GMT Message-Id: <202504170223.53H2NLTe011180@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 04f7496f89e2 - stable/13 - libc: allow __cxa_atexit handlers to be added during __cxa_finalize List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 04f7496f89e28057079f3f0b1a02d7d9d874487f Auto-Submitted: auto-generated The branch stable/13 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=04f7496f89e28057079f3f0b1a02d7d9d874487f commit 04f7496f89e28057079f3f0b1a02d7d9d874487f Author: Aurélien Croc de Suray AuthorDate: 2025-04-05 00:47:53 +0000 Commit: Kyle Evans CommitDate: 2025-04-17 01:02:12 +0000 libc: allow __cxa_atexit handlers to be added during __cxa_finalize science/dlib-cpp reveals an interesting scenario that works fine on other platforms but not on FreeBSD; notably, it ends up creating a new global object from some destructor which is called during __cxa_finalize. This breaks when libdlib is dlopen()ed and then subsequently dlclose()ed, as we never end up invoking the created object's dtor until program exit when the shlib is already unmapped. Fix it by noting when we're in the middle of __cxa_finalize for a dso, and then restarting the search if __cxa_atexit() was called in the middle somewhere. We wait until we've processed the initial set before starting over and processing the newly added handlers as if it were a complete set of handlers added during runtime. The alternative is calling them as they're added to maintain a LIFO in terms of total ordering, but in theory a constructor could add another global object that also needs to be destroyed, and that object needs to be destroyed after the one that constructed it to avoid creating unexpected lifetime issues. This manifests in the pdlib PHP extension for dlib crashing, see [0]. [0] https://github.com/goodspb/pdlib/issues/39 PR: 285870 Reviewed by: kevans (also supplied commit message) (cherry picked from commit 23427c8e1fedb9fc68ad0bd27a59c7ffd2b3008c) --- lib/libc/stdlib/atexit.c | 61 ++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/lib/libc/stdlib/atexit.c b/lib/libc/stdlib/atexit.c index 6b63d9e728c4..5b39552821ed 100644 --- a/lib/libc/stdlib/atexit.c +++ b/lib/libc/stdlib/atexit.c @@ -39,6 +39,7 @@ static char sccsid[] = "@(#)atexit.c 8.2 (Berkeley) 7/3/94"; #include "namespace.h" #include #include +#include #include #include #include @@ -60,6 +61,8 @@ _Block_copy(void*); #define ATEXIT_FN_CXA 2 static pthread_mutex_t atexit_mutex = PTHREAD_MUTEX_INITIALIZER; +static void *current_finalize_dso = NULL; +static bool call_finalize_again = false; #define _MUTEX_LOCK(x) if (__isthreaded) _pthread_mutex_lock(x) #define _MUTEX_UNLOCK(x) if (__isthreaded) _pthread_mutex_unlock(x) @@ -119,6 +122,9 @@ atexit_register(struct atexit_fn *fptr) __atexit = p; } p->fns[p->ind++] = *fptr; + if (current_finalize_dso != NULL && + current_finalize_dso == fptr->fn_dso) + call_finalize_again = true; _MUTEX_UNLOCK(&atexit_mutex); return 0; } @@ -212,33 +218,38 @@ __cxa_finalize(void *dso) } _MUTEX_LOCK(&atexit_mutex); - for (p = __atexit; p; p = p->next) { - for (n = p->ind; --n >= 0;) { - if (p->fns[n].fn_type == ATEXIT_FN_EMPTY) - continue; /* already been called */ - fn = p->fns[n]; - if (dso != NULL && dso != fn.fn_dso) { - /* wrong DSO ? */ - if (!has_phdr || global_exit || - !__elf_phdr_match_addr(&phdr_info, - fn.fn_ptr.cxa_func)) - continue; + current_finalize_dso = dso; + do { + call_finalize_again = false; + for (p = __atexit; p; p = p->next) { + for (n = p->ind; --n >= 0;) { + if (p->fns[n].fn_type == ATEXIT_FN_EMPTY) + continue; /* already been called */ + fn = p->fns[n]; + if (dso != NULL && dso != fn.fn_dso) { + /* wrong DSO ? */ + if (!has_phdr || global_exit || + !__elf_phdr_match_addr(&phdr_info, + fn.fn_ptr.cxa_func)) + continue; + } + /* + Mark entry to indicate that this particular + handler has already been called. + */ + p->fns[n].fn_type = ATEXIT_FN_EMPTY; + _MUTEX_UNLOCK(&atexit_mutex); + + /* Call the function of correct type. */ + if (fn.fn_type == ATEXIT_FN_CXA) + fn.fn_ptr.cxa_func(fn.fn_arg); + else if (fn.fn_type == ATEXIT_FN_STD) + fn.fn_ptr.std_func(); + _MUTEX_LOCK(&atexit_mutex); } - /* - Mark entry to indicate that this particular handler - has already been called. - */ - p->fns[n].fn_type = ATEXIT_FN_EMPTY; - _MUTEX_UNLOCK(&atexit_mutex); - - /* Call the function of correct type. */ - if (fn.fn_type == ATEXIT_FN_CXA) - fn.fn_ptr.cxa_func(fn.fn_arg); - else if (fn.fn_type == ATEXIT_FN_STD) - fn.fn_ptr.std_func(); - _MUTEX_LOCK(&atexit_mutex); } - } + } while (call_finalize_again); + current_finalize_dso = NULL; _MUTEX_UNLOCK(&atexit_mutex); if (dso == NULL) _MUTEX_DESTROY(&atexit_mutex); From nobody Thu Apr 17 02:23:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdMBf6X97z5sMkH; Thu, 17 Apr 2025 02:23: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdMBf4NVGz3gqN; Thu, 17 Apr 2025 02:23:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744856602; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IN24Laeux1XEghDaMdWbVJSAjz05zLjZOnq80NT47Tk=; b=r45tYQHvLlyg5sRuYn26UZ4kI0IpRIM2wObYksitGjFnlcrqTF1agyi/yzVklTDDBfR0hU JVRNh6nfZ0WOQKNLvc93qx0i+gpqMpc/jpR8jU/a4XheTyuu+agUhwQxqJhKfkYuB4SouX 05MZURqsZPuzYrYpxif/QQfms20LrM2RA+btE62r883IRlBq0yB0xpQGQqcXcBR8bwgt8t KoSqjP/+cOYmYxbdb6xAAgHlW+Zi4ZTrgY//J8ZP7OryCOSMjUD2IitQA3QTzpFgsWC8tZ 7Dw6PlSXH1l/mtqiwWJt3GvmXmiOqS+HeQ7qkpb0/AWgguH9IXhSvPb4wSDQ8w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744856602; a=rsa-sha256; cv=none; b=Gq0jn1B2X/Et3LHCfdQbfcSmqXvdf/UhNlfxzsAQU4+PaQEsLkJPMqgp5Xv5QRURwdvEv3 JAwzuZ3p6CXGTeP1SDeO/47dkobNdLm1leQ9LnxiRvzok/wZG5PLl78/QwUjCBfOuRcpiq Brvjo+PCV135J7jRjw9tjIRyYa/iYYfBJ9YJwilZ5uG7KlymmpFcGOTDWhmy3sVscov0k8 WxEzQLji9glMxW0B5qxT6hxBaqxmdcI39WVCIYLPh45HTxTq2W3ym0QxZ7SnFOJvRj46+B xaYZMhbuFBLzC4GS6pVGCP0vVbF0600KgQxRNPULI6Iy2e6o0RzeXG7MULZ++Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744856602; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IN24Laeux1XEghDaMdWbVJSAjz05zLjZOnq80NT47Tk=; b=NtVbEOdtTnkQiPPEzplXSer8VviyFty3/itPc+wmJtCTAoxQVSPiX6ExdgosZUNx1Q4JIK cyPg6X45Lsef1HzG0u1OFH667KvPPNsdL6PGrAKY42ODDUPf/xLvvK+i8dCEiD6ifiIL4t 7F1Vesvv40n+WCB6ZPW0KjrjmzTYo02usIWL6h6leShkreBJU6vkP/2eQv2+UN6Ltr0sCB 70ogqqOZ061eY2V3HkPLFk3ShXXsgY5DT8w6cw7hB+VIBNAKvA9oT0dkVtPxEwgmcrgDq3 OYbxR+HM4k+F8WxctTj8iyM58edFxmCZ5FDPViO0WQ6M5VKQOxJFpD4wh2NJdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdMBf3Dr9zDGL; Thu, 17 Apr 2025 02:23:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53H2NMZX011216; Thu, 17 Apr 2025 02:23:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53H2NMCt011213; Thu, 17 Apr 2025 02:23:22 GMT (envelope-from git) Date: Thu, 17 Apr 2025 02:23:22 GMT Message-Id: <202504170223.53H2NMCt011213@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: cc7bff26328d - stable/13 - libc: tests: add some tests for __cxa_atexit handling List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cc7bff26328d81268a8fba620670428ea0867d81 Auto-Submitted: auto-generated The branch stable/13 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=cc7bff26328d81268a8fba620670428ea0867d81 commit cc7bff26328d81268a8fba620670428ea0867d81 Author: Kyle Evans AuthorDate: 2025-04-05 00:47:54 +0000 Commit: Kyle Evans CommitDate: 2025-04-17 01:02:43 +0000 libc: tests: add some tests for __cxa_atexit handling This adds a basic test that __cxa_atexit works, and also adds some tests for __cxa_atexit handlers registered in the middle of __cxa_finalize. PR: 285870 (cherry picked from commit ee9ce1078c596f5719f312feedd616ab0fb41dc9) --- lib/libc/tests/stdlib/Makefile | 2 + lib/libc/tests/stdlib/cxa_atexit_test.c | 132 +++++++++++++++++++++++++++ lib/libc/tests/stdlib/libatexit/Makefile | 11 +++ lib/libc/tests/stdlib/libatexit/libatexit.cc | 67 ++++++++++++++ 4 files changed, 212 insertions(+) diff --git a/lib/libc/tests/stdlib/Makefile b/lib/libc/tests/stdlib/Makefile index aa2fa7683cb7..9df98bd4f435 100644 --- a/lib/libc/tests/stdlib/Makefile +++ b/lib/libc/tests/stdlib/Makefile @@ -1,6 +1,7 @@ .include +ATF_TESTS_C+= cxa_atexit_test ATF_TESTS_C+= dynthr_test ATF_TESTS_C+= heapsort_test ATF_TESTS_C+= mergesort_test @@ -77,5 +78,6 @@ LIBADD.${t}+= netbsd util LIBADD.strtod_test+= m SUBDIR+= dynthr_mod +SUBDIR+= libatexit .include diff --git a/lib/libc/tests/stdlib/cxa_atexit_test.c b/lib/libc/tests/stdlib/cxa_atexit_test.c new file mode 100644 index 000000000000..7e2cafbce850 --- /dev/null +++ b/lib/libc/tests/stdlib/cxa_atexit_test.c @@ -0,0 +1,132 @@ +/*- + * Copyright (c) 2025 Kyle Evans + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include + +#include +#include +#include +#include + +#include + +#define ARBITRARY_EXIT_CODE 42 + +static char * +get_shlib(const char *srcdir) +{ + char *shlib; + + shlib = NULL; + if (asprintf(&shlib, "%s/libatexit.so", srcdir) < 0) + atf_tc_fail("failed to construct path to libatexit.so"); + return (shlib); +} + +static void +run_test(const atf_tc_t *tc, bool with_fatal_atexit, bool with_exit) +{ + pid_t p; + void (*set_fatal_atexit)(bool); + void (*set_exit_code)(int); + void *hdl; + char *shlib; + + shlib = get_shlib(atf_tc_get_config_var(tc, "srcdir")); + + hdl = dlopen(shlib, RTLD_LAZY); + ATF_REQUIRE_MSG(hdl != NULL, "dlopen: %s", dlerror()); + + free(shlib); + + if (with_fatal_atexit) { + set_fatal_atexit = dlsym(hdl, "set_fatal_atexit"); + ATF_REQUIRE_MSG(set_fatal_atexit != NULL, + "set_fatal_atexit: %s", dlerror()); + } + if (with_exit) { + set_exit_code = dlsym(hdl, "set_exit_code"); + ATF_REQUIRE_MSG(set_exit_code != NULL, "set_exit_code: %s", + dlerror()); + } + + p = atf_utils_fork(); + if (p == 0) { + /* + * Don't let the child clobber the results file; stderr/stdout + * have been replaced by atf_utils_fork() to capture it. We're + * intentionally using exit() instead of _exit() here to run + * __cxa_finalize at exit, otherwise we'd just leave it be. + */ + closefrom(3); + + if (with_fatal_atexit) + set_fatal_atexit(true); + if (with_exit) + set_exit_code(ARBITRARY_EXIT_CODE); + + dlclose(hdl); + + /* + * If the dtor was supposed to exit (most cases), then we should + * not have made it to this point. If it's not supposed to + * exit, then we just exit with success here because we might + * be expecting either a clean exit or a signal on our way out + * as the final __cxa_finalize tries to run a callback in the + * unloaded DSO. + */ + if (with_exit) + exit(1); + exit(0); + } + + dlclose(hdl); + atf_utils_wait(p, with_exit ? ARBITRARY_EXIT_CODE : 0, "", ""); +} + +ATF_TC_WITHOUT_HEAD(simple_cxa_atexit); +ATF_TC_BODY(simple_cxa_atexit, tc) +{ + /* + * This test exits in a global object's dtor so that we check for our + * dtor being run at dlclose() time. If it isn't, then the forked child + * will have a chance to exit(1) after dlclose() to raise a failure. + */ + run_test(tc, false, true); +} + +ATF_TC_WITHOUT_HEAD(late_cxa_atexit); +ATF_TC_BODY(late_cxa_atexit, tc) +{ + /* + * This test creates another global object during a __cxa_atexit handler + * invocation. It's been observed in the wild that we weren't executing + * it, then the DSO gets torn down and it was executed at application + * exit time instead. In the best case scenario we would crash if + * something else hadn't been mapped there. + */ + run_test(tc, true, false); +} + +ATF_TC_WITHOUT_HEAD(late_cxa_atexit_ran); +ATF_TC_BODY(late_cxa_atexit_ran, tc) +{ + /* + * This is a slight variation of the previous test where we trigger an + * exit() in our late-registered __cxa_atexit handler so that we can + * ensure it was ran *before* dlclose() finished and not through some + * weird chain of events afterwards. + */ + run_test(tc, true, true); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, simple_cxa_atexit); + ATF_TP_ADD_TC(tp, late_cxa_atexit); + ATF_TP_ADD_TC(tp, late_cxa_atexit_ran); + return (atf_no_error()); +} diff --git a/lib/libc/tests/stdlib/libatexit/Makefile b/lib/libc/tests/stdlib/libatexit/Makefile new file mode 100644 index 000000000000..9ba04c77af62 --- /dev/null +++ b/lib/libc/tests/stdlib/libatexit/Makefile @@ -0,0 +1,11 @@ +SHLIB_CXX= libatexit +SHLIB_NAME= libatexit.so +SHLIB_MAJOR= 1 +SHLIBDIR= ${TESTSDIR} +PACKAGE= tests +SRCS= libatexit.cc + +TESTSDIR:= ${TESTSBASE}/${RELDIR:C/libc\/tests/libc/:H} + + +.include diff --git a/lib/libc/tests/stdlib/libatexit/libatexit.cc b/lib/libc/tests/stdlib/libatexit/libatexit.cc new file mode 100644 index 000000000000..bb286c97e421 --- /dev/null +++ b/lib/libc/tests/stdlib/libatexit/libatexit.cc @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2025 Kyle Evans + * + * SPDX-License-Identifier: BSD-2-Clause + * + */ + +#include + +static int exit_code = -1; +static bool fatal_atexit; + +extern "C" { + void set_fatal_atexit(bool); + void set_exit_code(int); +} + +void +set_fatal_atexit(bool fexit) +{ + fatal_atexit = fexit; +} + +void +set_exit_code(int code) +{ + exit_code = code; +} + +struct other_object { + ~other_object() { + + /* + * In previous versions of our __cxa_atexit handling, we would + * never actually execute this handler because it's added during + * ~object() below; __cxa_finalize would never revisit it. We + * will allow the caller to configure us to exit with a certain + * exit code so that it can run us twice: once to ensure we + * don't crash at the end, and again to make sure the handler + * actually ran. + */ + if (exit_code != -1) + _exit(exit_code); + } +}; + +void +create_staticobj() +{ + static other_object obj; +} + +struct object { + ~object() { + /* + * If we're doing the fatal_atexit behavior (i.e., create an + * object that will add its own dtor for __cxa_finalize), then + * we don't exit here. + */ + if (fatal_atexit) + create_staticobj(); + else if (exit_code != -1) + _exit(exit_code); + } +}; + +static object obj; From nobody Thu Apr 17 23:37:41 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdvT22k97z5syt8; Thu, 17 Apr 2025 23:37:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdvT22HQfz3QBW; Thu, 17 Apr 2025 23:37:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vSSqG5u7gaWT3/ZTH682IoIkzSoozdUVzFBXr6QxLn0=; b=Y3HNshgmFPyHLw+mqWBkZgXiknF+IfOHv46lUu+s4/s8R2jStkud4C/kT2+mde4uIHiZgM H+uixoaKaBgpCtfP/+F9lTTBBMONjCI6CX7OgjKdp1nPNEPiRn2qbA5KtDkV/3ePZv5iCc EiX6gzAKJ2c7aqeX3v7wvxz6VYZ7P2CJr5AkKl8NkSeS0FxO6G0pNo6f8Fjjf0weZesjJR 6P5NJ03ELv2ug+pzYw2Asf13dDTIcef3R9aoCyrA9k9oy9gxEDeh6goOgi9oKZs5VxS5Sk BH6FlmTe7qIl+obzBMHJbqw/jlbHtTfxUZ0oaxbfH3sXGF2uFfmUZJXale9LSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744933062; a=rsa-sha256; cv=none; b=L9J0532x4ptx//I0R+FzJ7hcj3h0EtEjoy+Hl9mgKk25Ga/12DhQzdRhjRqPSx4L1bZDfs mwofWLORY3hg5TfNhE8AD0Q4iKQLcfgQ0irM2e/IPXPJSUFle4ECcYHLi+9L3lVvP0jc+o uSuooCevQFzfK83lKCMl3zACuDLur9yyhSkfTI+aJwyMD0dRlW+R3ATgzPJo1ZizVmxA63 mq1JWi/2CV6JIIj0Vo6oDHJlwNSEp+lSazkMtQhc1NGAHdfo24j8YUk/twNuUKROtqR416 mvTV4fhho4nUmEFAXxaaTMnBEseNitxVQKHIK3zPSIxxeFdQBQnl2Bi+vFxoew== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933062; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vSSqG5u7gaWT3/ZTH682IoIkzSoozdUVzFBXr6QxLn0=; b=dpaz4FEanL4ydEmyrtyfmG03+WfHLu37aK2GhCNmtlxLyghdYAYwVe8rRI44S5dAJLpp1r lFihU5WnRyli8IQxMeoLGmp9tsEz2+mXnGrLg9Ao3jk4S6v1t+V+wwmgfxCPrTA9ZutnDq 7tH71QMbGOxtMZd5VLsf87IxFn/12Jf8sSSpEkaooxw+2GWP34yvkXn/yFP5wO5iROdYcT Pa4ZmrH8Xp/unlRnMWCuB6OG1aEbKYpA3sM65w6ufPKavDABCf0XVYhOHmsGq0zGSlO8/t BSFMimakaKFXQ05iIGbFdVdUSI0uIegowdDY9ef3Dgh0qk1Ol5g9869fFEQktA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdvT21RQCz184H; Thu, 17 Apr 2025 23:37:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53HNbgAt089359; Thu, 17 Apr 2025 23:37:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53HNbfk6089355; Thu, 17 Apr 2025 23:37:41 GMT (envelope-from git) Date: Thu, 17 Apr 2025 23:37:41 GMT Message-Id: <202504172337.53HNbfk6089355@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: d03aa29b82b8 - stable/14 - fusefs: minor refactor in the tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d03aa29b82b803b440886a2f864dcdafa184c4fb Auto-Submitted: auto-generated The branch stable/14 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=d03aa29b82b803b440886a2f864dcdafa184c4fb commit d03aa29b82b803b440886a2f864dcdafa184c4fb Author: Alan Somers AuthorDate: 2024-12-24 21:54:42 +0000 Commit: Alan Somers CommitDate: 2025-04-17 20:14:57 +0000 fusefs: minor refactor in the tests Do more work in MockFS's constructor's member initializer list, instead of the body of the constructor. It's easier to read this way. Sponsored by: ConnectWise (cherry picked from commit 3f83f32d7d07afbb2dbff63fc6ec520f3341eec7) --- tests/sys/fs/fusefs/mockfs.cc | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/tests/sys/fs/fusefs/mockfs.cc b/tests/sys/fs/fusefs/mockfs.cc index 023cecd0276f..502f22a1e980 100644 --- a/tests/sys/fs/fusefs/mockfs.cc +++ b/tests/sys/fs/fusefs/mockfs.cc @@ -421,7 +421,18 @@ MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, uint32_t kernel_minor_version, uint32_t max_write, bool async, bool noclusterr, unsigned time_gran, bool nointr, bool noatime, const char *fsname, const char *subtype) - : m_uniques(new std::unordered_set) + : m_daemon_id(NULL), + m_kernel_minor_version(kernel_minor_version), + m_kq(pm == KQ ? kqueue() : -1), + m_maxreadahead(max_readahead), + m_pid(getpid()), + m_uniques(new std::unordered_set), + m_pm(pm), + m_time_gran(time_gran), + m_child_pid(-1), + m_maxwrite(MIN(max_write, max_max_write)), + m_nready(-1), + m_quit(false) { struct sigaction sa; struct iovec *iov = NULL; @@ -429,20 +440,6 @@ MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, char fdstr[15]; const bool trueval = true; - m_daemon_id = NULL; - m_kernel_minor_version = kernel_minor_version; - m_maxreadahead = max_readahead; - m_maxwrite = MIN(max_write, max_max_write); - m_nready = -1; - m_pm = pm; - m_time_gran = time_gran; - m_quit = false; - - if (m_pm == KQ) - m_kq = kqueue(); - else - m_kq = -1; - /* * Kyua sets pwd to a testcase-unique tempdir; no need to use * mkdtemp @@ -467,9 +464,6 @@ MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, throw(std::system_error(errno, std::system_category(), "Couldn't open /dev/fuse")); - m_pid = getpid(); - m_child_pid = -1; - build_iovec(&iov, &iovlen, "fstype", __DECONST(void *, "fusefs"), -1); build_iovec(&iov, &iovlen, "fspath", __DECONST(void *, "mountpoint"), -1); From nobody Thu Apr 17 23:37:43 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdvT33VDmz5sytC; Thu, 17 Apr 2025 23:37: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdvT32G5Tz3QBX; Thu, 17 Apr 2025 23:37:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=plT4qxToUw+7YSx3HCp5CMUt0zf82yMhB46ynZqIzwU=; b=LD6mAHyQmRd970S9HQncDtYI/M9CmFhDifqsTj0nzYypDsWkpnFMiWAn66HGQyIfJ39Ium EqBUkW91yXSdAAWpnaRUZ7mLf4leUrDnQr2+QiLw/LvJvgDgrvzu6ukLh2ccPGySszsyW2 ZrRDVdtoz/GL/cIKKZFJlhE/KK/eXySx5HA2uW8JUwwrcYFOMRG0/dnSU8qI9mI+oKLoej nCVw81um+EyeGFHbbmphK9Ef6hbyn4DZ5B7SoY7DI3UzKUUMCNyrQD2T31RgN3aNm6JVX2 wWq/XKXbXlUszt6No2q3Y30UZFGDMleUve9KpLHDes0V1hFc050whR3eAiBH2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744933063; a=rsa-sha256; cv=none; b=M12IMfyJBOdmNtbUN8ihDauZtrYZNR8+/c7X/IhegH9w1iL3zye0tqbmsxxcr7vXwig/zH q3Oop+H+LoSwps5BhxOO0/6d455AWT4KqIPdGdOLs6H5HHijz9AbKJhx47MOMU++1+AoYH K21zawMtuf4rFIcxG8gtz5382WZOzFZOFZo/lm3xMD1eyCNA9Y2NkrlQtoCxGfMDIoGJ1U pWh1Ti0vgTXDZYLx4+gNTvAt09HMRr/PHy3pDWjaxeRK/t7YIpvC5UEQFwoxg0hpkjM2pj X8sbzD8BYehHq8T9kqrQLkSGJFbmf0gT86tYOZ1TDFYOrE6mr4zeKUiCyL+1eA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933063; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=plT4qxToUw+7YSx3HCp5CMUt0zf82yMhB46ynZqIzwU=; b=aiBpe42IDYaQruJrCJx7/4WSN0J/gmJ04DtnTogpyWuYKx94gqgqGBzEQ7b2ecJl01ICia uufp/6QlciXNJW0jNEKrQgeZ90ainHlOuftCm7UcCwR2C6pz6wYW+gA00/j83wsVNZlKai VtIVDX6fI8kVs+NjCLHbiTC9H5y6gzaqEOET34K9A9RAEHLpANFn5ep7BJz6B9XqfuOMpN dOkd4s6ZqySTRDWXavVpPD/NuIABaOqw7RhgqknlO/OQqDvhZd5SrHdkBWCb8BTLfiyrhS lcGQ/O5kmpuxI8YWhuYexvFR0uLht12Gdt4qMwb+4Pboi/sCgIUqECu55UELow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdvT31h0Dz17s2; Thu, 17 Apr 2025 23:37:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53HNbhEH089394; Thu, 17 Apr 2025 23:37:43 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53HNbh3h089391; Thu, 17 Apr 2025 23:37:43 GMT (envelope-from git) Date: Thu, 17 Apr 2025 23:37:43 GMT Message-Id: <202504172337.53HNbh3h089391@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: 1c316af14149 - stable/14 - fusefs: add a test for the max_read= mount option List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1c316af141497cedb82971abddbbc53ea5264cef Auto-Submitted: auto-generated The branch stable/14 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=1c316af141497cedb82971abddbbc53ea5264cef commit 1c316af141497cedb82971abddbbc53ea5264cef Author: Alan Somers AuthorDate: 2025-01-10 21:36:02 +0000 Commit: Alan Somers CommitDate: 2025-04-17 20:14:58 +0000 fusefs: add a test for the max_read= mount option When set, this limits the amount of data that the kernel will request of the server in any single read operation. The option has always been available in our fusefs implementation, but never covered by the test suite. MFC after: 2 weeks Sponsored by: ConnectWise (cherry picked from commit 9f31c47460412ab6ccae36a70ca019b47423ccec) --- tests/sys/fs/fusefs/mockfs.cc | 10 +++++++- tests/sys/fs/fusefs/mockfs.hh | 8 ++++++- tests/sys/fs/fusefs/read.cc | 53 +++++++++++++++++++++++++++++++++++++++++++ tests/sys/fs/fusefs/utils.cc | 2 +- tests/sys/fs/fusefs/utils.hh | 2 ++ 5 files changed, 72 insertions(+), 3 deletions(-) diff --git a/tests/sys/fs/fusefs/mockfs.cc b/tests/sys/fs/fusefs/mockfs.cc index 502f22a1e980..1fd2d5e358b1 100644 --- a/tests/sys/fs/fusefs/mockfs.cc +++ b/tests/sys/fs/fusefs/mockfs.cc @@ -416,7 +416,8 @@ void MockFS::debug_response(const mockfs_buf_out &out) { } } -MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, +MockFS::MockFS(int max_read, int max_readahead, bool allow_other, + bool default_permissions, bool push_symlinks_in, bool ro, enum poll_method pm, uint32_t flags, uint32_t kernel_minor_version, uint32_t max_write, bool async, bool noclusterr, unsigned time_gran, bool nointr, bool noatime, @@ -424,6 +425,7 @@ MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, : m_daemon_id(NULL), m_kernel_minor_version(kernel_minor_version), m_kq(pm == KQ ? kqueue() : -1), + m_maxread(max_read), m_maxreadahead(max_readahead), m_pid(getpid()), m_uniques(new std::unordered_set), @@ -470,6 +472,12 @@ MockFS::MockFS(int max_readahead, bool allow_other, bool default_permissions, build_iovec(&iov, &iovlen, "from", __DECONST(void *, "/dev/fuse"), -1); sprintf(fdstr, "%d", m_fuse_fd); build_iovec(&iov, &iovlen, "fd", fdstr, -1); + if (m_maxread > 0) { + char val[10]; + + snprintf(val, sizeof(val), "%d", m_maxread); + build_iovec(&iov, &iovlen, "max_read=", &val, -1); + } if (allow_other) { build_iovec(&iov, &iovlen, "allow_other", __DECONST(void*, &trueval), sizeof(bool)); diff --git a/tests/sys/fs/fusefs/mockfs.hh b/tests/sys/fs/fusefs/mockfs.hh index 38efcd049a61..1de77767d0c9 100644 --- a/tests/sys/fs/fusefs/mockfs.hh +++ b/tests/sys/fs/fusefs/mockfs.hh @@ -294,6 +294,12 @@ class MockFS { int m_kq; + /* + * If nonzero, the maximum size in bytes of a read that the kernel will + * send to the server. + */ + int m_maxread; + /* The max_readahead file system option */ uint32_t m_maxreadahead; @@ -355,7 +361,7 @@ class MockFS { bool m_quit; /* Create a new mockfs and mount it to a tempdir */ - MockFS(int max_readahead, bool allow_other, + MockFS(int max_read, int max_readahead, bool allow_other, bool default_permissions, bool push_symlinks_in, bool ro, enum poll_method pm, uint32_t flags, uint32_t kernel_minor_version, uint32_t max_write, bool async, diff --git a/tests/sys/fs/fusefs/read.cc b/tests/sys/fs/fusefs/read.cc index 9693428914e6..e9c79ba2ffda 100644 --- a/tests/sys/fs/fusefs/read.cc +++ b/tests/sys/fs/fusefs/read.cc @@ -111,6 +111,13 @@ class ReadAhead: public Read, } }; +class ReadMaxRead: public Read { + virtual void SetUp() { + m_maxread = 16384; + Read::SetUp(); + } +}; + class ReadNoatime: public Read { virtual void SetUp() { m_noatime = true; @@ -840,6 +847,52 @@ TEST_F(Read, mmap) leak(fd); } + +/* When max_read is set, large reads will be split up as necessary */ +TEST_F(ReadMaxRead, split) +{ + const char FULLPATH[] = "mountpoint/some_file.txt"; + const char RELPATH[] = "some_file.txt"; + uint64_t ino = 42; + int fd; + ssize_t bufsize = 65536; + ssize_t fragsize = bufsize / 4; + char *rbuf, *frag0, *frag1, *frag2, *frag3; + + rbuf = new char[bufsize](); + frag0 = new char[fragsize](); + frag1 = new char[fragsize](); + frag2 = new char[fragsize](); + frag3 = new char[fragsize](); + memset(frag0, '0', fragsize); + memset(frag1, '1', fragsize); + memset(frag2, '2', fragsize); + memset(frag3, '3', fragsize); + + expect_lookup(RELPATH, ino, bufsize); + expect_open(ino, 0, 1); + expect_read(ino, 0, fragsize, fragsize, frag0); + expect_read(ino, fragsize, fragsize, fragsize, frag1); + expect_read(ino, 2 * fragsize, fragsize, fragsize, frag2); + expect_read(ino, 3 * fragsize, fragsize, fragsize, frag3); + + fd = open(FULLPATH, O_RDONLY); + ASSERT_LE(0, fd) << strerror(errno); + + ASSERT_EQ(bufsize, read(fd, rbuf, bufsize)) << strerror(errno); + ASSERT_EQ(0, memcmp(rbuf, frag0, fragsize)); + ASSERT_EQ(0, memcmp(rbuf + fragsize, frag1, fragsize)); + ASSERT_EQ(0, memcmp(rbuf + 2 * fragsize, frag2, fragsize)); + ASSERT_EQ(0, memcmp(rbuf + 3 * fragsize, frag3, fragsize)); + + delete[] frag3; + delete[] frag2; + delete[] frag1; + delete[] frag0; + delete[] rbuf; + leak(fd); +} + /* * The kernel should not update the cached atime attribute during a read, if * MNT_NOATIME is used. diff --git a/tests/sys/fs/fusefs/utils.cc b/tests/sys/fs/fusefs/utils.cc index 831ded0c0815..d059221b2e55 100644 --- a/tests/sys/fs/fusefs/utils.cc +++ b/tests/sys/fs/fusefs/utils.cc @@ -154,7 +154,7 @@ void FuseTest::SetUp() { m_maxwrite = MIN(libfuse_max_write, (uint32_t)m_maxphys / 2); try { - m_mock = new MockFS(m_maxreadahead, m_allow_other, + m_mock = new MockFS(m_maxread, m_maxreadahead, m_allow_other, m_default_permissions, m_push_symlinks_in, m_ro, m_pm, m_init_flags, m_kernel_minor_version, m_maxwrite, m_async, m_noclusterr, m_time_gran, diff --git a/tests/sys/fs/fusefs/utils.hh b/tests/sys/fs/fusefs/utils.hh index 506e8a985212..9dd8dad6b5cc 100644 --- a/tests/sys/fs/fusefs/utils.hh +++ b/tests/sys/fs/fusefs/utils.hh @@ -55,6 +55,7 @@ bool is_unsafe_aio_enabled(void); extern const uint32_t libfuse_max_write; class FuseTest : public ::testing::Test { protected: + uint32_t m_maxread; uint32_t m_maxreadahead; uint32_t m_maxwrite; uint32_t m_init_flags; @@ -80,6 +81,7 @@ class FuseTest : public ::testing::Test { unsigned long m_maxphys; FuseTest(): + m_maxread(0), m_maxreadahead(0), m_maxwrite(0), m_init_flags(0), From nobody Thu Apr 17 23:37:44 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdvT52Xkcz5syZ9; Thu, 17 Apr 2025 23:37: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdvT42ZwFz3QF9; Thu, 17 Apr 2025 23:37:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jkbWOJ0ojkp6R4CVu5bVVrO8bgGRPUXOd8tKfs689cs=; b=a3SI1oKMlAyqfxHTqD1hJ0uccH8M/Qu9mR9ywptjF7KxVt/1dSI97sY/+Sv77e5U+ojUxv 3e/Kdoo2qk/VoyeEzUm3BKjbD81xrpJS5VSUGKH6RwJFkz6LG3wM1I1WsB6Hf8+tgGLSc3 5H34M0uw1Qa3DeBEOZvPbrbdWCfBwTmmo1mKFmmnkQDt36lpuj++nyZNq4JzHy/Jx2lUs0 PjnVaweSjCb+vLiYM9Hhe2E6X9fzvH53ATk/7JNcep/RHqfYZjI3jKGpiUAkIHLAzfW5JT qLjP7V+y1A4mbxMqh7590EPmvYaaicFgXgfPgG9asWzHkvEEoPlZ82i03eIk2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744933064; a=rsa-sha256; cv=none; b=idTt6S8GX3qzffeaFtbkSlmJaKpjmmB5fNMyS2xMdXgwb5EfGWJJ7IftObSAXpb4MHlEYr G/ADulDALlqdOxGmNkbLOBKIMIttou7asB8X2iCbQuQaYYP5Szg9x3UXtDe1hc5jKAeL8F J01FNLkr0k+HgdPdbvwnd0898W0ophyDOaL9RMF6an9mQdxYYM6MVXQvfIhxkVLeMs1a8S QZP+aySyCLrw8xsYT9VBQ/4TO0/ROz7uwLA4QzOe/es41nVp87rMLh9AVaRLvTGlDFbjYR rfld0Z7U5DXG1Zxw8QgHAhhmqi8Qj2nE3uZAN9Pad09ZATTPwfWMX5RruOUnVQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jkbWOJ0ojkp6R4CVu5bVVrO8bgGRPUXOd8tKfs689cs=; b=ycX5iwsy5sz/DoAj5xJUVJmi+MemoXbQ2AcTfJZzsyKa3OI4xZbWxzAMa8EAp/3X1OIYvb K6HH6/XaEwgKm3eOM0zD6Z0N89xDkFBnb/Ce7aL91PAyfzoXnXdQbXgz/NcF/PacNpeO7k wZ3v+72PVUZCisqmTxH+z6FjgsDZOEUqKf2EP5CzNvZsczDrh5iybi2PXmSlemXY+iBJKv +/10m4PSywo11iFYWtiOZsgKhvfikbXjGujg6RHCcpaaTvcTICNius49eVauIqma87pDFs 7RstQaV7Jcv0H4Km70QUVj+iQ+aR3qdtHKnT4tYu8eK4IkLVSyDQWn40kVRtQw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdvT424N7z17jQ; Thu, 17 Apr 2025 23:37:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53HNbiSl089428; Thu, 17 Apr 2025 23:37:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53HNbi35089425; Thu, 17 Apr 2025 23:37:44 GMT (envelope-from git) Date: Thu, 17 Apr 2025 23:37:44 GMT Message-Id: <202504172337.53HNbi35089425@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: f390c8149847 - stable/14 - fusefs: slightly better debugging in the tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f390c81498473c79e145f2a0aece209212e7c428 Auto-Submitted: auto-generated The branch stable/14 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=f390c81498473c79e145f2a0aece209212e7c428 commit f390c81498473c79e145f2a0aece209212e7c428 Author: Alan Somers AuthorDate: 2025-01-10 18:20:06 +0000 Commit: Alan Somers CommitDate: 2025-04-17 20:14:58 +0000 fusefs: slightly better debugging in the tests If the kernel rejects a response written by the server, print it. That would most likely be due to an error in the test logic. MFC after: 2 weeks Sponsored by: ConnectWise (cherry picked from commit 564c732b5c0221373d067c9a21da09b310e676ae) fusefs: fix the 32-bit build after 564c732b5c0 It's a printf format specifier again. MFC with: 564c732b5c0221373d067c9a21da09b310e676ae Sponsored by: ConnectWise (cherry picked from commit 52f7eb31ae84b0a02cd79c857c3201cb7b65c00f) --- tests/sys/fs/fusefs/mockfs.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/sys/fs/fusefs/mockfs.cc b/tests/sys/fs/fusefs/mockfs.cc index 1fd2d5e358b1..35ae6c207229 100644 --- a/tests/sys/fs/fusefs/mockfs.cc +++ b/tests/sys/fs/fusefs/mockfs.cc @@ -1034,6 +1034,10 @@ void MockFS::write_response(const mockfs_buf_out &out) { ASSERT_EQ(-1, r); ASSERT_EQ(out.expected_errno, errno) << strerror(errno); } else { + if (r <= 0 && errno == EINVAL) { + printf("Failed to write response. unique=%" PRIu64 + ":\n", out.header.unique); + } ASSERT_TRUE(r > 0 || errno == EAGAIN) << strerror(errno); } } From nobody Thu Apr 17 23:39:42 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdvWM2Gbfz5sytP; Thu, 17 Apr 2025 23:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdvWM1ZvVz3RSM; Thu, 17 Apr 2025 23:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CDW0/5dLF6u6X5ZqlhlTdLKlF9V8hNNaRvUOzpYpUVk=; b=B+O2jgmXpPpuGgVETPCjpA83d3zq/gt7yJXOo973U+A00xsyfTOtCmwUE1LYrvRYkUQwdb C1/jNnsagpgnIWHCzJsIKqq4mDxuM8ytJxEbR+EKGz7srL6cFqi6Q7qlMzEipfw8xvXtrB MGmGdj4n1mr314gMKB0qN0dXHYXPWwC7x6WauhWZkOog6udkKxShbxbWyJHzPQ5HRTQkpX Xoiz/sQMtcJxWN5+w37UFZ+eIBczV9a3YGH/QV/D6fGknPgQ6zqnLvw03AfVWFiJh+wgz+ 09o0BOpOBHIb1QM1w567umf3sT4wa2XapiFBLGYFrhqkQ+QEwWHJ4NRTBZvzng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744933183; a=rsa-sha256; cv=none; b=kRNrZVzYdurxSRbgnMC69Eg8sL7kdDvvo/RfBFUk2NBxv8qFT1DQsqW0/WqD2l5Wv9otQU XtXPdmEStZAy8LcjpYlmggCgKja67GVksDatD2Cna8bNHo+wvBm90DsDUkP0+I+j1aNwQR zddrqrPJve8r9WmP5WGH3m5+XryUeACOxKXOVpXR5tKgNjaIe0CWkczEmMqZsxwn+McCEQ NqPhX3l/OeCfHcioC4JkrPsq4MV8SpOfszh/Yrq7mJzrO2SfBvjtaw66PgYaewtey59l9j yJTp0g+7eOCauEwh0yphDHEdcY0bky1cZJEN/0XtpBa2q6sD66kl4AcLFj5SDw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CDW0/5dLF6u6X5ZqlhlTdLKlF9V8hNNaRvUOzpYpUVk=; b=ErC5nz4wBwf7f9yTdICXyt1AvduV1fUZa5sIXCPgYr6qSra/7RwaPr4vBJkpqNNecpSHLG hbugrkCdY79lcjYQPjLMdY7pZTb+UAVU0ECMZyqVAJjwtw4gT0JaPQ8z0ZjnUqyAuPPIC6 gYJIjcry4OrpmsO3NaypUi4QWqugSPDDAM/1rslLgHI+qsn3b22s4BFVFA0Szhy4w7Tblm T11GWGRbUyXnQVgOYuVe3VGa/E9lDj5C40PyDVm19z+yGUl5o8DyUeqLlfaSJK5kb7ld+M D3/onVWdk9i+RhtkavwCCmz12n+tqlwdx2FErvXrTIVkNR1DRQaOvGl5Fxnjuw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdvWM0Yd0z18Cp; Thu, 17 Apr 2025 23:39:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53HNdguJ090132; Thu, 17 Apr 2025 23:39:42 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53HNdgOP090129; Thu, 17 Apr 2025 23:39:42 GMT (envelope-from git) Date: Thu, 17 Apr 2025 23:39:42 GMT Message-Id: <202504172339.53HNdgOP090129@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: f8b102d9bb63 - stable/14 - ctld: correctly parse LUN size on 32-bit arches List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f8b102d9bb63edbc4fd63435800147881226cee6 Auto-Submitted: auto-generated The branch stable/14 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=f8b102d9bb63edbc4fd63435800147881226cee6 commit f8b102d9bb63edbc4fd63435800147881226cee6 Author: Alan Somers AuthorDate: 2025-01-17 17:36:08 +0000 Commit: Alan Somers CommitDate: 2025-04-17 23:39:08 +0000 ctld: correctly parse LUN size on 32-bit arches Disk offset values must always be 64-bit, not size_t. PR: 214874 Submitted by: pprocacci@gmail.com Event: January 2025 Bug-busting session (cherry picked from commit f26fe2c6669d56621ac85f5279aa85503cbf59bc) --- usr.sbin/ctld/ctld.c | 2 +- usr.sbin/ctld/ctld.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/ctld/ctld.c b/usr.sbin/ctld/ctld.c index 9be0f6975437..af8874bd00b8 100644 --- a/usr.sbin/ctld/ctld.c +++ b/usr.sbin/ctld/ctld.c @@ -1569,7 +1569,7 @@ lun_set_serial(struct lun *lun, const char *value) } void -lun_set_size(struct lun *lun, size_t value) +lun_set_size(struct lun *lun, int64_t value) { lun->l_size = value; diff --git a/usr.sbin/ctld/ctld.h b/usr.sbin/ctld/ctld.h index e1bab1a8e3b8..3f4b653d6896 100644 --- a/usr.sbin/ctld/ctld.h +++ b/usr.sbin/ctld/ctld.h @@ -349,7 +349,7 @@ void lun_set_device_id(struct lun *lun, const char *value); void lun_set_path(struct lun *lun, const char *value); void lun_set_scsiname(struct lun *lun, const char *value); void lun_set_serial(struct lun *lun, const char *value); -void lun_set_size(struct lun *lun, size_t value); +void lun_set_size(struct lun *lun, int64_t value); void lun_set_ctl_lun(struct lun *lun, uint32_t value); struct option *option_new(struct options *os, From nobody Thu Apr 17 23:40:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZdvWq1D0Hz5sytQ; Thu, 17 Apr 2025 23:40:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZdvWp4XCKz3RVF; Thu, 17 Apr 2025 23:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f2Tpc6JUD5ORJJ8XXlrrHG2rO4dWk8f8XmGToN3R89A=; b=E6mSpTQreEsdJBTuDi1wWnokuofSzXO1aGCe+ca8Jh40+HsWSfb7vphus+QvoiAUruAVfI kE/Whb29OfIwBb7fM8iHzX1K2Mqq3EIR4z7QbdWAOWoUeU64IFbZwK33CIZMIUqRzemi30 hWxeEm4pOSy6gVP+4wFKakfg+VZDmyaD76EVsCt7N2VybzLuZbUa47QIGd6Ol+y8elQcR6 3bXtr+sOk8uXaqcinLwtqlqyM15m+KVX9vuJ2zDSn6sIZw6d1wQVajGmphjkbwzotfLYh1 hMwIkb9sPAeLzutS97pago2Hgou9avxzS9ScDfLJ0/rjV/xb1WezYeJ717T7Sw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744933206; a=rsa-sha256; cv=none; b=VtgCVLzSXhHPfgy/v7j/rzQPvuAdrMOPZ6Zk1WLUkyTTOv00kDrm0TMz/xL7UeaCPCNNmH t+gTMIH9jeiWY465Dq4qs8TcsR94YpRNpYlNa4ll/ipgMsmy/F3NjXytwOZKl8Xw4GzmKE xTIpWxJH772IWx8KrcATezl+csLJDYi9QndTMkuzW4i9JnYAb8Ylisgs+NBT0I1iC+o9ab Mtzws1WA0GKDMpSmqLiANlrZUVy3oOuLg+YAJfc17XJl+esx9mAfXs5w+qJyYgWcUC5/tK +JsBlVDSbvdyZz81emH39j0pxLFH8ylBbnKZB1SFcmCsMP6ES/vcCU1p9ih2mg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744933206; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f2Tpc6JUD5ORJJ8XXlrrHG2rO4dWk8f8XmGToN3R89A=; b=t1kioSFALGpINNo91yEojWPJ9dDCpe7hULvnME1nEKSDt4gx3loi6oTwsoNLl20KTy2M2i 04vjwcPHVOGHpTe9ySvYGJSh0ZeIJfryy0wz+EhQEEP0TYe6TwTnj7SuVHR78G9j1H9atp wTbNpEmea4T4/9hfnavMh5inMrSTcOqM8GSo/J0g1hPedNCszm8HLUVC8BPovXWwjzpvKX i57jyE2D7IRwQn3N0OxGM3yzqJJom9cSz3E2+Ry5r2ZVo/67Z/PLTWqwK6WftmLVsY5/xL XfDIm0M9Y1Id5V0H85F2mufOyBewa0lA48hjJ/wSFc5Uep+VIVV+dL+CrY8gIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZdvWp47hXz17s3; Thu, 17 Apr 2025 23:40:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53HNe6hT093316; Thu, 17 Apr 2025 23:40:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53HNe6Sj093313; Thu, 17 Apr 2025 23:40:06 GMT (envelope-from git) Date: Thu, 17 Apr 2025 23:40:06 GMT Message-Id: <202504172340.53HNe6Sj093313@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alan Somers Subject: git: 2a88aad6286d - stable/14 - witness.4: correct name of the debug.witness.witness_count sysctl List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: asomers X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2a88aad6286d3fede526a0303ccb44c8ef5712d9 Auto-Submitted: auto-generated The branch stable/14 has been updated by asomers: URL: https://cgit.FreeBSD.org/src/commit/?id=2a88aad6286d3fede526a0303ccb44c8ef5712d9 commit 2a88aad6286d3fede526a0303ccb44c8ef5712d9 Author: Alan Somers AuthorDate: 2025-03-05 17:35:54 +0000 Commit: Alan Somers CommitDate: 2025-04-17 23:39:54 +0000 witness.4: correct name of the debug.witness.witness_count sysctl Sponsored by: ConnectWise (cherry picked from commit 202a2be0941edeb2652d64a3dbb1894b8867f3ac) --- share/man/man4/witness.4 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/share/man/man4/witness.4 b/share/man/man4/witness.4 index ab23eb49d9fe..f382a9378727 100644 --- a/share/man/man4/witness.4 +++ b/share/man/man4/witness.4 @@ -21,7 +21,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 18, 2015 +.Dd March 5, 2025 .Dt WITNESS 4 .Os .Sh NAME @@ -62,12 +62,12 @@ kernel option controls the maximum number of .Nm entries that are tracked in the kernel. The maximum number of entries can be queried via the -.Va debug.witness.count +.Va debug.witness.witness_count sysctl. It can also be set from the .Xr loader 8 via the -.Va debug.witness.count +.Va debug.witness.witness_count environment variable. .Pp The From nobody Fri Apr 18 14:00:17 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfGcK6s3Gz5srRH; Fri, 18 Apr 2025 14:00: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfGcK4KSvz42TX; Fri, 18 Apr 2025 14:00:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984817; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RDep/4M2PfnHdIYID454TnA1clv0Mi5T5zvCMC+hlIE=; b=XIR5owPrnD1WuohO16wPY8kOl0RRFKA31LcTW8C3CJCS+0hZja2SbW1IDn8yB3/0p6hRh4 +3JGCyr5K/iKdWEeQ26EmcrzHxfzeYBK9K4FrkgdPDSUsglVFH3Dc6QrLclRC2mqCc5m77 70sn54U1c37jaojsfGyC+YaahoWxlxlpWKRzhLhJRprsKVS+rHnxSQRfW57fKZfWkgvh06 Hj9uHU2AkG/TB/qoSGyuhAuvIvCqiJlsOZ+XPVyS0UVsChPkvJ6qmj/S0wYgSb0m9gEDTJ l86PtsLESTrU0cAc91hB6wCCbdowZ6U5g2PN0OAhqOGOFiwGEVDVau18cH1Huw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744984817; a=rsa-sha256; cv=none; b=sKXcVxqRh4L+5u3y+BEoFiF78q5MyVfjYPgQ8SekPOZHLYRahpWt5mZOgi2LSkU2hRKHOO cusspov7BldMRY7Gvrfrn3XnIEKHwORHNTkND6O6v299OB9ZWZJrMIhkauGBTMHaRPlPGF 3zqYcsm41scm0YJbMjNA1+zliQh/Mj+XgbJdmXR+bsY0K9n/IABae3aXwUe8Ip6w5kUkxO NdeMnKnYvHUyhi8nGxn+RjUAf2GzKbNz4Z2NtoK//9MZXJcsGBTyrON6+q39FuAOTXxyEA hu7H1OVN8rgT7gX3m3RmWaUTWyorkUnGXZbz2ky9XrpxtLKBLH+o/LRIq/zzKg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984817; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RDep/4M2PfnHdIYID454TnA1clv0Mi5T5zvCMC+hlIE=; b=bSPHA/UAXWtLf42LZT/7x1OLSD6Iekds7bWgtKTGMYZMpvNDoh8xK9xH5vKqF+p1So0Jxi CenRBg6P9crEe36R6rz73f72rXyDxE12kv7dJUF4qKLsuElMIAW6o4XmezvO4qJJMFTA+L 4pmp+uLOskWUCuNV8oVZyAxLQKTN+cqa9XPj71xCdu+q4uZIXuVD0u3V0VwlOnImVxRi/Q 0+ZWJKXFNvTgLo1ZK1FYHuQbr7tFhFs54+hI2ycDJlhCWrhCRha5gePzfDhQKT7NzeF2f6 166AssVUGRvYR3SPWBpnKvuW2LLAW7I3OaYg/YMOc+mHHAPhevn2bcL2exnNlw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfGcK3xBfzdCJ; Fri, 18 Apr 2025 14:00:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IE0Hhh025186; Fri, 18 Apr 2025 14:00:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IE0HlV025177; Fri, 18 Apr 2025 14:00:17 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:00:17 GMT Message-Id: <202504181400.53IE0HlV025177@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: 890309a67b50 - stable/14 - gve: Allocate qpl per ring at ring allocation time List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 890309a67b50c3b87f12e33bcc157e0757497ad3 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=890309a67b50c3b87f12e33bcc157e0757497ad3 commit 890309a67b50c3b87f12e33bcc157e0757497ad3 Author: Vee Agarwal AuthorDate: 2025-04-04 22:53:31 +0000 Commit: Mark Johnston CommitDate: 2025-04-18 13:52:07 +0000 gve: Allocate qpl per ring at ring allocation time Every tx and rx ring has its own queue-page-list (QPL) that serves as the bounce buffer. Previously we were allocating QPLs for all queues before the queues themselves were allocated and later associating a QPL with a queue. This is avoidable complexity: it is much more natural for each queue to allocate and free its own QPL. Signed-off-by: Vee Agarwal Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49426 (cherry picked from commit f8ed8382daf4b9a97056b1dba4fe4e5cb4f7485c) --- sys/dev/gve/gve.h | 6 +- sys/dev/gve/gve_main.c | 8 --- sys/dev/gve/gve_qpl.c | 174 +++++++++++++++++------------------------------ sys/dev/gve/gve_rx.c | 15 +++- sys/dev/gve/gve_rx_dqo.c | 15 +++- sys/dev/gve/gve_tx.c | 12 +++- sys/dev/gve/gve_tx_dqo.c | 16 ++++- 7 files changed, 114 insertions(+), 132 deletions(-) diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h index 39965c8669cf..bf15eb3ccabc 100644 --- a/sys/dev/gve/gve.h +++ b/sys/dev/gve/gve.h @@ -542,7 +542,6 @@ struct gve_priv { struct gve_irq_db *irq_db_indices; enum gve_queue_format queue_format; - struct gve_queue_page_list *qpls; struct gve_queue_config tx_cfg; struct gve_queue_config rx_cfg; uint32_t num_queues; @@ -629,8 +628,9 @@ void gve_db_bar_write_4(struct gve_priv *priv, bus_size_t offset, uint32_t val); void gve_db_bar_dqo_write_4(struct gve_priv *priv, bus_size_t offset, uint32_t val); /* QPL (Queue Page List) functions defined in gve_qpl.c */ -int gve_alloc_qpls(struct gve_priv *priv); -void gve_free_qpls(struct gve_priv *priv); +struct gve_queue_page_list *gve_alloc_qpl(struct gve_priv *priv, uint32_t id, + int npages, bool single_kva); +void gve_free_qpl(struct gve_priv *priv, struct gve_queue_page_list *qpl); int gve_register_qpls(struct gve_priv *priv); int gve_unregister_qpls(struct gve_priv *priv); void gve_mextadd_free(struct mbuf *mbuf); diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index 8e764f9660d7..72e7fc2e3f89 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -482,8 +482,6 @@ gve_free_rings(struct gve_priv *priv) gve_free_irqs(priv); gve_free_tx_rings(priv); gve_free_rx_rings(priv); - if (gve_is_qpl(priv)) - gve_free_qpls(priv); } static int @@ -491,12 +489,6 @@ gve_alloc_rings(struct gve_priv *priv) { int err; - if (gve_is_qpl(priv)) { - err = gve_alloc_qpls(priv); - if (err != 0) - goto abort; - } - err = gve_alloc_rx_rings(priv); if (err != 0) goto abort; diff --git a/sys/dev/gve/gve_qpl.c b/sys/dev/gve/gve_qpl.c index 1fcc2b5365c9..0e7098dcd4a1 100644 --- a/sys/dev/gve/gve_qpl.c +++ b/sys/dev/gve/gve_qpl.c @@ -36,28 +36,9 @@ static MALLOC_DEFINE(M_GVE_QPL, "gve qpl", "gve qpl allocations"); -static uint32_t -gve_num_tx_qpls(struct gve_priv *priv) -{ - if (!gve_is_qpl(priv)) - return (0); - - return (priv->tx_cfg.max_queues); -} - -static uint32_t -gve_num_rx_qpls(struct gve_priv *priv) -{ - if (!gve_is_qpl(priv)) - return (0); - - return (priv->rx_cfg.max_queues); -} - -static void -gve_free_qpl(struct gve_priv *priv, uint32_t id) +void +gve_free_qpl(struct gve_priv *priv, struct gve_queue_page_list *qpl) { - struct gve_queue_page_list *qpl = &priv->qpls[id]; int i; for (i = 0; i < qpl->num_dmas; i++) { @@ -92,12 +73,14 @@ gve_free_qpl(struct gve_priv *priv, uint32_t id) if (qpl->dmas != NULL) free(qpl->dmas, M_GVE_QPL); + + free(qpl, M_GVE_QPL); } -static int +struct gve_queue_page_list * gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) { - struct gve_queue_page_list *qpl = &priv->qpls[id]; + struct gve_queue_page_list *qpl; int err; int i; @@ -105,9 +88,12 @@ gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) device_printf(priv->dev, "Reached max number of registered pages %ju > %ju\n", (uintmax_t)npages + priv->num_registered_pages, (uintmax_t)priv->max_registered_pages); - return (EINVAL); + return (NULL); } + qpl = malloc(sizeof(struct gve_queue_page_list), M_GVE_QPL, + M_WAITOK | M_ZERO); + qpl->id = id; qpl->num_pages = 0; qpl->num_dmas = 0; @@ -163,126 +149,90 @@ gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) priv->num_registered_pages++; } - return (0); + return (qpl); abort: - gve_free_qpl(priv, id); - return (err); + gve_free_qpl(priv, qpl); + return (NULL); } -void -gve_free_qpls(struct gve_priv *priv) -{ - int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); - int i; - - if (num_qpls == 0) - return; - - if (priv->qpls != NULL) { - for (i = 0; i < num_qpls; i++) - gve_free_qpl(priv, i); - free(priv->qpls, M_GVE_QPL); - priv->qpls = NULL; - } -} - -int gve_alloc_qpls(struct gve_priv *priv) +int +gve_register_qpls(struct gve_priv *priv) { - int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); - int num_pages; + struct gve_ring_com *com; + struct gve_tx_ring *tx; + struct gve_rx_ring *rx; int err; int i; - if (num_qpls == 0) + if (gve_get_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK)) return (0); - priv->qpls = malloc(num_qpls * sizeof(*priv->qpls), M_GVE_QPL, - M_WAITOK | M_ZERO); - - num_pages = gve_is_gqi(priv) ? - priv->tx_desc_cnt / GVE_QPL_DIVISOR : - GVE_TX_NUM_QPL_PAGES_DQO; - for (i = 0; i < gve_num_tx_qpls(priv); i++) { - err = gve_alloc_qpl(priv, i, num_pages, - /*single_kva=*/true); - if (err != 0) - goto abort; - } - - num_pages = gve_is_gqi(priv) ? priv->rx_desc_cnt : GVE_RX_NUM_QPL_PAGES_DQO; - for (; i < num_qpls; i++) { - err = gve_alloc_qpl(priv, i, num_pages, /*single_kva=*/false); - if (err != 0) - goto abort; - } - - return (0); - -abort: - gve_free_qpls(priv); - return (err); -} - -static int -gve_unregister_n_qpls(struct gve_priv *priv, int n) -{ - int err; - int i; - - for (i = 0; i < n; i++) { - err = gve_adminq_unregister_page_list(priv, priv->qpls[i].id); + /* Register TX qpls */ + for (i = 0; i < priv->tx_cfg.num_queues; i++) { + tx = &priv->tx[i]; + com = &tx->com; + err = gve_adminq_register_page_list(priv, com->qpl); if (err != 0) { device_printf(priv->dev, - "Failed to unregister qpl %d, err: %d\n", - priv->qpls[i].id, err); + "Failed to register qpl %d, err: %d\n", + com->qpl->id, err); + /* Caller schedules a reset when this fails */ + return (err); } } - if (err != 0) - return (err); - - return (0); -} - -int -gve_register_qpls(struct gve_priv *priv) -{ - int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); - int err; - int i; - - if (gve_get_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK)) - return (0); - - for (i = 0; i < num_qpls; i++) { - err = gve_adminq_register_page_list(priv, &priv->qpls[i]); + /* Register RX qpls */ + for (i = 0; i < priv->rx_cfg.num_queues; i++) { + rx = &priv->rx[i]; + com = &rx->com; + err = gve_adminq_register_page_list(priv, com->qpl); if (err != 0) { device_printf(priv->dev, "Failed to register qpl %d, err: %d\n", - priv->qpls[i].id, err); - goto abort; + com->qpl->id, err); + /* Caller schedules a reset when this fails */ + return (err); } } - gve_set_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK); return (0); - -abort: - gve_unregister_n_qpls(priv, i); - return (err); } int gve_unregister_qpls(struct gve_priv *priv) { - int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); int err; + int i; + struct gve_ring_com *com; + struct gve_tx_ring *tx; + struct gve_rx_ring *rx; if (!gve_get_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK)) return (0); - err = gve_unregister_n_qpls(priv, num_qpls); + for (i = 0; i < priv->tx_cfg.num_queues; i++) { + tx = &priv->tx[i]; + com = &tx->com; + err = gve_adminq_unregister_page_list(priv, com->qpl->id); + if (err != 0) { + device_printf(priv->dev, + "Failed to unregister qpl %d, err: %d\n", + com->qpl->id, err); + } + } + + for (i = 0; i < priv->rx_cfg.num_queues; i++) { + rx = &priv->rx[i]; + com = &rx->com; + err = gve_adminq_unregister_page_list(priv, com->qpl->id); + if (err != 0) { + device_printf(priv->dev, + "Failed to unregister qpl %d, err: %d\n", + com->qpl->id, err); + } + } + if (err != 0) return (err); diff --git a/sys/dev/gve/gve_rx.c b/sys/dev/gve/gve_rx.c index e540ad6f4c11..e1a228c0e69c 100644 --- a/sys/dev/gve/gve_rx.c +++ b/sys/dev/gve/gve_rx.c @@ -36,6 +36,7 @@ static void gve_rx_free_ring_gqi(struct gve_priv *priv, int i) { struct gve_rx_ring *rx = &priv->rx[i]; + struct gve_ring_com *com = &rx->com; if (rx->page_info != NULL) { free(rx->page_info, M_GVE); @@ -51,6 +52,11 @@ gve_rx_free_ring_gqi(struct gve_priv *priv, int i) gve_dma_free_coherent(&rx->desc_ring_mem); rx->desc_ring = NULL; } + + if (com->qpl != NULL) { + gve_free_qpl(priv, com->qpl); + com->qpl = NULL; + } } static void @@ -113,10 +119,13 @@ gve_rx_alloc_ring_gqi(struct gve_priv *priv, int i) rx->mask = priv->rx_pages_per_qpl - 1; rx->desc_ring = rx->desc_ring_mem.cpu_addr; - com->qpl = &priv->qpls[priv->tx_cfg.max_queues + i]; + com->qpl = gve_alloc_qpl(priv, i + priv->tx_cfg.max_queues, + priv->rx_desc_cnt, /*single_kva=*/false); if (com->qpl == NULL) { - device_printf(priv->dev, "No QPL left for rx ring %d", i); - return (ENOMEM); + device_printf(priv->dev, + "Failed to alloc QPL for rx ring %d", i); + err = ENOMEM; + goto abort; } rx->page_info = malloc(priv->rx_desc_cnt * sizeof(*rx->page_info), diff --git a/sys/dev/gve/gve_rx_dqo.c b/sys/dev/gve/gve_rx_dqo.c index 6ce9ddd887d0..a499ac9d3c6a 100644 --- a/sys/dev/gve/gve_rx_dqo.c +++ b/sys/dev/gve/gve_rx_dqo.c @@ -58,6 +58,7 @@ void gve_rx_free_ring_dqo(struct gve_priv *priv, int i) { struct gve_rx_ring *rx = &priv->rx[i]; + struct gve_ring_com *com = &rx->com; int j; if (rx->dqo.compl_ring != NULL) { @@ -86,6 +87,11 @@ gve_rx_free_ring_dqo(struct gve_priv *priv, int i) if (!gve_is_qpl(priv) && rx->dqo.buf_dmatag) bus_dma_tag_destroy(rx->dqo.buf_dmatag); + + if (com->qpl != NULL) { + gve_free_qpl(priv, com->qpl); + com->qpl = NULL; + } } int @@ -123,10 +129,13 @@ gve_rx_alloc_ring_dqo(struct gve_priv *priv, int i) M_GVE, M_WAITOK | M_ZERO); if (gve_is_qpl(priv)) { - rx->com.qpl = &priv->qpls[priv->tx_cfg.max_queues + i]; + rx->com.qpl = gve_alloc_qpl(priv, i + priv->tx_cfg.max_queues, + GVE_RX_NUM_QPL_PAGES_DQO, /*single_kva=*/false); if (rx->com.qpl == NULL) { - device_printf(priv->dev, "No QPL left for rx ring %d", i); - return (ENOMEM); + device_printf(priv->dev, + "Failed to alloc QPL for rx ring %d", i); + err = ENOMEM; + goto abort; } return (0); } diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c index 04dde4f1a79b..e594c66149bc 100644 --- a/sys/dev/gve/gve_tx.c +++ b/sys/dev/gve/gve_tx.c @@ -52,6 +52,7 @@ static void gve_tx_free_ring_gqi(struct gve_priv *priv, int i) { struct gve_tx_ring *tx = &priv->tx[i]; + struct gve_ring_com *com = &tx->com; if (tx->desc_ring != NULL) { gve_dma_free_coherent(&tx->desc_ring_mem); @@ -62,6 +63,11 @@ gve_tx_free_ring_gqi(struct gve_priv *priv, int i) free(tx->info, M_GVE); tx->info = NULL; } + + if (com->qpl != NULL) { + gve_free_qpl(priv, com->qpl); + com->qpl = NULL; + } } static void @@ -109,9 +115,11 @@ gve_tx_alloc_ring_gqi(struct gve_priv *priv, int i) } tx->desc_ring = tx->desc_ring_mem.cpu_addr; - com->qpl = &priv->qpls[i]; + com->qpl = gve_alloc_qpl(priv, i, priv->tx_desc_cnt / GVE_QPL_DIVISOR, + /*single_kva=*/true); if (com->qpl == NULL) { - device_printf(priv->dev, "No QPL left for tx ring %d\n", i); + device_printf(priv->dev, + "Failed to alloc QPL for tx ring %d\n", i); err = ENOMEM; goto abort; } diff --git a/sys/dev/gve/gve_tx_dqo.c b/sys/dev/gve/gve_tx_dqo.c index bf314ef95173..7361d47b8ce6 100644 --- a/sys/dev/gve/gve_tx_dqo.c +++ b/sys/dev/gve/gve_tx_dqo.c @@ -75,6 +75,7 @@ void gve_tx_free_ring_dqo(struct gve_priv *priv, int i) { struct gve_tx_ring *tx = &priv->tx[i]; + struct gve_ring_com *com = &tx->com; int j; if (tx->dqo.desc_ring != NULL) { @@ -109,6 +110,11 @@ gve_tx_free_ring_dqo(struct gve_priv *priv, int i) free(tx->dqo.qpl_bufs, M_GVE); tx->dqo.qpl_bufs = NULL; } + + if (com->qpl != NULL) { + gve_free_qpl(priv, com->qpl); + com->qpl = NULL; + } } static int @@ -210,7 +216,15 @@ gve_tx_alloc_ring_dqo(struct gve_priv *priv, int i) if (gve_is_qpl(priv)) { int qpl_buf_cnt; - tx->com.qpl = &priv->qpls[i]; + tx->com.qpl = gve_alloc_qpl(priv, i, GVE_TX_NUM_QPL_PAGES_DQO, + /*single_kva*/false); + if (tx->com.qpl == NULL) { + device_printf(priv->dev, + "Failed to alloc QPL for tx ring %d", i); + err = ENOMEM; + goto abort; + } + qpl_buf_cnt = GVE_TX_BUFS_PER_PAGE_DQO * tx->com.qpl->num_pages; From nobody Fri Apr 18 14:00:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfGcL6CWnz5srLZ; Fri, 18 Apr 2025 14:00:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfGcL5KhKz42K8; Fri, 18 Apr 2025 14:00:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984818; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F50GeY2TpR1XDnXmeKWuYmUkyndEr1U3VAkQUQBE+j8=; b=GVusZZ23XoGyzlKddzZhV+5ORUzwGXILqy85j7UdQgs1lH4z3eSMvZexQKpCnuc1AHwZmo +t9ReO18/5fwHL+Fm2Ngru/I41DTBAKO+CK8Fuejn9z8G+SsQxRmtgbt/CUFwU/QRZNkrA DISGlviChwpPo7Rwxm1EOMz9rbtatXJAgdA0EOOoemdfWmB0SqQZnR1yBfMSPe9uoLAhWi yk8qV2CUzTlsAwUyhQPwySxftoTCzG0OUzgPduKY0diud3qJsG1kwQUjlL1KJUCjeD2O/H 6VmO1PGd0e7NwmzcSmgEZmajtN7yrhsUpwnk5I+7jtXLEP0W3vT4Oc4GGoRkNg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744984818; a=rsa-sha256; cv=none; b=G/eCcPrLCG1Ud3DOEeZkt5nhcfEvjpLlmTzblmGnx9/ayhxhPj1+bFY3HZ9bczEZW6hWL6 4+OztpwlHwe2ccGPrmpvOGUodLLJYy8O9gBlFWM7LuSqrEoa/tSLaG1HkcGFrKtU3fy+Wm F2ez05QcvCEMSTSc4zSZN9uJu0GKk7t4owKwqZ9eDv/jp3hjiTuSZIdwU9IZUW+r/o0NGg DXHkd5Co1kF6XnRCcb7FE3Llz83wzdGejx0rSIywMaSC9PRm7/nLovy7HuFRiFLq1cM66M h1tnevwUsDg0bxUtUoyY7Qb6/DV/xdK/1XhgYMF/nPijCYLpv8wLZgbI9J8ZPQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984818; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=F50GeY2TpR1XDnXmeKWuYmUkyndEr1U3VAkQUQBE+j8=; b=XWOAYurJiuANbqVv7MfEMkUCbtOPnXxRvPnVD/V4KsE344IwU2hjZRnvczeGIwjX8biyja Rm2780BRpQT6bszxa/VHRsVPFqBIA+M35wBnZrsfsKlSjLpmpoFJxfhsd+cnnOaPmthYtR 3qSBLsbEk03ZcaTgH1l29andAG9bsRTn9Np7s1eLuC1jkBx4a359QK65VKE4/vOMPiZ8Ax SIAHv1z86akvn1PUwxGkeKKEfzhjbut1SpYLRp7IA4oss45XqDXytNbpwl22U3cV1emsnB EP+hd7h5Ks/dWhmJOgJ3o7NiWp+PNt+EdtzVFhxSaSI3WRYvrRnKAKGju7Uc6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfGcL4wKLzdCK; Fri, 18 Apr 2025 14:00:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IE0IWo025752; Fri, 18 Apr 2025 14:00:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IE0IBP025747; Fri, 18 Apr 2025 14:00:18 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:00:18 GMT Message-Id: <202504181400.53IE0IBP025747@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: ecc250c60049 - stable/14 - gve: Add feature to adjust RX/TX queue counts List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: ecc250c60049f0fbf80fb0d49db1fd5a70cf198f Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ecc250c60049f0fbf80fb0d49db1fd5a70cf198f commit ecc250c60049f0fbf80fb0d49db1fd5a70cf198f Author: Vee Agarwal AuthorDate: 2025-04-04 22:53:32 +0000 Commit: Mark Johnston CommitDate: 2025-04-18 13:52:09 +0000 gve: Add feature to adjust RX/TX queue counts This change introduces new sysctl handlers that allow the user to change RX/TX queue counts. As before, the default queue counts will be the max value the device can support. When chaning queue counts, the interface turns down momentarily while allocating/freeing resources as necessary. Signed-off-by: Vee Agarwal Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49427 (cherry picked from commit e0464f74d5579e1538ce741b0a15e6604dbc53c4) --- share/man/man4/gve.4 | 19 +++++++++++ sys/dev/gve/gve.h | 10 +++--- sys/dev/gve/gve_main.c | 88 +++++++++++++++++++++++++++++++++++++++++++++--- sys/dev/gve/gve_rx.c | 20 ++++------- sys/dev/gve/gve_sysctl.c | 83 +++++++++++++++++++++++++++++++++++++++++++++ sys/dev/gve/gve_tx.c | 21 ++++-------- sys/dev/gve/gve_utils.c | 6 ++-- 7 files changed, 208 insertions(+), 39 deletions(-) diff --git a/share/man/man4/gve.4 b/share/man/man4/gve.4 index 8c2b3cabbd38..297f1071b4cd 100644 --- a/share/man/man4/gve.4 +++ b/share/man/man4/gve.4 @@ -79,6 +79,13 @@ binds to a single PCI device ID presented by gVNIC: .It 0x1AE0:0x0042 .El +.Sh EXAMPLES +.Pp +Change the TX queue count to 4 for the gve0 interface: +.D1 sysctl dev.gve.0.num_tx_queues=4 +.Pp +Change the RX queue count to 4 for the gve0 interface: +.D1 sysctl dev.gve.0.num_rx_queues=4 .Sh DIAGNOSTICS The following messages are recorded during driver initialization: .Bl -diag @@ -211,6 +218,18 @@ The default value is 0, which means hardware LRO is enabled by default. The software LRO stack in the kernel is always used. This sysctl variable needs to be set before loading the driver, using .Xr loader.conf 5 . +.It Va dev.gve.X.num_rx_queues and dev.gve.X.num_tx_queues +Run-time tunables that represent the number of currently used RX/TX queues. +The default value is the max number of RX/TX queues the device can support. +.Pp +This call turns down the interface while setting up the new queues, +which may potentially cause any new packets to be dropped. +This call can fail if the system is not able to provide the driver with enough resources. +In that situation, the driver will revert to the previous number of RX/TX queues. +If this also fails, a device reset will be triggered. +.Pp +Note: sysctl nodes for queue stats remain available even if a queue is removed. +.Pp .El .Sh LIMITATIONS .Nm diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h index bf15eb3ccabc..2b49ee5ad45a 100644 --- a/sys/dev/gve/gve.h +++ b/sys/dev/gve/gve.h @@ -620,6 +620,8 @@ gve_is_qpl(struct gve_priv *priv) /* Defined in gve_main.c */ void gve_schedule_reset(struct gve_priv *priv); +int gve_adjust_tx_queues(struct gve_priv *priv, uint16_t new_queue_cnt); +int gve_adjust_rx_queues(struct gve_priv *priv, uint16_t new_queue_cnt); /* Register access functions defined in gve_utils.c */ uint32_t gve_reg_bar_read_4(struct gve_priv *priv, bus_size_t offset); @@ -636,8 +638,8 @@ int gve_unregister_qpls(struct gve_priv *priv); void gve_mextadd_free(struct mbuf *mbuf); /* TX functions defined in gve_tx.c */ -int gve_alloc_tx_rings(struct gve_priv *priv); -void gve_free_tx_rings(struct gve_priv *priv); +int gve_alloc_tx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx); +void gve_free_tx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx); int gve_create_tx_rings(struct gve_priv *priv); int gve_destroy_tx_rings(struct gve_priv *priv); int gve_tx_intr(void *arg); @@ -656,8 +658,8 @@ int gve_xmit_dqo_qpl(struct gve_tx_ring *tx, struct mbuf *mbuf); void gve_tx_cleanup_tq_dqo(void *arg, int pending); /* RX functions defined in gve_rx.c */ -int gve_alloc_rx_rings(struct gve_priv *priv); -void gve_free_rx_rings(struct gve_priv *priv); +int gve_alloc_rx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx); +void gve_free_rx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx); int gve_create_rx_rings(struct gve_priv *priv); int gve_destroy_rx_rings(struct gve_priv *priv); int gve_rx_intr(void *arg); diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index 72e7fc2e3f89..39556b85f493 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -192,6 +192,74 @@ reset: gve_schedule_reset(priv); } +int +gve_adjust_rx_queues(struct gve_priv *priv, uint16_t new_queue_cnt) +{ + int err; + + GVE_IFACE_LOCK_ASSERT(priv->gve_iface_lock); + + gve_down(priv); + + if (new_queue_cnt < priv->rx_cfg.num_queues) { + /* + * Freeing a ring still preserves its ntfy_id, + * which is needed if we create the ring again. + */ + gve_free_rx_rings(priv, new_queue_cnt, priv->rx_cfg.num_queues); + } else { + err = gve_alloc_rx_rings(priv, priv->rx_cfg.num_queues, new_queue_cnt); + if (err != 0) { + device_printf(priv->dev, "Failed to allocate new queues"); + /* Failed to allocate rings, start back up with old ones */ + gve_up(priv); + return (err); + + } + } + priv->rx_cfg.num_queues = new_queue_cnt; + + err = gve_up(priv); + if (err != 0) + gve_schedule_reset(priv); + + return (err); +} + +int +gve_adjust_tx_queues(struct gve_priv *priv, uint16_t new_queue_cnt) +{ + int err; + + GVE_IFACE_LOCK_ASSERT(priv->gve_iface_lock); + + gve_down(priv); + + if (new_queue_cnt < priv->tx_cfg.num_queues) { + /* + * Freeing a ring still preserves its ntfy_id, + * which is needed if we create the ring again. + */ + gve_free_tx_rings(priv, new_queue_cnt, priv->tx_cfg.num_queues); + } else { + err = gve_alloc_tx_rings(priv, priv->tx_cfg.num_queues, new_queue_cnt); + if (err != 0) { + device_printf(priv->dev, "Failed to allocate new queues"); + /* Failed to allocate rings, start back up with old ones */ + gve_up(priv); + return (err); + + } + } + priv->tx_cfg.num_queues = new_queue_cnt; + + err = gve_up(priv); + if (err != 0) + gve_schedule_reset(priv); + + return (err); +} + static int gve_set_mtu(if_t ifp, uint32_t new_mtu) { @@ -480,8 +548,14 @@ static void gve_free_rings(struct gve_priv *priv) { gve_free_irqs(priv); - gve_free_tx_rings(priv); - gve_free_rx_rings(priv); + + gve_free_tx_rings(priv, 0, priv->tx_cfg.num_queues); + free(priv->tx, M_GVE); + priv->tx = NULL; + + gve_free_rx_rings(priv, 0, priv->rx_cfg.num_queues); + free(priv->rx, M_GVE); + priv->rx = NULL; } static int @@ -489,11 +563,15 @@ gve_alloc_rings(struct gve_priv *priv) { int err; - err = gve_alloc_rx_rings(priv); + priv->rx = malloc(sizeof(struct gve_rx_ring) * priv->rx_cfg.max_queues, + M_GVE, M_WAITOK | M_ZERO); + err = gve_alloc_rx_rings(priv, 0, priv->rx_cfg.num_queues); if (err != 0) goto abort; - err = gve_alloc_tx_rings(priv); + priv->tx = malloc(sizeof(struct gve_tx_ring) * priv->tx_cfg.max_queues, + M_GVE, M_WAITOK | M_ZERO); + err = gve_alloc_tx_rings(priv, 0, priv->tx_cfg.num_queues); if (err != 0) goto abort; @@ -595,7 +673,7 @@ gve_set_queue_cnts(struct gve_priv *priv) priv->rx_cfg.num_queues); } - priv->num_queues = priv->tx_cfg.num_queues + priv->rx_cfg.num_queues; + priv->num_queues = priv->tx_cfg.max_queues + priv->rx_cfg.max_queues; priv->mgmt_msix_idx = priv->num_queues; } diff --git a/sys/dev/gve/gve_rx.c b/sys/dev/gve/gve_rx.c index e1a228c0e69c..de64375ac4f3 100644 --- a/sys/dev/gve/gve_rx.c +++ b/sys/dev/gve/gve_rx.c @@ -185,38 +185,32 @@ abort: } int -gve_alloc_rx_rings(struct gve_priv *priv) +gve_alloc_rx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx) { - int err = 0; int i; + int err; - priv->rx = malloc(sizeof(struct gve_rx_ring) * priv->rx_cfg.num_queues, - M_GVE, M_WAITOK | M_ZERO); + KASSERT(priv->rx != NULL, ("priv->rx is NULL!")); - for (i = 0; i < priv->rx_cfg.num_queues; i++) { + for (i = start_idx; i < stop_idx; i++) { err = gve_rx_alloc_ring(priv, i); if (err != 0) goto free_rings; } return (0); - free_rings: - while (i--) - gve_rx_free_ring(priv, i); - free(priv->rx, M_GVE); + gve_free_rx_rings(priv, start_idx, i); return (err); } void -gve_free_rx_rings(struct gve_priv *priv) +gve_free_rx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx) { int i; - for (i = 0; i < priv->rx_cfg.num_queues; i++) + for (i = start_idx; i < stop_idx; i++) gve_rx_free_ring(priv, i); - - free(priv->rx, M_GVE); } static void diff --git a/sys/dev/gve/gve_sysctl.c b/sys/dev/gve/gve_sysctl.c index c96d082837a4..8f52ffad6f3e 100644 --- a/sys/dev/gve/gve_sysctl.c +++ b/sys/dev/gve/gve_sysctl.c @@ -285,6 +285,88 @@ gve_setup_main_stat_sysctl(struct sysctl_ctx_list *ctx, &priv->reset_cnt, 0, "Times reset"); } +static int +gve_check_num_queues(struct gve_priv *priv, int val, bool is_rx) +{ + if (val < 1) { + device_printf(priv->dev, + "Requested num queues (%u) must be a positive integer\n", val); + return (EINVAL); + } + + if (val > (is_rx ? priv->rx_cfg.max_queues : priv->tx_cfg.max_queues)) { + device_printf(priv->dev, + "Requested num queues (%u) is too large\n", val); + return (EINVAL); + } + + return (0); +} + +static int +gve_sysctl_num_tx_queues(SYSCTL_HANDLER_ARGS) +{ + struct gve_priv *priv = arg1; + int val; + int err; + + val = priv->tx_cfg.num_queues; + err = sysctl_handle_int(oidp, &val, 0, req); + if (err != 0 || req->newptr == NULL) + return (err); + + err = gve_check_num_queues(priv, val, /*is_rx=*/false); + if (err != 0) + return (err); + + if (val != priv->tx_cfg.num_queues) { + GVE_IFACE_LOCK_LOCK(priv->gve_iface_lock); + err = gve_adjust_tx_queues(priv, val); + GVE_IFACE_LOCK_UNLOCK(priv->gve_iface_lock); + } + + return (err); +} + +static int +gve_sysctl_num_rx_queues(SYSCTL_HANDLER_ARGS) +{ + struct gve_priv *priv = arg1; + int val; + int err; + + val = priv->rx_cfg.num_queues; + err = sysctl_handle_int(oidp, &val, 0, req); + if (err != 0 || req->newptr == NULL) + return (err); + + err = gve_check_num_queues(priv, val, /*is_rx=*/true); + + if (err != 0) + return (err); + + if (val != priv->rx_cfg.num_queues) { + GVE_IFACE_LOCK_LOCK(priv->gve_iface_lock); + err = gve_adjust_rx_queues(priv, val); + GVE_IFACE_LOCK_UNLOCK(priv->gve_iface_lock); + } + + return (err); +} + +static void +gve_setup_sysctl_writables(struct sysctl_ctx_list *ctx, + struct sysctl_oid_list *child, struct gve_priv *priv) +{ + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "num_tx_queues", + CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, + gve_sysctl_num_tx_queues, "I", "Number of TX queues"); + + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "num_rx_queues", + CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, + gve_sysctl_num_rx_queues, "I", "Number of RX queues"); +} + void gve_setup_sysctl(struct gve_priv *priv) { device_t dev; @@ -300,6 +382,7 @@ void gve_setup_sysctl(struct gve_priv *priv) gve_setup_queue_stat_sysctl(ctx, child, priv); gve_setup_adminq_stat_sysctl(ctx, child, priv); gve_setup_main_stat_sysctl(ctx, child, priv); + gve_setup_sysctl_writables(ctx, child, priv); } void diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c index e594c66149bc..b667df4ca06e 100644 --- a/sys/dev/gve/gve_tx.c +++ b/sys/dev/gve/gve_tx.c @@ -181,39 +181,32 @@ abort: } int -gve_alloc_tx_rings(struct gve_priv *priv) +gve_alloc_tx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx) { - int err = 0; int i; + int err; - priv->tx = malloc(sizeof(struct gve_tx_ring) * priv->tx_cfg.num_queues, - M_GVE, M_WAITOK | M_ZERO); + KASSERT(priv->tx != NULL, ("priv->tx is NULL!")); - for (i = 0; i < priv->tx_cfg.num_queues; i++) { + for (i = start_idx; i < stop_idx; i++) { err = gve_tx_alloc_ring(priv, i); if (err != 0) goto free_rings; - } return (0); - free_rings: - while (i--) - gve_tx_free_ring(priv, i); - free(priv->tx, M_GVE); + gve_free_tx_rings(priv, start_idx, i); return (err); } void -gve_free_tx_rings(struct gve_priv *priv) +gve_free_tx_rings(struct gve_priv *priv, uint16_t start_idx, uint16_t stop_idx) { int i; - for (i = 0; i < priv->tx_cfg.num_queues; i++) + for (i = start_idx; i < stop_idx; i++) gve_tx_free_ring(priv, i); - - free(priv->tx, M_GVE); } static void diff --git a/sys/dev/gve/gve_utils.c b/sys/dev/gve/gve_utils.c index 080343d3f651..4e9dd4625e2f 100644 --- a/sys/dev/gve/gve_utils.c +++ b/sys/dev/gve/gve_utils.c @@ -234,7 +234,7 @@ gve_free_irqs(struct gve_priv *priv) return; } - num_irqs = priv->tx_cfg.num_queues + priv->rx_cfg.num_queues + 1; + num_irqs = priv->tx_cfg.max_queues + priv->rx_cfg.max_queues + 1; for (i = 0; i < num_irqs; i++) { irq = &priv->irq_tbl[i]; @@ -268,8 +268,8 @@ gve_free_irqs(struct gve_priv *priv) int gve_alloc_irqs(struct gve_priv *priv) { - int num_tx = priv->tx_cfg.num_queues; - int num_rx = priv->rx_cfg.num_queues; + int num_tx = priv->tx_cfg.max_queues; + int num_rx = priv->rx_cfg.max_queues; int req_nvecs = num_tx + num_rx + 1; int got_nvecs = req_nvecs; struct gve_irq *irq; From nobody Fri Apr 18 14:00:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfGcN06VFz5srB5; Fri, 18 Apr 2025 14:00:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfGcM6BClz42GZ; Fri, 18 Apr 2025 14:00:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984819; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XJNxFIAa01ZoPn0KIT5DMtZ2eQETeo1lLysZyYLmtv4=; b=Agi9jvRI7HLKOfCunMcseRtQ+3XseXWCFj0ebMm3uiWzNE/XjmixGuBBeIi9f0Mw2B8Xc/ 35E/xxmKwD2f1/8HUC8P5JHtXIEyOfSewCAV5oVpF0MiyIkLhY+w7ol/h578YJfCwBNGT3 DU2MjeVksMRV8p+PXDSHWd/qUQ55W87J86JAgITdQ8/P2gUr/VSkL/zHKg4Rw0XUU/ml7C 3Zqvd3B1DJgR6sRbR6gHRRb+lmdtnopq29lIvSehasKWECJGnzck04KWlWayigWQ3yE6RE 82OQeHzefx7et9OahTAKmBIgmRyvd9l84Xker1UOSvvKjDM0FHdgn1UOSkJ3xg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744984819; a=rsa-sha256; cv=none; b=yYRz1OdfPzBYRXAWbQi2N/N5+JgWuKnx3efx5PeW/8fsNfiqqqK/Vyk117K9hoajDNRMcG gHFcwC5fC0UhX3mgW80ZPogWfmaEACn2KV8SfulHaz/keIUByxh7KBw4zM1VQyzABc/0EQ IKvTto5UtRvHYMxbw9a3ZDoaepJmhg2EAMIrsRDS+Se1lf+CvMfu9bsPeKBpn+/icEoHF4 y+ZBS4GwtJDxc5gCE4d6csoQk+bbP4pV/XZBcseG97jqOGWJNHkoPYdNFsGT1g8i23hs4u j3Ehp52TVuyARWhrwFmuC7qdK533VuL1pKHBQslhaaysgOxwuoiZKgx7Eb2jwg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984819; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XJNxFIAa01ZoPn0KIT5DMtZ2eQETeo1lLysZyYLmtv4=; b=p+fiHEK8KpN0GpbwmI+324zHve/knC/Zrh5aEp/Ss81QHhrpl28HmekdhT8D1dIR2s8EtJ 8q2wdpmA43vjPabIWxI4HCirYwZQqsfngl6miJ1Rzp0D0yA/YzXcndiSQBflAZ0Q0Gkh8W gEECALT4J3AzHwkpvB4KS5SMJa5hWCfijwVNMbfMuAk7UewONfu6mshlP7PVPZwf4SGnq5 quIaumSYU2wupcC2JXt1ynZFL4j2zfo2siTaXGUF2QxabOUQdF69SiiP+yc7N5fXv5XMyI rcbEyoJc93lYDRo7TDnWqPWaDr9RuQYSsNrx1zRwQVGr18gu7AqjA1preBcvbA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfGcM5bnyzdCL; Fri, 18 Apr 2025 14:00:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IE0J1X025790; Fri, 18 Apr 2025 14:00:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IE0JRI025787; Fri, 18 Apr 2025 14:00:19 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:00:19 GMT Message-Id: <202504181400.53IE0JRI025787@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: 9a24acc6c8a6 - stable/14 - gve: Add feature to change TX/RX ring size List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: 9a24acc6c8a6cc707572251902e12b5616e6afbd Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9a24acc6c8a6cc707572251902e12b5616e6afbd commit 9a24acc6c8a6cc707572251902e12b5616e6afbd Author: Vee Agarwal AuthorDate: 2025-04-04 22:53:33 +0000 Commit: Mark Johnston CommitDate: 2025-04-18 13:52:10 +0000 gve: Add feature to change TX/RX ring size This change introduces new sysctl handlers that allow the user to change RX/TX ring sizes. As before, the default ring sizes will come from the device (usually 1024). We also get the max/min limits from the device. In the case min values are not provided we have statically defined constants for the min values. Additionally, if the modify ring option is not enabled on the device, changing ring sizes via sysctl will not be possible. When changing ring sizes, the interface turns down momentarily while allocating/freeing resources as necessary. Signed-off-by: Vee Agarwal Reviewed by: markj MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49428 (cherry picked from commit 22fe926a62b7bca771d46502dd6a8c202f25b5be) --- share/man/man4/gve.4 | 17 ++++++++++ sys/dev/gve/gve.h | 10 ++++++ sys/dev/gve/gve_adminq.c | 53 ++++++++++++++++++++++++++++- sys/dev/gve/gve_adminq.h | 14 ++++++-- sys/dev/gve/gve_main.c | 52 +++++++++++++++++++++++++++-- sys/dev/gve/gve_sysctl.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 227 insertions(+), 6 deletions(-) diff --git a/share/man/man4/gve.4 b/share/man/man4/gve.4 index 297f1071b4cd..32f5d2819e0d 100644 --- a/share/man/man4/gve.4 +++ b/share/man/man4/gve.4 @@ -86,6 +86,12 @@ Change the TX queue count to 4 for the gve0 interface: .Pp Change the RX queue count to 4 for the gve0 interface: .D1 sysctl dev.gve.0.num_rx_queues=4 +.Pp +Change the TX ring size to 512 for the gve0 interface: +.D1 sysctl dev.gve.0.tx_ring_size=512 +.Pp +Change the RX ring size to 512 for the gve0 interface: +.D1 sysctl dev.gve.0.rx_ring_size=512 .Sh DIAGNOSTICS The following messages are recorded during driver initialization: .Bl -diag @@ -230,6 +236,17 @@ If this also fails, a device reset will be triggered. .Pp Note: sysctl nodes for queue stats remain available even if a queue is removed. .Pp +.It Va dev.gve.X.rx_ring_size and dev.gve.X.tx_ring_size +Run-time tunables that represent the current ring size for RX/TX queues. +The default value is set to device defaults for ring size. +.Pp +This call turns down the interface while setting up the queues with the new ring size, +which may potentially cause any new packets to be dropped. +This call can fail if the system is not able to provide the driver with enough resources. +In that situation, the driver will try to revert to the previous ring size for RX/TX queues. +If this also fails, the device will be in an unhealthy state and will need to be reloaded. +This value must be a power of 2 and within the defined range. +.Pp .El .Sh LIMITATIONS .Nm diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h index 2b49ee5ad45a..5b298b889ed6 100644 --- a/sys/dev/gve/gve.h +++ b/sys/dev/gve/gve.h @@ -63,6 +63,10 @@ */ #define GVE_QPL_DIVISOR 16 +/* Ring Size Limits */ +#define GVE_DEFAULT_MIN_RX_RING_SIZE 512 +#define GVE_DEFAULT_MIN_TX_RING_SIZE 256 + static MALLOC_DEFINE(M_GVE, "gve", "gve allocations"); struct gve_dma_handle { @@ -529,12 +533,17 @@ struct gve_priv { uint16_t num_event_counters; uint16_t default_num_queues; uint16_t tx_desc_cnt; + uint16_t max_tx_desc_cnt; + uint16_t min_tx_desc_cnt; uint16_t rx_desc_cnt; + uint16_t max_rx_desc_cnt; + uint16_t min_rx_desc_cnt; uint16_t rx_pages_per_qpl; uint64_t max_registered_pages; uint64_t num_registered_pages; uint32_t supported_features; uint16_t max_mtu; + bool modify_ringsize_enabled; struct gve_dma_handle counter_array_mem; __be32 *counters; @@ -622,6 +631,7 @@ gve_is_qpl(struct gve_priv *priv) void gve_schedule_reset(struct gve_priv *priv); int gve_adjust_tx_queues(struct gve_priv *priv, uint16_t new_queue_cnt); int gve_adjust_rx_queues(struct gve_priv *priv, uint16_t new_queue_cnt); +int gve_adjust_ring_sizes(struct gve_priv *priv, uint16_t new_desc_cnt, bool is_rx); /* Register access functions defined in gve_utils.c */ uint32_t gve_reg_bar_read_4(struct gve_priv *priv, bus_size_t offset); diff --git a/sys/dev/gve/gve_adminq.c b/sys/dev/gve/gve_adminq.c index dd03f817f45a..3415d2fa4b60 100644 --- a/sys/dev/gve/gve_adminq.c +++ b/sys/dev/gve/gve_adminq.c @@ -59,6 +59,7 @@ void gve_parse_device_option(struct gve_priv *priv, struct gve_device_option_gqi_qpl **dev_op_gqi_qpl, struct gve_device_option_dqo_rda **dev_op_dqo_rda, struct gve_device_option_dqo_qpl **dev_op_dqo_qpl, + struct gve_device_option_modify_ring **dev_op_modify_ring, struct gve_device_option_jumbo_frames **dev_op_jumbo_frames) { uint32_t req_feat_mask = be32toh(option->required_features_mask); @@ -121,6 +122,34 @@ void gve_parse_device_option(struct gve_priv *priv, *dev_op_dqo_qpl = (void *)(option + 1); break; + case GVE_DEV_OPT_ID_MODIFY_RING: + if (option_length < (sizeof(**dev_op_modify_ring) - + sizeof(struct gve_ring_size_bound)) || + req_feat_mask != GVE_DEV_OPT_REQ_FEAT_MASK_MODIFY_RING) { + device_printf(priv->dev, GVE_DEVICE_OPTION_ERROR_FMT, + "Modify Ring", (int)sizeof(**dev_op_modify_ring), + GVE_DEV_OPT_REQ_FEAT_MASK_MODIFY_RING, + option_length, req_feat_mask); + break; + } + + if (option_length > sizeof(**dev_op_modify_ring)) { + device_printf(priv->dev, GVE_DEVICE_OPTION_TOO_BIG_FMT, + "Modify Ring"); + } + *dev_op_modify_ring = (void *)(option + 1); + + /* Min ring size included; set the minimum ring size. */ + if (option_length == sizeof(**dev_op_modify_ring)) { + priv->min_rx_desc_cnt = max( + be16toh((*dev_op_modify_ring)->min_ring_size.rx), + GVE_DEFAULT_MIN_RX_RING_SIZE); + priv->min_tx_desc_cnt = max( + be16toh((*dev_op_modify_ring)->min_ring_size.tx), + GVE_DEFAULT_MIN_TX_RING_SIZE); + } + break; + case GVE_DEV_OPT_ID_JUMBO_FRAMES: if (option_length < sizeof(**dev_op_jumbo_frames) || req_feat_mask != GVE_DEV_OPT_REQ_FEAT_MASK_JUMBO_FRAMES) { @@ -155,6 +184,7 @@ gve_process_device_options(struct gve_priv *priv, struct gve_device_option_gqi_qpl **dev_op_gqi_qpl, struct gve_device_option_dqo_rda **dev_op_dqo_rda, struct gve_device_option_dqo_qpl **dev_op_dqo_qpl, + struct gve_device_option_modify_ring **dev_op_modify_ring, struct gve_device_option_jumbo_frames **dev_op_jumbo_frames) { char *desc_end = (char *)descriptor + be16toh(descriptor->total_length); @@ -176,6 +206,7 @@ gve_process_device_options(struct gve_priv *priv, dev_op_gqi_qpl, dev_op_dqo_rda, dev_op_dqo_qpl, + dev_op_modify_ring, dev_op_jumbo_frames); dev_opt = (void *)((char *)(dev_opt + 1) + be16toh(dev_opt->option_length)); } @@ -390,8 +421,18 @@ gve_adminq_set_mtu(struct gve_priv *priv, uint32_t mtu) { static void gve_enable_supported_features(struct gve_priv *priv, uint32_t supported_features_mask, + const struct gve_device_option_modify_ring *dev_op_modify_ring, const struct gve_device_option_jumbo_frames *dev_op_jumbo_frames) { + if (dev_op_modify_ring && + (supported_features_mask & GVE_SUP_MODIFY_RING_MASK)) { + if (bootverbose) + device_printf(priv->dev, "MODIFY RING device option enabled.\n"); + priv->modify_ringsize_enabled = true; + priv->max_rx_desc_cnt = be16toh(dev_op_modify_ring->max_ring_size.rx); + priv->max_tx_desc_cnt = be16toh(dev_op_modify_ring->max_ring_size.tx); + } + if (dev_op_jumbo_frames && (supported_features_mask & GVE_SUP_JUMBO_FRAMES_MASK)) { if (bootverbose) @@ -410,6 +451,7 @@ gve_adminq_describe_device(struct gve_priv *priv) struct gve_device_option_gqi_qpl *dev_op_gqi_qpl = NULL; struct gve_device_option_dqo_rda *dev_op_dqo_rda = NULL; struct gve_device_option_dqo_qpl *dev_op_dqo_qpl = NULL; + struct gve_device_option_modify_ring *dev_op_modify_ring = NULL; struct gve_device_option_jumbo_frames *dev_op_jumbo_frames = NULL; uint32_t supported_features_mask = 0; int rc; @@ -438,10 +480,15 @@ gve_adminq_describe_device(struct gve_priv *priv) bus_dmamap_sync(desc_mem.tag, desc_mem.map, BUS_DMASYNC_POSTREAD); + /* Default min in case device options don't have min values */ + priv->min_rx_desc_cnt = GVE_DEFAULT_MIN_RX_RING_SIZE; + priv->min_tx_desc_cnt = GVE_DEFAULT_MIN_TX_RING_SIZE; + rc = gve_process_device_options(priv, desc, &dev_op_gqi_qpl, &dev_op_dqo_rda, &dev_op_dqo_qpl, + &dev_op_modify_ring, &dev_op_jumbo_frames); if (rc != 0) goto free_device_descriptor; @@ -489,8 +536,12 @@ gve_adminq_describe_device(struct gve_priv *priv) priv->default_num_queues = be16toh(desc->default_num_queues); priv->supported_features = supported_features_mask; + /* Default max to current in case modify ring size option is disabled */ + priv->max_rx_desc_cnt = priv->rx_desc_cnt; + priv->max_tx_desc_cnt = priv->tx_desc_cnt; + gve_enable_supported_features(priv, supported_features_mask, - dev_op_jumbo_frames); + dev_op_modify_ring, dev_op_jumbo_frames); for (i = 0; i < ETHER_ADDR_LEN; i++) priv->mac[i] = desc->mac[i]; diff --git a/sys/dev/gve/gve_adminq.h b/sys/dev/gve/gve_adminq.h index 37a7cb3ecbb8..bc51046a3037 100644 --- a/sys/dev/gve/gve_adminq.h +++ b/sys/dev/gve/gve_adminq.h @@ -153,13 +153,21 @@ struct gve_device_option_dqo_qpl { _Static_assert(sizeof(struct gve_device_option_dqo_qpl) == 8, "gve: bad admin queue struct length"); +struct gve_ring_size_bound { + __be16 rx; + __be16 tx; +}; + +_Static_assert(sizeof(struct gve_ring_size_bound) == 4, + "gve: bad admin queue struct length"); + struct gve_device_option_modify_ring { __be32 supported_features_mask; - __be16 max_rx_ring_size; - __be16 max_tx_ring_size; + struct gve_ring_size_bound max_ring_size; + struct gve_ring_size_bound min_ring_size; }; -_Static_assert(sizeof(struct gve_device_option_modify_ring) == 8, +_Static_assert(sizeof(struct gve_device_option_modify_ring) == 12, "gve: bad admin queue struct length"); struct gve_device_option_jumbo_frames { diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c index 39556b85f493..8a00deedef36 100644 --- a/sys/dev/gve/gve_main.c +++ b/sys/dev/gve/gve_main.c @@ -32,10 +32,10 @@ #include "gve_adminq.h" #include "gve_dqo.h" -#define GVE_DRIVER_VERSION "GVE-FBSD-1.3.2\n" +#define GVE_DRIVER_VERSION "GVE-FBSD-1.3.3\n" #define GVE_VERSION_MAJOR 1 #define GVE_VERSION_MINOR 3 -#define GVE_VERSION_SUB 2 +#define GVE_VERSION_SUB 3 #define GVE_DEFAULT_RX_COPYBREAK 256 @@ -260,6 +260,54 @@ gve_adjust_tx_queues(struct gve_priv *priv, uint16_t new_queue_cnt) return (err); } +int +gve_adjust_ring_sizes(struct gve_priv *priv, uint16_t new_desc_cnt, bool is_rx) +{ + int err; + uint16_t prev_desc_cnt; + + GVE_IFACE_LOCK_ASSERT(priv->gve_iface_lock); + + gve_down(priv); + + if (is_rx) { + gve_free_rx_rings(priv, 0, priv->rx_cfg.num_queues); + prev_desc_cnt = priv->rx_desc_cnt; + priv->rx_desc_cnt = new_desc_cnt; + err = gve_alloc_rx_rings(priv, 0, priv->rx_cfg.num_queues); + if (err != 0) { + device_printf(priv->dev, + "Failed to allocate rings. Trying to start back up with previous ring size."); + priv->rx_desc_cnt = prev_desc_cnt; + err = gve_alloc_rx_rings(priv, 0, priv->rx_cfg.num_queues); + } + } else { + gve_free_tx_rings(priv, 0, priv->tx_cfg.num_queues); + prev_desc_cnt = priv->tx_desc_cnt; + priv->tx_desc_cnt = new_desc_cnt; + err = gve_alloc_tx_rings(priv, 0, priv->tx_cfg.num_queues); + if (err != 0) { + device_printf(priv->dev, + "Failed to allocate rings. Trying to start back up with previous ring size."); + priv->tx_desc_cnt = prev_desc_cnt; + err = gve_alloc_tx_rings(priv, 0, priv->tx_cfg.num_queues); + } + } + + if (err != 0) { + device_printf(priv->dev, "Failed to allocate rings! Cannot start device back up!"); + return (err); + } + + err = gve_up(priv); + if (err != 0) { + gve_schedule_reset(priv); + return (err); + } + + return (0); +} + static int gve_set_mtu(if_t ifp, uint32_t new_mtu) { diff --git a/sys/dev/gve/gve_sysctl.c b/sys/dev/gve/gve_sysctl.c index 8f52ffad6f3e..f7c7b5803865 100644 --- a/sys/dev/gve/gve_sysctl.c +++ b/sys/dev/gve/gve_sysctl.c @@ -354,6 +354,83 @@ gve_sysctl_num_rx_queues(SYSCTL_HANDLER_ARGS) return (err); } +static int +gve_check_ring_size(struct gve_priv *priv, int val, bool is_rx) +{ + if (!powerof2(val) || val == 0) { + device_printf(priv->dev, + "Requested ring size (%u) must be a power of 2\n", val); + return (EINVAL); + } + + if (val < (is_rx ? priv->min_rx_desc_cnt : priv->min_tx_desc_cnt)) { + device_printf(priv->dev, + "Requested ring size (%u) cannot be less than %d\n", val, + (is_rx ? priv->min_rx_desc_cnt : priv->min_tx_desc_cnt)); + return (EINVAL); + } + + + if (val > (is_rx ? priv->max_rx_desc_cnt : priv->max_tx_desc_cnt)) { + device_printf(priv->dev, + "Requested ring size (%u) cannot be greater than %d\n", val, + (is_rx ? priv->max_rx_desc_cnt : priv->max_tx_desc_cnt)); + return (EINVAL); + } + + return (0); +} + +static int +gve_sysctl_tx_ring_size(SYSCTL_HANDLER_ARGS) +{ + struct gve_priv *priv = arg1; + int val; + int err; + + val = priv->tx_desc_cnt; + err = sysctl_handle_int(oidp, &val, 0, req); + if (err != 0 || req->newptr == NULL) + return (err); + + err = gve_check_ring_size(priv, val, /*is_rx=*/false); + if (err != 0) + return (err); + + if (val != priv->tx_desc_cnt) { + GVE_IFACE_LOCK_LOCK(priv->gve_iface_lock); + err = gve_adjust_ring_sizes(priv, val, /*is_rx=*/false); + GVE_IFACE_LOCK_UNLOCK(priv->gve_iface_lock); + } + + return (err); +} + +static int +gve_sysctl_rx_ring_size(SYSCTL_HANDLER_ARGS) +{ + struct gve_priv *priv = arg1; + int val; + int err; + + val = priv->rx_desc_cnt; + err = sysctl_handle_int(oidp, &val, 0, req); + if (err != 0 || req->newptr == NULL) + return (err); + + err = gve_check_ring_size(priv, val, /*is_rx=*/true); + if (err != 0) + return (err); + + if (val != priv->rx_desc_cnt) { + GVE_IFACE_LOCK_LOCK(priv->gve_iface_lock); + err = gve_adjust_ring_sizes(priv, val, /*is_rx=*/true); + GVE_IFACE_LOCK_UNLOCK(priv->gve_iface_lock); + } + + return (err); +} + static void gve_setup_sysctl_writables(struct sysctl_ctx_list *ctx, struct sysctl_oid_list *child, struct gve_priv *priv) @@ -365,6 +442,16 @@ gve_setup_sysctl_writables(struct sysctl_ctx_list *ctx, SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "num_rx_queues", CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, gve_sysctl_num_rx_queues, "I", "Number of RX queues"); + + if (priv->modify_ringsize_enabled) { + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "tx_ring_size", + CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, + gve_sysctl_tx_ring_size, "I", "TX ring size"); + + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "rx_ring_size", + CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, priv, 0, + gve_sysctl_rx_ring_size, "I", "RX ring size"); + } } void gve_setup_sysctl(struct gve_priv *priv) From nobody Fri Apr 18 14:00:20 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfGcP2bbgz5srP5; Fri, 18 Apr 2025 14:00:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfGcN6qlVz42Gc; Fri, 18 Apr 2025 14:00:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0t6zguvaKtAtfOPTD5IO/8GDpSfbse16nGngZyWFTrQ=; b=pl/BbV0Ficj0LGf/s7H+UWQOGn5mImsyiDtg9PqsLH5Gs1+LxXKG9NUY7LaXk4pF/9Ft+9 IoAFHphbqeRiiK30QUswcqvxLF3wlalcYsey436mCJEFU5fA3QA+7ou+3TOwdvmrtmcx7b BECi15rkbRlXFrgase7ndd5YbKMjnK/AoQ+w2/+Be3SP1tN1Soi9xucc9KxuY+1AAMw0gP 9RuCJoi0EnxBBabNTNQ39A/lRsIvt1tG4PP/ZVcpC5yD2FklEsK7L+766Lx5dErx2l/93N R7Ab54W3hwgncB3oO5KbgE42dERyW6v9wIUAHqEpY1jJAX0iMgZx9uPnbOstXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744984821; a=rsa-sha256; cv=none; b=tD79yMCQHaCcKoEOEOF8yD/09PIAMAYcgm/GJFEQJE3F1oK+8zJiyCW2dPHf87b2XoPZbl sb5pqr5jOMT3xBqNOYW+TM5M3eLiPBwGo3FQNtzypf/sbLfzkKZ7U2zQO423nQNYIJSQln JVV0calBBH/bXjyBNzkUK/e2tg2gN+VIbXrRBDYYgdP0trby69TZnO1asZjJ21P90acEZe FiElOXbK6X+QsYxhr48NriGj86b6vXnZ5ENYEVpunJafcefaDkzAKAExa3c5d3Aqf3tF6z s57EOZ0yscokHZTLfnZeEh9rsggrployKDHTwIDKdVDrgrdpDVkM3CCTjj/6cw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744984821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0t6zguvaKtAtfOPTD5IO/8GDpSfbse16nGngZyWFTrQ=; b=qJYMh8xSgqPveJNVd8exLGrs9DoqX9AYM8+afkNcqtJ313Nwc3zDKx1ugTayF9SpQHeU1C yg7c5Yh2E+9Kk07RrkhKZNZExdjpkQu65jtfBfMvkc27bbucr7h3dKUSxbPw0LAV+2LbQq ue5uJHwup9G734G21EWUwRxef9aaShFRq997fu6bOW4p4iZr7h33XpVey1pWHGvKl9Mcga M5Oic7bPhQ4gU8X+Px1cFMr/Wb47gDAFmdMdh+gaJzZG4WfVByXo8Vx3ES1h9abIHBny7Y qiUgJnWuJO1faIUPdRJBWkGbHBs9ZHTbjkbKEQafvqIxCMql8WkBLurZ2PCBdw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfGcN6LkSzcbh; Fri, 18 Apr 2025 14:00:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IE0KI0025825; Fri, 18 Apr 2025 14:00:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IE0Kqn025822; Fri, 18 Apr 2025 14:00:20 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:00:20 GMT Message-Id: <202504181400.53IE0Kqn025822@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: afbe2bb9e939 - stable/14 - vm_object: Fix handling of wired map entries in vm_object_split() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-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: afbe2bb9e939eee90033433c7172c14323917a54 Auto-Submitted: auto-generated The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=afbe2bb9e939eee90033433c7172c14323917a54 commit afbe2bb9e939eee90033433c7172c14323917a54 Author: Mark Johnston AuthorDate: 2025-04-04 20:29:25 +0000 Commit: Mark Johnston CommitDate: 2025-04-18 13:53:55 +0000 vm_object: Fix handling of wired map entries in vm_object_split() Suppose a vnode is mapped with MAP_PROT and MAP_PRIVATE, mlock() is called on the mapping, and then the vnode is truncated such that the last page of the mapping becomes invalid. The now-invalid page will be unmapped, but stays resident in the VM object to preserve the invariant that a range of pages mapped by a wired map entry is always resident. This invariant is checked by vm_object_unwire(), for example. Then, suppose that the mapping is upgraded to PROT_READ|PROT_WRITE. We will copy the invalid page into a new anonymous VM object. If the process then forks, vm_object_split() may then be called on the object. Upon encountering an invalid page, rather than moving it into the destination object, it is removed. However, this is wrong when the entry is wired, since the invalid page's wiring belongs to the map entry; this behaviour also violates the invariant mentioned above. Fix this by moving invalid pages into the destination object if the map entry is wired. In this case we must not dirty the page, so add a flag to vm_page_iter_rename() to control this. Reported by: syzkaller Reviewed by: dougm, kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D49443 (cherry picked from commit 43c1eb894a57ef30562a02708445c512610d4f02) --- sys/vm/vm_object.c | 11 ++++++++--- sys/vm/vm_page.c | 16 ++++++---------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 84e56b910809..a50dff22205b 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1601,16 +1601,21 @@ retry: } /* - * The page was left invalid. Likely placed there by + * If the page was left invalid, it was likely placed there by * an incomplete fault. Just remove and ignore. + * + * One other possibility is that the map entry is wired, in + * which case we must hang on to the page to avoid leaking it, + * as the map entry owns the wiring. This case can arise if the + * backing pager is truncated. */ - if (vm_page_none_valid(m)) { + if (vm_page_none_valid(m) && entry->wired_count == 0) { if (vm_page_remove(m)) vm_page_free(m); continue; } - /* vm_page_rename() will dirty the page. */ + /* vm_page_rename() will dirty the page if it is valid. */ if (vm_page_rename(m, new_object, idx)) { vm_page_xunbusy(m); VM_OBJECT_WUNLOCK(new_object); diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 979a4b7b07fb..ac922f4a3bc8 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1833,15 +1833,10 @@ vm_page_replace(vm_page_t mnew, vm_object_t object, vm_pindex_t pindex, * Move the given memory entry from its * current object to the specified target object/offset. * - * Note: swap associated with the page must be invalidated by the move. We - * have to do this for several reasons: (1) we aren't freeing the - * page, (2) we are dirtying the page, (3) the VM system is probably - * moving the page from object A to B, and will then later move - * the backing store from A to B and we can't have a conflict. - * - * Note: we *always* dirty the page. It is necessary both for the - * fact that we moved it, and because we may be invalidating - * swap. + * This routine dirties the page if it is valid, as callers are expected to + * transfer backing storage only after moving the page. Dirtying the page + * ensures that the destination object retains the most recent copy of the + * page. * * The objects must be locked. */ @@ -1882,7 +1877,8 @@ vm_page_rename(vm_page_t m, vm_object_t new_object, vm_pindex_t new_pindex) m->object = new_object; vm_page_insert_radixdone(m, new_object, mpred); - vm_page_dirty(m); + if (vm_page_any_valid(m)) + vm_page_dirty(m); vm_pager_page_inserted(new_object, m); return (0); } From nobody Fri Apr 18 14:36:48 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQT28lQz5stVx; Fri, 18 Apr 2025 14:36:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQT1Pbjz3JwX; Fri, 18 Apr 2025 14:36:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ez1abwJ+N61cT8a5Jy5M9wL1CaSU9M1WI3/Mc06A8yw=; b=Fk+1920jYLoUvtS+LUgyggmFzRNEIt/fL+OL+imcrG7CoU8oU8/M+PsSBV7wP1syoNOqE7 YJVDL75Mg9FpCB7yDNa66M0/QFVv/gnXeaSgSIXzGwVe44pH9o1lkUhxFiJTlVSNJ648HQ FOFEBNft35XxUTiFrZlv1Fh3rueMEX5kRQT8PSxmmPkRgW0j3fd8enGnNYroi6QYLdri8C uUoE/aKlIXfNETnbnqTTaVPjhJKxRGSWOi3CaznkCwHAShUgQNXcaOG5BFcrzq8jX3yxNa ZBVs48WjuoK7NzK9w8FNvhVjsraEUIkBVuhxwtFfPBVe7yoydim2IDVPiuw+9g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987009; a=rsa-sha256; cv=none; b=L4605/eZZ6lALAb3yQJcU+zft8WV3P7kejwdjiY2OfmVRJvp1LqyBX1MOdNdUWZP0E2Ccw J5lTdKo2Mt6INkWSj2SN+S6N+2f/MpDzZm2Fl/2Jq8YWqD75bkYU6ubE/+X4+2PLQ3pOXO Vss2lozM8XiO9rwSkxqOFBXeND8djPJ1jfVoReJ73WN4HXQkuO7X1U2wrqUF8o6m9z1tz/ 1nIm9O+EZ4Et5AUk6jvTqI3mbkz78Y4m/50jU7UUWs+jmmLdfbKrfqWPopGRz4tJp/lMh7 f2StAdr0QQ5lw54DpSS2j01PPi0qnLpzPkfcmh0eP+DK/+Xf9mlVe3C4kaLr8Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987009; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ez1abwJ+N61cT8a5Jy5M9wL1CaSU9M1WI3/Mc06A8yw=; b=o2rnfaPzuM8UiwEHWE+JC97urUFSGZG0ZaARbnsKzZnnbTqHg2Lz7U17ktpItVlKMmFXQc 8BMd/hbQbRXx+9951TtN004hbTZx1HKXBH/LdETBAmcd1MXWXRFHVfcCFENlMR5PpObJBr sMtD4XqKzniTGHlgQEcwRpsRF7Aeha0FLTn0qxIUrf4b1DDGNl2MACnzlitS6pa0r/N2/d PmoAB55Yx2OXe5ZL6t4MWoe/zreXrTuR8QukKY21LUud0aV2pXuXcXP0ojNdnkQEtLlVM2 fcrpKBB3DfBaPo7xQhR2gfOGoFLkmD+MEvhGV+mP7GCPW9+yNXbVA4DbJBHizg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQT0S4gzdt7; Fri, 18 Apr 2025 14:36:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEamws090990; Fri, 18 Apr 2025 14:36:48 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEamAI090987; Fri, 18 Apr 2025 14:36:48 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:48 GMT Message-Id: <202504181436.53IEamAI090987@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 580c891f5add - stable/14 - malloc: extend malloc_usable_size() for contigmalloc List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 580c891f5addc9055f41933c72caae14e352ba4c Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=580c891f5addc9055f41933c72caae14e352ba4c commit 580c891f5addc9055f41933c72caae14e352ba4c Author: Bjoern A. Zeeb AuthorDate: 2025-04-12 17:11:26 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:56 +0000 malloc: extend malloc_usable_size() for contigmalloc Extend malloc_usable_size() for contigmalloc; it seems the only outside consumer is LinuxKPI ksize() which by itself has little to no consumer either. Sponsored by: The FreeBSD Foundation Suggested by: jhb (see D46657) Reviewed by: jhb, markj Fixes: 9e6544dd6e02 Differential Revision: https://reviews.freebsd.org/D49571 (cherry picked from commit c5cf4b64f4a976f5c5d75d52816078def86bf3e4) --- sys/kern/kern_malloc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index f31fc2a76a07..94583288430b 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -1162,6 +1162,9 @@ malloc_usable_size(const void *addr) case SLAB_COOKIE_MALLOC_LARGE: size = malloc_large_size(slab); break; + case SLAB_COOKIE_CONTIG_MALLOC: + size = round_page(contigmalloc_size(slab)); + break; default: __assert_unreachable(); size = 0; From nobody Fri Apr 18 14:36:49 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQV6nX6z5stVy; Fri, 18 Apr 2025 14:36:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQV0wnjz3Jyr; Fri, 18 Apr 2025 14:36:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JILF8MvA9+KWEvDJAKpRUb7CxKvgTq43dBCSNrvidyg=; b=WEnlJchnCt+S4iwRaobg+pq7OQ2dXgcRBgAyFFFrqlPMC90rnx552colhs8OK7mfrKrovE h8xr0hWKIUFIH6Ifu+JMpIXtmPjh116Y+bXj+j9ECcBcCW6JuZgvUncBGdWcfB1yiLTpHv Gm+pCvM2AxLmYgj7tFmUOEyeEAWTlJxfgQAhipTkNg4FTFIQIyuUDWjBX0Objrcy4eASdm c+DD7E9FiwiskNIuDicxZBfexByq3IycSo7+tqoeMAzUWcDj7yjHu6bPa2EOn27s/KR1yV BjlsUQmAnrxBUJHI6yfZzTRZd520czLCjhNDGmcmpTgE/OsuPlCx3gTmL6LAqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987010; a=rsa-sha256; cv=none; b=q7O34Jr/w8KJkhtR0vPzN9AuWJMxFweX+qJQxC+6nli2XpL+QtjpQo8IPUaZn8bTaQC1V7 w/8COmcl9411ySl7RN/h6+f5mS9jfCqQN11ZaA2y1UBi11h9FJesys0Qs0tHuZwaUQIwap QEGnuPjMQJdq8AOke6AmYk3nmTKXNbzCC6bsjaOq/6LVjFVT5/LtjY4r1BAvssBiKLlbTd Uw70/Ty+YgXtJ3UUG3fEX9JkFiy7fu/uGK0XfPvaOH4GD1rGJx9xd72asMYgd7wYZeLq/C 0cBl8vxxiyT/I209heOK+p4cEgdtHCyORFE8TL9LQaFKrs1Jk0txdAq7P557Qw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987010; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JILF8MvA9+KWEvDJAKpRUb7CxKvgTq43dBCSNrvidyg=; b=G49xV0NzgXWWxBx2X94wNdm3nW1CqJmzqsBHAU+ug+Ams9boknu2O646BiX+wRUtZkA5Vo KYQIP4u4HwC9T97reKywoGeE+VXj9d0Eu3oJ/bOPIzbP2+BtP2BjQGi3nPTk9sBqV5YR2P mMP0qlHOrFS/6xEhXYVKsxUKCqBKfq1FMNaxy2sRN6i+jhWEeqYQtD2bznPMsVZ28kiPoW zTNbitXLaTUHDSbOCqcWdDJuEagXGQZbX6ToH2F8RLelykk+xrRY8ombgVwlvNcSpCtoWm MSy9Atx1aRBXoDGVb7pA4qhBJuwhXz8CPcylbUAPJcP38X9OMe+vzGeYL74EIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQV0SzLzf3l; Fri, 18 Apr 2025 14:36:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEantb091027; Fri, 18 Apr 2025 14:36:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEanqw091024; Fri, 18 Apr 2025 14:36:49 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:49 GMT Message-Id: <202504181436.53IEanqw091024@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: bc6e1ca80704 - stable/14 - LinuxKPI: make __kmalloc() play by the 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: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: bc6e1ca8070467eca4e22e8dc0a4fc962169cad7 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=bc6e1ca8070467eca4e22e8dc0a4fc962169cad7 commit bc6e1ca8070467eca4e22e8dc0a4fc962169cad7 Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 18:11:01 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:57 +0000 LinuxKPI: make __kmalloc() play by the rules According to Documentation/core-api/dma-api.rst kmalloc() is supposd to provide physically contiguous memory. [1] In order to guarantee that allocations are contiguous even if using PAGE_SIZE or larger check the size and use contigmalloc if needed. This makes use of 9e6544dd6e02 (and following) allowing free(9) to also work for contigmalloced memory. Sponsored by: The FreeBSD Foundation Pointed out by: jhb [1] Reviewed by: jhb, emaste Differential Revision: https://reviews.freebsd.org/D46656 (cherry picked from commit 19df0c5abcb9d4e951e610b6de98d4d8a00bd5f9) --- sys/compat/linuxkpi/common/src/linux_slab.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_slab.c b/sys/compat/linuxkpi/common/src/linux_slab.c index 72b35fee9214..5be4c1ec674c 100644 --- a/sys/compat/linuxkpi/common/src/linux_slab.c +++ b/sys/compat/linuxkpi/common/src/linux_slab.c @@ -215,7 +215,11 @@ lkpi___kmalloc(size_t size, gfp_t flags) /* sizeof(struct llist_node) is used for kfree_async(). */ _s = MAX(size, sizeof(struct llist_node)); - return (malloc(_s, M_KMALLOC, linux_check_m_flags(flags))); + if (_s < PAGE_SIZE) + return (malloc(_s, M_KMALLOC, linux_check_m_flags(flags))); + else + return (contigmalloc(_s, M_KMALLOC, linux_check_m_flags(flags), + 0, -1UL, PAGE_SIZE, 0)); } struct lkpi_kmalloc_ctx { From nobody Fri Apr 18 14:36:51 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQW6YPlz5stY1; Fri, 18 Apr 2025 14:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQW2VQ4z3K1r; Fri, 18 Apr 2025 14:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yi7P47Huyzd7PPQ1TZ5nMoiyBPVk81Rr4RYMZaxPVM8=; b=Gphi9tMRXp+6kQvZE44xj6EukorftIK1PaBIbF3p3i2HmmT4Mlsuh9sf4AeOhPaI/9CGoo l7gKyomBCFk8P4MIqhRynE8DwM32Z0ogIMDiAFb6u3q4floRQg9Hq1VJ1OZ9QTM3q4JGwn wPXkuWxfbStA+IVJGmWSjdDayzY7b8BmYE8tMO2zp6brL8ZuowNbDzv/uHwBcStcpamC4O DApOEVRI4JcaITz+B7vq8LlQzplIiVar6K2yCeOraSsYwSrvFmGwb6eC6evqscAqDUnVHY MLxnsYHMM15Tv/lCSRzrnjiEJN/G+c/YjRLrjWrg2J+3qyxJOgN/kFs/YH1prw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987011; a=rsa-sha256; cv=none; b=aU4zpVRZ8jGDYe2ZyuxgVp7j+/zrLmwzNt0uLfyWBJWF5x29+LVi1jpRbSaq59RQhPMLAF qwAmwigW3zf1BrfD8Xot6Q3PesEWHLLibLbFV2xrbN/oV8Z+ZWdC69Fi8jxXVVI/OLpQYu tZpRXK3EuET+5GqFMyqmqNYJ2wElwDPAT2WTQ40iKACKWJ1lXwmh9o9a85vhY4HrCveMxk TMLUazf5qfAK4gTTgvhQblbNaXewDTBK34lmrUexD0DU/SKD4VuwOyirzLQLhhjTUBexQ6 hLEaLxrYMuoQgqs9FZOBjE7EvLBALvaIGuMXUIYV7bSEpamfWu5DuP/SEfLaQg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yi7P47Huyzd7PPQ1TZ5nMoiyBPVk81Rr4RYMZaxPVM8=; b=QF6yo3nc7DFYEXskzqQsiwojH4B5RUoLQSyqG5AwWg31mv+8GUHDGsHuRwggpP8Kvc0xbP 3tdP8KqUzjTaQiiBsKHvNVTZkoZzFjWngAAw4rta8lGdNT2OKN7lDWyBtjRhUdfF5NI5g0 Z/IWQ3XtMv1Sq4L9XepbpuJSYIM0oby4nsUfRG3IGUnpdkOothI6nEbTUNyOQspzuX/8aR BlXMbgC2kZbgR4/Mk/0S0r6IlnH4QJPE2oaLJbf2KxGUsx1OoGDbel8sztpAG68pe6ZHO9 p9IyLMbdbmnMgb1wJJUdkadkk6Y6cXZ3wStuPDkSpX65dmzbIPC2/JHdO3JZQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQW1Hm2zdt8; Fri, 18 Apr 2025 14:36:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEapEu091064; Fri, 18 Apr 2025 14:36:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEapbs091061; Fri, 18 Apr 2025 14:36:51 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:51 GMT Message-Id: <202504181436.53IEapbs091061@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 3494f4f5369d - stable/14 - LinuxKPI: always use contig allocations in linux_alloc_kmem() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3494f4f5369de2661c88f3217acbf8d5f0795780 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3494f4f5369de2661c88f3217acbf8d5f0795780 commit 3494f4f5369de2661c88f3217acbf8d5f0795780 Author: Bjoern A. Zeeb AuthorDate: 2024-09-12 21:17:51 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:57 +0000 LinuxKPI: always use contig allocations in linux_alloc_kmem() In linux_alloc_kmem() [used by *get_page*()] we always at least allocate PAGE_SIZE and we want the allocation to be contiguous so it can be passed to DMA. Always use kmem_alloc_contig() and only change the low argument depending on the GFP_DMA32 flag being given or not. Sponsored by: The FreeBSD Foundation Reviewed by: jhb, dumbbell Differential Revision: https://reviews.freebsd.org/D46661 (cherry picked from commit a5c7b44d6a46fc5a67a79cb9b31050a9cc7c50ce) --- sys/compat/linuxkpi/common/src/linux_page.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_page.c b/sys/compat/linuxkpi/common/src/linux_page.c index cc7683e3b572..99b63e8d5680 100644 --- a/sys/compat/linuxkpi/common/src/linux_page.c +++ b/sys/compat/linuxkpi/common/src/linux_page.c @@ -182,12 +182,10 @@ linux_alloc_kmem(gfp_t flags, unsigned int order) size_t size = ((size_t)PAGE_SIZE) << order; void *addr; - if ((flags & GFP_DMA32) == 0) { - addr = kmem_malloc(size, flags & GFP_NATIVE_MASK); - } else { - addr = kmem_alloc_contig(size, flags & GFP_NATIVE_MASK, 0, - BUS_SPACE_MAXADDR_32BIT, PAGE_SIZE, 0, VM_MEMATTR_DEFAULT); - } + addr = kmem_alloc_contig(size, flags & GFP_NATIVE_MASK, 0, + ((flags & GFP_DMA32) == 0) ? -1UL : BUS_SPACE_MAXADDR_32BIT, + PAGE_SIZE, 0, VM_MEMATTR_DEFAULT); + return ((vm_offset_t)addr); } From nobody Fri Apr 18 14:36:52 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQY137Nz5stbN; Fri, 18 Apr 2025 14:36:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQX2N3cz3Jnx; Fri, 18 Apr 2025 14:36:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ow3xRhuhf8xRfEUgzG7XSuYIzWPsfbuS3zbuege2r78=; b=JORspgY2BpCOK7iOudfxiSZLkBEabXchnXsLn2ykdyE6hAug80kqh0TLuGuV5K/K3es4xE lM5fmJgoZPHjMLNqCWktVDFyPqoXbjuZ46N5sNFxm/4KwqARtEJxPymYIMKHi6lf7vd4QE KkzozZqW4VHVGO5eb9HenOaSShhBCdRXlU+kGS/sqhh9DBFNcr3y8aR++kzYvHPd8z1vgX +bEd2N8/rjbaTNTbMYi++03+tktddMG3BBXf3TFrDF69dlBJtDaIYoqgjDr9rklrLs78Sn i7GPj047VF/X3pNK7WE2CT3JJfZ5tYdIzwzBMVdsndBtuGVfP9cIBWubz7fxoA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987012; a=rsa-sha256; cv=none; b=KYhL/xNugDkCrTLNhVPjIpOL30ChXY90i04ZkfmBr3yYaLaRvpVdKg/DNZiEPNwTbOAziX Z2l14X+tr0KAj937GcY9GGAeGdj419KH/lD+VS1UQOwV/L/MwV2plf9xU/ncytIp2tgpFy Mn4kuDTmEyqP0H5Ad/nTrxyxYCjPbMsLzetsRSje7oPsI32pNgAbVnJDjEvqphZzlWp/qx 3tBkBCOmU+oVIR2/QXQdGwYmKjnJEkkuit9O4Fr0ut268Edxtk1PGFB8VGfmldWhZZn/jv xTcRQgNsDYnrQhs0H6C4kiHr/3rZeY13OaV2xHwSAdQzoYhraqjL7krySV+DCQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987012; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ow3xRhuhf8xRfEUgzG7XSuYIzWPsfbuS3zbuege2r78=; b=cRVJYjEqSCZDdjRxAQDsuyoxDD/725w1CdTC3KHH6tNcdiraDzQblTn4PvcPbGHmEq5mFs 4JI7Jf1wy3Bzi/9dmbemUEIbMe9I9xzkoLc4S4xUVZ8tvI8IlSxEP2fRRnt0s+42fOWJsB TTz20os+QNkSViG1gEICXK3Ll5P2biBrvCNrwILQ3dGYiIEFmXuwH65OmMZYa8mr9uxyT3 ba9qLIwMSYyUq99uTKPNu2DU4+nvaau76h2waqT2fcW5BpYOArE5JBOob/oxPIJmXHmezw LPgDNTgQWoFbGH/gEE/5WyIGOCy9AvgNdGTToURfhuivYwuqEWlGC0yg2gQsHw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQX1yV6zf3m; Fri, 18 Apr 2025 14:36:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEaqY7091102; Fri, 18 Apr 2025 14:36:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEaqCl091099; Fri, 18 Apr 2025 14:36:52 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:52 GMT Message-Id: <202504181436.53IEaqCl091099@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 4fc30b0186b6 - stable/14 - LinuxKPI: be more verbose on _bus_dmamap_load_phys failures if debug is on List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4fc30b0186b628013ef566d376526e427644cf94 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=4fc30b0186b628013ef566d376526e427644cf94 commit 4fc30b0186b628013ef566d376526e427644cf94 Author: Bjoern A. Zeeb AuthorDate: 2025-03-29 14:31:18 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:57 +0000 LinuxKPI: be more verbose on _bus_dmamap_load_phys failures if debug is on With the [k]malloc adjustments in switching skbuff from using a tunable and conditional contigmalloc with boundries to using __kmalloc as allocator should just work. The allocations are now physically contiguous and nseg=1 should be fine even if we have to bounce. The problem now coming back is that busdma bounce code cannot deal with larger contiguous nseg=1 allocations. I originally found that on arm64 more than two years ago but I am also seeing it for amd64 now. Improve the debugging beyond the dump_stack() call and print the busdma error (so we know if it is EFBIG or else), print the physical address so we can see better if we should bounce and print the length so we have an idea on what lengths we are failing. D45813 has some observations and rtw88 seems to be a good driver to test with. Sponsored by: The FreeBSD Foundation Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D49569 (cherry picked from commit a12a9c6c59764b876f06355f9f857e0018188d91) --- sys/compat/linuxkpi/common/src/linux_pci.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c index ce7f91cd15ac..36dbac24496b 100644 --- a/sys/compat/linuxkpi/common/src/linux_pci.c +++ b/sys/compat/linuxkpi/common/src/linux_pci.c @@ -1452,14 +1452,19 @@ linux_dma_map_phys_common(struct device *dev, vm_paddr_t phys, size_t len, } nseg = -1; - if (_bus_dmamap_load_phys(obj->dmat, obj->dmamap, phys, len, - BUS_DMA_NOWAIT, &seg, &nseg) != 0) { + error = _bus_dmamap_load_phys(obj->dmat, obj->dmamap, phys, len, + BUS_DMA_NOWAIT, &seg, &nseg); + if (error != 0) { bus_dmamap_destroy(obj->dmat, obj->dmamap); DMA_PRIV_UNLOCK(priv); uma_zfree(linux_dma_obj_zone, obj); counter_u64_add(lkpi_pci_nseg1_fail, 1); - if (linuxkpi_debug) + if (linuxkpi_debug) { + device_printf(dev->bsddev, "%s: _bus_dmamap_load_phys " + "error %d, phys %#018jx len %zu\n", __func__, + error, (uintmax_t)phys, len); dump_stack(); + } return (0); } From nobody Fri Apr 18 14:36:54 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQZ6pt2z5stDp; Fri, 18 Apr 2025 14:36:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQZ4L3Dz3K6t; Fri, 18 Apr 2025 14:36:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rP+ZGnkcQmRT4l78eQB9TCgte5jZja9jy7wR38sq4Bw=; b=N+Gs8GzMRY20QXzztCq25tiNGdLtYXr3QuqwI+NhCxJOhV8Z8o7t0S/Ze1rHvyU4r9gJWt 226uJRV3C04cPNoS3ypXkYsc133e3dLAJ3nI5G6rZN4VdsvWjNr5Ieb7vFiMXPh0nodIBe 0G1Le3GiY7Q8qxwyza8jPByZG5rnC7pADirk3Yalpiv3fVjfeMeZ2WRohShkOfd1F/Dbmm Z9dEmkaWAeGQTSkZAYr3M9ZB1NgrF+MNxI7HypQNrUhbVXUTQqzKPazG9s3OXnsMP6Ytjj gCjmcc+y4CTUsbQQBtfUlewYaX/fobPV9RakRr9yuVyRNNkfVxIQU5k20UH4pA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987014; a=rsa-sha256; cv=none; b=uQJL9RH2xwvLJrS6KyVzJDJmCJzh8COUwnodN8G7m4GX3aidnkQy0s4wb4nReDtX2xepX5 c01sftfLasuQs+hjyGRqDlswQGMFCthAxscgOmL1eEUVDAR90ycYw11ToZwkLadfCQH7OP +4vtNQ1B0qrh14bxzX0yBQ5Xiv7Ncl0x66fKs0EtxslGVQK/XK7v9XKwHCLaygr0hh4bNq Xpe/F38uou9DxxyhpMVzTDC94V31gMM9QkS0Ta9axr1XE4dXsaUnmeI6dLGbpaRI/QLGmT cJQYp/OSzOHX3itSoLFTLt0P8sTHcqIa1wFgnKnAUAUE1KGZRwhLMLdzdBi6gg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987014; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rP+ZGnkcQmRT4l78eQB9TCgte5jZja9jy7wR38sq4Bw=; b=N9CalO2uJdi40QpiA8a5RQzmzmiEccXKgEp6ExN0+sKblOnt6eUbwuBoW/7n6o4pPYkD6R nblFDsYod/OViMryhNiPwIReazOqWj89XbMv85g1GaL/jX/GnUFEDKHaqzaKXWvGaSAV2Y zl3GTk5xZFwvpQMuPq97SL59jTjAJrf9DepUExzd0uddAtaRZzUSrZyQNy/MSNV6KNVdf8 z8WuKG5mGhMpNS4HBWVjIrvVxg0exWkMzNeyb1h00AKWicasCbt2DxbFpVf2vpBQR2cLn9 ENjyBsPxfgqXkxFH9bDTaRUz3Fo2alPERnxw0lFMqUOH8suSgXqABTe7VsDorA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQZ3nFTzdt9; Fri, 18 Apr 2025 14:36:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEasRC091189; Fri, 18 Apr 2025 14:36:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEasKt091186; Fri, 18 Apr 2025 14:36:54 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:54 GMT Message-Id: <202504181436.53IEasKt091186@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 3404752d554f - stable/14 - LinuxKPI: switch mallocarray to an lkpi implementation using __kmalloc() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3404752d554fad152be8cdf02859b47780a61ca8 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3404752d554fad152be8cdf02859b47780a61ca8 commit 3404752d554fad152be8cdf02859b47780a61ca8 Author: Bjoern A. Zeeb AuthorDate: 2025-03-20 23:54:12 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:57 +0000 LinuxKPI: switch mallocarray to an lkpi implementation using __kmalloc() With mallocarray() we cannot guarantee that any size larger than PAGE_SIZE will be contiguous. Switch kmalloc_array() and kmalloc_array_node() to use __kmalloc()/lkpi___kmalloc_node() as their underlying implementation which now does provide that guarantee. Likewise adjust kcalloc_node() to use kmalloc_array_node(). This means we only have two (plain + _node) underlying allocation routines for the entire category of functions. Also adjust kvmalloc() and kvmalloc_array() to be a "mirrored" implementation to their non-v counterparts. These may return non-contiguous memory so can use malloc(). Sponsored by: The FreeBSD Foundation Reviewed by: jhb Extra thanks to: jhb for helping sorting this out Differential Revision: https://reviews.freebsd.org/D46657 (cherry picked from commit 1c81ebec74d8a71c770f7835d3bc6e02c13467a0) --- sys/compat/linuxkpi/common/include/linux/slab.h | 48 +++++++++++++++---------- sys/compat/linuxkpi/common/src/linux_compat.c | 12 +++---- sys/compat/linuxkpi/common/src/linux_slab.c | 12 +++++++ 3 files changed, 48 insertions(+), 24 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/slab.h b/sys/compat/linuxkpi/common/include/linux/slab.h index 07c16884b00e..ddaabcef0b9c 100644 --- a/sys/compat/linuxkpi/common/include/linux/slab.h +++ b/sys/compat/linuxkpi/common/include/linux/slab.h @@ -42,7 +42,6 @@ MALLOC_DECLARE(M_KMALLOC); #define kmalloc(size, flags) lkpi_kmalloc(size, flags) -#define kvmalloc(size, flags) kmalloc(size, flags) #define kvzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO) #define kvcalloc(n, size, flags) kvmalloc_array(n, size, (flags) | __GFP_ZERO) #define kzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO) @@ -93,6 +92,7 @@ struct linux_kmem_cache; extern void *lkpi_kmalloc(size_t size, gfp_t flags); void *lkpi___kmalloc(size_t size, gfp_t flags); +void *lkpi___kmalloc_node(size_t size, gfp_t flags, int node); #define __kmalloc(_s, _f) lkpi___kmalloc(_s, _f) static inline gfp_t @@ -113,23 +113,39 @@ linux_check_m_flags(gfp_t flags) static inline void * kmalloc_node(size_t size, gfp_t flags, int node) { - return (malloc_domainset(size, M_KMALLOC, - linux_get_vm_domain_set(node), linux_check_m_flags(flags))); + return (lkpi___kmalloc_node(size, flags, node)); +} + +static inline void * +kmalloc_array(size_t n, size_t size, gfp_t flags) +{ + if (WOULD_OVERFLOW(n, size)) + panic("%s: %zu * %zu overflowed", __func__, n, size); + + return (kmalloc(size * n, flags)); } static inline void * kcalloc(size_t n, size_t size, gfp_t flags) { flags |= __GFP_ZERO; - return (mallocarray(n, size, M_KMALLOC, linux_check_m_flags(flags))); + return (kmalloc_array(n, size, linux_check_m_flags(flags))); +} + +static inline void * +kmalloc_array_node(size_t n, size_t size, gfp_t flags, int node) +{ + if (WOULD_OVERFLOW(n, size)) + panic("%s: %zu * %zu overflowed", __func__, n, size); + + return (kmalloc_node(size * n, flags, node)); } static inline void * kcalloc_node(size_t n, size_t size, gfp_t flags, int node) { flags |= __GFP_ZERO; - return (mallocarray_domainset(n, size, M_KMALLOC, - linux_get_vm_domain_set(node), linux_check_m_flags(flags))); + return (kmalloc_array_node(n, size, flags, node)); } static inline void * @@ -151,23 +167,20 @@ vmalloc_32(size_t size) return (contigmalloc(size, M_KMALLOC, M_WAITOK, 0, UINT_MAX, 1, 1)); } +/* May return non-contiguous memory. */ static inline void * -kmalloc_array(size_t n, size_t size, gfp_t flags) -{ - return (mallocarray(n, size, M_KMALLOC, linux_check_m_flags(flags))); -} - -static inline void * -kmalloc_array_node(size_t n, size_t size, gfp_t flags, int node) +kvmalloc(size_t size, gfp_t flags) { - return (mallocarray_domainset(n, size, M_KMALLOC, - linux_get_vm_domain_set(node), linux_check_m_flags(flags))); + return (malloc(size, M_KMALLOC, linux_check_m_flags(flags))); } static inline void * kvmalloc_array(size_t n, size_t size, gfp_t flags) { - return (mallocarray(n, size, M_KMALLOC, linux_check_m_flags(flags))); + if (WOULD_OVERFLOW(n, size)) + panic("%s: %zu * %zu overflowed", __func__, n, size); + + return (kvmalloc(size * n, flags)); } static inline void * @@ -179,9 +192,8 @@ krealloc(void *ptr, size_t size, gfp_t flags) static inline void * krealloc_array(void *ptr, size_t n, size_t size, gfp_t flags) { - if (WOULD_OVERFLOW(n, size)) { + if (WOULD_OVERFLOW(n, size)) return NULL; - } return (realloc(ptr, n * size, M_KMALLOC, linux_check_m_flags(flags))); } diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c index b60f464377cc..a30523e88864 100644 --- a/sys/compat/linuxkpi/common/src/linux_compat.c +++ b/sys/compat/linuxkpi/common/src/linux_compat.c @@ -2719,8 +2719,8 @@ linux_compat_init(void *arg) boot_cpu_data.x86_model = CPUID_TO_MODEL(cpu_id); boot_cpu_data.x86_vendor = x86_vendor; - __cpu_data = mallocarray(mp_maxid + 1, - sizeof(*__cpu_data), M_KMALLOC, M_WAITOK | M_ZERO); + __cpu_data = kmalloc_array(mp_maxid + 1, + sizeof(*__cpu_data), M_WAITOK | M_ZERO); CPU_FOREACH(i) { __cpu_data[i].x86_clflush_size = cpu_clflush_line_size; __cpu_data[i].x86_max_cores = mp_ncpus; @@ -2762,8 +2762,8 @@ linux_compat_init(void *arg) * This is used by cpumask_of() (and possibly others in the future) for, * e.g., drivers to pass hints to irq_set_affinity_hint(). */ - static_single_cpu_mask = mallocarray(mp_maxid + 1, - sizeof(static_single_cpu_mask), M_KMALLOC, M_WAITOK | M_ZERO); + static_single_cpu_mask = kmalloc_array(mp_maxid + 1, + sizeof(static_single_cpu_mask), M_WAITOK | M_ZERO); /* * When the number of CPUs reach a threshold, we start to save memory @@ -2782,9 +2782,9 @@ linux_compat_init(void *arg) * (_BITSET_BITS / 8)' bytes (for comparison with the * overlapping scheme). */ - static_single_cpu_mask_lcs = mallocarray(mp_ncpus, + static_single_cpu_mask_lcs = kmalloc_array(mp_ncpus, sizeof(*static_single_cpu_mask_lcs), - M_KMALLOC, M_WAITOK | M_ZERO); + M_WAITOK | M_ZERO); sscm_ptr = static_single_cpu_mask_lcs; CPU_FOREACH(i) { diff --git a/sys/compat/linuxkpi/common/src/linux_slab.c b/sys/compat/linuxkpi/common/src/linux_slab.c index bc780ab3f609..4b0b18178a5c 100644 --- a/sys/compat/linuxkpi/common/src/linux_slab.c +++ b/sys/compat/linuxkpi/common/src/linux_slab.c @@ -207,6 +207,18 @@ linux_kmem_cache_destroy(struct linux_kmem_cache *c) free(c, M_KMALLOC); } +void * +lkpi___kmalloc_node(size_t size, gfp_t flags, int node) +{ + if (size <= PAGE_SIZE) + return (malloc_domainset(size, M_KMALLOC, + linux_get_vm_domain_set(node), linux_check_m_flags(flags))); + else + return (contigmalloc_domainset(size, M_KMALLOC, + linux_get_vm_domain_set(node), linux_check_m_flags(flags), + 0, -1UL, PAGE_SIZE, 0)); +} + void * lkpi___kmalloc(size_t size, gfp_t flags) { From nobody Fri Apr 18 14:36:53 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQY6K6Vz5stbV; Fri, 18 Apr 2025 14:36:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQY3MVbz3Jll; Fri, 18 Apr 2025 14:36:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vkQMNb9bxij/S6xrmhzEe6XCY18EZMkR0kg5qz6KurY=; b=os3wuYA0jz7mzFbaICOKSg0eGvuK+6zCrpAR6iBfhZX5/Gl1K5pjGpHZv7ohDuW3T0QL2I v1DzoWN3fh/5x4IqbUyWZr0b45/l48BpXG0L6TSlOBPqEDBY70rznfNnyyUDCcFdjUsPss b6Tbwvbp7QTWwCR+/JUQ7HWxKxPBN5NZVr7ssYx7rb4Tdc0aLJgXcwWzkez7wsN4rt6Jn5 G4dBXx9YNEaRme/hxJeUbACh7h3ECHMciyX12YIVRPLhyyRfCXXYdmD6slgpwHaakzn0zL vB+sHH4teewK572DbZLEIGOpZElDVH2dJIxiZSuPnawjTLPQEueMGJRx51d/Iw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987013; a=rsa-sha256; cv=none; b=SYdeQyQ8DCeLqKgLgjf1rCYUIMKzdCzS+VGwmI7ppEVBNWN4pF2z/J59SHp/yX8CXLf4XG KYLCigIfQ6iIwtBFTzK1CZrK0Cwjmul2xTI4ecgBmpG5qlKbWQpPRTGOOIPDRm1h75n1JT 6YKDfhNJeFWCdDP5W86UW5DtSPrRd1tzabvR7bp7MJ1eiKq8wUqASxZE1ZytjhzZvzLkCx xim50HNu8eZBKBZg2uQ/8RyeAdfv1c79ErgydGhkFwk+Z0h1tiGyo3WAoGXCgFPNCfRM/c TeHdl/RHlRJruavia1IXCiUUnfl7k60ZxVLhX9LifF2HTPMTob588QYBfl28/Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987013; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vkQMNb9bxij/S6xrmhzEe6XCY18EZMkR0kg5qz6KurY=; b=jnz96jCCW5x0GI37ZGSme4bieH8Rmf3Q9EjMq+oYN75Ap/VIdsgSLIRH1eDBKDAVAyfhDY Lxpe3TqyKDrcePkG7o3E9BVuR0kldM17Jo3MlFcGu8oQBjGGHc+ntKWtk88Zttstwyqov8 lzZpj4lPioagjhm3R4J3/vVwtUjnpUeINfM3GTKkNrsqMsjVZh0Z/KzJjBFiLoa69Df64n eCtOKhmJhN9ceAHLpL+NviW4wnv5bf9X7QJuLXedKGGeEgRCFz9WYHF2TYa9eqedCuk9VZ hlsumc6lFyShTaCCbnySH+KevGZKnNMGuQ01F1RBtsggRKywX5ubSsRCjQwj2g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQY2tBCzdxr; Fri, 18 Apr 2025 14:36:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEarLD091143; Fri, 18 Apr 2025 14:36:53 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEar4d091140; Fri, 18 Apr 2025 14:36:53 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:53 GMT Message-Id: <202504181436.53IEar4d091140@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: d684da076bbd - stable/14 - LinuxKPi: lkpi___kmalloc change a < into <= for proper boundry check List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: d684da076bbd85dee7a942cbe5b71ec0c083dc35 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=d684da076bbd85dee7a942cbe5b71ec0c083dc35 commit d684da076bbd85dee7a942cbe5b71ec0c083dc35 Author: Bjoern A. Zeeb AuthorDate: 2025-03-29 14:30:26 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:57 +0000 LinuxKPi: lkpi___kmalloc change a < into <= for proper boundry check lkpi___kmalloc() would use contigmalloc if the requested size is exactly PAGE_SIZE. But we can still fullfill this request from malloc() without losing the guarantee of physical contiguous memory. Sponsored by: The FreeBSD Foundation Reported by: emaste (in D46656) Fixes: 19df0c5abcb9d Reviewed by: dumbbell, emaste Differential Revision: https://reviews.freebsd.org/D49570 (cherry picked from commit 19efc9e6320a30e230b0b40d5bae90142ec13aeb) --- sys/compat/linuxkpi/common/src/linux_slab.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/compat/linuxkpi/common/src/linux_slab.c b/sys/compat/linuxkpi/common/src/linux_slab.c index 5be4c1ec674c..bc780ab3f609 100644 --- a/sys/compat/linuxkpi/common/src/linux_slab.c +++ b/sys/compat/linuxkpi/common/src/linux_slab.c @@ -215,7 +215,7 @@ lkpi___kmalloc(size_t size, gfp_t flags) /* sizeof(struct llist_node) is used for kfree_async(). */ _s = MAX(size, sizeof(struct llist_node)); - if (_s < PAGE_SIZE) + if (_s <= PAGE_SIZE) return (malloc(_s, M_KMALLOC, linux_check_m_flags(flags))); else return (contigmalloc(_s, M_KMALLOC, linux_check_m_flags(flags), From nobody Fri Apr 18 14:36:55 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQc43lvz5st3g; Fri, 18 Apr 2025 14:36:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQb4tzzz3K2y; Fri, 18 Apr 2025 14:36:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3lMvo41WwzGmB6YGth2hufX4nzuZQ+h9ktCHEldwuYs=; b=caDqJIn5fm/K9Sr7ye9terTE0sfpddqEal5u7LlNsf0MEWURCzcv5WXEI/7aUYrBZLViIw SyUrnh9eXiS3xeSwjxbEimAeNxQ6ajRcyR0vDZIpqWP03y4XOSQ+DkbSeH5eJzvDgf27TR wSPyWCi26u4MmiRMGq07WxI4cRGoq1SaY2XnvRrpFFNXYXhlELcIGkynip0dq5Z2M058cA A4+fq39Y1BYFOk9Z0Y08z4z/npAy24pSrgkgVKuoHDlyoPOv9aiYtkbb+o6uPaY9tvzJgS fDmS9okSWoJNHyUEGJ14Hr1lQDGyloJLgbiwvQXYpLv151I4Z55mDmFQLyLB6A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987015; a=rsa-sha256; cv=none; b=MFYGLuBjyUZY1RyLRGGnpCiCDGNEt7YUkhn/yvMUIwtKznHD+HESF/6IzdGYp/ViqfevxN A4mciHUXFjFydLuhjEyFy34xOrc+DJ78qN7Nzc16LbbRAsc3iB/Y2BE0M09QwYDquWqZQE pGeje9uhNu7xllPv1J/TurONd6+UN/2EHGgGxTRhfHQev5k+OeVFyWx/60JDei26o/rIkG U1OQrUwz+j7JIUYc5T8ZpAFXCem5Aff8jpFoZ+FYQxDyr7gtP6QfgWfFWI2pgZjDcLFmoE FkCAiFmGx4ish8uUcZTsDduZAJXb+1aO2x+okVttX714MgOHUtYqrsGfVxYEWw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987015; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3lMvo41WwzGmB6YGth2hufX4nzuZQ+h9ktCHEldwuYs=; b=Pdf/9f8kMzK5cIOT7yLiQzFw/EAXqSB7FMD3N5c9jVRC7sWM8HvLJLjVB3dzIW99yJZFGp 3fSqdylro6i7TyN4nogI12S3t5B3sciLZ8LsrfFR1QWzTIZNKlOGHVv0CxSzjv9d/ZLIfo 3zqkyMn+Miavrh/LnXlaV1SZ7laecsQ20JY0m0O5Xcf8+iCIhMrch+596oRzFdC5pPldyf 0UW0ZfhqFgzLyTO9O7TapyLndHay79e3tSfHyuXt+zXrig2JbhTLFF9N4pB5Qj11VPkvSP pxHz/ZwdBIUAFIUrXDXzvkw+n6Zl8EiBz6c7XELZIifRPT5by+OYEy9Wyr+5wg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQb4TfZzfDw; Fri, 18 Apr 2025 14:36:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEatmd091227; Fri, 18 Apr 2025 14:36:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEatur091224; Fri, 18 Apr 2025 14:36:55 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:55 GMT Message-Id: <202504181436.53IEatur091224@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 516eb937b274 - stable/14 - LinuxKPI: implement krealloc() for memory being contiguous List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 516eb937b274c34793f9b640e547eee0dc185b2d Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=516eb937b274c34793f9b640e547eee0dc185b2d commit 516eb937b274c34793f9b640e547eee0dc185b2d Author: Bjoern A. Zeeb AuthorDate: 2025-03-29 17:05:58 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:58 +0000 LinuxKPI: implement krealloc() for memory being contiguous Implement krealloc_array() using krealloc(). Implement krealloc() doing the various size checks ourselves and use realloc() or kmalloc() depending on old and new allocation sizes. This way we can ensure that allocated memory stays physically contiguous. Sponsored by: The FreeBSD Foundation Suggested by: jhb (see D46657) Reviewed by: jhb, markj Differential Revision: https://reviews.freebsd.org/D49571 (cherry picked from commit 1c95d401ebe5075ebb38b57638830713a496f107) --- sys/compat/linuxkpi/common/include/linux/slab.h | 31 +++++++++++----------- sys/compat/linuxkpi/common/src/linux_slab.c | 35 +++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/slab.h b/sys/compat/linuxkpi/common/include/linux/slab.h index ddaabcef0b9c..a692ccb8b944 100644 --- a/sys/compat/linuxkpi/common/include/linux/slab.h +++ b/sys/compat/linuxkpi/common/include/linux/slab.h @@ -94,6 +94,7 @@ extern void *lkpi_kmalloc(size_t size, gfp_t flags); void *lkpi___kmalloc(size_t size, gfp_t flags); void *lkpi___kmalloc_node(size_t size, gfp_t flags, int node); #define __kmalloc(_s, _f) lkpi___kmalloc(_s, _f) +void *lkpi_krealloc(void *, size_t, gfp_t); static inline gfp_t linux_check_m_flags(gfp_t flags) @@ -148,6 +149,21 @@ kcalloc_node(size_t n, size_t size, gfp_t flags, int node) return (kmalloc_array_node(n, size, flags, node)); } +static inline void * +krealloc(void *ptr, size_t size, gfp_t flags) +{ + return (lkpi_krealloc(ptr, size, flags)); +} + +static inline void * +krealloc_array(void *ptr, size_t n, size_t size, gfp_t flags) +{ + if (WOULD_OVERFLOW(n, size)) + return NULL; + + return (krealloc(ptr, n * size, flags)); +} + static inline void * __vmalloc(size_t size, gfp_t flags, int other) { @@ -183,21 +199,6 @@ kvmalloc_array(size_t n, size_t size, gfp_t flags) return (kvmalloc(size * n, flags)); } -static inline void * -krealloc(void *ptr, size_t size, gfp_t flags) -{ - return (realloc(ptr, size, M_KMALLOC, linux_check_m_flags(flags))); -} - -static inline void * -krealloc_array(void *ptr, size_t n, size_t size, gfp_t flags) -{ - if (WOULD_OVERFLOW(n, size)) - return NULL; - - return (realloc(ptr, n * size, M_KMALLOC, linux_check_m_flags(flags))); -} - extern void linux_kfree_async(void *); static inline void diff --git a/sys/compat/linuxkpi/common/src/linux_slab.c b/sys/compat/linuxkpi/common/src/linux_slab.c index 4b0b18178a5c..abcffdb094f5 100644 --- a/sys/compat/linuxkpi/common/src/linux_slab.c +++ b/sys/compat/linuxkpi/common/src/linux_slab.c @@ -234,6 +234,41 @@ lkpi___kmalloc(size_t size, gfp_t flags) 0, -1UL, PAGE_SIZE, 0)); } +void * +lkpi_krealloc(void *ptr, size_t size, gfp_t flags) +{ + void *nptr; + size_t osize; + + /* + * First handle invariants based on function arguments. + */ + if (ptr == NULL) + return (kmalloc(size, flags)); + + osize = ksize(ptr); + if (size <= osize) + return (ptr); + + /* + * We know the new size > original size. realloc(9) does not (and cannot) + * know about our requirements for physically contiguous memory, so we can + * only call it for sizes up to and including PAGE_SIZE, and otherwise have + * to replicate its functionality using kmalloc to get the contigmalloc(9) + * backing. + */ + if (size <= PAGE_SIZE) + return (realloc(ptr, size, M_KMALLOC, linux_check_m_flags(flags))); + + nptr = kmalloc(size, flags); + if (nptr == NULL) + return (NULL); + + memcpy(nptr, ptr, osize); + kfree(ptr); + return (nptr); +} + struct lkpi_kmalloc_ctx { size_t size; gfp_t flags; From nobody Fri Apr 18 14:36:56 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQd0sj8z5stdr; Fri, 18 Apr 2025 14:36:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQc63yzz3Jxd; Fri, 18 Apr 2025 14:36:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YxmKw1nekafzVXrQxc0/4kdYXoHvqfdVrdNAuSlJaHo=; b=aYMNz4LmlYGfiXf/ntRlwaj6onZlOVUi0D4ZtdpqK5LVy/y9gtJEvLoaCJMxxOlot8Ms1i bbg1RNjz/7C9nc1ki2k6/MLIOoD3snj6lTGZj6ha68ov/3QgYW3eBlR+QLebQ0GFIL9ZQ8 2Mri2aXRnRNqGeZEFRXoH2IS/FAsm4uhok4ngaT+zNF+5ReiCbB8TPZ90npFkJShIttaDD DtvSVzaUhRi7mGzdRAH4+aQSnMUYzsEhae3eVHVwEBKBrPUQ1MUVSYgH58pVsMjxgb3Ez0 hI6eakq0L/3uZOACwztmwpUVwOSxzNoQ9BElHA1Z2jY34a5gjUMdk/yOpYpcig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987016; a=rsa-sha256; cv=none; b=PPrjcaFbOqNRbO8kxUdi5PcDjX2xOOkZjV41GeKBtUYBqD+ooD1rnfax9vM1bkyW4zM0Lj xUa6yp7oS2Jb8+vOPKsNoKAtw0hUVHu5Bse+LtWoeZA8umNcWWHjxTrOfNwWG50BVKQZ+0 dlPeYH+rVi/JzKdJGq78QaTGIChqFHaeBGMJfbgm8fyNKe0CbYGmCj+lIf2sdKtMxl0YcE 5IuPl4e2pMFnsEP2oHkm9AN5ygWSY1v1BQroN6wPHYCZ7ySvbr3oy18k/5CY4FTEKOOT9R box5uuBWyrBkDUPHmJZtbDSol3ZxeuqoLmfizFrozCOFleI++ic5MeqKjOHDzw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YxmKw1nekafzVXrQxc0/4kdYXoHvqfdVrdNAuSlJaHo=; b=qfAZXVOk/4A/FrkKZfLcYOQsZfMuXnwdzPqU3DoGMvt/2jAId6uXcmQcqNDXRGHrxFzYzo t8vLGd6mxtNT2kz9a6xm25kGJV8E7qJWKeCYfhaEnXIz2EEx8AOR84eVJUwPVvERpq9+c6 LSRHwsfyCb/lCemuGNsSkh92zQ40pmI5HYRUj3c/vkxhZIdE5gWoVsimACnqHMXu6nd3ly pdwc96t0yfXy6h8avk5a6KTu5aJxwBeBmPA6cAhm4dk0dvDSdD7C0Aok+g+f89cQCBfahW sKuCL702eeZPzteeAfnhGZA8EqRYdMwAEoTGCx/O0SuwCgcdybi1toq7snAWuA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQc5N6Hzf3n; Fri, 18 Apr 2025 14:36:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEauxG091265; Fri, 18 Apr 2025 14:36:56 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEaub8091262; Fri, 18 Apr 2025 14:36:56 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:56 GMT Message-Id: <202504181436.53IEaub8091262@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ebe210ca703b - stable/14 - LinuxKPI; cleanup slab.h a bit; move more free() into slab.c List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ebe210ca703bd584274396b2c0fa1694750f05c1 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ebe210ca703bd584274396b2c0fa1694750f05c1 commit ebe210ca703bd584274396b2c0fa1694750f05c1 Author: Bjoern A. Zeeb AuthorDate: 2025-03-29 17:33:08 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:58 +0000 LinuxKPI; cleanup slab.h a bit; move more free() into slab.c Move kfree() into slab.c as an implementation and hide the private function linux_kfree_async() entirely. Remove a ; at the end of a define and sort some defines into place. Remove extern from function declarations and move the closer to where they belong. Sort the functions into "base allocator/free" functions--these have an implementation in slab.c and are ensuring contiguous physical memory allocations. Followed by inline functions using these base allocators to implement their functionality; vmalloc/kvalloc, and misc functions. Sponsored by: The FreeBSD Foundation Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D49572 (cherry picked from commit a3e6f97bf57c1d323487d07369aec66542f995ce) --- sys/compat/linuxkpi/common/include/linux/slab.h | 111 ++++++++++++++---------- sys/compat/linuxkpi/common/src/linux_slab.c | 19 +++- 2 files changed, 84 insertions(+), 46 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/slab.h b/sys/compat/linuxkpi/common/include/linux/slab.h index a692ccb8b944..f3a840d9bf4b 100644 --- a/sys/compat/linuxkpi/common/include/linux/slab.h +++ b/sys/compat/linuxkpi/common/include/linux/slab.h @@ -4,6 +4,10 @@ * Copyright (c) 2010 Panasas, Inc. * Copyright (c) 2013-2021 Mellanox Technologies, Ltd. * All rights reserved. + * Copyright (c) 2024-2025 The FreeBSD Foundation + * + * Portions of this software were developed by Björn Zeeb + * under sponsorship from the FreeBSD Foundation. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,12 +45,12 @@ MALLOC_DECLARE(M_KMALLOC); -#define kmalloc(size, flags) lkpi_kmalloc(size, flags) #define kvzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO) #define kvcalloc(n, size, flags) kvmalloc_array(n, size, (flags) | __GFP_ZERO) #define kzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO) #define kzalloc_node(size, flags, node) kmalloc_node(size, (flags) | __GFP_ZERO, node) #define kfree_const(ptr) kfree(ptr) +#define kfree_async(ptr) kfree(ptr) /* drm-kmod 5.4 compat */ #define vzalloc(size) __vmalloc(size, GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO, 0) #define vfree(arg) kfree(arg) #define kvfree(arg) kfree(arg) @@ -84,17 +88,21 @@ struct linux_kmem_cache; #define ARCH_KMALLOC_MINALIGN \ __alignof(unsigned long long) -/* drm-kmod 5.4 compat */ -#define kfree_async(ptr) kfree(ptr); - #define ZERO_SIZE_PTR ((void *)16) #define ZERO_OR_NULL_PTR(x) ((x) == NULL || (x) == ZERO_SIZE_PTR) -extern void *lkpi_kmalloc(size_t size, gfp_t flags); -void *lkpi___kmalloc(size_t size, gfp_t flags); -void *lkpi___kmalloc_node(size_t size, gfp_t flags, int node); -#define __kmalloc(_s, _f) lkpi___kmalloc(_s, _f) +struct linux_kmem_cache *linux_kmem_cache_create(const char *name, + size_t size, size_t align, unsigned flags, linux_kmem_ctor_t *ctor); +void *lkpi_kmem_cache_alloc(struct linux_kmem_cache *, gfp_t); +void *lkpi_kmem_cache_zalloc(struct linux_kmem_cache *, gfp_t); +void lkpi_kmem_cache_free(struct linux_kmem_cache *, void *); +void linux_kmem_cache_destroy(struct linux_kmem_cache *); + +void *lkpi_kmalloc(size_t, gfp_t); +void *lkpi___kmalloc(size_t, gfp_t); +void *lkpi___kmalloc_node(size_t, gfp_t, int); void *lkpi_krealloc(void *, size_t, gfp_t); +void lkpi_kfree(const void *); static inline gfp_t linux_check_m_flags(gfp_t flags) @@ -111,12 +119,43 @@ linux_check_m_flags(gfp_t flags) return (flags & GFP_NATIVE_MASK); } +/* + * Base functions with a native implementation. + */ +static inline void * +kmalloc(size_t size, gfp_t flags) +{ + return (lkpi_kmalloc(size, flags)); +} + +static inline void * +__kmalloc(size_t size, gfp_t flags) +{ + return (lkpi___kmalloc(size, flags)); +} + static inline void * kmalloc_node(size_t size, gfp_t flags, int node) { return (lkpi___kmalloc_node(size, flags, node)); } +static inline void * +krealloc(void *ptr, size_t size, gfp_t flags) +{ + return (lkpi_krealloc(ptr, size, flags)); +} + +static inline void +kfree(const void *ptr) +{ + lkpi_kfree(ptr); +} + +/* + * Other k*alloc() funtions using the above as underlying allocator. + */ +/* kmalloc */ static inline void * kmalloc_array(size_t n, size_t size, gfp_t flags) { @@ -130,9 +169,10 @@ static inline void * kcalloc(size_t n, size_t size, gfp_t flags) { flags |= __GFP_ZERO; - return (kmalloc_array(n, size, linux_check_m_flags(flags))); + return (kmalloc_array(n, size, flags)); } +/* kmalloc_node */ static inline void * kmalloc_array_node(size_t n, size_t size, gfp_t flags, int node) { @@ -149,12 +189,7 @@ kcalloc_node(size_t n, size_t size, gfp_t flags, int node) return (kmalloc_array_node(n, size, flags, node)); } -static inline void * -krealloc(void *ptr, size_t size, gfp_t flags) -{ - return (lkpi_krealloc(ptr, size, flags)); -} - +/* krealloc */ static inline void * krealloc_array(void *ptr, size_t n, size_t size, gfp_t flags) { @@ -164,6 +199,9 @@ krealloc_array(void *ptr, size_t n, size_t size, gfp_t flags) return (krealloc(ptr, n * size, flags)); } +/* + * vmalloc/kvalloc functions. + */ static inline void * __vmalloc(size_t size, gfp_t flags, int other) { @@ -199,29 +237,6 @@ kvmalloc_array(size_t n, size_t size, gfp_t flags) return (kvmalloc(size * n, flags)); } -extern void linux_kfree_async(void *); - -static inline void -kfree(const void *ptr) -{ - if (ZERO_OR_NULL_PTR(ptr)) - return; - - if (curthread->td_critnest != 0) - linux_kfree_async(__DECONST(void *, ptr)); - else - free(__DECONST(void *, ptr), M_KMALLOC); -} - -static __inline void -kfree_sensitive(const void *ptr) -{ - if (ZERO_OR_NULL_PTR(ptr)) - return; - - zfree(__DECONST(void *, ptr), M_KMALLOC); -} - static inline void * kvrealloc(const void *ptr, size_t oldsize, size_t newsize, gfp_t flags) { @@ -239,6 +254,19 @@ kvrealloc(const void *ptr, size_t oldsize, size_t newsize, gfp_t flags) return (newptr); } +/* + * Misc. + */ + +static __inline void +kfree_sensitive(const void *ptr) +{ + if (ZERO_OR_NULL_PTR(ptr)) + return; + + zfree(__DECONST(void *, ptr), M_KMALLOC); +} + static inline size_t ksize(const void *ptr) { @@ -253,11 +281,4 @@ kmalloc_size_roundup(size_t size) return (malloc_size(size)); } -extern struct linux_kmem_cache *linux_kmem_cache_create(const char *name, - size_t size, size_t align, unsigned flags, linux_kmem_ctor_t *ctor); -extern void *lkpi_kmem_cache_alloc(struct linux_kmem_cache *, gfp_t); -extern void *lkpi_kmem_cache_zalloc(struct linux_kmem_cache *, gfp_t); -extern void lkpi_kmem_cache_free(struct linux_kmem_cache *, void *); -extern void linux_kmem_cache_destroy(struct linux_kmem_cache *); - #endif /* _LINUXKPI_LINUX_SLAB_H_ */ diff --git a/sys/compat/linuxkpi/common/src/linux_slab.c b/sys/compat/linuxkpi/common/src/linux_slab.c index abcffdb094f5..3d75ca480661 100644 --- a/sys/compat/linuxkpi/common/src/linux_slab.c +++ b/sys/compat/linuxkpi/common/src/linux_slab.c @@ -1,6 +1,10 @@ /*- * Copyright (c) 2017 Mellanox Technologies, Ltd. * All rights reserved. + * Copyright (c) 2024-2025 The FreeBSD Foundation + * + * Portions of this software were developed by Björn Zeeb + * under sponsorship from the FreeBSD Foundation. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -303,7 +307,7 @@ linux_kfree_async_fn(void *context, int pending) static struct task linux_kfree_async_task = TASK_INITIALIZER(0, linux_kfree_async_fn, &linux_kfree_async_task); -void +static void linux_kfree_async(void *addr) { if (addr == NULL) @@ -311,3 +315,16 @@ linux_kfree_async(void *addr) llist_add(addr, &linux_kfree_async_list); taskqueue_enqueue(linux_irq_work_tq, &linux_kfree_async_task); } + +void +lkpi_kfree(const void *ptr) +{ + if (ZERO_OR_NULL_PTR(ptr)) + return; + + if (curthread->td_critnest != 0) + linux_kfree_async(__DECONST(void *, ptr)); + else + free(__DECONST(void *, ptr), M_KMALLOC); +} + From nobody Fri Apr 18 14:36:57 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQf24FLz5stWG; Fri, 18 Apr 2025 14:36:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQd6T7Fz3KGD; Fri, 18 Apr 2025 14:36:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G21ZZM/ohXObVRcXAczoeIqgBq1icpUnsBB+f0c/W28=; b=oBnr/rrKvkYzsiRzBKacLiJPXeHhwR20d+012X55m4QNAZvxxmDwWsW4Js/64Q3MhESRwl AR9c5AL8RkVt6jMAw4ofHOzUq9aCrWX19ecyg7apTV1WgsWZq4vY46omVpfegQDiIssbV0 Ty3v5iqachcoK6+MMsv5vYEEd1rN6zwBBIOKRoF3JCx7nO1ojpJ+om0GZY+N0lN1n8hWLO ZGou4DE6HWgF+h+yrOVkZn9cTNw7ZYCF/KyqfV+mIkfxp8b7p1a2+okycZVm1U2s22ql4n H/42QMNR5GbgFUNH+RZ6PLM2TktHS+wn43ziGr93nlao0VgUs4+PmEMku8yn/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987017; a=rsa-sha256; cv=none; b=c8+VLIzxgehBjuP0Dcwlwa0ORdZ7nyBEU2vcDD2Df5C5h2GIojrif9JmdQC9ZX7CrWAUbh Wvc4c2L0NxA/qftuvaeSCdIOghDnEA/huSPirG1Y129qMCXz6L6T09emUujqA2ERn44jqP Mw/i6kjsBYPAj3j+G/QqWxGszu5YCpeogck7KBcDRYv8ZJ+5TGfPCG+869bPafgZpOYdN+ BkpVr2Xb/IAhbf7jhV9hM1/AFoIB6LaYTwBRYlrCHFsd/z57KwsF1zRB/c0iIQC/oJhhFb 37xDDXNeydOte9gE5o5otMvPGx3Bcp73QuPGaj+op1hGJd1VYVHbY99gjAMEQQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=G21ZZM/ohXObVRcXAczoeIqgBq1icpUnsBB+f0c/W28=; b=OSsSwAbQNgI4SutaP2Hp7K+XhbVSGBs+0IUIgRxE5Bya9YXIEUYjDmWt2VuNidwykZCFsY 8TCzVOlSYnvcMVTv0gwcDc4aTtl0T54xARX1JySZDA6erxiH3IwX60Z1zJ3oH0luu/gxSj Bh0unqlc209tWI/6guaFwHYLg/Vg5ZWvOxDTeEshyyh2vUv0FEeP2qp4HXfD2EKt5s4LRl PjiXsV2i0gcjDkSVeZuPVX4Adhon0iOZauNfNb6e1EOir4rW2DvFdIbwYtVFjh+tf5ESe3 lxWvQJNdLq2t31O/UNdvfJmcWx/WDR/6ebZ6wDTj0x2zJakuotNioZuxj9L3tg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQd62Zhzf3p; Fri, 18 Apr 2025 14:36:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEavOB091302; Fri, 18 Apr 2025 14:36:57 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEaveQ091299; Fri, 18 Apr 2025 14:36:57 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:57 GMT Message-Id: <202504181436.53IEaveQ091299@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 719721ca4b4e - stable/14 - LinuxKPI: add seq_hex_dump() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 719721ca4b4e03f9e4945fb6ba31a18023a45a0c Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=719721ca4b4e03f9e4945fb6ba31a18023a45a0c commit 719721ca4b4e03f9e4945fb6ba31a18023a45a0c Author: Bjoern A. Zeeb AuthorDate: 2025-04-02 18:06:05 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:58 +0000 LinuxKPI: add seq_hex_dump() Move the implementation of print_hex_dump() into linux_compat.c as lkpi_hex_dump() taking an extra function pointer and argument. Add two internal wrappers for printf and sbuf_printf to get a common function definition (sbuf_printf takes the extra argument). Use these to implement print_hex_dump() and the newly added seq_hex_dump(). This allows us to re-use the same implementation of print_hex_dump() for both functions without duplicating the code. Initial implementation: D49381 by dumbbell Sponsored by: The FreeBSD Foundation Reviewed by: dumbbell Differential Revision: https://reviews.freebsd.org/D49637 (cherry picked from commit 4359672e656af5e6758d0aae147212e58f445f5b) --- sys/compat/linuxkpi/common/include/linux/printk.h | 54 +++------------ .../linuxkpi/common/include/linux/seq_file.h | 14 ++++ sys/compat/linuxkpi/common/src/linux_compat.c | 80 ++++++++++++++++++++++ 3 files changed, 102 insertions(+), 46 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/printk.h b/sys/compat/linuxkpi/common/include/linux/printk.h index 3840a6e5fb8a..da9d45122d4d 100644 --- a/sys/compat/linuxkpi/common/include/linux/printk.h +++ b/sys/compat/linuxkpi/common/include/linux/printk.h @@ -44,57 +44,19 @@ enum { DUMP_PREFIX_OFFSET }; +int __lkpi_hexdump_printf(void *, const char *, ...) __printflike(2, 3); + +void lkpi_hex_dump(int(*)(void *, const char *, ...), void *arg1, + const char *, const char *, const int, const int, const int, + const void *, size_t, const bool); + static inline void print_hex_dump(const char *level, const char *prefix_str, const int prefix_type, const int rowsize, const int groupsize, const void *buf, size_t len, const bool ascii) { - typedef const struct { long long value; } __packed *print_64p_t; - typedef const struct { uint32_t value; } __packed *print_32p_t; - typedef const struct { uint16_t value; } __packed *print_16p_t; - const void *buf_old = buf; - int row; - - while (len > 0) { - if (level != NULL) - printf("%s", level); - if (prefix_str != NULL) - printf("%s ", prefix_str); - - switch (prefix_type) { - case DUMP_PREFIX_ADDRESS: - printf("[%p] ", buf); - break; - case DUMP_PREFIX_OFFSET: - printf("[%#tx] ", ((const char *)buf - - (const char *)buf_old)); - break; - default: - break; - } - for (row = 0; row != rowsize; row++) { - if (groupsize == 8 && len > 7) { - printf("%016llx ", ((print_64p_t)buf)->value); - buf = (const uint8_t *)buf + 8; - len -= 8; - } else if (groupsize == 4 && len > 3) { - printf("%08x ", ((print_32p_t)buf)->value); - buf = (const uint8_t *)buf + 4; - len -= 4; - } else if (groupsize == 2 && len > 1) { - printf("%04x ", ((print_16p_t)buf)->value); - buf = (const uint8_t *)buf + 2; - len -= 2; - } else if (len > 0) { - printf("%02x ", *(const uint8_t *)buf); - buf = (const uint8_t *)buf + 1; - len--; - } else { - break; - } - } - printf("\n"); - } + lkpi_hex_dump(__lkpi_hexdump_printf, NULL, level, prefix_str, prefix_type, + rowsize, groupsize, buf, len, ascii); } static inline void diff --git a/sys/compat/linuxkpi/common/include/linux/seq_file.h b/sys/compat/linuxkpi/common/include/linux/seq_file.h index d8b327f59538..876ef9e8dfe5 100644 --- a/sys/compat/linuxkpi/common/include/linux/seq_file.h +++ b/sys/compat/linuxkpi/common/include/linux/seq_file.h @@ -28,9 +28,13 @@ #ifndef _LINUXKPI_LINUX_SEQ_FILE_H_ #define _LINUXKPI_LINUX_SEQ_FILE_H_ +#include +#include + #include #include #include +#include #undef file #define inode vnode @@ -89,6 +93,16 @@ void lkpi_seq_printf(struct seq_file *m, const char *fmt, ...); #define seq_vprintf(...) lkpi_seq_vprintf(__VA_ARGS__) #define seq_printf(...) lkpi_seq_printf(__VA_ARGS__) +int __lkpi_hexdump_sbuf_printf(void *, const char *, ...) __printflike(2, 3); + +static inline void +seq_hex_dump(struct seq_file *m, const char *prefix_str, int prefix_type, + int rowsize, int groupsize, const void *buf, size_t len, bool ascii) +{ + lkpi_hex_dump(__lkpi_hexdump_sbuf_printf, m->buf, NULL, prefix_str, prefix_type, + rowsize, groupsize, buf, len, ascii); +} + #define file linux_file #endif /* _LINUXKPI_LINUX_SEQ_FILE_H_ */ diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c index a30523e88864..a2c2d18c8185 100644 --- a/sys/compat/linuxkpi/common/src/linux_compat.c +++ b/sys/compat/linuxkpi/common/src/linux_compat.c @@ -95,6 +95,8 @@ #include #include #include +#include +#include #if defined(__i386__) || defined(__amd64__) #include @@ -1917,6 +1919,84 @@ kasprintf(gfp_t gfp, const char *fmt, ...) return (p); } +int +__lkpi_hexdump_printf(void *arg1 __unused, const char *fmt, ...) +{ + va_list ap; + int result; + + va_start(ap, fmt); + result = vprintf(fmt, ap); + va_end(ap); + return (result); +} + +int +__lkpi_hexdump_sbuf_printf(void *arg1, const char *fmt, ...) +{ + va_list ap; + int result; + + va_start(ap, fmt); + result = sbuf_vprintf(arg1, fmt, ap); + va_end(ap); + return (result); +} + +void +lkpi_hex_dump(int(*_fpf)(void *, const char *, ...), void *arg1, + const char *level, const char *prefix_str, + const int prefix_type, const int rowsize, const int groupsize, + const void *buf, size_t len, const bool ascii) +{ + typedef const struct { long long value; } __packed *print_64p_t; + typedef const struct { uint32_t value; } __packed *print_32p_t; + typedef const struct { uint16_t value; } __packed *print_16p_t; + const void *buf_old = buf; + int row; + + while (len > 0) { + if (level != NULL) + _fpf(arg1, "%s", level); + if (prefix_str != NULL) + _fpf(arg1, "%s ", prefix_str); + + switch (prefix_type) { + case DUMP_PREFIX_ADDRESS: + _fpf(arg1, "[%p] ", buf); + break; + case DUMP_PREFIX_OFFSET: + _fpf(arg1, "[%#tx] ", ((const char *)buf - + (const char *)buf_old)); + break; + default: + break; + } + for (row = 0; row != rowsize; row++) { + if (groupsize == 8 && len > 7) { + _fpf(arg1, "%016llx ", ((print_64p_t)buf)->value); + buf = (const uint8_t *)buf + 8; + len -= 8; + } else if (groupsize == 4 && len > 3) { + _fpf(arg1, "%08x ", ((print_32p_t)buf)->value); + buf = (const uint8_t *)buf + 4; + len -= 4; + } else if (groupsize == 2 && len > 1) { + _fpf(arg1, "%04x ", ((print_16p_t)buf)->value); + buf = (const uint8_t *)buf + 2; + len -= 2; + } else if (len > 0) { + _fpf(arg1, "%02x ", *(const uint8_t *)buf); + buf = (const uint8_t *)buf + 1; + len--; + } else { + break; + } + } + _fpf(arg1, "\n"); + } +} + static void linux_timer_callback_wrapper(void *context) { From nobody Fri Apr 18 14:36:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQg2M6Pz5stWK; Fri, 18 Apr 2025 14:36:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQg0RMTz3KPT; Fri, 18 Apr 2025 14:36:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TlulT2EyP4QairBnM8ENTryE0wKfwarEO2+PoYrTwfE=; b=ppB5Hi1bkAsLMrGKfPwg1cWpKHUAPWs2puCwR+XkpRYMq3B7ni0LRMw5l6+UUR6y459v+h qtzmcUOPkLSoXLc5PvbSBOqTeXTxjq9LPX+JW1EbZBKRe3p+MXeI2DSe16EiF8Y7R6Z8OQ K253g5bOzOKb37ZQgKiIqMQvQ9tZtdOCd73dakWDkga1c4Hz0JrnsuH7W6xcvPVfhK9JLf goy0MqLDrhMvDUtEJw7O0BI76SOkaJlRFeYIckEydJj5zeUF7qYzm0xtPOsDT6M/i02+py G7DOIRgR64vThEefI9S6r85K9BgyvfStx1OxmEuprkLeuahkDzmS2Q3Sth0Frg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987019; a=rsa-sha256; cv=none; b=Wpou9Gnv8i+AQkPPhmxoTuQY3SawqMp3cmRC2X7XazECIvK0u3V8h/i50J00DRS7dxleU1 3GRaP1wZhIAYtdbsONpfSjyF5enrUDTWnFk0XMD3SUzq6UUEJQG72wXLZ+6RicYDRXq4iS dCCPZmVFcSyisrsk7QJ8dXbEU46zSiH4QxVaPhmO4qp58riGKv4+7JFa1NQu1Me5Fl55gs 5bRq+Te21iHW6yDFuNFvnNZhZlgpUyh9quGppDDl21oGEyCNaIQ7WZcP4nqIdunBf1bFAm hdBwqFcp/TnsgPYRoc7q79gW8l3DlKMribtHfwXLTPO1+/OQVwEm1JjKbtMqsQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987019; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TlulT2EyP4QairBnM8ENTryE0wKfwarEO2+PoYrTwfE=; b=nU/kxVOoJU0ZBiy7x/3Qf+a+Q3amnT1dtd2CAEHl+/MLO0YQuiNe528e65ZLEnVQlsecBp G9CueW950H4QCW3001gAXYZ8pAGRj12EZ9fscaD/d6QyG0wFjry5dBuiJENWJrsXLlYY1R 00YobQP5CspFGVK20t+4nVZqa1osYTHytTpBFEUDIG/0x0q8ml8jZxokX2923mKB43eYw+ PukLJ0abEQW7QGL+Ddlv/OD+4iCvKa98odZbDEcWqMZzaCCSHaCJteFDnBtMAJeBHumWf2 ah9DxTiRaYsmdEHMGyFxb6sJPfWidOhyA69qZQj5bR1nvfy66GRqk7n/Ygc+Bg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQf73bNzdxs; Fri, 18 Apr 2025 14:36:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEawDc091339; Fri, 18 Apr 2025 14:36:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEawXY091336; Fri, 18 Apr 2025 14:36:58 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:36:58 GMT Message-Id: <202504181436.53IEawXY091336@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 02ad13b3796a - stable/14 - net80211/regdomain: try to sort out TW List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 02ad13b3796a3e1bc74de10b2e9a70db356deea2 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=02ad13b3796a3e1bc74de10b2e9a70db356deea2 commit 02ad13b3796a3e1bc74de10b2e9a70db356deea2 Author: Bjoern A. Zeeb AuthorDate: 2025-04-11 13:12:41 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:58 +0000 net80211/regdomain: try to sort out TW Try to help people in TW to get onto 11ac as well by adding the missing entries to regdomain.xml. Use at your own risk. regdomain.xml is unmaintanable in the modern world with too many tiny difference between countries. We'll need a different way to generate this or a different representation long term. Sponsored by: The FreeBSD Foundation Reported by: lwhsu Tested by: lwhsu Reviewed by: lwhsu, adrian Differential Revision: https://reviews.freebsd.org/D49776 (cherry picked from commit 84e1eb50dd9529b234e568ccb6f6c37f897688dc) --- lib/lib80211/regdomain.xml | 254 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 253 insertions(+), 1 deletion(-) diff --git a/lib/lib80211/regdomain.xml b/lib/lib80211/regdomain.xml index 557af0349cb0..9116e54c31cf 100644 --- a/lib/lib80211/regdomain.xml +++ b/lib/lib80211/regdomain.xml @@ -1187,6 +1187,202 @@ + + TAIWAN + + + + 30 + IEEE80211_CHAN_B + + + + + + + 30 + IEEE80211_CHAN_G + + + + + + + 30 + IEEE80211_CHAN_G + IEEE80211_CHAN_HT20 + + + + 30 + IEEE80211_CHAN_G + IEEE80211_CHAN_HT40 + + + + + + + 23 + + + + 23 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_DFS + + + + 30 + + + + + + + 23 + IEEE80211_CHAN_HT20 + + + + 23 + IEEE80211_CHAN_HT40 + + + + + 23 + IEEE80211_CHAN_HT20 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_DFS + + + + + 23 + IEEE80211_CHAN_HT20 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_DFS + + + + + 30 + IEEE80211_CHAN_HT20 + + + + 30 + IEEE80211_CHAN_HT40 + + + + + + + 23 + IEEE80211_CHAN_HT20 + IEEE80211_CHAN_VHT20 + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT40 + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT80 + + + + + 23 + IEEE80211_CHAN_HT20 + IEEE80211_CHAN_VHT20 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT40 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT80 + IEEE80211_CHAN_DFS + + + + + 23 + IEEE80211_CHAN_HT20 + IEEE80211_CHAN_VHT20 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT40 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT80 + IEEE80211_CHAN_DFS + + + + 23 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT160 + IEEE80211_CHAN_DFS + + + + + 30 + IEEE80211_CHAN_HT20 + IEEE80211_CHAN_VHT20 + + + + 30 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT40 + + + + 30 + IEEE80211_CHAN_HT40 + IEEE80211_CHAN_VHT80 + + + + @@ -1781,7 +1977,7 @@ 760 Syria - 158 Taiwan + 158 Taiwan 764 Thailand @@ -1904,6 +2100,11 @@ IEEE80211_CHAN_A + + 5120 5240 + 20 20 + IEEE80211_CHAN_A + 5160 5240 20 20 @@ -1925,6 +2126,11 @@ IEEE80211_CHAN_A + + 5260 5340 + 20 20 + IEEE80211_CHAN_A + 5260 5340 20 20 @@ -1941,6 +2147,11 @@ IEEE80211_CHAN_A + + 5480 5720 + 20 20 + IEEE80211_CHAN_A + 5480 5700 20 20 @@ -1961,7 +2172,38 @@ 160 20 IEEE80211_CHAN_A + + + 5500 5720 + 40 20 + IEEE80211_CHAN_A + + + 5500 5720 + 80 20 + IEEE80211_CHAN_A + + + 5745 5825 + 20 20 + IEEE80211_CHAN_A + + + 5745 5845 + 20 20 + IEEE80211_CHAN_A + + + 5745 5845 + 40 20 + IEEE80211_CHAN_A + + + 5745 5845 + 20 20 + IEEE80211_CHAN_A + 5745 5865 20 20 @@ -1972,6 +2214,11 @@ 40 20 IEEE80211_CHAN_A + + 5745 5845 + 40 20 + IEEE80211_CHAN_A + 5745 5805 80 20 @@ -2027,6 +2274,11 @@ 20 20 IEEE80211_CHAN_A + + 5500 5720 + 40 20 + IEEE80211_CHAN_A + 5500 5580 40 20 From nobody Fri Apr 18 14:37:01 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQk0SvNz5stR1; Fri, 18 Apr 2025 14:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQj2sF4z3KQX; Fri, 18 Apr 2025 14:37:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jQD4nRA4BGlnNE5qwz+20AgGhONJTHeiVsim+1UdfOk=; b=mLi6xs5so+ARVTWre/ZMZKHQMG/8dynXU1/gLLKA56bsAnJMy9+UeGqkUH+rLkwWOQ8CmB X7TaEzXxDRDAFoIZTv5VOgY4BrB+KQ7QXC0LPWtZtIXr8tXIJd0XcE305CFDfUort6uwr3 MazlchiIv94dNbMKXrVpBbKvc7/bl9DIISWfF6Bsy7/uTie5e9asDxkKjltLYhM3Gj/+qX QU2ZeZP/80ABICu7b6ZUl1IjQjtXQivn1JhH1SBriEnmEcpzmAqE7n0RVB+5n0e/vn/zJo gV58eAt/POxH7BBpII8tpQqFTwOIicQe1GUIf/clJBc/qeuN9Kp8xkMObGZWlQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987021; a=rsa-sha256; cv=none; b=jp7//p20ILWE/e3KFNfJB3DiPCkF29ghkLHT5NKR29K+Dhc7/LUHFPHgHfVdRD8+qaoYGE PfmWkswRuAamUjl1zO+lOW4Py3GVOyK9pXtfVxXR0HghjvbCdAh6d3J1WxktxCscmXWRxT zQN991TnS00uIy7uOX/EuX3COlRtSAcu9v/BPX44jt8BHWcZJ+l1D81GTfHqeNhgxxYO0L tKqZjrkqrkjhbJaXb/fFhpkp/pMOWpCldJtRnEV9RJpomaPHDCUOaI/i8zmMDst7nOXYin 6JaRSO1ODbf1cqF72qAjsMPq9iUv8QgB0kTHSZu0ZCfkL1ZUEpyLgjKkwr9uog== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jQD4nRA4BGlnNE5qwz+20AgGhONJTHeiVsim+1UdfOk=; b=hDQtmTMjwn8sJahD9mIxlPsT5OQVJjvs690R26QaiGO9vEE9Lj87Y8lln/Kq3ko78DUl9A 841m2qcJfpwJCxkCBu/VEwV+UA4uHRbDukXJpJMnTzQsZF9dUGZHBy/2XDkhmfZ6t/ZcBC AIBrgNA+YBqlyVRwmVNBYwP2fy0wNvHLtCPdcYetp8qg+fbc0EI8pmFxNAXZw+NlhLpbhP 7BPKIDjga8OSxMdcwa/x0hR1/Q1M5tXwWwYxxLT/H63tSb6/X6wTW+Nw4EW903/o/RrP7w eY6AVnBi3oFV8rgW4JXx3gMqE57LesoPmOlUMvDe/Ulfco4o/OdIv+xHDIUQSA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQj22QXzfDx; Fri, 18 Apr 2025 14:37:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb1Lf091426; Fri, 18 Apr 2025 14:37:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb1FS091423; Fri, 18 Apr 2025 14:37:01 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:01 GMT Message-Id: <202504181437.53IEb1FS091423@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 8f564898b937 - stable/14 - net80211: cleanup keyidx argument of ieee80211_notify_michael_failure() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8f564898b937555273d6a8da107168ce16c7db99 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=8f564898b937555273d6a8da107168ce16c7db99 commit 8f564898b937555273d6a8da107168ce16c7db99 Author: Bjoern A. Zeeb AuthorDate: 2025-03-14 23:33:26 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:58 +0000 net80211: cleanup keyidx argument of ieee80211_notify_michael_failure() Instead of passing -1 to the function in ieee80211_crypto_demic(), use the defined IEEE80211_KEYIX_NONE. net80211 uses ieee80211_keyix not u_int as type for the key index internally. Use that. This also helps when printing the -1 unsigned as it stays within the expected numerical scope and makes the debug message more readable. Sponsored by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D49368 (cherry picked from commit db8ceb8e59487d1d6b2e019efab3eef40688731c) --- sys/net80211/ieee80211_crypto.c | 3 ++- sys/net80211/ieee80211_crypto.h | 2 +- sys/net80211/ieee80211_freebsd.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c index c5e0816bd43c..45316b43605a 100644 --- a/sys/net80211/ieee80211_crypto.c +++ b/sys/net80211/ieee80211_crypto.c @@ -725,7 +725,8 @@ ieee80211_crypto_demic(struct ieee80211vap *vap, struct ieee80211_key *k, * modules to handle a NULL key and not to dereference * it. */ - ieee80211_notify_michael_failure(vap, wh, -1); + ieee80211_notify_michael_failure(vap, wh, + IEEE80211_KEYIX_NONE); return (0); } diff --git a/sys/net80211/ieee80211_crypto.h b/sys/net80211/ieee80211_crypto.h index 156d5d77fd55..49e3f93410b2 100644 --- a/sys/net80211/ieee80211_crypto.h +++ b/sys/net80211/ieee80211_crypto.h @@ -249,6 +249,6 @@ void ieee80211_notify_replay_failure(struct ieee80211vap *, const struct ieee80211_frame *, const struct ieee80211_key *, uint64_t rsc, int tid); void ieee80211_notify_michael_failure(struct ieee80211vap *, - const struct ieee80211_frame *, u_int keyix); + const struct ieee80211_frame *, ieee80211_keyix keyix); #endif /* defined(__KERNEL__) || defined(_KERNEL) */ #endif /* _NET80211_IEEE80211_CRYPTO_H_ */ diff --git a/sys/net80211/ieee80211_freebsd.c b/sys/net80211/ieee80211_freebsd.c index db118bc19d16..d3c8352ab411 100644 --- a/sys/net80211/ieee80211_freebsd.c +++ b/sys/net80211/ieee80211_freebsd.c @@ -870,7 +870,7 @@ ieee80211_notify_replay_failure(struct ieee80211vap *vap, void ieee80211_notify_michael_failure(struct ieee80211vap *vap, - const struct ieee80211_frame *wh, u_int keyix) + const struct ieee80211_frame *wh, ieee80211_keyix keyix) { struct ifnet *ifp = vap->iv_ifp; From nobody Fri Apr 18 14:37:00 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQj4T7dz5stf2; Fri, 18 Apr 2025 14:37:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQh2t8lz3KB0; Fri, 18 Apr 2025 14:37:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o0zf3C04ZCZn13uWGa2HH3LAsTrmBNUzKZQSuz8nwTc=; b=JTK4ivS5En0Uimudo+RGXQhhNIwrpiQXdluAQdqaivECC9Q3RpeaSiH3p/x5ouUuxoXPGR MIKC+s8RwI+9vktrMnr6dwHOIr/ZCkgaw+zEocFYuQrJaHqOCqSQAd/N9VUe5nnVxao2Xb KnV7lRWmwdRG8rt/TZR6LluOchWt39yv0JceMP0LfIBP2emiztuz+EZuKcFH6mkDxaJGVV s3zvK+cDUx+DdamWnWorGVX+0XENFstEVu/nzkPJE9krmIPPxJVyqVBvz+CilfNaboL+5c 8hOx/wYesXtiopsdCKvwISS3zo/d2/jK1YidpMFnLKvuOkes0ocEe5h+1i6j3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987020; a=rsa-sha256; cv=none; b=J44++4SDxsbovvJRh5LZV2HHsBgJB6WrAD0kmxCJKc4dxW+g7IGgSQe1wANLFg74ENsXb7 PwN3aYuGBJ/2ARiDHKcSYg1SDwiDrj9CButkC80TiPX2LwKAHpGzcKEs9Ut7bsxUQ++9ps sFAi0+jfn4BEnZcm2g+xPbXDBtg/cwgOOWsmYNKSF8OaPIQFYUUD+2HTqw6ZYu7Q1B7kEU vr8Mjf4A3+nIedlQojSv91ZAcTXJ0blN34sbgLI3fKuugF3SMPrcvzO39bNB93zieDvMw3 fqu13bKb4g8NsqEgYk2VIx1wwcykRJc1xWuw8nd7JZQ4NhWxT3LrqvAOIj95NQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=o0zf3C04ZCZn13uWGa2HH3LAsTrmBNUzKZQSuz8nwTc=; b=qbANbVnACtHf45JxGnvNQSEg24xpY26AOWSdSlToU9GiTNs/HPEgV6hBTEE3Q7tp9C2b6h 9/1SdAIVj2CaVSPJWyJ8flCfo+s/uKSy9ouNa+uJZkfm+yIDHzSrlJO5tDHPd62aqyv47y sI3chLb6LT/kfMsvp0+g1M4FxlFiDZaWmTXWqsFDZkV3RsCA2/6TRv4Cp45sN19YnvHnBZ UXEs5qFRTYR5u2qCRlctzGrrJRHY1XocXFXI/wNOxOaP7KPQfMttEfAnn40qvuv7aqxkYR idh7RhhZn14852f+YXT0SYjuNIEpeLZumOTcPm01cNMMbyHx/jg0AeJOSNICCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQh0kJDzdwf; Fri, 18 Apr 2025 14:37:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb0GO091389; Fri, 18 Apr 2025 14:37:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb0wP091386; Fri, 18 Apr 2025 14:37:00 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:00 GMT Message-Id: <202504181437.53IEb0wP091386@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 20f3d58fb8a6 - stable/14 - net80211: correct IEEE80211_KEY_BITS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 20f3d58fb8a61582dbaedb87d76eecc42f15b961 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=20f3d58fb8a61582dbaedb87d76eecc42f15b961 commit 20f3d58fb8a61582dbaedb87d76eecc42f15b961 Author: Bjoern A. Zeeb AuthorDate: 2025-03-14 23:22:41 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:58 +0000 net80211: correct IEEE80211_KEY_BITS Not only are some of the bits missing, \4 and following were also off-by-one. Correct that so we can use them instead of reading hex numbers. Sponsored by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D49366 (cherry picked from commit 0461600deaa227050fbff60274ba72ab3a407bcc) --- sys/net80211/ieee80211_crypto.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net80211/ieee80211_crypto.h b/sys/net80211/ieee80211_crypto.h index fc7c13cfdfb4..156d5d77fd55 100644 --- a/sys/net80211/ieee80211_crypto.h +++ b/sys/net80211/ieee80211_crypto.h @@ -118,8 +118,8 @@ struct ieee80211_key { IEEE80211_KEY_NOIVMGT|IEEE80211_KEY_NOMIC|IEEE80211_KEY_NOMICMGT) #define IEEE80211_KEY_BITS \ - "\20\1XMIT\2RECV\3GROUP\4SWENCRYPT\5SWDECRYPT\6SWENMIC\7SWDEMIC" \ - "\10DEVKEY\11CIPHER0\12CIPHER1" + "\20\1XMIT\2RECV\3GROUP\4NOREPLAY\5SWENCRYPT\6SWDECRYPT\7SWENMIC\10SWDEMIC" \ + "\11DEVKEY\12CIPHER0\13CIPHER1\14NOIV\15NOIVMGT\16NOMIC\17NOMICMGT" #define IEEE80211_KEYIX_NONE ((ieee80211_keyix) -1) From nobody Fri Apr 18 14:37:04 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQm6fhJz5stTC; Fri, 18 Apr 2025 14:37:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQm4p7sz3KSN; Fri, 18 Apr 2025 14:37:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QBSu7XX9ozVG9tH4OjxElL8eE8AqOjIkoDUNCTwmlhI=; b=yzj4198IUdSGyABy2UiHIY1JDO1HsXtCoI3y+JDfRbkHEdOI0Ya3fyDdOF/FuTLrAnI0pN zA/N9u5L++RK3FPAYm06iXM6mIgi+SaOZjsMmfxwfI8HCJt2VkHnFCuKv7pe+S/6+iIOvW PvzsOjgL8JeFblF5dbEUjtHdUya7qB5MLqurf6/1E8OAqP3+ETuYBKHUrMueaG9YzpOhC9 qBKW7Ee9zFznqAEAsfc8VLAVtaSJrzhGdisE3n1QZJPekBGAhYxl7rCVZJxe8xYe7IJLUZ +txEAGSHmbM7qdKNpLM85KGwgIRukVzfrtOx5Fvdq3E1VzZpL2TbVHADagBpeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987024; a=rsa-sha256; cv=none; b=TK55HYZmbSS+/hcgD1I88kqLZd6LWF1BwlJMm+0b4jkMWczJCIwzfyrDQORFoN0c8M3UHx IVHf80UXTBkYS30eo/oHcN6Sc+3dpBr+rJub3P6k0VoYVsDyMaL9KlLJ3ojRTTM4XAnfa+ a9pl6nNj692Qnp90qUCLM3hVnjk86lBBek6Gf7jt9KyfmLhUf0wqfNxFmgrMnho8vYeqfw VpcbMMi1KKmX34YX8ZtStEvRumuRP8fOaIzCQZujDu8foqd6aU1sTdPegR7bKqX4vwj33w 5Up/dZET9YUqyuFXDPM4QjjdAIsM1mXfSm+UQUrcs3nVJ8IUwFMerBNVphwclQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987024; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QBSu7XX9ozVG9tH4OjxElL8eE8AqOjIkoDUNCTwmlhI=; b=ey2HuLhGS4Lo1mCmqKDjPbEt/8STUMM8KTYjbt+mNVrzNC/OQncMo+SSntKH1D0NSY3y3a Qtrcca0NwmXqpRdPRTxER1HoRdkxle7vt+CEnLQQ8CleUaAQkOcu+H6G4yUfDtD0Wdp7jb z6iqJYGn5hGBXYJjguOYan8wLZVhbXe+hdGYPOmasv6JTH568xgYABTZb5m+Pk8bH85BiM K/r+OaJu3MnyyQL10zIeQZANUHhtkgnFJsZVa5KCOU9MM0nv3hbG1vblxA2JhJdD0Qdibv QKKVDMg1j0obVxs6yS8SE/K42fGIw+70UbqWL5EFZROBEFYOmDAsdAcQyeduog== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQm4KcBzdxt; Fri, 18 Apr 2025 14:37:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb4NI091542; Fri, 18 Apr 2025 14:37:04 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb4vn091539; Fri, 18 Apr 2025 14:37:04 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:04 GMT Message-Id: <202504181437.53IEb4vn091539@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 361c8b995d6d - stable/14 - net80211: fill in missing flags to IEEE80211_NODE_BITS List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 361c8b995d6dfbec7a3446599008388a0c7c9d29 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=361c8b995d6dfbec7a3446599008388a0c7c9d29 commit 361c8b995d6dfbec7a3446599008388a0c7c9d29 Author: Bjoern A. Zeeb AuthorDate: 2025-04-10 23:13:50 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:59 +0000 net80211: fill in missing flags to IEEE80211_NODE_BITS Sponsored by: The FreeBSD Foundation Reviewed by: adrian, thj Differential Revision: https://reviews.freebsd.org/D49771 (cherry picked from commit b5b393df682f7938fa5e3ea4ed5e5938401baca0) --- sys/net80211/ieee80211_node.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net80211/ieee80211_node.h b/sys/net80211/ieee80211_node.h index 0039c743544c..aba9fe4068bd 100644 --- a/sys/net80211/ieee80211_node.h +++ b/sys/net80211/ieee80211_node.h @@ -310,7 +310,7 @@ MALLOC_DECLARE(M_80211_NODE_IE); #define IEEE80211_NODE_BITS \ "\20\1AUTH\2QOS\3ERP\5PWR_MGT\6AREF\7HT\10HTCOMPAT\11WPS\12TSN" \ "\13AMPDU_RX\14AMPDU_TX\15MIMO_PS\16MIMO_RTS\17RIFS\20SGI20\21SGI40" \ - "\22ASSOCID" + "\22ASSOCID\23AMSDU_RX\24AMSDU_TX\25VHT\26LDPC\27UAPSD" #define IEEE80211_NODE_AID(ni) IEEE80211_AID(ni->ni_associd) From nobody Fri Apr 18 14:37:03 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQl74S3z5stHr; Fri, 18 Apr 2025 14:37:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQl4SMKz3KBn; Fri, 18 Apr 2025 14:37:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vLU1T4/MLsDyor74DQhZWSMpa+xJyMi2iza8nAj1cUI=; b=c5q25mDKbxBGcuPAA1DokAtRYU13E5oj2bftC5RWxEs0wATVQQ1DVbGBwpJ/gUGlU/Wkl5 PqZ5LWxWPtS/GtT66ygE5p1y4UE06IRNP1nbt3ICvTS2q38lC9OKBK4ytQLEtKW7OPK4Y1 gfcbrbJpGq9Tr8UEaMLn3+bdP9IPX+UDBxGnHfXh9Mvcpc/0q0Rk3x2zkRWnNZXfsTb/N1 XD/Xaxt2Ac1CDbGrWFDJV2jDG/XiWO8tsg+BguZtj7wvoyVCBqhwI76Q/c4vGmcP8/INUp ifK/2yTnhNRg4cy/ZunenAn/E4LolUyQ3qGHGPIYCDv9aTf9F5Y9Yl1sA5nntg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987023; a=rsa-sha256; cv=none; b=KyAU+vIt+dzVo8dcd61shqw4Okr6zZNYPjbMKA/vJxHVx0IqUe6yF0qVKu2Lgwz33v7Amr 4A+tCG4ay9EEgWmauNS/T/b9HQgZTCKVwIjwY/EiNAxXmFes4KPCN/CCJsHd1Hqa8JurdS VJrAZ6uF96gpUKAXEfoLad5rgffhK95Rvtd9eDE5cR9BTjiFUInNW7ufh4brbbJMf3B1Z3 5XhWxARQFIQmbGgm3rSppJ3lBmT6uFx9ptMF0GCj3/oihNKQEu00Mapu8gk3Z/Y50BvBQX JBjt4GIJ1yO5zMDQqX/c64XhFAcJItJoTaEDqKPToD4YFKyYNNm59cE/qkH+Rw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987023; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vLU1T4/MLsDyor74DQhZWSMpa+xJyMi2iza8nAj1cUI=; b=psJM/cSBne1XLygcn5HrdvKNGliV7DjrtQ8vzFwAk885hqNnk5eXezYGZUveempeqJDpj8 OC53F4ov9w3l32HG7U15pfCjDi1Zm0JBq66LtxzpTOXsN8yICRq26RzquyyVt5BB+U1r9X 79gIv0Zv1x7SB2FtnP3FQlir/9E5bAc5nF7l+ow71K9s5Wv+/6ytWsEcjIbuqP94qFu8ir 2WAZwwfe2qyF8OG845btH/XNBq21rDpaVmJdPeIkTKMk0Th24D54gNGEAmO4fSInbI4vwL 6G9PkeW4JmyqlcLJq0Dk49aqGmVHhgFaUN5y8EUeTM6n7SGOb4mkCMxdKAz+YA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQl3m2vzdwg; Fri, 18 Apr 2025 14:37:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb3fB091506; Fri, 18 Apr 2025 14:37:03 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb3BF091503; Fri, 18 Apr 2025 14:37:03 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:03 GMT Message-Id: <202504181437.53IEb3BF091503@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 0dbc7a50aa6e - stable/14 - net80211: fix IEEE80211_VFHT_BITS after 160 and 80P80 got swapped List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0dbc7a50aa6e5c8eaba31de13ce8f1216a19e031 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=0dbc7a50aa6e5c8eaba31de13ce8f1216a19e031 commit 0dbc7a50aa6e5c8eaba31de13ce8f1216a19e031 Author: Bjoern A. Zeeb AuthorDate: 2025-04-10 23:18:05 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:59 +0000 net80211: fix IEEE80211_VFHT_BITS after 160 and 80P80 got swapped Sponsored by: The FreeBSD Foundation Fixes: 8f2e5b6ef3230 Reviewed by: adrian, thj Differential Revision: https://reviews.freebsd.org/D49772 (cherry picked from commit 626a4931be7a095cff95e4272c7f36f9bedebeff) --- sys/net80211/ieee80211_var.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index afd3beeb5d73..3e7ad7942de7 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -750,7 +750,7 @@ MALLOC_DECLARE(M_80211_VAP); IEEE80211_FVHT_STBC_TX | IEEE80211_FVHT_STBC_RX) #define IEEE80211_VFHT_BITS \ - "\20\1VHT\2VHT40\3VHT80\4VHT160\5VHT80P80\6STBC_TX\7STBC_RX" + "\20\1VHT\2VHT40\3VHT80\4VHT80P80\5VHT160\6STBC_TX\7STBC_RX" #define IEEE80211_COM_DETACHED 0x00000001 /* ieee80211_ifdetach called */ #define IEEE80211_COM_REF_ADD 0x00000002 /* add / remove reference */ From nobody Fri Apr 18 14:37:02 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQk5vZQz5stbf; Fri, 18 Apr 2025 14:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQk3RPsz3KFQ; Fri, 18 Apr 2025 14:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K7gqkXGKEszJ4EtStdtQbFnQiSii4nxwUTyLTy17Q/8=; b=ryBf05Jj2+fY61B1XO64qf/Wqc4eTjadqQgdaEpo1omFrvQFZzLzji0c989CMu3a7K6TiF fFDpIYDv5ZcrFlcQzkrWiDtIr9uSARK7o004iCuD/Vw/Ch06E/ThBcGLFzIKACbFFwjNZ9 5NEUAVE8K985ykdkxWZS880cpewDP5dZNbECz4iNbCHiDPPqWqYNlmEKsKuBc+p579B1iu MB3LcBl4ycYIgMzBWghuF93r0MTd1HGl1xgvqa+koWcLRTQpg/vT05UhGhvoNSDBjfWuXu O3Meq3MexbeZMnh4nmT1EIJLVlnjq5FPlIiO+ux5HJjxS6YDPDspdmzFCoIWBQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987022; a=rsa-sha256; cv=none; b=ZNEUKBG1kEtxI8+tKHDRvo6sIUC/G+IhEyj3IkRvtfXBsHxwMaHBc8Y2XjY+708cjhjnJl QOhnjg3MdDDwBY8Bkuxrui1S4Ah7EFY5QfRMHzODD8wBBwX2VCsvWi7eqdGYM/ktiTKus4 oVqJCtSf55bp+FPL1ybR8IIp68pRHb1Jaz1lQUbdcZ5/Y/RUq0XIT5DqBHHpktrSnAyQOi nxPIiCVW/94utaJAynsbxilnoalKHwBNqF28JnG54CKsE2GaQSgXkPOfnmy68Awrnn46R6 l1OACxhaj/I6tOvUna+27XeJyXw78mDoZf/1dGtDJh9hOuFtWBskRFriLJPZSw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987022; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=K7gqkXGKEszJ4EtStdtQbFnQiSii4nxwUTyLTy17Q/8=; b=ycc6t4H7DW52ysn2yXG9iDH41EvUX/b12U/xnDsUz9OSuXBKqhf8XtR5a3a/xMCEgE0Vml GpWLmB65maFancqfzLI7dxaAmvnVLC6nR82dijbmEEQVm9N3VcualPO0ah0BthhkRZj0ZT xlKqi+OlFgFgjBaNTj2PDiWHkG0jZYWfGdDRlZMYzX5z7W/04QNveIu5yL7ov2iCUf7x8w ShruUDCOoBJIkxsVMpapucF6F61AwcEVzEZuTBOr40rnpkJXPskM1+42074T9+TbNaI9/N CfVJPl8S33/bGUkLk/sDSkbUu9mtGw15kn97VoblNDlnJ7e+vI34+Eo5eKLTQw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQk2zjFzdtB; Fri, 18 Apr 2025 14:37:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb2vC091463; Fri, 18 Apr 2025 14:37:02 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb2Jg091460; Fri, 18 Apr 2025 14:37:02 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:02 GMT Message-Id: <202504181437.53IEb2Jg091460@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: e0bd174e0e36 - stable/14 - net80211: make use of IEEE80211_KEY_BITS for debug messages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e0bd174e0e369af59cc533f2d7bf6f231dc250df Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e0bd174e0e369af59cc533f2d7bf6f231dc250df commit e0bd174e0e369af59cc533f2d7bf6f231dc250df Author: Bjoern A. Zeeb AuthorDate: 2025-03-14 23:43:17 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:59 +0000 net80211: make use of IEEE80211_KEY_BITS for debug messages Use %b with IEEE80211_KEY_BITS for the debug logging in ieee80211_crypto.c rather than just printing the hex value, which makes some of the messages more obvious and avoids having the header file next to one at all times. Sponsored by: The FreeBSD Foundation Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D49369 (cherry picked from commit 7513a0afe5fb26d30dbcae0347e43728e3511d3e) --- sys/net80211/ieee80211_crypto.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/sys/net80211/ieee80211_crypto.c b/sys/net80211/ieee80211_crypto.c index 45316b43605a..bb7a612ac36c 100644 --- a/sys/net80211/ieee80211_crypto.c +++ b/sys/net80211/ieee80211_crypto.c @@ -391,14 +391,15 @@ ieee80211_crypto_newkey(struct ieee80211vap *vap, */ IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, "%s: driver override for cipher %s, flags " - "0x%x -> 0x%x\n", __func__, cip->ic_name, - oflags, key->wk_flags); + "%b -> %b\n", __func__, cip->ic_name, + oflags, IEEE80211_KEY_BITS, + key->wk_flags, IEEE80211_KEY_BITS); keyctx = cip->ic_attach(vap, key); if (keyctx == NULL) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, "%s: unable to attach cipher %s with " - "flags 0x%x\n", __func__, cip->ic_name, - key->wk_flags); + "flags %b\n", __func__, cip->ic_name, + key->wk_flags, IEEE80211_KEY_BITS); key->wk_flags = oflags; /* restore old flags */ vap->iv_stats.is_crypto_attachfail++; return 0; @@ -423,9 +424,9 @@ _ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key) KASSERT(key->wk_cipher != NULL, ("No cipher!")); IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, - "%s: %s keyix %u flags 0x%x rsc %ju tsc %ju len %u\n", + "%s: %s keyix %u flags %b rsc %ju tsc %ju len %u\n", __func__, key->wk_cipher->ic_name, - key->wk_keyix, key->wk_flags, + key->wk_keyix, key->wk_flags, IEEE80211_KEY_BITS, key->wk_keyrsc[IEEE80211_NONQOS_TID], key->wk_keytsc, key->wk_keylen); @@ -491,9 +492,9 @@ ieee80211_crypto_setkey(struct ieee80211vap *vap, struct ieee80211_key *key) KASSERT(cip != NULL, ("No cipher!")); IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, - "%s: %s keyix %u flags 0x%x mac %s rsc %ju tsc %ju len %u\n", + "%s: %s keyix %u flags %b mac %s rsc %ju tsc %ju len %u\n", __func__, cip->ic_name, key->wk_keyix, - key->wk_flags, ether_sprintf(key->wk_macaddr), + key->wk_flags, IEEE80211_KEY_BITS, ether_sprintf(key->wk_macaddr), key->wk_keyrsc[IEEE80211_NONQOS_TID], key->wk_keytsc, key->wk_keylen); @@ -511,9 +512,9 @@ ieee80211_crypto_setkey(struct ieee80211vap *vap, struct ieee80211_key *key) */ if (!cip->ic_setkey(key)) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, - "%s: cipher %s rejected key index %u len %u flags 0x%x\n", + "%s: cipher %s rejected key index %u len %u flags %b\n", __func__, cip->ic_name, key->wk_keyix, - key->wk_keylen, key->wk_flags); + key->wk_keylen, key->wk_flags, IEEE80211_KEY_BITS); vap->iv_stats.is_crypto_setkey_cipher++; return 0; } From nobody Fri Apr 18 14:37:06 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQq4BMcz5stWW; Fri, 18 Apr 2025 14:37:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQq00pMz3KVm; Fri, 18 Apr 2025 14:37:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=So3OWCnbfPHALwgHM0207P85Oq7Gdbb7EI5nGZUdDoI=; b=YrLPfJhIouWg4q9Ova8hjgTDb7Vg+g5Rn/jeVb2RrSvb9PQRS0PhlPQyCWP2Bfqweas9td qjLyOefis8VrrcALDIzigg9uecNQfTYwlQh9IjvlyU5dA3hDKfzQjt529f13qbLPGLJq+C m8OxI/ggifimLw9yoKdF3h4jZjKiyE1JwQEHTlmlYpOjIO1AlvvFjnPoWOsRJ3yyCFrWkM EqSE11r6PK2j6BG25ZxkgqKCs1CRFgDa8JlZwam20+g9lAOKQoFj1qNiMn8LO90xAroU5k uHr+EXxBjcZoDALOM9eHOKR1LSZNFnowcobT2vj/5WTxPTCZh8AY6K/DL9liNw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987027; a=rsa-sha256; cv=none; b=mSrsIbqb12sr3/KBtwbVazPRPJgZ9Y2JlG/z3Xkp1x122Ktd+VSPlkDeebSQ2Vl8SsTADs ZKEWWsmxhQa/zkk329XXIY4rpZs8z5Ca/qYQ26Cpz0gCGJFZ1uHHrtqZ1rdRgKIMZTGuwq +noC1eJIe/wXJgSA3SK8nIOpIqRS+HUlvV2jb1K9TnuWquAs8aOznMwrXytXPd/XTTy2xn odix9aoBkKX7SOYK650ZF347ax9VbhW4MT7XIgMuojTTEr1Ai6awi3EqAEr58W4EOlolcp 9ljKOtD56RWvi6AwLq+EoCq5ZyxYqOz46YJbTaL43VeW9/hkebhX35dPV/AT2A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=So3OWCnbfPHALwgHM0207P85Oq7Gdbb7EI5nGZUdDoI=; b=vc3lJYu/lGKKPaKb/KGFW8Zv7fN14f0JEny9iDMG2Fna9g873u2Afr3TrVpYjavH4hOqFT gRXqe+melCRKHPTrIAEe/ChJCZRKHctreR9sLUayzq6sVURbJbnFyqZb8ptHSrQFy5vSor XlKMKBex31CJzgdKy4BpFiRnTAio7Zh+gLuQPsorj2/H62YqdEjlfSK+ghqDmBQE09T/SZ J7Zm3M5+X3ZZwY6LKwP9TO41tvXZjQuAm6RTo5WDQQdaxb+rZLzBgyx1yqScwTjY8ODiJ4 ETP/kYNoOdZuc18bZmk8sVJre2mw29TZrgCpVag92NaqxmyiFUo3sa0jRKR5mw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQp6GPkzdxw; Fri, 18 Apr 2025 14:37:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb66u091620; Fri, 18 Apr 2025 14:37:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb6c3091617; Fri, 18 Apr 2025 14:37:06 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:06 GMT Message-Id: <202504181437.53IEb6c3091617@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 998fc383bd02 - stable/14 - LinuxKPI: 802.11: remove ieee80211_node_get_txrate_dot11rate() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 998fc383bd02e8f1abe3c67decb60dc326c87908 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=998fc383bd02e8f1abe3c67decb60dc326c87908 commit 998fc383bd02e8f1abe3c67decb60dc326c87908 Author: Bjoern A. Zeeb AuthorDate: 2025-03-04 15:20:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:59 +0000 LinuxKPI: 802.11: remove ieee80211_node_get_txrate_dot11rate() net80211 ieee80211_node_get_txrate_dot11rate() does not yet support VHT and that means we get a lot of log lines when doing VHT for a debugging statement even if it's not active. Remove the calls to ieee80211_node_get_txrate_dot11rate() as with hw/fw based rate control (modern iwlwifi) they are pointless anyway as they are currently. Sponsored by: The FreeBSD Foundation Reported by: J.R. Oldroyd (jr opal.com) Fixes: 706745001093 (I should have noticed during review) (cherry picked from commit d1a37f280be46a707b42c3eca5f8b6a38ecf726b) --- sys/compat/linuxkpi/common/src/linux_80211.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index b0bf54744e3a..3d60404537e2 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6986,12 +6986,6 @@ linuxkpi_ieee80211_tx_status_ext(struct ieee80211_hw *hw, } if (ni != NULL) { - int ridx __unused; -#ifdef LINUXKPI_DEBUG_80211 - int old_rate; - - old_rate = ni->ni_vap->iv_bss->ni_txrate; -#endif txs.pktlen = skb->len; txs.flags |= IEEE80211_RATECTL_STATUS_PKTLEN; if (info->status.rates[0].count > 1) { @@ -7008,16 +7002,13 @@ linuxkpi_ieee80211_tx_status_ext(struct ieee80211_hw *hw, txs.flags |= IEEE80211_RATECTL_STATUS_RSSI; } - IMPROVE("only update of rate matches but that requires us to get a proper rate"); + IMPROVE("only update rate if needed but that requires us to get a proper rate from mo_sta_statistics"); ieee80211_ratectl_tx_complete(ni, &txs); - ridx = ieee80211_ratectl_rate(ni->ni_vap->iv_bss, NULL, 0); #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_TX) { - printf("TX-RATE: %s: old %d new %d ridx %d, " - "long_retries %d\n", __func__, - old_rate, ni->ni_vap->iv_bss->ni_txrate, - ridx, txs.long_retries); + printf("TX-RATE: %s: long_retries %d\n", __func__, + txs.long_retries); } #endif } From nobody Fri Apr 18 14:37:05 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQp4C55z5stTH; Fri, 18 Apr 2025 14:37:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQp049Cz3KHs; Fri, 18 Apr 2025 14:37:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=55i89JW6VLoWvp77Hyti5IrXdd2tIWzL6gan9V0ixX0=; b=mnbX0e45u5bpUv5eiylulIJpIVRm3QBHFfdb4W170k8ELPQeI37OtfZtOULM2AhAVyWPDF 7b3hz+tjPdBIQ353+1Xe2qwFQhsblugFvoMs9sPhXpyTDruoTpa/KNccVLcxNqCCbltorp XSoh3U6ZONlJjaUXzji4EpGFutnjg8oFofjcoaX2UXVilqE5LljW57fcQ5UPnlyZDvZkoK nZ3v/PgRQf29xUHrDYIN6J05pnvLRSd/+VtXFysE1X3QiT0j6bswcj54V4r4xDii7kayhA zllBgQ5ZIA9lFPA4eF5Eb/QPCLsdU2ZkwvbZzG1uPPs84WqpzizsxvZV2LXbrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987026; a=rsa-sha256; cv=none; b=q+YqdNPTFdUzXgKnxpz3gQcj5NK2UmWXigz1zaqThvVUCWXoDBTLO2KgaRaKFCDHqVYou/ JITDXh7N9F0KvIELYVqA8YDAafzzwcGBQYqRuLcRUP+3RL0k7tKQCKwTO9YU4pxnCxA3Fu hiQBroIrJKNrP1x2sLmKSaspHxIBdMIurkk8irwS9q4y5j24H/bdbBwuzkCwAMZWMdNwLh ZGlKfZVAcLR6zOeMHMrmJwNPP5mUZ/9mJkMiPGI6U78TN4vnqVsnqXPW2i7gjXLFqVk2HZ cctLpokPrVzBBl+KTXPokT2o7KmXH7Q5wI/Rus6bCPdD1f8HcR7WP/BsgfwYZA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987026; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=55i89JW6VLoWvp77Hyti5IrXdd2tIWzL6gan9V0ixX0=; b=Lqs4D/PwwEoB3O+cx5p8oMcOKs74bQzg2aN0WUVvTal1ab994Syw2dOXw5WXKl6ABN23LG EExnKIux+puly7xx6MlGOH4T2LkJrbzp0P1D3CRozUKTj4DdacE/0klAQcjowpAx0JpSUC gAbOzZFDMVA6hN7J6u+Y60AKR97vrir0+Y35egomNquIqT4Q0JeRhZSI4Tn9NJE74teQAi sGRKvQW+5E0ioN4Ierqi5D1ugq3bQzNgAlw5AEbRwc1/q8Uh5+6DhOgUvp3Wie0mh+j53e lu5sAOD+0M8T3Si7XKq+lVCZHgyaQqZZeM6Bht7nTwpDFJp/RFeKG0zTqGzczw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQn5XBnzdxv; Fri, 18 Apr 2025 14:37:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb5Pk091584; Fri, 18 Apr 2025 14:37:05 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb5qF091581; Fri, 18 Apr 2025 14:37:05 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:05 GMT Message-Id: <202504181437.53IEb5qF091581@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 241fb1757415 - stable/14 - iwlwifi: fix iwl_uefi_get_uats_table() if not compiled with ACPI List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 241fb175741532b7e9820399e0032137e938e520 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=241fb175741532b7e9820399e0032137e938e520 commit 241fb175741532b7e9820399e0032137e938e520 Author: Bjoern A. Zeeb AuthorDate: 2025-04-11 15:22:55 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:35:59 +0000 iwlwifi: fix iwl_uefi_get_uats_table() if not compiled with ACPI Apply a temporary fix to FreeBSD only to allow AX101 to proceed further. While this fix results in a debug error message if firmware debugging is on we currently take this for the version we have. A proper fix will eventually show up in future versions of iwlwifi. Sponsored by: The FreeBSD Foundation Reported by: bapt Tested by: bapt (cherry picked from commit 97ddb6371b7206c622de40745927e98f0dfd2e85) --- sys/contrib/dev/iwlwifi/fw/uefi.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/contrib/dev/iwlwifi/fw/uefi.h b/sys/contrib/dev/iwlwifi/fw/uefi.h index 1f8884ca8997..50327bb8c2d6 100644 --- a/sys/contrib/dev/iwlwifi/fw/uefi.h +++ b/sys/contrib/dev/iwlwifi/fw/uefi.h @@ -318,7 +318,11 @@ static inline int iwl_uefi_get_uats_table(struct iwl_trans *trans, struct iwl_fw_runtime *fwrt) { +#if defined(__linux__) return 0; +#elif defined(__FreeBSD__) + return -ENOENT; +#endif } #endif /* CONFIG_EFI */ #endif /* __iwl_fw_uefi__ */ From nobody Fri Apr 18 14:37:10 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQt4fT2z5stRG; Fri, 18 Apr 2025 14:37:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQt2n6Zz3KnW; Fri, 18 Apr 2025 14:37:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987030; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2Zb4AZmPWNJBsOZYWXLkTYo4vOKDZoLnpwRMnYWsEMM=; b=mQsBDU6D2ibCdjD8oBWu4YPXzf8DyGKaOJTXBRoxlhJXzXAM8i4YFvDrWKDaVTVip+FHdh 2J8YpDec9g5ZPRcaqSs8YrDzuya3dFSH9u1np7XC21vJIW3r7Rbq1Tl7VEyTGlEN0n0eQM J3nS6SgE4IxukXlw9ptfLt/U0g/cGb3gATA2yudEs2ohG98ruMLS/0yVilkHR+Egyx/X0l irB5o9s4t/2qimlCA5whhMSkP1BAp0B6CqjZ39/pVZx0sUlJdHX8Z3GXLPjhfCaM09fCcB IxEIefCpKwsLt1PEYz5CEUei4A4r9XZOIshRseJd0clPIMY20PvAhgw9HNbwsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987030; a=rsa-sha256; cv=none; b=K9eJ4RyG64FmkQQKJ5jEE4jXUH46mZxz/HWyqczue36YOwTmic5WeKVj4q2RLAANCpzPtn fjBMdxiW2JHJUlrWO5n+UCDIdw6O3X3ULC3l2NtQHcnIjDESKL7IDLEYPoy1xYtV0aETkU GFQZlW16/IGtBik+lIK0839AsAjXudWbm9byZ4Oks2rEKU+YntD9IDR9QiNEQUdlIT3EHa LIZoa1GAGkxt7qclxT0yEolZj24v74eJs8t3OmmcJ6B69EideCpb3+1cINk7SOgqx8dmL7 eAoPNSKSgq1ZdPWO9qwSQ3T19Ci23R0gGRsTu+euU4l9q1SaPqdnliTWjfQBUQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987030; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2Zb4AZmPWNJBsOZYWXLkTYo4vOKDZoLnpwRMnYWsEMM=; b=OtdLNkolJ5cQID1IF9Z6gYCAVwT3GJkaSvmI0nCTNO65ujdDz7d06k8371nkFqWHZA/s4S IQYfdMesQfI+HHkw8LRVh3Gqio+Muxk1C3RgSUUaplOeBj7xvVrLIuI+/5ewRhRzdpFxwH MDrx4M+cslEmCAMscm+LzTcQpm7pV/NWw2fZMh/26FqX7ICGaan4IplfP1R0EVzs+iUjJn IUijle5FWCQd3IG+7L/J2oeFh5oHb50z8J4wUW6OWZU3TFnEbU/ElgYNYWXdO/uhDNVDOG e2UyfjWGEb0pK+RFIrEy57fPkd+e0yX67Ir0NcJ0yXuH7SoT+NirP3PxVqK2Lg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQt24cTzf3r; Fri, 18 Apr 2025 14:37:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbAod091726; Fri, 18 Apr 2025 14:37:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbARs091723; Fri, 18 Apr 2025 14:37:10 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:10 GMT Message-Id: <202504181437.53IEbARs091723@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: f4aa407e89fe - stable/14 - LinuxKPI: 802.11: CONFIG_PM_SLEEP / WoWLAN header adjustments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f4aa407e89fe8961efe722a53ae463c25ef5ea20 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f4aa407e89fe8961efe722a53ae463c25ef5ea20 commit f4aa407e89fe8961efe722a53ae463c25ef5ea20 Author: Bjoern A. Zeeb AuthorDate: 2025-03-15 00:30:38 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:00 +0000 LinuxKPI: 802.11: CONFIG_PM_SLEEP / WoWLAN header adjustments Sort out some (though not yet all) changes needed for CONFIG_PM_SLEEP and respectively WoWLAN support (so we can compile it in). This is just one further step towards proper suspend/resume support. Sponsored by: The FreeBSD Foundation (cherry picked from commit b42c339c59fd00f2d97f6854b17b54b340019d0c) --- .../linuxkpi/common/include/linux/ieee80211.h | 7 ++++++ sys/compat/linuxkpi/common/include/net/cfg80211.h | 26 +++++++++++++++++----- sys/compat/linuxkpi/common/include/net/mac80211.h | 16 +++++++++---- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index 964fd970ecf0..efac2a26e27e 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -147,6 +147,7 @@ enum ieee80211_key_len { WLAN_KEY_LEN_WEP104 = 13, WLAN_KEY_LEN_TKIP = 32, WLAN_KEY_LEN_CCMP = 16, + WLAN_KEY_LEN_CCMP_256 = 32, WLAN_KEY_LEN_GCMP = 16, WLAN_KEY_LEN_AES_CMAC = 16, WLAN_KEY_LEN_GCMP_256 = 32, @@ -507,6 +508,12 @@ struct ieee80211_mgmt { uint16_t capab_info; uint8_t variable[0]; } beacon; + /* 9.3.3.5 Association Request frame format */ + struct { + uint16_t capab_info; + uint16_t listen_interval; + uint8_t variable[0]; + } assoc_req; /* 9.3.3.10 Probe Request frame format */ struct { uint8_t variable[0]; diff --git a/sys/compat/linuxkpi/common/include/net/cfg80211.h b/sys/compat/linuxkpi/common/include/net/cfg80211.h index 3454b58f1db7..2cdb96ffccdf 100644 --- a/sys/compat/linuxkpi/common/include/net/cfg80211.h +++ b/sys/compat/linuxkpi/common/include/net/cfg80211.h @@ -1033,9 +1033,12 @@ struct cfg80211_wowlan_nd_info { enum wiphy_wowlan_support_flags { WIPHY_WOWLAN_DISCONNECT, - WIPHY_WOWLAN_GTK_REKEY_FAILURE, WIPHY_WOWLAN_MAGIC_PKT, WIPHY_WOWLAN_SUPPORTS_GTK_REKEY, + WIPHY_WOWLAN_GTK_REKEY_FAILURE, + WIPHY_WOWLAN_EAP_IDENTITY_REQ, + WIPHY_WOWLAN_4WAY_HANDSHAKE, + WIPHY_WOWLAN_RFKILL_RELEASE, WIPHY_WOWLAN_NET_DETECT, }; @@ -1049,6 +1052,7 @@ struct cfg80211_wowlan_wakeup { /* XXX TODO */ uint16_t pattern_idx; bool disconnect; + bool unprot_deauth_disassoc; bool eap_identity_req; bool four_way_handshake; bool gtk_rekey_failure; @@ -1066,11 +1070,22 @@ struct cfg80211_wowlan_wakeup { struct cfg80211_wowlan { /* XXX TODO */ - int disconnect, gtk_rekey_failure, magic_pkt; - int eap_identity_req, four_way_handshake, rfkill_release, tcp, any; + bool any; + bool disconnect; + bool magic_pkt; + bool gtk_rekey_failure; + bool eap_identity_req; + bool four_way_handshake; + bool rfkill_release; + + /* Magic packet patterns. */ int n_patterns; - struct cfg80211_sched_scan_request *nd_config; struct cfg80211_pkt_pattern *patterns; + + /* netdetect? if not assoc? */ + struct cfg80211_sched_scan_request *nd_config; + + void *tcp; /* XXX ? */ }; struct cfg80211_gtk_rekey_data { @@ -1244,7 +1259,8 @@ struct wiphy { unsigned long ext_features[BITS_TO_LONGS(NUM_NL80211_EXT_FEATURES)]; struct dentry *debugfsdir; - struct cfg80211_wowlan_support *wowlan; + const struct wiphy_wowlan_support *wowlan; + struct cfg80211_wowlan *wowlan_config; /* Lower layer (driver/mac80211) specific data. */ /* Must stay last. */ uint8_t priv[0] __aligned(CACHE_LINE_SIZE); diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index baac9fe67fdd..5c155a4c1cc8 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -42,6 +42,7 @@ #include #include #include +#include #define ARPHRD_IEEE80211_RADIOTAP __LINE__ /* XXX TODO brcmfmac */ @@ -1075,9 +1076,7 @@ struct ieee80211_ops { int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool); int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *); - void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int); void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *); - void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *); int (*start_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *); void (*abort_pmsr)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_pmsr_request *); @@ -1121,9 +1120,18 @@ struct ieee80211_ops { void (*link_sta_add_debugfs)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_link_sta *, struct dentry *); void (*link_add_debugfs)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct dentry *); /* #endif */ +/* #ifdef CONFIG_PM_SLEEP */ /* Do not change depending on compile-time option. */ + int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *); + int (*resume)(struct ieee80211_hw *); + void (*set_wakeup)(struct ieee80211_hw *, bool); + void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *); + void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int); +/* #if IS_ENABLED(CONFIG_IPV6) */ + void (*ipv6_addr_change)(struct ieee80211_hw *, struct ieee80211_vif *, struct inet6_dev *); +/* #endif */ +/* #endif CONFIG_PM_SLEEP */ }; - /* -------------------------------------------------------------------------- */ /* linux_80211.c */ @@ -2411,7 +2419,7 @@ ieee80211_get_tkip_p1k_iv(struct ieee80211_key_conf *key, static __inline struct ieee80211_key_conf * ieee80211_gtk_rekey_add(struct ieee80211_vif *vif, - struct ieee80211_key_conf *key) + struct ieee80211_key_conf *key, int link_id) { TODO(); return (NULL); From nobody Fri Apr 18 14:37:07 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQr5sXHz5stWc; Fri, 18 Apr 2025 14:37:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQr0nNqz3KVs; Fri, 18 Apr 2025 14:37:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=51Z7gtbc0yOxYh4NN+AP3qkHIUpYxeJHkg5ILk9BQBw=; b=deA6NRpfVY9w4WRt3nGZHSxPbDIZH9XtFTP9Ph2fwbjiQzsYntBLCHzo0LQLMePBOHIfEQ x+gtd3VY3k9o+CIjwE8457TaQRR+tK7I/RVty0utVybl6uucl7dv+ZkQmgsnHzeDZSll3K gmGBoiUPH+dAFMyOFYu3iKZ+Lc7mP3t1swlht/WN11c2xJkjR2b7XHmgbIQlGyWnYoX77y EJk5f3FcDnRxcha0pk4albG6H+oIUtWXZQgwyGc8E41mp/i3dIM1Crwd4a7ubZS+y3MQWn RLu/MQ30ktOxCxTNKpw6sKIZoU8goINMJMXibSwxhT85xI/ehO76Pb2g4V+zLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987028; a=rsa-sha256; cv=none; b=AHsR5231rKCvgIVVmOYbxZxZKoMyxhf1OhL3T7RL507KsY24/U2eXeTHEFr57MZRz+sQqL dCm9a9Pb8tIbZRBksZX54mrV3lYZkMA0t7QfRB/slM5WE+cOvANlo3Z+f/ds92mShvKgSE hd8ehbrC3zKV8yBqTRQKwMuddVfwlgZg5hunAA8aSn1rznexNixSb3wVyFlqyw7YRgmhuL cFekJ40gjxkhzRKAIv3OU4JAekQ5gUFXPVeNrk9R9RLmbLXdoBB+WRtBP9oiTXvMC7oDIU 0jZmsly6q51eRkTAU19KmmdI09pcJ/o9aVxYrtLSw1+Xxt2cp0ZhTm4BSxKbMg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987028; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=51Z7gtbc0yOxYh4NN+AP3qkHIUpYxeJHkg5ILk9BQBw=; b=aVgEQsZu6qddJTzwhELEw9Cdr2rth44BZxORaf+BZ6juza3zWL/Gc8p6nS5Ll3TkpFwEXW ir7qjXCZdVk1N3XtbfoGziSRr7KWtOtXQ2NgXC35gcGU02xR2vRFeV5QY5TP5y1nghDWz5 OPJr7mWBlQCvbBY20Ran4Tw54mBFwPp2xAiU+MJAkfbe/6Dkg0KNVNYkSQLHxJpzafC1eD MvnvzwN44bHtoKlQhI8HMer8wSEtUXdoi+DIF85W7iNK1YNlzGUi7Vz34aW7CebJS8d7XA FdXN6iuXK+JhlZKPM/+eyojNQyCrf0MmNRB8bIPxj1fpox6WaPEEG3ko4NIeHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQr05GJzf3q; Fri, 18 Apr 2025 14:37:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb7k4091656; Fri, 18 Apr 2025 14:37:07 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb7ja091653; Fri, 18 Apr 2025 14:37:07 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:07 GMT Message-Id: <202504181437.53IEb7ja091653@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 350651dbc927 - stable/14 - LinuxKPI: 802.11: remove cipher_scheme support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 350651dbc9275b42cb9eb342971fb52b2f934a87 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=350651dbc9275b42cb9eb342971fb52b2f934a87 commit 350651dbc9275b42cb9eb342971fb52b2f934a87 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 00:22:12 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:00 +0000 LinuxKPI: 802.11: remove cipher_scheme support iwlwifi was the only driver we care about which "used" cipher_scheme and it was removed from there too. Remove given it is no longer used anywhere. Sponsored by: The FreeBSD Foundation (cherry picked from commit cdef9a9f91e2eee00e8f6f1ed743a8d8bd0bdc14) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 9faf58ed6ee5..dc1142270b9a 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -372,18 +372,6 @@ struct ieee80211_channel_switch { struct cfg80211_chan_def chandef; }; -struct ieee80211_cipher_scheme { - uint32_t cipher; - uint8_t iftype; /* We do not know the size of this. */ - uint8_t hdr_len; - uint8_t pn_len; - uint8_t pn_off; - uint8_t key_idx_off; - uint8_t key_idx_mask; - uint8_t key_idx_shift; - uint8_t mic_len; -}; - enum ieee80211_event_type { BA_FRAME_TIMEOUT, BAR_RX_EVENT, @@ -507,8 +495,6 @@ struct ieee80211_hw { /* TODO FIXME */ int extra_tx_headroom, weight_multiplier; int max_rate_tries, max_rates, max_report_rates; - struct ieee80211_cipher_scheme *cipher_schemes; - int n_cipher_schemes; const char *rate_control_algorithm; struct { uint16_t units_pos; /* radiotap "spec" is .. inconsistent. */ From nobody Fri Apr 18 14:37:09 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQs74Dfz5stf7; Fri, 18 Apr 2025 14:37:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQs20QWz3Kfn; Fri, 18 Apr 2025 14:37:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987029; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7TlkQGaKlWi3Uk5yU5gDkT63J/Q+CVmhIjdm/szAWDQ=; b=kop95/ytUn7XYvfn2sQTjuaEACVTM5umybGgZh56eJ0ZIIEPbWS8pBgIgFoIfoz3RWUBxU SoeKGg0ZrqmcoeTJVQH6ta+CubUv1JSzuQQWAuKhfsaRlTJZHnh0JgkyNULKDBk9PhXBcf XNFYY5pWMnl/jc8R/6Q25SOt1HQq7MHspo15TyeXeLLvTopFuXfbHrEvGOaMCdY4yIyHGf /i3Uo62rgcEzWHvDzkfjdVEtfxlcF3rZurTlTZwyOb8ZNTOdoMHDB0w/wGbJ3+XVwh2yeS QTiGfshxhbUWRrcAssaq37O6X9CH4feeLaZUA4IKLORRUuWSMlsfesN/zBbqvg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987029; a=rsa-sha256; cv=none; b=FW9PsAPzuocMYC3k7FH60ZdSbRvrJAXbsJsnvh7UMjLnG+iJR0yo+I5LYHgYoQ9i5N+Sw0 2YjpB/FuoRDABvr4h5cJwrBt3LfMmT72WuunGWi/eBYPzWnnv0nM7nRA4hXgfOlm4lYeNA My3eQzvaxkciLNZp9M4EBmQNayMDBx+2eT1JjKkPTqZHlMZhSdNkjJq7aBWFRhVIWN37/D hmQJdkG194sdVhPnEjZ8dYp1bfsbTd5VFpeEhfCcikzyC46TC9o2JwB5ev+WaFPHcd6sNN SXUjQ7Bhr/3KWk/RVsJYSRRIkgVFPT3rwYiaC5jj2MGmryrDUvOefDmqYSmZ6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987029; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7TlkQGaKlWi3Uk5yU5gDkT63J/Q+CVmhIjdm/szAWDQ=; b=aQthsWkDM87Uz0j8Ygh+mLygvMTbaQ6KCEuZtwD3DS82UU8M1TSdaEd72nJgya2lUgoZ0H KGbPTIZtj53WsOcjhPle/iYGODT3rJvMxmYflrppTJQKFyHCUiVInUrZOdKgwcFOh7mcBX 46VX9o8zxuIF2A8W1d/p6OlEIZ/yXs8NPwFHbpIjqYIrfhUblZrNze3jPBu6AMMKxVN6Tz v5rRLGN3ey0emasloenETHSU1FB+Cuppttkol/10ynzUsjBeHyH/lRpcLHPTa43duRmVsa QXjDx1jJB5tJR51RmzSazjDclbrPHrXQLS6DrwZ3+nrPtqszlILSGGfyulUlpw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQs12BVzdjY; Fri, 18 Apr 2025 14:37:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEb9h3091691; Fri, 18 Apr 2025 14:37:09 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEb9g1091688; Fri, 18 Apr 2025 14:37:09 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:09 GMT Message-Id: <202504181437.53IEb9g1091688@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 64ec6ddac008 - stable/14 - LinuxKPI: 802.11: crypto pn lengths List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64ec6ddac008a7f26527bce173855d215d88ca39 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=64ec6ddac008a7f26527bce173855d215d88ca39 commit 64ec6ddac008a7f26527bce173855d215d88ca39 Author: Bjoern A. Zeeb AuthorDate: 2025-03-15 00:01:11 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:00 +0000 LinuxKPI: 802.11: crypto pn lengths Define the last missing PN length and for consistency use them in struct ieee80211_key_seq (even though a 6 is a 6 is a 6). Sponsored by: The FreeBSD Foundation (cherry picked from commit c8a6676eb652b59fee545dc3e24ffec21bd0cd8d) --- sys/compat/linuxkpi/common/include/linux/ieee80211.h | 3 ++- sys/compat/linuxkpi/common/include/net/mac80211.h | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/linux/ieee80211.h b/sys/compat/linuxkpi/common/include/linux/ieee80211.h index ca1493e666c6..964fd970ecf0 100644 --- a/sys/compat/linuxkpi/common/include/linux/ieee80211.h +++ b/sys/compat/linuxkpi/common/include/linux/ieee80211.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2020-2024 The FreeBSD Foundation + * Copyright (c) 2020-2025 The FreeBSD Foundation * * This software was developed by Björn Zeeb under sponsorship from * the FreeBSD Foundation. @@ -64,6 +64,7 @@ struct ieee80211_mmie_16 { #define IEEE80211_GCMP_MIC_LEN 16 #define IEEE80211_GCMP_PN_LEN 6 #define IEEE80211_GMAC_PN_LEN 6 +#define IEEE80211_CMAC_PN_LEN 6 #define IEEE80211_MAX_PN_LEN 16 diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index dc1142270b9a..baac9fe67fdd 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -567,10 +567,13 @@ struct ieee80211_key_seq { uint8_t pn[IEEE80211_CCMP_PN_LEN]; } ccmp; struct { - uint8_t pn[IEEE80211_CCMP_PN_LEN]; + uint8_t pn[IEEE80211_GCMP_PN_LEN]; + } gcmp; + struct { + uint8_t pn[IEEE80211_CMAC_PN_LEN]; } aes_cmac; struct { - uint8_t pn[IEEE80211_CCMP_PN_LEN]; + uint8_t pn[IEEE80211_GMAC_PN_LEN]; } aes_gmac; struct { uint32_t iv32; From nobody Fri Apr 18 14:37:11 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQw0Pbfz5stYN; Fri, 18 Apr 2025 14:37:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQv3blVz3KZQ; Fri, 18 Apr 2025 14:37:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X8bAcCDBDAEv1nmYrSf0qd7SZr8wyNlhdeGCiykknMg=; b=EAH1YkcLUSL4wd5SgpG3aqpPF/qDEI11GSHTWJYut/sWcOf3LOrT2V9S4TyxYJlAeQcV2D quFK9ty+U1DbaRe3PntqXebxPqiUXo3AG7whyZ8BqfaLAShxz3uQEpCxNf/xizNnl7NkAo Yi0BgMZl+0o+mPgZgMo69rcFbRC7iBKLzMVjKWI5ZarX//qx5WdKJHSBeJmPq58GKOIaci SJDHLxYx046fJ5j4aG9gIScEt4ExzzgM3efrOde7kU/GZMr+qfClUmvWT0wYRkSLXz6h/b U5/0wjRCQjQBBHLBJ35z3GaxOp01en1WI71XWT4XGwpliikt8DboaWd6/TOpyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987031; a=rsa-sha256; cv=none; b=cQ+qqKVuFTqg9NOQj2q4k8oMIe0dtDuvVQyZvUaqZuvHEXmCRki4Du+xgVW7M7YyjbJgHf rUyqXTOD2CRKLMGYZ80fdBBvr4sLCCWn3PFpPeJVH3kk9zgO+y4crPNJ8zB1O2nwYEAFjk gH7BRrrNURlSYRf2oSx4WgpYNaJmHXJDbhcAHAvh7coGD7wUaip1nPF+/ApaX6p/Vx7Ped qFsLGEQM8hpXkAFNf5c/FOGhKxMUI3mnu46uzC3QoUL/uVBF1p5fk0wvabJaXLlNZQTizy cyhKTDriDA1iQ6BCENlOxKD1IANx1G0U8QEkDAeKaFfg6BDz1pQHwMiqBwc25A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X8bAcCDBDAEv1nmYrSf0qd7SZr8wyNlhdeGCiykknMg=; b=LQcRhKNWmrARk6nwhe7mcJ9+ExlLSUWiNbaXsY50o5LR1xtHt9gPLDjWhfB9X9BoUffsQU ELWv1NTHt42oMfV4u7JjHXtFLktRV/Z+Wm65Cmq5Zv/26ZebvJcQPyQYame3PBnXkbvkeq 5c+sndkHAZXL7UHnVExupJQzrf/fFAN9/oRoOhbNQAkWc75Q6d8vX6hWa5OU9fjkv2v23A +hZl1MobWw9IScGtFfLyjlz8uebV4zXHH+piWQseRs5GbirqO0Q5v3C0PFm1xVsDFO+8lt xxcVULV2l4kFGivZGdRdo2ICEWZTx9VFnEKrghKrCygy+f3RxaBMfYcWqzlQnw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQv38wGzdtC; Fri, 18 Apr 2025 14:37:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbB4k091767; Fri, 18 Apr 2025 14:37:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbBHj091764; Fri, 18 Apr 2025 14:37:11 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:11 GMT Message-Id: <202504181437.53IEbBHj091764@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 57764d222865 - stable/14 - LinuxKPI: 802.11: reduce code duplication introducing lkpi_remove_chanctx() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 57764d222865c1182dd9bab55fda4e4c012ba56b Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=57764d222865c1182dd9bab55fda4e4c012ba56b commit 57764d222865c1182dd9bab55fda4e4c012ba56b Author: Bjoern A. Zeeb AuthorDate: 2025-04-05 23:59:00 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:00 +0000 LinuxKPI: 802.11: reduce code duplication introducing lkpi_remove_chanctx() We have the same code three times, so factor it out into its own function to make it easier to maintain. Sponsored by: The FreeBSD Foundation PR: 280546 Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit 50d826be664ef35065e8c4c4966252f2dfde9cb9) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 2 +- sys/compat/linuxkpi/common/src/linux_80211.c | 80 ++++++++--------------- 2 files changed, 30 insertions(+), 52 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 5c155a4c1cc8..95991dd2ac42 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -839,7 +839,7 @@ struct ieee80211_vif { bool probe_req_reg; uint8_t addr[ETH_ALEN]; struct ieee80211_vif_cfg cfg; - struct ieee80211_chanctx_conf *chanctx_conf; + struct ieee80211_chanctx_conf *chanctx_conf; /* XXX-BZ no longer used anywhere but in linuxkpi 802.11 internally; now in bss_conf per-link? */ struct ieee80211_txq *txq; struct ieee80211_bss_conf bss_conf; struct ieee80211_bss_conf *link_conf[IEEE80211_MLD_MAX_NUM_LINKS]; /* rcu? */ diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 3d60404537e2..63a6328ebc74 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1731,6 +1731,31 @@ lkpi_80211_flush_tx(struct lkpi_hw *lhw, struct lkpi_sta *lsta) } } + +static void +lkpi_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +{ + /* Take the chan ctx down. */ + if (vif->chanctx_conf != NULL) { + struct lkpi_chanctx *lchanctx; + struct ieee80211_chanctx_conf *chanctx_conf; + + chanctx_conf = vif->chanctx_conf; + /* Remove vif context. */ + lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->chanctx_conf); + /* NB: vif->chanctx_conf is NULL now. */ + + lkpi_hw_conf_idle(hw, true); + + /* Remove chan ctx. */ + lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); + vif->bss_conf.chanctx_conf = NULL; + lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); + free(lchanctx, M_LKPI80211); + } +} + + /* -------------------------------------------------------------------------- */ static int @@ -1924,6 +1949,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int ic_printf(vap->iv_ic, "%s:%d: mo_assign_vif_chanctx " "failed: %d\n", __func__, __LINE__, error); lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); + vif->bss_conf.chanctx_conf = NULL; lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); free(lchanctx, M_LKPI80211); goto out; @@ -2157,23 +2183,7 @@ lkpi_sta_auth_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* conf_tx */ - /* Take the chan ctx down. */ - if (vif->chanctx_conf != NULL) { - struct lkpi_chanctx *lchanctx; - struct ieee80211_chanctx_conf *chanctx_conf; - - chanctx_conf = vif->chanctx_conf; - /* Remove vif context. */ - lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->chanctx_conf); - /* NB: vif->chanctx_conf is NULL now. */ - - lkpi_hw_conf_idle(hw, true); - - /* Remove chan ctx. */ - lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); - lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); - free(lchanctx, M_LKPI80211); - } + lkpi_remove_chanctx(hw, vif); out: LKPI_80211_LHW_UNLOCK(lhw); @@ -2501,23 +2511,7 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i /* conf_tx */ - /* Take the chan ctx down. */ - if (vif->chanctx_conf != NULL) { - struct lkpi_chanctx *lchanctx; - struct ieee80211_chanctx_conf *chanctx_conf; - - chanctx_conf = vif->chanctx_conf; - /* Remove vif context. */ - lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->chanctx_conf); - /* NB: vif->chanctx_conf is NULL now. */ - - lkpi_hw_conf_idle(hw, true); - - /* Remove chan ctx. */ - lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); - lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); - free(lchanctx, M_LKPI80211); - } + lkpi_remove_chanctx(hw, vif); error = EALREADY; out: @@ -3117,23 +3111,7 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* conf_tx */ - /* Take the chan ctx down. */ - if (vif->chanctx_conf != NULL) { - struct lkpi_chanctx *lchanctx; - struct ieee80211_chanctx_conf *chanctx_conf; - - chanctx_conf = vif->chanctx_conf; - /* Remove vif context. */ - lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->chanctx_conf); - /* NB: vif->chanctx_conf is NULL now. */ - - lkpi_hw_conf_idle(hw, true); - - /* Remove chan ctx. */ - lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); - lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); - free(lchanctx, M_LKPI80211); - } + lkpi_remove_chanctx(hw, vif); error = EALREADY; out: From nobody Fri Apr 18 14:37:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQw6X4Sz5stRN; Fri, 18 Apr 2025 14:37:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQw4L4Gz3KZb; Fri, 18 Apr 2025 14:37:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EB3H70GNqiE0WlP3x9RU6h8CkSvU4V4tzgS0CseaIrw=; b=bwZD5qQRbrPhxfxfWvlxBVoaeKYzUpcMUBfL1/9T3xftKkQDLmAlFeK3/DVYywPrTikOjm /xrYLq13QLNVaUm9YwavEeCKy8/6yKLa+9Kmhz44OtvmBxXcGamyyF2O1R/rNRkz7ncCVR xgvI18KhLcCcffnVhSonOOUI6K5PoPntfGOIZ+/3qYVxqAlZ45OKBXZm2so8sR+Q3DduAM SaLnlS/ArE9xOttai4G45JK+giAZtqf1TgUMFTIKJhZcLIahD/l6NVtlVIrcsPt0bI2MVo XAuwwTua1lsbb0UMm01pEL6APZZTegT7E1u6Buv0nucyhXZADp2Y49+UdKowew== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987032; a=rsa-sha256; cv=none; b=dvQi1BMpEWWxFnDNCeQL2IMpyEGsx81URItwq7oWI37P5Ww79X22vAF6QD1Zl6lMvtp4pM 2pHXH6IX3d8NAY1r5bfAjFP9hw3I2IRqW23eZ2U7j6b2zitDxtC6Je1a3pIpEEZkqOvph1 27VAEBW9meLnrT3MHQsez7aGIo/Vt28EDT9lCDaivzKSDr+ifTEVAULXBqFIQfZ60IRtP8 PX0D1VShcAnRvPX5uJS1o+JhUFW77VdD4WUmCdktqBpxUEv+Xw6stRp18RmWOq4KeGLfiG TKnLuQWcmwgELr/FWulD+9h1Ye1JooOmUk3UK87mnp8fEZgWm+N4479FAGKpHw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EB3H70GNqiE0WlP3x9RU6h8CkSvU4V4tzgS0CseaIrw=; b=ZO3WU1fsLTQaskD1PLmifbFuzB1Leme6m454uSw5/EHaqecXbUCR0DIiw9qjXoPnK+4Tu6 2sSsIpxSsy6dSJnwnDN/RnY5D0yL93TtClZsZjnzEcvzMsrvfginZu6t9zfJ3vDqGUcXim Btye/meEeS22cJBOB40M5xm+ElmWCX9T925R+Akluo7csWTyNkrwTI7mUKNYLpFbBqljj/ xYJ5yHC4+9yv/gUDUBWb2AgTZDd89gO/oGcmKNXY7IXcVgwvSGiC3aNReDcj3qh6Q5htSL FLFwy4Z0bPYCW1b1XOHXT2t+7XpLdY2sNu7spW2V6g63LBCQN6NE7b0+1deZbw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQw3vbZzdtD; Fri, 18 Apr 2025 14:37:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbCib091804; Fri, 18 Apr 2025 14:37:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbCYV091801; Fri, 18 Apr 2025 14:37:12 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:12 GMT Message-Id: <202504181437.53IEbCYV091801@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 494894b11a98 - stable/14 - LinuxKPI: 802.11: move chanctx_conf from vif to vif->bss_conf List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 494894b11a9886ed974de79498ada136249cb930 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=494894b11a9886ed974de79498ada136249cb930 commit 494894b11a9886ed974de79498ada136249cb930 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 00:56:36 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:00 +0000 LinuxKPI: 802.11: move chanctx_conf from vif to vif->bss_conf In preparations for MLD support chanctx_conf was moved from vif to the bss_conf as it will be per-link later. Follow accordingly. Sponsored by: The FreeBSD Foundation PR: 280546 Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit 11604b2a1659fd6da9bbfdc6acf9758884cb2b36) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 1 - sys/compat/linuxkpi/common/src/linux_80211.c | 20 ++++++++++---------- sys/compat/linuxkpi/common/src/linux_80211_macops.c | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 95991dd2ac42..016143874564 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -839,7 +839,6 @@ struct ieee80211_vif { bool probe_req_reg; uint8_t addr[ETH_ALEN]; struct ieee80211_vif_cfg cfg; - struct ieee80211_chanctx_conf *chanctx_conf; /* XXX-BZ no longer used anywhere but in linuxkpi 802.11 internally; now in bss_conf per-link? */ struct ieee80211_txq *txq; struct ieee80211_bss_conf bss_conf; struct ieee80211_bss_conf *link_conf[IEEE80211_MLD_MAX_NUM_LINKS]; /* rcu? */ diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 63a6328ebc74..43d5c5dc9deb 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1736,14 +1736,14 @@ static void lkpi_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { /* Take the chan ctx down. */ - if (vif->chanctx_conf != NULL) { + if (vif->bss_conf.chanctx_conf != NULL) { struct lkpi_chanctx *lchanctx; struct ieee80211_chanctx_conf *chanctx_conf; - chanctx_conf = vif->chanctx_conf; + chanctx_conf = vif->bss_conf.chanctx_conf; /* Remove vif context. */ - lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->chanctx_conf); - /* NB: vif->chanctx_conf is NULL now. */ + lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->bss_conf.chanctx_conf); + /* NB: vif->bss_conf.chanctx_conf is NULL now. */ lkpi_hw_conf_idle(hw, true); @@ -1840,8 +1840,8 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int LKPI_80211_LHW_LOCK(lhw); /* Add chanctx (or if exists, change it). */ - if (vif->chanctx_conf != NULL) { - chanctx_conf = vif->chanctx_conf; + if (vif->bss_conf.chanctx_conf != NULL) { + chanctx_conf = vif->bss_conf.chanctx_conf; lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); IMPROVE("diff changes for changed, working on live copy, rcu"); } else { @@ -1916,7 +1916,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int bss_changed |= lkpi_update_dtim_tsf(vif, ni, vap, __func__, __LINE__); error = 0; - if (vif->chanctx_conf != NULL) { + if (vif->bss_conf.chanctx_conf != NULL) { changed = IEEE80211_CHANCTX_CHANGE_MIN_WIDTH; changed |= IEEE80211_CHANCTX_CHANGE_RADAR; changed |= IEEE80211_CHANCTX_CHANGE_RX_CHAINS; @@ -3470,7 +3470,7 @@ lkpi_ic_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], /* XXX-BZ hardcoded for now! */ #if 1 - vif->chanctx_conf = NULL; + vif->bss_conf.chanctx_conf = NULL; vif->bss_conf.vif = vif; /* vap->iv_myaddr is not set until net80211::vap_setup or vap_attach. */ IEEE80211_ADDR_COPY(vif->bss_conf.addr, mac); @@ -5970,10 +5970,10 @@ linuxkpi_ieee80211_iterate_chan_contexts(struct ieee80211_hw *hw, TAILQ_FOREACH(lvif, &lhw->lvif_head, lvif_entry) { vif = LVIF_TO_VIF(lvif); - if (vif->chanctx_conf == NULL) + if (vif->bss_conf.chanctx_conf == NULL) continue; - lchanctx = CHANCTX_CONF_TO_LCHANCTX(vif->chanctx_conf); + lchanctx = CHANCTX_CONF_TO_LCHANCTX(vif->bss_conf.chanctx_conf); if (!lchanctx->added_to_drv) continue; diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c index 1da3c582adb4..e9f97914a4b1 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c +++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c @@ -459,7 +459,7 @@ lkpi_80211_mo_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif * hw, vif, conf, chanctx_conf); error = lhw->ops->assign_vif_chanctx(hw, vif, conf, chanctx_conf); if (error == 0) - vif->chanctx_conf = chanctx_conf; + vif->bss_conf.chanctx_conf = chanctx_conf; out: return (error); From nobody Fri Apr 18 14:37:13 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQy1cCrz5stJ1; Fri, 18 Apr 2025 14:37:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQx5lQwz3KpJ; Fri, 18 Apr 2025 14:37:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987033; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y4EukVIykvAOVAvSMvO/tQUzXrKpQh8dS0fuPIBCwPg=; b=U/mQAUEpKyurulfVtnXhh1YbMq+QMHackfRUXfnYN4CnxLFTrFV96SMkjEqzglEPRGl+48 2uCxEB509J2TQ/kSzldEqnj1jIrVnsX7TgdSLtTN8N7KJvJh80dfktalbHkgPNZlrLbcfu RVi0byA+ixpn8Uti5eUYqkMbyzYhJEoy/0NcEsrujTmr6p992i7lZhSzbtKOfPnFtU6f4D 1re5fxBM+Ocd4wKQTNTTdwSGmYQA6fIZFS3klH3FRNOQX9PIcoOo7RcUE0z4vWEIPh2E+z 67RuZaBV9YHRtmjJovG5ckRR4hji0p4fiEiZU611t/6Z3qNyRsIFezVO6Libzw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987033; a=rsa-sha256; cv=none; b=uJPHq61XOxug3udDaKcpYeHMVZqo3LKhctSQ9/+f7yvtGe05tIQ0glF5yZfv+VV9KzFpge lYItmVOn4ubFsqgpeLho1fj9AGgoA1J4RDtpnxqxldmwBdQ0j0xpsqcXkZywpo+hfIGNZ0 R4QKfAGg/H2H0WuH6WbK+8OR1/YJ6aEKJtYWLdSSUQVVrSSabOnK4qIpRSUR075WMSqcce jcTjIDTNIG3MpzpWX4zMP4Yi47gO503gZj/fl6zACSRIU6ndviBIL+mTGzKg9KLSsismle nyFFMN2im62Ipg8uy+uY3zGC0lYCDxE2wTyBcCIvCaxPIwrSLLsGMcKcQtQvSg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987033; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Y4EukVIykvAOVAvSMvO/tQUzXrKpQh8dS0fuPIBCwPg=; b=m4VIi71ZhoEbEdDXgOmBKs6OFiWnKLecrC54aExyNeBMF5nnlBw0C3OAgqWnam8cr0R13Q 8VdNc1+S1XUgxugIVWhYgvZfHAil9aAyR8kwFKlfkxtL9ihI6JDozYEPQRfw5JqQIfxPh5 nR8qTzZc9vSc9wJ888QjxpIulPKkJx6o25V5YRLQAPK6vLoW1uDJ0uwUpLKZ1NG7Jqyarf rjlVoj5JET9aLMiTMcrHAIhKceDQUQ5f3oK5vSQfqT7Bcgg1b/TvzylEcLC6KvQDcIfLMC H7JmlG3Fa9h9MnTaO787AhMFUKtacdYqqfTJ9yDiHib/WSAe+USZE99ocUHyFg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQx52K6zfDy; Fri, 18 Apr 2025 14:37:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbD8e091839; Fri, 18 Apr 2025 14:37:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbDHQ091836; Fri, 18 Apr 2025 14:37:13 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:13 GMT Message-Id: <202504181437.53IEbDHQ091836@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 7b9d08676f33 - stable/14 - LinuxKPI: 802.11: more fields moved from vif to bss_conf List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7b9d08676f3396f404501c959c4c0a95e3098ff4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7b9d08676f3396f404501c959c4c0a95e3098ff4 commit 7b9d08676f3396f404501c959c4c0a95e3098ff4 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 01:04:49 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:00 +0000 LinuxKPI: 802.11: more fields moved from vif to bss_conf csa_active, color_change_active, mu_mimo_owner also moved from vif to bss_conf; we already have the fields in bss_conf (adjust type for one) so all we have to do is remove the old relics in vif. Sponsored by: The FreeBSD Foundation Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit 5321cf2b15d7bff1b01182cfc4897ac978c63fe7) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 016143874564..8856eee8c696 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -343,6 +343,7 @@ struct ieee80211_bss_conf { bool eht_support; bool csa_active; bool mu_mimo_owner; + bool color_change_active; uint32_t sync_device_ts; uint64_t sync_tsf; uint16_t beacon_int; @@ -363,7 +364,6 @@ struct ieee80211_bss_conf { int twt_requester, uora_exists, uora_ocw_range; int assoc_capability, enable_beacon, hidden_ssid, ibss_joined, twt_protected; int twt_responder, unsol_bcast_probe_resp_interval; - int color_change_active; }; struct ieee80211_channel_switch { @@ -831,9 +831,8 @@ struct ieee80211_vif_cfg { struct ieee80211_vif { /* TODO FIXME */ enum nl80211_iftype type; - int csa_active, mu_mimo_owner; int cab_queue; - int color_change_active, offload_flags; + int offload_flags; enum ieee80211_vif_driver_flags driver_flags; bool p2p; bool probe_req_reg; From nobody Fri Apr 18 14:37:14 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHQz3LrTz5stfG; Fri, 18 Apr 2025 14:37:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHQy6FBvz3KpP; Fri, 18 Apr 2025 14:37:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MpnGOqfR3/Sv4fkdqFfZFbg87dSf3uCNY96Q8ZCHXpA=; b=SlOkJTD6BfbhhxxJVpOA1YdUPbbs5+yTQ7iZzIbJNRBZoCioj1wmIbU1jb1xSOT998TkfD KemmjQVtl16iAxIgsFECXolO+m8OjPC+iNIxZNbEsMm18as+fl1eZh3YG4/0GfHZDqhkHJ 4vkfytraRqPMtIH191FPs6cSxMdMbZVqF1YhJY9gKKaDnhhdGPG9ntqmEmbD8cTXK92Pou FT1WBlNhUILLUHyNCtI18THqYFx5PVfM9Lg+211TDXTfhHE34+lyMw/SPhfWe4PT/Pcosx 5ThafaqliJs+DkLzVjwhyeIY4RJ8LDj7pC2l84C1XmlhGCsEma1iQE4CbQ8JQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987034; a=rsa-sha256; cv=none; b=ax7P0hpRzAI2ovGbnOpsEicZlqiO+zJJap3YJaIpQgZi2Jidy3FfnAnZHsnmXyBfyUqxLc pAUnWsqRkaX8f22qmiW8UmY7xTjr7LdlsQJDh3G3WZml8tMhJSDFDL+pRlHpcnd2EgYhLD onrxjPQGidPObk0e/uth/hBi4omkbZm3qjTgBUGj7cx/zLGTbGGb3OJw0aIDtoQQeeIj3s EnWWnUb9nUR3FxbRxxv4jouCFD94rKPoA8XEgi9toxfk+YydvGAScIwXCw6aMAVm6YHs17 C+orAFIV7/R/dYU4LyNs9R5bKigPk3Sc6wS+jn6Xtt5ZoO87SKp03aXap0nyjA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MpnGOqfR3/Sv4fkdqFfZFbg87dSf3uCNY96Q8ZCHXpA=; b=Y6CMHt1MBsGMCBG53yjFWG/HVpdMf6096vN4l4E/del6VBVqbrcX7uCQQs5ibDHOeqSXjU pUd4kkUZBEDqNUkpQ+k4piwqZ+XTOohPJb/roR77eKCF08fd321USDWR3uhtc1rjFzK9Tq d12Vk5NmFx0nYyV6vjyMGAxUqryXW5ppFkh0Zulv8LcmGzjXbqdCY1NOwE1W/NFRwL+Wp9 a92CCR+b3FUpOH5Ar/urepaWd/qoI4hqyBpZCWTbBxc9vbPwEX2oHDhPDUl3Fxz1t9pKEm XE1/MXtTn5E9TNz5QALgGG2divJQWWFBWejMqws22ASD2wHevsWSH1umRHlpOQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHQy5qb4zdxx; Fri, 18 Apr 2025 14:37:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbEXj091874; Fri, 18 Apr 2025 14:37:14 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbE4d091871; Fri, 18 Apr 2025 14:37:14 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:14 GMT Message-Id: <202504181437.53IEbE4d091871@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 7614861463e6 - stable/14 - LinuxKPI: 802.11: adjust locking around lkpi_remove_chanctx() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7614861463e6c26fdaaa79206b2bb0c79bb23683 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7614861463e6c26fdaaa79206b2bb0c79bb23683 commit 7614861463e6c26fdaaa79206b2bb0c79bb23683 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 16:35:20 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:01 +0000 LinuxKPI: 802.11: adjust locking around lkpi_remove_chanctx() With the adjusted locking as a first step and the single code path into lkpi_80211_mo_unassign_vif_chanctx() we also move the "setting chnactx to NULL" into the caller to simplify the code. Before we can adjust the other places touching vif->bss_conf.chanctx we need to adjust the overall locking in LinuxKPI 802.11. Sponsored by: The FreeBSD Foundation PR: 280546 Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit 231168c7e77777f69a323bcd80a7956527d34548) --- sys/compat/linuxkpi/common/src/linux_80211.c | 39 +++++++++++++--------- sys/compat/linuxkpi/common/src/linux_80211.h | 2 +- .../linuxkpi/common/src/linux_80211_macops.c | 12 ++++--- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 43d5c5dc9deb..edd3b91dcecf 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1735,24 +1735,27 @@ lkpi_80211_flush_tx(struct lkpi_hw *lhw, struct lkpi_sta *lsta) static void lkpi_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) { - /* Take the chan ctx down. */ - if (vif->bss_conf.chanctx_conf != NULL) { - struct lkpi_chanctx *lchanctx; - struct ieee80211_chanctx_conf *chanctx_conf; + struct ieee80211_chanctx_conf *chanctx_conf; + struct lkpi_chanctx *lchanctx; - chanctx_conf = vif->bss_conf.chanctx_conf; - /* Remove vif context. */ - lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, &vif->bss_conf.chanctx_conf); - /* NB: vif->bss_conf.chanctx_conf is NULL now. */ + chanctx_conf = rcu_dereference_protected(vif->bss_conf.chanctx_conf, + lockdep_is_held(&hw->wiphy->mtx)); - lkpi_hw_conf_idle(hw, true); + if (chanctx_conf == NULL) + return; - /* Remove chan ctx. */ - lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); - vif->bss_conf.chanctx_conf = NULL; - lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); - free(lchanctx, M_LKPI80211); - } + /* Remove vif context. */ + lkpi_80211_mo_unassign_vif_chanctx(hw, vif, &vif->bss_conf, chanctx_conf); + + lkpi_hw_conf_idle(hw, true); + + /* Remove chan ctx. */ + lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); + + /* Cleanup. */ + rcu_assign_pointer(vif->bss_conf.chanctx_conf, NULL); + lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); + free(lchanctx, M_LKPI80211); } @@ -2183,7 +2186,9 @@ lkpi_sta_auth_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* conf_tx */ + wiphy_lock(hw->wiphy); lkpi_remove_chanctx(hw, vif); + wiphy_unlock(hw->wiphy); out: LKPI_80211_LHW_UNLOCK(lhw); @@ -2511,7 +2516,9 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i /* conf_tx */ + wiphy_lock(hw->wiphy); lkpi_remove_chanctx(hw, vif); + wiphy_unlock(hw->wiphy); error = EALREADY; out: @@ -3111,7 +3118,9 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* conf_tx */ + wiphy_lock(hw->wiphy); lkpi_remove_chanctx(hw, vif); + wiphy_unlock(hw->wiphy); error = EALREADY; out: diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index c2d29b2dcc4b..c01a6cb0cd7c 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -425,7 +425,7 @@ int lkpi_80211_mo_config(struct ieee80211_hw *, uint32_t); int lkpi_80211_mo_assign_vif_chanctx(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); void lkpi_80211_mo_unassign_vif_chanctx(struct ieee80211_hw *, struct ieee80211_vif *, - struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf **); + struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); int lkpi_80211_mo_add_chanctx(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); void lkpi_80211_mo_change_chanctx(struct ieee80211_hw *, struct ieee80211_chanctx_conf *, uint32_t); diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c index e9f97914a4b1..ff3959340af7 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c +++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c @@ -467,21 +467,23 @@ out: void lkpi_80211_mo_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - struct ieee80211_bss_conf *conf, struct ieee80211_chanctx_conf **chanctx_conf) + struct ieee80211_bss_conf *conf, struct ieee80211_chanctx_conf *chanctx_conf) { struct lkpi_hw *lhw; + might_sleep(); + lockdep_assert_wiphy(hw->wiphy); + lhw = HW_TO_LHW(hw); if (lhw->ops->unassign_vif_chanctx == NULL) return; - if (*chanctx_conf == NULL) + if (chanctx_conf == NULL) return; LKPI_80211_TRACE_MO("hw %p vif %p bss_conf %p chanctx_conf %p", - hw, vif, conf, *chanctx_conf); - lhw->ops->unassign_vif_chanctx(hw, vif, conf, *chanctx_conf); - *chanctx_conf = NULL; + hw, vif, conf, chanctx_conf); + lhw->ops->unassign_vif_chanctx(hw, vif, conf, chanctx_conf); } From nobody Fri Apr 18 14:37:15 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR068Fwz5stFM; Fri, 18 Apr 2025 14:37:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR00z7vz3KbS; Fri, 18 Apr 2025 14:37:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BLM4vnG1ydcpo3qq+xdmPw/AZ56/smUDeFNVgepx24g=; b=EpF1tLrx9F31G5Pi3525BvY/Or4R7DF0GLNqoO+ti2W3V2pzTGzBpcPwK89oQmILRtitba Jp3motL5AXvmj+U5LNcEp585bWWWfYqXasicK1GjUG2BzQkdYq2rYbQvX9mBMZUP/CMYF0 cwdxvjgDu8G5dA+cuVAmIAxiyYEvnUKvKmm7jUZo1KBaJeqPFL01cqUqzHyQePx4x9FyYC hcI9KfiyDn1arTaifDMAT9q1NWjl4jN5zFcywT4HD9g/7CVAJt/RZ5HIZJAcF9gan7GZKM j5zCl9bblRv19g6JCjhPkPkqnTM/4yb6kALy5B474dKkzgvZwJWMoKYAYr0yXQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987036; a=rsa-sha256; cv=none; b=OAmbpbn98LUF0qgU5dtDRgx6rMf5B17y59j6+TwDTD88x6MQSSSFwU2UwFYTzrXPI1m5XO 7ZGYP0qem7fJZX0IgjLL2SrV2KYmNavoxgdXeACcQLGWUtF7B5vSQz/3JSjdyvogCMHFBJ QhPAX1H8Op1BWAHlTScqRtiViWIQ1HPGH6nYXCFut4B1YOstdQ92I+NDgq6AgSONlrVPG+ VCgrEqHnBHhwg8Mm1Vg6L5J/jZ+58yiDBA6z8h98iLXE8zLwmmAc1rE2tqRofnNdrj9Jse 2NZby0s7notiVpqeIUQPvQhP77dQZ8mdm9P5FmorEEfz3LvwqnEtIqVwAW+/9Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BLM4vnG1ydcpo3qq+xdmPw/AZ56/smUDeFNVgepx24g=; b=pSG0e5RbqrO5NIZmQ7swEl7g5DfvGXnqe+lbO/SwQ5UGaQGJSJtlPDpdMoN6md/k8vD+gY luj/AKUDMF35FFDSihhGIaoLZD1Wji6rHdtKomM2/5CZlG3/EVnb8zgnihdoaUswT3gvNJ o2qln59X4rNIyVl1znIGKtjFJJbI53UDo9pdHkumVJjVIUZwA6KCxrEKkaSczKyfkzQmBY 4+Zu5BdmBa4GMx6vrNZVSu3vxhB7ulVDYvQt3jjp9ZD7LDS4koNmOhJ6RAjGFEfk5rJSzf wRNE7vypTo2zAXGNjallfKnrOgYlcudsM8sZbNG35HMsx8tkBiPcvJoswkmtYw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR00BXBzfHK; Fri, 18 Apr 2025 14:37:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbF3D091909; Fri, 18 Apr 2025 14:37:15 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbFtZ091906; Fri, 18 Apr 2025 14:37:15 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:15 GMT Message-Id: <202504181437.53IEbFtZ091906@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: e36fd5d2b60f - stable/14 - LinuxKPI: 802.11: try to limit VHT (11ac) to 5Ghz List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e36fd5d2b60ff816e3f56253460de5c370e1d5c4 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e36fd5d2b60ff816e3f56253460de5c370e1d5c4 commit e36fd5d2b60ff816e3f56253460de5c370e1d5c4 Author: Bjoern A. Zeeb AuthorDate: 2025-04-09 19:22:25 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:01 +0000 LinuxKPI: 802.11: try to limit VHT (11ac) to 5Ghz We have multiple reports for iwlwifi firmware crashes where net80211 logged: ieee80211_sta_join: BSS xx:xx:xx:xx:xx:xx: 2GHz channel, VHT info; ignoring Make sure when we sync from net80211 or set state that we only do VHT if we are on the 5Ghz band. This change is likely helpful whether it fixes the originally reported problems or not. Sponsored by: The FreeBSD Foundation Reported by: Jonathan Vasquez (jon xyinn.org) Reported by: Michael Butler (imb protected-networks.net) Reported by: others (fw crash w/o net80211 logging) Tested by: Eirik Øverby (ltning-freebsd-wireless anduin.net) Tested by: lwhsu Tested by: Michael Butler (imb protected-networks.net) Differential Revision: https://reviews.freebsd.org/D49761 (cherry picked from commit 5393cd34854e1fe23ab214e9f741879fa6bf1193) --- sys/compat/linuxkpi/common/src/linux_80211.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index edd3b91dcecf..1eff90a1d93e 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -442,7 +442,8 @@ lkpi_sta_sync_vht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) uint16_t rx_mcs_map; uint8_t mcs; - if ((ni->ni_flags & IEEE80211_NODE_VHT) == 0) { + if ((ni->ni_flags & IEEE80211_NODE_VHT) == 0 || + !IEEE80211_IS_CHAN_VHT_5GHZ(ni->ni_chan)) { sta->deflink.vht_cap.vht_supported = false; return; } @@ -1874,7 +1875,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int } #endif #ifdef LKPI_80211_VHT - if (IEEE80211_IS_CHAN_VHT(ni->ni_chan)) { + if (IEEE80211_IS_CHAN_VHT_5GHZ(ni->ni_chan)) { #ifdef __notyet__ if (IEEE80211_IS_CHAN_VHT80P80(ni->ni_chan)) chanctx_conf->def.width = NL80211_CHAN_WIDTH_80P80; @@ -3864,7 +3865,8 @@ lkpi_scan_ies_add(uint8_t *p, struct ieee80211_scan_ies *scan_ies, } #endif #if defined(LKPI_80211_VHT) - if ((vap->iv_vht_flags & IEEE80211_FVHT_VHT) != 0) { + if (band == NL80211_BAND_5GHZ && + (vap->iv_vht_flags & IEEE80211_FVHT_VHT) != 0) { struct ieee80211_channel *c; c = ieee80211_ht_adjust_channel(ic, ic->ic_curchan, @@ -5366,7 +5368,7 @@ lkpi_ic_getradiocaps(struct ieee80211com *ic, int maxchan, NL80211_BAND_5GHZ); #ifdef LKPI_80211_VHT - if (hw->wiphy->bands[NL80211_BAND_5GHZ]->vht_cap.vht_supported){ + if (hw->wiphy->bands[NL80211_BAND_5GHZ]->vht_cap.vht_supported) { ic->ic_flags_ext |= IEEE80211_FEXT_VHT; ic->ic_vht_cap.vht_cap_info = From nobody Fri Apr 18 14:37:17 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR15zkpz5stWv; Fri, 18 Apr 2025 14:37: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR11QCRz3KVM; Fri, 18 Apr 2025 14:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RKj8y1+36Qb4g5hLVPsq3nsZQwvZdEkCIPr8fxgavJk=; b=wKC/m/7o2Dcvs9gs3Hw4Crtl5R1OCRSOq5wb65QRFVzfjx3ZHsp2gw0UEwQlMTXKTle1/j lLnvjF5t/TVJaKz1M2SwCC/IHlP2vstcjwqxWtFLagnU7/7ZHh5ird+HdaKGwkFa/Uvsfh RXCBzKC/7BKZIQFTA9+wBW10ts5mmOfm9u3S2Bi4iIf0UD4ueZTxyyc+6+xgg0aI3ZsrMd yk1/cvrgZPnf/Pq90Cx4ZVae+4NoCkKXuJUdJwLJ0qDh7BDm9cJHrsLxTEUNi2SlnLXCnF i3QxKb9l1l9gUdkp1pArOa57zd+6OhFiIHd5b6OYQ1xM2nXIhxXmTJC+A/pXWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987037; a=rsa-sha256; cv=none; b=BTV/o5obzv+diwqlGzRioLsIf9OEb6a4Btin9xnuofPmigHZUHVA2a2wcIJc1vVVHr939G 4IvPk1WNjCLV5IvSEbuANFF8J1d/50up4m2jkuoKFfnLbwTF+v2Wi437vs7XnlAV/UcJ7X 6eYzDFxB6uTl4GZ9TWo5OjIAMmSgwn7tKX01jsLsmRP1gBaNXDtVx1JWpndwPvhNuWD6Rd LYOQie9BF6MnnTqQ/qTg5o9w7v79mAZpUw09zKFKmWDwj5X446FQXWje8Re6akAkzoPIdL SfwAAzyX8d+QAE8xk6I23wrZu/RXW02UJDrc0L4K5nKGJJ2R5MXcBSf+AAX7GQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RKj8y1+36Qb4g5hLVPsq3nsZQwvZdEkCIPr8fxgavJk=; b=ilTAe0yDTxh345k22EbFm+uiyT5TevwQAVqkcEWGrkwZsoXCO7qSUABZXAa/mVkFLi0Qmg YyWIGzOpU3j9Cu3+7n63jJG+CPcDRoCaTrBeYb9Xzi7mV06MTmYbGDYgmSRCgUax5bOtEv 7xRnv61goyEjBZUk0pYYqMg6kWfLqMRzTzPEmAT06/iAyvke3O7Z+hLi7XYbmvdZvU3Iyc e15/IlLR//Ums4S8XDZGgPGx7N7ia4xnneKxpP7UhIXKq1K668fKmCmnL/tEr2e5nF50DD CvG33f4LajHxcFwu7a//cYWJvtYQSAnBe1Eup2jBqxtMxlcAz5O6csUQaiB7XA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR10rLNzf3s; Fri, 18 Apr 2025 14:37:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbHqC091950; Fri, 18 Apr 2025 14:37:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbHEG091947; Fri, 18 Apr 2025 14:37:17 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:17 GMT Message-Id: <202504181437.53IEbHEG091947@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: becb074fdefc - stable/14 - LinuxKPI: 802.11: adjust vif->bss_conf.chanctx_conf to rcu accessors List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: becb074fdefc40cff3365746a1036843e16c09d6 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=becb074fdefc40cff3365746a1036843e16c09d6 commit becb074fdefc40cff3365746a1036843e16c09d6 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 19:25:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:01 +0000 LinuxKPI: 802.11: adjust vif->bss_conf.chanctx_conf to rcu accessors Adjust the init and lkpi_sta_scan_to_auth() chanctx_conf accesses to use rcu functions as needed. linuxkpi_ieee80211_iterate_chan_contexts() which is ieee80211_iter_chan_contexts_atomic() needs further work to get rid of the vif locks by keeping all chanctx_conf on a list in lhw. This will be done in a follow-up commit. Sponsored by: The FreeBSD Foundation PR: 280546 Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit 560708cbb0468bf1fd1834f4894a1326e88ff10e) --- sys/compat/linuxkpi/common/src/linux_80211.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 1eff90a1d93e..bd1e60928144 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1844,8 +1844,9 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int LKPI_80211_LHW_LOCK(lhw); /* Add chanctx (or if exists, change it). */ - if (vif->bss_conf.chanctx_conf != NULL) { - chanctx_conf = vif->bss_conf.chanctx_conf; + chanctx_conf = rcu_dereference_protected(vif->bss_conf.chanctx_conf, + lockdep_is_held(&hw->wiphy->mtx)); + if (chanctx_conf != NULL) { lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); IMPROVE("diff changes for changed, working on live copy, rcu"); } else { @@ -1920,7 +1921,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int bss_changed |= lkpi_update_dtim_tsf(vif, ni, vap, __func__, __LINE__); error = 0; - if (vif->bss_conf.chanctx_conf != NULL) { + if (vif->bss_conf.chanctx_conf == chanctx_conf) { changed = IEEE80211_CHANCTX_CHANGE_MIN_WIDTH; changed |= IEEE80211_CHANCTX_CHANGE_RADAR; changed |= IEEE80211_CHANCTX_CHANGE_RX_CHAINS; @@ -1941,7 +1942,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int goto out; } - vif->bss_conf.chanctx_conf = chanctx_conf; + rcu_assign_pointer(vif->bss_conf.chanctx_conf, chanctx_conf); /* Assign vif chanctx. */ if (error == 0) @@ -1953,7 +1954,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int ic_printf(vap->iv_ic, "%s:%d: mo_assign_vif_chanctx " "failed: %d\n", __func__, __LINE__, error); lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); - vif->bss_conf.chanctx_conf = NULL; + rcu_assign_pointer(vif->bss_conf.chanctx_conf, NULL); lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); free(lchanctx, M_LKPI80211); goto out; @@ -3480,7 +3481,7 @@ lkpi_ic_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], /* XXX-BZ hardcoded for now! */ #if 1 - vif->bss_conf.chanctx_conf = NULL; + RCU_INIT_POINTER(vif->bss_conf.chanctx_conf, NULL); vif->bss_conf.vif = vif; /* vap->iv_myaddr is not set until net80211::vap_setup or vap_attach. */ IEEE80211_ADDR_COPY(vif->bss_conf.addr, mac); @@ -5981,7 +5982,7 @@ linuxkpi_ieee80211_iterate_chan_contexts(struct ieee80211_hw *hw, TAILQ_FOREACH(lvif, &lhw->lvif_head, lvif_entry) { vif = LVIF_TO_VIF(lvif); - if (vif->bss_conf.chanctx_conf == NULL) + if (vif->bss_conf.chanctx_conf == NULL) /* XXX-BZ; FIXME see IMPROVE above. */ continue; lchanctx = CHANCTX_CONF_TO_LCHANCTX(vif->bss_conf.chanctx_conf); From nobody Fri Apr 18 14:37:18 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR30Hn9z5stfP; Fri, 18 Apr 2025 14:37:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR239ZPz3Kmy; Fri, 18 Apr 2025 14:37:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mMopBGP4Yd7iyYogS36FtcfzbvJyl15xlFWsN8KKi2w=; b=AqvJCGKPrGEvpuDjAKJau21S/xm8/tKL+y0besRd+8F046670h98YmFTgh562nF46+6C7Z dGKm0D+yxkD0FbW7+C6goK7/6I4/ASJhT/Ok8/cGczp+IbdonlWqp4N3FByKbX5/v0oy/C 3auCZxSBt25xdYjVEqlPM7Ama0tuxCBDYq+FP1hsn/KvdtH/952GFLfIY3f8VCFNV+MGpz 900iy0aYp5WgKRfNtCTempOjAGeaqIptSJD9PKAXtU00BVJV/J6H7jMx4fA3KbnZo2sy0l gwgQiirO2TyRKO7sMMcKISMCV3uR3bGSH4dIGnu0mQCa0T41HECoJT3ZWO/y5g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987038; a=rsa-sha256; cv=none; b=bAG8QdxA3VExLZJzWAk8wtibwSOoVvhO9wciuIKNnyiIpAX0M7PYErJJGxnsL0K1W9MLDJ Zr1l7oIzssYei6DhiE12GqTIIUwG/aB0Bfao/Y0UYy4eImfUXapzxClqkFQnOanDZlKbOx HxBJmwvNC3BbpaOSUdb9GQYxRaAswqtR2No7wGeQ4OJXfwUGdNlcX7P+emSm6DLZIJ2k7p A+Wf0xP54GpMu2bSmcSyMSkIeKDLenzjv6q1dEKASU8pANXxIAKhg/LvOihuHJcwKFZJAy 8aJ1EKfQHSwBoCEDjiablqoYO4kKdGLx93gDPIHqzOghxTBDbqpFbeuQRtF9xw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mMopBGP4Yd7iyYogS36FtcfzbvJyl15xlFWsN8KKi2w=; b=lpWPrHTZdmx7sl70RjJ51KJsEmq9wriERlEAnUlL/ecyRbev/q7jUsfhmw+Uty3E5xCiYg +fGhNnMKkW5CD3seYxTVvMeyW3A3W4Ntt6aI89gexY4a4b7im47+12HsZTt2cxQ6ec918I tje5fglofknVjTkDVBMVGlufEIpJkt0J8/hos7ruCBmukj3ZiXSKUnxYOUN14B3SGGG1Rq 7FFnYMkG0WSuw5dNdb72ZS9p4GU6N8c/f8otVTWnUR7dCHTl1j5t6VqrfsxzpBYCLHF7Tf +mt8mtYdL77/rrCJUsiOQzbIkutZ40zcwXigLlp6iDDofJGIjbB4NlCi21Eocg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR229phzfHL; Fri, 18 Apr 2025 14:37:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbIDw091987; Fri, 18 Apr 2025 14:37:18 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbIR6091984; Fri, 18 Apr 2025 14:37:18 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:18 GMT Message-Id: <202504181437.53IEbIR6091984@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 3a35e07fa930 - stable/14 - LinuxKPI: 802.11: add a lchanctx list to lhw List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3a35e07fa9309a357f9f7d25e86aba6f93c0af84 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3a35e07fa9309a357f9f7d25e86aba6f93c0af84 commit 3a35e07fa9309a357f9f7d25e86aba6f93c0af84 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 23:05:43 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:01 +0000 LinuxKPI: 802.11: add a lchanctx list to lhw While we are currently only supporting a single VAP (vif) it is less of a trouble but in order to get locking and rcu accesses [from drivers] more right add a list for all chanctx_conf we have for one hw. Use that list in the iterator function to avoid having to lock the vif but not protecting the chanctx list (against a parallel removal) due to different locking. Sponsored by: The FreeBSD Foundation PR: 280546 Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit a8a47a41775b0320606f90b3ac2048bc23494615) --- sys/compat/linuxkpi/common/src/linux_80211.c | 39 ++++++++++++++++++---------- sys/compat/linuxkpi/common/src/linux_80211.h | 4 +++ 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index bd1e60928144..f5f52101d367 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1756,6 +1756,7 @@ lkpi_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif) /* Cleanup. */ rcu_assign_pointer(vif->bss_conf.chanctx_conf, NULL); lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); + list_del(&lchanctx->entry); free(lchanctx, M_LKPI80211); } @@ -1942,6 +1943,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int goto out; } + list_add_rcu(&lchanctx->entry, &lhw->lchanctx_list); rcu_assign_pointer(vif->bss_conf.chanctx_conf, chanctx_conf); /* Assign vif chanctx. */ @@ -1956,6 +1958,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); rcu_assign_pointer(vif->bss_conf.chanctx_conf, NULL); lchanctx = CHANCTX_CONF_TO_LCHANCTX(chanctx_conf); + list_del(&lchanctx->entry); free(lchanctx, M_LKPI80211); goto out; } @@ -5469,6 +5472,9 @@ linuxkpi_ieee80211_alloc_hw(size_t priv_len, const struct ieee80211_ops *ops) TAILQ_INIT(&lhw->scheduled_txqs[ac]); } + /* Chanctx_conf */ + INIT_LIST_HEAD(&lhw->lchanctx_list); + /* Deferred RX path. */ LKPI_80211_LHW_RXQ_LOCK_INIT(lhw); TASK_INIT(&lhw->rxq_task, 0, lkpi_80211_lhw_rxq_task, lhw); @@ -5532,6 +5538,22 @@ linuxkpi_ieee80211_iffree(struct ieee80211_hw *hw) __func__, lhw, mbufq_len(&lhw->rxq))); LKPI_80211_LHW_RXQ_LOCK_DESTROY(lhw); + /* Chanctx_conf. */ + if (!list_empty_careful(&lhw->lchanctx_list)) { + struct lkpi_chanctx *lchanctx, *next; + struct ieee80211_chanctx_conf *chanctx_conf; + + list_for_each_entry_safe(lchanctx, next, &lhw->lchanctx_list, entry) { + if (lchanctx->added_to_drv) { + /* In reality we should panic? */ + chanctx_conf = &lchanctx->chanctx_conf; + lkpi_80211_mo_remove_chanctx(hw, chanctx_conf); + } + list_del(&lchanctx->entry); + free(lchanctx, M_LKPI80211); + } + } + /* Cleanup more of lhw here or in wiphy_free()? */ LKPI_80211_LHW_TXQ_LOCK_DESTROY(lhw); LKPI_80211_LHW_SCAN_LOCK_DESTROY(lhw); @@ -5967,8 +5989,6 @@ linuxkpi_ieee80211_iterate_chan_contexts(struct ieee80211_hw *hw, void *arg) { struct lkpi_hw *lhw; - struct lkpi_vif *lvif; - struct ieee80211_vif *vif; struct lkpi_chanctx *lchanctx; KASSERT(hw != NULL && iterfunc != NULL, @@ -5976,22 +5996,13 @@ linuxkpi_ieee80211_iterate_chan_contexts(struct ieee80211_hw *hw, lhw = HW_TO_LHW(hw); - IMPROVE("lchanctx should be its own list somewhere"); - - LKPI_80211_LHW_LVIF_LOCK(lhw); - TAILQ_FOREACH(lvif, &lhw->lvif_head, lvif_entry) { - - vif = LVIF_TO_VIF(lvif); - if (vif->bss_conf.chanctx_conf == NULL) /* XXX-BZ; FIXME see IMPROVE above. */ - continue; - - lchanctx = CHANCTX_CONF_TO_LCHANCTX(vif->bss_conf.chanctx_conf); + rcu_read_lock(); + list_for_each_entry_rcu(lchanctx, &lhw->lchanctx_list, entry) { if (!lchanctx->added_to_drv) continue; - iterfunc(hw, &lchanctx->chanctx_conf, arg); } - LKPI_80211_LHW_LVIF_UNLOCK(lhw); + rcu_read_unlock(); } void diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index c01a6cb0cd7c..8bc2a465f76f 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -217,6 +217,7 @@ struct lkpi_hw { /* name it mac80211_sc? */ struct sx lvif_sx; struct sx sx; /* XXX-BZ Can this be wiphy->mtx in the future? */ + struct list_head lchanctx_list; struct mtx txq_mtx; uint32_t txq_generation[IEEE80211_NUM_ACS]; @@ -284,7 +285,10 @@ struct lkpi_hw { /* name it mac80211_sc? */ #define HW_TO_LHW(_hw) container_of(_hw, struct lkpi_hw, hw) struct lkpi_chanctx { + struct list_head entry; + bool added_to_drv; /* Managed by MO */ + struct ieee80211_chanctx_conf chanctx_conf __aligned(CACHE_LINE_SIZE); }; #define LCHANCTX_TO_CHANCTX_CONF(_lchanctx) \ From nobody Fri Apr 18 14:37:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR42Ny3z5stYc; Fri, 18 Apr 2025 14:37:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR33dQVz3Kxf; Fri, 18 Apr 2025 14:37:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NPH8EL5MtXe6bconTMKQKC5qLvDyNcvlMY1tRaFWmlU=; b=oY2JB8qdWxTPqo3mXrgLau+aTz8QddfVR0nY03xHIcBGofl09cjejQph0GsZNk32BeEYT5 NcupYPRpVeeMqHB/DXpeTCqmS3f/LGLaU3Bfl6JTm6cT5SjRPs4QOLU2EqdrWEO1MHNW9S xNGEcQaGNPzQVuoTyxeb1lckKM8ByOj34MeTVRB842H6LuKfzNwLR1YXa3U6esN+IVgGo+ 8tRsD+nwDrWk7lFJ3j+jG038VFZ7UMSYzuDDs6/D58reviO9P8urxC9HFGUZFhaRIcI5Rn zGICDxCTTsDK6II44EvFM7W3+oykRCUXd6nUkrNso5/NcPy1uWQanzYbJI9rjQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987039; a=rsa-sha256; cv=none; b=MNzApmpaEa7wBJ8kq2MrIDjqZ9M8ZNTSUhaH5eITesGBkIss+adP9x8XkBgQ1xhvriHwqD 4P3TUOKOdS5yrkE1BNRUN398M4P4FEd4G7mhzzSJLFs+FNRQPPyDV/rYIF6mSbqpbliRkn zClzHiPd5bDxVowqxGres/e2j2J++q0nNHn3HCkzwtx0VEAk/KNi3dcg4nSczdDXjEcvrr QPIyC/TbbMW9Mw06J7Zy09QINGVxpcCTT74SQXjBMXfGj5TAp17tHCaFsraHf6YV+NV+Hn 1xO31A81gIBTMvANdKK4T3t1rC+YgkzAFUK+VHqh9UD+GF6bqd9b1skyS+2EUw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987039; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NPH8EL5MtXe6bconTMKQKC5qLvDyNcvlMY1tRaFWmlU=; b=L3vV8/GrisYLRPbOBPvw3vH1sDaxcaRPnA3K82IKP84yRwDuxjo6+Ku52l2jSBaHJKPMVl TeaUWV2oxQJlQ+AgQ+L7FO7h1GwSSJeOCoP9lJyduaoGD+omCD6xkXaj1WzVfvyMUYWdp3 KhrcmxDsOXLD8TsBY+L8iyLpzMz8y+1MwLDIy7CGGwQN9/ykSXkKuyGCi+rw7ccKGXNkCi piYmxlqZqtUnZvlQqcy0Lvb2eKzwkVfjHRpKRz38JS+NY4fHeHEFJMmIvPu8EgGLHwsELa mRTmzvW3BuCmiBBFpkwQYdzmm/CxKkLIRFnn/x3sg4nriJkS06xhgaHnsG4tfw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR3349xzfF0; Fri, 18 Apr 2025 14:37:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbJkL092023; Fri, 18 Apr 2025 14:37:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbJCF092020; Fri, 18 Apr 2025 14:37:19 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:19 GMT Message-Id: <202504181437.53IEbJCF092020@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 3d9f2164482b - stable/14 - LinuxKPI: 802.11: optimize mo_bss_info_changed List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 3d9f2164482bd885e8b5ad0d001d7eb0c16358e5 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=3d9f2164482bd885e8b5ad0d001d7eb0c16358e5 commit 3d9f2164482bd885e8b5ad0d001d7eb0c16358e5 Author: Bjoern A. Zeeb AuthorDate: 2025-04-10 15:10:38 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:01 +0000 LinuxKPI: 802.11: optimize mo_bss_info_changed In case we are not announcing any changes there is no need to do a downcall into the driver. Catch that with an early return. Sponsored by: The FreeBSD Foundation (cherry picked from commit ae8c3b6509c66d03cb68dc6f8bbad43acbc8c977) --- sys/compat/linuxkpi/common/src/linux_80211_macops.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211_macops.c b/sys/compat/linuxkpi/common/src/linux_80211_macops.c index ff3959340af7..c5720142401d 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211_macops.c +++ b/sys/compat/linuxkpi/common/src/linux_80211_macops.c @@ -554,6 +554,9 @@ lkpi_80211_mo_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vi lhw->ops->bss_info_changed == NULL) return; + if (changed == 0) + return; + LKPI_80211_TRACE_MO("hw %p vif %p conf %p changed %#jx", hw, vif, conf, (uintmax_t)changed); if (lhw->ops->link_info_changed != NULL) lhw->ops->link_info_changed(hw, vif, conf, changed); From nobody Fri Apr 18 14:37:20 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR51dHWz5stYd; Fri, 18 Apr 2025 14:37:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR44GFzz3L3P; Fri, 18 Apr 2025 14:37:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XMElnA6w06vhV46wenSh1F1axQRUwPuUviw/Z7io8+Q=; b=Jukkh9DhXnWhtAtBOeCi0jDJ3wij/BBQZXBDKtPvLCFNKF0XHUMh9/eyw05fzASnp1fONF 3zSgUyYINKNequE7Ok/wKKyWHEiy3XJdMNm93o4dzgyKDcqkZ4fzuRMN51VKtyeoZ7wVvs nVPmvzQqk0t+Zo2Y7LSVO8dDu3tk4wz+D2qde5Bn3hOeasdDsfWX/JESwU1TNTjz8bKtIh njaVHYUYzkZ9okPX8ZHPFvAbtfihky88l2kY3Ea3YiX51iB7kJ5C/qtNHiYR4vSDfECTGE PC6nHyblZj3TPGp3j1D+fRMlrmvJVQTO2Pv6MYmzHVMY5eJZyPl0LTJ07GBTQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987040; a=rsa-sha256; cv=none; b=V1r3C34T/PM5UdgbeSSv3gTN+31XZOLoqU6ZoJn0ltEtWI92dGZ30EhcvIXKC2iDHmJs3g dJDTOjhrp7c+63+2VTDIQgwjRt6iqP/9ProwCYWTtxQ4wDe+bB5n2Biuvz3joGO57ODykK osedhhbTEqjjyjYOfpBT2Bp3kT4waoJY9imqcE1XZsgj1o7ER/iJZVvG8SXRSykt7F1s8r Sh6AauwP4tjG4Lnxn2aSdLrBwcbI5oIojEtxrseB+/yHyOpfx+vJeEl5sz4gLrh8Fek3c/ np3WnJ+jy+dJKFMaQV2Fhg1RfgMtrskoZkDLFDfX3GzGcBmrgi92BvIcSTCEig== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XMElnA6w06vhV46wenSh1F1axQRUwPuUviw/Z7io8+Q=; b=pLIhBZlciPlxNiuEjQ+zDMhb2h2/4cbFLVtdiMhBrjZuJcBp3pTYY8+NSx2tGTM81XWsqR orXbndgGz7NSj90rkvtyf8tu+BYdNgy4+fevh1WkrjHM4wivTEUeLJhZXNjUaFbMMdsQy3 T1owDuwF3nQ7PB9wRqL6KP6hQucKMBujWQLHPMGl5mp2KZC+0aAmfoBHigjpL8HGjOPmO6 3oKiAblzRkc7oy/wlBP86i83/8RDNnp5PGoSWeC0NfuHUDEX9yScEqAPWhOXLOIirGtRxG BFXGJkuA8rrJ7DKjhIhfoQi8UJMtEwXv2YdILli4Jikb7+Gt9wOOS84jjH88Sw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR43qCgzfF1; Fri, 18 Apr 2025 14:37:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbKFg092059; Fri, 18 Apr 2025 14:37:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbKRi092056; Fri, 18 Apr 2025 14:37:20 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:20 GMT Message-Id: <202504181437.53IEbKRi092056@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 7d57b5a339e3 - stable/14 - LinuxKPI: 802.11: switch to wiphy_lock List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 7d57b5a339e34f4625739c6457c6c4f8369f87ae Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=7d57b5a339e34f4625739c6457c6c4f8369f87ae commit 7d57b5a339e34f4625739c6457c6c4f8369f87ae Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 18:41:45 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:01 +0000 LinuxKPI: 802.11: switch to wiphy_lock Replace the LKPI_80211_LHW_LOCK (lhw->sx) with the wiphy lock (which is a Linux mutex, so also an sx lock). Apart from two places the change was mostly mechanically. Further remove the now recursive lock acquisitions. This lays the ground for us to use more Linux(KPI) 802.11 internal locking as well as more rcu equivalents, e.g., for the chanctx, and live better to the synchronisation expectations of the drivers. [I wish there would be more assertions in the drivers themselves, especially in the mac80211 ops and the iteration callbacks.] Sponsored by: The FreeBSD Foundation PR: 280546 Tested by: Oleksandr Kryvulia (shuriku shurik.kiev.ua) Tested by: Oleg Nauman (oleg.nauman gmail.com) [rtw88] Differential Revision: https://reviews.freebsd.org/D49734 (cherry picked from commit cd0fcf9f12114df542d4b080202abb1fe5f1aec8) --- sys/compat/linuxkpi/common/src/linux_80211.c | 122 ++++++++++++--------------- sys/compat/linuxkpi/common/src/linux_80211.h | 14 --- 2 files changed, 56 insertions(+), 80 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index f5f52101d367..e5148cc368f7 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -571,12 +571,11 @@ static void lkpi_lsta_remove(struct lkpi_sta *lsta, struct lkpi_vif *lvif) { + lockdep_assert_wiphy(lsta->hw->wiphy); - wiphy_lock(lsta->hw->wiphy); KASSERT(!list_empty(&lsta->lsta_list), ("%s: lsta %p ni %p\n", __func__, lsta, lsta->ni)); list_del_init(&lsta->lsta_list); - wiphy_unlock(lsta->hw->wiphy); } static struct lkpi_sta * @@ -1580,10 +1579,10 @@ lkpi_stop_hw_scan(struct lkpi_hw *lhw, struct ieee80211_vif *vif) hw = LHW_TO_HW(lhw); IEEE80211_UNLOCK(lhw->ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); /* Need to cancel the scan. */ lkpi_80211_mo_cancel_hw_scan(hw, vif); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); /* Need to make sure we see ieee80211_scan_completed. */ LKPI_80211_LHW_SCAN_LOCK(lhw); @@ -1700,11 +1699,14 @@ lkpi_wake_tx_queues(struct ieee80211_hw *hw, struct ieee80211_sta *sta, static void lkpi_80211_flush_tx(struct lkpi_hw *lhw, struct lkpi_sta *lsta) { + struct ieee80211_hw *hw; struct mbufq mq; struct mbuf *m; int len; - LKPI_80211_LHW_UNLOCK_ASSERT(lhw); + /* There is no lockdep_assert_not_held_wiphy(). */ + hw = LHW_TO_HW(lhw); + lockdep_assert_not_held(&hw->wiphy->mtx); /* Do not accept any new packets until scan_to_auth or lsta_free(). */ LKPI_80211_LSTA_TXQ_LOCK(lsta); @@ -1842,7 +1844,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int LKPI_80211_LVIF_UNLOCK(lvif); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); /* Add chanctx (or if exists, change it). */ chanctx_conf = rcu_dereference_protected(vif->bss_conf.chanctx_conf, @@ -1986,10 +1988,8 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int lsta->txq_ready = true; LKPI_80211_LSTA_TXQ_UNLOCK(lsta); - wiphy_lock(hw->wiphy); /* Insert the [l]sta into the list of known stations. */ list_add_tail(&lsta->lsta_list, &lvif->lsta_list); - wiphy_unlock(hw->wiphy); /* Add (or adjust) sta and change state (from NOTEXIST) to NONE. */ KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); @@ -2035,7 +2035,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int * (ideally we'd do that on a callback for something else ...) */ - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); LKPI_80211_LVIF_LOCK(lvif); @@ -2080,7 +2080,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int goto out_relocked; out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); out_relocked: /* @@ -2132,7 +2132,7 @@ lkpi_sta_auth_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_lsta_dump(lsta, ni, __func__, __LINE__); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); /* flush, drop. */ lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); @@ -2191,12 +2191,10 @@ lkpi_sta_auth_to_scan(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* conf_tx */ - wiphy_lock(hw->wiphy); lkpi_remove_chanctx(hw, vif); - wiphy_unlock(hw->wiphy); out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); return (error); } @@ -2229,7 +2227,7 @@ lkpi_sta_auth_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, in vif = LVIF_TO_VIF(lvif); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); LKPI_80211_LVIF_LOCK(lvif); /* XXX-BZ KASSERT later? */ @@ -2295,7 +2293,7 @@ lkpi_sta_auth_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, in */ out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); return (error); } @@ -2318,7 +2316,7 @@ lkpi_sta_a_to_a(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) vif = LVIF_TO_VIF(lvif); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); LKPI_80211_LVIF_LOCK(lvif); /* XXX-BZ KASSERT later? */ @@ -2362,7 +2360,7 @@ lkpi_sta_a_to_a(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg) error = 0; out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); return (error); @@ -2388,7 +2386,7 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i vif = LVIF_TO_VIF(lvif); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); LKPI_80211_LVIF_LOCK(lvif); #ifdef LINUXKPI_DEBUG_80211 @@ -2424,7 +2422,7 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i lsta->in_mgd = true; } - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); /* Call iv_newstate first so we get potential DEAUTH packet out. */ @@ -2440,7 +2438,7 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i /* Ensure the packets get out. */ lkpi_80211_flush_tx(lhw, lsta); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); lkpi_lsta_dump(lsta, ni, __func__, __LINE__); @@ -2521,13 +2519,11 @@ _lkpi_sta_assoc_to_down(struct ieee80211vap *vap, enum ieee80211_state nstate, i /* conf_tx */ - wiphy_lock(hw->wiphy); lkpi_remove_chanctx(hw, vif); - wiphy_unlock(hw->wiphy); error = EALREADY; out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); outni: return (error); @@ -2586,7 +2582,7 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int vif = LVIF_TO_VIF(lvif); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); LKPI_80211_LVIF_LOCK(lvif); /* XXX-BZ KASSERT later? */ @@ -2724,7 +2720,7 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_80211_mo_bss_info_changed(hw, vif, &vif->bss_conf, bss_changed); out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); return (error); } @@ -2783,7 +2779,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int lkpi_lsta_dump(lsta, ni, __func__, __LINE__); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); /* flush, drop. */ lkpi_80211_mo_flush(hw, vif, nitems(sta->txq), true); @@ -2798,7 +2794,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int lsta->in_mgd = true; } - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); /* Call iv_newstate first so we get potential DISASSOC packet out. */ @@ -2814,7 +2810,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* Ensure the packets get out. */ lkpi_80211_flush_tx(lhw, lsta); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); lkpi_lsta_dump(lsta, ni, __func__, __LINE__); @@ -2858,9 +2854,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int #ifdef LKPI_80211_HW_CRYPTO if (lkpi_hwcrypto) { - wiphy_lock(hw->wiphy); error = lkpi_sta_del_keys(hw, vif, lsta); - wiphy_unlock(hw->wiphy); if (error != 0) { ic_printf(vap->iv_ic, "%s:%d: lkpi_sta_del_keys " "failed: %d\n", __func__, __LINE__, error); @@ -2894,7 +2888,7 @@ lkpi_sta_run_to_assoc(struct ieee80211vap *vap, enum ieee80211_state nstate, int error = EALREADY; out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); outni: return (error); @@ -2920,7 +2914,7 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int vif = LVIF_TO_VIF(lvif); IEEE80211_UNLOCK(vap->iv_ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); LKPI_80211_LVIF_LOCK(lvif); #ifdef LINUXKPI_DEBUG_80211 @@ -2956,7 +2950,7 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int lsta->in_mgd = true; } - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); /* Call iv_newstate first so we get potential DISASSOC packet out. */ @@ -2972,7 +2966,7 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* Ensure the packets get out. */ lkpi_80211_flush_tx(lhw, lsta); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); lkpi_lsta_dump(lsta, ni, __func__, __LINE__); @@ -3014,9 +3008,7 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int #ifdef LKPI_80211_HW_CRYPTO if (lkpi_hwcrypto) { - wiphy_lock(hw->wiphy); error = lkpi_sta_del_keys(hw, vif, lsta); - wiphy_unlock(hw->wiphy); if (error != 0) { ic_printf(vap->iv_ic, "%s:%d: lkpi_sta_del_keys " "failed: %d\n", __func__, __LINE__, error); @@ -3123,13 +3115,11 @@ lkpi_sta_run_to_init(struct ieee80211vap *vap, enum ieee80211_state nstate, int /* conf_tx */ - wiphy_lock(hw->wiphy); lkpi_remove_chanctx(hw, vif); - wiphy_unlock(hw->wiphy); error = EALREADY; out: - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(vap->iv_ic); outni: return (error); @@ -3333,6 +3323,9 @@ lkpi_wme_update(struct lkpi_hw *lhw, struct ieee80211vap *vap, bool planned) int error; uint16_t ac; + hw = LHW_TO_HW(lhw); + lockdep_assert_wiphy(hw->wiphy); + IMPROVE(); KASSERT(WME_NUM_AC == IEEE80211_NUM_ACS, ("%s: WME_NUM_AC %d != " "IEEE80211_NUM_ACS %d\n", __func__, WME_NUM_AC, IEEE80211_NUM_ACS)); @@ -3359,12 +3352,10 @@ lkpi_wme_update(struct lkpi_hw *lhw, struct ieee80211vap *vap, bool planned) wmeparr[ac] = chp.cap_wmeParams[ac]; IEEE80211_UNLOCK(ic); - hw = LHW_TO_HW(lhw); lvif = VAP_TO_LVIF(vap); vif = LVIF_TO_VIF(lvif); /* Configure tx queues (conf_tx) & send BSS_CHANGED_QOS. */ - LKPI_80211_LHW_LOCK(lhw); for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { struct wmeParams *wmep; @@ -3379,7 +3370,6 @@ lkpi_wme_update(struct lkpi_hw *lhw, struct ieee80211vap *vap, bool planned) ic_printf(ic, "%s: conf_tx ac %u failed %d\n", __func__, ac, error); } - LKPI_80211_LHW_UNLOCK(lhw); changed = BSS_CHANGED_QOS; if (!planned) lkpi_80211_mo_bss_info_changed(hw, vif, &vif->bss_conf, changed); @@ -3394,6 +3384,7 @@ lkpi_ic_wme_update(struct ieee80211com *ic) #ifdef LKPI_80211_WME struct ieee80211vap *vap; struct lkpi_hw *lhw; + struct ieee80211_hw *hw; IMPROVE("Use the per-VAP callback in net80211."); vap = TAILQ_FIRST(&ic->ic_vaps); @@ -3401,8 +3392,11 @@ lkpi_ic_wme_update(struct ieee80211com *ic) return (0); lhw = ic->ic_softc; + hw = LHW_TO_HW(lhw); + wiphy_lock(hw->wiphy); lkpi_wme_update(lhw, vap, false); + wiphy_unlock(hw->wiphy); #endif return (0); /* unused */ } @@ -3567,7 +3561,7 @@ lkpi_ic_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], /* Configure tx queues (conf_tx), default WME & send BSS_CHANGED_QOS. */ IMPROVE("Hardcoded values; to fix see 802.11-2016, 9.4.2.29 EDCA Parameter Set element"); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); for (ac = 0; ac < IEEE80211_NUM_ACS; ac++) { bzero(&txqp, sizeof(txqp)); @@ -3580,7 +3574,7 @@ lkpi_ic_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], ic_printf(ic, "%s: conf_tx ac %u failed %d\n", __func__, ac, error); } - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); changed = BSS_CHANGED_QOS; lkpi_80211_mo_bss_info_changed(hw, vif, &vif->bss_conf, changed); @@ -3742,8 +3736,8 @@ static void lkpi_ic_parent(struct ieee80211com *ic) { struct lkpi_hw *lhw; -#ifdef HW_START_STOP struct ieee80211_hw *hw; +#ifdef HW_START_STOP int error; #endif bool start_all; @@ -3751,13 +3745,11 @@ lkpi_ic_parent(struct ieee80211com *ic) IMPROVE(); lhw = ic->ic_softc; -#ifdef HW_START_STOP hw = LHW_TO_HW(lhw); -#endif start_all = false; /* IEEE80211_UNLOCK(ic); */ - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); if (ic->ic_nrunning > 0) { #ifdef HW_START_STOP error = lkpi_80211_mo_start(hw); @@ -3769,7 +3761,7 @@ lkpi_ic_parent(struct ieee80211com *ic) lkpi_80211_mo_stop(hw, false); /* XXX SUSPEND */ #endif } - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); /* IEEE80211_LOCK(ic); */ if (start_all) @@ -4735,9 +4727,9 @@ lkpi_80211_txq_tx_one(struct lkpi_sta *lsta, struct mbuf *m) ltxq->txq.tid, ac, skb->priority, skb->qmap); #endif LKPI_80211_LTXQ_UNLOCK(ltxq); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); lkpi_80211_mo_wake_tx_queue(hw, <xq->txq); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); return; ops_tx: @@ -4750,9 +4742,9 @@ ops_tx: #endif memset(&control, 0, sizeof(control)); control.sta = sta; - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); lkpi_80211_mo_tx(hw, &control, skb); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); } static void @@ -4913,9 +4905,9 @@ lkpi_ic_addba_request(struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, params.amsdu = false; IEEE80211_UNLOCK(ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); error = lkpi_80211_mo_ampdu_action(hw, vif, ¶ms); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(ic); if (error != 0) { ic_printf(ic, "%s: mo_ampdu_action returned %d. ni %p tap %p\n", @@ -4991,9 +4983,9 @@ lkpi_ic_addba_response(struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap } IEEE80211_UNLOCK(ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); error = lkpi_80211_mo_ampdu_action(hw, vif, ¶ms); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(ic); if (error != 0) { ic_printf(ic, "%s: mo_ampdu_action returned %d. ni %p tap %p\n", @@ -5050,9 +5042,9 @@ lkpi_ic_addba_stop(struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap) params.amsdu = false; IEEE80211_UNLOCK(ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); error = lkpi_80211_mo_ampdu_action(hw, vif, ¶ms); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); IEEE80211_LOCK(ic); if (error != 0) { ic_printf(ic, "%s: mo_ampdu_action returned %d. ni %p tap %p\n", @@ -5148,9 +5140,9 @@ lkpi_ic_ampdu_rx_start(struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap else params.amsdu = false; - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); error = lkpi_80211_mo_ampdu_action(hw, vif, ¶ms); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); if (error != 0) { ic_printf(ic, "%s: mo_ampdu_action returned %d. ni %p rap %p\n", __func__, error, ni, rap); @@ -5222,9 +5214,9 @@ lkpi_ic_ampdu_rx_stop(struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap) ic_locked = IEEE80211_IS_LOCKED(ic); if (ic_locked) IEEE80211_UNLOCK(ic); - LKPI_80211_LHW_LOCK(lhw); + wiphy_lock(hw->wiphy); error = lkpi_80211_mo_ampdu_action(hw, vif, ¶ms); - LKPI_80211_LHW_UNLOCK(lhw); + wiphy_unlock(hw->wiphy); if (ic_locked) IEEE80211_LOCK(ic); if (error != 0) @@ -5462,7 +5454,6 @@ linuxkpi_ieee80211_alloc_hw(size_t priv_len, const struct ieee80211_ops *ops) lhw = wiphy_priv(wiphy); lhw->ops = ops; - LKPI_80211_LHW_LOCK_INIT(lhw); LKPI_80211_LHW_SCAN_LOCK_INIT(lhw); LKPI_80211_LHW_TXQ_LOCK_INIT(lhw); sx_init_flags(&lhw->lvif_sx, "lhw-lvif", SX_RECURSE | SX_DUPOK); @@ -5557,7 +5548,6 @@ linuxkpi_ieee80211_iffree(struct ieee80211_hw *hw) /* Cleanup more of lhw here or in wiphy_free()? */ LKPI_80211_LHW_TXQ_LOCK_DESTROY(lhw); LKPI_80211_LHW_SCAN_LOCK_DESTROY(lhw); - LKPI_80211_LHW_LOCK_DESTROY(lhw); sx_destroy(&lhw->lvif_sx); IMPROVE(); } diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index 8bc2a465f76f..da377280b1c0 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -216,7 +216,6 @@ struct lkpi_hw { /* name it mac80211_sc? */ TAILQ_HEAD(, lkpi_vif) lvif_head; struct sx lvif_sx; - struct sx sx; /* XXX-BZ Can this be wiphy->mtx in the future? */ struct list_head lchanctx_list; struct mtx txq_mtx; @@ -322,19 +321,6 @@ struct lkpi_wiphy { #define LKPI_80211_LWIPHY_WORK_UNLOCK_ASSERT(_lwiphy) \ mtx_assert(&(_lwiphy)->wwk_mtx, MA_NOTOWNED) -#define LKPI_80211_LHW_LOCK_INIT(_lhw) \ - sx_init_flags(&(_lhw)->sx, "lhw", SX_RECURSE); -#define LKPI_80211_LHW_LOCK_DESTROY(_lhw) \ - sx_destroy(&(_lhw)->sx); -#define LKPI_80211_LHW_LOCK(_lhw) \ - sx_xlock(&(_lhw)->sx) -#define LKPI_80211_LHW_UNLOCK(_lhw) \ - sx_xunlock(&(_lhw)->sx) -#define LKPI_80211_LHW_LOCK_ASSERT(_lhw) \ - sx_assert(&(_lhw)->sx, SA_LOCKED) -#define LKPI_80211_LHW_UNLOCK_ASSERT(_lhw) \ - sx_assert(&(_lhw)->sx, SA_UNLOCKED) - #define LKPI_80211_LHW_SCAN_LOCK_INIT(_lhw) \ mtx_init(&(_lhw)->scan_mtx, "lhw-scan", NULL, MTX_DEF | MTX_RECURSE); #define LKPI_80211_LHW_SCAN_LOCK_DESTROY(_lhw) \ From nobody Fri Apr 18 14:37:21 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR6286mz5stFX; Fri, 18 Apr 2025 14:37: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR55H1Jz3KnN; Fri, 18 Apr 2025 14:37:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W9rh76SufTEMq75GnFV86q2C6aEy7VfIivrgej/bKD0=; b=Q6UkI90jo1qLCSw4ygxcbITXt20aKQt/c1dNCSLX8SS23rfFEkZpihNI1tbS/OqIfAt9C9 dcRTb6wqwAl3eTtvbgq0ggeZ+TaoQ3Yfe7a+B95YT4KBEtY2XEE8Zl8QkQhZrQwWm9WXo7 J8ENC8Ssb/C06NcUPepyP9vwxh/6Qd5q/J3Dpnt71T4A0+Q5/Y+EuvThjSm0f00Ogck+Ok w8vJxy8Y4sej/DjYua+oITIXMe5IQJzu5/Nmso1kv4NH/tYMLdVbfWfo4NS03i1tBCJAYb dxqF8h07KDEH0eteodYPmYVkcY6oWLc/uABqkJkjBKtrLtMDdus5ABCctjotQg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987041; a=rsa-sha256; cv=none; b=EMDGzJ5d+TVLxmnEWuGCUK3dYGudBE39P+AaDFNozzo/hKX53okE6OWXbzvyTdEZcktKtN QiZ3j8D1yD/ct+8caz8wnxDGyJossc1wlM0JcmC9moEUzCoOm8Yvs4wAGanKiE8WT0GjB3 YfsAV3KAdJq3LsTgLMGiomh8irSnCLXPGf6FGpoFVGZdye7RpXgSH0qBV9xmyfh7C1giQp MuH9lJEONb6Gcup2exVf9undnNW1zXujKZmdLlGTREj+LosKQf9aRbUBkzYAXdWwz4zfbn Lj1jtvDemg+wHKlKZuVsnzDT/IcDAQPpURqJGQjpTob8dDNbWoifJpu+jd6aOg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W9rh76SufTEMq75GnFV86q2C6aEy7VfIivrgej/bKD0=; b=jYJjXqZd44wINpvFDSQtzAArWL6XVQY4hV/+qbwYsdOQ6xhLMlOuMk/vU/21GOEESRdRDU x8W5lVZhT7AGigBDUv+nxNVPJDvJ7+23d+QcMYe4jLwdXryiXR+9OsIZQZRTc3cNUjXeD7 zvgsGT1PUjFCOP3N8B4Td/T9IR/wsD+lvZ+80d5+rBHM3RNe+3+XbHgmrrjMeYI+sBXNsw Is3ibiWN605AjEKaM2h/m50MWEHK/1hymxXAO0iM9UHKP40dyGRtkHHBSRtmfjSUad6jAL O0oVvQMYJag56yTT1GCTVlABU5QvhQ1Rin3lrGbUE0BFtAsJp3X7TcqqgbE4vQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR54mnhzfHM; Fri, 18 Apr 2025 14:37:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbLAX092095; Fri, 18 Apr 2025 14:37:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbL8H092092; Fri, 18 Apr 2025 14:37:21 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:21 GMT Message-Id: <202504181437.53IEbL8H092092@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 96a1ab436150 - stable/14 - LinuxKPI: 802.11: deal with sta bw > channel width List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 96a1ab4361508df4440d5c7f3bbe334583338bae Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=96a1ab4361508df4440d5c7f3bbe334583338bae commit 96a1ab4361508df4440d5c7f3bbe334583338bae Author: Bjoern A. Zeeb AuthorDate: 2025-04-10 15:13:38 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:02 +0000 LinuxKPI: 802.11: deal with sta bw > channel width Especially on 2.4Ghz everything may indicate that we can use HT40 but we are stuck on a 20Mhz channel. Adjust the logic in lkpi_sta_sync_ht_from_ni() to also check the channel width before setting the sta bandwidth to 40. Further check that the sta bw is not larger than the channel width after the 'sync from ni' for HT and VHT and if it is, then update the chanctx accordingly. Firmware crashes we have seen with iwlwifi0: 0x00010000 | umac data1 iwlwifi0: 0x00000000 | umac data2 iwlwifi0: 0xDEADBEEF | umac data3 iwlwifi0: 0xXXXX050F | last host cmd likely indicate this problem. Sponsored by: The FreeBSD Foundation Reported by: Jonathan Vasquez (jon xyinn.org) Reported by: Michael Butler (imb protected-networks.net) Reported by: bapt Reported by: William D Pool (rotaechojunk gmail.com) Reported by: Eirik Øverby (ltning-freebsd-wireless anduin.net) Reported by: likely others before Tested by: Eirik Øverby (ltning-freebsd-wireless anduin.net) Tested by: lwhsu Tested by: Michael Butler (imb protected-networks.net) Differential Revision: https://reviews.freebsd.org/D49761 (cherry picked from commit 62d51a43825bb632f542f4e89d57f3dbdb08095f) --- sys/compat/linuxkpi/common/src/linux_80211.c | 104 ++++++++++++++++++++++++--- 1 file changed, 95 insertions(+), 9 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index e5148cc368f7..5a4798f1ef1b 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -365,9 +365,81 @@ lkpi_80211_dump_stas(SYSCTL_HANDLER_ARGS) return (0); } +static enum ieee80211_sta_rx_bw +lkpi_cw_to_rx_bw(enum nl80211_chan_width cw) +{ + switch (cw) { + case NL80211_CHAN_WIDTH_320: + return (IEEE80211_STA_RX_BW_320); + case NL80211_CHAN_WIDTH_160: + case NL80211_CHAN_WIDTH_80P80: + return (IEEE80211_STA_RX_BW_160); + case NL80211_CHAN_WIDTH_80: + return (IEEE80211_STA_RX_BW_80); + case NL80211_CHAN_WIDTH_40: + return (IEEE80211_STA_RX_BW_40); + case NL80211_CHAN_WIDTH_20: + case NL80211_CHAN_WIDTH_20_NOHT: + return (IEEE80211_STA_RX_BW_20); + case NL80211_CHAN_WIDTH_5: + case NL80211_CHAN_WIDTH_10: + /* Unsupported input. */ + return (IEEE80211_STA_RX_BW_20); + } +} + +static enum nl80211_chan_width +lkpi_rx_bw_to_cw(enum ieee80211_sta_rx_bw rx_bw) +{ + switch (rx_bw) { + case IEEE80211_STA_RX_BW_20: + return (NL80211_CHAN_WIDTH_20); /* _NOHT */ + case IEEE80211_STA_RX_BW_40: + return (NL80211_CHAN_WIDTH_40); + case IEEE80211_STA_RX_BW_80: + return (NL80211_CHAN_WIDTH_80); + case IEEE80211_STA_RX_BW_160: + return (NL80211_CHAN_WIDTH_160); /* 80P80 */ + case IEEE80211_STA_RX_BW_320: + return (NL80211_CHAN_WIDTH_320); + } +} + +static void +lkpi_sync_chanctx_cw_from_rx_bw(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, struct ieee80211_sta *sta) +{ + struct ieee80211_chanctx_conf *chanctx_conf; + enum ieee80211_sta_rx_bw old_bw; + uint32_t changed; + + chanctx_conf = rcu_dereference_protected(vif->bss_conf.chanctx_conf, + lockdep_is_held(&hw->wiphy->mtx)); + if (chanctx_conf == NULL) + return; + + old_bw = lkpi_cw_to_rx_bw(chanctx_conf->def.width); + if (old_bw == sta->deflink.bandwidth) + return; + + chanctx_conf->def.width = lkpi_rx_bw_to_cw(sta->deflink.bandwidth); + if (chanctx_conf->def.width == NL80211_CHAN_WIDTH_20 && + !sta->deflink.ht_cap.ht_supported) + chanctx_conf->def.width = NL80211_CHAN_WIDTH_20_NOHT; + + chanctx_conf->min_def = chanctx_conf->def; + + vif->bss_conf.chanreq.oper.width = chanctx_conf->def.width; + + changed = IEEE80211_CHANCTX_CHANGE_MIN_WIDTH; + changed |= IEEE80211_CHANCTX_CHANGE_WIDTH; + lkpi_80211_mo_change_chanctx(hw, chanctx_conf, changed); +} + #if defined(LKPI_80211_HT) static void -lkpi_sta_sync_ht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) +lkpi_sta_sync_ht_from_ni(struct ieee80211_vif *vif, struct ieee80211_sta *sta, + struct ieee80211_node *ni) { struct ieee80211vap *vap; uint8_t *ie; @@ -399,7 +471,8 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) sta->deflink.ht_cap.cap = htcap->cap_info; sta->deflink.ht_cap.mcs = htcap->mcs; - if ((sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) != 0) + if ((sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) != 0 && + IEEE80211_IS_CHAN_HT40(ni->ni_chan)) sta->deflink.bandwidth = IEEE80211_STA_RX_BW_40; else sta->deflink.bandwidth = IEEE80211_STA_RX_BW_20; @@ -435,7 +508,8 @@ lkpi_sta_sync_ht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) #if defined(LKPI_80211_VHT) static void -lkpi_sta_sync_vht_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) +lkpi_sta_sync_vht_from_ni(struct ieee80211_vif *vif, struct ieee80211_sta *sta, + struct ieee80211_node *ni) { uint32_t width; int rx_nss; @@ -508,15 +582,25 @@ skip_bw: #endif static void -lkpi_sta_sync_from_ni(struct ieee80211_sta *sta, struct ieee80211_node *ni) +lkpi_sta_sync_from_ni(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, struct ieee80211_node *ni, bool updchnctx) { #if defined(LKPI_80211_HT) - lkpi_sta_sync_ht_from_ni(sta, ni); + lkpi_sta_sync_ht_from_ni(vif, sta, ni); #endif #if defined(LKPI_80211_VHT) - lkpi_sta_sync_vht_from_ni(sta, ni); + lkpi_sta_sync_vht_from_ni(vif, sta, ni); #endif + /* + * We are also called from node allocation which net80211 + * can do even on `ifconfig down`; in that case the chanctx + * may still be valid and we get a discrepancy between + * sta and chanctx. Thus do not try to update the chanctx + * when called from lkpi_lsta_alloc(). + */ + if (updchnctx) + lkpi_sync_chanctx_cw_from_rx_bw(hw, vif, sta); } static uint8_t @@ -686,7 +770,9 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], sta->deflink.bandwidth = IEEE80211_STA_RX_BW_20; sta->deflink.rx_nss = 1; - lkpi_sta_sync_from_ni(sta, ni); + wiphy_lock(hw->wiphy); + lkpi_sta_sync_from_ni(hw, vif, sta, ni, false); + wiphy_unlock(hw->wiphy); IMPROVE("he, eht, bw_320, ... smps_mode, .."); @@ -1870,6 +1956,7 @@ lkpi_sta_scan_to_auth(struct ieee80211vap *vap, enum ieee80211_state nstate, int IMPROVE("Check vht_cap from band not just chan?"); KASSERT(ni->ni_chan != NULL && ni->ni_chan != IEEE80211_CHAN_ANYC, ("%s:%d: ni %p ni_chan %p\n", __func__, __LINE__, ni, ni->ni_chan)); + #ifdef LKPI_80211_HT if (IEEE80211_IS_CHAN_HT(ni->ni_chan)) { if (IEEE80211_IS_CHAN_HT40(ni->ni_chan)) @@ -2658,7 +2745,6 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int } bss_changed |= lkpi_update_dtim_tsf(vif, ni, vap, __func__, __LINE__); - lkpi_80211_mo_bss_info_changed(hw, vif, &vif->bss_conf, bss_changed); /* - change_chanctx (if needed) @@ -2693,7 +2779,7 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int sta->deflink.rx_nss = MAX(1, sta->deflink.rx_nss); IMPROVE("Is this the right spot, has net80211 done all updates already?"); - lkpi_sta_sync_from_ni(sta, ni); + lkpi_sta_sync_from_ni(hw, vif, sta, ni, true); /* Update sta_state (ASSOC to AUTHORIZED). */ KASSERT(lsta != NULL, ("%s: ni %p lsta is NULL\n", __func__, ni)); From nobody Fri Apr 18 14:37:22 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR73Zm9z5sthX; Fri, 18 Apr 2025 14:37:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR668bMz3KyQ; Fri, 18 Apr 2025 14:37:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7F3S/vpFKQdbtxAbRg9w4ma9iNoCbr2bYaumAz0O/mw=; b=iX5QwwK2eTnbs9uS3l5VakLJLn8L4XFWhcSSN6E114IeuiJC32Gw6BdmSAvPkISOpMYYCd rJ2cDqKqAEuumq6DfuV/2vrTH6avAL9S15i7DQjdbV/tX/fR/H2OPpnrydZBZu8Hz3dMxZ V1NP9HVXFWh7Oti+eM9D6ZBuQOcPyfJqziqSOR3XDuYPbIt6iDyz5r4Pnqs+PtxIc70aFq 3qExcwiLyZDWp7AJ4rjFCp3zaWC+flnRjMf41hFbJavkKQLX1IxXphE7UrzjvqZeMgWXUP CyuWmlO6dC95cug6s7vdabmH9H/vWDVXeqYN6DFxE3y1g8Nzse7FPYGhJTTx7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987042; a=rsa-sha256; cv=none; b=LdCB1z6QIrj7FXyPO16aLqYwZS2vXBPK9AvFA1VM+lKXVAOLJwBi9pDo+g8ygZL2VAn+hh mdAgJwHL47UtR8jC+s/7leYDk7202GvWoPnNeRMlGQLqshbsO/bSQSFFoYj/XsnY4CHHoB AjesI+0WwmF7/5yAvx4Tp88mKFNyd8InZ8vLIjPkSFwNERB0zDXEei7T+vdQYTdWZvOJzs bzPXXuZlBPG4N9jl1qCGptD4TOkDZ+O9bEueELe3Capo+11QWFZIiK85DQrTqhlAV3/DlU Q4mU1S/afl3V7lOfQFUxLcZuV43VJF4YWjhIEOpgEHcAxjZ4Y6y8GUwN5SeKKQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=7F3S/vpFKQdbtxAbRg9w4ma9iNoCbr2bYaumAz0O/mw=; b=kyhwUV87m7boAjjW1j6c6/R+i0zFSJuLpw/fTGjx/Fo2gr1sco4eCf5TYaT2IIFCNK7ntA bk7i6K08V7iqWBvH10Q3SUMr2fJ2Puv9oxRuDLq1lBE1AuFupEwSImzHCP6TOwg3m9PK7W H53wpgOLLCO+ui7aXcjSCzQka/Z6D5Lpda0ZKm0sEoaNz5wUQuhDg0l2xO24nYwz+VgwDS hPYiRbnyjEwEBBBjAbj8xyIQA7Z8nNiCGI4nIM5O4Gae3K5Gku3Zeipn8trccIMG5AjmHg nlUhzjVEpcKtHHvkW208f+oGvzkuDyvtvnUPArCmHyPU/1KtYYIFQ+wmlT7saA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR65lXCzdmf; Fri, 18 Apr 2025 14:37:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbMoK092137; Fri, 18 Apr 2025 14:37:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbMMC092134; Fri, 18 Apr 2025 14:37:22 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:22 GMT Message-Id: <202504181437.53IEbMMC092134@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 9bd4391f4ce0 - stable/14 - LinuxKPI: 802.11: further locking workarounds fro crypto updates List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9bd4391f4ce023fba8f5c5296a359ffb605efec2 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9bd4391f4ce023fba8f5c5296a359ffb605efec2 commit 9bd4391f4ce023fba8f5c5296a359ffb605efec2 Author: Bjoern A. Zeeb AuthorDate: 2025-04-11 23:01:55 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:02 +0000 LinuxKPI: 802.11: further locking workarounds fro crypto updates There are cases when net80211 calls into crypto updates with the ic lock held (not (just) the nt lock). We have to unlock that as well and track the unlock like we do for the nt to avoid panics when we later can sleep (on the wiphy [sx] lock). Sponsored by: The FreeBSD Foundation Reported by: rm Tested by: rm PR: 285729 Fixes: b8dfc3ecf703 Differential Revision: https://reviews.freebsd.org/D49791 (cherry picked from commit a6165709e3c8ba4a0bee18aead6ca8ea2b033933) --- sys/compat/linuxkpi/common/src/linux_80211.c | 51 ++++++++++++++++++---------- sys/compat/linuxkpi/common/src/linux_80211.h | 1 + 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 5a4798f1ef1b..f9f16e0a6f8f 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -1427,7 +1427,7 @@ lkpi_iv_key_update_begin(struct ieee80211vap *vap) struct lkpi_hw *lhw; struct ieee80211_hw *hw; struct lkpi_vif *lvif; - bool islocked; + bool icislocked, ntislocked; ic = vap->iv_ic; lhw = ic->ic_softc; @@ -1435,28 +1435,35 @@ lkpi_iv_key_update_begin(struct ieee80211vap *vap) lvif = VAP_TO_LVIF(vap); nt = &ic->ic_sta; - islocked = IEEE80211_NODE_IS_LOCKED(nt); + icislocked = IEEE80211_IS_LOCKED(ic); + ntislocked = IEEE80211_NODE_IS_LOCKED(nt); #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) - ic_printf(vap->iv_ic, "%s: tid %d vap %p nt %p %slocked " - "lvif nt_unlocked %d\n", __func__, curthread->td_tid, - vap, nt, islocked ? "" : "un", lvif->nt_unlocked); + ic_printf(ic, "%s: tid %d vap %p ic %p %slocked nt %p %slocked " + "lvif ic_unlocked %d nt_unlocked %d\n", __func__, + curthread->td_tid, vap, + ic, icislocked ? "" : "un", nt, ntislocked ? "" : "un", + lvif->ic_unlocked, lvif->nt_unlocked); #endif /* This is inconsistent net80211 locking to be fixed one day. */ - if (islocked) + if (icislocked) + IEEE80211_UNLOCK(ic); + if (ntislocked) IEEE80211_NODE_UNLOCK(nt); wiphy_lock(hw->wiphy); /* - * nt_unlocked could be a bool given we are under the lock and there + * ic/nt_unlocked could be a bool given we are under the lock and there * must only be a single thread. * In case anything in the future disturbs the order the refcnt will * help us catching problems a lot easier. */ - if (islocked) + if (icislocked) + refcount_acquire(&lvif->ic_unlocked); + if (ntislocked) refcount_acquire(&lvif->nt_unlocked); } @@ -1468,7 +1475,7 @@ lkpi_iv_key_update_end(struct ieee80211vap *vap) struct lkpi_hw *lhw; struct ieee80211_hw *hw; struct lkpi_vif *lvif; - bool islocked; + bool icislocked, ntislocked; ic = vap->iv_ic; lhw = ic->ic_softc; @@ -1476,14 +1483,18 @@ lkpi_iv_key_update_end(struct ieee80211vap *vap) lvif = VAP_TO_LVIF(vap); nt = &ic->ic_sta; - islocked = IEEE80211_NODE_IS_LOCKED(nt); - MPASS(!islocked); + icislocked = IEEE80211_IS_LOCKED(ic); + MPASS(!icislocked); + ntislocked = IEEE80211_NODE_IS_LOCKED(nt); + MPASS(!ntislocked); #ifdef LINUXKPI_DEBUG_80211 if (linuxkpi_debug_80211 & D80211_TRACE_HW_CRYPTO) - ic_printf(vap->iv_ic, "%s: tid %d vap %p nt %p %slocked " - "lvif nt_unlocked %d\n", __func__, curthread->td_tid, - vap, nt, islocked ? "" : "un", lvif->nt_unlocked); + ic_printf(ic, "%s: tid %d vap %p ic %p %slocked nt %p %slocked " + "lvif ic_unlocked %d nt_unlocked %d\n", __func__, + curthread->td_tid, vap, + ic, icislocked ? "" : "un", nt, ntislocked ? "" : "un", + lvif->ic_unlocked, lvif->nt_unlocked); #endif /* @@ -1491,11 +1502,17 @@ lkpi_iv_key_update_end(struct ieee80211vap *vap) * In case the refcnt gets out of sync locking in net80211 will * quickly barf as well (trying to unlock a lock not held). */ - islocked = refcount_release_if_last(&lvif->nt_unlocked); + icislocked = refcount_release_if_last(&lvif->ic_unlocked); + ntislocked = refcount_release_if_last(&lvif->nt_unlocked); wiphy_unlock(hw->wiphy); - /* This is inconsistent net80211 locking to be fixed one day. */ - if (islocked) + /* + * This is inconsistent net80211 locking to be fixed one day. + * ic before nt to avoid a LOR. + */ + if (icislocked) + IEEE80211_LOCK(ic); + if (ntislocked) IEEE80211_NODE_LOCK(nt); } #endif diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index da377280b1c0..ebf02994af47 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -187,6 +187,7 @@ struct lkpi_vif { struct lkpi_sta *lvif_bss; + int ic_unlocked; /* Count of ic unlocks pending (*mo_set_key) */ int nt_unlocked; /* Count of nt unlocks pending (*mo_set_key) */ bool lvif_bss_synched; bool added_to_drv; /* Driver knows; i.e. we called add_interface(). */ From nobody Fri Apr 18 14:37:26 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRB48Lfz5stTj; Fri, 18 Apr 2025 14:37: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRB272Sz3Kx0; Fri, 18 Apr 2025 14:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N2X9Zv/t4wJo4VmAGSWK0XRcA0XCetXeNG2t4bH/Qgw=; b=xA+Eg+HdimY+KNCIAEmbADVsjuYg3I8OPqn+J7wAr1pTyuAaCEICXrPMRB+zYUOWVwMN4x lOZJxZPBqFU9ZnxBZzWiKe4fh3It2oeCf1MYBQg7+3fK5udFqxYlacsL3TmMGmoqyG9Vry LJyHTKP/BZyxrLuE5gjJfv7fRqTE5cZ7fSEij3/90Z+MvgsVxr3BVtMn2aQXImabRlvHLZ yYk9Hok0GfxLYbAqhZOIuuKKMZLkTOCgDVu88e1Zs5LSN5NZdoENiIfLHJ12tiQb9mZMdf 5emNRi8wK1USojOGavfEFkGftXhDARXDaNxoIJZ+k011SuYNssV+NGEFzSHWsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987046; a=rsa-sha256; cv=none; b=FLV4SJS6RrdQqQtPCR15s/SQ631ZFW96R2eyrqDu5muDl+EKV2myTYS60uA/9rJyUWS3do 9khnsPKTABalOHh4wLJkwhU0IXweRsU8ChwDqW5oEayQpmy/KKg6Yx9SdjB2ZU4goLhsGG oup4WmziHD+R10vffclBrgygvX93Xz/vrNepTHk7w+7I6Z6/lIYcorOCRXk1zyftlDUoei 5+l0cLjw3GfRfD+ivYOFJ5ZA4iR4Nrf4WieOp4AHRy6uYSPDD9R7WqDvi7mhMq0Kk+uGst 5AC+a07kwHORiEhJUMj55xKaUUJp+36Mtb58ZZV8x/5sv2xYZDomFadMG0To2Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N2X9Zv/t4wJo4VmAGSWK0XRcA0XCetXeNG2t4bH/Qgw=; b=WOz1OgmPMnbUXJY8VlrPoZC7v6LaTHGC0PAgIXywiYLEixehzq8ajFe5FTYDTP4EqTmFxo zTy6WjDaI2HyAabMLtMXGy7gdqhu9jst+EqVj7V26MNEwZjZFj8tCMSgd/8ztNRQfVHJ8C mqM5NvOFy9vZi5zb6rhmjbDDmPge0D7Im2/HEEhAh2ZqEmpXHbsm4dqNRwij0h4Pa4zEvA wdnIgyjCkEuEujRan9DbqUI0sV6X3qs4zqZrtiY670jEXXEyHqXMgmew84EzUibv+6AgEy 09/j3lfLK0KUmkl6wNc4OXdlQ2CW1O08hiSwIIBrJsZCrD7ic/aDsmm3KCpMOg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRB1ZkLzdxy; Fri, 18 Apr 2025 14:37:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbQp8092245; Fri, 18 Apr 2025 14:37:26 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbQu2092243; Fri, 18 Apr 2025 14:37:26 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:26 GMT Message-Id: <202504181437.53IEbQu2092243@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 636bb42e6c55 - stable/14 - LinuxKPI: 802.11: deal with the error paths for lkpi_xmit() List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 636bb42e6c5556beb8a79541cf0d60c0832450c9 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=636bb42e6c5556beb8a79541cf0d60c0832450c9 commit 636bb42e6c5556beb8a79541cf0d60c0832450c9 Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 16:59:56 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:02 +0000 LinuxKPI: 802.11: deal with the error paths for lkpi_xmit() Rename lkpi_ic_raw_xmit() to lkpi_xmit() as we need a wrapper to add an extra argument as (*ic_raw_xmit) and (*ic_transmit) have different invariants. Based on the caller free the mbuf in the error case or not to satisfy the requirements of the caller. For more information see the comment in the code. Sponsored by: The FreeBSD Foundation (cherry picked from commit 9a45c3ca850110c5871742fadbf7355c1085c725) --- sys/compat/linuxkpi/common/src/linux_80211.c | 44 ++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index a5f22046b55c..19ad12d73d12 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -4514,9 +4514,20 @@ lkpi_ic_node_free(struct ieee80211_node *ni) lhw->ic_node_free(ni); } +/* + * lkpi_xmit() called from both the (*ic_raw_xmit) as well as the (*ic_transmit) + * call path. + * Unfortunately they have slightly different invariants. See + * ieee80211_raw_output() and ieee80211_parent_xmitpkt(). + * Both take care of the ni reference in case of error, and otherwise during + * the callback after transmit. + * The difference is that in case of error (*ic_raw_xmit) needs us to release + * the mbuf, while (*ic_transmit) will free the mbuf itself. + */ static int -lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, - const struct ieee80211_bpf_params *params __unused) +lkpi_xmit(struct ieee80211_node *ni, struct mbuf *m, + const struct ieee80211_bpf_params *params __unused, + bool freem) { struct lkpi_sta *lsta; @@ -4533,16 +4544,24 @@ lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, if (!lsta->txq_ready) { #endif LKPI_80211_LSTA_TXQ_UNLOCK(lsta); - /* - * Free the mbuf (do NOT release ni ref for the m_pkthdr.rcvif! - * ieee80211_raw_output() does that in case of error). - */ - m_free(m); + if (freem) + m_free(m); return (ENETDOWN); } /* Queue the packet and enqueue the task to handle it. */ - mbufq_enqueue(&lsta->txq, m); + error = mbufq_enqueue(&lsta->txq, m); + if (error != 0) { + LKPI_80211_LSTA_TXQ_UNLOCK(lsta); + if (freem) + m_free(m); +#ifdef LINUXKPI_DEBUG_80211 + if (linuxkpi_debug_80211 & D80211_TRACE_TX) + ic_printf(ni->ni_ic, "%s: mbufq_enqueue failed: %d\n", + __func__, error); +#endif + return (ENETDOWN); + } taskqueue_enqueue(taskqueue_thread, &lsta->txq_task); LKPI_80211_LSTA_TXQ_UNLOCK(lsta); @@ -4556,6 +4575,13 @@ lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, return (0); } +static int +lkpi_ic_raw_xmit(struct ieee80211_node *ni, struct mbuf *m, + const struct ieee80211_bpf_params *params __unused) +{ + return (lkpi_xmit(ni, m, NULL, true)); +} + #ifdef LKPI_80211_HW_CRYPTO static int lkpi_hw_crypto_prepare(struct lkpi_sta *lsta, struct ieee80211_key *k, @@ -4914,7 +4940,7 @@ lkpi_ic_transmit(struct ieee80211com *ic, struct mbuf *m) struct ieee80211_node *ni; ni = (struct ieee80211_node *)m->m_pkthdr.rcvif; - return (lkpi_ic_raw_xmit(ni, m, NULL)); + return (lkpi_xmit(ni, m, NULL, false)); } #ifdef LKPI_80211_HT From nobody Fri Apr 18 14:37:23 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR856zcz5stTg; Fri, 18 Apr 2025 14:37: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR80QMfz3L1n; Fri, 18 Apr 2025 14:37:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4Y9zJo22LuqyaCPT3+46dtR+TDa73Fcpiou6QpU3gVs=; b=WXYRrl32KJewGGWHyDcD9OwNz7HGGg8Ul3Mwhn8Deijvn4s5h8d/qeHH3jM0hM0hCfyVKM murewQ/YKKoX6E3z1BFicsEuk51/HiFKOFD3kDSBIwy47h9xt+oyKlnSRVmyHMatLpbLdg KI3KNtdPSi76TpnYxO/J4CcZz+IqdukYploxXyowKMuDWx9cf0j+94PHS/MCOrsfZVpN7g FK3d5Mzf50tVegAHm2KR9RF3qNU4vgVKu5InVCy6uEBS5eptuHOpVahE3pWJWCRcWKBBqy 5REJN/YSD4H75jAY1/eKnXvYKRiL3A2/QPJjJAdVaaU9yyZlxlHX4+Z5QHDCNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987044; a=rsa-sha256; cv=none; b=KI1XHQ3bNMqqvd9Z26JFc/XyAMUmsaKdR2HX13Bw5LnvKhGzrXpLrjzL7aS+6OOIKuYn1C VD6CCX0sQPU531SacH/Yxe8haqXkU9W49pfKggdCOUWoXjfXfa3eBWXNECwKAmPnjUtQ+o 0cNvxbQKpHJpB2T0AB8BaU8Ymct8rRoXM+nCfEAi1DVgXbZ2YFp+JI7op4ae/ZWYa1Ggpc OJOre23WVXGV47P2V04/Zi2oeRSkHCcY9sEAGbT84BWnnYHavbzLWmhSyXg0DGW3ObUDCC AAM5eXZ4jCHlGb7cx4+l5jMsecviEVbsznjEAx6x7hGsTr2esN/IRqxIDT0HiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4Y9zJo22LuqyaCPT3+46dtR+TDa73Fcpiou6QpU3gVs=; b=Axbq1pCIYLhsBOcrY4mbI5/ecaWr/GJj5IMBqNNo1T85jWqhz56+Bid/3J4WRw8HuyvOTK SYAUwoRFtr+zXW/79CN5ossuidesmuoO7hVDaXeQpQIQ1S05czVTtDvP67Cf+in9tuKy14 Dj9Dxg26ZG+2awlFuI/Y/BvsJ4HhtNDm2Pmqjb3Ffe4SEZ+JMGl/YK0vIxT2tdxDqmbNRo Dpk+WRuQGXhxaLqZtZVT/0foUM++88jmzUkipXdTaulIgj8lI9SuT2ckWdblU371ySfgpQ x/2QGS4HqB73+HAUkG2FwcAN6DgBm+4VjXb46Nrj631G/6ks/+gmLUuEZJxr6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR76pxszf0w; Fri, 18 Apr 2025 14:37:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbNEa092173; Fri, 18 Apr 2025 14:37:23 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbNue092170; Fri, 18 Apr 2025 14:37:23 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:23 GMT Message-Id: <202504181437.53IEbNue092170@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: ded3d312ba36 - stable/14 - LinuxKPI: 802.11: enable fragmentation offload List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ded3d312ba364023e312596a67e9a0733a1e9ff6 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=ded3d312ba364023e312596a67e9a0733a1e9ff6 commit ded3d312ba364023e312596a67e9a0733a1e9ff6 Author: Bjoern A. Zeeb AuthorDate: 2025-04-12 19:50:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:02 +0000 LinuxKPI: 802.11: enable fragmentation offload Let the hardware handle fragmentation itself and tell net80211 to save itself from it. We already call the (*set_frag_threshold) mac80211 function. This should be a NOP for all currently enabled LinuxKPI based WiFi drivers. Sponsored by: The FreeBSD Foundation (cherry picked from commit 63578bf225df37944b78febfb177e8c1c81f54e4) --- sys/compat/linuxkpi/common/src/linux_80211.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index f9f16e0a6f8f..4c1d20c7b469 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -5759,6 +5759,10 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw) lhw->scan_flags |= LKPI_LHW_SCAN_HW; } + /* Does HW support Fragmentation offload? */ + if (ieee80211_hw_check(hw, SUPPORTS_TX_FRAG)) + ic->ic_flags_ext |= IEEE80211_FEXT_FRAG_OFFLOAD; + /* * The wiphy variables report bitmasks of avail antennas. * (*get_antenna) get the current bitmask sets which can be From nobody Fri Apr 18 14:37:24 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHR951LHz5stRg; Fri, 18 Apr 2025 14:37:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHR91P0Pz3L63; Fri, 18 Apr 2025 14:37:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ktlUq7e+DDHFc6jJzAKpG9pU8jzlqaq83GReU3DHFB4=; b=KAuerRhy82AcX18coMk2oUbdUQDRVauPCvejL676C4HiVRYzSC4vIHFheRRmjszJv07JKK JvW4HTj7DOHs8ZJirPTmUBaJr/zZN3j+I/mxEcmxF584abqYeXgAGRIbXUBaHLHb0JbjOO s7R/zTtAooB1m7NxgmGPgLyqf9F+4SfUYtbetA2iRDlgEV2LU6DZ5AtenFJz7tQZiTNhvo UuzpC3xm87g/4wxA5RJTpnJ/UVnt1pAmVZvXZbR3FccaJnqur7zRMzepvrAPAYPj+3zrCO V31rAMQIybtcE9hpGBgCtNcBlylUkToUjGopxyCBQ9vQB/OZBlndb+kBZqftFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987045; a=rsa-sha256; cv=none; b=b2CoppurpRdR/AvaLEMgPxAShAt0B2hkem3Pkexi1/xhGPnTiTKGogJWja6EkQnA6J1RTW cD/QryJhXCuMc0PE44f1sB7+IOZcMBwPVtCQT1c60HXJblj9RwgO1tLGNUAYgUBk30TVwv 9UoKoOuYuRy7r1wk/nHcbMIVRFNqGLHreSkTkXmnavSEOaEVHY66XNvZxjGIUhXgGajvb4 3hudZ//1beMeS/4PuhuG8cODdV/W2sXXdxeA0mz6co0GL1mOYBcG5b7khEO77HpeYo6vL5 AoOhoKPjTE7b+/pxWusaTyxFAGeZF6Q3/s87gpvHFknHRc/qJaigroES+RlO2g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ktlUq7e+DDHFc6jJzAKpG9pU8jzlqaq83GReU3DHFB4=; b=R7XQAdgPQA/aFityFuY1pPIsxe4oxdNTOxRC+ZyGJkRg3rHFNg1qUjVbQAh2jo34fRc75K UycQQZR4i87N8bQ12t1gFErjpPNaBgk/V6+lvHLpR9uCsS48PRFxZU/C82m2yDCaJaz6se amz4eC5M4gqFbitMotVnIug61OkzGbT+SpICmG6OwXSkMEpR8r2EgAltSJNTsJqwxwh8dN qTUAlPV81aaTdY96Tc2scDqn/nJb21NtWsELLyKGstduRgokiL83aYPSOfQHh3LoUJiPxl BC9iOHVv881ATNO4syFnUJCpbJ4lKiCYBeOy21RGKMPSNj+U9UENReUhRE2o5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHR90kPrzdjb; Fri, 18 Apr 2025 14:37:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbO6B092209; Fri, 18 Apr 2025 14:37:24 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbOVK092206; Fri, 18 Apr 2025 14:37:24 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:24 GMT Message-Id: <202504181437.53IEbOVK092206@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 6869d0856230 - stable/14 - LinuxKPI: 802.11: increase mbufq lengths List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6869d08562309043460a00c30d28d33a71b772aa Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=6869d08562309043460a00c30d28d33a71b772aa commit 6869d08562309043460a00c30d28d33a71b772aa Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 20:57:13 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:02 +0000 LinuxKPI: 802.11: increase mbufq lengths Increase the mbufq lengths we use in the RX and TX path to decouple the lower and upper parts (currently using taskqs which likely need to be replaced as well now -- was asked not to add more sophisticated concepts 2-ish years ago). The old values of IFQ_MAXLEN (50) are a tad too small so bump them to 32 * NAPI_POLL_WEIGHT (32 * 64) which seems to be mostly enough now not to drop mbufs anymore (by not overflowing the queues). As a side effect TCP became a lot happier as well growing throughput towards where UDP is already. There is more fish to fry but we are also doing ~750 Mbits/sec TX and 400 Mbit/s RX TCP at VHT160 now. Sponsored by: The FreeBSD Foundation (cherry picked from commit 832b8e986c68a43ecf2d6b4af805aaf37087f7d9) --- sys/compat/linuxkpi/common/src/linux_80211.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 4c1d20c7b469..a5f22046b55c 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -786,7 +786,7 @@ lkpi_lsta_alloc(struct ieee80211vap *vap, const uint8_t mac[IEEE80211_ADDR_LEN], /* Deferred TX path. */ LKPI_80211_LSTA_TXQ_LOCK_INIT(lsta); TASK_INIT(&lsta->txq_task, 0, lkpi_80211_txq_task, lsta); - mbufq_init(&lsta->txq, IFQ_MAXLEN); + mbufq_init(&lsta->txq, 32 * NAPI_POLL_WEIGHT); lsta->txq_ready = true; return (lsta); @@ -5572,7 +5572,7 @@ linuxkpi_ieee80211_alloc_hw(size_t priv_len, const struct ieee80211_ops *ops) /* Deferred RX path. */ LKPI_80211_LHW_RXQ_LOCK_INIT(lhw); TASK_INIT(&lhw->rxq_task, 0, lkpi_80211_lhw_rxq_task, lhw); - mbufq_init(&lhw->rxq, IFQ_MAXLEN); + mbufq_init(&lhw->rxq, 32 * NAPI_POLL_WEIGHT); lhw->rxq_stopped = false; /* From nobody Fri Apr 18 14:37:27 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRD0v8Pz5stXl; Fri, 18 Apr 2025 14:37:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRC3GSnz3L6b; Fri, 18 Apr 2025 14:37:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6uLnYaNIsQI7a277T+CYG13A51BXvsiAWJhnmpVJQ54=; b=wqMz+SUKCRCtEDbdUK3tO2tnl3gGeueBIpml2V2s3PumzwxtwyOB7d66Go8RzGoWkLssqy VOGZsMmP49gGOHbNa3VFT4R6c6/9psU3ZOYsJvbB8pc74IXpKPutFYs3og82Ul/Qpn2BTt KQztL/Yrz0A0ka9Qr1MwgqpyCTXyi6WxfgMjHu/VEiyIsKIVawl7dbHY6Fuy+u53jbz/uN N/ByUKp3q5qizF5BQE36bTHDWLWOOvEjBaiwptFs1S7nxeoSuzDPSLQysJ8CU0QQvQjrcc P//ho0SWWCNkmrWsuSsvO7Cnar2M5mX9yfIhDkaC5Zs60z0Bl28KBR94kft3SQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987047; a=rsa-sha256; cv=none; b=XMkLXU5JNLAgF2M9HMMohrURSPl0ipH+9Lqr895CC3OWcANszyWj2oFeG4GxdMH+N0uLNL D1Wwk7Wk64UHkbn6prsafUBmyHIz4h6eqCb9a6vD7HrM4npq9VPoUYSo4+CEJ3ESNGxoRW V1cBwHi+d61gQB4a0zagOTmhxRROomOn4nLZEuulzChlJ+YHmYo/1sduhD+Ll+gJoUjt5v H6XVh2qXdzschPI/+bZ9WOltZF7FGymPR2NkagbfYFXOL1I5gsKotX4USSv9htHQXM0K// w9EQA8eC9G+ssBb7o6AXBjkrWzmkZfDYLkRsWmS0Xz6yJEumHeptsZtEoMHX/A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6uLnYaNIsQI7a277T+CYG13A51BXvsiAWJhnmpVJQ54=; b=pQN1933xVjEIyJAsUWLEVwe6arJQ8xsfB+8Sxs2r3YguMt4j1hfefN7LG3J36aQ4vll2I7 kAiJfm6ZH99vLQRpJK7yC5Az572oMuo8DdXhFKbOp9tKKHcmtd0E8ttShqG6eA84LOvZVf TK7PNFkaeELH5bZeFAfHtDiw0YVwsljGdcFgoMN40O9o39ILhizrrQnun4DgmakauQEqMj n5CQMPCn3FyeCWA66m9+KBFc/fuaX4/y5XFd29nOYBr1xL7NaHoGIJznJ0XelQVWBKWFH1 mm2yU6Q55TPvxLcHEORewFzfO554SZTdWZpTFHuERvvBro+p3BhKITfyklJirQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRC2YFjzfF2; Fri, 18 Apr 2025 14:37:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbRmi092281; Fri, 18 Apr 2025 14:37:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbRsX092278; Fri, 18 Apr 2025 14:37:27 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:27 GMT Message-Id: <202504181437.53IEbRsX092278@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 1ec403297e4e - stable/14 - LinuxKPI: 802.11: better dealing with errors in RX path List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 1ec403297e4e7585a6fbc753de8cec0244c58d6d Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=1ec403297e4e7585a6fbc753de8cec0244c58d6d commit 1ec403297e4e7585a6fbc753de8cec0244c58d6d Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 20:53:36 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:03 +0000 LinuxKPI: 802.11: better dealing with errors in RX path In case we fail to allocate the mbuf or mtag in the RX path or fail for other reasons report it as ic_ierrors for better diagnostics and more correct statistics. Also do what the comment had indicated and mandate that mtag allocation succeeds or otherwise drop the packet. There may be room for future improvements in a follow-up commit here. Sponsored by: The FreeBSD Foundation (cherry picked from commit c013f810ecb615289c2bd69a10f4317a3a867d50) --- sys/compat/linuxkpi/common/src/linux_80211.c | 29 +++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 19ad12d73d12..11c0077fe571 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -6446,8 +6446,12 @@ linuxkpi_ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, uint8_t rssi; bool is_beacon; + lhw = HW_TO_LHW(hw); + ic = lhw->ic; + if (skb->len < 2) { /* Need 80211 stats here. */ + counter_u64_add(ic->ic_ierrors, 1); IMPROVE(); goto err; } @@ -6457,8 +6461,10 @@ linuxkpi_ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, * have an mbuf backing the skb data then? */ m = m_get2(skb->len, M_NOWAIT, MT_DATA, M_PKTHDR); - if (m == NULL) + if (m == NULL) { + counter_u64_add(ic->ic_ierrors, 1); goto err; + } m_copyback(m, 0, skb->tail - skb->data, skb->data); shinfo = skb_shinfo(skb); @@ -6523,9 +6529,6 @@ no_trace_beacons: rssi = 0; lkpi_convert_rx_status(hw, rx_status, &rx_stats, &rssi); - lhw = HW_TO_LHW(hw); - ic = lhw->ic; - ok = ieee80211_add_rx_params(m, &rx_stats); if (ok == 0) { m_freem(m); @@ -6628,28 +6631,28 @@ skip_device_ts: } #endif - /* - * Attach meta-information to the mbuf for the deferred RX path. - * Currently this is best-effort. Should we need to be hard, - * drop the frame and goto err; - */ + /* Attach meta-information to the mbuf for the deferred RX path. */ if (ni != NULL) { struct m_tag *mtag; struct lkpi_80211_tag_rxni *rxni; mtag = m_tag_alloc(MTAG_ABI_LKPI80211, LKPI80211_TAG_RXNI, sizeof(*rxni), IEEE80211_M_NOWAIT); - if (mtag != NULL) { - rxni = (struct lkpi_80211_tag_rxni *)(mtag + 1); - rxni->ni = ni; /* We hold a reference. */ - m_tag_prepend(m, mtag); + if (mtag == NULL) { + m_freem(m); + counter_u64_add(ic->ic_ierrors, 1); + goto err; } + rxni = (struct lkpi_80211_tag_rxni *)(mtag + 1); + rxni->ni = ni; /* We hold a reference. */ + m_tag_prepend(m, mtag); } LKPI_80211_LHW_RXQ_LOCK(lhw); if (lhw->rxq_stopped) { LKPI_80211_LHW_RXQ_UNLOCK(lhw); m_freem(m); + counter_u64_add(ic->ic_ierrors, 1); goto err; } From nobody Fri Apr 18 14:37:29 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRG5f5wz5stqs; Fri, 18 Apr 2025 14:37:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRF4mBdz3LCT; Fri, 18 Apr 2025 14:37:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NeEMuIP6LsnjUNdU/ngF6TEiq8KG3AT/CbbYsY9nHxY=; b=FJV693TtRCFVYXWuTe4QGgeLD7FRqucz8wvbon9BIHrH6d2uk9QkfdXk1kCAFRdBPrL1du I8pbt0PtSIbi9JnYsA2qIBsVCO/lijfSfPSIE7ICzS+pYWtM2TNnFyDEFD31c4hFD3H3fD gSQcIWsUeRIET1XZXLYmWYMIrPHlmRZMRP9GssH0z+iXOK5NFz6ZsusFkGbrJrpEGznnMF icG8tb8zIytal2/tApxx2F5YMHA/G0LrBMDdZch9+xgxo477lAyW0XKyDUJuXB+Iq28Pqd zp3qNql/IQoZrUn7cHd5l0ROC9WQ2av72DwMCvhCmNj3e+Ww6n/mKajgR2JpEg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987049; a=rsa-sha256; cv=none; b=H8fccm7Pz10GZUGTVev+weZ/vqJd5uuDrUXDLPfD4nxrledA2l3mGTBKpDMswgZVWRPviX FsLJQ/TdWdThF3QSRy/jkcPd2CCkhenSgE9d2mqEEvRpeHmdc98yYqTmh+irKSaKBgqQ+Z bTOBj/O7ce4LXsZinmlevV+bYIrd1mBuyn5j6pI4LGavxGg2sHbl3CBwT2bVyfzpRDGgmT eQolLzcVgkybfoia3IBBZTxx/Q2faUcTOLKEwXZUeqoZXJ0EJAF/1qynxo5E9PKXC/n9St j1R2va5Q35DJH75O99RFnLmCAXzBQxtcZvBIXV6PsTJotfvv7HIIKcZAUX3ktg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NeEMuIP6LsnjUNdU/ngF6TEiq8KG3AT/CbbYsY9nHxY=; b=unTb1PccBGRbN6MhK8iIhaTtBX1OqnFGgbPlQ4K44btSvJ7dSY2uEdoiu4rYe6725ZNNPr nAI8ZJZPPZLa1V9y7vpScy/ZWHPId4PNS4MxpkinLEV6q6vu1h9JOSrf1juHGq8J5p6r95 EKPe4Hp3W/qHmbePtfz7jKqsPs8vzLtmb7D8sOq5aXdLJ2lfRnt/amNxXO7pV8rT95mnuX S6cIDxGbuMz29YkAdvyEzktlSloN7I4lfSUNinxeo1mNIBgB+mcDmSyfHp3ILpdJJF273l 2KT7SdY1+4iIyQisu+v0szxozOWCyKf0c+0KbAAZ2A+31Xv4z0wScZgyYqWyqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRF4BVczdy0; Fri, 18 Apr 2025 14:37:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbTIL092362; Fri, 18 Apr 2025 14:37:29 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbTuZ092359; Fri, 18 Apr 2025 14:37:29 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:29 GMT Message-Id: <202504181437.53IEbTuZ092359@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 9996e4df555c - stable/14 - LinuxKPI; 802.11: start filling rxrate statistics List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9996e4df555c7b7b4988526729fdf4230d796954 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=9996e4df555c7b7b4988526729fdf4230d796954 commit 9996e4df555c7b7b4988526729fdf4230d796954 Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 23:05:46 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:03 +0000 LinuxKPI; 802.11: start filling rxrate statistics Start collecting rxrate information from the RX statistics which are passed per packet. Store them in the lsta and upon printing statistics, if no RX_BIRATE is provided copy them over from the lsta. This allows us to see rate information in both directions on modern iwlwifi chipsets, which are doing [tx]rate handling in firmware. Sponsored by: The FreeBSD Foundation (cherry picked from commit a1adefb139b3c8f95e5255c67705fb92f4d9fc04) --- sys/compat/linuxkpi/common/src/linux_80211.c | 72 +++++++++++++++++++++------- sys/compat/linuxkpi/common/src/linux_80211.h | 2 + 2 files changed, 58 insertions(+), 16 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 3dba41a4e547..98e0b28d9ef2 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -314,6 +314,13 @@ lkpi_80211_dump_stas(SYSCTL_HANDLER_ARGS) continue; } + /* If no RX_BITRATE is reported, try to fill it in from the lsta sinfo. */ + if ((sinfo.filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE)) == 0 && + (lsta->sinfo.filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE)) != 0) { + memcpy(&sinfo.rxrate, &lsta->sinfo.rxrate, sizeof(sinfo.rxrate)); + sinfo.filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE); + } + lkpi_nl80211_sta_info_to_str(&s, " nl80211_sta_info (valid fields)", sinfo.filled); sbuf_printf(&s, " connected_time %u inactive_time %u\n", sinfo.connected_time, sinfo.inactive_time); @@ -6276,15 +6283,17 @@ lkpi_80211_lhw_rxq_task(void *ctx, int pending) } static void -lkpi_convert_rx_status(struct ieee80211_hw *hw, +lkpi_convert_rx_status(struct ieee80211_hw *hw, struct lkpi_sta *lsta, struct ieee80211_rx_status *rx_status, struct ieee80211_rx_stats *rx_stats, uint8_t *rssip) { struct ieee80211_supported_band *supband; + struct rate_info rxrate; int i; uint8_t rssi; + memset(&rxrate, 0, sizeof(rxrate)); memset(rx_stats, 0, sizeof(*rx_stats)); rx_stats->r_flags = IEEE80211_R_NF | IEEE80211_R_RSSI; /* XXX-BZ correct hardcoded noise floor, survey data? */ @@ -6351,30 +6360,56 @@ lkpi_convert_rx_status(struct ieee80211_hw *hw, switch (rx_status->encoding) { case RX_ENC_LEGACY: + { + uint32_t legacy = 0; + supband = hw->wiphy->bands[rx_status->band]; if (supband != NULL) - rx_stats->c_rate = supband->bitrates[rx_status->rate_idx].bitrate; + legacy = supband->bitrates[rx_status->rate_idx].bitrate; + rx_stats->c_rate = legacy; + rxrate.legacy = legacy; /* Is there a LinuxKPI way of reporting IEEE80211_RX_F_CCK / _OFDM? */ break; + } case RX_ENC_HT: rx_stats->c_pktflags |= IEEE80211_RX_F_HT; - if ((rx_status->enc_flags & RX_ENC_FLAG_SHORT_GI) != 0) - rx_stats->c_pktflags |= IEEE80211_RX_F_SHORTGI; rx_stats->c_rate = rx_status->rate_idx; /* mcs */ + rxrate.flags |= RATE_INFO_FLAGS_MCS; + rxrate.mcs = rx_status->rate_idx; + if ((rx_status->enc_flags & RX_ENC_FLAG_SHORT_GI) != 0) { + rx_stats->c_pktflags |= IEEE80211_RX_F_SHORTGI; + rxrate.flags |= RATE_INFO_FLAGS_SHORT_GI; + } break; case RX_ENC_VHT: rx_stats->c_pktflags |= IEEE80211_RX_F_VHT; - if ((rx_status->enc_flags & RX_ENC_FLAG_SHORT_GI) != 0) - rx_stats->c_pktflags |= IEEE80211_RX_F_SHORTGI; rx_stats->c_rate = rx_status->rate_idx; /* mcs */ rx_stats->c_vhtnss = rx_status->nss; + rxrate.flags |= RATE_INFO_FLAGS_VHT_MCS; + rxrate.mcs = rx_status->rate_idx; + rxrate.nss = rx_status->nss; + if ((rx_status->enc_flags & RX_ENC_FLAG_SHORT_GI) != 0) { + rx_stats->c_pktflags |= IEEE80211_RX_F_SHORTGI; + rxrate.flags |= RATE_INFO_FLAGS_SHORT_GI; + } break; case RX_ENC_HE: + rxrate.flags |= RATE_INFO_FLAGS_HE_MCS; + rxrate.mcs = rx_status->rate_idx; + rxrate.nss = rx_status->nss; + /* XXX TODO */ + TODO("net80211 has not matching encoding for %u", rx_status->encoding); + break; case RX_ENC_EHT: + rxrate.flags |= RATE_INFO_FLAGS_EHT_MCS; + rxrate.mcs = rx_status->rate_idx; + rxrate.nss = rx_status->nss; + /* XXX TODO */ TODO("net80211 has not matching encoding for %u", rx_status->encoding); break; } + rxrate.bw = rx_status->bw; switch (rx_status->bw) { case RATE_INFO_BW_20: rx_stats->c_width = IEEE80211_RX_FW_20MHZ; @@ -6425,6 +6460,11 @@ lkpi_convert_rx_status(struct ieee80211_hw *hw, if (rx_status->flag & RX_FLAG_FAILED_FCS_CRC) rx_stats->c_pktflags |= IEEE80211_RX_F_FAIL_FCSCRC; #endif + + if (lsta != NULL) { + memcpy(&lsta->sinfo.rxrate, &rxrate, sizeof(rxrate)); + lsta->sinfo.filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE); + } } /* For %list see comment towards the end of the function. */ @@ -6527,16 +6567,6 @@ linuxkpi_ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, no_trace_beacons: #endif - rssi = 0; - lkpi_convert_rx_status(hw, rx_status, &rx_stats, &rssi); - - ok = ieee80211_add_rx_params(m, &rx_stats); - if (ok == 0) { - m_freem(m); - counter_u64_add(ic->ic_ierrors, 1); - goto err; - } - lsta = NULL; if (sta != NULL) { lsta = STA_TO_LSTA(sta); @@ -6550,6 +6580,16 @@ no_trace_beacons: lsta = ni->ni_drv_data; } + rssi = 0; + lkpi_convert_rx_status(hw, lsta, rx_status, &rx_stats, &rssi); + + ok = ieee80211_add_rx_params(m, &rx_stats); + if (ok == 0) { + m_freem(m); + counter_u64_add(ic->ic_ierrors, 1); + goto err; + } + if (ni != NULL) vap = ni->ni_vap; else diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index ebf02994af47..e9c0d01af1bb 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -161,6 +161,8 @@ struct lkpi_sta { bool added_to_drv; /* Driver knows; i.e. we called ...(). */ bool in_mgd; /* XXX-BZ should this be per-vif? */ + struct station_info sinfo; /* statistics */ + /* Must be last! */ struct ieee80211_sta sta __aligned(CACHE_LINE_SIZE); }; From nobody Fri Apr 18 14:37:30 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRH4BtDz5stfy; Fri, 18 Apr 2025 14:37:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRG5Py7z3L9S; Fri, 18 Apr 2025 14:37:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CPlknZt52bYruezWdqT4TWTpuKh1yHDjb+RrjYjxCLw=; b=kWuqbrwzOCDBrQqRp92XPVCf1C8Dgkvpxrn5vcus1LjwNSDQFgFZVd/c6n5JPhSBQPa4bw Uiq+hH6u9bkBWDHmhOJJZnLxX+R1WKlP1MjFhKd3xn6wYCF9YrofVQ0owQFp6M0nu+/Rct RMn9ZYXCS9/m67RFHw1yalZ2gPgkBsGClHhahzCvVFpCDdhftN3866mn2VdTt/nVVFSTKZ /VOk3ygR5iYd0c8w6RHMemM0dYdN0l5o3Kl0T9OB72GcXKJjHWN7adKkDCzR+i7fKL11vD jwff2+sTJC7etW8a/u55QT104vI3ZV9uRekzWjQzgowhB3l8aeEyrbowbuYWyQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987050; a=rsa-sha256; cv=none; b=CRA4Ildr3JLsZIT9qTZhPCj5j3KsnN+s9XmLc/89Qf9ImjW1Js3K6wOlcvIrmj/OXExCQD ta5skSaFjZCte+bmAj/VFQcVFTDAUphqyuV6iJ+toeFQrP66rAHK136f5qUj4PHhek0HgD wQ6uEZ5yybN9RHQyYG+wuaYFNqW79oHfqJK0ZfN37NaH180Zr6/ngG3DLAidvhzIew/uEy HY0hNCB3HjxaNYQZEfmebBQ8yscmXl2ZR5NQtwn9fx7eQwsgvWVpEdGeP3wk3zznduV7mR 9uH6RbT62fYLuAMxxknI+WDzdshHk9qWKHRGXn+3enafQwD2WulxGoa+o2BL2g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987050; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CPlknZt52bYruezWdqT4TWTpuKh1yHDjb+RrjYjxCLw=; b=ZACal+znMvTmpQfjyckZ73lyCiLel0FnmjwFbjT2CJWyZoRSxJlCGALJ6shWo+d/83Rr3d iUCvfZ2b2ymhLyGuepvOyhIZ4sktb23nLk4Dksde+mTbfBCftoI5iygU9Nf/9yxDiL/JL8 mJ0budnRmB7om6WrWPMw7cS5NOlUjg8dSqdvzWr/PENumfxKjPJkBwD5qsbHWgIKy+vMVf PE0S2IolbA3Q/lGkpdTQ9inff92m8LS0k9vNGuQMpOJ2ouMr9pmKtBVWtv/o+XMAYQMvv9 zGCEPnCUu0zXrzT32VFa37Z8sT/dxhNRaO98P1d6KdIlOlLL9Vcln97qvkVZkg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRG51h9zfF3; Fri, 18 Apr 2025 14:37:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbUNF092398; Fri, 18 Apr 2025 14:37:30 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbUgG092395; Fri, 18 Apr 2025 14:37:30 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:30 GMT Message-Id: <202504181437.53IEbUgG092395@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: f086acca042e - stable/14 - LinuxKPI: 802.11: avoid using an mbuf tag for now List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f086acca042ecd91b636aa84f33db198a2e6a961 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=f086acca042ecd91b636aa84f33db198a2e6a961 commit f086acca042ecd91b636aa84f33db198a2e6a961 Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 21:53:44 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:03 +0000 LinuxKPI: 802.11: avoid using an mbuf tag for now We are using an mbuf tag to carry the ni reference in the TX path from the TX function past the taskq along with the mbuf. Contrary to initial assumptions we only need the ni and no other data so attach the ni to m->m_pkthdr.PH_loc.ptr avoiding the extra allcation. Sponsored by: The FreeBSD Foundation (cherry picked from commit dbae3dcff72f53abe6874466baea78f552b3a316) --- sys/compat/linuxkpi/common/src/linux_80211.c | 22 ++++++++++++++++++++++ sys/compat/linuxkpi/common/src/linux_80211.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 98e0b28d9ef2..85c0945cb9d3 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -5650,6 +5650,7 @@ linuxkpi_ieee80211_iffree(struct ieee80211_hw *hw) /* Flush mbufq (make sure to release ni refs!). */ m = mbufq_dequeue(&lhw->rxq); while (m != NULL) { +#ifdef LKPI_80211_USE_MTAG struct m_tag *mtag; mtag = m_tag_locate(m, MTAG_ABI_LKPI80211, LKPI80211_TAG_RXNI, NULL); @@ -5659,6 +5660,14 @@ linuxkpi_ieee80211_iffree(struct ieee80211_hw *hw) rxni = (struct lkpi_80211_tag_rxni *)(mtag + 1); ieee80211_free_node(rxni->ni); } +#else + if (m->m_pkthdr.PH_loc.ptr != NULL) { + struct ieee80211_node *ni; + + ni = m->m_pkthdr.PH_loc.ptr; + ieee80211_free_node(ni); + } +#endif m_freem(m); m = mbufq_dequeue(&lhw->rxq); } @@ -6226,10 +6235,13 @@ static void lkpi_80211_lhw_rxq_rx_one(struct lkpi_hw *lhw, struct mbuf *m) { struct ieee80211_node *ni; +#ifdef LKPI_80211_USE_MTAG struct m_tag *mtag; +#endif int ok; ni = NULL; +#ifdef LKPI_80211_USE_MTAG mtag = m_tag_locate(m, MTAG_ABI_LKPI80211, LKPI80211_TAG_RXNI, NULL); if (mtag != NULL) { struct lkpi_80211_tag_rxni *rxni; @@ -6237,6 +6249,12 @@ lkpi_80211_lhw_rxq_rx_one(struct lkpi_hw *lhw, struct mbuf *m) rxni = (struct lkpi_80211_tag_rxni *)(mtag + 1); ni = rxni->ni; } +#else + if (m->m_pkthdr.PH_loc.ptr != NULL) { + ni = m->m_pkthdr.PH_loc.ptr; + m->m_pkthdr.PH_loc.ptr = NULL; + } +#endif if (ni != NULL) { ok = ieee80211_input_mimo(ni, m); @@ -6674,6 +6692,7 @@ skip_device_ts: /* Attach meta-information to the mbuf for the deferred RX path. */ if (ni != NULL) { +#ifdef LKPI_80211_USE_MTAG struct m_tag *mtag; struct lkpi_80211_tag_rxni *rxni; @@ -6687,6 +6706,9 @@ skip_device_ts: rxni = (struct lkpi_80211_tag_rxni *)(mtag + 1); rxni->ni = ni; /* We hold a reference. */ m_tag_prepend(m, mtag); +#else + m->m_pkthdr.PH_loc.ptr = ni; /* We hold a reference. */ +#endif } LKPI_80211_LHW_RXQ_LOCK(lhw); diff --git a/sys/compat/linuxkpi/common/src/linux_80211.h b/sys/compat/linuxkpi/common/src/linux_80211.h index e9c0d01af1bb..a5c052c78db0 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.h +++ b/sys/compat/linuxkpi/common/src/linux_80211.h @@ -86,6 +86,7 @@ #define MTAG_ABI_LKPI80211 1707696513 /* LinuxKPI 802.11 KBI */ +#ifdef LKPI_80211_USE_MTAG /* * Deferred RX path. * We need to pass *ni along (and possibly more in the future so @@ -95,6 +96,7 @@ struct lkpi_80211_tag_rxni { struct ieee80211_node *ni; /* MUST hold a reference to it. */ }; +#endif struct lkpi_radiotap_tx_hdr { struct ieee80211_radiotap_header wt_ihdr; From nobody Fri Apr 18 14:37:28 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRF0xrvz5stYt; Fri, 18 Apr 2025 14:37:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRD3xlwz3KtC; Fri, 18 Apr 2025 14:37:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LzKSAq4D5BuKVaQ9rFC1728wXOQ66o7Hs4i5h1kPGKg=; b=CRxDnTKdPtxmNz6OsD6MyhHid2EDZ1rpbFiVx5rlUUv5vKaKCXxCdv646OpQ/ukXSVD6J8 miWSirHI3Icfa9LshA+WcweVcLMImrsrGY+jx64Pd1Qm+kPBYz1c5JmbJbSjX9juXeOCas SvCztC063REi791VGjb1qVX3EJekRxw+NZE/OFwo1URQE2EKIuv1Ty6ffJGPDIUdSW4nr3 lJEIZmkw6dZuviGSrQs4bEzu5GGEqcuXdCCMknkgVFoo1yZ4bThuJ4R+EqrRF/lqhL/joW g6UdqFPDg541MFHE7T1FifI9prjOGYQnmM6RW8/p45EU82vHb8PaQ0z/l5iBWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987048; a=rsa-sha256; cv=none; b=dYkaE8hIWu3HW7J9NFZMsc/HlDj6WwFiHnezCvVV2NoodiNE2Xkt9kbydFBUKczK/+5kWi kTYpAuJe4tjT+3nSvPuITqHth8BrksBJfYYWt4zRL/Pc3N3AoTGqCAwB9f4DXrr3tg+UFS pv3aVzSUsOViBIAVqW3hhuX+Ey3DGpz2nh1qUiKZZJX35lSC2qvccPsEPpslkhXar51UEB AqhIzdLKDFcO6/iZFQb55Q6kYV607mW8+tkfBl38J8XZ4HunvlsrU0UOkYhqhZ5GJ6+nM3 tyD9mvkdbnX7OrNLV7NhDRKZ5RJ6ZFPTwNY64vdbgW7nFuN9FL+SmYSEsHqGZQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LzKSAq4D5BuKVaQ9rFC1728wXOQ66o7Hs4i5h1kPGKg=; b=l0Nv5QfMZ1MdQx/XrtUm0WLdxiihIEd2IpDk9QE9pcfOStnRWT6hBHfY9QjDzn8pw2Zrhi b7Ka0v55umsMqnkCbtdhLAKWIorCGSBIdFGraZg8JYTSp7mnoI6ok/Srhx5a8dLxa5ZTZC l5z32tOjRMsk2WWQKGyWwrsy41LQ4eAl/c8mEEAa1p4ISHRNuPFvJIEUGx2Rir3/22h196 eV6ydw0wngMJ0frJa31vG3g2dM2uP7UmhNhks7urF7O/E3yPAX1SyuerENTfKRIGscCx3B jiPgdOGRbngeoFW5iBDzfJ+0HEW2KTH1DPEJpAbx/uIMaMFpORBK1TjA6HnFNQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRD3TRZzfHN; Fri, 18 Apr 2025 14:37:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbSDG092323; Fri, 18 Apr 2025 14:37:28 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbSlD092320; Fri, 18 Apr 2025 14:37:28 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:28 GMT Message-Id: <202504181437.53IEbSlD092320@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: e273079ac52d - stable/14 - LinuxKPI: 802.11: plug mbuf leak List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e273079ac52d8b2ee9d6a5578cc15dc09a705df8 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=e273079ac52d8b2ee9d6a5578cc15dc09a705df8 commit e273079ac52d8b2ee9d6a5578cc15dc09a705df8 Author: Bjoern A. Zeeb AuthorDate: 2025-04-13 16:13:22 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:03 +0000 LinuxKPI: 802.11: plug mbuf leak Now that we are doing VHT it is possible to overflow the mbufqs we use in the TX and RX paths. Check the return code of mbufq_enqueue() deal with any error accordingly and propagate it. Sponsored by: The FreeBSD Foundation (cherry picked from commit c816f64e66a0d21196ede35da3eca19e54b59a03) --- sys/compat/linuxkpi/common/src/linux_80211.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 11c0077fe571..3dba41a4e547 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -4530,6 +4530,7 @@ lkpi_xmit(struct ieee80211_node *ni, struct mbuf *m, bool freem) { struct lkpi_sta *lsta; + int error; lsta = ni->ni_drv_data; LKPI_80211_LSTA_TXQ_LOCK(lsta); @@ -6442,7 +6443,7 @@ linuxkpi_ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, struct ieee80211vap *vap; struct ieee80211_hdr *hdr; struct lkpi_sta *lsta; - int i, offset, ok; + int i, offset, ok, error; uint8_t rssi; bool is_beacon; @@ -6656,7 +6657,18 @@ skip_device_ts: goto err; } - mbufq_enqueue(&lhw->rxq, m); + error = mbufq_enqueue(&lhw->rxq, m); + if (error != 0) { + LKPI_80211_LHW_RXQ_UNLOCK(lhw); + m_freem(m); + counter_u64_add(ic->ic_ierrors, 1); +#ifdef LINUXKPI_DEBUG_80211 + if (linuxkpi_debug_80211 & D80211_TRACE_RX) + ic_printf(ni->ni_ic, "%s: mbufq_enqueue failed: %d\n", + __func__, error); +#endif + goto err; + } taskqueue_enqueue(taskqueue_thread, &lhw->rxq_task); LKPI_80211_LHW_RXQ_UNLOCK(lhw); From nobody Fri Apr 18 14:37:31 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRJ3ktyz5stlm; Fri, 18 Apr 2025 14:37:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRJ0Xvxz3LLP; Fri, 18 Apr 2025 14:37:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JsMS1STKv519OWFfrBQfV17/kM7A8C+O2hDxO4BG8z4=; b=nL8QsdDxIvD2TbVMctapDcMMtgVry3U/RUdydiaRvYQK0oAReu6dJFEc53AHJzinRb5Hzv HDusl6WB+ly8mpO3EfFSqi/9oNTKT3l6wMpk0DeBUl00ovkvZRe83YeM3dIYTPi86ZSYBx j4NtvyeZfe1UjUDtNB4Q+39JhsY2+KqVarVorU1N57rtgEU4KvEECLN6yzrN7YAHcx9qmu w6MsMdyKusW68oqmJIJJ5G6yqzavVY4bKBCVLnbKNLJadqKWDdYhmn3VxFFiXFDHqRlq64 vRazir5oDRwCwPOqJ4LI04pBstKlZGyJr7IZYYPTfUrOCc2LykTeWS4K33e4qw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987052; a=rsa-sha256; cv=none; b=yElhZOwKHeWjYlkUIvAW03qBo91uu/1XaTu1JXeVIafqqSj0Kcmn6zTKJPZP1z3LFMlmxg WZY3EkjDCPtSGHwcaBsCJ2bwkuSpl5U+VKXKCiYiqTxYCKhDeShhcMjGhR/BJLedvASFtI b6j+F+iJHMAiOvIPIofuakVSknyothlVP5HSBGxPVCFmXZTyu98cwIaMgObL8fCtJUHgbc cjzrvy5tD5TcIEpIYtfD4FyJWYe4GZQ24S6O3puMwYNDBD/GnD7QEII7Vxxl3qfUMOcsVf bDY91ChabHW1gCbXomvWKvJNwEqzbCC1KQhXIm7q5uhS0lZA7mAyGG2KDFT27Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JsMS1STKv519OWFfrBQfV17/kM7A8C+O2hDxO4BG8z4=; b=qLQw04DCj0YI9eEsb5RYIMvuIkxn4oFh53XitmtHaidvmL84N1tAcSe7phBs5xvPQUqUu5 dZGUEn1pPPVPm1+hJsjIgU0imHOGM6Cdm7EJnDy8hn0qFr/bMFNHGYCusTZm8+tG+4yqJ5 6PbfLT/aReOTgSNWgku/dwrfzmz3/OP1rCthgisxrtFBlIwbpmyGZAdSmg+d8tDCbL0z8N FQsVpnGcorMr2mNy7poG5IyfkT5U4m7hA4Mq3Alx4xGKbgUcoeG35fSdC/hlvnI3JqWnHG Oog6NQJkD9bXsHWTVwrgvG2xbdZIU1mvY9DGtn3k8g/EcBddI6Eu4598X/EZTg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRH73d1zf3t; Fri, 18 Apr 2025 14:37:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbVwO092435; Fri, 18 Apr 2025 14:37:31 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbV8V092432; Fri, 18 Apr 2025 14:37:31 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:31 GMT Message-Id: <202504181437.53IEbV8V092432@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: 42be6050cec7 - stable/14 - iwlwififw: remove Intel iwlwifi firmware from src.git List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 42be6050cec78ed6abf2e4845f4b9e525d5c2403 Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=42be6050cec78ed6abf2e4845f4b9e525d5c2403 commit 42be6050cec78ed6abf2e4845f4b9e525d5c2403 Author: Bjoern A. Zeeb AuthorDate: 2025-04-08 16:57:14 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:03 +0000 iwlwififw: remove Intel iwlwifi firmware from src.git Following the example of rtw88 and rtw89 only ship iwlwifi firmware from ports/packages. Users are asked to run fwget(8) to install the firmware needed for their system or build it from ports (see also UPDATING). This is the end of a long story adding wireless support to fwget(8), migrating the firmware for multiple branches into ports, splitting them up into flavors, and updating some install media and the installer to provide firmware. The overall amount for new firmware amongst all drivers would have added more than 100M of binary blobs to src.git for the first import, ignoring future updates which (along with some duplication between multiple drivers) was considered too much. While maintenance within the src tree certainly would have been easier in the longer term this seems to be the better solution and I would like to thank everyone who helped along the path to get there. The iwlwififw.4 man page is to stay (for now) and will likely point at the appropriate firmware package flavor in the future as well so people may find it easier to transition. In the long term this information is likely not needed anymore. Sponsored by: The FreeBSD Foundation Requested by: core (Oct 2022) Reviewed by: thj, jrm (earlier) Differential Revision: https://reviews.freebsd.org/D49713 (cherry picked from commit 558d638896239f9cd25b9d825ecfce62ec54681e) (cherry picked from commit 918783b75aacb051f2f83dd0198ef68bc9fa5326) --- ObsoleteFiles.inc | 3 + UPDATING | 6 + share/doc/legal/Makefile | 1 - share/doc/legal/intel_iwlwififw/Makefile | 6 - sys/contrib/dev/iwlwififw/LICENCE.iwlwifi_firmware | 39 -- sys/contrib/dev/iwlwififw/WHENCE | 483 --------------------- sys/contrib/dev/iwlwififw/iwlwifi-3160-17.ucode | Bin 918268 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-3168-29.ucode | Bin 1036288 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-7260-17.ucode | Bin 1049340 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-7265-17.ucode | Bin 1180412 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-7265D-29.ucode | Bin 1036772 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-8000C-36.ucode | Bin 2428004 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-8265-36.ucode | Bin 2436632 -> 0 bytes .../iwlwififw/iwlwifi-9000-pu-b0-jf-b0-46.ucode | Bin 1518772 -> 0 bytes .../iwlwififw/iwlwifi-9260-th-b0-jf-b0-46.ucode | Bin 1489652 -> 0 bytes .../dev/iwlwififw/iwlwifi-Qu-b0-hr-b0-77.ucode | Bin 1404704 -> 0 bytes .../dev/iwlwififw/iwlwifi-Qu-b0-jf-b0-77.ucode | Bin 1322436 -> 0 bytes .../dev/iwlwififw/iwlwifi-Qu-c0-hr-b0-77.ucode | Bin 1404720 -> 0 bytes .../dev/iwlwififw/iwlwifi-Qu-c0-jf-b0-77.ucode | Bin 1322452 -> 0 bytes .../dev/iwlwififw/iwlwifi-QuZ-a0-hr-b0-77.ucode | Bin 1404840 -> 0 bytes .../dev/iwlwififw/iwlwifi-QuZ-a0-jf-b0-77.ucode | Bin 1321956 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-cc-a0-77.ucode | Bin 1366144 -> 0 bytes .../dev/iwlwififw/iwlwifi-gl-c0-fm-c0-83.ucode | Bin 1799504 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0.pnvm | Bin 226668 -> 0 bytes .../dev/iwlwififw/iwlwifi-so-a0-gf-a0-83.ucode | Bin 1739988 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0.pnvm | Bin 55580 -> 0 bytes .../dev/iwlwififw/iwlwifi-so-a0-gf4-a0-83.ucode | Bin 1703968 -> 0 bytes .../dev/iwlwififw/iwlwifi-so-a0-gf4-a0.pnvm | Bin 28064 -> 0 bytes .../dev/iwlwififw/iwlwifi-so-a0-hr-b0-81.ucode | Bin 1539288 -> 0 bytes .../dev/iwlwififw/iwlwifi-so-a0-jf-b0-77.ucode | Bin 1446036 -> 0 bytes .../dev/iwlwififw/iwlwifi-ty-a0-gf-a0-83.ucode | Bin 1683076 -> 0 bytes sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0.pnvm | Bin 55484 -> 0 bytes sys/modules/Makefile | 4 - sys/modules/iwlwififw/Makefile | 31 -- sys/modules/iwlwififw/Makefile.inc | 19 - sys/modules/iwlwififw/iwlwifi-3160-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-3168-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-7260-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-7265-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-7265D-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-8000C-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-8265-fw/Makefile | 5 - .../iwlwififw/iwlwifi-9000-pu-b0-jf-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-9260-th-b0-jf-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-Qu-b0-hr-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-Qu-b0-jf-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-Qu-c0-hr-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-Qu-c0-jf-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-QuZ-a0-hr-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-QuZ-a0-jf-b0-fw/Makefile | 5 - sys/modules/iwlwififw/iwlwifi-cc-a0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-gl-c0-fm-c0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-gl-c0-fm-c0-pnvm/Makefile | 7 - .../iwlwififw/iwlwifi-so-a0-gf-a0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-so-a0-gf-a0-pnvm/Makefile | 7 - .../iwlwififw/iwlwifi-so-a0-gf4-a0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-so-a0-gf4-a0-pnvm/Makefile | 7 - .../iwlwififw/iwlwifi-so-a0-hr-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-so-a0-jf-b0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-ty-a0-gf-a0-fw/Makefile | 5 - .../iwlwififw/iwlwifi-ty-a0-gf-a0-pnvm/Makefile | 7 - 61 files changed, 9 insertions(+), 721 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 1ca9432d91d6..c608c15d32a3 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20250419: removal of iwlwifi firmware files +OLD_FILES+=usr/share/doc/legal/intel_iwlwifi_firmware.LICENCE + # 20250310: caroot bundle updated OLD_FILES+=usr/share/certs/trusted/Entrust_Root_Certification_Authority_-_G4.pem OLD_FILES+=usr/share/certs/trusted/SecureSign_RootCA11.pem diff --git a/UPDATING b/UPDATING index 65c8b793a1ae..2e5dc88a49c4 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,12 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20250419: + Intel iwlwifi firmware has been removed from the src repository. + Before updating their system, users of iwlwifi(4) or iwx(4) must + install the appropriate firmware for their chipset using fwget(8) or + building it from ports. + 20250403: Commit 8aedc83c1cc2 ("New setcred() system call and associated MAC hooks") introduces new MAC hooks for the new setcred() system call, diff --git a/share/doc/legal/Makefile b/share/doc/legal/Makefile index 3a17e2f614e5..2030a2668900 100644 --- a/share/doc/legal/Makefile +++ b/share/doc/legal/Makefile @@ -1,7 +1,6 @@ SUBDIR= intel_ipw \ intel_iwi \ - intel_iwlwififw \ intel_iwn \ intel_wpi \ realtek \ diff --git a/share/doc/legal/intel_iwlwififw/Makefile b/share/doc/legal/intel_iwlwififw/Makefile deleted file mode 100644 index 631d34654341..000000000000 --- a/share/doc/legal/intel_iwlwififw/Makefile +++ /dev/null @@ -1,6 +0,0 @@ - -FILES= ${SRCTOP}/sys/contrib/dev/iwlwififw/LICENCE.iwlwifi_firmware -FILESDIR= ${SHAREDIR}/doc/legal -FILESNAME= intel_iwlwifi_firmware.LICENCE - -.include diff --git a/sys/contrib/dev/iwlwififw/LICENCE.iwlwifi_firmware b/sys/contrib/dev/iwlwififw/LICENCE.iwlwifi_firmware deleted file mode 100644 index 6bdd16d922b4..000000000000 --- a/sys/contrib/dev/iwlwififw/LICENCE.iwlwifi_firmware +++ /dev/null @@ -1,39 +0,0 @@ -Copyright (c) 2006-2021, Intel Corporation. -All rights reserved. - -Redistribution. Redistribution and use in binary form, without -modification, are permitted provided that the following conditions are -met: - -* Redistributions must reproduce the above copyright notice and the - following disclaimer in the documentation and/or other materials - provided with the distribution. -* Neither the name of Intel Corporation nor the names of its suppliers - may be used to endorse or promote products derived from this software - without specific prior written permission. -* No reverse engineering, decompilation, or disassembly of this software - is permitted. - -Limited patent license. Intel Corporation grants a world-wide, -royalty-free, non-exclusive license under patents it now or hereafter -owns or controls to make, have made, use, import, offer to sell and -sell ("Utilize") this software, but solely to the extent that any -such patent is necessary to Utilize the software alone, or in -combination with an operating system licensed under an approved Open -Source license as listed by the Open Source Initiative at -http://opensource.org/licenses. The patent license shall not apply to -any other combinations which include this software. No hardware per -se is licensed hereunder. - -DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER 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. diff --git a/sys/contrib/dev/iwlwififw/WHENCE b/sys/contrib/dev/iwlwififw/WHENCE deleted file mode 100644 index ef6fbe552049..000000000000 --- a/sys/contrib/dev/iwlwififw/WHENCE +++ /dev/null @@ -1,483 +0,0 @@ -Driver: iwlwifi - Intel Wireless Wifi - -File: iwlwifi-3945-2.ucode -Version: 15.32.2.9 - -File: iwlwifi-4965-2.ucode -Version: 228.61.2.24 - -File: iwlwifi-5000-1.ucode -Version: 5.4.A.11 (aka 5.4.1.16) - -File: iwlwifi-5000-2.ucode -Version: 8.24.2.12 - -File: iwlwifi-5000-5.ucode -Version: 8.83.5.1 - -File: iwlwifi-5150-2.ucode -Version: 8.24.2.2 - -File: iwlwifi-1000-3.ucode -Version: 128.50.3.1 - -File: iwlwifi-1000-5.ucode -Version: 39.31.5.1 - -File: iwlwifi-6000-4.ucode -Version: 9.221.4.1 - -File: iwlwifi-6050-4.ucode -Version: 9.201.4.1 - -File: iwlwifi-6050-5.ucode -Version: 41.28.5.1 - -File: iwlwifi-6000g2a-5.ucode -Version: 17.168.5.3 - -File: iwlwifi-6000g2a-6.ucode -Version: 18.168.6.1 - -File: iwlwifi-6000g2b-5.ucode -Version: 17.168.5.1 - -File: iwlwifi-6000g2b-6.ucode -Version: 18.168.6.1 - -File: iwlwifi-135-6.ucode -Version: 18.168.6.1 - -File: iwlwifi-100-5.ucode -Version: 39.31.5.1 - -File: iwlwifi-105-6.ucode -Version: 18.168.6.1 - -File: iwlwifi-2030-6.ucode -Version: 18.168.6.1 - -File: iwlwifi-2000-6.ucode -Version: 18.168.6.1 - -File: iwlwifi-7260-17.ucode -Version: 17.bfb58538.0 - -File: iwlwifi-3160-17.ucode -Version: 17.bfb58538.0 - -File: iwlwifi-7265-17.ucode -Version: 17.bfb58538.0 - -File: iwlwifi-7265D-22.ucode -Version: 22.391740.0 - -File: iwlwifi-7265D-27.ucode -Version: 27.541033.0 - -File: iwlwifi-7265D-29.ucode -Version: 29.f2390aa8.0 - -File: iwlwifi-3168-22.ucode -Version: 22.391740.0 - -File: iwlwifi-3168-27.ucode -Version: 27.541033.0 - -File: iwlwifi-3168-29.ucode -Version: 29.0bd893f3.0 - -File: iwlwifi-8000C-22.ucode -Version: 22.391740.0 - -File: iwlwifi-8000C-27.ucode -Version: 27.541033.0 - -File: iwlwifi-8000C-31.ucode -Version: 31.560484.0 - -File: iwlwifi-8000C-34.ucode -Version: 34.610288.0 - -File: iwlwifi-8000C-36.ucode -Version: 36.ca7b901d.0 - -File: iwlwifi-8265-22.ucode -Version: 22.391740.0 - -File: iwlwifi-8265-27.ucode -Version: 27.541033.0 - -File: iwlwifi-8265-31.ucode -Version: 31.560484.0 - -File: iwlwifi-8265-34.ucode -Version: 34.610288.0 - -File: iwlwifi-8265-36.ucode -Version: 36.ca7b901d.0 - -File: iwlwifi-9000-pu-b0-jf-b0-33.ucode -Version: 33.610294.0 - -File: iwlwifi-9000-pu-b0-jf-b0-34.ucode -Version: 34.ba501b11.0 - -File: iwlwifi-9000-pu-b0-jf-b0-38.ucode -Version: 38.755cfdd8.0 - -File: iwlwifi-9000-pu-b0-jf-b0-41.ucode -Version: 41.fc1a7aea.0 - -File: iwlwifi-9000-pu-b0-jf-b0-43.ucode -Version: 43.95eb4e97.0 - -File: iwlwifi-9000-pu-b0-jf-b0-46.ucode -Version: 46.9d0122c0.0 - -File: iwlwifi-9260-th-b0-jf-b0-33.ucode -Version: 33.610294.0 - -File: iwlwifi-9260-th-b0-jf-b0-34.ucode -Version: 34.ba501b11.0 - -File: iwlwifi-9260-th-b0-jf-b0-38.ucode -Version: 38.755cfdd8.0 - -File: iwlwifi-9260-th-b0-jf-b0-41.ucode -Version: 41.fc1a7aea.0 - -File: iwlwifi-9260-th-b0-jf-b0-43.ucode -Version: 43.95eb4e97.0 - -File: iwlwifi-9260-th-b0-jf-b0-46.ucode -Version: 46.9d0122c0.0 - -File: iwlwifi-cc-a0-46.ucode -Version: 46.3cfab8da.0 - -File: iwlwifi-cc-a0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-Qu-b0-hr-b0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-Qu-b0-jf-b0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-Qu-c0-hr-b0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-Qu-c0-jf-b0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-QuZ-a0-hr-b0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-QuZ-a0-jf-b0-48.ucode -Version: 48.4fa0041f.0 - -File: iwlwifi-cc-a0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-Qu-b0-hr-b0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-Qu-b0-jf-b0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-Qu-c0-hr-b0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-Qu-c0-jf-b0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-QuZ-a0-hr-b0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-QuZ-a0-jf-b0-50.ucode -Version: 50.3e391d3e.0 - -File: iwlwifi-cc-a0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-Qu-b0-hr-b0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-Qu-b0-jf-b0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-Qu-c0-hr-b0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-Qu-c0-jf-b0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-QuZ-a0-hr-b0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-QuZ-a0-jf-b0-53.ucode -Version: 53.c31ac674.0 - -File: iwlwifi-cc-a0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-Qu-b0-hr-b0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-Qu-b0-jf-b0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-Qu-c0-hr-b0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-Qu-c0-jf-b0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-QuZ-a0-hr-b0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-QuZ-a0-jf-b0-55.ucode -Version: 55.d9698065.0 - -File: iwlwifi-cc-a0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-Qu-b0-hr-b0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-Qu-b0-jf-b0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-Qu-c0-hr-b0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-Qu-c0-jf-b0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-QuZ-a0-hr-b0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-QuZ-a0-jf-b0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-so-a0-gf-a0-64.ucode -Version: 64.97bbee0a.0 - -File: iwlwifi-so-a0-gf-a0-67.ucode -Version: 67.8f59b80b.0 - -File: iwlwifi-so-a0-gf4-a0-67.ucode -Version: 67.8f59b80b.0 - -File: iwlwifi-so-a0-gf-a0.pnvm - -File: iwlwifi-so-a0-gf4-a0.pnvm - -File: iwlwifi-so-a0-hr-b0-64.ucode -Version: 64.97bbee0a.0 - -File: iwlwifi-so-a0-jf-b0-64.ucode -Version: 64.97bbee0a.0 - -File: iwlwifi-ty-a0-gf-a0-59.ucode -Version: 59.601f3a66.0 - -File: iwlwifi-cc-a0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-Qu-b0-hr-b0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-Qu-b0-jf-b0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-Qu-c0-hr-b0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-Qu-c0-jf-b0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-QuZ-a0-hr-b0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-QuZ-a0-jf-b0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-ty-a0-gf-a0-62.ucode -Version: 62.49eeb572.0 - -File: iwlwifi-cc-a0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-cc-a0-67.ucode -Version: 67.8f59b80b.0 - -File: iwlwifi-Qu-b0-hr-b0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-Qu-b0-jf-b0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-Qu-c0-hr-b0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-Qu-c0-jf-b0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-QuZ-a0-hr-b0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-QuZ-a0-hr-b0-67.ucode -Version: 67.8f59b80b.0 - -File: iwlwifi-QuZ-a0-jf-b0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-ty-a0-gf-a0-63.ucode -Version: 63.c04f3485.0 - -File: iwlwifi-cc-a0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-Qu-b0-hr-b0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-Qu-b0-jf-b0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-Qu-c0-hr-b0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-Qu-c0-jf-b0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-QuZ-a0-hr-b0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-QuZ-a0-jf-b0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-ty-a0-gf-a0-66.ucode -Version: 66.f1c864e0.0 - -File: iwlwifi-ty-a0-gf-a0-67.ucode -Version: 67.8f59b80b.0 - -File: iwlwifi-cc-a0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-Qu-b0-hr-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-Qu-b0-jf-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-Qu-c0-hr-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-Qu-c0-jf-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-QuZ-a0-hr-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-QuZ-a0-jf-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-ty-a0-gf-a0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-so-a0-gf4-a0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-so-a0-gf-a0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-so-a0-hr-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-so-a0-jf-b0-68.ucode -Version: 68.01d30b0c.0 - -File: iwlwifi-cc-a0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-Qu-b0-hr-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-Qu-b0-jf-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-Qu-c0-hr-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-Qu-c0-jf-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-QuZ-a0-hr-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-QuZ-a0-jf-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-ty-a0-gf-a0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-so-a0-gf4-a0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-so-a0-gf-a0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-so-a0-hr-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-so-a0-jf-b0-71.ucode -Version: 71.058653f6.0 - -File: iwlwifi-cc-a0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-Qu-b0-hr-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-Qu-b0-jf-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-Qu-c0-hr-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-Qu-c0-jf-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-QuZ-a0-hr-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-QuZ-a0-jf-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-ty-a0-gf-a0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-so-a0-gf4-a0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-so-a0-gf-a0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-so-a0-hr-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-so-a0-jf-b0-73.ucode -Version: 73.35c0a2c6.0 - -File: iwlwifi-so-a0-gf-a0.pnvm - -File: iwlwifi-so-a0-gf4-a0.pnvm - -File: iwlwifi-ty-a0-gf-a0.pnvm - -Licence: Redistributable. See LICENCE.iwlwifi_firmware for details - -Also available from http://wireless.kernel.org/en/users/Drivers/iwlwifi#Firmware diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-3160-17.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-3160-17.ucode deleted file mode 100644 index 95b26df9d56d..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-3160-17.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-3168-29.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-3168-29.ucode deleted file mode 100644 index 1759561ec203..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-3168-29.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-7260-17.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-7260-17.ucode deleted file mode 100644 index b1a87d52cdd1..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-7260-17.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-7265-17.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-7265-17.ucode deleted file mode 100644 index f4a549cce6ed..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-7265-17.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-7265D-29.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-7265D-29.ucode deleted file mode 100644 index 7c513f669790..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-7265D-29.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-8000C-36.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-8000C-36.ucode deleted file mode 100644 index e4988f6b421e..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-8000C-36.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-8265-36.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-8265-36.ucode deleted file mode 100644 index 60fda3b7d45b..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-8265-36.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-9000-pu-b0-jf-b0-46.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-9000-pu-b0-jf-b0-46.ucode deleted file mode 100644 index 9af424f1ce06..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-9000-pu-b0-jf-b0-46.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-9260-th-b0-jf-b0-46.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-9260-th-b0-jf-b0-46.ucode deleted file mode 100644 index 4c2b25e585cb..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-9260-th-b0-jf-b0-46.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-b0-hr-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-Qu-b0-hr-b0-77.ucode deleted file mode 100644 index de6cd8b98985..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-b0-hr-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-b0-jf-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-Qu-b0-jf-b0-77.ucode deleted file mode 100644 index ad87490d470b..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-b0-jf-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-c0-hr-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-Qu-c0-hr-b0-77.ucode deleted file mode 100644 index 37e1c7af3f16..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-c0-hr-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-c0-jf-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-Qu-c0-jf-b0-77.ucode deleted file mode 100644 index bd0b2b249894..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-Qu-c0-jf-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-QuZ-a0-hr-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-QuZ-a0-hr-b0-77.ucode deleted file mode 100644 index 256997390af6..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-QuZ-a0-hr-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-QuZ-a0-jf-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-QuZ-a0-jf-b0-77.ucode deleted file mode 100644 index 7c2a06a2dd2e..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-QuZ-a0-jf-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-cc-a0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-cc-a0-77.ucode deleted file mode 100644 index d138e34af24d..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-cc-a0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0-83.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0-83.ucode deleted file mode 100644 index a1444bab2622..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0-83.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0.pnvm b/sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0.pnvm deleted file mode 100644 index 3cdb0b522b22..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-gl-c0-fm-c0.pnvm and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0-83.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0-83.ucode deleted file mode 100644 index dbb15f487716..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0-83.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0.pnvm b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0.pnvm deleted file mode 100644 index 9dad35a1f5f5..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0.pnvm and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf4-a0-83.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf4-a0-83.ucode deleted file mode 100644 index 1bc07d83ac07..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf4-a0-83.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf4-a0.pnvm b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf4-a0.pnvm deleted file mode 100644 index 86b9a7c63776..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf4-a0.pnvm and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-hr-b0-81.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-hr-b0-81.ucode deleted file mode 100644 index fc8558c6cc90..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-hr-b0-81.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-jf-b0-77.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-jf-b0-77.ucode deleted file mode 100644 index 3649a1c89238..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-jf-b0-77.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0-83.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0-83.ucode deleted file mode 100644 index 3fdd6d5a0d9a..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0-83.ucode and /dev/null differ diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0.pnvm b/sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0.pnvm deleted file mode 100644 index 68b8668df93d..000000000000 Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-ty-a0-gf-a0.pnvm and /dev/null differ diff --git a/sys/modules/Makefile b/sys/modules/Makefile index c7015c61c705..1db14cfa647d 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -194,7 +194,6 @@ SUBDIR= \ ${_iwi} \ ${_iwifw} \ ${_iwlwifi} \ - ${_iwlwififw} \ ${_iwm} \ ${_iwmfw} \ ${_iwn} \ @@ -567,9 +566,6 @@ _mlx5ib= mlx5ib _ena= ena _gve= gve _iwlwifi= iwlwifi -.if ${MK_SOURCELESS_UCODE} != "no" -_iwlwififw= iwlwififw -.endif _rtw88= rtw88 .if ${MK_SOURCELESS_UCODE} != "no" _rtw88fw= rtw88fw diff --git a/sys/modules/iwlwififw/Makefile b/sys/modules/iwlwififw/Makefile deleted file mode 100644 index 756fb2f73af7..000000000000 --- a/sys/modules/iwlwififw/Makefile +++ /dev/null @@ -1,31 +0,0 @@ - -SUBDIR= \ - iwlwifi-3160-fw \ - iwlwifi-3168-fw \ - iwlwifi-7260-fw \ - iwlwifi-7265-fw \ - iwlwifi-7265D-fw \ - iwlwifi-8000C-fw \ - iwlwifi-8265-fw \ - iwlwifi-9000-pu-b0-jf-b0-fw \ - iwlwifi-9260-th-b0-jf-b0-fw \ - iwlwifi-Qu-b0-hr-b0-fw \ - iwlwifi-Qu-b0-jf-b0-fw \ - iwlwifi-Qu-c0-hr-b0-fw \ - iwlwifi-Qu-c0-jf-b0-fw \ - iwlwifi-QuZ-a0-hr-b0-fw \ - iwlwifi-QuZ-a0-jf-b0-fw \ - iwlwifi-cc-a0-fw \ - iwlwifi-gl-c0-fm-c0-fw \ - iwlwifi-gl-c0-fm-c0-pnvm \ - iwlwifi-so-a0-gf-a0-fw \ - iwlwifi-so-a0-gf4-a0-fw \ - iwlwifi-so-a0-hr-b0-fw \ - iwlwifi-so-a0-jf-b0-fw \ - iwlwifi-ty-a0-gf-a0-fw \ - iwlwifi-so-a0-gf-a0-pnvm \ - iwlwifi-so-a0-gf4-a0-pnvm \ - iwlwifi-ty-a0-gf-a0-pnvm - - -.include diff --git a/sys/modules/iwlwififw/Makefile.inc b/sys/modules/iwlwififw/Makefile.inc deleted file mode 100644 index ea3e88783809..000000000000 --- a/sys/modules/iwlwififw/Makefile.inc +++ /dev/null @@ -1,19 +0,0 @@ - -# Common rules for building iwlwifi firmware. - -EXT?= ucode -_NAME?= iwlwifi-${NAME}-${FWVERSION}.${EXT} - -IMG= ${_NAME} -KMOD= ${_NAME} - -CLEANFILES+= ${IMG} - -FIRMWS= ${IMG}:${IMG}:${FWVERSION} - -# License ack is not needed for iwlwifi (same as iwn/iwm). -#FIRMWARE_LICENSE= - -${IMG}: ${SRCTOP}/sys/contrib/dev/iwlwififw/${IMG} - cp ${.ALLSRC} ${.TARGET} - diff --git a/sys/modules/iwlwififw/iwlwifi-3160-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-3160-fw/Makefile deleted file mode 100644 index 69d537c89754..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-3160-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 17 -NAME= 3160 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-3168-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-3168-fw/Makefile deleted file mode 100644 index 2e98c2148a79..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-3168-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 29 -NAME= 3168 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-7260-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-7260-fw/Makefile deleted file mode 100644 index befd607a269e..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-7260-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 17 -NAME= 7260 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-7265-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-7265-fw/Makefile deleted file mode 100644 index 42d7c508dd1b..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-7265-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 17 -NAME= 7265 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-7265D-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-7265D-fw/Makefile deleted file mode 100644 index 37af2799e1eb..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-7265D-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 29 -NAME= 7265D - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-8000C-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-8000C-fw/Makefile deleted file mode 100644 index 0b3efe221d08..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-8000C-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 36 -NAME= 8000C - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-8265-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-8265-fw/Makefile deleted file mode 100644 index 5f238c8aa619..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-8265-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 36 -NAME= 8265 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-9000-pu-b0-jf-b0-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-9000-pu-b0-jf-b0-fw/Makefile deleted file mode 100644 index 03b5d5d142d2..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-9000-pu-b0-jf-b0-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 46 -NAME= 9000-pu-b0-jf-b0 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-9260-th-b0-jf-b0-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-9260-th-b0-jf-b0-fw/Makefile deleted file mode 100644 index 37ae25a4a836..000000000000 --- a/sys/modules/iwlwififw/iwlwifi-9260-th-b0-jf-b0-fw/Makefile +++ /dev/null @@ -1,5 +0,0 @@ - -FWVERSION= 46 -NAME= 9260-th-b0-jf-b0 - -.include diff --git a/sys/modules/iwlwififw/iwlwifi-Qu-b0-hr-b0-fw/Makefile b/sys/modules/iwlwififw/iwlwifi-Qu-b0-hr-b0-fw/Makefile deleted file mode 100644 index e781e790a048..000000000000 *** 192 LINES SKIPPED *** From nobody Fri Apr 18 14:37:32 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZfHRK4Kxtz5stnd; Fri, 18 Apr 2025 14:37:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZfHRK1494z3L9r; Fri, 18 Apr 2025 14:37:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ahpI70erEiyrXqjjYsrYWry8y/Kodi03ItscdDc+f34=; b=KseRTeCKUxAkv6jdaiJeiQ4DvDXk39H61f/PAY9gD63fDd/o87797BPDjjxpIpTLVSO/qp AFYbP5Ea3lfLTRJH+7kksJBdOi6n5K6jwgpcdf3xwGN/UoEUDxu6n74BqbmrukYnivIGYK fpbb7EHldoQbw3/WX7/ODFg+F/TTag2zChKfF/iKL+OlxWqGLL08rUjBKuX29NZZd+H/pn 8XZ2yAWLbjJafhyiJ3rIB4fbXGc2KfYGM19hC/oYY2+5tEa9yMxJOLUx/EfLDLo40s+GS4 I3pr3rbBGvxu3J30HWEusdyRiF/k+HhziVEYsBw9r8cDYf6sbjQU5Bc9zzENmg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744987053; a=rsa-sha256; cv=none; b=T27elyDUvs4cMTbMFVBQBvLVnYTHUPDPVs41r4cU3MYMgwSXp8+PjuDRn6N2UclhBDCDtP C4SOqT6UbbEMRGv/aYgv8i0PZLzTVhBwQJ/MlUsBeqKjgHRakWBgxLAtIhfb8I1NCZDDYy q5ta3sTwEZs2UUlGNNFcWhFAOBfqsbMsoJtnD7kg8BNt87Vz4fGiZoLtYKLtGvh4hCXYB1 kalqxIm1etD/b4cOEQz/2X7l5m2bul03KYrXGZ0mkCLVvZEoM2fQWJTJI//NnVlMl6t0QZ Mnx3IVznXyHc7BJWc4NYY8kICJHg9qKW4QRuPlJeuoSlpKZpVagHzz3ONYtORw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744987053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ahpI70erEiyrXqjjYsrYWry8y/Kodi03ItscdDc+f34=; b=sMSzOf3ar3kno/rjV0ZVLb2SnbCmHzqrhjmO7/dUfkpUh8TOR22rVyGmhHj7Z/bRTJC8PL Dhn63DWN3gUyRm7xypqH5jzHwzUC72Q/+XQyUuJHPtCUe8ye5aLozNfYksOBHWUJw0yjfJ xrLnYzyyqisVFPA83CWnOCWCQVbk5ZVImmvF75Iued3p6fKrlmN4keIY3JzXRwNj2np6CR S4Pj2Wx7NiCgH2Hh7n30M0PQnGpewbzdJcAc4FpwMVefxMJ+N8a4xWqkZi9kICjWBPuzw3 +odRDyXmJC19clqqEg8nHydlIugpFQbmMPsSdu8sQLPt37GXXLPctyQfkfQOXA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZfHRK0bdVzfF4; Fri, 18 Apr 2025 14:37:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53IEbWgW092472; Fri, 18 Apr 2025 14:37:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53IEbWTk092469; Fri, 18 Apr 2025 14:37:32 GMT (envelope-from git) Date: Fri, 18 Apr 2025 14:37:32 GMT Message-Id: <202504181437.53IEbWTk092469@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: "Bjoern A. Zeeb" Subject: git: a3b2d8e360c3 - stable/14 - Bump __FreeBSD_version to 1402505 for LinuxKPI alloc routine changes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bz X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a3b2d8e360c37853035f9cede6064c4602312bfc Auto-Submitted: auto-generated The branch stable/14 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=a3b2d8e360c37853035f9cede6064c4602312bfc commit a3b2d8e360c37853035f9cede6064c4602312bfc Author: Bjoern A. Zeeb AuthorDate: 2025-04-12 20:47:09 +0000 Commit: Bjoern A. Zeeb CommitDate: 2025-04-18 14:36:03 +0000 Bump __FreeBSD_version to 1402505 for LinuxKPI alloc routine changes Also for iwlwifi firmware removal. Sponsored by: The FreeBSD Foundation (cherry picked from commit 7acd5af48cf1870ec48d5910dff1a26466d98074) --- UPDATING | 6 ++++++ sys/sys/param.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 2e5dc88a49c4..65fb2f8b8c4a 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,12 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20250419: + LinuxKPI alloc routines were changed to return physically contiguous + memory where expected. These changes may require out-of-tree drivers + to be recompiled. + Bump __FreeBSD_version to 1402505 to be able to detect this change. + 20250419: Intel iwlwifi firmware has been removed from the src repository. Before updating their system, users of iwlwifi(4) or iwx(4) must diff --git a/sys/sys/param.h b/sys/sys/param.h index 12a0e2098fec..954e18cb48cf 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 1402504 +#define __FreeBSD_version 1402505 /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From nobody Sat Apr 19 05:10:38 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zffpl0qvTz5smB5; Sat, 19 Apr 2025 05: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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zffpk6VNRz3T95; Sat, 19 Apr 2025 05:10:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745039438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jrgd+1ym71O74z+aUw4J6YVlD+iMIkrtcK765gJIVE4=; b=eK2Vx+hWkvOL2ejEu8hXnh8zrSRIiXypuJMWYLxocvXErqD+u3BIXSlGtAflJOV4vaQCbq lcH7lUxU9S07hOKjRgVCXvj20CsctEiOJdMTcO7eFxPMXTV/NtJaHe8ijKK6d8rONtv46i Llx0NS5b0J5RjVvQZq3bfnwu5xuSlCUfYQFTI6FvkStcEsTvEnEc8twZzJ814barte1Ofe gw4DQraJD4sg3BrVgNrHDnhwaXIn5MBdR1SjHdIdyYS9+P6oAc05uaCiigqVMIdbaLEjsQ koRRwzG8T0LeoQbjiiYWXwps6aLwhXHrrVRD3L0zJkqdHy//s4w637HziqBkGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745039438; a=rsa-sha256; cv=none; b=obrn/rR/KbhkZ2dWgZMQh6nsRTOQgF7sGnBpq1RgzLcT4h5Pz4iZ1COjn4XJUjsEhnlcNe x1YVOr5wr6yKgo2OTq26sSXjuwRMvhGtPLzjDz9uKFxmUS1e88Dxv/LwI6Th1+ajuyPor9 CCmVe8jh22X086tEdc+2GSbjUTaJtTpqp21LSdGuE/og04my49VU+VnHR5qScu335kGFbw +y9g1NiXo4w3IiNidbZnO5jlVwR9peJthgAh3LsghIlz/D7Cq1Thgdbz1JmwHOQ2VecZ4d Svr18J+srPpsB1gVrbsOJ9kO3DidivD1u6pY9bLBDm4wzpp0tLaZ96fMi3Fe+Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745039438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jrgd+1ym71O74z+aUw4J6YVlD+iMIkrtcK765gJIVE4=; b=bPjda1MOnCbVPOFvBIZdvfzK8roEt0OjoBtHWomx7UVQaw2vCt7VEBKu58KxlQ3c0lX9UH TXR/n+gxF65rx8IeE4GoWiIkLai6mMJcRWrsd28Eqtkn2cFw2gUFXu/T+eTRkascemSnrO YJO5PynBPddUTYQyzxyZV9hFh5eP/R7DtTUEuvuSzfoxblplxVVFzamheZ38RGEm7r12bv x8vVJ72bNB4/t67ND5gnS2KHdQ3NjIMAtf9fWmiiM2W62gkSdGJ4cNzQBVHyK69KnkgHLX 8Lwdm+qalkPt4Rf0VKhuMbDA1C6CEugFvkkAMZnFd7qpQ7BAa1ZdVBxoh9+pWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zffpk5SlDz14v5; Sat, 19 Apr 2025 05:10:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53J5AcN0031250; Sat, 19 Apr 2025 05:10:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53J5Ac4I031247; Sat, 19 Apr 2025 05:10:38 GMT (envelope-from git) Date: Sat, 19 Apr 2025 05:10:38 GMT Message-Id: <202504190510.53J5Ac4I031247@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: ee7a874557f4 - stable/14 - 14.3: Update stable/14 to -PRERELEASE List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ee7a874557f46e8a16b37e3fcaae3a9937ac7850 Auto-Submitted: auto-generated The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=ee7a874557f46e8a16b37e3fcaae3a9937ac7850 commit ee7a874557f46e8a16b37e3fcaae3a9937ac7850 Author: Colin Percival AuthorDate: 2025-04-19 05:09:46 +0000 Commit: Colin Percival CommitDate: 2025-04-19 05:09:46 +0000 14.3: Update stable/14 to -PRERELEASE This marks the start of the FreeBSD 14.3 release cycle; the stable/14 tree is now in "code slush". Developers are encouraged to prioritize fixing bugs (and/or merging bug fixes from HEAD) over new features at this time. Commit approval from re@ is not required but if new features introduce problems they may be removed from the release. Approved by: re (implicit) Sponsored by: Amazon --- sys/conf/newvers.sh | 4 ++-- usr.bin/yacc/config.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index 3ff993bdd2ab..b7feacb90152 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -52,8 +52,8 @@ # TYPE="FreeBSD" -REVISION="14.2" -BRANCH="STABLE" +REVISION="14.3" +BRANCH="PRERELEASE" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi diff --git a/usr.bin/yacc/config.h b/usr.bin/yacc/config.h index 04ead1f045c9..b9cc6d4df057 100644 --- a/usr.bin/yacc/config.h +++ b/usr.bin/yacc/config.h @@ -92,7 +92,7 @@ /* #undef STDC_NORETURN */ /* Define to the system name. */ -#define SYSTEM_NAME "freebsd14.2" +#define SYSTEM_NAME "freebsd14.3" /* "Define to 1 if you want to use dbmalloc for testing." */ /* #undef USE_DBMALLOC */ From nobody Sun Apr 20 00:44:58 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zg8sk6JXtz5tjZ7; Sun, 20 Apr 2025 00:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zg8sk4tDPz43D9; Sun, 20 Apr 2025 00:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745109898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Sl5JwcW6miF5GegqGWK3pfKWGxTv8gc4d7KnD1uzvf4=; b=ffoHOV/dtAEnwgwbUaj0frKHiXTJiqKJ9qzgZmgrYyEpuuImzme7c3mEMlAmSoa6bCnlpZ FS8Fc8y9scQaRWtKJqlVE8lyNNWkNhEpadWnk4/2VhgUNCk1+kBGtsIs4KIx/PiaIl3vzY jFvjFTYMMFepeRUZdAmp0ynr6BcMNuz0dEtAGguUu2T5K2W0+GeCehAg668ae+oT84XHdR eSEiR6hA/14uFrcbqh9yOhUE+3VHuYRfUhK5h0XBRTr8Xopa+//SW/uv7G8X0pE/hSkvX8 hcCFSk7VtgfPI02cQqps+tiUYPaOQN+eTkz+rC9EMyClL1mQqkXLHTDXRjyWkw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745109898; a=rsa-sha256; cv=none; b=UmP/tMpXMYl1YnfqMr7j2nZbjqMCuFR4VWeqr90oR2IDtlYjx/gvRLTbzSBHrgMhQY6muY GYXj1CZQMms/N+pFmQ9jSi/eRJ8eQjQCee7u8b2QlknxjhuIAvlBAtVdZyVLCLsIK3MT1A h4o1tz/k9U/cy+7gEgovwUQOlgJ3Cm2Cj1nrI2IegNap/a2glbJDI3GVFVUeN/1zLGZ6Pk kV1JO5DWYg/ENax6uLxWum+7JfMSYV6SqDRq5P/nncM9szm5ks3O/yWasGGJ4l/PrTBOyv ogH0SEghxM7mCx0z3NfvWF3RT1sYhkj+LTatbXxVUAYjfdpY6d3srRX49k3QuA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745109898; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Sl5JwcW6miF5GegqGWK3pfKWGxTv8gc4d7KnD1uzvf4=; b=PmwYXwUGrRgATdEKCCYB1p6hBBsfkuIlfBBCZkWW7+3ssuUBskRd40sltoZzxiiHfUnJxW UCoZ+/J9p3Ju92gmY9cDNhzehH2JwSrJAGQz6dff4cfwT13HYDxJSzeZ0tk5pcLMbAjTuD ZrksoFfDAMr0YUEPT4aIdw/Gga5Hdl9aI+SE6bihbm0HK+rLTDptSFzXK1/QBcYED4X5T+ ePnGruku0np0YhlytI8RkbwpQrP5nWD6N44na1wtGSc8mquSG4T2ca9y1Et2g24i/qFVlQ tVKuXrVbJE2KYFYqRPdpHJXuXoOr5yiTUD/6WsfmwGD6dgFGZqD1UvHupa7YRw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zg8sk45WqzhTb; Sun, 20 Apr 2025 00:44:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53K0iwGN028257; Sun, 20 Apr 2025 00:44:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53K0iwb5028253; Sun, 20 Apr 2025 00:44:58 GMT (envelope-from git) Date: Sun, 20 Apr 2025 00:44:58 GMT Message-Id: <202504200044.53K0iwb5028253@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: a516440afdd3 - stable/14 - msdosfs manuals: Improve visibility and linking List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a516440afdd342fef9925680d890117d6d9024ed Auto-Submitted: auto-generated The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=a516440afdd342fef9925680d890117d6d9024ed commit a516440afdd342fef9925680d890117d6d9024ed Author: Alexander Ziaee AuthorDate: 2024-12-18 18:06:41 +0000 Commit: Alexander Ziaee CommitDate: 2025-04-20 00:44:27 +0000 msdosfs manuals: Improve visibility and linking + add `(FAT)` to all descriptions to enable `apropos fat` + xref all msdosfs(4) utilities in base to msdosfs(4) + xref msdosfs(4) to all msdosfs(4) utilities + remove unrelated fsck_ffs(8) from fsck_msdos(8) MFC after: 3 days Reviewed by: mhorne Approved by: mhorne (mentor) Pull Request: https://github.com/freebsd/freebsd-src/pull/1557 (cherry picked from commit 93f4377caba08e4a47fb9f1878bf609bd4181564) --- sbin/fsck_msdosfs/fsck_msdosfs.8 | 5 ++--- sbin/mount_msdosfs/mount_msdosfs.8 | 2 +- sbin/newfs_msdos/newfs_msdos.8 | 1 + share/man/man5/msdosfs.5 | 4 +++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sbin/fsck_msdosfs/fsck_msdosfs.8 b/sbin/fsck_msdosfs/fsck_msdosfs.8 index 963818ea8bd7..6f2d6516d0e2 100644 --- a/sbin/fsck_msdosfs/fsck_msdosfs.8 +++ b/sbin/fsck_msdosfs/fsck_msdosfs.8 @@ -121,9 +121,8 @@ to assume as the answer to all operator questions. .El .Sh SEE ALSO -.Xr fsck 8 , -.Xr fsck_ffs 8 , -.Xr mount_msdosfs 8 +.Xr msdosfs 4 , +.Xr fsck 8 .Sh HISTORY The .Nm diff --git a/sbin/mount_msdosfs/mount_msdosfs.8 b/sbin/mount_msdosfs/mount_msdosfs.8 index 94532cafb543..eb9bc9799614 100644 --- a/sbin/mount_msdosfs/mount_msdosfs.8 +++ b/sbin/mount_msdosfs/mount_msdosfs.8 @@ -33,7 +33,7 @@ .Os .Sh NAME .Nm mount_msdosfs -.Nd mount an MS-DOS file system +.Nd mount an MS-DOS (FAT) file system .Sh SYNOPSIS .Nm .Op Fl 9ls diff --git a/sbin/newfs_msdos/newfs_msdos.8 b/sbin/newfs_msdos/newfs_msdos.8 index efa69c058453..c3b50d6266ff 100644 --- a/sbin/newfs_msdos/newfs_msdos.8 +++ b/sbin/newfs_msdos/newfs_msdos.8 @@ -244,6 +244,7 @@ Create a 30MB image file, with the FAT partition starting newfs_msdos -C 30M -@63s ./somefile .Ed .Sh SEE ALSO +.Xr msdosfs 4 , .Xr gpart 8 , .Xr newfs 8 .Sh HISTORY diff --git a/share/man/man5/msdosfs.5 b/share/man/man5/msdosfs.5 index 2856b4b5cc82..470f8861aa6a 100644 --- a/share/man/man5/msdosfs.5 +++ b/share/man/man5/msdosfs.5 @@ -6,7 +6,7 @@ .Os .Sh NAME .Nm msdosfs -.Nd MS-DOS file system +.Nd MS-DOS (FAT) file system .Sh SYNOPSIS .Cd "options MSDOSFS" .Sh DESCRIPTION @@ -65,8 +65,10 @@ may also be used to extract this information. .Sh SEE ALSO .Xr mount 2 , .Xr unmount 2 , +.Xr fsck_msdosfs 8 , .Xr mount 8 , .Xr mount_msdosfs 8 , +.Xr newfs_msdos 8 , .Xr umount 8 .Sh AUTHORS This manual page was written by From nobody Sun Apr 20 07:02:19 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZgKF7380Mz5sd64; Sun, 20 Apr 2025 07:02:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZgKF72djwz3qb8; Sun, 20 Apr 2025 07:02:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745132539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XdyouObrzX9iNeRNTj/US478k1ToYZxncq0sbjz1alo=; b=JaRqQpG0T9swofadlBIKcflZX3rDuWPSQ5l/Dw8a/2Rl77AgF7AtUicTB0WXv8/8DzQ/g5 RY49WMPB6eKCIqwcn5ZbYbymFg4iF+Vnzpg2yGRPXR+Hzl4YQA2owUL9J/icYNmzYMyQrB 1Ti5ALsnPo/lbgAW/0371Dr4Dwwvw1Gu9yYIn7MHYtMbpml8OYZM8nOilyEabn6u1zeIj/ t9Pay+7KpsKAk7HYqfhrLgufsrXrmAquXC807dQE8tuFjjqxQbWKLKJ0Q2AfnYF6XVfyIa QcUa9bKsSWkw4TX9Ot+vO/wPxCl4ZTgBgl2CS8BF2SBmGCMTmgOACwUPv/XldQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745132539; a=rsa-sha256; cv=none; b=ejx32LIZ03Uog2B02h5puivbitPvmSdBoWhA0AhZaZOWbiDzUgPyXjXMY2b8lPoqYIXCC6 iBxMgOYj5wYYnZybae5oJpKKrTpgFdEqK5r2CUMRNySOSiujNyCU4LdBB8iD0qYV36lMbF HcugONfANfyAJxrgvAAkKEfzQGjJTmDdYL/JsGwftQGCfkvvIZsMswfHhB1EHU2mA670Ut Fl447ESO+OP1vybl7ypPeBPYGAprvYTo28660v2ZtgRShmXUXykyfFuzIqh+/oulxrdBoH Nl6TUHObvQGDcHmn9pv8PZRUonfPsq3yaCEOoVkB9ZRcGQpAEwgubcgTrzfzfA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745132539; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XdyouObrzX9iNeRNTj/US478k1ToYZxncq0sbjz1alo=; b=WP7nXiqpNpOLZQLvgVzUZLZeGEJJ30ZxEj+0G1pex351nUuvEs1lheYWW3bK8wMQwX57v2 mYZ5z1kTu9voHP89WB0DPuIE1foMU1y17CQlev9zMBhpjiiOVkbO1ObX1L4aPgLiZ0BKd5 vKCQ1WrcOP/gil7w4oyLrZp6zaQBlh4znkV1iXOP9blmsKm41QNEmEUSalkuJlRhAoJyyB wykTT5LuQ+vkYzzVIaYvNzUQgqJKRAdSt7knypMI2KqQ6gfxwxZBqBw53Cwg916WlogsS6 OEFI/+0wu1OPSTpDGtJmuIDlTue/PwWSxkNR29AZZF12FxlSi+5w+zvF4ZTyRg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZgKF724DFzvGk; Sun, 20 Apr 2025 07:02:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53K72J2T037562; Sun, 20 Apr 2025 07:02:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53K72JIt037559; Sun, 20 Apr 2025 07:02:19 GMT (envelope-from git) Date: Sun, 20 Apr 2025 07:02:19 GMT Message-Id: <202504200702.53K72JIt037559@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ravi Pokala Subject: git: b337e9fd1171 - stable/14 - loader: Add the CPU identification string to the data which is visible in the bootloader. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rpokala X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: b337e9fd11711a7dff6a35f211c2b4f3210b29c4 Auto-Submitted: auto-generated The branch stable/14 has been updated by rpokala: URL: https://cgit.FreeBSD.org/src/commit/?id=b337e9fd11711a7dff6a35f211c2b4f3210b29c4 commit b337e9fd11711a7dff6a35f211c2b4f3210b29c4 Author: Ravi Pokala AuthorDate: 2025-04-08 06:04:31 +0000 Commit: Ravi Pokala CommitDate: 2025-04-20 07:01:18 +0000 loader: Add the CPU identification string to the data which is visible in the bootloader. Reviewed by: imp MFC after: 1 week Sponsored by: Vdura Differential Revision: https://reviews.freebsd.org/D49708 (cherry picked from commit 3adae4f27d600f0be7904eb1bb30e79d90386793) --- stand/libsa/smbios.c | 1 + 1 file changed, 1 insertion(+) diff --git a/stand/libsa/smbios.c b/stand/libsa/smbios.c index 618c8a1052ec..32cd198a9537 100644 --- a/stand/libsa/smbios.c +++ b/stand/libsa/smbios.c @@ -461,6 +461,7 @@ smbios_parse_table(const caddr_t addr) break; case 4: /* 3.3.5 Processor Information (Type 4) */ + smbios_setenv("smbios.processor.version", addr, 0x10); /* * Offset 18h: Processor Status *