linux/drivers/net/wireless/ath/wil6210
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
..
boot_loader.h wil6210: report boot loader error 2015-08-06 09:44:02 +03:00
cfg80211.c wil6210: support regular scan on P2P_DEVICE interface 2016-04-26 14:57:45 +03:00
debug.c wil6210: print debug message when transmitting while disconnected 2016-04-26 14:57:45 +03:00
debugfs.c wil6210: add support for device led configuration 2016-05-11 22:45:20 +03:00
ethtool.c wil6210: use inline functions for register access 2015-08-06 09:43:43 +03:00
fw_inc.c wil6210: use inline functions for register access 2015-08-06 09:43:43 +03:00
fw.c wil6210: use inline functions for register access 2015-08-06 09:43:43 +03:00
fw.h
interrupt.c wil6210: prevent deep sleep of 60G device in critical paths 2016-04-26 14:57:46 +03:00
ioctl.c wil6210: clean ioctl debug message 2016-03-07 11:43:20 +02:00
Kconfig wil6210: dump firmware memory when firmware crashes 2015-10-09 11:39:19 +03:00
main.c wil6210: add support for device led configuration 2016-05-11 22:45:20 +03:00
Makefile wil6210: p2p initial support 2016-03-07 11:43:20 +02:00
netdev.c cfg80211: remove enum ieee80211_band 2016-04-12 15:56:15 +02:00
p2p.c wil6210: support regular scan on P2P_DEVICE interface 2016-04-26 14:57:45 +03:00
pcie_bus.c wil6210: P2P_DEVICE virtual interface support 2016-03-07 11:43:20 +02:00
pm.c wil6210: system power management 2015-08-06 09:43:56 +03:00
pmc.c wil6210: pmc logger bug fix 2015-10-09 11:39:09 +03:00
pmc.h wil6210: Add pmc debug mechanism memory management 2015-05-04 20:55:43 +03:00
rx_reorder.c wil6210: remove BACK RX and TX workers 2016-03-07 11:43:19 +02:00
trace.c
trace.h wil6210: switch to generated wmi.h 2016-03-07 11:43:20 +02:00
txrx.c wil6210: fix race conditions between TX send and completion 2016-05-28 11:19:09 +03:00
txrx.h wil6210: replay attack detection 2016-03-07 11:43:19 +02:00
wil6210.h wil6210: add support for device led configuration 2016-05-11 22:45:20 +03:00
wil_crash_dump.c wil6210: support for platform specific crash recovery 2016-01-07 15:00:44 +02:00
wil_platform.c wil6210: support for platform specific crash recovery 2016-01-07 15:00:44 +02:00
wil_platform.h wil6210: add support for platform specific notification events 2016-03-07 11:43:20 +02:00
wmi.c wil6210: add support for device led configuration 2016-05-11 22:45:20 +03:00
wmi.h wil6210: add support for device led configuration 2016-05-11 22:45:20 +03:00