program: sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000480)={&(0x7f0000000b80)=@delchain={0x25c, 0x65, 0x200, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, {}, {0x0, 0x5}}, [@TCA_CHAIN={0x8}, @TCA_RATE={0x6}, @TCA_CHAIN={0x8}, @filter_kind_options=@f_route={{0xa}, {0x214, 0x2, [@TCA_ROUTE4_FROM={0x8}, @TCA_ROUTE4_FROM={0x8}, @TCA_ROUTE4_IIF={0x8}, @TCA_ROUTE4_ACT={0x1f8, 0x6, [@m_nat={0x7c, 0x800, 0x0, 0x0, {{0x8}, {0x54, 0x2, 0x0, 0x1, [@TCA_NAT_PARMS={0x28, 0x1, {{}, @rand_addr, @local}}, @TCA_NAT_PARMS={0x28, 0x1, {{0x0, 0x0, 0xffffffffffffffff}, @multicast1, @broadcast}}]}, {0x4}, {0xc}, {0xc}}}, @m_csum={0x178, 0x11, 0x0, 0x0, {{0x9}, {0x74, 0x2, 0x0, 0x1, [@TCA_CSUM_PARMS={0x1c, 0x1, {{0x0, 0x73a9, 0x10000004, 0x1, 0x3}, 0x3e}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x5, 0xa8e, 0x20000000, 0x8, 0x1}, 0x80}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x80000000, 0xfff, 0x10000003, 0x7, 0x90000000}, 0x9}}, @TCA_CSUM_PARMS={0x1c, 0x1, {{0x5, 0xff, 0x7, 0x8b0, 0x2}, 0x4c}}]}, {0xda, 0x6, "c50263d08493642166ad6943d444709609505b050bc6e6f41b659b9cf337924955a6813f1e6c9226310d49c0b32cca079d10b7a45d8c0657a025088271023025cd24c6eb9917bdd6988954974ca74ef18b663a0c0b33cfa1e0b0400e571b15a9a39b430bba6d7e03dffa6016585f3f532ea4ad407b639882bcedfc2432bf34d144ef640f6221d674704130e1e7de7bd407eedabbeda84ffa857910c206ffe08a03ad4478e13d85e43595bab9e81305c23f2aa0607bff17e33f9dbbef759cbcc51169989b4fc96d9ebc1a40d6ae0d242e34c1de50d2a4"}, {0xc}, {0xc, 0x8, {0x2, 0x5}}}}]}]}}]}, 0x25c}}, 0x0) r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket$inet6_udp(0xa, 0x2, 0x0) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000c80)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r0, &(0x7f0000001200)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000040)=@newqdisc={0x4c, 0x24, 0x4ee4e6a52ff56541, 0x0, 0x0, {0x0, 0x0, 0x0, r2, {}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_netem={{0xa}, {0x1c}}]}, 0x4c}}, 0x0) r3 = socket$nl_route(0x10, 0x3, 0x0) r4 = socket$inet6_udp(0xa, 0x2, 0x0) ioctl$sock_SIOCGIFINDEX(r4, 0x8933, &(0x7f0000000c80)={'lo\x00', 0x0}) sendmsg$nl_route_sched(r3, &(0x7f0000001200)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000500)=@newqdisc={0x4c, 0x24, 0x4ee4e6a52ff56541, 0x0, 0x0, {0x0, 0x0, 0x0, r5, {0x0, 0x2}, {0xffff, 0xffff}}, [@qdisc_kind_options=@q_netem={{0xa}, {0x1c, 0x2, {{0x0, 0x0, 0x0, 0x7fffffff}}}}]}, 0x4c}}, 0x0) r6 = socket(0x10, 0x803, 0x0) sendto(r6, &(0x7f0000000740)="120000001200e7ef007b00000000000000a1", 0x12, 0x0, 0x0, 0x0) r7 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$KDSETLED(r7, 0x4b32, 0x6) r8 = syz_init_net_socket$bt_l2cap(0x1f, 0x2, 0x0) connect$bt_l2cap(r8, &(0x7f0000000080)={0x1f, 0x0, @fixed={'\xaa\xaa\xaa\xaa\xaa', 0x10}, 0x7ff}, 0xe) r9 = syz_init_net_socket$bt_hidp(0x1f, 0x3, 0x6) ioctl$sock_bt_hidp_HIDPCONNADD(r9, 0x400448c8, &(0x7f00000000c0)={r8, r8, 0x206, 0x0, 0x0, 0x2, 0x72, 0x1, 0x3, 0x7, 0x0, 0x8, 'syz1\x00'}) r10 = syz_init_net_socket$bt_hci(0x1f, 0x3, 0x1) ioctl$HCIINQUIRY(r10, 0x400448ca, 0x0) recvmmsg(r6, &(0x7f00000037c0)=[{{&(0x7f00000004c0)=@ethernet={0x0, @random}, 0xfdf4, &(0x7f0000000380)=[{&(0x7f0000000140)=""/100, 0x365}, {&(0x7f0000000280)=""/85, 0x7c}, {&(0x7f0000000fc0)=""/4096, 0x197}, {&(0x7f0000000400)=""/106, 0x645}, {&(0x7f0000000980)=""/73, 0x1b}, {&(0x7f0000000200)=""/77, 0x14}, {&(0x7f00000007c0)=""/154, 0x8}, {&(0x7f00000001c0)=""/17, 0x1d8}], 0x21, &(0x7f0000000600)=""/191, 0x41}}], 0x4000000000003b4, 0x0, &(0x7f0000003700)={0x77359400}) [ 86.232992][ T5346] input: Bluetooth HID Boot Protocol Device as /devices/virtual/bluetooth/hci0/hci0:200/input5 [ 86.323503][ T5346] [ 86.324624][ T5346] ====================================================== [ 86.327503][ T5346] WARNING: possible circular locking dependency detected [ 86.330298][ T5346] syzkaller #0 Not tainted [ 86.332301][ T5346] ------------------------------------------------------ [ 86.335266][ T5346] syz.0.0/5346 is trying to acquire lock: [ 86.337698][ T5346] ffff888040579840 ((work_completion)(&(&conn->info_timer)->work)){+.+.}-{0:0}, at: __flush_work+0xd2/0xbc0 [ 86.342688][ T5346] [ 86.342688][ T5346] but task is already holding lock: [ 86.345666][ T5346] ffff888040579b38 (&conn->lock#2){+.+.}-{4:4}, at: l2cap_conn_del+0x7b/0x5b0 [ 86.351985][ T5346] [ 86.351985][ T5346] which lock already depends on the new lock. [ 86.351985][ T5346] [ 86.356293][ T5346] [ 86.356293][ T5346] the existing dependency chain (in reverse order) is: [ 86.360135][ T5346] [ 86.360135][ T5346] -> #1 (&conn->lock#2){+.+.}-{4:4}: [ 86.363406][ T5346] __mutex_lock+0x187/0x1350 [ 86.365681][ T5346] l2cap_info_timeout+0x60/0xa0 [ 86.367881][ T5346] process_scheduled_works+0xad1/0x1770 [ 86.370260][ T5346] worker_thread+0x8a0/0xda0 [ 86.372238][ T5346] kthread+0x711/0x8a0 [ 86.373980][ T5346] ret_from_fork+0x510/0xa50 [ 86.375909][ T5346] ret_from_fork_asm+0x1a/0x30 [ 86.377990][ T5346] [ 86.377990][ T5346] -> #0 ((work_completion)(&(&conn->info_timer)->work)){+.+.}-{0:0}: [ 86.382085][ T5346] __lock_acquire+0x15a6/0x2cf0 [ 86.384235][ T5346] lock_acquire+0x107/0x340 [ 86.386263][ T5346] __flush_work+0x6b8/0xbc0 [ 86.388319][ T5346] __cancel_work_sync+0xbe/0x110 [ 86.390600][ T5346] l2cap_conn_del+0x402/0x5b0 [ 86.392775][ T5346] hci_conn_hash_flush+0x10d/0x260 [ 86.395198][ T5346] hci_dev_close_sync+0x821/0x1100 [ 86.397488][ T5346] hci_dev_close+0x108/0x270 [ 86.399617][ T5346] sock_do_ioctl+0xdc/0x300 [ 86.401673][ T5346] sock_ioctl+0x576/0x790 [ 86.403651][ T5346] __se_sys_ioctl+0xfc/0x170 [ 86.405757][ T5346] do_syscall_64+0xec/0xf80 [ 86.407811][ T5346] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 86.410959][ T5346] [ 86.410959][ T5346] other info that might help us debug this: [ 86.410959][ T5346] [ 86.415993][ T5346] Possible unsafe locking scenario: [ 86.415993][ T5346] [ 86.419057][ T5346] CPU0 CPU1 [ 86.421241][ T5346] ---- ---- [ 86.423478][ T5346] lock(&conn->lock#2); [ 86.425358][ T5346] lock((work_completion)(&(&conn->info_timer)->work)); [ 86.429104][ T5346] lock(&conn->lock#2); [ 86.431806][ T5346] lock((work_completion)(&(&conn->info_timer)->work)); [ 86.434695][ T5346] [ 86.434695][ T5346] *** DEADLOCK *** [ 86.434695][ T5346] [ 86.437846][ T5346] 5 locks held by syz.0.0/5346: [ 86.439834][ T5346] #0: ffff888030f28ec0 (&hdev->req_lock){+.+.}-{4:4}, at: hci_dev_close+0x100/0x270 [ 86.443558][ T5346] #1: ffff888030f280c0 (&hdev->lock){+.+.}-{4:4}, at: hci_dev_close_sync+0x640/0x1100 [ 86.447625][ T5346] #2: ffffffff8f485c88 (hci_cb_list_lock){+.+.}-{4:4}, at: hci_conn_hash_flush+0xa1/0x260 [ 86.451754][ T5346] #3: ffff888040579b38 (&conn->lock#2){+.+.}-{4:4}, at: l2cap_conn_del+0x7b/0x5b0 [ 86.455626][ T5346] #4: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: __flush_work+0xd2/0xbc0 [ 86.459345][ T5346] [ 86.459345][ T5346] stack backtrace: [ 86.461875][ T5346] CPU: 0 UID: 0 PID: 5346 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) [ 86.461891][ T5346] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 [ 86.461898][ T5346] Call Trace: [ 86.461905][ T5346] [ 86.461910][ T5346] dump_stack_lvl+0xe8/0x150 [ 86.461927][ T5346] print_circular_bug+0x2e2/0x300 [ 86.461942][ T5346] check_noncircular+0x12e/0x150 [ 86.461959][ T5346] __lock_acquire+0x15a6/0x2cf0 [ 86.461971][ T5346] ? do_raw_spin_lock+0x121/0x290 [ 86.461990][ T5346] ? __flush_work+0xd2/0xbc0 [ 86.462000][ T5346] lock_acquire+0x107/0x340 [ 86.462008][ T5346] ? __flush_work+0xd2/0xbc0 [ 86.462020][ T5346] ? __flush_work+0xd2/0xbc0 [ 86.462031][ T5346] __flush_work+0x6b8/0xbc0 [ 86.462041][ T5346] ? __flush_work+0xd2/0xbc0 [ 86.462053][ T5346] ? __flush_work+0xd2/0xbc0 [ 86.462063][ T5346] ? __pfx___flush_work+0x10/0x10 [ 86.462072][ T5346] ? __pfx_wq_barrier_func+0x10/0x10 [ 86.462085][ T5346] ? __cancel_work_sync+0x5c/0x110 [ 86.462097][ T5346] __cancel_work_sync+0xbe/0x110 [ 86.462109][ T5346] l2cap_conn_del+0x402/0x5b0 [ 86.462124][ T5346] ? __pfx_l2cap_disconn_cfm+0x10/0x10 [ 86.462137][ T5346] hci_conn_hash_flush+0x10d/0x260 [ 86.462152][ T5346] hci_dev_close_sync+0x821/0x1100 [ 86.462167][ T5346] ? __pfx_hci_dev_close_sync+0x10/0x10 [ 86.462178][ T5346] ? lockdep_hardirqs_on+0x7b/0x110 [ 86.462188][ T5346] ? enable_work+0x1e9/0x220 [ 86.462201][ T5346] hci_dev_close+0x108/0x270 [ 86.462214][ T5346] sock_do_ioctl+0xdc/0x300 [ 86.462227][ T5346] ? __pfx_sock_do_ioctl+0x10/0x10 [ 86.462237][ T5346] ? do_futex+0x395/0x420 [ 86.462248][ T5346] ? call_rcu+0x644/0x890 [ 86.462263][ T5346] sock_ioctl+0x576/0x790 [ 86.462274][ T5346] ? __pfx_sock_ioctl+0x10/0x10 [ 86.462285][ T5346] ? __fget_files+0x2a/0x420 [ 86.462295][ T5346] ? __fget_files+0x3a0/0x420 [ 86.462304][ T5346] ? __fget_files+0x2a/0x420 [ 86.462317][ T5346] ? bpf_lsm_file_ioctl+0x9/0x20 [ 86.462333][ T5346] ? __pfx_sock_ioctl+0x10/0x10 [ 86.462346][ T5346] __se_sys_ioctl+0xfc/0x170 [ 86.462360][ T5346] do_syscall_64+0xec/0xf80 [ 86.462369][ T5346] ? entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 86.462379][ T5346] ? trace_irq_disable+0x37/0x100 [ 86.462394][ T5346] ? clear_bhb_loop+0x60/0xb0 [ 86.462406][ T5346] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 86.462416][ T5346] RIP: 0033:0x7fe06398f7c9 [ 86.462447][ T5346] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 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 a8 ff ff ff f7 d8 64 89 01 48 [ 86.462457][ T5346] RSP: 002b:00007fe0647aa038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 86.462469][ T5346] RAX: ffffffffffffffda RBX: 00007fe063be5fa0 RCX: 00007fe06398f7c9 [ 86.462477][ T5346] RDX: 0000000000000000 RSI: 00000000400448ca RDI: 000000000000000c [ 86.462483][ T5346] RBP: 00007fe063a13f91 R08: 0000000000000000 R09: 0000000000000000 [ 86.462490][ T5346] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 86.462495][ T5346] R13: 00007fe063be6038 R14: 00007fe063be5fa0 R15: 00007ffc2f553258 [ 86.462505][ T5346] [ 86.595539][ T4685] Bluetooth: hci0: command tx timeout [ 88.637880][ T4685] Bluetooth: hci0: command tx timeout [ 90.717622][ T4685] Bluetooth: hci0: command tx timeout [ 91.759510][ T10] cfg80211: failed to load regulatory.db