android_kernel_samsung_msm8976/net/mac80211
Johannes Berg d13ab64e7a mac80211: fix on-channel remain-on-channel
commit b4b177a5556a686909e643f1e9b6434c10de079f upstream.

Jouni reported that if a remain-on-channel was active on the
same channel as the current operating channel, then the ROC
would start, but any frames transmitted using mgmt-tx on the
same channel would get delayed until after the ROC.

The reason for this is that the ROC starts, but doesn't have
any handling for "remain on the same channel", so it stops
the interface queues. The later mgmt-tx then puts the frame
on the interface queues (since it's on the current operating
channel) and thus they get delayed until after the ROC.

To fix this, add some logic to handle remaining on the same
channel specially and not stop the queues etc. in this case.
This not only fixes the bug but also improves behaviour in
this case as data frames etc. can continue to flow.

Reported-by: Jouni Malinen <j@w1.fi>
Tested-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-07 13:25:31 -07:00
..
Kconfig Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
Makefile
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c
agg-tx.c
cfg.c mac80211: release the channel in error path in start_ap 2014-02-22 12:41:26 -08:00
cfg.h
chan.c Merge remote-tracking branch 'wireless-next/master' into mac80211-next 2013-04-22 15:31:43 +02:00
debug.h
debugfs.c mac80211: remove IEEE80211_HW_SCAN_WHILE_IDLE 2013-02-11 18:45:01 +01:00
debugfs.h
debugfs_key.c mac80211: move sdata debugfs dir to vif 2013-03-18 20:10:04 +01:00
debugfs_key.h
debugfs_netdev.c mac80211: add beacon stats to debugfs 2013-04-08 09:16:54 +02:00
debugfs_netdev.h
debugfs_sta.c mac80211: add beacon stats to debugfs 2013-04-08 09:16:54 +02:00
debugfs_sta.h
driver-ops.h mac80211: pass queue bitmap to flush operation 2013-03-18 20:15:03 +01:00
event.c
ht.c mac80211: fix HT capability overrides for AP station 2013-03-06 16:36:02 +01:00
ibss.c mac80211: add missing channel context release 2013-09-07 22:09:59 -07:00
ieee80211_i.h mac80211: fix on-channel remain-on-channel 2014-06-07 13:25:31 -07:00
iface.c mac80211: close AP_VLAN interfaces before unregistering all 2013-07-25 14:07:31 -07:00
key.c mac80211: batch key free synchronize_net() 2013-03-11 15:16:42 +02:00
key.h mac80211: batch key free synchronize_net() 2013-03-11 15:16:42 +02:00
led.c
led.h
main.c mac80211: exclude AP_VLAN interfaces from tx power calculation 2014-05-13 13:59:44 +02:00
mesh.c Merge remote-tracking branch 'wireless-next/master' into mac80211-next 2013-04-22 15:31:43 +02:00
mesh.h mac80211: return new mpath from mesh_path_add() 2013-04-08 09:16:59 +02:00
mesh_hwmp.c mac80211: parse VHT channel switch IEs 2013-04-16 15:29:45 +02:00
mesh_pathtbl.c mac80211: return new mpath from mesh_path_add() 2013-04-08 09:16:59 +02:00
mesh_plink.c mac80211: parse VHT channel switch IEs 2013-04-16 15:29:45 +02:00
mesh_ps.c mac80211: clear sequence/fragment number in QoS-null frames 2014-03-23 21:38:12 -07:00
mesh_sync.c mac80211: clean up mesh code 2013-02-15 15:46:37 +01:00
michael.c
michael.h
mlme.c mac80211: fix suspend vs. authentication race 2014-06-07 13:25:31 -07:00
offchannel.c mac80211: fix on-channel remain-on-channel 2014-06-07 13:25:31 -07:00
pm.c mac80211: fix suspend vs. authentication race 2014-06-07 13:25:31 -07:00
rate.c mac80211: Fix rate control mask matching call 2013-06-12 09:12:43 +02:00
rate.h mac80211: track number of spatial streams 2013-02-15 09:41:31 +01:00
rc80211_minstrel.c mac80211/minstrel: fix NULL pointer dereference issue 2013-08-11 18:35:22 -07:00
rc80211_minstrel.h mac80211/minstrel: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel_debugfs.c mac80211: cosmetics for minstrel_debugfs 2013-04-17 17:08:23 +02:00
rc80211_minstrel_ht.c mac80211: add a flag to indicate CCK support for HT clients 2013-09-07 22:09:59 -07:00
rc80211_minstrel_ht.h mac80211/minstrel_ht: use the new rate control API 2013-04-22 16:16:41 +02:00
rc80211_minstrel_ht_debugfs.c mac80211/minstrel_ht: add support for using CCK rates 2013-02-13 10:56:33 +01:00
rc80211_pid.h
rc80211_pid_algo.c
rc80211_pid_debugfs.c
rx.c mac80211: don't attempt to reorder multicast frames 2013-12-20 07:45:09 -08:00
scan.c mac80211: correctly close cancelled scans 2013-11-13 12:05:30 +09:00
spectmgmt.c
sta_info.c mac80211: clear sequence/fragment number in QoS-null frames 2014-03-23 21:38:12 -07:00
sta_info.h mac80211: fix AP powersave TX vs. wakeup race 2014-03-23 21:38:11 -07:00
status.c mac80211: update sta->last_rx on acked tx frames 2013-11-13 12:05:30 +09:00
tkip.c mac80211: use just spin_lock() in ieee80211_get_tkip_p2k() 2013-05-16 22:38:06 +02:00
tkip.h
trace.c
trace.h mac80211: support secondary channel offset in CSA 2013-04-16 15:29:44 +02:00
tx.c mac80211: fix WPA with VLAN on AP side with ps-sta again 2014-05-13 13:59:43 +02:00
util.c mac80211: fix crash if bitrate calculation goes wrong 2013-11-13 12:05:30 +09:00
vht.c mac80211: restrict peer's VHT capabilities to own 2013-03-06 16:36:03 +01:00
wep.c
wep.h
wme.c mac80211: send control port protocol frames to the VO queue 2014-03-23 21:38:11 -07:00
wme.h
wpa.c mac80211: use spin_lock_bh() for TKIP lock 2013-02-15 09:41:13 +01:00
wpa.h