RE: [PATCH] wifi: mt76: mt7925: remove wm2_complete_mask from mt7925_irq_map
Emery Hsin (辛承宣) <[email protected]>
| Newsgroups | org.infradead.lists.linux-mediatek,org.kernel.vger.linux-kernel,org.kernel.vger.linux-next,org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <KUYPR03MB99528E99554A9EE51239B575FFDB2@KUYPR03MB9952.apcprd03.prod.outlook.com> |
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/[email protected]/ Sorry for any bother with this issue. BRs, Emery -----Original Message----- From: Bert Karwatzki <[email protected]> Sent: Thursday, August 13, 2026 10:58 PM To: Emery Hsin (辛承宣) <[email protected]> Cc: Bert Karwatzki <[email protected]>; Felix Fietkau <[email protected]>; [email protected]; [email protected]; [email protected]; JB Tsai (蔡志彬) <[email protected]>; Deren Wu (武德仁) <[email protected]>; Leon Yen (顏良儒) <[email protected]>; Quan Zhou (周全) <[email protected]>; Ryder Lee <[email protected]>; Sean Wang <[email protected]>; [email protected]; Litien Chang (張立典) <[email protected]>; [email protected] 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 <[email protected]> --- 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