android_kernel_xiaomi_sdm845/net/mac80211
Johannes Berg 5b714c6a37 mac80211: fix offchannel queue stop
Somebody noticed this problem, and I outlined
to them how to fix it, but haven't heard back
from them. So while I was adding the state
field I figured I could use it to fix it.

The problem, as I understand it, is that when
we go offchannel while the driver has a queue
stopped, the driver will likely start draining
the queue and then enable it while offchannel.
This in turn will enable the interface queue,
and that leads to transmitting data frames on
the wrong channel.

Fix this by keeping track of offchannel status
per interface, and not enabling the interface
queues on interfaces that are offchannel when
the driver enables a queue.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-08-27 13:53:31 -04:00
..
aes_ccm.c mac80211: Don't squash error codes in key setup functions 2010-08-16 15:26:38 -04:00
aes_ccm.h mac80211: pass scratch buffer directly, remove additional pointers 2008-07-08 14:16:02 -04:00
aes_cmac.c mac80211: Don't squash error codes in key setup functions 2010-08-16 15:26:38 -04:00
aes_cmac.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00
agg-rx.c mac80211: AMPDU rx reorder timeout timer 2010-08-16 15:26:39 -04:00
agg-tx.c mac80211: update aggregation documentation 2010-06-14 15:39:28 -04:00
cfg.c mac80211: support runtime interface type changes 2010-08-27 13:53:31 -04:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
chan.c mac80211: make a function static 2010-05-28 13:41:27 -04:00
debugfs_key.c mac80211: use cipher suite selectors 2010-08-16 16:45:11 -04:00
debugfs_key.h mac80211: 802.11w - Use BIP (AES-128-CMAC) 2009-01-29 16:00:03 -05:00
debugfs_netdev.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem 2010-04-15 16:21:34 -04:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: make TX aggregation start/stop request async 2010-06-14 15:39:27 -04:00
debugfs_sta.h mac80211: RCU-ify STA info structure access 2008-03-06 15:30:46 -05:00
debugfs.c net/mac80211: Use wiphy_<level> 2010-08-25 14:33:17 -04:00
debugfs.h net: Remove unnecessary returns from void function()s 2010-05-17 23:23:14 -07:00
driver-ops.h mac80211: support runtime interface type changes 2010-08-27 13:53:31 -04:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: support runtime interface type changes 2010-08-27 13:53:31 -04:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c mac80211: allow drivers to request SM PS mode change 2010-08-16 15:26:40 -04:00
ibss.c net/mac80211: Use wiphy_<level> 2010-08-25 14:33:17 -04:00
ieee80211_i.h mac80211: fix offchannel queue stop 2010-08-27 13:53:31 -04:00
iface.c mac80211: support runtime interface type changes 2010-08-27 13:53:31 -04:00
Kconfig mac82011: Allow selection of minstrel_ht as default rc algorithm 2010-06-30 15:00:53 -04:00
key.c mac80211: allow vendor specific cipher suites 2010-08-27 13:27:07 -04:00
key.h mac80211: allow vendor specific cipher suites 2010-08-27 13:27:07 -04:00
led.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
led.h mac80211: rename files 2008-04-08 16:44:45 -04:00
main.c mac80211: switch to ieee80211_sdata_running 2010-08-27 13:53:30 -04:00
Makefile mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
mesh_hwmp.c mac80211: use common work struct 2010-06-14 15:38:17 -04:00
mesh_pathtbl.c mac80211: use common work struct 2010-06-14 15:38:17 -04:00
mesh_plink.c mac80211: avoid scheduling while atomic in mesh_rx_plink_frame 2010-06-24 15:42:30 -04:00
mesh.c mac80211: pull mgmt frame rx into rx handler 2010-06-14 15:39:26 -04:00
mesh.h mac80211: pull mgmt frame rx into rx handler 2010-06-14 15:39:26 -04:00
michael.c mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
michael.h mac80211: remove ieee80211_get_hdr_info 2008-07-08 14:16:01 -04:00
mlme.c mac80211: clean up ifdown/cleanup paths 2010-08-27 13:53:30 -04:00
offchannel.c mac80211: fix offchannel queue stop 2010-08-27 13:53:31 -04:00
pm.c mac80211: use common work struct 2010-06-14 15:38:17 -04:00
rate.c net/mac80211: Use wiphy_<level> 2010-08-25 14:33:17 -04:00
rate.h mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
rc80211_minstrel_debugfs.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
rc80211_minstrel_ht_debugfs.c minstrel_ht: move minstrel_mcs_groups declaration to header file 2010-06-24 15:42:18 -04:00
rc80211_minstrel_ht.c mac80211: freeing the wrong variable 2010-07-26 15:32:41 -04: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: don't complain about feedback for unrequested rates 2010-07-26 15:09:04 -04:00
rc80211_minstrel.h minstrel: make the rate control ops reusable from another rc implementation 2010-03-10 17:44:23 -05:00
rc80211_pid_algo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
rc80211_pid_debugfs.c net: mac80211: Fix a typo. 2010-08-16 15:26:40 -04:00
rc80211_pid.h mac80211/drivers: rewrite the rate control API 2008-10-31 19:00:23 -04:00
rx.c mac80211: allow changing port control protocol 2010-08-27 13:27:07 -04:00
scan.c mac80211: allow scan to complete from any context 2010-08-27 13:27:06 -04:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c net/mac80211: Use wiphy_<level> 2010-08-25 14:33:17 -04:00
sta_info.h mac80211: AMPDU rx reorder timeout timer 2010-08-16 15:26:39 -04:00
status.c net/mac80211: Use wiphy_<level> 2010-08-25 14:33:17 -04:00
tkip.c mac80211: remove wep dependency 2010-07-08 16:35:50 -04:00
tkip.h mac80211: remove wep dependency 2010-07-08 16:35:50 -04:00
tx.c mac80211: use subqueue helpers 2010-08-27 13:27:08 -04:00
util.c mac80211: fix offchannel queue stop 2010-08-27 13:53:31 -04:00
wep.c mac80211: use cipher suite selectors 2010-08-16 16:45:11 -04:00
wep.h mac80211: remove wep dependency 2010-07-08 16:35:50 -04:00
wme.c mac80211: fix-up build breakage in 2.6.33 2010-01-06 15:35:49 -05:00
wme.h mac80211: fix skb buffering issue 2010-01-05 16:21:40 -05:00
work.c mac80211: per interface idle notification 2010-08-16 15:26:40 -04:00
wpa.c mac80211: remove unused status flag checks 2010-08-16 16:45:21 -04:00
wpa.h mac80211: 802.11w - Add BIP (AES-128-CMAC) 2009-01-29 16:00:02 -05:00