|
@@ -7487,6 +7487,23 @@ static int nl80211_join_mesh(struct sk_buff *skb, struct genl_info *info)
|
|
|
setup.chandef.chan = NULL;
|
|
|
}
|
|
|
|
|
|
+ if (info->attrs[NL80211_ATTR_BSS_BASIC_RATES]) {
|
|
|
+ u8 *rates = nla_data(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]);
|
|
|
+ int n_rates =
|
|
|
+ nla_len(info->attrs[NL80211_ATTR_BSS_BASIC_RATES]);
|
|
|
+ struct ieee80211_supported_band *sband;
|
|
|
+
|
|
|
+ if (!setup.chandef.chan)
|
|
|
+ return -EINVAL;
|
|
|
+
|
|
|
+ sband = rdev->wiphy.bands[setup.chandef.chan->band];
|
|
|
+
|
|
|
+ err = ieee80211_get_ratemask(sband, rates, n_rates,
|
|
|
+ &setup.basic_rates);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+
|
|
|
return cfg80211_join_mesh(rdev, dev, &setup, &cfg);
|
|
|
}
|
|
|
|