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 fc9286a..912977b 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)