linux/net/mac80211
Johannes Berg b4b177a555 mac80211: fix on-channel remain-on-channel
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.

Cc: stable@vger.kernel.org
Reported-by: Jouni Malinen <j@w1.fi>
Tested-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2014-05-14 15:48:38 +02:00
..
Kconfig
Makefile
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c
agg-tx.c
cfg.c mac80211: refactor channel switch function 2014-03-03 15:07:29 +01:00
cfg.h
chan.c mac80211: fix radar_enabled propagation 2014-04-09 10:48:36 +02:00
debug.h
debugfs.c
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c mac80211: add beacon_loss debugfs file 2014-02-11 12:58:45 +01:00
debugfs_netdev.h
debugfs_sta.c
debugfs_sta.h
driver-ops.h mac80211: allow driver to return error from sched_scan_stop 2014-02-20 16:09:54 +01:00
event.c
ht.c mac80211: allow drivers to request SMPS off 2014-02-21 09:28:52 +01:00
ibss.c cfg80211/mac80211: ignore signal if the frame was heard on wrong channel 2014-03-19 21:29:56 +01:00
ieee80211_i.h mac80211: fix on-channel remain-on-channel 2014-05-14 15:48:38 +02:00
iface.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-03-13 14:21:43 -04:00
key.c
key.h
led.c
led.h
main.c mac80211: exclude AP_VLAN interfaces from tx power calculation 2014-04-11 09:37:41 +02:00
mesh.c
mesh.h
mesh_hwmp.c
mesh_pathtbl.c
mesh_plink.c
mesh_ps.c mac80211: clear sequence/fragment number in QoS-null frames 2014-03-05 15:49:54 +01:00
mesh_sync.c
michael.c
michael.h
mlme.c mac80211: fix suspend vs. association race 2014-05-13 13:58:16 +02:00
offchannel.c mac80211: fix on-channel remain-on-channel 2014-05-14 15:48:38 +02:00
pm.c mac80211: fix suspend vs. authentication race 2014-03-19 21:29:53 +01:00
rate.c
rate.h
rc80211_minstrel.c
rc80211_minstrel.h
rc80211_minstrel_debugfs.c
rc80211_minstrel_ht.c
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c
rc80211_pid.h
rc80211_pid_algo.c
rc80211_pid_debugfs.c
rx.c mac80211: Fix mac80211 station info rx bitrate for IBSS mode 2014-05-05 14:52:03 +02:00
scan.c mac80211: release sched_scan_sdata when stopping sched scan 2014-03-19 21:29:55 +01:00
spectmgmt.c
sta_info.c mac80211: avoid handling of SMPS for mesh 2014-04-22 16:38:42 +02:00
sta_info.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-05 20:32:02 -05:00
status.c mac80211: fixup radiotap tx flags for RTS/CTS 2014-04-22 17:08:30 +02:00
tkip.c
tkip.h
trace.c
trace.h mac80211: fix vif name tracing 2014-05-09 14:35:40 +02:00
tx.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-03-20 11:53:20 -04:00
util.c mac80211: fix nested rtnl locking on ieee80211_reconfig 2014-05-05 15:14:58 +02:00
vht.c mac80211: allow VHT with peers not capable of 40MHz 2014-05-09 09:56:53 +02:00
wep.c
wep.h
wme.c mac80211: send control port protocol frames to the VO queue 2014-02-12 11:26:43 +01:00
wme.h
wpa.c
wpa.h