linux_dsm_epyc7002/drivers/net/wireless/ath/ath10k
Michal Kazior 64badcb6d6 ath10k: workaround fw beaconing bug
Some firmware revisions don't wait for beacon tx
completion before sending another SWBA event. This
could lead to hardware using old (freed) beacon
data in some cases, e.g. tx credit starvation
combined with missed TBTT. This is very very rare.

On non-IOMMU-enabled hosts this could be a
possible security issue because hw could beacon
some random data on the air.  On IOMMU-enabled
hosts DMAR faults would occur in most cases and
target device would crash.

Since there are no beacon tx completions (implicit
nor explicit) propagated to host the only
workaround for this is to allocate a DMA-coherent
buffer for a lifetime of a vif and use it for all
beacon tx commands. Worst case for this approach
is some beacons may become corrupted, e.g. garbled
IEs or out-of-date TIM bitmap.

Keep the original beacon-related code as-is in
case future firmware revisions solve this problem
so that the old path can be easily re-enabled with
a fw_feature flag.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2014-09-23 12:28:52 +03:00
..
bmi.c ath10k: improve logging to include dev id 2014-08-26 19:04:48 +03:00
bmi.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
ce.c ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
ce.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
core.c ath10k: add testmode 2014-09-11 23:42:36 +03:00
core.h ath10k: workaround fw beaconing bug 2014-09-23 12:28:52 +03:00
debug.c ath10k: reformat help text in ath10k_read_simulate_fw_crash() 2014-09-18 10:46:42 +03:00
debug.h ath10k: add testmode 2014-09-11 23:42:36 +03:00
hif.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
htc.c ath10k: miscellaneous checkpatch fixes 2014-09-18 10:46:34 +03:00
htc.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
htt_rx.c ath10k: use ether_addr_copy() 2014-09-18 10:47:03 +03:00
htt_tx.c ath10k: don't use return on void functions 2014-09-18 10:46:12 +03:00
htt.c ath10k: fix checkpatch warnings about parenthesis alignment 2014-09-18 10:41:18 +03:00
htt.h ath10k: miscellaneous checkpatch fixes 2014-09-18 10:46:34 +03:00
hw.h ath10k: add testmode 2014-09-11 23:42:36 +03:00
Kconfig ath10k: ATH10K_DEBUGFS depends on DEBUG_FS 2014-09-10 14:17:45 +03:00
mac.c ath10k: workaround fw beaconing bug 2014-09-23 12:28:52 +03:00
mac.h ath10k: workaround fw beaconing bug 2014-09-23 12:28:52 +03:00
Makefile ath10k: add testmode 2014-09-11 23:42:36 +03:00
pci.c ath10k: miscellaneous checkpatch fixes 2014-09-18 10:46:34 +03:00
pci.h ath10k: make target endianess more explicit 2014-08-27 15:03:32 +03:00
rx_desc.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
spectral.c ath10k: improve logging to include dev id 2014-08-26 19:04:48 +03:00
spectral.h ath10k: add spectral scan feature 2014-08-04 09:07:54 +03:00
targaddrs.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00
testmode_i.h ath10k: add testmode 2014-09-11 23:42:36 +03:00
testmode.c ath10k: add testmode 2014-09-11 23:42:36 +03:00
testmode.h ath10k: add testmode 2014-09-11 23:42:36 +03:00
trace.c
trace.h ath10k: add device/driver strings to tracepoints 2014-09-02 16:16:46 +03:00
txrx.c ath10k: use ether_addr_copy() 2014-09-18 10:47:03 +03:00
txrx.h ath10k: fix Rx aggregation reordering 2014-07-25 11:15:39 +03:00
wmi.c ath10k: workaround fw beaconing bug 2014-09-23 12:28:52 +03:00
wmi.h ath10k: fix use of multiple blank lines 2014-09-18 10:45:20 +03:00