mac80211: don't re-init rate control when receiving mesh beacon
Rate control is re-initialized whenever a beacon from a mesh peer received, breaking the algorithms and resulting in low performance. Return early from mesh_peer_init if we already established a link with this peer to avoid this. Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com> [clarify commit message] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Родитель
173f865474
Коммит
bae35d92b6
|
@ -362,6 +362,11 @@ static struct sta_info *mesh_peer_init(struct ieee80211_sub_if_data *sdata,
|
||||||
|
|
||||||
spin_lock_bh(&sta->lock);
|
spin_lock_bh(&sta->lock);
|
||||||
sta->last_rx = jiffies;
|
sta->last_rx = jiffies;
|
||||||
|
if (sta->plink_state == NL80211_PLINK_ESTAB) {
|
||||||
|
spin_unlock_bh(&sta->lock);
|
||||||
|
return sta;
|
||||||
|
}
|
||||||
|
|
||||||
sta->sta.supp_rates[band] = rates;
|
sta->sta.supp_rates[band] = rates;
|
||||||
if (elems->ht_cap_elem &&
|
if (elems->ht_cap_elem &&
|
||||||
sdata->local->_oper_channel_type != NL80211_CHAN_NO_HT)
|
sdata->local->_oper_channel_type != NL80211_CHAN_NO_HT)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче