wifi: rtw89: fix potential TX stuck
authorKuan-Chung Chen <damon.chen@realtek.com>
Fri, 10 Jun 2022 07:26:04 +0000 (15:26 +0800)
committerKalle Valo <kvalo@kernel.org>
Tue, 21 Jun 2022 06:15:47 +0000 (09:15 +0300)
The potential TX stuck occurs when there are lots of packets to be
transmitted and the boundary of the tx_resource is hit. Add this
patch to avoid the TX stuck when burst traffic.

Signed-off-by: Kuan-Chung Chen <damon.chen@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220610072610.27095-6-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c

index 6b520c4c6fd4318ad4ef753dfbc25e31ee55dbdf..641ea301c4b0fd51f719640172d1b99c4432307c 100644 (file)
@@ -1991,6 +1991,10 @@ static void rtw89_core_txq_schedule(struct rtw89_dev *rtwdev, u8 ac, bool *reinv
                ieee80211_return_txq(hw, txq, sched_txq);
                if (frame_cnt != 0)
                        rtw89_core_tx_kick_off(rtwdev, rtw89_core_get_qsel(rtwdev, txq->tid));
+
+               /* bound of tx_resource could get stuck due to burst traffic */
+               if (frame_cnt == tx_resource)
+                       *reinvoke = true;
        }
        ieee80211_txq_schedule_end(hw, ac);
 }