linux/net/mac80211
Johannes Berg b1b1ae2c1c mac80211: don't track HT capability changes
The code here (more or less accidentally) tracks the HT capability of
the AP when connected, and we found at least one AP that erroneously
toggles its 20/40 capability bit when changing between 20/40 MHz. The
connection to the AP is then broken because we set the 40 MHz disable
flag based on this, as soon as it switches to 20 MHz, but because the
flag then changed, we disconnect.

I'd be inclined to just ignore this issue, since we then reconnect
while the AP is in 20 MHz mode and never use 40 MHz with it again,
but this code is a bit strange anyway - we don't use the capabilities
for anything else.

Change the code to simply not track the HT capabilities at all, which
assumes that the AP at least sets 20/40 capability when operating in
40 MHz (or higher). If not, rate scaling might end up using only the
narrower bandwidth.

The new behaviour also mirrors what VHT does, where we only check the
VHT operation.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2017-10-13 14:29:02 +02:00
..
Kconfig
Makefile mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aead_api.c mac80211: use crypto_aead_authsize() 2017-10-11 15:46:45 +02:00
aead_api.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_ccm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_cmac.c
aes_cmac.h
aes_gcm.h mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
aes_gmac.c
aes_gmac.h
agg-rx.c mac80211: add documentation to ieee80211_rx_ba_offl() 2017-09-21 11:42:00 +02:00
agg-tx.c mac80211: agg-tx: call drv_wake_tx_queue in proper context 2017-09-05 16:25:07 +02:00
cfg.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
chan.c
debug.h
debugfs.c
debugfs.h
debugfs_key.c
debugfs_key.h
debugfs_netdev.c networking: convert many more places to skb_put_zero() 2017-06-16 11:48:35 -04:00
debugfs_netdev.h
debugfs_sta.c mac80211: Dynamically set CoDel parameters per station 2017-05-17 16:03:40 +02:00
debugfs_sta.h
driver-ops.c
driver-ops.h
ethtool.c
fils_aead.c
fils_aead.h
ht.c mac80211: Simplify locking in ieee80211_sta_tear_down_BA_sessions() 2017-09-21 11:42:01 +02:00
ibss.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
ieee80211_i.h mac80211: only remove AP VLAN frames from TXQ 2017-10-11 09:49:40 +02:00
iface.c mac80211: only remove AP VLAN frames from TXQ 2017-10-11 09:49:40 +02:00
key.c
key.h
led.c
led.h
main.c mac80211: disentangle iflist_mtx and chanctx_mtx 2017-04-26 23:17:44 +02:00
mesh.c mac80211: use offsetofend() 2017-09-21 11:42:01 +02:00
mesh.h net/mac80211/mesh_plink: Convert timers to use timer_setup() 2017-10-06 11:47:52 +02:00
mesh_hwmp.c mac80211: use offsetofend() 2017-09-21 11:42:01 +02:00
mesh_pathtbl.c mac80211: Use setup_timer instead of init_timer for mesh path 2017-03-16 10:54:04 +01:00
mesh_plink.c net/mac80211/mesh_plink: Convert timers to use timer_setup() 2017-10-06 11:47:52 +02:00
mesh_ps.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
mesh_sync.c
michael.c
michael.h
mlme.c mac80211: don't track HT capability changes 2017-10-13 14:29:02 +02:00
ocb.c
offchannel.c mac80211: flush hw_roc_start work before cancelling the ROC 2017-09-05 16:25:07 +02:00
pm.c cfg80211: add request id to cfg80211_sched_scan_*() api 2017-04-28 14:51:43 +02:00
rate.c mac80211: Dynamically set CoDel parameters per station 2017-05-17 16:03:40 +02:00
rate.h mac80211: make rate control tx status API more extensible 2017-04-28 10:57:33 +02:00
rc80211_minstrel.c mac80211: make rate control tx status API more extensible 2017-04-28 10:57:33 +02:00
rc80211_minstrel.h
rc80211_minstrel_debugfs.c
rc80211_minstrel_ht.c mac80211: make rate control tx status API more extensible 2017-04-28 10:57:33 +02:00
rc80211_minstrel_ht.h
rc80211_minstrel_ht_debugfs.c
rx.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
scan.c mac80211: oce: enable receiving of bcast probe resp 2017-09-21 11:42:00 +02:00
spectmgmt.c networking: convert many more places to skb_put_zero() 2017-06-16 11:48:35 -04:00
sta_info.c net/mac80211/mesh_plink: Convert timers to use timer_setup() 2017-10-06 11:47:52 +02:00
sta_info.h net/mac80211/mesh_plink: Convert timers to use timer_setup() 2017-10-06 11:47:52 +02:00
status.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
tdls.c net: manual clean code which call skb_put_[data:zero] 2017-06-20 13:30:15 -04:00
tkip.c
tkip.h
trace.c
trace.h mac80211: add the action to the drv_ampdu_action tracepoint 2017-06-13 11:06:39 +02:00
trace_msg.h
tx.c mac80211: only remove AP VLAN frames from TXQ 2017-10-11 09:49:40 +02:00
util.c mac80211: use offsetofend() 2017-09-21 11:42:01 +02:00
vht.c mac80211: fix bandwidth computation for TDLS peers 2017-10-02 14:06:19 +02:00
wep.c
wep.h
wme.c
wme.h
wpa.c mac80211: aead api to reduce redundancy 2017-10-11 09:37:35 +02:00
wpa.h