summaryrefslogtreecommitdiffstats
path: root/net/mac80211/util.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-01-11 00:28:01 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-01-16 15:19:01 +0100
commit8f21b0adfe95907926da1bb0bcd3382b13d0143d (patch)
tree8eeedd57fd51a88baa61d38ef5602689eea3d675 /net/mac80211/util.c
parentmac80211: fix resume from WoWLAN (diff)
downloadlinux-8f21b0adfe95907926da1bb0bcd3382b13d0143d.tar.xz
linux-8f21b0adfe95907926da1bb0bcd3382b13d0143d.zip
mac80211: call restart complete at wowlan resume time
When the driver's resume function can't completely restore the configuration in the device, it returns 1 from the callback which will be treated like a HW restart request, but done directly. In this case, also call the driver's restart_complete() function so it can finish the reconfiguration there. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/util.c')
-rw-r--r--net/mac80211/util.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index 0ad51e14f3c8..7519018ff71a 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1358,9 +1358,9 @@ int ieee80211_reconfig(struct ieee80211_local *local)
struct ieee80211_chanctx *ctx;
struct sta_info *sta;
int res, i;
-#ifdef CONFIG_PM
bool reconfig_due_to_wowlan = false;
+#ifdef CONFIG_PM
if (local->suspended)
local->resuming = true;
@@ -1656,10 +1656,11 @@ int ieee80211_reconfig(struct ieee80211_local *local)
* If this is for hw restart things are still running.
* We may want to change that later, however.
*/
- if (!local->suspended) {
+ if (!local->suspended || reconfig_due_to_wowlan)
drv_restart_complete(local);
+
+ if (!local->suspended)
return 0;
- }
#ifdef CONFIG_PM
/* first set suspended false, then resuming */