android_kernel_google_msm/net/mac80211
Johannes Berg b8d92c9c14 mac80211: don't process work item with wrong frame
When we process a frame, we currently just match it
to the work struct by the MAC addresses, and not by
the work type. This means that we can end up doing
the work for an association request item when (for
whatever reason) we receive another frame type, for
example a probe response. Processing the wrong type
of frame will lead to completely invalid data being
processed, and will lead to various problems like
thinking the association was successful even if the
AP never sent an assocation response.

Fix this by making each processing function check
that it is invoked for the right work struct type
only and continue processing otherwise (and drop
frames that we didn't expect).

This bug was uncovered during the debugging for
https://bugzilla.kernel.org/show_bug.cgi?id=15862
but doesn't seem to be the cause for any of the
various problems reported there.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-05-12 16:28:52 -04:00
..
aes_ccm.c
aes_ccm.h
aes_cmac.c
aes_cmac.h
agg-rx.c mac80211: trace interface name 2009-12-21 18:38:54 -05:00
agg-tx.c mac80211: remove bogus TX agg state assignment 2010-04-19 16:34:11 -04:00
cfg.c cfg80211/mac80211: allow registering for and sending action frames 2010-02-15 16:14:15 -05:00
cfg.h
debugfs.c mac80211: Added a new debugfs file for reading channel_type 2010-02-08 16:50:57 -05:00
debugfs.h cfg80211/mac80211: use debugfs_remove_recursive 2009-10-30 16:49:18 -04:00
debugfs_key.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_key.h
debugfs_netdev.c mac80211: Fix memory leak in ieee80211_if_write() 2010-03-10 16:29:11 -05:00
debugfs_netdev.h mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
debugfs_sta.c mac80211: reduce stack usage in sta_agg_status_read() 2010-02-01 15:40:07 -05:00
debugfs_sta.h
driver-ops.h mac80211: remove get_tx_stats() driver op 2010-02-08 16:51:01 -05:00
driver-trace.c
driver-trace.h mac80211: remove get_tx_stats() driver op 2010-02-08 16:51:01 -05:00
event.c
ht.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-28 15:09:11 -05:00
ibss.c mac80211: allow station add/remove to sleep 2010-02-08 16:50:53 -05:00
ieee80211_i.h cfg80211/mac80211: allow registering for and sending action frames 2010-02-15 16:14:15 -05:00
iface.c mac80211: fix netdev rename 2010-02-15 16:12:52 -05:00
Kconfig mac80211: remove payload alignment warning 2009-12-21 18:56:09 -05:00
key.c mac80211: add ieee80211_sdata_running 2009-12-28 16:54:49 -05:00
key.h mac80211 : fix a race with update_tkip_key 2009-12-22 13:31:14 -05:00
led.c
led.h
main.c mac80211: annotate station rcu dereferences 2010-04-06 15:53:30 -04:00
Makefile mac80211: Generalize off-channel operation helpers from scan code 2009-12-28 16:55:01 -05:00
mesh.c mac80211: Handle mesh action frames in ieee80211_rx_h_action 2010-04-06 15:53:28 -04:00
mesh.h mac80211: Revert 'Use correct sign for mesh active path refresh' 2009-12-10 16:12:52 -05:00
mesh_hwmp.c mac80211: fix PREQ processing and one small bug 2010-03-30 15:37:23 -04:00
mesh_pathtbl.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-12-25 16:34:56 -08:00
mesh_plink.c mac80211: allow station add/remove to sleep 2010-02-08 16:50:53 -05:00
michael.c
michael.h
mlme.c mac80211: remove association work when processing deauth request 2010-05-07 14:26:38 -04:00
offchannel.c mac80211: Fixed netif_tx_wake_all_queues in IBSS mode 2010-01-15 16:58:28 -05:00
pm.c mac80211: allow station add/remove to sleep 2010-02-08 16:50:53 -05:00
rate.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-02-26 16:54:45 -05:00
rate.h mac80211: Fix HT rate control configuration 2010-03-03 15:39:21 -05:00
rc80211_minstrel.c rc80211_minstrel: fix contention window calculation 2009-09-23 11:35:42 -04:00
rc80211_minstrel.h mac80211: Remove unnused throughput field from minstrel_rate. 2009-08-28 14:40:34 -04:00
rc80211_minstrel_debugfs.c net: file_operations should be const 2009-09-02 01:03:53 -07:00
rc80211_pid.h
rc80211_pid_algo.c mac80211: pid: replace open-coded msecs_to_jiffies 2010-01-19 16:25:15 -05:00
rc80211_pid_debugfs.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
rx.c mac80211: Handle mesh action frames in ieee80211_rx_h_action 2010-04-06 15:53:28 -04:00
scan.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-02-08 16:38:38 -05:00
spectmgmt.c mac80211: reduce reliance on netdev 2009-12-21 18:38:52 -05:00
sta_info.c mac80211: annotate station rcu dereferences 2010-04-06 15:53:30 -04:00
sta_info.h mac80211: Deny TX BA session requests during disassociation 2010-02-10 16:36:52 -05:00
status.c cfg80211/mac80211: allow registering for and sending action frames 2010-02-15 16:14:15 -05:00
tkip.c mac80211: pass vif and station to update_tkip_key 2010-01-22 16:08:55 -05:00
tkip.h
tx.c mac80211: move netdev queue enabling to correct spot 2010-03-30 15:37:28 -04:00
util.c mac80211: move netdev queue enabling to correct spot 2010-03-30 15:37:28 -04:00
wep.c mac80211: avoid NULL ptr deref when using WEP 2010-01-22 12:39:14 -05:00
wep.h
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: don't process work item with wrong frame 2010-05-12 16:28:52 -04:00
wpa.c mac80211: move control.hw_key assignment 2010-01-19 16:25:19 -05:00
wpa.h