mac80211: start queues if driver rejected wowlan
If the driver rejects WoWLAN, restart the queues before returning to cfg80211. cfg80211 will return to mac80211, but not before it disconnects all interfaces. If we don't start the queues, any of the packets needed for disconnecting won't be transmitted, which is strange. Fix that. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
8bb6f4b9c5
commit
23e370989c
|
@ -97,6 +97,13 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
|
||||||
return err;
|
return err;
|
||||||
} else if (err > 0) {
|
} else if (err > 0) {
|
||||||
WARN_ON(err != 1);
|
WARN_ON(err != 1);
|
||||||
|
/* cfg80211 will call back into mac80211 to disconnect
|
||||||
|
* all interfaces, allow that to proceed properly
|
||||||
|
*/
|
||||||
|
ieee80211_wake_queues_by_reason(hw,
|
||||||
|
IEEE80211_MAX_QUEUE_MAP,
|
||||||
|
IEEE80211_QUEUE_STOP_REASON_SUSPEND,
|
||||||
|
false);
|
||||||
return err;
|
return err;
|
||||||
} else {
|
} else {
|
||||||
goto suspend;
|
goto suspend;
|
||||||
|
|
Loading…
Reference in New Issue