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

Reply via email to