blob: 47700b8845ebcf2a2bcf85f59cc0198e61c8d903 [file] [log] [blame]
From 9af475ad49a4b79ebb4589bdf993d6d8bbff5dfc Mon Sep 17 00:00:00 2001
From: "Henry.Yen" <henry.yen@mediatek.com>
Date: Tue, 16 Jan 2024 11:30:02 +0800
Subject: [PATCH 15/15] mtk: wifi: mt76: mt7996: add sanity check for NAPI
schedule
Add sanity check for NAPI schedule.
It's observed that host driver might occasionally receive
interrupts from unexpected Rx ring, whose Rx NAPI hasn't been
prepared yet. Under such situation, __napi_poll crash issue
would occur, so we add sanity check to prevent it.
If without this patch, we might encounter kernel crash issue
especially in WED-on & RRO-on software path.
Signed-off-by: Henry.Yen <henry.yen@mediatek.com>
---
mt7996/mmio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mt7996/mmio.c b/mt7996/mmio.c
index 341fa089..fd4d41d9 100644
--- a/mt7996/mmio.c
+++ b/mt7996/mmio.c
@@ -560,7 +560,7 @@ static void mt7996_irq_tasklet(struct tasklet_struct *t)
napi_schedule(&dev->mt76.tx_napi);
for (i = 0; i < __MT_RXQ_MAX; i++) {
- if ((intr & MT_INT_RX(i)))
+ if ((intr & MT_INT_RX(i)) && dev->mt76.napi[i].poll)
napi_schedule(&dev->mt76.napi[i]);
}
--
2.18.0