syzbot


INFO: task hung in usb_remote_wakeup (3)

Status: auto-closed as invalid on 2022/05/24 13:32
Subsystems: usb
[Documentation on labels]
First crash: 804d, last: 804d
Similar bugs (6)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.19 INFO: task hung in usb_remote_wakeup 1 1245d 1245d 0/1 auto-closed as invalid on 2021/04/07 18:31
upstream INFO: task hung in usb_remote_wakeup (2) usb syz inconclusive done 9 991d 1189d 20/26 fixed on 2021/11/10 00:50
upstream INFO: task hung in usb_remote_wakeup (5) usb 1 363d 363d 0/26 auto-obsoleted due to no activity on 2023/08/08 04:40
upstream INFO: task hung in usb_remote_wakeup usb 7 1655d 1841d 0/26 auto-closed as invalid on 2020/01/24 14:16
upstream INFO: task hung in usb_remote_wakeup (4) usb 2 544d 594d 0/26 auto-obsoleted due to no activity on 2023/02/10 23:06
linux-4.14 INFO: task hung in usb_remote_wakeup 1 1306d 1306d 0/1 auto-closed as invalid on 2021/02/06 13:01

Sample crash report:
INFO: task kworker/1:7:5199 blocked for more than 143 seconds.
      Not tainted 5.17.0-rc4-syzkaller-00081-ga5d847b0afd3 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:kworker/1:7     state:D stack:22256 pid: 5199 ppid:     2 flags:0x00004000
Workqueue: pm hcd_resume_work
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:4987 [inline]
 __schedule+0x931/0x22e0 kernel/sched/core.c:6296
 schedule+0xd2/0x260 kernel/sched/core.c:6369
 schedule_preempt_disabled+0xf/0x20 kernel/sched/core.c:6428
 __mutex_lock_common kernel/locking/mutex.c:673 [inline]
 __mutex_lock+0xa32/0x12f0 kernel/locking/mutex.c:733
 device_lock include/linux/device.h:767 [inline]
 usb_remote_wakeup+0x1f/0xe0 drivers/usb/core/hub.c:3729
 process_one_work+0x9ac/0x1650 kernel/workqueue.c:2307
 worker_thread+0x657/0x1110 kernel/workqueue.c:2454
 kthread+0x2ef/0x3a0 kernel/kthread.c:377
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>

Showing all locks held in the system:
6 locks held by kworker/1:1/23:
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:631 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:658 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: process_one_work+0x890/0x1650 kernel/workqueue.c:2278
 #1: ffffc90000197db8 ((work_completion)(&hub->events)){+.+.}-{0:0}, at: process_one_work+0x8c4/0x1650 kernel/workqueue.c:2282
 #2: ffff88810cebd220 (&dev->mutex){....}-{3:3}, at: device_lock include/linux/device.h:767 [inline]
 #2: ffff88810cebd220 (&dev->mutex){....}-{3:3}, at: hub_event+0x1c5/0x44d0 drivers/usb/core/hub.c:5693
 #3: ffff88810cf50578 (&port_dev->status_lock){+.+.}-{3:3}, at: usb_lock_port drivers/usb/core/hub.c:3095 [inline]
 #3: ffff88810cf50578 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_port_connect drivers/usb/core/hub.c:5259 [inline]
 #3: ffff88810cf50578 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
 #3: ffff88810cf50578 (&port_dev->status_lock){+.+.}-{3:3}, at: port_event drivers/usb/core/hub.c:5665 [inline]
 #3: ffff88810cf50578 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_event+0x1fba/0x44d0 drivers/usb/core/hub.c:5747
 #4: ffff88810cbf6968 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_port_connect drivers/usb/core/hub.c:5260 [inline]
 #4: ffff88810cbf6968 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
 #4: ffff88810cbf6968 (hcd->address0_mutex){+.+.}-{3:3}, at: port_event drivers/usb/core/hub.c:5665 [inline]
 #4: ffff88810cbf6968 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_event+0x1fe3/0x44d0 drivers/usb/core/hub.c:5747
 #5: ffffffff881c6850 (ehci_cf_port_reset_rwsem){.+.+}-{3:3}, at: hub_port_reset+0x191/0x1c20 drivers/usb/core/hub.c:2953
