=============================
[ 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