aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/net/mac80211.h5
-rw-r--r--net/mac80211/util.c7
2 files changed, 8 insertions, 4 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 79bc8709e83b..3037f49e51c8 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2488,7 +2488,10 @@ enum ieee80211_rate_control_changed {
2488 * 2488 *
2489 * @restart_complete: Called after a call to ieee80211_restart_hw(), when the 2489 * @restart_complete: Called after a call to ieee80211_restart_hw(), when the
2490 * reconfiguration has completed. This can help the driver implement the 2490 * reconfiguration has completed. This can help the driver implement the
2491 * reconfiguration step. This callback may sleep. 2491 * reconfiguration step. Also called when reconfiguring because the
2492 * driver's resume function returned 1, as this is just like an "inline"
2493 * hardware restart. This callback may sleep.
2494 *
2492 */ 2495 */
2493struct ieee80211_ops { 2496struct ieee80211_ops {
2494 void (*tx)(struct ieee80211_hw *hw, 2497 void (*tx)(struct ieee80211_hw *hw,
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)
1358 struct ieee80211_chanctx *ctx; 1358 struct ieee80211_chanctx *ctx;
1359 struct sta_info *sta; 1359 struct sta_info *sta;
1360 int res, i; 1360 int res, i;
1361#ifdef CONFIG_PM
1362 bool reconfig_due_to_wowlan = false; 1361 bool reconfig_due_to_wowlan = false;
1363 1362
1363#ifdef CONFIG_PM
1364 if (local->suspended) 1364 if (local->suspended)
1365 local->resuming = true; 1365 local->resuming = true;
1366 1366
@@ -1656,10 +1656,11 @@ int ieee80211_reconfig(struct ieee80211_local *local)
1656 * If this is for hw restart things are still running. 1656 * If this is for hw restart things are still running.
1657 * We may want to change that later, however. 1657 * We may want to change that later, however.
1658 */ 1658 */
1659 if (!local->suspended) { 1659 if (!local->suspended || reconfig_due_to_wowlan)
1660 drv_restart_complete(local); 1660 drv_restart_complete(local);
1661
1662 if (!local->suspended)
1661 return 0; 1663 return 0;
1662 }
1663 1664
1664#ifdef CONFIG_PM 1665#ifdef CONFIG_PM
1665 /* first set suspended false, then resuming */ 1666 /* first set suspended false, then resuming */