* [PATCH rtw-next v3] wifi: rtw88: wake the TX queues after ieee80211_restart_hw()
@ 2026-10-13 22:07 Abdurrahman Karadag
2026-10-14 9:42 ` Luka Gejak
0 siblings, 1 reply; 2+ messages in thread
From: Abdurrahman Karadag @ 2026-10-13 22:07 UTC (permalink / raw)
To: linux-wireless; +Cc: pkshih, linux-kernel, rtl8821cerfe2
A queue stopped by the ring-full path keeps
IEEE80211_QUEUE_STOP_REASON_DRIVER across a hardware restart.
ieee80211_reconfig() wakes only IEEE80211_QUEUE_STOP_REASON_SUSPEND, and
the driver's own wake waits for a descriptor completion that the restart
leaves nothing to deliver. TX stays dead although the restart itself
succeeded.
Wake the queues once mac80211 reports the restart complete.
Signed-off-by: Abdurrahman Karadag <abdurrahmankaradag19@gmail.com>
---
v3:
- wake from rtw_reconfig_complete() rather than rtw_pci_reset_trx_ring(),
so the queues are released once the restart is complete (Ping-Ke Shih)
- name ieee80211_restart_hw() in the subject (Ping-Ke Shih)
- cut the commit message to the restart case, and drop the measurement
paragraph, which belongs to the still-open stall (Ping-Ke Shih)
- drop the comment (Ping-Ke Shih)
v1: https://lore.kernel.org/linux-wireless/20261002231013.11792-1-abdurrahmankaradag19@gmail.com/
drivers/net/wireless/realtek/rtw88/mac80211.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtw88/mac80211.c b/drivers/net/wireless/realtek/rtw88/mac80211.c
index 2a9b09f..b02017a 100644
--- a/drivers/net/wireless/realtek/rtw88/mac80211.c
+++ b/drivers/net/wireless/realtek/rtw88/mac80211.c
@@ -882,8 +882,10 @@ static void rtw_reconfig_complete(struct ieee80211_hw *hw,
struct rtw_dev *rtwdev = hw->priv;
mutex_lock(&rtwdev->mutex);
- if (reconfig_type == IEEE80211_RECONFIG_TYPE_RESTART)
+ if (reconfig_type == IEEE80211_RECONFIG_TYPE_RESTART) {
clear_bit(RTW_FLAG_RESTARTING, rtwdev->flags);
+ ieee80211_wake_queues(hw);
+ }
mutex_unlock(&rtwdev->mutex);
}
--
2.55.0
base-commit: fbfa27d9b06f025c5f2cfa79d0e01e6400eeff2a
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH rtw-next v3] wifi: rtw88: wake the TX queues after ieee80211_restart_hw()
2026-10-13 22:07 [PATCH rtw-next v3] wifi: rtw88: wake the TX queues after ieee80211_restart_hw() Abdurrahman Karadag
@ 2026-10-14 9:42 ` Luka Gejak
0 siblings, 0 replies; 2+ messages in thread
From: Luka Gejak @ 2026-10-14 9:42 UTC (permalink / raw)
To: Abdurrahman Karadag, linux-wireless; +Cc: pkshih, linux-kernel, rtl8821cerfe2
Hi Abdurrahman,
On Tue Oct 13, 2026 at 10:07 PM UTC, Abdurrahman Karadag wrote:
> @@ -882,8 +882,10 @@ static void rtw_reconfig_complete(struct ieee80211_hw *hw,
> struct rtw_dev *rtwdev = hw->priv;
>
> mutex_lock(&rtwdev->mutex);
> - if (reconfig_type == IEEE80211_RECONFIG_TYPE_RESTART)
> + if (reconfig_type == IEEE80211_RECONFIG_TYPE_RESTART) {
> clear_bit(RTW_FLAG_RESTARTING, rtwdev->flags);
> + ieee80211_wake_queues(hw);
> + }
> mutex_unlock(&rtwdev->mutex);
This looks right to me for the restart case. After rtw_pci_stop() the ring is
empty and rewound, so nothing is left to complete and the wake in
rtw_pci_tx_isr() can never run.
One thing I am not sure about. The same callback runs with
IEEE80211_RECONFIG_TYPE_SUSPEND after a plain resume, and the wake is skipped
there. I could not find anything that clears the driver stop reason except the
driver itself, and rtw_core_stop() goes through rtw_pci_stop() on the way
down, so a queue stopped by the ring-full path just before suspend looks like
it ends up in the same state. Is that reachable, or is it released somewhere I
missed?
Small thing for the commit message. ieee80211_wake_queues() releases every
queue with the driver reason, not just the one the ring-full path stopped, and
the offload scan and PCIe error paths use that reason as well. I think the first
sentence reads narrower than it is.
Best regards,
Luka Gejak
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-14 9:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-13 22:07 [PATCH rtw-next v3] wifi: rtw88: wake the TX queues after ieee80211_restart_hw() Abdurrahman Karadag
2026-10-14 9:42 ` Luka Gejak
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®