syzbot


INFO: task can't die in hci_unregister_dev

Status: auto-closed as invalid on 2022/02/11 04:46
Subsystems: bluetooth
[Documentation on labels]
Reported-by: syzbot+3e98f6cd09287bc5c69a@syzkaller.appspotmail.com
First crash: 858d, last: 858d

Sample crash report:
INFO: task syz-executor.1:12002 can't die for more than 143 seconds.
task:syz-executor.1  state:D stack:27808 pid:12002 ppid:  3643 flags:0x00004004
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:4986 [inline]
 __schedule+0xab2/0x4d90 kernel/sched/core.c:6296
 schedule+0xd2/0x260 kernel/sched/core.c:6369
 schedule_timeout+0x1db/0x2a0 kernel/time/timer.c:1857
 do_wait_for_common kernel/sched/completion.c:85 [inline]
 __wait_for_common kernel/sched/completion.c:106 [inline]
 wait_for_common kernel/sched/completion.c:117 [inline]
 wait_for_completion+0x174/0x270 kernel/sched/completion.c:138
 __flush_work+0x56c/0xb10 kernel/workqueue.c:3093
 __cancel_work_timer+0x3f9/0x570 kernel/workqueue.c:3180
 hci_unregister_dev+0x164/0x550 net/bluetooth/hci_core.c:2677
 hci_uart_tty_close+0x241/0x2a0 drivers/bluetooth/hci_ldisc.c:548
 tty_ldisc_close+0x110/0x190 drivers/tty/tty_ldisc.c:456
 tty_ldisc_kill+0x94/0x150 drivers/tty/tty_ldisc.c:608
 tty_ldisc_release+0x154/0x2a0 drivers/tty/tty_ldisc.c:776
 tty_release_struct+0x20/0xe0 drivers/tty/tty_io.c:1697
 tty_release+0xc70/0x1200 drivers/tty/tty_io.c:1868
 __fput+0x286/0x9f0 fs/file_table.c:311
 task_work_run+0xdd/0x1a0 kernel/task_work.c:164
 tracehook_notify_resume include/linux/tracehook.h:189 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:175 [inline]
 exit_to_user_mode_prepare+0x27e/0x290 kernel/entry/common.c:207
 __syscall_exit_to_user_mode_work kernel/entry/common.c:289 [inline]
 syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:300
 do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f55a08b8adb
RSP: 002b:00007ffdfd7064e0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
RAX: 0000000000000000 RBX: 0000000000000005 RCX: 00007f55a08b8adb
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000004
RBP: 00007f55a0a1a960 R08: 0000000000000000 R09: 00007f55a0a1d4e0
R10: 0000000000000000 R11: 0000000000000293 R12: 00000000000c352c
R13: 00007ffdfd7065e0 R14: 00007f55a0a18f60 R15: 0000000000000032
 </TASK>
INFO: task syz-executor.1:12002 blocked for more than 143 seconds.
      Not tainted 5.16.0-rc4-next-20211210-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor.1  state:D stack:27808 pid:12002 ppid:  3643 flags:0x00004004
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:4986 [inline]
 __schedule+0xab2/0x4d90 kernel/sched/core.c:6296
 schedule+0xd2/0x260 kernel/sched/core.c:6369
 schedule_timeout+0x1db/0x2a0 kernel/time/timer.c:1857
 do_wait_for_common kernel/sched/completion.c:85 [inline]
 __wait_for_common kernel/sched/completion.c:106 [inline]
 wait_for_common kernel/sched/completion.c:117 [inline]
 wait_for_completion+0x174/0x270 kernel/sched/completion.c:138
 __flush_work+0x56c/0xb10 kernel/workqueue.c:3093
 __cancel_work_timer+0x3f9/0x570 kernel/workqueue.c:3180
 hci_unregister_dev+0x164/0x550 net/bluetooth/hci_core.c:2677
 hci_uart_tty_close+0x241/0x2a0 drivers/bluetooth/hci_ldisc.c:548
 tty_ldisc_close+0x110/0x190 drivers/tty/tty_ldisc.c:456
 tty_ldisc_kill+0x94/0x150 drivers/tty/tty_ldisc.c:608
 tty_ldisc_release+0x154/0x2a0 drivers/tty/tty_ldisc.c:776
 tty_release_struct+0x20/0xe0 drivers/tty/tty_io.c:1697
 tty_release+0xc70/0x1200 drivers/tty/tty_io.c:1868
 __fput+0x286/0x9f0 fs/file_table.c:311
 task_work_run+0xdd/0x1a0 kernel/task_work.c:164
 tracehook_notify_resume include/linux/tracehook.h:189 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:175 [inline]
 exit_to_user_mode_prepare+0x27e/0x290 kernel/entry/common.c:207
 __syscall_exit_to_user_mode_work kernel/entry/common.c:289 [inline]
 syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:300
 do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f55a08b8adb
RSP: 002b:00007ffdfd7064e0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
RAX: 0000000000000000 RBX: 0000000000000005 RCX: 00007f55a08b8adb
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000004
RBP: 00007f55a0a1a960 R08: 0000000000000000 R09: 00007f55a0a1d4e0
R10: 0000000000000000 R11: 0000000000000293 R12: 00000000000c352c
R13: 00007ffdfd7065e0 R14: 00007f55a0a18f60 R15: 0000000000000032
 </TASK>

Showing all locks held in the system:
1 lock held by khungtaskd/26:
 #0: ffffffff8bb818a0 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6460