1 lock held by khungtaskd/25:
 #0: ffffffff87891580 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6460
2 locks held by getty/1228:
 #0: ffff88810e5ce098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x22/0x80 drivers/tty/tty_ldisc.c:244
 #1: ffffc900000432e8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xcf0/0x1230 drivers/tty/n_tty.c:2077
3 locks held by kworker/1:4/4048:
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:631 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:658 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: process_one_work+0x890/0x1650 kernel/workqueue.c:2278
 #1: ffffc90001ce7db8 ((work_completion)(&hcd->wakeup_work)){+.+.}-{0:0}, at: process_one_work+0x8c4/0x1650 kernel/workqueue.c:2282
 #2: ffff88810cf6d220 (&dev->mutex){....}-{3:3}, at: device_lock include/linux/device.h:767 [inline]
 #2: ffff88810cf6d220 (&dev->mutex){....}-{3:3}, at: hub_event+0x1c5/0x44d0 drivers/usb/core/hub.c:5693
6 locks held by kworker/1:5/4092:
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:631 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:658 [inline]
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: process_one_work+0x890/0x1650 kernel/workqueue.c:2278
 #1: ffffc90001fb7db8 ((work_completion)(&hub->events)){+.+.}-{0:0}, at: process_one_work+0x8c4/0x1650 kernel/workqueue.c:2282
 #2: ffff88810cf55220 (&dev->mutex){....}-{3:3}, at: device_lock include/linux/device.h:767 [inline]
 #2: ffff88810cf55220 (&dev->mutex){....}-{3:3}, at: hub_event+0x1c5/0x44d0 drivers/usb/core/hub.c:5693
 #3: ffff88810cf68578 (&port_dev->status_lock){+.+.}-{3:3}, at: usb_lock_port drivers/usb/core/hub.c:3095 [inline]
 #3: ffff88810cf68578 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_port_connect drivers/usb/core/hub.c:5259 [inline]
 #3: ffff88810cf68578 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
 #3: ffff88810cf68578 (&port_dev->status_lock){+.+.}-{3:3}, at: port_event drivers/usb/core/hub.c:5665 [inline]
 #3: ffff88810cf68578 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_event+0x1fba/0x44d0 drivers/usb/core/hub.c:5747
 #4: ffff88810cdff168 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_port_connect drivers/usb/core/hub.c:5260 [inline]
 #4: ffff88810cdff168 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
 #4: ffff88810cdff168 (hcd->address0_mutex){+.+.}-{3:3}, at: port_event drivers/usb/core/hub.c:5665 [inline]
 #4: ffff88810cdff168 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_event+0x1fe3/0x44d0 drivers/usb/core/hub.c:5747
 #5: ffffffff881c6850 (ehci_cf_port_reset_rwsem){.+.+}-{3:3}, at: hub_port_reset+0x191/0x1c20 drivers/usb/core/hub.c:2953
5 locks held by kworker/0:3/4100:
5 locks held by kworker/0:5/4179:
 #0: ffff888103ffb938 ((wq_completion)usb_hub_wq){+.+.}-{0:0}
, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
, at: set_work_data kernel/workqueue.c:631 [inline]
, at: set_work_pool_and_clear_pending kernel/workqueue.c:658 [inline]
, at: process_one_work+0x890/0x1650 kernel/workqueue.c:2278
 #1: ffffc900026d7db8 ((work_completion)(&hub->events)){+.+.}-{0:0}, at: process_one_work+0x8c4/0x1650 kernel/workqueue.c:2282
 #2: ffff88810bfaf220 (&dev->mutex
){....}-{3:3}, at: device_lock include/linux/device.h:767 [inline]
){....}-{3:3}, at: hub_event+0x1c5/0x44d0 drivers/usb/core/hub.c:5693
 #3: ffff88810ceb8578
 (&port_dev->status_lock){+.+.}-{3:3}, at: usb_lock_port drivers/usb/core/hub.c:3095 [inline]
 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_port_connect drivers/usb/core/hub.c:5259 [inline]
 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
 (&port_dev->status_lock){+.+.}-{3:3}, at: port_event drivers/usb/core/hub.c:5665 [inline]
 (&port_dev->status_lock){+.+.}-{3:3}, at: hub_event+0x1fba/0x44d0 drivers/usb/core/hub.c:5747
 #4: 
