|
@@ -869,7 +869,12 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev,
|
|
|
|
|
|
sta_apply_parameters(local, sta, params);
|
|
|
|
|
|
- rate_control_rate_init(sta);
|
|
|
+ /*
|
|
|
+ * for TDLS, rate control should be initialized only when supported
|
|
|
+ * rates are known.
|
|
|
+ */
|
|
|
+ if (!test_sta_flag(sta, WLAN_STA_TDLS_PEER))
|
|
|
+ rate_control_rate_init(sta);
|
|
|
|
|
|
layer2_update = sdata->vif.type == NL80211_IFTYPE_AP_VLAN ||
|
|
|
sdata->vif.type == NL80211_IFTYPE_AP;
|
|
@@ -953,6 +958,9 @@ static int ieee80211_change_station(struct wiphy *wiphy,
|
|
|
|
|
|
sta_apply_parameters(local, sta, params);
|
|
|
|
|
|
+ if (test_sta_flag(sta, WLAN_STA_TDLS_PEER) && params->supported_rates)
|
|
|
+ rate_control_rate_init(sta);
|
|
|
+
|
|
|
rcu_read_unlock();
|
|
|
|
|
|
if (sdata->vif.type == NL80211_IFTYPE_STATION &&
|