cfg80211: ibss: use 11a mandatory rates for 6GHz band operation
authorArend van Spriel <arend.vanspriel@broadcom.com>
Fri, 2 Aug 2019 11:31:04 +0000 (13:31 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 21 Aug 2019 08:54:57 +0000 (10:54 +0200)
The default mandatory rates, ie. when not specified by user-space, is
determined by the band. Select 11a rateset for 6GHz band.

Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: Leon Zegers <leon.zegers@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://lore.kernel.org/r/1564745465-21234-8-git-send-email-arend.vanspriel@broadcom.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/ibss.c

index d1743e6abc3456a7ec309205d730af41c8551e89..ae8fe66a9bb82666182ba447e8463ccbfb7deea9 100644 (file)
@@ -104,13 +104,19 @@ int __cfg80211_join_ibss(struct cfg80211_registered_device *rdev,
                * use the mandatory rate set for 11b or
                * 11a for maximum compatibility.
                */
-               struct ieee80211_supported_band *sband =
-                       rdev->wiphy.bands[params->chandef.chan->band];
+               struct ieee80211_supported_band *sband;
+               enum nl80211_band band;
+               u32 flag;
                int j;
-               u32 flag = params->chandef.chan->band == NL80211_BAND_5GHZ ?
-                       IEEE80211_RATE_MANDATORY_A :
-                       IEEE80211_RATE_MANDATORY_B;
 
+               band = params->chandef.chan->band;
+               if (band == NL80211_BAND_5GHZ ||
+                   band == NL80211_BAND_6GHZ)
+                       flag = IEEE80211_RATE_MANDATORY_A;
+               else
+                       flag = IEEE80211_RATE_MANDATORY_B;
+
+               sband = rdev->wiphy.bands[band];
                for (j = 0; j < sband->n_bitrates; j++) {
                        if (sband->bitrates[j].flags & flag)
                                params->basic_rates |= BIT(j);