alistair23-linux/drivers/net/wireless
Vladimir Kondratiev 097638a08a wil6210: fix race between disconnect and Tx NAPI
When disconnecting some CID, corresponded Tx vring get released. During vring
release, all descriptors get freed. It is possible that Tx NAPI working on the same
vring simultaneously. If it happens, descriptor may be double freed.

To protect from the race above, make sure NAPI won't process the same vring.
Introduce 'enabled' flag in the struct vring_tx_data. Proceed with Tx NAPI only if
'enabled' flag set. Prior to Tx vring release, clear this flag and make sure NAPI
get synchronized.

NAPI enablement status protected by wil->mutex, add protection where it was
missing and check for it.

During reset, disconnect all peers first, then proceed with the Rx vring. It allows for
the disconnect flow to observe proper 'wil->status' and correctly notify cfg80211 about
connection status change

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2014-03-17 13:44:19 -04:00
..
ath wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
b43 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
b43legacy net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
brcm80211 brcmfmac: remove mode field from brcmf_cfg80211_vif structure 2014-03-17 13:44:14 -04:00
cw1200 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
hostap Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-03-04 13:05:12 -05:00
ipw2x00 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
iwlegacy iwl4965: disable 8K A-MSDU by default 2014-03-04 13:28:36 -05:00
iwlwifi Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes 2014-03-14 14:33:19 -04:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2014-03-04 13:05:12 -05:00
libertas_tf
mwifiex mwifiex: add AMSDU inside AMPDU support 2014-03-14 14:49:14 -04:00
orinoco orinoco: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
p54 p54usb: fix leaks at failure path in p54u_probe() 2014-03-14 14:49:13 -04:00
prism54 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
rt2x00 net: Replace min macro with min_t 2014-03-03 15:35:54 -05:00
rtl818x rtl8180: move eeprom read stuff in a separate function 2014-03-17 13:44:15 -04:00
rtlwifi rtlwifi: rtl8723be: Fix array dimension problems 2014-03-13 14:05:40 -04:00
ti Drivers:net:wireless:ti:wl1251: Fixed Sparse invalid assignment warning 2014-03-04 13:28:36 -05:00
zd1211rw zd1211rw: slight optimization of addr compare 2013-12-26 13:31:33 -05:00
adm8211.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-01-17 14:43:17 -05:00
adm8211.h
airo.c airo: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:11:13 -05:00
airo.h
airo_cs.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
at76c50x-usb.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2014-01-13 14:40:59 -05:00
at76c50x-usb.h
atmel.c atmel: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:11:13 -05:00
atmel.h drivers/net/wireless: Fix FSF address in file headers 2013-12-11 10:56:20 -05:00
atmel_cs.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
atmel_pci.c wireless: delete non-required instances of include <linux/init.h> 2014-01-03 15:37:01 -05:00
Kconfig wireless: Kconfig: add missing dependency for airo_cs 2014-03-14 14:49:15 -04:00
mac80211_hwsim.c mac80211_hwsim: allow creation of single-channel radios with chanctx 2014-02-11 13:10:02 +01:00
mac80211_hwsim.h mac80211_hwsim: allow creation of single-channel radios with chanctx 2014-02-11 13:10:02 +01:00
Makefile cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets 2013-05-29 15:26:40 -04:00
mwl8k.c mwl8k: mwl8k_update_survey can be static 2014-03-06 14:29:58 -05:00
ray_cs.c drivers/net/wireless: Fix FSF address in file headers 2013-12-11 10:56:20 -05:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
wl3501.h
wl3501_cs.c wl3501_cs: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
zd1201.c zd1201: replace function ieee80211_{dsss_chan_to_freq, freq_to_dsss_chan} 2014-02-28 14:12:36 -05:00
zd1201.h