ffff88810bfb9a68 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_port_connect drivers/usb/core/hub.c:5260 [inline]
ffff88810bfb9a68 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
ffff88810bfb9a68 (hcd->address0_mutex){+.+.}-{3:3}, at: port_event drivers/usb/core/hub.c:5665 [inline]
ffff88810bfb9a68 (hcd->address0_mutex){+.+.}-{3:3}, at: hub_event+0x1fe3/0x44d0 drivers/usb/core/hub.c:5747
3 locks held by kworker/1:7/5199:
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1280 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:631 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:658 [inline]
 #0: ffff888108395538 ((wq_completion)pm){+.+.}-{0:0}, at: process_one_work+0x890/0x1650 kernel/workqueue.c:2278
 #1: ffffc9000a51fdb8 ((work_completion)(&hcd->wakeup_work)){+.+.}-{0:0}, at: process_one_work+0x8c4/0x1650 kernel/workqueue.c:2282
 #2: ffff88810cfbd220 (&dev->mutex){....}-{3:3}, at: device_lock include/linux/device.h:767 [inline]
 #2: ffff88810cfbd220 (&dev->mutex){....}-{3:3}, at: usb_remote_wakeup+0x1f/0xe0 drivers/usb/core/hub.c:3729
4 locks held by syz-executor.5/17870:
 #0: ffff88810eb96438 (sb_writers#4){.+.+}-{0:0}, at: ioctl_setflags fs/ioctl.c:729 [inline]
 #0: ffff88810eb96438 (sb_writers#4){.+.+}-{0:0}, at: do_vfs_ioctl+0xe36/0x15d0 fs/ioctl.c:843
 #1: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: inode_lock include/linux/fs.h:777 [inline]
 #1: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: vfs_fileattr_set+0x148/0xb70 fs/ioctl.c:685
 #2: ffff88810eba0bd0 (&sbi->s_writepages_rwsem){++++}-{0:0}, at: ext4_ind_migrate+0x237/0x840 fs/ext4/migrate.c:622
 #3: ffffffff8789a628 (rcu_state.exp_mutex){+.+.}-{3:3}, at: exp_funnel_lock kernel/rcu/tree_exp.h:290 [inline]
 #3: ffffffff8789a628 (rcu_state.exp_mutex){+.+.}-{3:3}, at: synchronize_rcu_expedited+0x4fa/0x620 kernel/rcu/tree_exp.h:840
2 locks held by syz-executor.5/17871:
 #0: ffff88810eb96438 (sb_writers#4){.+.+}-{0:0}, at: do_open fs/namei.c:3469 [inline]
 #0: ffff88810eb96438 (sb_writers#4){.+.+}-{0:0}, at: path_openat+0x1b69/0x2940 fs/namei.c:3609
 #1: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: inode_lock include/linux/fs.h:777 [inline]
 #1: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: process_measurement+0x17c0/0x1920 security/integrity/ima/ima_main.c:241
1 lock held by syz-executor.5/17872:
 #0: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: inode_lock include/linux/fs.h:777 [inline]
 #0: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: process_measurement+0x17c0/0x1920 security/integrity/ima/ima_main.c:241
1 lock held by syz-executor.5/17873:
 #0: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: inode_lock include/linux/fs.h:777 [inline]
 #0: ffff8881336cf9b0 (&sb->s_type->i_mutex_key#9){++++}-{3:3}, at: process_measurement+0x71a/0x1920 security/integrity/ima/ima_main.c:241

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

NMI backtrace for cpu 0
CPU: 0 PID: 25 Comm: khungtaskd Not tainted 5.17.0-rc4-syzkaller-00081-ga5d847b0afd3 #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+0x1e6/0x230 lib/nmi_backtrace.c:62
 trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline]
 check_hung_uninterruptible_tasks kernel/hung_task.c:212 [inline]
 watchdog+0xc1d/0xf50 kernel/hung_task.c:369
 kthread+0x2ef/0x3a0 kernel/kthread.c:377
 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: 4048 Comm: kworker/1:4 Not tainted 5.17.0-rc4-syzkaller-00081-ga5d847b0afd3 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: usb_hub_wq hub_event
