diff mbox series

mac80211: fix incorrect nss config

Message ID 1632750104-1722-1-git-send-email-tmariyap@codeaurora.org (mailing list archive)
State Changes Requested
Delegated to: Johannes Berg
Headers show
Series mac80211: fix incorrect nss config | expand

Commit Message

Thiraviyam Mariyappan Sept. 27, 2021, 1:41 p.m. UTC
In HE capabilities, HE-MCS Rx map field filled with value 0x3 for all eight
spatial streams if txrx chains configured as incorrect value.
This patch changes configure at least single spatial stream for HE-MCS
0 to 7 in all supported channel widths if nss configured as incorrect
value.

Signed-off-by: Thiraviyam Mariyappan <tmariyap@codeaurora.org>
---
 net/mac80211/he.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Johannes Berg Sept. 27, 2021, 3:01 p.m. UTC | #1
On Mon, 2021-09-27 at 19:11 +0530, Thiraviyam Mariyappan wrote:
> In HE capabilities, HE-MCS Rx map field filled with value 0x3 for all eight
> spatial streams if txrx chains configured as incorrect value.
> This patch changes configure at least single spatial stream for HE-MCS
> 0 to 7 in all supported channel widths if nss configured as incorrect
> value.
> 
> Signed-off-by: Thiraviyam Mariyappan <tmariyap@codeaurora.org>
> ---
>  net/mac80211/he.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/net/mac80211/he.c b/net/mac80211/he.c
> index c05af70..ee113ff5 100644
> --- a/net/mac80211/he.c
> +++ b/net/mac80211/he.c
> @@ -151,6 +151,13 @@ ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata,
>  		       &he_cap_ie[sizeof(he_cap->he_cap_elem) + mcs_nss_size],
>  		       he_ppe_size);
>  
> 
> +	if (he_cap->he_mcs_nss_supp.rx_mcs_80 == cpu_to_le16(0xFFFF)) {
> +		he_cap->has_he = false;
> +		sdata_info(sdata, "Ignoring HE IE from %pM due to incorrect rx_mcs_80\n",
> +			   sta->addr);
> +		return;
> +	}

Like so many other workarounds, this should probably come with a comment
as to _why_ we're doing this, ideally including the model/firmware
version ...

johannes
diff mbox series

Patch

diff --git a/net/mac80211/he.c b/net/mac80211/he.c
index c05af70..ee113ff5 100644
--- a/net/mac80211/he.c
+++ b/net/mac80211/he.c
@@ -151,6 +151,13 @@  ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata,
 		       &he_cap_ie[sizeof(he_cap->he_cap_elem) + mcs_nss_size],
 		       he_ppe_size);
 
+	if (he_cap->he_mcs_nss_supp.rx_mcs_80 == cpu_to_le16(0xFFFF)) {
+		he_cap->has_he = false;
+		sdata_info(sdata, "Ignoring HE IE from %pM due to incorrect rx_mcs_80\n",
+			   sta->addr);
+		return;
+	}
+
 	he_cap->has_he = true;
 
 	sta->cur_max_bandwidth = ieee80211_sta_cap_rx_bw(sta);