linux/drivers/net/wireless/ath
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
..
ar5523 mac80211: add vif to flush call 2014-04-09 10:55:29 +02:00
ath5k ath5k: remove redundant null check before kfree() 2014-08-28 14:41:57 -04:00
ath6kl Merge branch 'for-linville' of git://github.com/kvalo/ath 2014-08-28 14:36:38 -04:00
ath9k ath9k: Fix channel context timer 2014-08-28 14:50:13 -04:00
ath10k ath10k: workaround fw beaconing bug 2014-09-23 12:28:52 +03:00
carl9170 carl9170: tx: Replace rcu_assign_pointer() with RCU_INIT_POINTER() 2014-08-28 14:50:13 -04:00
wcn36xx wcn36xx: remove unnecessary break after goto 2014-07-13 23:45:24 -07:00
wil6210 wil6210: fix access after free in wil_pcie_remove() 2014-08-25 16:17:38 -04:00
ath.h ath9k: Add a debug level for channel context 2014-08-28 14:41:57 -04:00
debug.c
dfs_pattern_detector.c ath: add JP DFS pattern detector 2014-05-16 14:26:53 -04:00
dfs_pattern_detector.h ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
dfs_pri_detector.c ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
dfs_pri_detector.h ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
hw.c
Kconfig ath: add support for proper dynamic regulatory hints 2013-10-18 14:04:41 -04:00
key.c
main.c ath: add common function ath_is_mybeacon 2014-01-16 14:55:44 -05:00
Makefile ath9k/ath: move dfs pattern detector to ath 2013-10-18 14:03:54 -04:00
reg.h
regd_common.h
regd.c ath: remove camel case from struct reg_dmn_pair_mapping 2014-02-14 13:20:32 +02:00
regd.h
spectral_common.h ath10k: add spectral scan feature 2014-08-04 09:07:54 +03:00