Hi, After digging around I've found what seems to be the problem with WMI Tx credit starvation and inability to properly flush Tx in ath10k_flush(). Long story short: if a client that was asleep (as per what firmware thinks) goes out of range (or just stops responding) then Tx rots in FW/HW queues for a few seconds before it's discarded. For WMI Tx credits this means management frames eat up Tx credits for a few seconds (causing other WMI commands to timeout and return -EAGAIN/-11). For HTT Tx this means NullFunc frames would get stuck for a few seconds before completion was received. v2: * added tx replenishment patch * added conf_mutex locking * change condition for flushing mgmt tx Michal Kazior (5): ath10k: always request htc tx replenishment ath10k: fix wmi-htc tx credit starvation ath10k: rework peer accounting ath10k: wait for mgmt tx when flushing too ath10k: improve tx flushing drivers/net/wireless/ath/ath10k/core.h | 7 +- drivers/net/wireless/ath/ath10k/htc.c | 15 +- drivers/net/wireless/ath/ath10k/mac.c | 275 ++++++++++++++++++++++++++++++--- drivers/net/wireless/ath/ath10k/txrx.c | 29 ++-- drivers/net/wireless/ath/ath10k/wmi.c | 5 - drivers/net/wireless/ath/ath10k/wmi.h | 4 + 6 files changed, 275 insertions(+), 60 deletions(-) -- 1.8.5.3 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html