Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d64cf63e authored by Arik Nemtsov's avatar Arik Nemtsov Committed by John W. Linville
Browse files

mac80211: init rate-control for TDLS sta when supp-rates are known



Initialize rate control algorithms only when supported rates are known
for a TDLS peer sta. Direct Tx between peers is not allowed before the
link is enabled. In turn, this only occurs after a change_station()
call that sets supported rates.

Signed-off-by: default avatarArik Nemtsov <arik@wizery.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent dd9dfb9f
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -869,6 +869,11 @@ static int ieee80211_add_station(struct wiphy *wiphy, struct net_device *dev,

	sta_apply_parameters(local, sta, params);

	/*
	 * 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 ||
@@ -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 &&