FW was reporting incorrect tx status for NullFunc frames sent through data tx path.
mac80211 uses tx status when dealing with link/beacon loss. Using mgmt tx path allows us to get reliable tx status. This patch fixes connection loss handling. Signed-off-by: Michal Kazior <michal.kaz...@tieto.com> --- drivers/net/wireless/ath/ath10k/mac.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 930a092..b6f519e 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -1299,6 +1299,12 @@ static void ath10k_tx_htt(struct ath10k *ar, struct sk_buff *skb) if (ieee80211_is_mgmt(hdr->frame_control)) ret = ath10k_htt_mgmt_tx(ar->htt, skb); + else if (ieee80211_is_nullfunc(hdr->frame_control)) + /* FW does not report tx status properly for NullFunc frames + * unless they are sent through mgmt tx path. mac80211 sends + * those frames when it detects link/beacon loss and depends on + * the tx status to be correct. */ + ret = ath10k_htt_mgmt_tx(ar->htt, skb); else ret = ath10k_htt_tx(ar->htt, skb); -- 1.7.9.5 _______________________________________________ ath9k-devel mailing list ath9k-devel@lists.ath9k.org https://lists.ath9k.org/mailman/listinfo/ath9k-devel