INFO: rcu detected stall in dummy_timer

24 views
Skip to first unread message

syzbot

unread,
Aug 9, 2019, 9:18:08 AM8/9/19
to andre...@google.com, ba...@kernel.org, chunfe...@mediatek.com, gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, st...@rowland.harvard.edu, syzkall...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: e96407b4 usb-fuzzer: main usb gadget fuzzer driver
git tree: https://github.com/google/kasan.git usb-fuzzer
console output: https://syzkaller.appspot.com/x/log.txt?x=102b8c4a600000
kernel config: https://syzkaller.appspot.com/x/.config?x=cfa2c18fb6a8068e
dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12edd636600000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+b24d73...@syzkaller.appspotmail.com

imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
rcu: INFO: rcu_sched self-detected stall on CPU
rcu: 0-...!: (1 GPs behind) idle=36e/1/0x4000000000000004
softirq=16230/16230 fqs=0
(t=10500 jiffies g=22005 q=99)
rcu: rcu_sched kthread starved for 10500 jiffies! g22005 f0x0
RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=1
rcu: RCU grace-period kthread stack dump:
rcu_sched R running task 29424 10 2 0x80004000
Call Trace:
schedule+0x9a/0x250 kernel/sched/core.c:3944
schedule_timeout+0x440/0xb20 kernel/time/timer.c:1807
rcu_gp_fqs_loop kernel/rcu/tree.c:1611 [inline]
rcu_gp_kthread+0xb01/0x27f0 kernel/rcu/tree.c:1768
kthread+0x318/0x420 kernel/kthread.c:255
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
NMI backtrace for cpu 0
CPU: 0 PID: 2795 Comm: kworker/0:4 Not tainted 5.3.0-rc2+ #25
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Workqueue: usb_hub_wq hub_event
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0xca/0x13e lib/dump_stack.c:113
nmi_cpu_backtrace.cold+0x55/0x96 lib/nmi_backtrace.c:101
nmi_trigger_cpumask_backtrace+0x1b0/0x1c7 lib/nmi_backtrace.c:62
trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline]
rcu_dump_cpu_stacks+0x169/0x1b3 kernel/rcu/tree_stall.h:254
print_cpu_stall kernel/rcu/tree_stall.h:455 [inline]
check_cpu_stall kernel/rcu/tree_stall.h:529 [inline]
rcu_pending kernel/rcu/tree.c:2736 [inline]
rcu_sched_clock_irq.cold+0x4a4/0x8d8 kernel/rcu/tree.c:2183
update_process_times+0x2a/0x70 kernel/time/timer.c:1639
tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:167
tick_sched_timer+0x42/0x130 kernel/time/tick-sched.c:1296
__run_hrtimer kernel/time/hrtimer.c:1389 [inline]
__hrtimer_run_queues+0x303/0xc50 kernel/time/hrtimer.c:1451
hrtimer_interrupt+0x2e8/0x730 kernel/time/hrtimer.c:1509
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1068 [inline]
smp_apic_timer_interrupt+0xf5/0x500 arch/x86/kernel/apic/apic.c:1093
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:828
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:85 [inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160
[inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0x40/0x50
kernel/locking/spinlock.c:191
Code: e8 a5 d6 b7 fb 48 89 ef e8 4d b7 b8 fb f6 c7 02 75 11 53 9d e8 21 6b
d5 fb 65 ff 0d 82 3f 94 7a 5b 5d c3 e8 32 69 d5 fb 53 9d <eb> ed 0f 1f 40
00 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 fd 65 ff
RSP: 0018:ffff8881db209b08 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 0000000000000206 RCX: 0000000000000002
RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8881c7023844
RBP: ffff8881da16c200 R08: ffff8881c7023000 R09: fffffbfff11acda2
R10: fffffbfff11acda1 R11: ffffffff88d66d0f R12: 0000000000000080
R13: 0000000000000000 R14: dffffc0000000000 R15: ffff8881c9263d00
spin_unlock_irqrestore include/linux/spinlock.h:393 [inline]
dummy_timer+0x131b/0x2fa2 drivers/usb/gadget/udc/dummy_hcd.c:1979
call_timer_fn+0x179/0x650 kernel/time/timer.c:1322
expire_timers kernel/time/timer.c:1366 [inline]
__run_timers kernel/time/timer.c:1685 [inline]
__run_timers kernel/time/timer.c:1653 [inline]
run_timer_softirq+0x5cc/0x14b0 kernel/time/timer.c:1698
__do_softirq+0x221/0x912 kernel/softirq.c:292
invoke_softirq kernel/softirq.c:373 [inline]
irq_exit+0x178/0x1a0 kernel/softirq.c:413
exiting_irq arch/x86/include/asm/apic.h:537 [inline]
smp_apic_timer_interrupt+0x12f/0x500 arch/x86/kernel/apic/apic.c:1095
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:828
</IRQ>
RIP: 0010:__kernfs_new_node+0x164/0x640 fs/kernfs/dir.c:639
Code: 00 00 00 4c 89 e6 4c 89 ff 89 44 24 08 e8 a4 fd df 03 31 ff 89 c5 89
c6 e8 a9 30 b6 ff 85 ed 0f 88 5a 03 00 00 e8 2c 2f b6 ff <49> 8d 7d 60 48
b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 0f
RSP: 0018:ffff8881c169ede8 EFLAGS: 00000293 ORIG_RAX: ffffffffffffff13
RAX: ffff8881c7023000 RBX: 1ffff110382d3dc0 RCX: ffffffff8187bf97
RDX: 0000000000000000 RSI: ffffffff8187bfa4 RDI: 0000000000000005
RBP: 00000000000151f1 R08: ffff8881c7023000 R09: ffffed10380019fe
R10: ffffed10380019fd R11: ffff8881c000cfef R12: ffff8881d2066460
R13: ffff8881da0d7000 R14: ffffffff85f26980 R15: ffff8881da0d7010
kernfs_new_node+0x93/0x120 fs/kernfs/dir.c:697
kernfs_create_link+0xcb/0x230 fs/kernfs/symlink.c:39
sysfs_do_create_link_sd.isra.0+0x8b/0x130 fs/sysfs/symlink.c:44
sysfs_do_create_link fs/sysfs/symlink.c:80 [inline]
sysfs_create_link+0x61/0xc0 fs/sysfs/symlink.c:92
device_add_class_symlinks drivers/base/core.c:1859 [inline]
device_add+0x6ec/0x16f0 drivers/base/core.c:2080
device_create_groups_vargs+0x203/0x280 drivers/base/core.c:2758
device_create_vargs drivers/base/core.c:2798 [inline]
device_create+0xdf/0x120 drivers/base/core.c:2834
usb_register_dev drivers/usb/core/file.c:202 [inline]
usb_register_dev+0x279/0x6a0 drivers/usb/core/file.c:156
imon_init_display drivers/media/rc/imon.c:2343 [inline]
imon_probe+0x244d/0x2af0 drivers/media/rc/imon.c:2426
usb_probe_interface+0x305/0x7a0 drivers/usb/core/driver.c:361
really_probe+0x281/0x650 drivers/base/dd.c:548
driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
__device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
__device_attach+0x217/0x360 drivers/base/dd.c:882
bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
device_add+0xae6/0x16f0 drivers/base/core.c:2114
usb_set_configuration+0xdf6/0x1670 drivers/usb/core/message.c:2023
generic_probe+0x9d/0xd5 drivers/usb/core/generic.c:210
usb_probe_device+0x99/0x100 drivers/usb/core/driver.c:266
really_probe+0x281/0x650 drivers/base/dd.c:548
driver_probe_device+0x101/0x1b0 drivers/base/dd.c:709
__device_attach_driver+0x1c2/0x220 drivers/base/dd.c:816
bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
__device_attach+0x217/0x360 drivers/base/dd.c:882
bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
device_add+0xae6/0x16f0 drivers/base/core.c:2114
usb_new_device.cold+0x6a4/0xe79 drivers/usb/core/hub.c:2536
hub_port_connect drivers/usb/core/hub.c:5098 [inline]
hub_port_connect_change drivers/usb/core/hub.c:5213 [inline]
port_event drivers/usb/core/hub.c:5359 [inline]
hub_event+0x1b5c/0x3640 drivers/usb/core/hub.c:5441
process_one_work+0x92b/0x1530 kernel/workqueue.c:2269
worker_thread+0x96/0xe20 kernel/workqueue.c:2415
kthread+0x318/0x420 kernel/kthread.c:255
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches

syzbot

unread,
Sep 13, 2019, 3:56:12 PM9/13/19
to andre...@google.com, ba...@kernel.org, chunfe...@mediatek.com, gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, st...@rowland.harvard.edu, syzkall...@googlegroups.com
syzbot has found a reproducer for the following crash on:

HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver
console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000
kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5
dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+b24d73...@syzkaller.appspotmail.com

yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
rcu: INFO: rcu_sched self-detected stall on CPU
rcu: 1-....: (10495 ticks this GP) idle=b6e/1/0x4000000000000002
softirq=2369/2369 fqs=5236
(t=10500 jiffies g=1973 q=3366)
NMI backtrace for cpu 1
CPU: 1 PID: 16 Comm: ksoftirqd/1 Not tainted 5.3.0-rc7+ #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0xca/0x13e lib/dump_stack.c:113
nmi_cpu_backtrace.cold+0x55/0x96 lib/nmi_backtrace.c:101
nmi_trigger_cpumask_backtrace+0x1b0/0x1c7 lib/nmi_backtrace.c:62
trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline]
rcu_dump_cpu_stacks+0x169/0x1b3 kernel/rcu/tree_stall.h:254
print_cpu_stall kernel/rcu/tree_stall.h:455 [inline]
check_cpu_stall kernel/rcu/tree_stall.h:529 [inline]
rcu_pending kernel/rcu/tree.c:2736 [inline]
rcu_sched_clock_irq.cold+0x4a4/0x8d8 kernel/rcu/tree.c:2183
update_process_times+0x2a/0x70 kernel/time/timer.c:1639
tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:167
tick_sched_timer+0x42/0x130 kernel/time/tick-sched.c:1296
__run_hrtimer kernel/time/hrtimer.c:1389 [inline]
__hrtimer_run_queues+0x303/0xc50 kernel/time/hrtimer.c:1451
hrtimer_interrupt+0x2e8/0x730 kernel/time/hrtimer.c:1509
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1106 [inline]
smp_apic_timer_interrupt+0xf5/0x500 arch/x86/kernel/apic/apic.c:1131
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830
</IRQ>
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:85 [inline]
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160
[inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0x40/0x50
kernel/locking/spinlock.c:191
Code: e8 95 a1 b7 fb 48 89 ef e8 3d 82 b8 fb f6 c7 02 75 11 53 9d e8 f1 34
d5 fb 65 ff 0d 82 1d 94 7a 5b 5d c3 e8 02 33 d5 fb 53 9d <eb> ed 0f 1f 40
00 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 fd 65 ff
RSP: 0018:ffff8881da2479c8 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13
RAX: 0000000000000007 RBX: 0000000000000206 RCX: 0000000000000002
RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8881da232044
RBP: ffff8881d564c200 R08: ffff8881da231800 R09: fffffbfff11ad7a1
R10: fffffbfff11ad7a0 R11: ffffffff88d6bd07 R12: 0000000000000080
R13: 0000000000000000 R14: dffffc0000000000 R15: ffff8881d1c76f00
spin_unlock_irqrestore include/linux/spinlock.h:393 [inline]
dummy_timer+0x131b/0x2fa2 drivers/usb/gadget/udc/dummy_hcd.c:1979
call_timer_fn+0x179/0x650 kernel/time/timer.c:1322
expire_timers kernel/time/timer.c:1366 [inline]
__run_timers kernel/time/timer.c:1685 [inline]
__run_timers kernel/time/timer.c:1653 [inline]
run_timer_softirq+0x5cc/0x14b0 kernel/time/timer.c:1698
__do_softirq+0x221/0x912 kernel/softirq.c:292
run_ksoftirqd kernel/softirq.c:603 [inline]
run_ksoftirqd+0x1f/0x40 kernel/softirq.c:595
smpboot_thread_fn+0x3e8/0x850 kernel/smpboot.c:165
kthread+0x318/0x420 kernel/kthread.c:255
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
yurex 2-1:0.101: yurex_interrupt - unknown status received: -71
yurex 3-1:0.101: yurex_inte

Alan Stern

unread,
Sep 13, 2019, 4:36:00 PM9/13/19
to syzbot, andre...@google.com, ba...@kernel.org, chunfe...@mediatek.com, gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, syzkall...@googlegroups.com
On Fri, 13 Sep 2019, syzbot wrote:

> syzbot has found a reproducer for the following crash on:
>
> HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver
> git tree: https://github.com/google/kasan.git usb-fuzzer
> console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000
> kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5
> dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550
> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+b24d73...@syzkaller.appspotmail.com
>
> yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
> yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
> yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
> rcu: INFO: rcu_sched self-detected stall on CPU

Andrey:

This problem may be a result of overloading dummy_timer. The kernel
config you are using has CONFIG_HZ=100, but dummy-hcd needs
CONFIG_HZ=1000 (see the comment on line 1789). That is, lower values
of HZ will occasionally lead to trouble, and this may be an example.

Can you change the config value for HZ and see if the bug still
reproduces?

Alan Stern

Hillf Danton

unread,
Sep 15, 2019, 4:11:00 AM9/15/19
to syzbot, andre...@google.com, ba...@kernel.org, chunfe...@mediatek.com, gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, st...@rowland.harvard.edu, syzkall...@googlegroups.com

On Fri, 13 Sep 2019 12:56:10 -0700
>
> syzbot has found a reproducer for the following crash on:
>
> HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver
> git tree: https://github.com/google/kasan.git usb-fuzzer
> dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550
> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+b24d73...@syzkaller.appspotmail.com
>
> yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
> yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
> yurex 6-1:0.101: yurex_interrupt - unknown status received: -71
> rcu: INFO: rcu_sched self-detected stall on CPU
> rcu: 1-....: (10495 ticks this GP) idle=b6e/1/0x4000000000000002
> softirq=2369/2369 fqs=5236
> (t=10500 jiffies g=1973 q=3366)
> NMI backtrace for cpu 1
> CPU: 1 PID: 16 Comm: ksoftirqd/1 Not tainted 5.3.0-rc7+ #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> <IRQ>
> __dump_stack lib/dump_stack.c:77 [inline]
> dump_stack+0xca/0x13e lib/dump_stack.c:113
> nmi_cpu_backtrace.cold+0x55/0x96 lib/nmi_backtrace.c:101
> nmi_trigger_cpumask_backtrace+0x1b0/0x1c7 lib/nmi_backtrace.c:62
> trigger_single_cpu_backtrace include/linux/nmi.h:164 [inline]
> rcu_dump_cpu_stacks+0x169/0x1b3 kernel/rcu/tree_stall.h:254
> print_cpu_stall kernel/rcu/tree_stall.h:455 [inline]
> check_cpu_stall kernel/rcu/tree_stall.h:529 [inline]
> rcu_pending kernel/rcu/tree.c:2736 [inline]
> rcu_sched_clock_irq.cold+0x4a4/0x8d8 kernel/rcu/tree.c:2183
> update_process_times+0x2a/0x70 kernel/time/timer.c:1639
> tick_sched_handle+0x9b/0x180 kernel/time/tick-sched.c:167
> tick_sched_timer+0x42/0x130 kernel/time/tick-sched.c:1296
> __run_hrtimer kernel/time/hrtimer.c:1389 [inline]
> __hrtimer_run_queues+0x303/0xc50 kernel/time/hrtimer.c:1451
> hrtimer_interrupt+0x2e8/0x730 kernel/time/hrtimer.c:1509
> local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1106 [inline]
> smp_apic_timer_interrupt+0xf5/0x500 arch/x86/kernel/apic/apic.c:1131
> apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830
> </IRQ>
> RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:85 [inline]
> RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:160
> [inline]
> RIP: 0010:_raw_spin_unlock_irqrestore+0x40/0x50
> kernel/locking/spinlock.c:191
> Code: e8 95 a1 b7 fb 48 89 ef e8 3d 82 b8 fb f6 c7 02 75 11 53 9d e8 f1 34
> d5 fb 65 ff 0d 82 1d 94 7a 5b 5d c3 e8 02 33 d5 fb 53 9d <eb> ed 0f 1f 40
> 00 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 fd 65 ff
> RSP: 0018:ffff8881da2479c8 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13
> RAX: 0000000000000007 RBX: 0000000000000206 RCX: 0000000000000002
> RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff8881da232044
> RBP: ffff8881d564c200 R08: ffff8881da231800 R09: fffffbfff11ad7a1
> R10: fffffbfff11ad7a0 R11: ffffffff88d6bd07 R12: 0000000000000080
> R13: 0000000000000000 R14: dffffc0000000000 R15: ffff8881d1c76f00
> spin_unlock_irqrestore include/linux/spinlock.h:393 [inline]
> dummy_timer+0x131b/0x2fa2 drivers/usb/gadget/udc/dummy_hcd.c:1979
> call_timer_fn+0x179/0x650 kernel/time/timer.c:1322
> expire_timers kernel/time/timer.c:1366 [inline]
> __run_timers kernel/time/timer.c:1685 [inline]
> __run_timers kernel/time/timer.c:1653 [inline]
> run_timer_softirq+0x5cc/0x14b0 kernel/time/timer.c:1698
> __do_softirq+0x221/0x912 kernel/softirq.c:292
> run_ksoftirqd kernel/softirq.c:603 [inline]
> run_ksoftirqd+0x1f/0x40 kernel/softirq.c:595
> smpboot_thread_fn+0x3e8/0x850 kernel/smpboot.c:165
> kthread+0x318/0x420 kernel/kthread.c:255
> ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352

Fix 0173a68bfb0a

--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -1759,7 +1759,7 @@ static void dummy_timer(struct timer_lis
{
struct dummy_hcd *dum_hcd = from_timer(dum_hcd, t, timer);
struct dummy *dum = dum_hcd->dum;
- struct urbp *urbp, *tmp;
+ struct urbp *urbp, *tmp, *hedge;
unsigned long flags;
int limit, total;
int i;
@@ -1797,6 +1797,7 @@ static void dummy_timer(struct timer_lis
spin_unlock_irqrestore(&dum->lock, flags);
return;
}
+ hedge = dum_hcd->next_frame_urbp;
dum_hcd->next_frame_urbp = NULL;

for (i = 0; i < DUMMY_ENDPOINTS; i++) {
@@ -1814,7 +1815,7 @@ restart:
int status = -EINPROGRESS;

/* stop when we reach URBs queued after the timer interrupt */
- if (urbp == dum_hcd->next_frame_urbp)
+ if (urbp == hedge)
break;

urb = urbp->urb;

Andrey Konovalov

unread,
Sep 16, 2019, 11:29:51 AM9/16/19
to Alan Stern, syzbot, Felipe Balbi, chunfe...@mediatek.com, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov
Hi Alan,

I've tried running the reproducer with CONFIG_HZ=1000 and still got
the same stall message. It's accompanied by countless "yurex
6-1:0.101: yurex_interrupt - unknown status received: -71" messages,
so I believe this is an issue in the yurex driver.

Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really
explain the reason.

Thanks!

Alan Stern

unread,
Sep 16, 2019, 12:32:53 PM9/16/19
to Andrey Konovalov, syzbot, Felipe Balbi, chunfe...@mediatek.com, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov
Maybe. Depends on exactly what the reproducer is doing, something
which is not at all easy to figure out from the scripts or programs.

I got the impression that the reproducer connects an emulated yurex
device and then disconnects it -- but maybe that's not right at all.
Maybe the key point is that the reproducer sends a descriptor listing
an endpoint address that doesn't actually exist; that would have a
similar effect. Can you tell? (Trying to understand exactly what a
syzkaller test program does is not for the faint of heart.)

As far as I can remember, the USB spec doesn't say what a device should
do when the host sends a packet to a non-existent endpoint. Which
means that some devices will do nothing at all, leading to the -71
(-EPROTO) errors you see in the log. Indeed, there's only one place in
dummy_hcd.c where -EPROTO occurs -- for the case where an URB is sent
to an endpoint not supported by the gadget.

This leads to the question: How should the yurex driver (or any USB
class driver, in fact) respond to a -EPROTO or similar error? The
thing is, this sort of error typically arises in two circumstances:

The device was just unplugged, so of course it can't send
any packets back to the host;

Noise on the bus caused a packet to be lost or corrupted.

In the first case, it doesn't much matter what the driver does because
the disconnection will be noticed and acted on within a few hundred
milliseconds (although I suppose a driver could generate a lot of
kernel-log spam during that time).

In the second case, retrying the lost/corrupted packet is the right
response.

But retrying is _not_ the right response in cases where the device is
never going to respond because the endpoint address is invalid. This
can happen only in situations where the device provides incorrect
information (bad descriptors or something of that sort). The only
suitable approach I can think of is to limit the number of retries.

Retry-limiting is not the sort of thing we want to add to each
individual USB class driver. Maybe it can be handled in the USB core;
I'll try to write some code for it. Under normal circumstances the
issue just doesn't arise, because normal devices aren't malicious.

> Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really
> explain the reason.

Oh, that's simple enough. USB events tend to happen at millisecond
intervals. The data on the USB bus is organized into frames (and
microframes for high speed and SuperSpeed); a frame lasts one
millisecond (and a microframe lasts 1/8 ms). Many host controllers
report important events when a frame boundary occurs (that's how
dummy-hcd works).

So for proper timing of the emulation, dummy-hcd requires timer
interrupts with millisecond resolution. I suppose the driver could be
changed to use a high-res timer instead of a normal kernel timer, but
for now that doesn't seem particularly important.

Alan Stern

Greg Kroah-Hartman

unread,
Sep 16, 2019, 2:59:36 PM9/16/19
to Alan Stern, Andrey Konovalov, syzbot, Felipe Balbi, chunfe...@mediatek.com, LKML, USB list, syzkaller-bugs, Dmitry Vyukov
I think this issue came up years ago when people realized they could
"abuse" this through usbfs, but maybe I am mistaken.

The "do we retry or not" is an old discussion, and one I think we just
said, "if it errors out, we will not retry as something is wrong with
the device". Corrupted packets don't seem to be something that is even
noticable in the "real world". When lots of noise happens on a system
that might cause this, usually the hub just disconnects the device and
resets it.

thanks,

greg k-h

Alan Stern

unread,
Sep 16, 2019, 3:48:25 PM9/16/19
to Greg Kroah-Hartman, Andrey Konovalov, syzbot, Felipe Balbi, chunfe...@mediatek.com, LKML, USB list, syzkaller-bugs, Dmitry Vyukov
Really? I bet there are plenty of drivers whose interrupt-URB (or
whatever) completion handlers just log an error message and blindly
resubmit when they get an unexpected kind of error.

> Corrupted packets don't seem to be something that is even
> noticable in the "real world". When lots of noise happens on a system
> that might cause this, usually the hub just disconnects the device and
> resets it.

I recall hearing from someone (many years ago -- the technology has
certainly improved since then) about a device that would start getting
errors whenever a noisy fluorescent light near the computer was
switched on. :-) But yes, this sort of thing is very uncommon.

So do you recommend editing drivers to prevent them from resubmitting
URBs whenever they get an unrecognized error, such as -EPROTO, -EILSEQ,
or -ETIME? Then the driver would most likely stop working when one
of these errors happens.

Alternatively, the USB core could keep track of these three kinds of
bus errors for all endpoints and fail submissions when the error count
gets too high. That would end up having the same effect -- drivers
would stop working -- but it might be a little more robust against
noise and it wouldn't require editing lots of drivers.

Alan Stern

Alan Stern

unread,
Sep 16, 2019, 3:53:08 PM9/16/19
to syzbot, andre...@google.com, ba...@kernel.org, chunfe...@mediatek.com, gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, syzkall...@googlegroups.com
On Fri, 13 Sep 2019, syzbot wrote:

> syzbot has found a reproducer for the following crash on:
>
> HEAD commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver
> git tree: https://github.com/google/kasan.git usb-fuzzer
> console output: https://syzkaller.appspot.com/x/log.txt?x=1146550d600000
> kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5
> dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550
> compiler: gcc (GCC) 9.0.0 20181231 (experimental)
> syz repro: https://syzkaller.appspot.com/x/repro.syz?x=11203fa5600000
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=162cd335600000
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+b24d73...@syzkaller.appspotmail.com
>
> yurex 3-1:0.101: yurex_interrupt - unknown status received: -71
> yurex 5-1:0.101: yurex_interrupt - unknown status received: -71
> yurex 6-1:0.101: yurex_interrupt - unknown status received: -71

Let's see if preventing blind resubmissions fixes the problem.

Alan Stern

#syz test: https://github.com/google/kasan.git f0df5c1b

drivers/usb/misc/yurex.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Index: usb-devel/drivers/usb/misc/yurex.c
===================================================================
--- usb-devel.orig/drivers/usb/misc/yurex.c
+++ usb-devel/drivers/usb/misc/yurex.c
@@ -132,6 +132,7 @@ static void yurex_interrupt(struct urb *
switch (status) {
case 0: /*success*/
break;
+ /* The device is terminated or messed up, give up */
case -EOVERFLOW:
dev_err(&dev->interface->dev,
"%s - overflow with length %d, actual length is %d\n",
@@ -140,12 +141,12 @@ static void yurex_interrupt(struct urb *
case -ENOENT:
case -ESHUTDOWN:
case -EILSEQ:
- /* The device is terminated, clean up */
+ case -EPROTO:
return;
default:
dev_err(&dev->interface->dev,
"%s - unknown status received: %d\n", __func__, status);
- goto exit;
+ return;
}

/* handle received message */
@@ -177,7 +178,6 @@ static void yurex_interrupt(struct urb *
break;
}

-exit:
retval = usb_submit_urb(dev->urb, GFP_ATOMIC);
if (retval) {
dev_err(&dev->interface->dev, "%s - usb_submit_urb failed: %d\n",

syzbot

unread,
Sep 16, 2019, 4:13:02 PM9/16/19
to andre...@google.com, ba...@kernel.org, chunfe...@mediatek.com, gre...@linuxfoundation.org, linux-...@vger.kernel.org, linu...@vger.kernel.org, st...@rowland.harvard.edu, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger
crash:

Reported-and-tested-by:
syzbot+b24d73...@syzkaller.appspotmail.com

Tested on:

commit: f0df5c1b usb-fuzzer: main usb gadget fuzzer driver
git tree: https://github.com/google/kasan.git
kernel config: https://syzkaller.appspot.com/x/.config?x=5c6633fa4ed00be5
dashboard link: https://syzkaller.appspot.com/bug?extid=b24d736f18a1541ad550
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
patch: https://syzkaller.appspot.com/x/patch.diff?x=1267f9c3600000

Note: testing is done by a robot and is best-effort only.

Alan Stern

unread,
Sep 17, 2019, 12:47:24 PM9/17/19
to Greg KH, Tomoki Sekiyama, andre...@google.com, chunfe...@mediatek.com, USB list, syzkall...@googlegroups.com
According to Greg KH, it has been generally agreed that when a USB
driver encounters an unknown error (or one it can't handle directly),
it should just give up instead of going into a potentially infinite
retry loop.

The three codes -EPROTO, -EILSEQ, and -ETIME fall into this category.
They can be caused by bus errors such as packet loss or corruption,
attempting to communicate with a disconnected device, or by malicious
firmware. Nowadays the extent of packet loss or corruption is
negligible, so it should be safe for a driver to give up whenever one
of these errors occurs.

Although the yurex driver handles -EILSEQ errors in this way, it
doesn't do the same for -EPROTO (as discovered by the syzbot fuzzer)
or other unrecognized errors. This patch adjusts the driver so that
it doesn't log an error message for -EPROTO or -ETIME, and it doesn't
retry after any errors.

Reported-and-tested-by: syzbot+b24d73...@syzkaller.appspotmail.com
Signed-off-by: Alan Stern <st...@rowland.harvard.edu>
CC: Tomoki Sekiyama <tomoki....@gmail.com>
CC: <sta...@vger.kernel.org>

---


[as1918]


drivers/usb/misc/yurex.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

Index: usb-devel/drivers/usb/misc/yurex.c
===================================================================
--- usb-devel.orig/drivers/usb/misc/yurex.c
+++ usb-devel/drivers/usb/misc/yurex.c
@@ -132,6 +132,7 @@ static void yurex_interrupt(struct urb *
switch (status) {
case 0: /*success*/
break;
+ /* The device is terminated or messed up, give up */
case -EOVERFLOW:
dev_err(&dev->interface->dev,
"%s - overflow with length %d, actual length is %d\n",
@@ -140,12 +141,13 @@ static void yurex_interrupt(struct urb *
case -ENOENT:
case -ESHUTDOWN:
case -EILSEQ:
- /* The device is terminated, clean up */
+ case -EPROTO:
+ case -ETIME:
return;
default:
dev_err(&dev->interface->dev,
"%s - unknown status received: %d\n", __func__, status);
- goto exit;
+ return;
}

/* handle received message */
@@ -177,7 +179,6 @@ static void yurex_interrupt(struct urb *

Andrey Konovalov

unread,
Sep 18, 2019, 7:23:02 AM9/18/19
to Alan Stern, syzbot, Felipe Balbi, chunfe...@mediatek.com, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov
So what are the practical differences between using CONFIG_HZ=100 and
1000 for dummy-hcd? Is is going to be slower or faster? Or can it get
overloaded with data and cause stalls? Or something else? We're
somewhat hesitant to change CONFIG_HZ as we don't know how it will
affect other parts of the kernel (at some point the USB fuzzer will
become a part of the main syzbot instance that doesn't only fuzz USB).

Alan Stern

unread,
Sep 18, 2019, 10:16:38 AM9/18/19
to Andrey Konovalov, syzbot, Felipe Balbi, chunfe...@mediatek.com, Greg Kroah-Hartman, LKML, USB list, syzkaller-bugs, Dmitry Vyukov
On Wed, 18 Sep 2019, Andrey Konovalov wrote:

> > > Why does dumy_hcd require CONFIG_HZ=1000? The comment doesn't really
> > > explain the reason.
> >
> > Oh, that's simple enough. USB events tend to happen at millisecond
> > intervals. The data on the USB bus is organized into frames (and
> > microframes for high speed and SuperSpeed); a frame lasts one
> > millisecond (and a microframe lasts 1/8 ms). Many host controllers
> > report important events when a frame boundary occurs (that's how
> > dummy-hcd works).
> >
> > So for proper timing of the emulation, dummy-hcd requires timer
> > interrupts with millisecond resolution. I suppose the driver could be
> > changed to use a high-res timer instead of a normal kernel timer, but
> > for now that doesn't seem particularly important.
>
> So what are the practical differences between using CONFIG_HZ=100 and
> 1000 for dummy-hcd? Is is going to be slower or faster?

The timing of the emulation will be more accurate with 1000. Of
course, for your purposes that doesn't matter. Also, the driver will
probably end up using a higher fraction of the total CPU time.

> Or can it get
> overloaded with data and cause stalls?

I really don't know the answer to that. It seems probable that 100 is
okay and is less likely to lead to overload and stalls than 1000.

> Or something else? We're somewhat hesitant to change CONFIG_HZ as
> we don't know how it will affect other parts of the kernel (at some
> point the USB fuzzer will become a part of the main syzbot instance
> that doesn't only fuzz USB).

Leaving it at 100 should be okay for now. Especially since we have
decided to fix this particular problem in an independent way.

In general, I don't know how dummy-hcd will behave when a driver gets
into a tight retry loop. In theory, it might end up using so much CPU
time that you get an rcu stall like the one we saw, but I don't
understand exactly what happened in this case. You'd think that with
no more than six (or however many threads syzbot used) callbacks per
jiffy, there would be plenty of time for normal threads to run.

Alan Stern

Reply all
Reply to author
Forward
0 new messages