From: Johannes Berg <[email protected]>

In the likely case that probe_count is 0 and the flag is clear,
don't write to the memory there. This will avoid cache bouncing
when adding parallel RX support.

Also use ifmgd consistently in the function, instead of using
sdata->u.mgd as well.

Signed-off-by: Johannes Berg <[email protected]>
Signed-off-by: Emmanuel Grumbach <[email protected]>
---
 net/mac80211/mlme.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 8968a96..219e34d 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -122,16 +122,18 @@ void ieee80211_sta_reset_conn_monitor(struct 
ieee80211_sub_if_data *sdata)
 {
        struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
 
-       if (unlikely(!sdata->u.mgd.associated))
+       if (unlikely(!ifmgd->associated))
                return;
 
-       ifmgd->probe_send_count = 0;
-       sdata->u.mgd.flags &= ~IEEE80211_STA_BEACON_LOSS_REPORTED;
+       if (ifmgd->probe_send_count)
+               ifmgd->probe_send_count = 0;
+       if (ifmgd->flags & IEEE80211_STA_BEACON_LOSS_REPORTED)
+               ifmgd->flags &= ~IEEE80211_STA_BEACON_LOSS_REPORTED;
 
        if (ieee80211_hw_check(&sdata->local->hw, CONNECTION_MONITOR))
                return;
 
-       mod_timer(&sdata->u.mgd.conn_mon_timer,
+       mod_timer(&ifmgd->conn_mon_timer,
                  round_jiffies_up(jiffies + IEEE80211_CONNECTION_IDLE_TIME));
 }
 
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to