============================= [ BUG: Invalid wait context ] syzkaller #0 Not tainted ----------------------------- dhcpcd/5315 is trying to lock: ffff888012b81bb0 (&gpc->lock){....}-{3:3}, at: kvm_xen_set_evtchn_fast+0x1f4/0x9a0 arch/x86/kvm/xen.c:1822 other info that might help us debug this: context-{2:2} 3 locks held by dhcpcd/5315: #0: ffff888012267678 (&mm->mmap_lock){++++}-{4:4}, at: mmap_write_lock include/linux/mmap_lock.h:536 [inline] #0: ffff888012267678 (&mm->mmap_lock){++++}-{4:4}, at: exit_mmap+0x2d8/0x9f0 mm/mmap.c:1308 #1: ffffffff8f36d280 (fill_pool_map-wait-type-override){+.+.}-{3:3}, at: debug_objects_fill_pool lib/debugobjects.c:779 [inline] #1: ffffffff8f36d280 (fill_pool_map-wait-type-override){+.+.}-{3:3}, at: debug_object_activate+0x364/0x420 lib/debugobjects.c:869 #2: ffff888012b82110 (&kvm->srcu){.?.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:187 [inline] #2: ffff888012b82110 (&kvm->srcu){.?.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:294 [inline] #2: ffff888012b82110 (&kvm->srcu){.?.+}-{0:0}, at: kvm_xen_set_evtchn_fast+0x1bc/0x9a0 arch/x86/kvm/xen.c:1820 stack backtrace: CPU: 0 UID: 0 PID: 5315 Comm: dhcpcd Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: dump_stack_lvl+0xe8/0x150 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+0xe39/0x2cf0 kernel/locking/lockdep.c:5187 lock_acquire+0x106/0x350 kernel/locking/lockdep.c:5868 __raw_read_lock_irqsave include/linux/rwlock_api_smp.h:174 [inline] _raw_read_lock_irqsave+0x48/0x60 kernel/locking/spinlock.c:240 kvm_xen_set_evtchn_fast+0x1f4/0x9a0 arch/x86/kvm/xen.c:1822 xen_timer_callback+0x109/0x220 arch/x86/kvm/xen.c:140 __run_hrtimer kernel/time/hrtimer.c:2032 [inline] __hrtimer_run_queues+0x371/0xa10 kernel/time/hrtimer.c:2096 hrtimer_interrupt+0x448/0x910 kernel/time/hrtimer.c:2215 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1051 [inline] __sysvec_apic_timer_interrupt+0x102/0x430 arch/x86/kernel/apic/apic.c:1068 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline] sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1062 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674 RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:179 [inline] RIP: 0010:_raw_spin_unlock_irqrestore+0x47/0x80 kernel/locking/spinlock.c:198 Code: f7 e8 2d cd cd f5 f7 c3 00 02 00 00 74 05 e8 e0 bd f9 f5 9c 58 a9 00 02 00 00 75 27 f7 c3 00 02 00 00 74 01 fb bf 01 00 00 00 c4 e0 be f5 65 8b 05 bd 00 98 07 85 c0 74 18 5b 41 5e c3 cc cc RSP: 0018:ffffc9000db17628 EFLAGS: 00000206 RAX: 0000000000000002 RBX: 0000000000000246 RCX: 0000000080000001 RDX: 0000000000000006 RSI: ffffffff8e22c768 RDI: 0000000000000001 RBP: ffffc9000db176d0 R08: ffffffff90577037 R09: 1ffffffff20aee06 R10: dffffc0000000000 R11: fffffbfff20aee07 R12: ffff8880423b5d20 R13: ffffea000108ed50 R14: ffff8880304029c0 R15: 0000000000000246 spin_unlock_irqrestore include/linux/spinlock.h:408 [inline] get_from_partial_node+0x451/0x4c0 mm/slub.c:3856 get_from_any_partial mm/slub.c:3915 [inline] get_from_partial mm/slub.c:3951 [inline] ___slab_alloc+0x258/0x950 mm/slub.c:4459 slab_alloc_node mm/slub.c:4908 [inline] kmem_cache_alloc_noprof+0x135/0x5f0 mm/slub.c:4931 kmem_alloc_batch lib/debugobjects.c:371 [inline] fill_pool+0x165/0x610 lib/debugobjects.c:420 debug_objects_fill_pool lib/debugobjects.c:780 [inline] debug_object_activate+0x38d/0x420 lib/debugobjects.c:869 debug_rcu_head_queue kernel/rcu/rcu.h:236 [inline] __call_rcu_common kernel/rcu/tree.c:3144 [inline] call_rcu+0x43/0x8b0 kernel/rcu/tree.c:3279 slab_free_hook mm/slub.c:2641 [inline] slab_free mm/slub.c:6377 [inline] kmem_cache_free+0x462/0x650 mm/slub.c:6504 tear_down_vmas+0x312/0x520 mm/mmap.c:1262 exit_mmap+0x4ca/0x9f0 mm/mmap.c:1320 __mmput+0x118/0x420 kernel/fork.c:1187 exit_mm+0x221/0x2d0 kernel/exit.c:615 do_exit+0x6cd/0x2360 kernel/exit.c:997 do_group_exit+0x22d/0x2f0 kernel/exit.c:1152 __do_sys_exit_group kernel/exit.c:1163 [inline] __se_sys_exit_group kernel/exit.c:1161 [inline] __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1161 x64_sys_call+0x221a/0x2240 arch/x86/include/generated/asm/syscalls_64.h:232 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f7fbb1286c5 Code: Unable to access opcode bytes at 0x7f7fbb12869b. RSP: 002b:00007ffd54ca1b68 EFLAGS: 00000206 ORIG_RAX: 00000000000000e7 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f7fbb1286c5 RDX: 00000000000000e7 RSI: ffffffffffffff88 RDI: 0000000000000001 RBP: 00007ffd54ca2178 R08: 000055fd8c2f72c0 R09: 0000000000000002 R10: 00000000000000e0 R11: 0000000000000206 R12: 00007ffd54ca1bb0 R13: 000055fd8c2f88a0 R14: 00007ffd54ca1df0 R15: 00007ffd54ca1ba0 ---------------- Code disassembly (best guess): 0: f7 e8 imul %eax 2: 2d cd cd f5 f7 sub $0xf7f5cdcd,%eax 7: c3 ret 8: 00 02 add %al,(%rdx) a: 00 00 add %al,(%rax) c: 74 05 je 0x13 e: e8 e0 bd f9 f5 call 0xf5f9bdf3 13: 9c pushf 14: 58 pop %rax 15: a9 00 02 00 00 test $0x200,%eax 1a: 75 27 jne 0x43 1c: f7 c3 00 02 00 00 test $0x200,%ebx 22: 74 01 je 0x25 24: fb sti 25: bf 01 00 00 00 mov $0x1,%edi * 2a: e8 c4 e0 be f5 call 0xf5bee0f3 <-- trapping instruction 2f: 65 8b 05 bd 00 98 07 mov %gs:0x79800bd(%rip),%eax # 0x79800f3 36: 85 c0 test %eax,%eax 38: 74 18 je 0x52 3a: 5b pop %rbx 3b: 41 5e pop %r14 3d: c3 ret 3e: cc int3 3f: cc int3