Merge branch 'master' of git://1984.lsi.us.es/nf
[deliverable/linux.git] / net / mac80211 / pm.c
index af1c4e26e9657ead3f75d9e622ae472170a15b07..5c572e7a1a71dc76949b993f9f57e79223533f49 100644 (file)
@@ -77,6 +77,17 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
                int err = drv_suspend(local, wowlan);
                if (err < 0) {
                        local->quiescing = false;
+                       local->wowlan = false;
+                       if (hw->flags & IEEE80211_HW_AMPDU_AGGREGATION) {
+                               mutex_lock(&local->sta_mtx);
+                               list_for_each_entry(sta,
+                                                   &local->sta_list, list) {
+                                       clear_sta_flag(sta, WLAN_STA_BLOCK_BA);
+                               }
+                               mutex_unlock(&local->sta_mtx);
+                       }
+                       ieee80211_wake_queues_by_reason(hw,
+                                       IEEE80211_QUEUE_STOP_REASON_SUSPEND);
                        return err;
                } else if (err > 0) {
                        WARN_ON(err != 1);
This page took 0.024434 seconds and 5 git commands to generate.