linux/drivers/net/wireless/ath
Maya Erez eb26cff148 wil6210: fix race conditions between TX send and completion
There are 2 possible race conditions, both are solved by addition of
memory barrier:
1. wil_tx_complete reads the swhead to determine if the vring is
empty. In case the swhead was updated before the descriptor update
was performed in __wil_tx_vring/__wil_tx_vring_tso, the completion
loop will not end and as the DU bit may still be set from a previous
run, this skb can be handled as completed before it was sent, which
will lead to double free of the same SKB.
2. __wil_tx_vring/__wil_tx_vring_tso calculate the number of available
descriptors according to the swtail. In case the swtail is updated
before memset of ctx to zero is completed, we can handle this
descriptor while later on ctx is zeroed.

Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-05-28 11:19:09 +03:00
..
ar5523 cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
ath5k cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
ath6kl ath6kl: add ability to set debug uart baud rate 2016-04-26 14:57:44 +03:00
ath9k ath9k: allow tx99 for ar9002 based cards 2016-05-28 11:18:19 +03:00
ath10k ath10k: fix legacy rate packet debug messages 2016-05-24 20:54:48 +03:00
carl9170 cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
wcn36xx wcn36xx: Set SMD timeout to 10 seconds 2016-04-27 15:02:51 +03:00
wil6210 wil6210: fix race conditions between TX send and completion 2016-05-28 11:19:09 +03:00
ath.h cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
debug.c ath: Make ath_opmode_to_string understand OCB mode 2015-08-10 22:21:15 +03:00
dfs_pattern_detector.c ath: fix DFS timestamp wraparound reset condition 2015-10-09 11:47:31 +03:00
dfs_pattern_detector.h ath: use PRI value given by spec for fixed PRI 2015-09-27 15:50:30 +03:00
dfs_pri_detector.c ath: use PRI value given by spec for fixed PRI 2015-09-27 15:50:30 +03:00
dfs_pri_detector.h
hw.c
Kconfig ath: unify Kconfig with other vendors 2015-11-18 14:28:31 +02:00
key.c
main.c
Makefile
reg.h
regd_common.h
regd.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
regd.h cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
spectral_common.h
trace.c
trace.h