linux_dsm_epyc7002/drivers/net/wireless/ath/wil6210
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
..
cfg80211.c wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
debug.c wil6210: trace support 2013-05-22 15:08:27 -04:00
debugfs.c wil6210: add scatter-gather support 2014-03-17 13:44:16 -04:00
interrupt.c wil6210: fw error recovery 2014-03-17 13:44:18 -04:00
Kconfig wil6210: fix name of tracing config option 2013-06-12 15:06:52 -04:00
main.c wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
Makefile wil6210: Block ACK 2014-02-28 14:33:30 -05:00
netdev.c wil6210: use GRO 2014-03-17 13:44:18 -04:00
pcie_bus.c wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
rx_reorder.c wil6210: Block ACK 2014-02-28 14:33:30 -05:00
trace.c wil6210: trace support 2013-05-22 15:08:27 -04:00
trace.h wil6210: Align WMI header with latest FW 2013-07-22 16:54:37 -04:00
txrx.c wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
txrx.h wil6210: Block ACK 2014-02-28 14:33:30 -05:00
wil6210.h wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
wmi.c wil6210: fix race between disconnect and Tx NAPI 2014-03-17 13:44:19 -04:00
wmi.h wil6210: sync with new firmware 2013-03-13 14:26:21 -04:00