============================= [ BUG: Invalid wait context ] syzkaller #0 Tainted: G L ----------------------------- kworker/3:4/5839 is trying to lock: ffff88803b2fd330 (&gpc->lock){....}-{3:3}, at: kvm_xen_set_evtchn_fast+0x253/0xe80 arch/x86/kvm/xen.c:1819 other info that might help us debug this: context-{2:2} 4 locks held by kworker/3:4/5839: #0: ffff8880221bb140 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: process_one_work+0x12d6/0x1980 kernel/workqueue.c:3289 #1: ffffc90003a57d08 ((work_completion)(&hub->events)){+.+.}-{0:0}, at: process_one_work+0x973/0x1980 kernel/workqueue.c:3290 #2: ffff88802cbf91d8 (&dev->mutex){....}-{4:4}, at: device_lock include/linux/device.h:1040 [inline] #2: ffff88802cbf91d8 (&dev->mutex){....}-{4:4}, at: hub_event+0x1bd/0x4af0 drivers/usb/core/hub.c:5899 #3: ffff88803b2fd890 (&kvm->srcu){.?.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:187 [inline] #3: ffff88803b2fd890 (&kvm->srcu){.?.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:294 [inline] #3: ffff88803b2fd890 (&kvm->srcu){.?.+}-{0:0}, at: kvm_xen_set_evtchn_fast+0x245/0xe80 arch/x86/kvm/xen.c:1817 stack backtrace: CPU: 3 UID: 0 PID: 5839 Comm: kworker/3:4 Tainted: G L syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Workqueue: usb_hub_wq hub_event Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 print_lock_invalid_wait_context kernel/locking/lockdep.c:4830 [inline] check_wait_context kernel/locking/lockdep.c:4902 [inline] __lock_acquire+0xfa4/0x2630 kernel/locking/lockdep.c:5187 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1b1/0x370 kernel/locking/lockdep.c:5825 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:174 [inline] _raw_read_lock_irqsave+0x46/0x90 kernel/locking/spinlock.c:240 kvm_xen_set_evtchn_fast+0x253/0xe80 arch/x86/kvm/xen.c:1819 xen_timer_callback+0x1db/0x2a0 arch/x86/kvm/xen.c:140 __run_hrtimer kernel/time/hrtimer.c:1930 [inline] __hrtimer_run_queues+0x142/0xa00 kernel/time/hrtimer.c:1994 hrtimer_interrupt+0x3e5/0x940 kernel/time/hrtimer.c:2113 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] __sysvec_apic_timer_interrupt+0x10b/0x460 arch/x86/kernel/apic/apic.c:1067 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1061 [inline] sysvec_apic_timer_interrupt+0x9e/0xc0 arch/x86/kernel/apic/apic.c:1061 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697 RIP: 0010:console_trylock_spinning kernel/printk/printk.c:2039 [inline] RIP: 0010:vprintk_emit+0x553/0x6b0 kernel/printk/printk.c:2478 Code: 00 4d 85 ed 0f 85 1b 01 00 00 e8 e8 61 21 00 9c 5d 81 e5 00 02 00 00 31 ff 48 89 ee e8 b6 5c 21 00 48 85 ed 0f 85 27 01 00 00 c8 61 21 00 45 31 c9 41 b8 01 00 00 00 31 c9 48 8d 05 00 00 00 RSP: 0018:ffffc90003a572b8 EFLAGS: 00000293 RAX: 0000000000000000 RBX: 0000000000000056 RCX: ffffffff81e74f0a RDX: ffff888029c82540 RSI: ffffffff81e74f14 RDI: ffff888029c82540 RBP: 0000000000000000 R08: 0000000000000007 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 1ffff9200074ae59 R13: 0000000000000200 R14: ffff888035c4a540 R15: ffffc90003a57478 dev_vprintk_emit+0x394/0x3e0 drivers/base/core.c:4930 dev_printk_emit+0xd2/0x10d drivers/base/core.c:4941 __dev_printk+0xcb/0x100 drivers/base/core.c:4953 _dev_notice+0xef/0x130 drivers/base/core.c:4998 usb_parse_endpoint drivers/usb/core/config.c:452 [inline] usb_parse_interface drivers/usb/core/config.c:628 [inline] usb_parse_configuration drivers/usb/core/config.c:841 [inline] usb_get_configuration.cold+0xc61/0x17fd drivers/usb/core/config.c:994 usb_enumerate_device drivers/usb/core/hub.c:2527 [inline] usb_new_device+0x580/0x7d0 drivers/usb/core/hub.c:2665 hub_port_connect drivers/usb/core/hub.c:5567 [inline] hub_port_connect_change drivers/usb/core/hub.c:5707 [inline] port_event drivers/usb/core/hub.c:5871 [inline] hub_event+0x314d/0x4af0 drivers/usb/core/hub.c:5953 process_one_work+0xa0e/0x1980 kernel/workqueue.c:3314 process_scheduled_works kernel/workqueue.c:3397 [inline] worker_thread+0x5ef/0xe50 kernel/workqueue.c:3478 kthread+0x370/0x450 kernel/kthread.c:436 ret_from_fork+0x72b/0xd50 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 ---------------- Code disassembly (best guess): 0: 00 4d 85 add %cl,-0x7b(%rbp) 3: ed in (%dx),%eax 4: 0f 85 1b 01 00 00 jne 0x125 a: e8 e8 61 21 00 call 0x2161f7 f: 9c pushf 10: 5d pop %rbp 11: 81 e5 00 02 00 00 and $0x200,%ebp 17: 31 ff xor %edi,%edi 19: 48 89 ee mov %rbp,%rsi 1c: e8 b6 5c 21 00 call 0x215cd7 21: 48 85 ed test %rbp,%rbp 24: 0f 85 27 01 00 00 jne 0x151 * 2a: e8 c8 61 21 00 call 0x2161f7 <-- trapping instruction 2f: 45 31 c9 xor %r9d,%r9d 32: 41 b8 01 00 00 00 mov $0x1,%r8d 38: 31 c9 xor %ecx,%ecx 3a: 48 rex.W 3b: 8d .byte 0x8d 3c: 05 .byte 0x5 3d: 00 00 add %al,(%rax)