Skip to contentSkip to conversation

mac80211: fix incorrect nss config

PATCH In review Thiraviyam Mariyappan 2 participants 2 messages Sep 27, 2021

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mac80211: fix incorrect nss config

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.

---
 net/mac80211/he.c | 7 +++++++
 1 file changed, 7 insertions(+)
net/mac80211/he.c +7 -0
index c05af70..ee113ff5 100644
@@ -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);
Signature · 7 lines
2.7.4


-- 
ath11k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath11k
maintainer
#1 lore raw
Quoted 20 lines · Thiraviyam Mariyappan

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.

---
 net/mac80211/he.c | 7 +++++++

 1 file changed, 7 insertions(+)
net/mac80211/he.c +0 -0
index c05af70..ee113ff5 100644
@@ -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);

net/mac80211/he.c ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, · line 159

Quoted 6 lines
net/mac80211/he.c +6 -0
+	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

Signature · 3 lines
ath11k mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/ath11k