============================= [ BUG: Invalid wait context ] syzkaller #0 Tainted: G L ----------------------------- syz.1.1287/10441 is trying to lock: ffff88803c1212d0 (&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} 1 lock held by syz.1.1287/10441: #0: ffff88803c121850 (&kvm->srcu){.?.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:187 [inline] #0: ffff88803c121850 (&kvm->srcu){.?.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:294 [inline] #0: ffff88803c121850 (&kvm->srcu){.?.+}-{0:0}, at: kvm_xen_set_evtchn_fast+0x245/0xe80 arch/x86/kvm/xen.c:1817 stack backtrace: CPU: 1 UID: 0 PID: 10441 Comm: syz.1.1287 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 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:clear_pages arch/x86/include/asm/page_64.h:103 [inline] RIP: 0010:alloc_thread_stack_node kernel/fork.c:350 [inline] RIP: 0010:dup_task_struct kernel/fork.c:926 [inline] RIP: 0010:copy_process+0x3f22/0x7fa0 kernel/fork.c:2088 Code: 0f b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 08 84 d2 0f 85 b9 33 00 00 41 8b 4d 2c 48 8b bd f0 fe ff ff 31 c0 48 c1 e1 0c aa 0f 1f 44 00 00 e9 1c c9 ff ff 4c 89 bd f0 fe ff ff 41 89 df RSP: 0018:ffffc90005a7fa58 EFLAGS: 00010206 RAX: 0000000000000000 RBX: 00000000ffffffff RCX: 0000000000000880 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffc900055bf780 RBP: ffffc90005a7fbe8 R08: 0000000000000005 R09: 0000000000000000 R10: fffff52000ab7000 R11: 0000000000000000 R12: 00000000003d0f00 R13: ffff888026724100 R14: ffff88802c0e8000 R15: ffffc90005a7fd40 kernel_clone+0x12e/0x9c0 kernel/fork.c:2723 __do_sys_clone3+0x214/0x290 kernel/fork.c:3027 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x10b/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f466159dbc9 Code: 90 b8 01 00 00 00 b9 01 00 00 00 eb ec 0f 1f 40 00 b8 ea ff ff ff 48 85 ff 74 28 48 85 d2 74 23 49 89 c8 b8 b3 01 00 00 0f 05 <48> 85 c0 7c 14 74 01 c3 31 ed 4c 89 c7 ff d2 48 89 c7 b8 3c 00 00 RSP: 002b:00007ffce202a038 EFLAGS: 00000206 ORIG_RAX: 00000000000001b3 RAX: ffffffffffffffda RBX: 00007f4661559160 RCX: 00007f466159dbc9 RDX: 00007f4661559160 RSI: 0000000000000058 RDI: 00007ffce202a090 RBP: 00007f46624046c0 R08: 00007f46624046c0 R09: 00007ffce202a177 R10: 0000000000000008 R11: 0000000000000206 R12: ffffffffffffffe8 R13: 000000000000000b R14: 00007ffce202a090 R15: 00007ffce202a178 ---------------- Code disassembly (best guess): 0: 0f b6 14 02 movzbl (%rdx,%rax,1),%edx 4: 48 89 f8 mov %rdi,%rax 7: 83 e0 07 and $0x7,%eax a: 83 c0 03 add $0x3,%eax d: 38 d0 cmp %dl,%al f: 7c 08 jl 0x19 11: 84 d2 test %dl,%dl 13: 0f 85 b9 33 00 00 jne 0x33d2 19: 41 8b 4d 2c mov 0x2c(%r13),%ecx 1d: 48 8b bd f0 fe ff ff mov -0x110(%rbp),%rdi 24: 31 c0 xor %eax,%eax 26: 48 c1 e1 0c shl $0xc,%rcx * 2a: f3 aa rep stos %al,%es:(%rdi) <-- trapping instruction 2c: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 31: e9 1c c9 ff ff jmp 0xffffc952 36: 4c 89 bd f0 fe ff ff mov %r15,-0x110(%rbp) 3d: 41 89 df mov %ebx,%r15d