diff options
author | Eliad Peller <eliad@wizery.com> | 2012-01-26 13:36:05 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-27 14:57:05 -0500 |
commit | 6e1b1b246096fe04467f928973487fa47afaf2cc (patch) | |
tree | a46e853d2d60d1e7238c2991474d1a3a8dcf8ffe /net/mac80211 | |
parent | 6269cc83e7c444f3050e0d7e640d079bae17aa68 (diff) | |
download | op-kernel-dev-6e1b1b246096fe04467f928973487fa47afaf2cc.zip op-kernel-dev-6e1b1b246096fe04467f928973487fa47afaf2cc.tar.gz |
mac80211: send null packet on active (psm) reconfiguration
The sta might be in psm against the ap (e.g. because
this was the 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).
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-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 30d72e2..d82d886 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. * |