summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuan-Chung Chen <damon.chen@realtek.com>2022-06-10 15:26:04 +0800
committerKalle Valo <kvalo@kernel.org>2022-06-21 09:15:47 +0300
commit29363fb666bc8deee5acf27a3966f14ff63189d6 (patch)
tree3f9bc7e7f1f8e752920f33684af508a8c9ac3daf
parent6a5a783a71cf47ad65ddf8904a71b43d303f2668 (diff)
wifi: rtw89: fix potential TX stuck
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
-rw-r--r--drivers/net/wireless/realtek/rtw89/core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 6b520c4c6fd4..641ea301c4b0 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -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);
}