linux-hardened/drivers/net/wireless
Johannes Berg b8730b403a iwlwifi: dvm: fix the passive-no-RX workaround
Alex Romosan reported that since the mac80211 changes in
"mac80211: start auth/assoc timeout on frame status" and
the subsequent fixes in "mac80211: fix auth/assoc timeout
handling" (commits 1672c0e319 and 89afe614c0) there's
sometimes an issue connecting to a 5 GHz network with the
iwlwifi DVM driver.

The reason appears to be that since these commits any bad
TX status makes mac80211 immediately try again, causing
all of the authentication attempts to be quickly rejected
by the firmware as it hasn't heard a beacon yet. Before,
it would wait for the timeout regardless of status.

To fix this, invoke the passive-no-RX workaround when not
associated yet as well. This will cause the first frame
to get lost, but then the driver will stop the queues and
the second attempt will only be transmitted after hearing
a beacon, thus delaying it appropriately to not make the
firmware reject it again.

Reported-by: Alex Romosan <romosan@sycorax.lbl.gov>
Tested-by: Alex Romosan <romosan@sycorax.lbl.gov>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2013-03-28 16:31:26 +01:00
..
ath Merge branch 'for-linville' of git://github.com/kvalo/ath6kl 2013-02-15 14:06:32 -05:00
b43 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2013-01-28 13:54:03 -05:00
b43legacy Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-12-11 16:24:55 -05:00
brcm80211 brcmfmac: fix missing unlock on error in brcmf_notify_vif_event() 2013-02-22 14:50:47 -05:00
hostap net: wireless: hostap: hostap_ap.c: Return -ENOMEM instead of -1 for if kmalloc() fails. 2013-02-18 15:30:40 -05:00
ipw2x00 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
iwlegacy Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-02-15 13:59:53 -05:00
iwlwifi iwlwifi: dvm: fix the passive-no-RX workaround 2013-03-28 16:31:26 +01:00
libertas cfg80211: pass wiphy to cfg80211_ref_bss/put_bss 2013-02-11 18:44:52 +01:00
libertas_tf mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
mwifiex mwifiex: fix system freeze while reloading driver 2013-02-22 14:50:46 -05:00
orinoco net: wireless: orinoco: orinoco_usb.c: fix DMA buffers on stack 2013-02-18 15:30:40 -05:00
p54 p54usb: corrected USB ID for T-Com Sinus 154 data II 2013-02-08 14:51:32 -05:00
prism54 prism54: bug in getting auth type 2013-01-22 16:01:29 -05:00
rt2x00 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-02-15 13:59:53 -05:00
rtl818x rtl8187: remove __dev* attributes 2012-12-06 15:04:59 -05:00
rtlwifi rtlwifi: usb: allocate URB control message setup_packet and data buffer separately 2013-02-18 15:30:40 -05:00
ti Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2013-02-15 13:59:53 -05:00
zd1211rw treewide: fix typo of "suppport" in various comments 2012-11-19 14:13:52 +01:00
adm8211.c wireless: remove __dev* attributes 2012-12-06 15:04:55 -05:00
adm8211.h
airo.c wireless: remove __dev* attributes 2012-12-06 15:04:55 -05:00
airo.h
airo_cs.c
at76c50x-usb.c wireless: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-11-14 14:55:32 -05:00
at76c50x-usb.h
atmel.c treewide: fix typo of "suport" in various comments and Kconfig 2012-11-19 14:16:09 +01:00
atmel.h
atmel_cs.c
atmel_pci.c atmel: remove __dev* attributes 2012-12-06 15:04:56 -05:00
Kconfig drivers: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
mac80211_hwsim.c mac80211_hwsim: ask mac80211 to reserve space for chanctx.drv_priv 2013-02-15 09:41:45 +01:00
mac80211_hwsim.h
Makefile wireless: fix Atheros drivers compilation 2012-12-17 15:48:43 -05:00
mwl8k.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2013-02-14 14:23:33 -05:00
ray_cs.c drivers/net/wireless: need consider the not '\0' terminated string. 2013-01-22 16:01:29 -05:00
ray_cs.h
rayctl.h
rndis_wlan.c cfg80211: pass wiphy to cfg80211_ref_bss/put_bss 2013-02-11 18:44:52 +01:00
wl3501.h
wl3501_cs.c wl3501_cs: use is_broadcast_ether_addr() instead of memcmp() 2012-09-07 15:03:40 -04:00
zd1201.c
zd1201.h