Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wifi: mt76: fix queue assignment for deauth packets

When running in AP mode and deauthenticating a client that's in powersave
mode, the disassoc/deauth packet can get stuck in a tx queue along with
other buffered frames. This can fill up hardware queues with frames
that are only released after the WTBL slot is reused for another client.

Fix this by moving deauth packets to the ALTX queue.

Reported-by: Chad Monroe <chad.monroe@adtran.com>
Link: https://patch.msgid.link/20250707154702.1726-2-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>

+2 -1
+2 -1
drivers/net/wireless/mediatek/mt76/tx.c
··· 615 615 if ((dev->drv->drv_flags & MT_DRV_HW_MGMT_TXQ) && 616 616 !(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) && 617 617 !ieee80211_is_data(hdr->frame_control) && 618 - !ieee80211_is_bufferable_mmpdu(skb)) 618 + (!ieee80211_is_bufferable_mmpdu(skb) || 619 + ieee80211_is_deauth(hdr->frame_control))) 619 620 qid = MT_TXQ_PSD; 620 621 621 622 q = phy->q_tx[qid];