* [PATCH] wifi: mt76: mt7925: remove wm2_complete_mask from mt7925_irq_map
[not found] <20260612075042.2577193-3-jb.tsai@mediatek.com>
@ 2026-08-13 14:57 ` Bert Karwatzki
2026-08-13 15:11 ` Emery Hsin (辛承宣)
0 siblings, 1 reply; 2+ messages in thread
From: Bert Karwatzki @ 2026-08-13 14:57 UTC (permalink / raw)
To: Emery Hsin
Cc: Bert Karwatzki, Felix Fietkau, linux-kernel, linux-wireless,
linux-next, jb.tsai, Deren.Wu, Leon.Yen, Quan.Zhou, Ryder.Lee,
Sean.Wang, linux-mediatek, litien.chang, lorenzo
Commit
c4edf9e3e0e5 ("wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions")
introduces a non-NULL wm2_complete_mask element to mt7925_irq_map. This
gives a NULL pointer dereference error when resuming from hibernate:
[ T2001] BUG: kernel NULL pointer dereference, address: 0000000000000a98
[ T2001] #PF: supervisor write access in kernel mode
[ T2001] #PF: error_code(0x0002) - not-present page
[ T2001] PGD 0 P4D 0
[ T2001] Oops: Oops: 0002 [#1] SMP NOPTI
[ T2001] CPU: 5 UID: 0 PID: 2001 Comm: kworker/u128:4 Tainted: G W 7.2.0-rc4-bisect-00876-gc4edf9e3e0e5-dirty #746 PREEMPT_RT
[ T2001] Tainted: [W]=WARN
[ T2001] Hardware name: ASUS System Product Name/ROG STRIX B850-F GAMING WIFI, BIOS 1627 02/05/2026
[ T2001] Workqueue: mt76 mt7925_mac_reset_work [mt7925_common]
[ T2001] RIP: 0010:mutex_lock+0xe/0x30
[ T2001] Code: 75 07 31 c0 c3 cc cc cc cc be 01 00 00 00 e9 79 fe ff ff 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 65 48 8b 15 94 13 83 00 31 c0 <f0> 48 0f b1 57 18 75 05 c3 cc cc cc cc be 02 00 00 00 e9 4b fe ff
[ T2001] RSP: 0018:ffffa53dc250fdc8 EFLAGS: 00010246
[ T2001] RAX: 0000000000000000 RBX: ffff951e8d0e3420 RCX: 0000000000000000
[ T2001] RDX: ffff951f64f145c0 RSI: 0000000000000002 RDI: 0000000000000a80
[ T2001] RBP: 0000000000000000 R08: 0000000000000004 R09: 0000000000000001
[ T2001] R10: 0000000000000000 R11: 0000000000000004 R12: ffff951e8d0e3020
[ T2001] R13: ffff951e8d0e2680 R14: ffff951e8d0e0aa0 R15: 0000000000000000
[ T2001] FS: 0000000000000000(0000) GS:ffff952ccc8b3000(0000) knlGS:0000000000000000
[ T2001] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ T2001] CR2: 0000000000000a98 CR3: 000000050641e000 CR4: 0000000000f50ef0
[ T2001] PKRU: 55555554
[ T2001] Call Trace:
[ T2001] <TASK>
[ T2001] ? napi_disable+0x18/0x40
[ T2001] ? mt7925e_mac_reset+0x2f8/0x390 [mt7925e]
[ T2001] ? mt7925_mac_reset_work+0x98/0x1c0 [mt7925_common]
[ T2001] ? drm_sched_run_job_work+0x1c/0x2d0 [gpu_sched]
[ T2001] ? pwq_dec_nr_in_flight+0x29a/0x3a0
[ T2001] ? process_one_work+0x199/0x2a0
[ T2001] ? worker_thread+0x1a0/0x2f0
[ T2001] ? rescuer_thread+0x550/0x550
[ T2001] ? kthread+0xd1/0x110
[ T2001] ? kthread_affine_node+0x100/0x100
[ T2001] ? ret_from_fork+0x1f9/0x2b0
[ T2001] ? kthread_affine_node+0x100/0x100
[ T2001] ? kthread_affine_node+0x100/0x100
[ T2001] ? ret_from_fork_asm+0x11/0x20
[ T2001] </TASK>
Remove wm2_complete_mask from mt7925_irq_map to fix the issue.
Fixes: c4edf9e3e0e5 ("wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions")
Signed-off-by: Bert Karwatzki <spasswolf@web.de>
---
drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
index 02ef09dd797d..d2c0a78ae9f2 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
@@ -493,7 +493,6 @@ static const struct mt792x_irq_map mt7925_irq_map = {
.all_complete_mask = MT7925_INT_RX_DONE_ALL,
.data_complete_mask = MT7925_INT_RX_DONE_DATA,
.wm_complete_mask = MT7925_INT_RX_DONE_WM,
- .wm2_complete_mask = MT_INT_RX_DONE_WM2,
},
};
--
2.55.0
I noticed that my debian sid system running linux next-20260812 would
resume from hibernation either displaying a frozen GUI or show the
mentioned backtrace in dmesg and freezing seconds after that. I bisected
the issue to commit
c4edf9e3e0e5 ("wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions")
which introduces a non-NULL wm2_complete_mask to mt7925_irq_map.
Removing wm2_complete_mask from mt7925_irq_map fixes the issue in
next-20260812.
Bert Karwatzki
^ permalink raw reply related [flat|nested] 2+ messages in thread
* RE: [PATCH] wifi: mt76: mt7925: remove wm2_complete_mask from mt7925_irq_map
2026-08-13 14:57 ` [PATCH] wifi: mt76: mt7925: remove wm2_complete_mask from mt7925_irq_map Bert Karwatzki
@ 2026-08-13 15:11 ` Emery Hsin (辛承宣)
0 siblings, 0 replies; 2+ messages in thread
From: Emery Hsin (辛承宣) @ 2026-08-13 15:11 UTC (permalink / raw)
To: Bert Karwatzki
Cc: Felix Fietkau, linux-kernel@vger.kernel.org,
linux-wireless@vger.kernel.org, linux-next@vger.kernel.org,
JB Tsai (蔡志彬),
Deren Wu (武德仁),
Leon Yen (顏良儒), Quan Zhou (周全),
Ryder Lee, Sean Wang, linux-mediatek@lists.infradead.org,
Litien Chang (張立典), lorenzo@kernel.org
Hi Bert,
Thanks for your feedback. Actually, we encountered the same issue during our internal testing and have already submitted a fix. The solution is basically the same.
https://patchwork.kernel.org/project/linux-wireless/patch/20260805092409.1489401-1-eason.lai@mediatek.com/
Sorry for any bother with this issue.
BRs,
Emery
-----Original Message-----
From: Bert Karwatzki <spasswolf@web.de>
Sent: Thursday, August 13, 2026 10:58 PM
To: Emery Hsin (辛承宣) <Emery.Hsin@mediatek.com>
Cc: Bert Karwatzki <spasswolf@web.de>; Felix Fietkau <nbd@nbd.name>; linux-kernel@vger.kernel.org; linux-wireless@vger.kernel.org; linux-next@vger.kernel.org; JB Tsai (蔡志彬) <Jb.Tsai@mediatek.com>; Deren Wu (武德仁) <Deren.Wu@mediatek.com>; Leon Yen (顏良儒) <Leon.Yen@mediatek.com>; Quan Zhou (周全) <Quan.Zhou@mediatek.com>; Ryder Lee <Ryder.Lee@mediatek.com>; Sean Wang <Sean.Wang@mediatek.com>; linux-mediatek@lists.infradead.org; Litien Chang (張立典) <Litien.Chang@mediatek.com>; lorenzo@kernel.org
Subject: [PATCH] wifi: mt76: mt7925: remove wm2_complete_mask from mt7925_irq_map
Commit
c4edf9e3e0e5 ("wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions") introduces a non-NULL wm2_complete_mask element to mt7925_irq_map. This gives a NULL pointer dereference error when resuming from hibernate:
[ T2001] BUG: kernel NULL pointer dereference, address: 0000000000000a98 [ T2001] #PF: supervisor write access in kernel mode [ T2001] #PF: error_code(0x0002) - not-present page [ T2001] PGD 0 P4D 0 [ T2001] Oops: Oops: 0002 [#1] SMP NOPTI
[ T2001] CPU: 5 UID: 0 PID: 2001 Comm: kworker/u128:4 Tainted: G W 7.2.0-rc4-bisect-00876-gc4edf9e3e0e5-dirty #746 PREEMPT_RT
[ T2001] Tainted: [W]=WARN
[ T2001] Hardware name: ASUS System Product Name/ROG STRIX B850-F GAMING WIFI, BIOS 1627 02/05/2026 [ T2001] Workqueue: mt76 mt7925_mac_reset_work [mt7925_common] [ T2001] RIP: 0010:mutex_lock+0xe/0x30 [ T2001] Code: 75 07 31 c0 c3 cc cc cc cc be 01 00 00 00 e9 79 fe ff ff 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 65 48 8b 15 94 13 83 00 31 c0 <f0> 48 0f b1 57 18 75 05 c3 cc cc cc cc be 02 00 00 00 e9 4b fe ff [ T2001] RSP: 0018:ffffa53dc250fdc8 EFLAGS: 00010246 [ T2001] RAX: 0000000000000000 RBX: ffff951e8d0e3420 RCX: 0000000000000000 [ T2001] RDX: ffff951f64f145c0 RSI: 0000000000000002 RDI: 0000000000000a80 [ T2001] RBP: 0000000000000000 R08: 0000000000000004 R09: 0000000000000001 [ T2001] R10: 0000000000000000 R11: 0000000000000004 R12: ffff951e8d0e3020 [ T2001] R13: ffff951e8d0e2680 R14: ffff951e8d0e0aa0 R15: 0000000000000000 [ T2001] FS: 0000000000000000(0000) GS:ffff952ccc8b3000(0000) knlGS:0000000000000000 [ T2001] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ T2001] CR2: 0000000000000a98 CR3: 000000050641e000 CR4: 0000000000f50ef0 [ T2001] PKRU: 55555554 [ T2001] Call Trace:
[ T2001] <TASK>
[ T2001] ? napi_disable+0x18/0x40
[ T2001] ? mt7925e_mac_reset+0x2f8/0x390 [mt7925e] [ T2001] ? mt7925_mac_reset_work+0x98/0x1c0 [mt7925_common] [ T2001] ? drm_sched_run_job_work+0x1c/0x2d0 [gpu_sched] [ T2001] ? pwq_dec_nr_in_flight+0x29a/0x3a0 [ T2001] ? process_one_work+0x199/0x2a0 [ T2001] ? worker_thread+0x1a0/0x2f0 [ T2001] ? rescuer_thread+0x550/0x550 [ T2001] ? kthread+0xd1/0x110 [ T2001] ? kthread_affine_node+0x100/0x100 [ T2001] ? ret_from_fork+0x1f9/0x2b0 [ T2001] ? kthread_affine_node+0x100/0x100 [ T2001] ? kthread_affine_node+0x100/0x100 [ T2001] ? ret_from_fork_asm+0x11/0x20 [ T2001] </TASK>
Remove wm2_complete_mask from mt7925_irq_map to fix the issue.
Fixes: c4edf9e3e0e5 ("wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions")
Signed-off-by: Bert Karwatzki <spasswolf@web.de>
---
drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
index 02ef09dd797d..d2c0a78ae9f2 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c
@@ -493,7 +493,6 @@ static const struct mt792x_irq_map mt7925_irq_map = {
.all_complete_mask = MT7925_INT_RX_DONE_ALL,
.data_complete_mask = MT7925_INT_RX_DONE_DATA,
.wm_complete_mask = MT7925_INT_RX_DONE_WM,
- .wm2_complete_mask = MT_INT_RX_DONE_WM2,
},
};
--
2.55.0
I noticed that my debian sid system running linux next-20260812 would resume from hibernation either displaying a frozen GUI or show the mentioned backtrace in dmesg and freezing seconds after that. I bisected the issue to commit
c4edf9e3e0e5 ("wifi: mt76: mt7925: replace shared rx irq masks with per-chip definitions") which introduces a non-NULL wm2_complete_mask to mt7925_irq_map.
Removing wm2_complete_mask from mt7925_irq_map fixes the issue in next-20260812.
Bert Karwatzki
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-08-13 15:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260612075042.2577193-3-jb.tsai@mediatek.com>
2026-08-13 14:57 ` [PATCH] wifi: mt76: mt7925: remove wm2_complete_mask from mt7925_irq_map Bert Karwatzki
2026-08-13 15:11 ` Emery Hsin (辛承宣)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox