* [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
@ 2026-05-31 22:33 VolcomIlluminated
2026-06-01 0:56 ` Ping-Ke Shih
0 siblings, 1 reply; 2+ messages in thread
From: VolcomIlluminated @ 2026-05-31 22:33 UTC (permalink / raw)
To: pkshih
Cc: kvalo, luka.gejak, linux-wireless, linux-kernel, stable,
VolcomIlluminated
Luka Gejak's patch increased the TX report timeout for RTL8723DU to
accommodate off-channel dwell time during background scans. The same
issue affects RTL8822BU (tested on Edimax EW-7822ULC) where background
scans cause the firmware to stay off-channel for periods exceeding the
default 500ms timeout, causing the purge timer to fire prematurely and
drop TX tracking skbs.
Extend the 2500ms timeout to also cover RTL8822BU USB devices.
Tested on RTL8822BU (Edimax EW-7822ULC) with 17,706 packets over 24+
hours with zero drops.
Fixes: a82dfd33d123 ("wifi: rtw88: Add common USB chip support")
Cc: stable@vger.kernel.org
Signed-off-by: VolcomIlluminated <Volcomilluminated@airmail.cc>
---
--- /tmp/linux-6.18/drivers/net/wireless/realtek/rtw88/tx.c 2025-11-30 17:42:10.000000000 -0500
+++ /home/ptpx86mm1/kernelbuild/linux-6.18/drivers/net/wireless/realtek/rtw88/tx.c 2026-05-31 16:00:37.125645594 -0400
@@ -196,6 +196,7 @@
void rtw_tx_report_enqueue(struct rtw_dev *rtwdev, struct sk_buff *skb, u8 sn)
{
struct rtw_tx_report *tx_report = &rtwdev->tx_report;
+ unsigned long timeout = RTW_TX_PROBE_TIMEOUT;
unsigned long flags;
u8 *drv_data;
@@ -207,7 +208,12 @@
__skb_queue_tail(&tx_report->queue, skb);
spin_unlock_irqrestore(&tx_report->q_lock, flags);
- mod_timer(&tx_report->purge_timer, jiffies + RTW_TX_PROBE_TIMEOUT);
+ if ((rtwdev->chip->id == RTW_CHIP_TYPE_8723D ||
+ rtwdev->chip->id == RTW_CHIP_TYPE_8822B) &&
+ rtwdev->hci.type == RTW_HCI_TYPE_USB)
+ timeout = msecs_to_jiffies(2500);
+
+ mod_timer(&tx_report->purge_timer, jiffies + timeout);
}
EXPORT_SYMBOL(rtw_tx_report_enqueue);
^ permalink raw reply [flat|nested] 2+ messages in thread* RE: [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU
2026-05-31 22:33 [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU VolcomIlluminated
@ 2026-06-01 0:56 ` Ping-Ke Shih
0 siblings, 0 replies; 2+ messages in thread
From: Ping-Ke Shih @ 2026-06-01 0:56 UTC (permalink / raw)
To: VolcomIlluminated
Cc: kvalo@kernel.org, luka.gejak@linux.dev,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
VolcomIlluminated <Volcomilluminated@airmail.cc> wrote:
> Luka Gejak's patch increased the TX report timeout for RTL8723DU to
> accommodate off-channel dwell time during background scans. The same
> issue affects RTL8822BU (tested on Edimax EW-7822ULC) where background
> scans cause the firmware to stay off-channel for periods exceeding the
> default 500ms timeout, causing the purge timer to fire prematurely and
> drop TX tracking skbs.
>
> Extend the 2500ms timeout to also cover RTL8822BU USB devices.
>
> Tested on RTL8822BU (Edimax EW-7822ULC) with 17,706 packets over 24+
> hours with zero drops.
>
> Fixes: a82dfd33d123 ("wifi: rtw88: Add common USB chip support")
> Cc: stable@vger.kernel.org
> Signed-off-by: VolcomIlluminated <Volcomilluminated@airmail.cc>
> ---
> --- /tmp/linux-6.18/drivers/net/wireless/realtek/rtw88/tx.c 2025-11-30 17:42:10.000000000 -0500
> +++ /home/ptpx86mm1/kernelbuild/linux-6.18/drivers/net/wireless/realtek/rtw88/tx.c 2026-05-31
Just clone git repository and use 'git format-patch' to generate patch file
and send out.
> 16:00:37.125645594 -0400
> @@ -196,6 +196,7 @@
> void rtw_tx_report_enqueue(struct rtw_dev *rtwdev, struct sk_buff *skb, u8 sn)
> {
> struct rtw_tx_report *tx_report = &rtwdev->tx_report;
> + unsigned long timeout = RTW_TX_PROBE_TIMEOUT;
> unsigned long flags;
> u8 *drv_data;
>
> @@ -207,7 +208,12 @@
> __skb_queue_tail(&tx_report->queue, skb);
> spin_unlock_irqrestore(&tx_report->q_lock, flags);
>
> - mod_timer(&tx_report->purge_timer, jiffies + RTW_TX_PROBE_TIMEOUT);
> + if ((rtwdev->chip->id == RTW_CHIP_TYPE_8723D ||
> + rtwdev->chip->id == RTW_CHIP_TYPE_8822B) &&
Please use https://github.com/pkshih/rtw.git rtw-next branch as your base.
> + rtwdev->hci.type == RTW_HCI_TYPE_USB)
> + timeout = msecs_to_jiffies(2500);
> +
> + mod_timer(&tx_report->purge_timer, jiffies + timeout);
> }
> EXPORT_SYMBOL(rtw_tx_report_enqueue);
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-01 0:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-31 22:33 [PATCH] wifi: rtw88: extend USB TX report timeout to RTL8822BU VolcomIlluminated
2026-06-01 0:56 ` Ping-Ke Shih
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox