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:
parent
173f865474
commit
bae35d92b6
|
@ -362,6 +362,11 @@ static struct sta_info *mesh_peer_init(struct ieee80211_sub_if_data *sdata,
|
|||
|
||||
spin_lock_bh(&sta->lock);
|
||||
sta->last_rx = jiffies;
|
||||
if (sta->plink_state == NL80211_PLINK_ESTAB) {
|
||||
spin_unlock_bh(&sta->lock);
|
||||
return sta;
|
||||
}
|
||||
|
||||
sta->sta.supp_rates[band] = rates;
|
||||
if (elems->ht_cap_elem &&
|
||||
sdata->local->_oper_channel_type != NL80211_CHAN_NO_HT)
|
||||
|
|
Loading…
Reference in a new issue