mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7615: drop TXRX_NOTIFY on non-mmio buses
PKT_TYPE_TXRX_NOTIFY is an mmio-only event, but mt7615_rx_check() and
mt7615_queue_rx_skb() dispatch it to mt7615_mac_tx_free() on every bus.
mt7615_mac_tx_free() cleans the DMA tx queues with
mt76_queue_tx_cleanup(), which calls queue_ops->tx_cleanup(). Only the
mmio queue ops implement that callback; on the mt7663 USB and SDIO
buses it is NULL, so a TXRX_NOTIFY there calls a NULL pointer in the RX
worker. Same defect as the mt7921 and mt7925 patches in this series.
Drop the event on non-mmio buses via mt76_is_mmio(), as in
commit 5683e1488aa9 ("wifi: mt76: connac: do not check WED status for
non-mmio devices").
Fixes: eb99cc95c3b6 ("mt76: mt7615: introduce mt7663u support")
Cc: [email protected]
Signed-off-by: Devin Wittmayer <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
committed by
Felix Fietkau
parent
900f407746
commit
6ae90289d1
@@ -1601,6 +1601,8 @@ bool mt7615_rx_check(struct mt76_dev *mdev, void *data, int len)
|
|||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case PKT_TYPE_TXRX_NOTIFY:
|
case PKT_TYPE_TXRX_NOTIFY:
|
||||||
|
if (!mt76_is_mmio(mdev))
|
||||||
|
return false;
|
||||||
mt7615_mac_tx_free(dev, data, len);
|
mt7615_mac_tx_free(dev, data, len);
|
||||||
return false;
|
return false;
|
||||||
case PKT_TYPE_TXS:
|
case PKT_TYPE_TXS:
|
||||||
@@ -1634,6 +1636,10 @@ void mt7615_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
|
|||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
break;
|
break;
|
||||||
case PKT_TYPE_TXRX_NOTIFY:
|
case PKT_TYPE_TXRX_NOTIFY:
|
||||||
|
if (!mt76_is_mmio(mdev)) {
|
||||||
|
dev_kfree_skb(skb);
|
||||||
|
break;
|
||||||
|
}
|
||||||
mt7615_mac_tx_free(dev, skb->data, skb->len);
|
mt7615_mac_tx_free(dev, skb->data, skb->len);
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user