Commit 6425791d authored by Felix Fietkau's avatar Felix Fietkau

mt76: mt7915: fix processing txfree events

In the MT7915 info, the fields for the WLAN index / queue overlap with the
token id, and the MT_TX_FREE_PAIR bit indicates, which one is present.

If MT_TX_FREE_PAIR is set, skip processing the token index, since the data
will not be valid.

This fixes accidentally freeing tokens which are still in use by the
hardware with a wrong station pointer.
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 8aa2c6f4
...@@ -972,6 +972,7 @@ void mt7915_mac_tx_free(struct mt7915_dev *dev, struct sk_buff *skb) ...@@ -972,6 +972,7 @@ void mt7915_mac_tx_free(struct mt7915_dev *dev, struct sk_buff *skb)
if (list_empty(&msta->poll_list)) if (list_empty(&msta->poll_list))
list_add_tail(&msta->poll_list, &dev->sta_poll_list); list_add_tail(&msta->poll_list, &dev->sta_poll_list);
spin_unlock_bh(&dev->sta_poll_lock); spin_unlock_bh(&dev->sta_poll_lock);
continue;
} }
msdu = FIELD_GET(MT_TX_FREE_MSDU_ID, info); msdu = FIELD_GET(MT_TX_FREE_MSDU_ID, info);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment