aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/Kconfig
diff options
context:
space:
mode:
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>2014-03-17 09:34:25 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-03-17 13:44:19 -0400
commit097638a08acde0320c44969a5dff3af105c341a0 (patch)
tree44551edf737386ad546046171d0ac2dc3b972283 /drivers/net/wireless/Kconfig
parent260e695196de8b91bbab482d3804e4e0312a59b6 (diff)
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>
Diffstat (limited to 'drivers/net/wireless/Kconfig')
0 files changed, 0 insertions, 0 deletions