diff options
-rw-r--r-- | net/mac80211/util.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 30d72e2af7ce..d82d886d0867 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -1272,6 +1272,21 @@ int ieee80211_reconfig(struct ieee80211_local *local) ieee80211_recalc_ps(local, -1); /* + * The sta might be in psm against the ap (e.g. because + * this was the state before a hw restart), so we + * explicitly send a null packet in order to make sure + * it'll sync against the ap (and get out of psm). + */ + if (!(local->hw.conf.flags & IEEE80211_CONF_PS)) { + list_for_each_entry(sdata, &local->interfaces, list) { + if (sdata->vif.type != NL80211_IFTYPE_STATION) + continue; + + ieee80211_send_nullfunc(local, sdata, 0); + } + } + + /* * Clear the WLAN_STA_BLOCK_BA flag so new aggregation * sessions can be established after a resume. * |