Public bug reported:

Package: linux (Ubuntu)
Release: Ubuntu 26.04.1 LTS (resolute)
Kernel: Ubuntu 7.0.0-31.31-generic 7.0.14
Hardware: Dell Precision 3650 Tower (BIOS 1.48.0)
Wi-Fi: ALFA USB adapter, MediaTek MT7921AU, USB ID 0e8d:7961, driver mt7921u
       (on xHCI port 1-9, high-speed; kernel cmdline has usbcore.autosuspend=-1)
Firmware: linux-firmware 20260319.git217ca6e4.1ubuntu
          WM Firmware Version ____010000, Build Time 20260224110949

[Impact]
After the adapter stops answering USB control requests, the USB core queues a
device reset. The reset unbinds mt7921u, and mt76_unregister_device() blocks in
mt7921_abort_roc() waiting for the device mutex while holding RTNL.
NetworkManager, ip, and every other process that needs RTNL then sits in
D state for good. The machine cannot be powered off cleanly and needs a hard
power-off.

[Timeline, 2026-09-15]
- 19:05:31  first "mt7921u 1-9:1.3: vendor request req:63 off:d02c failed:-110"
- ~3 s per failed request, 84 failures in total until 19:09:55
- 19:09:43  hung_task reports 8 blocked tasks (NetworkManager, ip, kworkers,
            user-space apps), all "blocked on a mutex likely owned by task
            kworker/7:1:304"
- 19:09:55  last journal entry; hard power-off required

[Blocker: kworker/7:1 (USB reset -> unbind -> unregister)]
task:kworker/7:1     state:D stack:0     pid:304   tgid:304   ppid:2      
task_flags:0x4288060 flags:0x00080000
Workqueue: events __usb_queue_reset_device
Call Trace:
 <TASK>
 __schedule+0x2bb/0x650
 schedule+0x27/0xb0
 schedule_preempt_disabled+0x15/0x30
 __mutex_lock.constprop.0+0x550/0xaf0
 __mutex_lock_slowpath+0x13/0x20
 mutex_lock+0x3b/0x50
 mt7921_abort_roc+0x3d/0xb0 [mt7921_common]
 mt7921_mgd_complete_tx+0x1c/0x30 [mt7921_common]
 drv_mgd_complete_tx.part.0+0x57/0x180 [mac80211]
 ieee80211_set_disassoc+0x7fb/0x8a0 [mac80211]
 ieee80211_mgd_deauth+0x148/0x590 [mac80211]
 ieee80211_deauth+0x18/0x30 [mac80211]
 cfg80211_mlme_deauth+0xa8/0x220 [cfg80211]
 cfg80211_mlme_down+0x60/0x90 [cfg80211]
 cfg80211_disconnect+0x1a6/0x230 [cfg80211]
 cfg80211_leave+0x237/0x290 [cfg80211]
 cfg80211_netdev_notifier_call+0x185/0x4d0 [cfg80211]
 notifier_call_chain+0x62/0xf0
 raw_notifier_call_chain+0x16/0x30
 call_netdevice_notifiers_info+0x50/0x80
 __dev_close_many+0x65/0x220
 netif_close_many+0xb7/0x1b0
 netif_close+0x70/0xa0
 dev_close+0x38/0xb0
 cfg80211_shutdown_all_interfaces+0x50/0x100 [cfg80211]
 ieee80211_remove_interfaces+0x47/0x220 [mac80211]
 ieee80211_unregister_hw+0x4a/0x140 [mac80211]
 mt76_unregister_device+0x63/0x80 [mt76]
 mt792xu_disconnect+0x32/0x90 [mt792x_usb]
 usb_unbind_interface+0x9b/0x2c0
 device_remove+0x68/0x80
 device_release_driver_internal+0x1fb/0x260
 device_release_driver+0x12/0x20
 usb_forced_unbind_intf+0x96/0xe0
 usb_reset_device+0xf4/0x300
 __usb_queue_reset_device+0x3b/0x60
 process_one_work+0x1ac/0x3d0
 worker_thread+0x1b8/0x360
 kthread+0xf7/0x130
 ret_from_fork+0x195/0x2a0
 ret_from_fork_asm+0x1a/0x30
 </TASK>

