linux/drivers/net/wireless
Lorenzo Bianconi e1352fde56 ath9k: fix decrypt_error initialization in ath_rx_tasklet()
ath_rx_tasklet() calls ath9k_rx_skb_preprocess() and ath9k_rx_skb_postprocess()
in a loop over the received frames. The decrypt_error flag is
initialized to false
just outside ath_rx_tasklet() loop. ath9k_rx_accept(), called by
ath9k_rx_skb_preprocess(),
only sets decrypt_error to true and never to false.
Then ath_rx_tasklet() calls ath9k_rx_skb_postprocess() and passes
decrypt_error to it.
So, after a decryption error, in ath9k_rx_skb_postprocess(), we can
have a leftover value
from another processed frame. In that case, the frame will not be marked with
RX_FLAG_DECRYPTED even if it is decrypted correctly.
When using CCMP encryption this issue can lead to connection stuck
because of CCMP
PN corruption and a waste of CPU time since mac80211 tries to decrypt an already
deciphered frame with ieee80211_aes_ccm_decrypt.
Fix the issue initializing decrypt_error flag at the begging of the
ath_rx_tasklet() loop.

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-08-13 15:17:24 -04:00
..
ath ath9k: fix decrypt_error initialization in ath_rx_tasklet() 2012-08-13 15:17:24 -04:00
b43 b43: fix logic in GPIO init 2012-08-02 13:51:47 -04:00
b43legacy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-07-10 23:56:33 -07:00
brcm80211 brcmsmac: use channel flags to restrict OFDM 2012-08-02 13:51:48 -04:00
hostap wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
ipw2x00 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-12 21:59:18 -07:00
iwlegacy Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-07-12 15:21:05 -04:00
iwlwifi iwlwifi: disable greenfield transmissions as a workaround 2012-08-06 14:29:59 -04:00
libertas libertas: fix two memory leaks 2012-08-02 13:51:47 -04:00
libertas_tf wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
mwifiex Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-07-20 12:30:48 -04:00
orinoco nl80211: move scan API to wdev 2012-07-12 12:10:41 +02:00
p54 wireless: Use eth_random_addr 2012-07-16 22:38:28 -07:00
prism54 wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
rt2x00 rt61pci: fix NULL pointer dereference in config_lna_gain 2012-08-06 14:29:58 -04:00
rtl818x wireless: Use eth_random_addr 2012-07-16 22:38:28 -07:00
rtlwifi Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-07-20 12:30:48 -04:00
ti Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-07-20 12:30:48 -04:00
zd1211rw wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
adm8211.c wireless: Use eth_random_addr 2012-07-16 22:38:28 -07:00
adm8211.h
airo_cs.c
airo.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-25 15:50:32 -07:00
airo.h
at76c50x-usb.c wireless: at76c50x: signedness bug in at76_dfu_get_state() 2012-08-10 14:50:26 -04:00
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
atmel.h
Kconfig iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
mac80211_hwsim.c mac80211_hwsim: fix possible race condition in usage of info->control.sta & control.vif 2012-07-26 15:37:57 -04:00
mac80211_hwsim.h
Makefile iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
mwl8k.c mwl8k: fix possible race condition in info->control.sta use 2012-07-11 16:24:55 -04:00
ray_cs.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: Fix potential memory leak in update_pmkid() 2012-08-10 14:50:25 -04:00
wl3501_cs.c
wl3501.h
zd1201.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
zd1201.h