linux/net/mac80211
Helmut Schaa 69f817b654 mac80211: Restore rx.fc before every invocation of ieee80211_invoke_rx_handlers
This patch fixes a problem with rx handling on multiple interfaces. Especially
when using hardware-scanning and a wireless driver (i.e. iwlwifi) which is
able to receive data while scanning.

The rx handlers can modify the skb and the frame control field (see
ieee80211_rx_h_remove_qos_control) but since every interface gets its own
copy of the skb each should get its own copy of rx.fc too.

In my case the wlan0-interface did not remove the qos-control from the frame
because the corresponding flag in rx.fc was already removed while processing
the frame on the master interface. Therefore somehow corrupted frames were
passed to the userspace.

Signed-off-by: Helmut Schaa <hschaa@suse.de>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-28 15:00:50 -08:00
..
aes_ccm.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
aes_ccm.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
cfg.c mac80211: implement station stats retrieval 2008-01-28 14:59:53 -08:00
cfg.h [MAC80211]: rename ieee80211_cfg.h to cfg.h 2007-10-10 16:52:34 -07:00
debugfs_key.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
debugfs_key.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_netdev.c mac80211: clean up eapol frame handling/port control 2008-01-28 14:59:45 -08:00
debugfs_netdev.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs_sta.c [MAC80211]: kill vlan_id 2007-10-10 16:52:33 -07:00
debugfs_sta.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
debugfs.c [MAC80211]: remove key threshold stuff 2007-10-10 16:52:29 -07:00
debugfs.h [MAC80211]: Add debugfs attributes. 2007-05-05 11:46:38 -07:00
event.c [NET]: Introduce and use print_mac() and DECLARE_MAC_BUF() 2007-10-10 16:51:42 -07:00
ieee80211_i.h mac80211: clean up eapol handling in TX path 2008-01-28 14:59:46 -08:00
ieee80211_iface.c mac80211: clean up eapol frame handling/port control 2008-01-28 14:59:45 -08:00
ieee80211_ioctl.c introduce WEXT scan capabilities 2008-01-28 14:58:25 -08:00
ieee80211_key.h [PATCH] mac80211: remove crypto algorithm typedef 2007-10-10 16:53:00 -07:00
ieee80211_led.c [MAC80211]: Add association LED trigger 2007-10-10 16:54:20 -07:00
ieee80211_led.h [MAC80211]: Add association LED trigger 2007-10-10 16:54:20 -07:00
ieee80211_rate.c mac80211: make PID rate control algorithm the default 2008-01-28 14:59:41 -08:00
ieee80211_rate.h mac80211: add PID controller based rate control algorithm 2008-01-28 14:59:18 -08:00
ieee80211_sta.c mac80211: don't read ERP information from (re)association response 2008-01-28 14:59:54 -08:00
ieee80211.c mac80211: clean up eapol handling in TX path 2008-01-28 14:59:46 -08:00
Kconfig net/mac80211/Kconfig: whitespace corrections 2008-01-28 14:59:55 -08:00
key.c [MAC80211]: remove ALG_NONE 2007-10-10 16:54:18 -07:00
Makefile rc80211-pid: add debugging 2008-01-28 14:59:44 -08:00
michael.c [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
michael.h [MAC80211]: Add mac80211 wireless stack. 2007-05-05 11:45:53 -07:00
rc80211_pid_algo.c rc80211-pid: export tuning parameters through debugfs 2008-01-28 14:59:44 -08:00
rc80211_pid_debugfs.c rc80211-pid: add debugging 2008-01-28 14:59:44 -08:00
rc80211_pid.h rc80211-pid: export tuning parameters through debugfs 2008-01-28 14:59:44 -08:00
rc80211_simple.c mac80211: clean up rate selection 2008-01-28 14:59:17 -08:00
regdomain.c [MAC80211]: remove turbo modes 2007-10-10 16:49:27 -07:00
rx.c mac80211: Restore rx.fc before every invocation of ieee80211_invoke_rx_handlers 2008-01-28 15:00:50 -08:00
sta_info.c [NET]: Convert init_timer into setup_timer 2008-01-28 14:53:35 -08:00
sta_info.h mac80211: adding 802.11n HT framework definitions 2008-01-28 14:55:30 -08:00
tkip.c [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
tkip.h [PATCH] mac80211: fix TKIP IV update 2007-10-10 16:53:16 -07:00
tx.c mac80211: move tx crypto decision 2008-01-28 14:59:53 -08:00
util.c mac80211: clean up eapol handling in TX path 2008-01-28 14:59:46 -08:00
wep.c mac80211: move tx crypto decision 2008-01-28 14:59:53 -08:00
wep.h [PATCH] mac80211: remove ieee80211_wep_get_keyidx 2007-10-10 16:53:14 -07:00
wme.c [MAC80211]: Use htons() where appropriate. 2008-01-28 14:58:04 -08:00
wme.h [MAC80211]: move QoS rx handlers into rx.c 2007-10-10 16:47:30 -07:00
wpa.c mac80211: move tx crypto decision 2008-01-28 14:59:53 -08:00
wpa.h [PATCH] mac80211: consolidate encryption 2007-10-10 16:53:14 -07:00