mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: use ALTX queue for packets to disassociated stations
Running these packets through regular buffering queues could cause them
to hang, especially when the packets were for stations that in disassoc
state.
Fixes: dedf2ec30fe4 ("wifi: mt76: fix queue assignment for deauth packets")
Acked-by: Lorenzo Bianconi <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -828,6 +828,7 @@ __mt7915_drop_sta(void *ptr, u8 *mac, struct ieee80211_vif *vif)
|
||||
|
||||
msta = (struct mt7915_sta *)sta->drv_priv;
|
||||
mt7915_mcu_add_sta(data->dev, vif, sta, CONN_STATE_DISCONNECT, false);
|
||||
msta->wcid.tx_info &= ~MT_WCID_TX_INFO_SET;
|
||||
msta->wcid.sta_disabled = 1;
|
||||
msta->wcid.sta = 0;
|
||||
}
|
||||
@@ -894,6 +895,7 @@ int mt7915_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
|
||||
mutex_unlock(&dev->mt76.mutex);
|
||||
|
||||
mt7915_mcu_add_sta(dev, vif, sta, CONN_STATE_DISCONNECT, false);
|
||||
msta->wcid.tx_info &= ~MT_WCID_TX_INFO_SET;
|
||||
msta->wcid.sta_disabled = 1;
|
||||
msta->wcid.sta = 0;
|
||||
return 0;
|
||||
|
||||
@@ -1432,6 +1432,7 @@ mt7996_mac_sta_event(struct mt7996_dev *dev, struct ieee80211_vif *vif,
|
||||
else if (sta->mlo && links == BIT(link_id)) /* last link */
|
||||
mt7996_mcu_teardown_mld_sta(dev, link,
|
||||
msta_link);
|
||||
msta_link->wcid.tx_info &= ~MT_WCID_TX_INFO_SET;
|
||||
msta_link->wcid.sta_disabled = 1;
|
||||
msta_link->wcid.sta = 0;
|
||||
links = links & ~BIT(link_id);
|
||||
|
||||
@@ -692,7 +692,8 @@ mt76_txq_schedule_pending_wcid(struct mt76_phy *phy, struct mt76_wcid *wcid,
|
||||
if ((dev->drv->drv_flags & MT_DRV_HW_MGMT_TXQ) &&
|
||||
!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) &&
|
||||
!ieee80211_is_data_present(hdr->frame_control) &&
|
||||
(!ieee80211_is_bufferable_mmpdu(skb) ||
|
||||
(!(wcid->tx_info & MT_WCID_TX_INFO_SET) ||
|
||||
!ieee80211_is_bufferable_mmpdu(skb) ||
|
||||
ieee80211_is_deauth(hdr->frame_control) ||
|
||||
head == &wcid->tx_offchannel))
|
||||
qid = MT_TXQ_PSD;
|
||||
|
||||
Reference in New Issue
Block a user