Rate control statistic is flushed whenever the mesh beacon
is received. This may not optimizes the performance of rate
control algorithm. This patch ensures that we return early
from mesh_peer_init if the plink_state is ESTAB. Thus, avoid
calling the rate_control_rate_init again for established mesh
STA.

Signed-off-by: Chun-Yeow Yeoh <[email protected]>
---
v2: simplify the logic checking (Thomas Pedersen)
v3: updating the sta last rx activity (Thomas Pedersen)

 net/mac80211/mesh_plink.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 4256859..4f5740e 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -360,6 +360,12 @@ static struct sta_info *mesh_peer_init(struct 
ieee80211_sub_if_data *sdata,
        }
 
        spin_lock_bh(&sta->lock);
+       if (sta->plink_state == NL80211_PLINK_ESTAB) {
+               sta->last_rx = jiffies;
+               spin_unlock_bh(&sta->lock);
+               return sta;
+       }
+
        sta->last_rx = jiffies;
        sta->sta.supp_rates[band] = rates;
        if (elems->ht_cap_elem &&
-- 
1.7.0.4

_______________________________________________
Devel mailing list
[email protected]
http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel

Reply via email to