wil6210: protect wil_vring_fini_tx in parallel to tx completions
authorMaya Erez <qca_merez@qca.qualcomm.com>
Mon, 16 May 2016 19:23:32 +0000 (22:23 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Sat, 28 May 2016 08:19:17 +0000 (11:19 +0300)
commit34b8886e502a62d1355ccc0420044aa2749a24cd
treee87a31e3f8a4571cc4b50ee8673f36b7c2051805
parentab6d7cc3eab4093caf91ba8b27590c4080d7d01c
wil6210: protect wil_vring_fini_tx in parallel to tx completions

napi_synchronize is called before releasing the vring, with the
assumption that setting txdata->enabled to 0 will prevent handling
of this vring in the next scheduled napi.
To guarantee this assumption, a memory barrier is added after disabling
the txdata.
In addition, as the ctx is zeroed in wil_tx_complete after this
descriptor is handled (protected by wmb), ctx needs to be checked
before releasing this descriptor in wil_vring_free.

Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/txrx.c