Thread (3 messages) 3 messages, 2 authors, 2d ago

Re: [PATCH] wifi: mt76: disable rx napi before queue cleanup

From: Sean Wang <sean.wang@kernel.org>
Date: 2026-05-22 21:43:10

Hi,

On Sun, May 17, 2026 at 5:46 PM Ruslan Isaev [off-list ref] wrote:
Gentle ping for review

May 11, 2026 02:58:02 Ruslan Isaev [off-list ref]:
quoted
mt76_dma_cleanup() already disables tx napi before deleting it, but
it still removes rx napi instances while they can remain enabled on the
normal device remove path. On mt7915 this triggers a warning.

Disable each rx napi instance before netif_napi_del() and page pool
destruction. This fixes repeated warnings on rmmod mt7915e on
mt7915e/mt7981b.

Signed-off-by: Ruslan Isaev <redacted>
---
drivers/net/wireless/mediatek/mt76/dma.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/mediatek/mt76/dma.c b/drivers/net/wireless/mediatek/mt76/dma.c
index f8c2fe5f2..12183142f 100644
--- a/drivers/net/wireless/mediatek/mt76/dma.c
+++ b/drivers/net/wireless/mediatek/mt76/dma.c
@@ -1189,6 +1189,7 @@ void mt76_dma_cleanup(struct mt76_dev *dev)
    mt76_for_each_q_rx(dev, i) {
        struct mt76_queue *q = &dev->q_rx[i];

+       napi_disable(&dev->napi[i]);
        netif_napi_del(&dev->napi[i]);
        mt76_dma_rx_cleanup(dev, q);
  I do not think this is safe as-is.

  1. I tested this on mt7925, and removing the module causes a machine
hang. I found that we can end up disabling NAPI twice on mt7921 and
mt7925. If we still need this patch, it
     should be fixed together with the mt7921/mt7925 cleanup paths.
  2. mt76_dma_init() skips WED RRO queues when adding RX NAPI, but
this patch disables NAPI for every allocated RX queue during cleanup.
On mt7996/mt7992 HWRRO, WED RRO queues may have
     ndesc != 0, so cleanup can call napi_disable() on queues where
mt76 never added/enabled NAPI.

  Please make the cleanup path use the same condition as init, for
example by skipping NAPI operations for mt76_queue_is_wed_rro(q), or
by adding a shared helper for the init/cleanup
  condition.

quoted
--
2.39.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help