cfg80211: fix default HE tx bitrate mask in 2G band
authorPing-Ke Shih <pkshih@realtek.com>
Wed, 9 Jun 2021 07:59:44 +0000 (15:59 +0800)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Jun 2021 09:02:59 +0000 (11:02 +0200)
In 2G band, a HE sta can only supports HT and HE, but not supports VHT.
In this case, default HE tx bitrate mask isn't filled, when we use iw to
set bitrates without any parameter.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://lore.kernel.org/r/20210609075944.51130-1-pkshih@realtek.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/nl80211.c

index fc9286afe3c998dd0abaf322986d47e04e6a44f7..912977bf3ec80665dbe27ef525a5e52ec6a8408e 100644 (file)
@@ -4781,11 +4781,10 @@ static int nl80211_parse_tx_bitrate_mask(struct genl_info *info,
                       sband->ht_cap.mcs.rx_mask,
                       sizeof(mask->control[i].ht_mcs));
 
-               if (!sband->vht_cap.vht_supported)
-                       continue;
-
-               vht_tx_mcs_map = le16_to_cpu(sband->vht_cap.vht_mcs.tx_mcs_map);
-               vht_build_mcs_mask(vht_tx_mcs_map, mask->control[i].vht_mcs);
+               if (sband->vht_cap.vht_supported) {
+                       vht_tx_mcs_map = le16_to_cpu(sband->vht_cap.vht_mcs.tx_mcs_map);
+                       vht_build_mcs_mask(vht_tx_mcs_map, mask->control[i].vht_mcs);
+               }
 
                he_cap = ieee80211_get_he_iftype_cap(sband, wdev->iftype);
                if (!he_cap)