From 130273a947ce7636ac1533e89b624061f8944fd1 Mon Sep 17 00:00:00 2001 From: Chad Monroe Date: Mon, 23 Mar 2026 15:57:14 -0700 Subject: [PATCH] wifi: mt76: fix stuck TX queues after SER with no active interfaces When a firmware watchdog triggers full SER recovery before any VAPs are up, mac80211 skips drv_reconfig_complete() because open_count is zero. This leaves the DRIVER queue stop reason set permanently, blocking all TX when interfaces eventually start. Signed-off-by: Chad Monroe Signed-off-by: Felix Fietkau --- mt7915/mac.c | 4 ++++ mt7996/mac.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/mt7915/mac.c b/mt7915/mac.c index 12db8e37..3ab53525 100644 --- a/mt7915/mac.c +++ b/mt7915/mac.c @@ -1469,6 +1469,10 @@ mt7915_mac_full_reset(struct mt7915_dev *dev) mutex_unlock(&dev->mt76.mutex); + ieee80211_wake_queues(mt76_hw(dev)); + if (ext_phy) + ieee80211_wake_queues(ext_phy->hw); + ieee80211_restart_hw(mt76_hw(dev)); if (ext_phy) ieee80211_restart_hw(ext_phy->hw); diff --git a/mt7996/mac.c b/mt7996/mac.c index 7fe69a43..75b46cbf 100644 --- a/mt7996/mac.c +++ b/mt7996/mac.c @@ -2517,6 +2517,8 @@ mt7996_mac_full_reset(struct mt7996_dev *dev) mutex_unlock(&dev->mt76.mutex); + ieee80211_wake_queues(mt76_hw(dev)); + ieee80211_restart_hw(mt76_hw(dev)); }