linux/net/mac80211
Guy Eilam 2a33bee275 mac80211: fix race condition between assoc_done and first EAP packet
When associating to an AP, the station might miss the first EAP
packet that the AP sends due to a race condition between the association
success procedure and the rx flow in mac80211.
In such cases, the packet might fall in ieee80211_rx_h_check due to
the fact that the relevant rx->sta wasn't allocated yet.
Allocation of the relevant station info struct before actually
sending the association request and setting it with a new
dummy_sta flag solve this problem.
The station will accept only EAP packets from the AP while it
is in the pre-association/dummy state.
This dummy station entry is not seen by normal sta_info_get()
calls, only by sta_info_get_bss_rx().
The driver is not notified for the first insertion of the
dummy station. The driver is notified only after the association
is complete and the dummy flag is removed from the station entry.
That way, all the rest of the code flow should be untouched by
this change.

Signed-off-by: Guy Eilam <guy@wizery.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-08-26 10:47:55 -04:00
..
aes_ccm.c mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_ccm.h mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.c mac80211: use AES_BLOCK_SIZE 2011-07-08 11:11:24 -04:00
aes_cmac.h mac80211: fix CMAC races 2011-07-08 11:11:20 -04:00
agg-rx.c mac80211: check sta_info_get() return value 2011-07-20 15:04:36 -04:00
agg-tx.c wireless: Introduce defines for BAR TID_INFO & MULTI_TID fields 2011-08-22 14:45:58 -04:00
cfg.c mac80211: mesh gate fixes 2011-08-26 10:39:23 -04:00
cfg.h
chan.c mac80211: fix channel type recalculation with HT and non-HT interfaces 2011-03-14 14:46:58 -04:00
debugfs_key.c mac80211: fix CMAC races 2011-07-08 11:11:20 -04:00
debugfs_key.h mac80211: support separate default keys 2010-12-13 15:23:29 -05:00
debugfs_netdev.c {nl,cfg,mac}80211: let userspace make meshif mesh gate 2011-08-24 13:59:43 -04:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: fix debugfs printk format warning 2011-04-19 15:38:03 -04:00
debugfs_sta.h
debugfs.c mac80211: add basic support for WoWLAN 2011-05-05 14:59:20 -04:00
debugfs.h mac80211: refactor debugfs function generation code 2010-11-15 13:24:48 -05:00
driver-ops.h mac80211: remove offchannel_tx API 2011-08-08 16:04:05 -04:00
driver-trace.c mac80211: fix sparse warnings/errors 2009-08-04 16:43:25 -04:00
driver-trace.h mac80211: sync driver before TX 2011-07-20 15:04:35 -04:00
event.c cfg80211: use proper allocation flags 2009-07-10 15:01:49 -04:00
ht.c mac80211: Stop BA session event from device 2011-06-07 14:41:36 -04:00
ibss.c mac80211: fix IBSS teardown race 2011-06-08 14:19:05 -04:00
ieee80211_i.h mac80211: mesh gate implementation 2011-08-24 13:59:42 -04:00
iface.c net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared 2011-07-27 22:39:30 -07:00
Kconfig mac80211: improve mpath debugging 2011-08-24 13:59:41 -04:00
key.c mac80211: let key iteration get keys in install order 2011-07-15 13:38:33 -04:00
key.h mac80211: allow driver to disconnect after resume 2011-07-13 14:49:43 -04:00
led.c mac80211: remove stray extern 2011-01-05 16:07:12 -05:00
led.h mac80211: selective throughput LED trigger active 2010-12-22 14:33:37 -05:00
main.c mac80211: Don't use a buf_size=0 in ADDBA requests 2011-08-08 16:04:09 -04:00
Makefile mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
mesh_hwmp.c {nl,cfg,mac}80211: let userspace make meshif mesh gate 2011-08-24 13:59:43 -04:00
mesh_pathtbl.c mac80211: mesh gate fixes 2011-08-26 10:39:23 -04:00
mesh_plink.c mac80211: update mesh peering frame format 2011-08-22 14:46:00 -04:00
mesh.c mac80211: mesh gate fixes 2011-08-26 10:39:23 -04:00
mesh.h {nl,cfg,mac}80211: let userspace set RANN interval 2011-08-24 13:59:43 -04:00
michael.c
michael.h
mlme.c mac80211: fix race condition between assoc_done and first EAP packet 2011-08-26 10:47:55 -04:00
offchannel.c mac80211: Optimize scans on current operating channel. 2011-02-04 16:30:32 -05:00
pm.c mac80211: be more careful in suspend/resume 2011-07-15 13:39:42 -04:00
rate.c cfg80211/mac80211: improve ad-hoc multicast rate handling 2010-11-24 16:19:35 -05:00
rate.h mac80211: add the minstrel_ht rate control algorithm 2010-06-02 16:12:59 -04:00
rc80211_minstrel_debugfs.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
rc80211_minstrel_ht_debugfs.c mac80211: disallow seeks in minstrel debug code 2010-09-16 10:33:17 +02:00
rc80211_minstrel_ht.c mac80211: Don't use EAPOL frames for rate sampling 2011-08-09 15:52:02 -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_ht: fixed rate mode through debugfs 2011-06-01 15:12:29 -04:00
rc80211_minstrel.h minstrel_ht: fixed rate mode through debugfs 2011-06-01 15:12:29 -04: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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2010-10-23 11:47:02 -07:00
rc80211_pid.h Fix common misspellings 2011-03-31 11:26:23 -03:00
rx.c mac80211: fix race condition between assoc_done and first EAP packet 2011-08-26 10:47:55 -04:00
scan.c mac80211: implement scan supported rates 2011-07-19 16:50:00 -04:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c mac80211: fix race condition between assoc_done and first EAP packet 2011-08-26 10:47:55 -04:00
sta_info.h mac80211: fix race condition between assoc_done and first EAP packet 2011-08-26 10:47:55 -04:00
status.c mac80211: Tear down BA session on BAR tx failure 2011-08-22 14:45:58 -04:00
tkip.c mac80211: allow driver access to TKIP RX P1K 2011-07-15 13:38:32 -04:00
tkip.h mac80211: fix TKIP races, make API easier to use 2011-07-08 11:11:19 -04:00
tx.c mac80211: fix mesh beacon format 2011-08-22 14:45:59 -04:00
util.c cfg80211/mac80211: move information element parsing logic to cfg80211 2011-08-12 13:45:03 -04:00
wep.c mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
wep.h mac80211: remove the dependency on crypto_blkcipher 2011-04-04 16:20:00 -04:00
wme.c wireless: unify QoS control field definitions 2011-06-27 15:09:39 -04:00
wme.h wireless: unify QoS control field definitions 2011-06-27 15:09:39 -04:00
work.c mac80211: sync driver before TX 2011-07-20 15:04:35 -04:00
wpa.c mac80211: simplify RX PN/IV handling 2011-07-08 11:42:21 -04:00
wpa.h