program: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x2, 0x0) connect$bt_l2cap(r0, &(0x7f0000000080)={0x1f, 0x0, @fixed={'\xaa\xaa\xaa\xaa\xaa', 0x10}, 0x7ff}, 0xe) r1 = syz_init_net_socket$bt_hidp(0x1f, 0x3, 0x6) ioctl$sock_bt_hidp_HIDPCONNADD(r1, 0x400448c8, &(0x7f0000000280)={r0, r0, 0xc, 0x1, &(0x7f0000000340)='\x00', 0x9, 0x1, 0x457, 0x9, 0x9, 0x1, 0x1, 'syz1\x00'}) r2 = syz_init_net_socket$bt_hci(0x1f, 0x3, 0x1) r3 = socket$nl_generic(0x10, 0x3, 0x10) r4 = syz_genetlink_get_family_id$batadv(&(0x7f0000000040), 0xffffffffffffffff) sendmsg$BATADV_CMD_GET_DAT_CACHE(r3, &(0x7f0000000180)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000000}, 0xc, &(0x7f0000000140)={&(0x7f00000000c0)={0x54, r4, 0x200, 0x70bd2b, 0x25dfdbfc, {}, [@BATADV_ATTR_VLANID={0x6, 0x28, 0x2}, @BATADV_ATTR_AGGREGATED_OGMS_ENABLED={0x5}, @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED={0x5}, @BATADV_ATTR_BONDING_ENABLED={0x5}, @BATADV_ATTR_TPMETER_TEST_TIME={0x8, 0xb, 0x3}, @BATADV_ATTR_AGGREGATED_OGMS_ENABLED={0x5, 0x29, 0x1}, @BATADV_ATTR_HOP_PENALTY={0x5, 0x35, 0x6}, @BATADV_ATTR_THROUGHPUT_OVERRIDE={0x8, 0x3b, 0xfffffff9}]}, 0x54}, 0x1, 0x0, 0x0, 0x4000010}, 0xc000) ioctl$HCIINQUIRY(r2, 0x400448ca, 0x0) [ 100.891724][ T5302] Bluetooth: hci0: command tx timeout [ 101.021765][ T9] hid-multitouch 0005:0457:0009.0002: unknown main item tag 0x0 [ 101.045672][ T9] hid-multitouch 0005:0457:0009.0002: hidraw1: BLUETOOTH HID v0.09 Device [syz1] on aa:aa:aa:aa:aa:aa [ 101.082048][ T5326] [ 101.083565][ T5326] ====================================================== [ 101.087145][ T5326] WARNING: possible circular locking dependency detected [ 101.090128][ T5326] syzkaller #0 Not tainted [ 101.092259][ T5326] ------------------------------------------------------ [ 101.095323][ T5326] syz.0.0/5326 is trying to acquire lock: [ 101.097726][ T5326] ffff88801ccb0040 ((work_completion)(&(&conn->info_timer)->work)){+.+.}-{0:0}, at: __flush_work+0x100/0xc50 [ 101.103820][ T5326] [ 101.103820][ T5326] but task is already holding lock: [ 101.107184][ T5326] ffff88801ccb02f8 (&conn->lock#2){+.+.}-{4:4}, at: l2cap_conn_del+0x7b/0x5c0 [ 101.111058][ T5326] [ 101.111058][ T5326] which lock already depends on the new lock. [ 101.111058][ T5326] [ 101.115649][ T5326] [ 101.115649][ T5326] the existing dependency chain (in reverse order) is: [ 101.119378][ T5326] [ 101.119378][ T5326] -> #1 (&conn->lock#2){+.+.}-{4:4}: [ 101.123439][ T5326] __mutex_lock+0x19f/0x1300 [ 101.125714][ T5326] l2cap_info_timeout+0x60/0xa0 [ 101.128212][ T5326] process_scheduled_works+0xb6e/0x18c0 [ 101.131109][ T5326] worker_thread+0xa53/0xfc0 [ 101.133523][ T5326] kthread+0x388/0x470 [ 101.135494][ T5326] ret_from_fork+0x51e/0xb90 [ 101.137719][ T5326] ret_from_fork_asm+0x1a/0x30 [ 101.140231][ T5326] [ 101.140231][ T5326] -> #0 ((work_completion)(&(&conn->info_timer)->work)){+.+.}-{0:0}: [ 101.145020][ T5326] __lock_acquire+0x15a5/0x2cf0 [ 101.147786][ T5326] lock_acquire+0xf0/0x2e0 [ 101.150397][ T5326] __flush_work+0x700/0xc50 [ 101.152840][ T5326] __cancel_work_sync+0xbe/0x110 [ 101.155321][ T5326] l2cap_conn_del+0x40f/0x5c0 [ 101.157662][ T5326] hci_conn_hash_flush+0x10d/0x260 [ 101.160103][ T5326] hci_dev_close_sync+0x821/0x10e0 [ 101.162797][ T5326] hci_dev_close+0x108/0x260 [ 101.165247][ T5326] sock_do_ioctl+0x101/0x320 [ 101.167778][ T5326] sock_ioctl+0x5c6/0x7f0 [ 101.170405][ T5326] __se_sys_ioctl+0xfc/0x170 [ 101.173984][ T5326] do_syscall_64+0x14d/0xf80 [ 101.176473][ T5326] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 101.179477][ T5326] [ 101.179477][ T5326] other info that might help us debug this: [ 101.179477][ T5326] [ 101.184041][ T5326] Possible unsafe locking scenario: [ 101.184041][ T5326] [ 101.187681][ T5326] CPU0 CPU1 [ 101.190161][ T5326] ---- ---- [ 101.192863][ T5326] lock(&conn->lock#2); [ 101.195181][ T5326] lock((work_completion)(&(&conn->info_timer)->work)); [ 101.200257][ T5326] lock(&conn->lock#2); [ 101.203010][ T5326] lock((work_completion)(&(&conn->info_timer)->work)); [ 101.206200][ T5326] [ 101.206200][ T5326] *** DEADLOCK *** [ 101.206200][ T5326] [ 101.209768][ T5326] 5 locks held by syz.0.0/5326: [ 101.211982][ T5326] #0: ffff88801fb74ec0 (&hdev->req_lock){+.+.}-{4:4}, at: hci_dev_close+0x100/0x260 [ 101.217243][ T5326] #1: ffff88801fb740c0 (&hdev->lock){+.+.}-{4:4}, at: hci_dev_close_sync+0x640/0x10e0 [ 101.222346][ T5326] #2: ffffffff8fd5c828 (hci_cb_list_lock){+.+.}-{4:4}, at: hci_conn_hash_flush+0xa1/0x260 [ 101.227119][ T5326] #3: ffff88801ccb02f8 (&conn->lock#2){+.+.}-{4:4}, at: l2cap_conn_del+0x7b/0x5c0 [ 101.231475][ T5326] #4: ffffffff8e75e520 (rcu_read_lock){....}-{1:3}, at: __flush_work+0x100/0xc50 [ 101.235759][ T5326] [ 101.235759][ T5326] stack backtrace: [ 101.238467][ T5326] CPU: 0 UID: 0 PID: 5326 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) [ 101.238491][ T5326] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 101.238501][ T5326] Call Trace: [ 101.238512][ T5326] [ 101.238551][ T5326] dump_stack_lvl+0xe8/0x150 [ 101.238583][ T5326] print_circular_bug+0x2e1/0x300 [ 101.238603][ T5326] check_noncircular+0x12e/0x150 [ 101.238623][ T5326] __lock_acquire+0x15a5/0x2cf0 [ 101.238646][ T5326] ? do_raw_spin_lock+0x12b/0x2f0 [ 101.238682][ T5326] ? do_raw_spin_unlock+0x4d/0x210 [ 101.238695][ T5326] lock_acquire+0xf0/0x2e0 [ 101.238711][ T5326] ? __flush_work+0x100/0xc50 [ 101.238734][ T5326] ? __flush_work+0x100/0xc50 [ 101.238751][ T5326] __flush_work+0x700/0xc50 [ 101.238766][ T5326] ? __flush_work+0x100/0xc50 [ 101.238782][ T5326] ? __flush_work+0x100/0xc50 [ 101.238801][ T5326] ? __pfx___flush_work+0x10/0x10 [ 101.238818][ T5326] ? __pfx_wq_barrier_func+0x10/0x10 [ 101.238837][ T5326] ? __cancel_work_sync+0x5c/0x110 [ 101.238853][ T5326] __cancel_work_sync+0xbe/0x110 [ 101.238869][ T5326] l2cap_conn_del+0x40f/0x5c0 [ 101.238887][ T5326] ? __pfx_l2cap_disconn_cfm+0x10/0x10 [ 101.238903][ T5326] hci_conn_hash_flush+0x10d/0x260 [ 101.238935][ T5326] hci_dev_close_sync+0x821/0x10e0 [ 101.238955][ T5326] ? __pfx_hci_dev_close_sync+0x10/0x10 [ 101.238968][ T5326] ? lockdep_hardirqs_on+0x7a/0x110 [ 101.238982][ T5326] ? enable_work+0x1fd/0x230 [ 101.239002][ T5326] hci_dev_close+0x108/0x260 [ 101.239021][ T5326] sock_do_ioctl+0x101/0x320 [ 101.239036][ T5326] ? __pfx_sock_do_ioctl+0x10/0x10 [ 101.239048][ T5326] ? do_futex+0x333/0x420 [ 101.239070][ T5326] sock_ioctl+0x5c6/0x7f0 [ 101.239085][ T5326] ? __pfx_sock_ioctl+0x10/0x10 [ 101.239099][ T5326] ? __fget_files+0x2a/0x420 [ 101.239117][ T5326] ? __fget_files+0x3a0/0x420 [ 101.239133][ T5326] ? __fget_files+0x2a/0x420 [ 101.239147][ T5326] ? bpf_lsm_file_ioctl+0x9/0x20 [ 101.239161][ T5326] ? __pfx_sock_ioctl+0x10/0x10 [ 101.239171][ T5326] __se_sys_ioctl+0xfc/0x170 [ 101.239183][ T5326] do_syscall_64+0x14d/0xf80 [ 101.239194][ T5326] ? trace_irq_disable+0x3b/0x150 [ 101.239211][ T5326] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 101.239223][ T5326] ? clear_bhb_loop+0x40/0x90 [ 101.239235][ T5326] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 101.239247][ T5326] RIP: 0033:0x7f9b1139c799 [ 101.239261][ T5326] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 [ 101.239271][ T5326] RSP: 002b:00007f9b12187fe8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 101.239285][ T5326] RAX: ffffffffffffffda RBX: 00007f9b11615fa0 RCX: 00007f9b1139c799 [ 101.239293][ T5326] RDX: 0000000000000000 RSI: 00000000400448ca RDI: 0000000000000006 [ 101.239299][ T5326] RBP: 00007f9b11432c99 R08: 0000000000000000 R09: 0000000000000000 [ 101.239305][ T5326] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 101.239311][ T5326] R13: 00007f9b11616038 R14: 00007f9b11615fa0 R15: 00007ffe561469d8 [ 101.239323][ T5326] [ 101.414851][ T5332] fido_id[5332]: Failed to open report descriptor at '/sys/devices/virtual/bluetooth/hci0/hci0:200/report_descriptor': No such file or directory [ 102.969101][ T4668] Bluetooth: hci0: command tx timeout [ 105.050149][ T4668] Bluetooth: hci0: command tx timeout [ 107.129168][ T4668] Bluetooth: hci0: command tx timeout