RIP: 0010:io_serial_in+0x82/0xa0 drivers/tty/serial/8250/8250_port.c:453
Code: c4 8b fa fe 48 8d 7d 40 44 89 e1 48 b8 00 00 00 00 00 fc ff df 48 89 fa d3 e3 48 c1 ea 03 80 3c 02 00 75 15 03 5d 40 89 da ec <5b> 0f b6 c0 5d 41 5c c3 e8 21 c3 29 ff eb a7 e8 4a c3 29 ff eb e4
RSP: 0018:ffffc90001ce7430 EFLAGS: 00000006
RAX: dffffc0000000005 RBX: 00000000000003f9 RCX: 0000000000000000
RDX: 00000000000003f9 RSI: ffffffff8249790c RDI: ffffffff8aeacbe0
RBP: ffffffff8aeacba0 R08: 0000000000000001 R09: 0000000000000000
R10: ffffffff824978fd R11: 000000000000001f R12: 0000000000000000
R13: ffffffff87c95250 R14: 0000000000000001 R15: ffffffff8aeacbf0
FS:  0000000000000000(0000) GS:ffff8881f6900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fa8163ccd38 CR3: 0000000130688000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 serial_port_in include/linux/serial_core.h:263 [inline]
 serial8250_console_write+0x1aa/0xb70 drivers/tty/serial/8250/8250_port.c:3356
 call_console_drivers kernel/printk/printk.c:1929 [inline]
 console_unlock+0x7a9/0xb70 kernel/printk/printk.c:2711
 vprintk_emit+0x198/0x4f0 kernel/printk/printk.c:2245
 dev_vprintk_emit+0x36e/0x3b2 drivers/base/core.c:4604
 dev_printk_emit+0xba/0xf1 drivers/base/core.c:4615
 __dev_printk+0xcf/0xf5 drivers/base/core.c:4627
 _dev_warn+0xd7/0x109 drivers/base/core.c:4671
 hub_port_init.cold+0x54/0x376 drivers/usb/core/hub.c:4991
 hub_port_connect drivers/usb/core/hub.c:5292 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5507 [inline]
 port_event drivers/usb/core/hub.c:5665 [inline]
 hub_event+0x238a/0x44d0 drivers/usb/core/hub.c:5747
 process_one_work+0x9ac/0x1650 kernel/workqueue.c:2307
 worker_thread+0x657/0x1110 kernel/workqueue.c:2454
 kthread+0x2ef/0x3a0 kernel/kthread.c:377
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
 </TASK>
----------------
Code disassembly (best guess), 1 bytes skipped:
   0:	8b fa                	mov    %edx,%edi
   2:	fe 48 8d             	decb   -0x73(%rax)
   5:	7d 40                	jge    0x47
   7:	44 89 e1             	mov    %r12d,%ecx
   a:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
  11:	fc ff df
  14:	48 89 fa             	mov    %rdi,%rdx
  17:	d3 e3                	shl    %cl,%ebx
  19:	48 c1 ea 03          	shr    $0x3,%rdx
  1d:	80 3c 02 00          	cmpb   $0x0,(%rdx,%rax,1)
  21:	75 15                	jne    0x38
  23:	03 5d 40             	add    0x40(%rbp),%ebx
  26:	89 da                	mov    %ebx,%edx
  28:	ec                   	in     (%dx),%al
* 29:	5b                   	pop    %rbx <-- trapping instruction
  2a:	0f b6 c0             	movzbl %al,%eax
  2d:	5d                   	pop    %rbp
  2e:	41 5c                	pop    %r12
  30:	c3                   	retq
  31:	e8 21 c3 29 ff       	callq  0xff29c357
  36:	eb a7                	jmp    0xffffffdf
  38:	e8 4a c3 29 ff       	callq  0xff29c387
  3d:	eb e4                	jmp    0x23

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2022/02/23 13:28 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing a5d847b0afd3 6e821dbf .config console log report info ci2-upstream-usb INFO: task hung in usb_remote_wakeup
* Struck through repros no longer work on HEAD.