Confirming this on a MediaTek MT7922 (USB 0e8d:e616) in a Framework Laptop 13
(AMD Ryzen 7040 Series). Same trace and same fault address (0x219) as the
original report.

System:
  Ubuntu 24.04.4 LTS
  Broken:  6.8.0-139-generic  (crashes on 2/2 boots, cold boot and reboot)
  Working: 6.8.0-138-generic  (Bluetooth fully functional, incl. A2DP/HFP audio)
  linux-firmware: 20240318.git3b128b60.0ubuntu3.1
  BIOS: Framework 03.20 (2026-06-23)
  Bluetooth: MediaTek MT7922, USB 0e8d:e616
  Wi-Fi (unaffected): MT7922 via mt7921e, ASIC revision 79220010

Symptom: bluetoothd starts normally but there is no controller. hci0 exists and
is stuck DOWN with a null address, so the desktop Bluetooth toggle does nothing:

  hci0: Type: Primary  Bus: USB
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN INIT RUNNING
  $ bluetoothctl show
  No default controller available

Nothing is rfkill-blocked (hci0: soft=0 hard=0) and the firmware blob is present
(/lib/firmware/mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin.zst). The driver oopses
while downloading firmware, the hci0 worker dies, and nothing retries; the
adapter cannot be recovered without a reboot (reloading btusb just re-triggers
the oops).

Kernel oops (register dump trimmed):

  Bluetooth: hci0: HW/SW Version: 0x008a008a, Build Time: 20250523103438
  BUG: kernel NULL pointer dereference, address: 0000000000000219
  Oops: 0000 [#1] PREEMPT SMP NOPTI
  CPU: 2 PID: 170 Comm: kworker/u33:0 Not tainted 6.8.0-139-generic #139-Ubuntu
  Hardware name: Framework Laptop 13 (AMD Ryzen 7040Series)/FRANMDCP07, BIOS 
03.20 06/23/2026
  Workqueue: hci0 hci_power_on [bluetooth]
  RIP: 0010:__pm_runtime_resume+0x1b/0x80
  Call Trace:
   <TASK>
   usb_autopm_get_interface+0x1d/0x60
   btmtk_usb_hci_wmt_sync+0xa9/0x2e0 [btmtk]
   ? __pfx_btmtk_usb_hci_wmt_sync+0x10/0x10 [btmtk]
   btmtk_setup_firmware_79xx+0x1c7/0x360 [btmtk]
   btusb_mtk_setup+0x453/0x610 [btusb]
   hci_dev_setup_sync+0x6c/0x430 [bluetooth]
   ? __pm_runtime_idle+0x4c/0xd0
   hci_dev_init_sync+0x3e/0x1c0 [bluetooth]
   hci_dev_open_sync+0xb1/0x350 [bluetooth]
   ? srso_alias_return_thunk+0x5/0xfbef5
   hci_dev_do_open+0x28/0x70 [bluetooth]
   hci_power_on+0x50/0x210 [bluetooth]
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? __try_to_del_timer_sync+0x5f/0xa0
   process_one_work+0x181/0x3a0
   worker_thread+0x18b/0x330
   ? __pfx_worker_thread+0x10/0x10
   kthread+0xef/0x120
   ? __pfx_kthread+0x10/0x10
   ret_from_fork+0x44/0x70
   ? __pfx_kthread+0x10/0x10
   ret_from_fork_asm+0x1b/0x30
   </TASK>
  ---[ end trace 0000000000000000 ]---

Regression window: this machine ran 6.8.0-138 until an `apt upgrade` on
2026-09-04 22:04 that took it to 6.8.0-139 and also moved linux-firmware from
20240318.git3b128b60-0ubuntu2.29 to .0ubuntu3.1. Bluetooth worked throughout the
preceding boot (journal shows an A2DP transport active on hci0 on 2026-09-02 and
2026-09-03) and has oopsed on every boot since. The firmware change appears not
to be involved -- other reporters here saw the same crash with unchanged
firmware, and firmware downgrades have not helped in reports elsewhere.

Possible cause, for whoever picks this up: 6.8.0-139.139 pulled "Noble update:
upstream stable patchset 2026-07-09 (LP: #2160250)", which includes v6.6.142 and
with it the btmtk refactor series:

  Bluetooth: btmtk: move btusb_mtk_hci_wmt_sync to btmtk.c
  Bluetooth: btmtk: rename btmediatek_data
  Bluetooth: btmtk: add the function to get the fw name
  Bluetooth: btusb: mediatek: refactor the function btusb_mtk_reset

The identical crash was reported upstream against 6.6.142/6.6.143 (absent in
6.6.140) by Thorsten Leemhuis and is tracked as
https://bugzilla.kernel.org/show_bug.cgi?id=221696 -- that report notes it does
not reproduce on mainline. That points at the stable backport of the wmt_sync
move landing without everything it depends on, leaving the USB interface pointer
unset when btmtk_usb_hci_wmt_sync() calls usb_autopm_get_interface() during the
WMT firmware handshake. If that is right, the same defect reached Noble's 6.8
tree through the 6.6.142 backport, and a fix would need the missing dependency
rather than a firmware change.

Workaround confirmed here: boot 6.8.0-138-generic.

** Bug watch added: Linux Kernel Bug Tracker #221696
   https://bugzilla.kernel.org/show_bug.cgi?id=221696

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

Title:
  Kernel NULL pointer dereference in btmtk_usb_hci_wmt_sync on
  6.8.0-139-generic (MT7921 / 13d3:3567)

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


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

Reply via email to