aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorEyal Shapira <eyal@wizery.com>2012-05-29 02:00:22 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-06-10 00:32:59 +0900
commit6ec1d66c8d22bc76ebf37860a87ca399790beb5d (patch)
tree4e0cdf414e2ff2d559b3c7e8b1308e3c9f1dfbda /net/mac80211
parent65ec0e1ca3d1ff89f36db4cd19441bf001fb7d8a (diff)
downloadkernel_samsung_smdk4412-6ec1d66c8d22bc76ebf37860a87ca399790beb5d.zip
kernel_samsung_smdk4412-6ec1d66c8d22bc76ebf37860a87ca399790beb5d.tar.gz
kernel_samsung_smdk4412-6ec1d66c8d22bc76ebf37860a87ca399790beb5d.tar.bz2
mac80211: fix ADDBA declined after suspend with wowlan
commit 7b21aea04d084916ac4e0e8852dcc9cd60ec0d1d upstream. WLAN_STA_BLOCK_BA is set while suspending but doesn't get cleared when resuming in case of wowlan. This causes further ADDBA requests received to be rejected. Fix it by clearing it in the wowlan path as well. Signed-off-by: Eyal Shapira <eyal@wizery.com> Reviewed-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/util.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 2124db8..11d9d49 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1254,6 +1254,12 @@ int ieee80211_reconfig(struct ieee80211_local *local)
}
}
+ /* add back keys */
+ list_for_each_entry(sdata, &local->interfaces, list)
+ if (ieee80211_sdata_running(sdata))
+ ieee80211_enable_keys(sdata);
+
+ wake_up:
/*
* Clear the WLAN_STA_BLOCK_BA flag so new aggregation
* sessions can be established after a resume.
@@ -1275,12 +1281,6 @@ int ieee80211_reconfig(struct ieee80211_local *local)
mutex_unlock(&local->sta_mtx);
}
- /* add back keys */
- list_for_each_entry(sdata, &local->interfaces, list)
- if (ieee80211_sdata_running(sdata))
- ieee80211_enable_keys(sdata);
-
- wake_up:
ieee80211_wake_queues_by_reason(hw,
IEEE80211_QUEUE_STOP_REASON_SUSPEND);