Michal Kazior
ab499db80f
mac80211: prevent possible crypto tx tailroom corruption
...
There was a possible race between
ieee80211_reconfig() and
ieee80211_delayed_tailroom_dec(). This could
result in inability to transmit data if driver
crashed during roaming or rekeying and subsequent
skbs with insufficient tailroom appeared.
This race was probably never seen in the wild
because a device driver would have to crash AND
recover within 0.5s which is very unlikely.
I was able to prove this race exists after
changing the delay to 10s locally and crashing
ath10k via debugfs immediately after GTK
rekeying. In case of ath10k the counter went below
0. This was harmless but other drivers which
actually require tailroom (e.g. for WEP ICV or
MMIC) could end up with the counter at 0 instead
of >0 and introduce insufficient skb tailroom
failures because mac80211 would not resize skbs
appropriately anymore.
Fixes: 8d1f7ecd2a ("mac80211: defer tailroom counter manipulation when roaming")
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2015-05-29 13:04:46 +02:00
..
aes_ccm.c
mac80111: aes_ccm: cleanup ieee80211_aes_key_setup_encrypt()
2015-03-30 10:40:03 +02:00
aes_ccm.h
mac80111: Add CCMP-256 cipher
2015-01-27 11:07:35 +01:00
aes_cmac.c
mac80111: Add BIP-CMAC-256 cipher
2015-01-27 11:09:13 +01:00
aes_cmac.h
mac80111: Add BIP-CMAC-256 cipher
2015-01-27 11:09:13 +01:00
aes_gcm.c
mac80111: aes_gcm: clean up ieee80211_aes_gcm_key_setup_encrypt()
2015-03-30 10:42:02 +02:00
aes_gcm.h
mac80111: Add GCMP and GCMP-256 ciphers
2015-01-27 11:06:09 +01:00
aes_gmac.c
mac80211: Fix misplaced return in AES-GMAC key setup
2015-03-30 10:38:07 +02:00
aes_gmac.h
mac80111: Add BIP-GMAC-128 and BIP-GMAC-256 ciphers
2015-01-27 11:10:13 +01:00
agg-rx.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-04-02 16:16:53 -04:00
agg-tx.c
mac80211: add an intermediate software queue implementation
2015-04-01 20:44:34 +02:00
cfg.c
mac80211: check fast-xmit on station change
2015-05-20 15:08:36 +02:00
cfg.h
chan.c
mac80211: adjust reserved chan_ctx when assigned to vif
2015-05-07 14:24:52 +02:00
debug.h
mac80211: 802.11p OCB mode support
2014-11-04 13:18:21 +01:00
debugfs.c
mac80211: move dot11 counters under MAC80211_DEBUG_COUNTERS
2015-05-05 14:21:54 +02:00
debugfs.h
debugfs_key.c
mac80111: Add BIP-GMAC-128 and BIP-GMAC-256 ciphers
2015-01-27 11:10:13 +01:00
debugfs_key.h
debugfs_netdev.c
mac80211: remove drop_unencrypted code
2015-03-20 11:37:36 +01:00
debugfs_netdev.h
debugfs_sta.c
mac80211: clean up station debugfs
2015-05-05 14:21:55 +02:00
debugfs_sta.h
driver-ops.h
mac80211: extend get_tkip_seq to all keys
2015-05-06 13:29:59 +02:00
ethtool.c
mac80211: remove sta->tx_fragments counter
2015-05-05 14:21:55 +02:00
event.c
ht.c
mac80211: add VHT support for IBSS
2015-03-30 10:48:26 +02:00
ibss.c
mac80211: check fast-xmit if IBSS STA QoS changed
2015-05-11 14:01:36 +02:00
ieee80211_i.h
mac80211: fix throughput LED trigger
2015-05-11 19:16:04 +02:00
iface.c
mac80211: use per-CPU TX/RX statistics
2015-04-24 11:16:11 +02:00
Kconfig
mac80211: move dot11 counters under MAC80211_DEBUG_COUNTERS
2015-05-05 14:21:54 +02:00
key.c
mac80211: validate cipher scheme PN length better
2015-05-06 13:30:00 +02:00
key.h
mac80211: extend get_key() to return PN for all ciphers
2015-05-06 13:30:00 +02:00
led.c
mac80211: fix throughput LED trigger
2015-05-11 19:16:04 +02:00
led.h
mac80211: make LED triggering depend on activation
2015-05-05 14:21:56 +02:00
main.c
mac80211: prevent possible crypto tx tailroom corruption
2015-05-29 13:04:46 +02:00
Makefile
mac80111: Add BIP-GMAC-128 and BIP-GMAC-256 ciphers
2015-01-27 11:10:13 +01:00
mesh.c
Lots of updates for net-next; along with the usual flurry
2015-03-31 16:39:04 -04:00
mesh.h
mac80211: implement cfg80211_ops to query mesh proxy path table
2014-10-09 11:19:07 +02:00
mesh_hwmp.c
mac80211: remove unnecessary break after return
2014-07-15 16:27:00 -07:00
mesh_pathtbl.c
mac80211: implement cfg80211_ops to query mesh proxy path table
2014-10-09 11:19:07 +02:00
mesh_plink.c
mac80211: introduce plink lock for plink fields
2015-04-20 13:05:29 +02:00
mesh_ps.c
mesh_sync.c
mac80211: remove BUG_ON usage
2014-04-29 17:59:27 +02:00
michael.c
michael.h
mlme.c
mac80211: disconnect TDLS stations on STA CSA
2015-05-20 15:14:54 +02:00
ocb.c
mac80211: 802.11p OCB mode support
2014-11-04 13:18:21 +01:00
offchannel.c
mac80211: let flush() drop packets when possible
2015-01-14 09:31:18 +01:00
pm.c
mac80211: start queues if driver rejected wowlan
2015-03-04 10:34:09 +01:00
rate.c
mac80211: lock rate control
2015-04-20 13:05:29 +02:00
rate.h
mac80211: lock rate control
2015-04-20 13:05:29 +02:00
rc80211_minstrel.c
mac80211: add standard deviation to Minstrel stats
2015-04-01 20:44:33 +02:00
rc80211_minstrel.h
mac80211: add standard deviation to Minstrel stats
2015-04-01 20:44:33 +02:00
rc80211_minstrel_debugfs.c
mac80211: add standard deviation to Minstrel stats
2015-04-01 20:44:33 +02:00
rc80211_minstrel_ht.c
mac80211: add max lossless throughput per rate
2015-04-01 20:44:32 +02:00
rc80211_minstrel_ht.h
mac80211: add max lossless throughput per rate
2015-04-01 20:44:32 +02:00
rc80211_minstrel_ht_debugfs.c
mac80211: add standard deviation to Minstrel stats
2015-04-01 20:44:33 +02:00
rx.c
mac80211: move dot11 counters under MAC80211_DEBUG_COUNTERS
2015-05-05 14:21:54 +02:00
scan.c
mac80211: IBSS fix scan request
2015-03-30 10:47:56 +02:00
spectmgmt.c
mac80211: remove unused variable in ieee80211_parse_ch_switch_ie()
2014-12-17 15:45:17 +01:00
sta_info.c
mac80211: make station hash table max_size configurable
2015-04-23 17:26:06 +02:00
sta_info.h
mac80211: add missing documentation for rate_ctrl_lock
2015-05-06 16:00:32 +02:00
status.c
mac80211: move dot11 counters under MAC80211_DEBUG_COUNTERS
2015-05-05 14:21:54 +02:00
tdls.c
mac80211: disconnect TDLS stations on STA CSA
2015-05-20 15:14:54 +02:00
tkip.c
tkip.h
trace.c
mac80211: Move message tracepoints to their own header
2015-04-07 12:32:09 -04:00
trace.h
mac80211: extend get_tkip_seq to all keys
2015-05-06 13:29:59 +02:00
trace_msg.h
mac80211: Move message tracepoints to their own header
2015-04-07 12:32:09 -04:00
tx.c
mac80211: remove useless skb->encapsulation check
2015-05-05 15:25:33 +02:00
util.c
cfg80211: move IE split utilities here from mac80211
2015-04-07 13:56:41 +02:00
vht.c
mac80211: TDLS: support VHT between peers
2015-03-03 15:56:07 +01:00
wep.c
mac80211: fix network header breakage during encryption
2014-10-23 20:40:01 +02:00
wep.h
wme.c
mac80211: synchronously reserve TID per station
2014-11-19 18:45:36 +01:00
wme.h
mac80211: add WMM admission control support
2014-10-22 10:42:09 +02:00
wpa.c
mac80211: Get IV len from key conf and not cipher scheme
2015-03-17 12:34:26 +01:00
wpa.h
mac80111: Add BIP-GMAC-128 and BIP-GMAC-256 ciphers
2015-01-27 11:10:13 +01:00