]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jul 2021 08:01:07 +0000 (10:01 +0200)
[ Upstream commit 9df66d5b9f45c39b3925d16e8947cc10009b186d ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/wireless/nl80211.c

index a5224da6383285acf915b0eb7bb8c1884a3c28de..be0f616f85d34a7086f431f6764b63a72b24ce4d 100644 (file)
@@ -4779,11 +4779,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)