2 locks held by getty/3286:
 #0: ffff88807f1e1098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x22/0x80 drivers/tty/tty_ldisc.c:244
 #1: ffffc90002b962e8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xcf0/0x1230 drivers/tty/n_tty.c:2077
3 locks held by kworker/u5:5/9930:
 #0: ffff88801d905938 ((wq_completion)hci6){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff88801d905938 ((wq_completion)hci6){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
 #0: ffff88801d905938 ((wq_completion)hci6){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
 #0: ffff88801d905938 ((wq_completion)hci6){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:631 [inline]
 #0: ffff88801d905938 ((wq_completion)hci6){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:658 [inline]
 #0: ffff88801d905938 ((wq_completion)hci6){+.+.}-{0:0}, at: process_one_work+0x890/0x1680 kernel/workqueue.c:2278
 #1: ffffc9000508fdb0 ((work_completion)(&hdev->power_on)){+.+.}-{0:0}, at: process_one_work+0x8c4/0x1680 kernel/workqueue.c:2282
 #2: ffff888074071000 (&hdev->req_lock){+.+.}-{3:3}, at: hci_dev_do_open+0x2a/0x70 net/bluetooth/hci_core.c:480
1 lock held by syz-executor.1/12002:
 #0: ffff88807dcf5098 (&tty->ldisc_sem){++++}-{0:0}, at: __tty_ldisc_lock drivers/tty/tty_ldisc.c:290 [inline]
 #0: ffff88807dcf5098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_lock_pair_timeout drivers/tty/tty_ldisc.c:353 [inline]
 #0: ffff88807dcf5098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_lock_pair drivers/tty/tty_ldisc.c:367 [inline]
 #0: ffff88807dcf5098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_release+0x79/0x2a0 drivers/tty/tty_ldisc.c:775

=============================================

NMI backtrace for cpu 0
CPU: 0 PID: 26 Comm: khungtaskd Not tainted 5.16.0-rc4-next-20211210-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
 nmi_cpu_backtrace.cold+0x47/0x144 lib/nmi_backtrace.c:111
 nmi_trigger_cpumask_backtrace+0x1b3/0x230 lib/nmi_backtrace.c:62
 trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline]
 check_hung_uninterruptible_tasks kernel/hung_task.c:256 [inline]
 watchdog+0xcb7/0xed0 kernel/hung_task.c:413
 kthread+0x405/0x4f0 kernel/kthread.c:345
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 7640 Comm: kworker/u4:11 Not tainted 5.16.0-rc4-next-20211210-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: bat_events batadv_nc_worker
RIP: 0010:__lock_acquire+0x1ec/0x54a0 kernel/locking/lockdep.c:4937
Code: f6 4c 8d 24 c5 00 00 00 00 74 4a 4a 8d 4c 21 d8 48 be 00 00 00 00 00 fc ff df 48 8d 79 20 49 89 f8 49 c1 e8 03 41 0f b6 34 30 <40> 84 f6 74 0a 40 80 fe 03 0f 8e 94 3b 00 00 0f b7 71 20 81 e6 ff
RSP: 0018:ffffc90002cefa60 EFLAGS: 00000806
RAX: 000000000000000a RBX: ffffffff8bb818a0 RCX: ffff88803a6be250
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88803a6be270
RBP: 0000000000000000 R08: 1ffff110074d7c4e R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000050
R13: ffff88803a6bd7c0 R14: 0000000000000002 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000c0005a3000 CR3: 000000000b88e000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 lock_acquire kernel/locking/lockdep.c:5639 [inline]
 lock_acquire+0x1ab/0x510 kernel/locking/lockdep.c:5604
 rcu_lock_acquire include/linux/rcupdate.h:268 [inline]
 rcu_read_lock include/linux/rcupdate.h:694 [inline]
 batadv_nc_purge_orig_hash net/batman-adv/network-coding.c:412 [inline]
 batadv_nc_worker+0x12d/0xfa0 net/batman-adv/network-coding.c:723
 process_one_work+0x9ac/0x1680 kernel/workqueue.c:2307
 worker_thread+0x652/0x11c0 kernel/workqueue.c:2454
 kthread+0x405/0x4f0 kernel/kthread.c:345
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>
----------------
Code disassembly (best guess):
   0:	f6 4c 8d 24 c5       	testb  $0xc5,0x24(%rbp,%rcx,4)
   5:	00 00                	add    %al,(%rax)
   7:	00 00                	add    %al,(%rax)
   9:	74 4a                	je     0x55
   b:	4a 8d 4c 21 d8       	lea    -0x28(%rcx,%r12,1),%rcx
  10:	48 be 00 00 00 00 00 	movabs $0xdffffc0000000000,%rsi
  17:	fc ff df
  1a:	48 8d 79 20          	lea    0x20(%rcx),%rdi
  1e:	49 89 f8             	mov    %rdi,%r8
  21:	49 c1 e8 03          	shr    $0x3,%r8
  25:	41 0f b6 34 30       	movzbl (%r8,%rsi,1),%esi
* 2a:	40 84 f6             	test   %sil,%sil <-- trapping instruction
  2d:	74 0a                	je     0x39
  2f:	40 80 fe 03          	cmp    $0x3,%sil
  33:	0f 8e 94 3b 00 00    	jle    0x3bcd
  39:	0f b7 71 20          	movzwl 0x20(%rcx),%esi
  3d:	81                   	.byte 0x81
  3e:	e6 ff                	out    %al,$0xff

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2021/12/13 04:45 linux-next ea922272cbe5 49ca1f59 .config console log report info ci-upstream-linux-next-kasan-gce-root INFO: task can't die in hci_unregister_dev
* Struck through repros no longer work on HEAD.