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)
net/mac80211/mesh_plink.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 4256859..a73741c 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -359,6 +359,9 @@ static struct sta_info *mesh_peer_init(struct ieee80211_sub_if_data *sdata,
insert = true;
}
+ if (sta->plink_state == NL80211_PLINK_ESTAB)
+ return sta;
+
spin_lock_bh(&sta->lock);
sta->last_rx = jiffies;
sta->sta.supp_rates[band] = rates;
--
1.7.0.4
Hi Chun-Yeow,
> diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
> index 4256859..a73741c 100644
> --- a/net/mac80211/mesh_plink.c
> +++ b/net/mac80211/mesh_plink.c
> @@ -359,6 +359,9 @@ static struct sta_info *mesh_peer_init(struct ieee80211_sub_if_data *sdata,
> insert = true;
> }
>
> + if (sta->plink_state == NL80211_PLINK_ESTAB)
> + return sta;
> +
Please keep updating sta->last_rx.
> spin_lock_bh(&sta->lock);
> sta->last_rx = jiffies;
> sta->sta.supp_rates[band] = rates;
Thomas
Hi, Thomas
> Please keep updating sta->last_rx.
Noted. Resubmit the patch.
Regards,
Chun-Yeow