[PATCH] wifi: mac80211: use owner vif for AP VLAN station TXQs

From: Eduard Zateev

Date: Mon Oct 26 2026 - 05:59:38 EST


AP VLAN interfaces are not added to the driver, so their station TXQs
must wake the queue through the owning AP interface. Keep the AP VLAN
interface in skb control data for key selection, but associate its
station TXQ with the driver-facing AP vif.

This avoids calling drv_wake_tx_queue() with an AP VLAN vif that has no
IEEE80211_SDATA_IN_DRIVER flag.

Fixes: e937b8da5a59 ("mac80211: Add TXQ scheduling API")
Reported-by: syzbot+c38f93f387ac25eabf68@xxxxxxxxxxxxxxxxxxxxxxxxx
Link: https://syzkaller.appspot.com/bug?extid=c38f93f387ac25eabf68
Signed-off-by: Eduard Zateev <hackerowskiy@xxxxxxxxx>
---
net/mac80211/tx.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index e9b6a0415..7446c8d9d 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1571,6 +1571,13 @@ void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata,
INIT_LIST_HEAD(&txqi->schedule_order);

txqi->txq.vif = &sdata->vif;
+ if (sta && sdata->vif.type == NL80211_IFTYPE_AP_VLAN) {
+ struct ieee80211_sub_if_data *ap;
+
+ ap = container_of(sdata->bss,
+ struct ieee80211_sub_if_data, u.ap);
+ txqi->txq.vif = &ap->vif;
+ }

if (!sta) {
txqi->txq.tid = tid;
--
2.56.0