[Victim: NetworkManager waiting for RTNL (first frames)]
INFO: task NetworkManager:3094 blocked for more than 122 seconds.
      Tainted: G           OE       7.0.0-31-generic #31-Ubuntu
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:NetworkManager  state:D stack:0     pid:3094  tgid:3094  ppid:1      
task_flags:0x400100 flags:0x00080000
Call Trace:
 <TASK>
 __schedule+0x2bb/0x650
 schedule+0x27/0xb0
 schedule_preempt_disabled+0x15/0x30
 __mutex_lock.constprop.0+0x550/0xaf0
 __mutex_lock_slowpath+0x13/0x20
 mutex_lock+0x3b/0x50
 rtnl_lock+0x15/0x20
 nl80211_prepare_wdev_dump+0x8a/0x250 [cfg80211]
 nl80211_dump_station+0x80/0x4c0 [cfg80211]
 genl_dumpit+0x36/0x90
 netlink_dump+0x1a2/0x400
INFO: task NetworkManager:3094 is blocked on a mutex likely owned by task 
kworker/7:1:304.
task:kworker/7:1     state:D stack:0     pid:304   tgid:304   ppid:2      
task_flags:0x4288060 flags:0x00080000
Workqueue: events __usb_queue_reset_device
Call Trace:
 <TASK>
 __schedule+0x2bb/0x650
 schedule+0x27/0xb0
 schedule_preempt_disabled+0x15/0x30
 __mutex_lock.constprop.0+0x550/0xaf0
 __mutex_lock_slowpath+0x13/0x20
 mutex_lock+0x3b/0x50
 mt7921_abort_roc+0x3d/0xb0 [mt7921_common]
 mt7921_mgd_complete_tx+0x1c/0x30 [mt7921_common]
 drv_mgd_complete_tx.part.0+0x57/0x180 [mac80211]
 ieee80211_set_disassoc+0x7fb/0x8a0 [mac80211]
 ieee80211_mgd_deauth+0x148/0x590 [mac80211]
 ieee80211_deauth+0x18/0x30 [mac80211]
 cfg80211_mlme_deauth+0xa8/0x220 [cfg80211]
 cfg80211_mlme_down+0x60/0x90 [cfg80211]
 cfg80211_disconnect+0x1a6/0x230 [cfg80211]
 cfg80211_leave+0x237/0x290 [cfg80211]
 cfg80211_netdev_notifier_call+0x185/0x4d0 [cfg80211]
 notifier_call_chain+0x62/0xf0
 raw_notifier_call_chain+0x16/0x30
 call_netdevice_notifiers_info+0x50/0x80
 __dev_close_many+0x65/0x220
 netif_close_many+0xb7/0x1b0
 netif_close+0x70/0xa0
 dev_close+0x38/0xb0
 cfg80211_shutdown_all_interfaces+0x50/0x100 [cfg80211]
 ieee80211_remove_interfaces+0x47/0x220 [mac80211]
 ieee80211_unregister_hw+0x4a/0x140 [mac80211]
 mt76_unregister_device+0x63/0x80 [mt76]
 mt792xu_disconnect+0x32/0x90 [mt792x_usb]
 usb_unbind_interface+0x9b/0x2c0
 device_remove+0x68/0x80
 device_release_driver_internal+0x1fb/0x260
 device_release_driver+0x12/0x20
 usb_forced_unbind_intf+0x96/0xe0
 usb_reset_device+0xf4/0x300
 __usb_queue_reset_device+0x3b/0x60
 process_one_work+0x1ac/0x3d0
 worker_thread+0x1b8/0x360
 kthread+0xf7/0x130
 ret_from_fork+0x195/0x2a0
 ret_from_fork_asm+0x1a/0x30
 </TASK>

