From nobody Mon Jun 22 05:31:11 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gkGyS2wzwz6j9tT for ; Mon, 22 Jun 2026 05:31: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 "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gkGyS0xztz3qKv for ; Mon, 22 Jun 2026 05:31:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782106272; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BVpUzHmlCr4MKC0hN0kFYJoY6DaZO93641nAwWDnlkw=; b=nvQij0se1UA6wsit8F34RRI8MWSkxG+CCBS4E5wLbwyIr6hI0gEdPktjvbO2cIe9rwn2ew 0BiKumaii/a1T9NPHREgtXF7eTcOuiltiECuDemplMGD2NKEEICqnVJnsQmVk+fwriQ9Ip A/byJS49LNrY/g7ojUcmfWebiTL+yJ+8GkMcrAKH1GghYBvnW0unHvbaaR73amZL3NLN4d 40u1n2gYUNk6WBeu1ctOM3OTcDIbV7Dqx1seRr2SWRydVo1aEk8AcaBtMgenHdlXvCrXBB riUSwlJsR89Vjknb3nhzDOoNi1ONlVzT5mGKwDmWJVQndVNTa7ZYjkCh2meapQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1782106272; a=rsa-sha256; cv=none; b=cFkYmRr+IZ2ua0naEL2MYtxuwhlaR/oW+MId5EK1hSBN+EM9t7xFQ6jOL9db2gwu3S7/ZJ AgtGiSUADf6ScyVIHHNWrW+ruXWqwAlCq2bS7WCuBZO96Ri/Z7T8uw9bwD8INuTjX8fuuW xDk1Gr9TOVcIJvJgSrEQUgb3ykbuDFwh+yggHmv7/pkaxyBBV2SnerAzDtCQLudW14vAii VhQWtHh09+vMbUupQ63IHGMp1ILmNcKIbwMe6gevjrVtfkLcwEcogzPj/r3bDug7hX3GS+ n+nFjMn9ECcvruXXMzhYlKUkKKTemMrBUYWJaPj6WRRZIAPAJyxvskStgAgWNw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1782106272; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BVpUzHmlCr4MKC0hN0kFYJoY6DaZO93641nAwWDnlkw=; b=ovfVwKJkAk/QPGWGJexypJRfOr6fkJsOj06e5WRHowbZOAJSjfO3MKsTOJLk1aQ5XkfxQH jx2QK9WkYjb1RJsRIGPDH/eM6JioefhyKZBzcjYgGLFBNYg6IDdWpcNgpRWUVSptGAXKrT gsoWtcuZ89kCSM8H/J8+5/o54onwbQ2l2Hoks2BAi6ownvw2c5w/4YLN85vMmBK3TxdAbI nfScOwBBNRwjWmrDIIDVESBoHu1j7JGQOPeUcIT/W0dKZq92Gmrk3EmvrUuBl0b+5XBsff VH08JDJ6cTJA6xKjiWCIp4/AAlsaJeEk/SH1duXZDRN6VUYzMsx1n2FM0asheg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gkGyR74rkzZxK for ; Mon, 22 Jun 2026 05:31:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26e36 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 22 Jun 2026 05:31:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 75aadc902298 - main - LinuxKPI: 802.11: adjust timing of sync_from_ni in lkpi_sta_assoc_to_run() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list 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/main X-Git-Reftype: branch X-Git-Commit: 75aadc902298005c47d2b931c483452027ceae69 Auto-Submitted: auto-generated Date: Mon, 22 Jun 2026 05:31:11 +0000 Message-Id: <6a38c89f.26e36.a6873a9@gitrepo.freebsd.org> The branch main has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=75aadc902298005c47d2b931c483452027ceae69 commit 75aadc902298005c47d2b931c483452027ceae69 Author: Bjoern A. Zeeb AuthorDate: 2026-06-22 01:16:45 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-06-22 01:21:39 +0000 LinuxKPI: 802.11: adjust timing of sync_from_ni in lkpi_sta_assoc_to_run() We used to call the (*sta_state) downcall into the driver to set the sta state to ASSOC. After that we did a lot of sync operations incl. the lkpi_sta_sync_from_ni() which does a lot of rate and bandwith adjustments. This sync call needs to happen before we set the sta to assoc as drivers rely on some of this information, e.g., ht_cap and vht_cap (and equivalents for later standards) at that point. Moving this will make, e.g., mt7921 transmit at higher rates than just basic_rates. Sponsored by: The FreeBSD Foundation MFC after: 3 days --- sys/compat/linuxkpi/common/src/linux_80211.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 33587016fe8d..2e7ce4d4148f 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -3190,6 +3190,16 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int if (vap->iv_flags & IEEE80211_F_WME) sta->wme = true; #endif + bss_changed = 0; + /* + * This sync needs to happen before the sta_state change to ASSOC. + * At least mt7921 (likely all drivers) rely on, e.g., ht_cap, vht_cap, + * .. to be set at the point we go to assoc. + */ + bss_changed |= lkpi_sta_sync_from_ni(hw, vif, sta, ni, true); + if (ieee80211_hw_check(hw, HAS_RATE_CONTROL)) + lkpi_80211_mo_set_bitrate_mask(hw, vif, &lvif->br_mask); + error = lkpi_80211_mo_sta_state(hw, vif, lsta, IEEE80211_STA_ASSOC); if (error != 0) { ic_printf(vap->iv_ic, "%s:%d: mo_sta_state(ASSOC) " @@ -3200,7 +3210,6 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int IMPROVE("wme / conf_tx [all]"); /* Update bss info (bss_info_changed) (assoc, aid, ..). */ - bss_changed = 0; #ifdef LKPI_80211_WME bss_changed |= lkpi_wme_update(lhw, vap, true); #endif @@ -3261,7 +3270,6 @@ lkpi_sta_assoc_to_run(struct ieee80211vap *vap, enum ieee80211_state nstate, int bss_changed = 0; IMPROVE("Is this the right spot, has net80211 done all updates already?"); - bss_changed |= lkpi_sta_sync_from_ni(hw, vif, sta, ni, true); /* Update thresholds. */ hw->wiphy->frag_threshold = vap->iv_fragthreshold;