linux/net/mac80211
Seth Forshee 9c35d7d236 mac80211: Add flushes before going off-channel
We've got a couple of races when enabling powersave with an AP for
off-channel operation. The first is fairly simple. If we go off-channel
before the nullfunc frame to enable PS is transmitted then it may not be
received by the AP. Add a flush after enabling off-channel PS to prevent
this from happening.

The second race is a bit more subtle. If the driver supports QoS and has
frames queued when the nullfunc frame is queued, those frames may get
transmitted after the nullfunc frame. If PM is not set then the AP is
being told that we've exited PS before we go off-channel and may try to
deliver frames. To prevent this, add a flush after stopping the queues
but before passing the nullfunc frame to the driver.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-02-11 22:52:21 +01:00
..
aes_ccm.c mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_ccm.h mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.c mac80211: include export.h in aes_cmac 2012-11-07 18:01:54 +01:00
aes_cmac.h mac80211: fix CMAC races 2011-07-08 11:11:20 -04:00
agg-rx.c mac80211: improve aggregation debug messages 2013-01-18 21:55:15 +01:00
agg-tx.c mac80211: fix aggregation state with current drivers 2013-01-24 15:43:51 +01:00
cfg.c mac80211: Fix tx queue handling during scans 2013-02-11 22:52:21 +01:00
cfg.h
chan.c mac80211: simplify idle handling 2013-02-11 18:45:01 +01:00
debug.h mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_key.c mac80211: add debug file for mic failure 2012-12-05 09:44:41 +01:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_netdev.h
debugfs_sta.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
debugfs_sta.h
debugfs.c mac80211: remove IEEE80211_HW_SCAN_WHILE_IDLE 2013-02-11 18:45:01 +01:00
debugfs.h mac80211: use __printf attribute in debugfs 2012-10-18 09:01:57 +02:00
driver-ops.h mac80211: add vif debugfs driver callbacks 2013-02-11 18:44:58 +01:00
event.c
ht.c mac80211: unset peer's HT 40 MHz support if not usable 2013-01-03 13:01:45 +01:00
ibss.c mac80211: simplify idle handling 2013-02-11 18:45:01 +01:00
ieee80211_i.h mac80211: Fix tx queue handling during scans 2013-02-11 22:52:21 +01:00
iface.c mac80211: simplify idle handling 2013-02-11 18:45:01 +01:00
Kconfig mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
key.c mac80211: add op to configure default key id 2013-01-18 13:30:21 +01:00
key.h mac80211: add debug file for mic failure 2012-12-05 09:44:41 +01:00
led.c leds: Rename led_brightness_set() to led_set_brightness() 2012-07-24 07:52:34 +08:00
led.h mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
main.c mac80211: remove IEEE80211_HW_SCAN_WHILE_IDLE 2013-02-11 18:45:01 +01:00
Makefile mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_hwmp.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_pathtbl.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_plink.c mac80211: fix mesh sta teardown 2013-02-11 18:44:54 +01:00
mesh_ps.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
mesh_sync.c mac80211: fix for mesh sync to indicate TBTT adjustment 2012-11-30 12:41:46 +01:00
mesh.c mac80211: Add the DS Params for mesh to every band 2013-02-11 18:44:54 +01:00
mesh.h mac80211: fix mesh sta teardown 2013-02-11 18:44:54 +01:00
michael.c
michael.h
mlme.c mac80211: Fix tx queue handling during scans 2013-02-11 22:52:21 +01:00
offchannel.c mac80211: Add flushes before going off-channel 2013-02-11 22:52:21 +01:00
pm.c cfg80211/mac80211: support reporting wakeup reason 2013-01-31 14:00:21 +01:00
rate.c mac80211: convert to channel definition struct 2012-11-26 12:42:59 +01:00
rate.h mac80211: convert to channel definition struct 2012-11-26 12:42:59 +01:00
rc80211_minstrel_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_minstrel_ht_debugfs.c mac80211/minstrel_ht: show the number of retries for each rate in debugfs 2013-02-11 22:43:11 +01:00
rc80211_minstrel_ht.c mac80211/minstrel_ht: remove the sampling bypass check for the lowest rate 2013-02-11 22:43:24 +01:00
rc80211_minstrel_ht.h minstrel_ht: move minstrel_mcs_groups declaration to header file 2010-06-24 15:42:18 -04:00
rc80211_minstrel.c minstrel: update stats after processing status 2012-12-10 22:51:50 +01:00
rc80211_minstrel.h minstrel_ht: fixed rate mode through debugfs 2011-06-01 15:12:29 -04:00
rc80211_pid_algo.c net: fix assignment of 0/1 to bool variables. 2011-12-19 22:27:29 -05:00
rc80211_pid_debugfs.c net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules 2011-10-31 19:30:30 -04:00
rc80211_pid.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rx.c mac80211: protect rx-path with spinlock 2013-02-11 18:44:55 +01:00
scan.c mac80211: Add flushes before going off-channel 2013-02-11 22:52:21 +01:00
spectmgmt.c mac80211: Remove unnecessary OOM logging messages 2011-09-13 15:45:02 -04:00
sta_info.c mac80211: fix mesh sta teardown 2013-02-11 18:44:54 +01:00
sta_info.h wireless: fix kernel-doc 2013-02-11 18:44:53 +01:00
status.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
tkip.c mac80211: remove TKIP debug 2012-06-22 11:26:58 +02:00
tkip.h mac80211: fix TKIP races, make API easier to use 2011-07-08 11:11:19 -04:00
trace.c mac80211: trace debug messages 2012-06-24 11:33:18 +02:00
trace.h mac80211: introduce beacon-only timing data 2013-02-11 18:45:00 +01:00
tx.c mac80211: Fix tx queue handling during scans 2013-02-11 22:52:21 +01:00
util.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
vht.c mac80211: VHT peer STA caps 2012-10-17 11:02:14 +02:00
wep.c mac80211: fix network header location when adding encryption headers 2012-05-16 12:47:43 -04:00
wep.h mac80211: move RX WEP weak IV counting 2012-03-13 14:54:16 -04:00
wme.c mac80211: mesh power save basics 2013-02-04 18:57:47 +01:00
wme.h mac80211: save wmm_acm per sdata 2012-06-20 17:35:22 +02:00
wpa.c mac80211: add debug file for mic failure 2012-12-05 09:44:41 +01:00
wpa.h mac80211: fix tx->skb NULL pointer dereference 2012-01-16 15:01:16 -05:00