mac80211: send null packet on active (psm) reconfiguration
authorEliad Peller <eliad@wizery.com>
Thu, 26 Jan 2012 11:36:05 +0000 (13:36 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Jan 2012 19:57:05 +0000 (14:57 -0500)
The sta might be in psm against the ap (e.g. because
this was the before a hw restart), so we explicitly
send a null packet in order to make sure it'll
sync against the ap (and get out of psm).

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/util.c

index 30d72e2af7cefc7d703a13dbf8b6123e33cdd987..d82d886d0867975ec19ffbe3b2615da3e07d37f6 100644 (file)
@@ -1271,6 +1271,21 @@ int ieee80211_reconfig(struct ieee80211_local *local)
 
        ieee80211_recalc_ps(local, -1);
 
+       /*
+        * The sta might be in psm against the ap (e.g. because
+        * this was the state before a hw restart), so we
+        * explicitly send a null packet in order to make sure
+        * it'll sync against the ap (and get out of psm).
+        */
+       if (!(local->hw.conf.flags & IEEE80211_CONF_PS)) {
+               list_for_each_entry(sdata, &local->interfaces, list) {
+                       if (sdata->vif.type != NL80211_IFTYPE_STATION)
+                               continue;
+
+                       ieee80211_send_nullfunc(local, sdata, 0);
+               }
+       }
+
        /*
         * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
         * sessions can be established after a resume.