Re: [PATCH wireless] Revert "wifi: mt76: Disable napi when removing device"

From: Andrey Golovko

Date: Sat Aug 15 2026 - 13:00:05 EST


Tested-by: Andrey Golovko <andrey@xxxxxxxxxx>

Third machine, third form factor: an ASUS ProArt PX13 HN7306EAC, AMD
Strix Halo, MT7925 on PCIe (14c3:7925, mt7925e). Kernel is v7.2-rc6
plus unrelated ASoC patches, so the regression is still there in rc6 and
rc7 - the 7.2 release is about to ship with it.

Before the revert: every poweroff and every reboot hangs after the
displays go off, machine stays powered, only holding the power button
recovers it. 'modprobe -r mt7925e' hangs the same way, with the stack
you posted:

napi_disable_locked+0xe9/0x100
napi_disable+0x25/0x50
mt76_dma_cleanup+0x178/0x370 [mt76]
mt792x_dma_cleanup+0x8f/0xb0 [mt792x_lib]
mt7925_pci_remove+0xd7/0x1a0 [mt7925e]

After the revert: five poweroffs and one reboot in a row, all clean, and
'modprobe -r mt7925e' returns immediately.

One thing that may save the next person some time. The hang is silent -
no watchdog fires, and here even the panic-on-stall sysctls were all set
to 1 by kdump-tools, so hung_task_panic could not catch it either. But
device_shutdown() prints "<device>: shutdown" before each callback when
initcall_debug is on, so booting with

initcall_debug nomodeset

names the culprit on the console: nomodeset keeps amdgpu from taking
over the framebuffer, so efifb survives to the end of the shutdown, and
the last line on the screen is

mt7925e 0000:c2:00.0: shutdown

with no "reboot: Power down" after it. That points at the guilty
.shutdown callback in one boot, without netconsole and without a serial
port, which on a laptop is the difference between diagnosable and not.

Andrey