[Already verified]
- The kernel already has the fixes from 7.0.0-28 ("mt7921: fix potential
  deadlock in mt7921_roc_abort_sync" / CVE-2026-53101, "mt76: fix deadlock in
  remain-on-channel", "mt7921: fix ROC abort flow interruption in
  mt7921_roc_work"). The hang still happens on 7.0.0-31, so this is a
  different path: USB reset/disconnect while the bus is hung.
- The upstream series "wifi: mt76: mt792x: harden USB reset and disconnect
  paths" (Sean Wang, 2026-06-13, 6 patches, Fixes: 0d2afe09fad5 "mt76: mt7921:
  add mt7921u driver") describes exactly these symptoms: repeated -110 vendor
  request timeouts, teardown blocked by failing register access, and quiescing
  the USB paths in mt792xu_disconnect. Please consider it (and its dependency
  "wifi: mt76: mt76u: use a threaded NAPI for the RX path") for an SRU once it
  lands upstream.

[Notes]
- Kernel taint "OE" comes only from VirtualBox modules (vboxdrv, vboxnetflt,
  vboxnetadp). None of them appear in the traces.
- Happens rarely. Other boots show no -110 errors and shut down normally.
- I can test a -proposed / PPA kernel with the patches.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: linux-image-7.0.0-31-generic 7.0.0-31.31
ProcVersionSignature: Ubuntu 7.0.0-31.31-generic 7.0.14
Uname: Linux 7.0.0-31-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
AudioDevicesInUse:
 USER        PID ACCESS COMMAND
 /dev/snd/controlC1:  piotr      6207 F.... wireplumber
 /dev/snd/controlC0:  piotr      6207 F.... wireplumber
 /dev/snd/seq:        piotr      6192 F.... pipewire
CasperMD5CheckResult: unknown
CurrentDesktop: KDE
Date: Thu Sep 17 15:39:30 2026
InstallationDate: Installed on 2025-01-26 (599 days ago)
InstallationMedia: Ubuntu-Studio 23.10 "Mantic Minotaur" - Release amd64 
(20231010)
MachineType: Dell Inc. Precision 3650 Tower
ProcFB: 0 amdgpudrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-7.0.0-31-generic 
root=UUID=d8c56c2f-379a-4ed5-8b74-f2e46feda11c ro quiet splash 
usbcore.autosuspend=-1 reboot=pci preempt=full rcu_nocbs=all preempt=full 
threadirqs rcu_nocbs=all
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No 
PulseAudio daemon running, or not running as session daemon.
SourcePackage: linux
UpgradeStatus: Upgraded to resolute on 2026-05-17 (123 days ago)
dmi.bios.date: 05/27/2026
dmi.bios.release: 1.48
dmi.bios.vendor: Dell Inc.
dmi.bios.version: 1.48.0
dmi.board.name: 0NDYHG
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 3
dmi.chassis.vendor: Dell Inc.
dmi.modalias: 
dmi:bvnDellInc.:bvr1.48.0:bd05/27/2026:br1.48:svnDellInc.:pnPrecision3650Tower:pvr:rvnDellInc.:rn0NDYHG:rvrA00:cvnDellInc.:ct3:cvr:sku0A58:pfaPrecision:
dmi.product.family: Precision
dmi.product.name: Precision 3650 Tower
dmi.product.sku: 0A58
dmi.sys.vendor: Dell Inc.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug resolute wayland-session

** Attachment added: "Full kernel log (journalctl -k) of the affected boot on 
2026-09-15, from kernel start to the hang. Contains all 84 "vendor request 
failed: -110" USB timeouts and complete traces of all 8 blocked tasks. 
Sanitized: IP/MAC addresses, hostname and UUIDs replaced with [REDACTED-*] 
placeholders; the ALFA adapter's own MAC kept for hardware 
identification.</parameter>"
   
https://bugs.launchpad.net/bugs/2167595/+attachment/6000821/+files/journal-boot-minus-5-kernel-only.txt

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2167595

Title:
  mt7921u: USB reset after -110 timeouts deadlocks in mt7921_abort_roc,
  blocks rtnl_lock and shutdown

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2167595/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to