============================= [ BUG: Invalid wait context ] syzkaller #0 Tainted: G L ----------------------------- dhcpcd/5643 is trying to lock: ffff8880429a92e0 (&gpc->lock){....}-{3:3}, at: kvm_xen_set_evtchn_fast+0x253/0xe80 arch/x86/kvm/xen.c:1820 other info that might help us debug this: context-{2:2} 5 locks held by dhcpcd/5643: #0: ffffffff8e718050 (dup_mmap_sem){++++}-{0:0}, at: dup_mm kernel/fork.c:1528 [inline] #0: ffffffff8e718050 (dup_mmap_sem){++++}-{0:0}, at: copy_mm kernel/fork.c:1581 [inline] #0: ffffffff8e718050 (dup_mmap_sem){++++}-{0:0}, at: copy_process+0x7446/0x7890 kernel/fork.c:2221 #1: ffff8881036aa800 (&mm->mmap_lock){++++}-{4:4}, at: mmap_write_lock_killable include/linux/mmap_lock.h:353 [inline] #1: ffff8881036aa800 (&mm->mmap_lock){++++}-{4:4}, at: dup_mmap+0xf7/0x1e20 mm/mmap.c:1726 #2: ffff888044032800 (&mm->mmap_lock/1){+.+.}-{4:4}, at: mmap_write_lock_nested include/linux/mmap_lock.h:343 [inline] #2: ffff888044032800 (&mm->mmap_lock/1){+.+.}-{4:4}, at: dup_mmap+0x192/0x1e20 mm/mmap.c:1733 #3: ffffffff8e5e32e0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #3: ffffffff8e5e32e0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:867 [inline] #3: ffffffff8e5e32e0 (rcu_read_lock){....}-{1:3}, at: class_rcu_constructor include/linux/rcupdate.h:1195 [inline] #3: ffffffff8e5e32e0 (rcu_read_lock){....}-{1:3}, at: unwind_next_frame+0xbd/0x1ea0 arch/x86/kernel/unwind_orc.c:495 #4: ffff8880429a9838 (&kvm->srcu){.?.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:185 [inline] #4: ffff8880429a9838 (&kvm->srcu){.?.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:277 [inline] #4: ffff8880429a9838 (&kvm->srcu){.?.+}-{0:0}, at: kvm_xen_set_evtchn_fast+0x245/0xe80 arch/x86/kvm/xen.c:1818 stack backtrace: CPU: 2 UID: 0 PID: 5643 Comm: dhcpcd 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+0x17c/0x330 kernel/locking/lockdep.c:5825 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline] _raw_read_lock_irqsave+0x46/0x90 kernel/locking/spinlock.c:236 kvm_xen_set_evtchn_fast+0x253/0xe80 arch/x86/kvm/xen.c:1820 xen_timer_callback+0x1db/0x2a0 arch/x86/kvm/xen.c:140 __run_hrtimer kernel/time/hrtimer.c:1777 [inline] __hrtimer_run_queues+0x1ad/0x990 kernel/time/hrtimer.c:1841 hrtimer_interrupt+0x397/0x8c0 kernel/time/hrtimer.c:1903 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1045 [inline] __sysvec_apic_timer_interrupt+0x109/0x3c0 arch/x86/kernel/apic/apic.c:1062 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1056 [inline] sysvec_apic_timer_interrupt+0x9e/0xc0 arch/x86/kernel/apic/apic.c:1056 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697 RIP: 0010:unwind_next_frame+0xba2/0x1ea0 arch/x86/kernel/unwind_orc.c:607 Code: 3c 02 00 0f 85 ba 0e 00 00 49 8d 7d 58 49 c7 45 50 00 00 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 <0f> 85 75 0e 00 00 4c 89 c0 49 c7 45 58 00 00 00 00 48 ba 00 00 00 RSP: 0018:ffffc900034af118 EFLAGS: 00000246 RAX: dffffc0000000000 RBX: 0000000000000001 RCX: ffffffff9161b2a8 RDX: 1ffff92000695e3c RSI: 1ffff92000695e3a RDI: ffffc900034af1e0 RBP: ffffc900034af1d0 R08: ffffffff9161b2ac R09: 0000000000000007 R10: 0000000000000200 R11: 00000000000157fc R12: ffffc900034af1d8 R13: ffffc900034af188 R14: ffffc900034af5a0 R15: ffffc900034af1bc arch_stack_walk+0x94/0xf0 arch/x86/kernel/stacktrace.c:25 stack_trace_save+0x8e/0xc0 kernel/stacktrace.c:122 kasan_save_stack+0x30/0x50 mm/kasan/common.c:57 kasan_save_track+0x14/0x30 mm/kasan/common.c:78 unpoison_slab_object mm/kasan/common.c:340 [inline] __kasan_slab_alloc+0x89/0x90 mm/kasan/common.c:366 kasan_slab_alloc include/linux/kasan.h:253 [inline] slab_post_alloc_hook mm/slub.c:4953 [inline] slab_alloc_node mm/slub.c:5263 [inline] kmem_cache_alloc_noprof+0x2ad/0x780 mm/slub.c:5270 ptlock_alloc+0x1f/0x70 mm/memory.c:7380 ptlock_init include/linux/mm.h:3284 [inline] pagetable_pte_ctor include/linux/mm.h:3338 [inline] __pte_alloc_one_noprof include/asm-generic/pgalloc.h:79 [inline] pte_alloc_one+0x84/0x3e0 arch/x86/mm/pgtable.c:18 __pte_alloc+0x6d/0x3f0 mm/memory.c:453 copy_pte_range mm/memory.c:1237 [inline] copy_pmd_range mm/memory.c:1392 [inline] copy_pud_range mm/memory.c:1429 [inline] copy_p4d_range mm/memory.c:1453 [inline] copy_page_range+0x3f17/0x6ba0 mm/memory.c:1539 dup_mmap+0xbea/0x1e20 mm/mmap.c:1827 dup_mm kernel/fork.c:1529 [inline] copy_mm kernel/fork.c:1581 [inline] copy_process+0x7451/0x7890 kernel/fork.c:2221 kernel_clone+0xfc/0x930 kernel/fork.c:2651 __do_sys_clone+0xd9/0x120 kernel/fork.c:2792 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xc9/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f770d0bf636 Code: 89 df e8 6d e8 f6 ff 45 31 c0 31 d2 31 f6 64 48 8b 04 25 10 00 00 00 bf 11 00 20 01 4c 8d 90 d0 02 00 00 b8 38 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 52 89 c5 85 c0 75 31 64 48 8b 04 25 10 00 00 RSP: 002b:00007ffc3c516a50 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 RAX: ffffffffffffffda RBX: 00007ffc3c516a58 RCX: 00007f770d0bf636 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 RBP: 00007ffc3c536fa0 R08: 0000000000000000 R09: 0000000000000001 R10: 00007f770cfeba10 R11: 0000000000000246 R12: 00007ffc3c516b90 R13: 0000000000000000 R14: 0000000000000000 R15: 00005592a64c3ac0 ---------------- Code disassembly (best guess): 0: 3c 02 cmp $0x2,%al 2: 00 0f add %cl,(%rdi) 4: 85 ba 0e 00 00 49 test %edi,0x4900000e(%rdx) a: 8d 7d 58 lea 0x58(%rbp),%edi d: 49 c7 45 50 00 00 00 movq $0x0,0x50(%r13) 14: 00 15: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax 1c: fc ff df 1f: 48 89 fa mov %rdi,%rdx 22: 48 c1 ea 03 shr $0x3,%rdx 26: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) * 2a: 0f 85 75 0e 00 00 jne 0xea5 <-- trapping instruction 30: 4c 89 c0 mov %r8,%rax 33: 49 c7 45 58 00 00 00 movq $0x0,0x58(%r13) 3a: 00 3b: 48 rex.W 3c: ba .byte 0xba 3d: 00 00 add %al,(%rax)