The branch stable/15 has been updated by bz:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=d141ee159502e620ed8be4e0670d106414d92b53

commit d141ee159502e620ed8be4e0670d106414d92b53
Author:     Bjoern A. Zeeb <[email protected]>
AuthorDate: 2025-12-28 19:38:16 +0000
Commit:     Bjoern A. Zeeb <[email protected]>
CommitDate: 2026-01-16 08:48:48 +0000

    LinuxKPI: 802.11: fix rx_nss with VHT
    
    When fixing single-stream chipsets, like iwlwifi(4) AX101, we started
    masking the announced with the hardware supported values.  This would
    probably limit, e.g., rx_nss.  During these works we fixed a loop
    checking from the highest nss=7 to lowest nss=0 (8..1) and would set
    rx_nss if the stream was supported.  This left us with always setting
    rx_nss on nss=0 to nss + 1 = 1.  Instead only update once when we hit
    the first supported MCS value (highest number of supported streams).
    Looking at the diff of the mentioned commit hash which gets fixed it
    looks like even the old code was not correct either.
    
    This only fixes the logic to calculate rx_nss.  This does not yet help
    with modern drivers to actually update the value.  Code for this will
    come in a later commit.
    
    Sponsored by:   The FreeBSD Foundation
    Fixes:          adb4901ac9ae
    
    (cherry picked from commit 8494be1b5af7fe4f765532f802ac0a145e061d73)
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c 
b/sys/compat/linuxkpi/common/src/linux_80211.c
index f4b534122b87..1ac28dfef448 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -693,7 +693,8 @@ skip_bw:
                                sta = IEEE80211_VHT_MCS_NOT_SUPPORTED;
                        else {
                                sta = MIN(sta, card);
-                               rx_nss = i + 1;
+                               if (rx_nss == 0)
+                                       rx_nss = i + 1;
                        }
                }
                rx_map |= (sta << (2 * i));

Reply via email to