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