possible deadlock in __flush_workqueue (2)

Status: upstream: reported on 2026/11/04 22:00
Reported-by: syzbot+3ac6b3c61de6530da8f1@syzkaller.appspotmail.com
First crash: 9h25m, last: 9h25m
▶ ▼ Similar bugs (4)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream possible deadlock in __flush_workqueue (2) usb bluetooth 4 syz, C error 43 789d 816d 0/29 closed as dup on 2024/08/13 06:06
upstream possible deadlock in __flush_workqueue bluetooth 4 1456 823d 1022d 26/29 fixed on 2024/08/06 11:02
linux-6.6 possible deadlock in __flush_workqueue 4 1 372d 372d 0/2 auto-obsoleted due to no activity on 2026/02/06 03:21
linux-6.1 possible deadlock in __flush_workqueue 4 140 820d 965d 0/3 auto-obsoleted due to no activity on 2024/10/16 01:58

Sample crash report:
Bluetooth: hci0: Controller not accepting commands anymore: ncmd = 0
Bluetooth: hci0: Injecting HCI hardware error event
Bluetooth: hci0: hardware error 0x00
============================================
WARNING: possible recursive locking detected
syzkaller #0 Not tainted
--------------------------------------------
kworker/u5:2/4335 is trying to acquire lock:
ffff0000d9475938 ((wq_completion)hci0){+.+.}-{0:0}, at: __flush_workqueue+0x108/0x1064 kernel/workqueue.c:2813

but task is already holding lock:
ffff0000d9475938 ((wq_completion)hci0){+.+.}-{0:0}, at: process_one_work+0x69c/0x13bc kernel/workqueue.c:-1

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock((wq_completion)hci0);
  lock((wq_completion)hci0);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

2 locks held by kworker/u5:2/4335:
 #0: ffff0000d9475938 ((wq_completion)hci0){+.+.}-{0:0}, at: process_one_work+0x69c/0x13bc kernel/workqueue.c:-1
 #1: ffff800022097c40 ((work_completion)(&hdev->error_reset)){+.+.}-{0:0}, at: process_one_work+0x6e8/0x13bc kernel/workqueue.c:2267

stack backtrace:
CPU: 0 PID: 4335 Comm: kworker/u5:2 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/23/2026
Workqueue: hci0 hci_error_reset
Call trace:
 dump_backtrace+0x1c4/0x1f0 arch/arm64/kernel/stacktrace.c:158
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165
 __dump_stack+0x30/0x40 lib/dump_stack.c:88
 dump_stack_lvl+0xf4/0x15c lib/dump_stack.c:106
 dump_stack+0x1c/0x5c lib/dump_stack.c:113
 print_deadlock_bug+0x454/0x5c8 kernel/locking/lockdep.c:3040
 check_deadlock kernel/locking/lockdep.c:3090 [inline]
 validate_chain kernel/locking/lockdep.c:3884 [inline]
 __lock_acquire+0x6020/0x7280 kernel/locking/lockdep.c:5171
 lock_acquire+0x210/0x63c kernel/locking/lockdep.c:5790
 __flush_workqueue+0x134/0x1064 kernel/workqueue.c:2816
 drain_workqueue+0xa4/0x310 kernel/workqueue.c:2981
 destroy_workqueue+0x80/0x9c8 kernel/workqueue.c:4427
 hci_release_dev+0xd4/0x10d8 net/bluetooth/hci_core.c:2757
 bt_host_release+0x7c/0x98 net/bluetooth/hci_sysfs.c:85
 device_release+0x94/0x1b4 drivers/base/core.c:-1
 kobject_cleanup lib/kobject.c:681 [inline]
 kobject_release lib/kobject.c:712 [inline]
 kref_put include/linux/kref.h:65 [inline]
 kobject_put+0x2a8/0x41c lib/kobject.c:729
 put_device+0x28/0x40 drivers/base/core.c:3821
 hci_dev_put include/net/bluetooth/hci_core.h:1454 [inline]
 hci_error_reset+0x150/0x33c net/bluetooth/hci_core.c:1031
 process_one_work+0x7e4/0x13bc kernel/workqueue.c:2292
 worker_thread+0x8cc/0xfe8 kernel/workqueue.c:2439
 kthread+0x254/0x2e0 kernel/kthread.c:376
 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:854

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/11/04 22:00 linux-6.1.y 08889840163e 73438ed0 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 possible deadlock in __flush_workqueue
* Struck through repros no longer work on HEAD.