=============================
[ BUG: Invalid wait context ]
6.16.0-rc2-syzkaller-00318-g739a6c93cc75 #0 Not tainted
-----------------------------
kworker/u8:16/9956 is trying to lock:
ffffc900054ea410 (&gpc->lock){....}-{3:3}, at: kvm_xen_set_evtchn_fast+0x1fb/0x9b0 arch/x86/kvm/xen.c:1820
other info that might help us debug this:
context-{2:2}
5 locks held by kworker/u8:16/9956:
#0: ffff88801a889148 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3213 [inline]
#0: ffff88801a889148 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_scheduled_works+0x9b4/0x17b0 kernel/workqueue.c:3321
#1: ffffc90005577bc0 ((work_completion)(&(&nsim_dev->trap_data->trap_report_dw)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3214 [inline]
#1: ffffc90005577bc0 ((work_completion)(&(&nsim_dev->trap_data->trap_report_dw)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x9ef/0x17b0 kernel/workqueue.c:3321
#2: ffff88807a336250 (&devlink->lock_key#30){+.+.}-{4:4}, at: nsim_dev_trap_report_work+0x57/0xb80 drivers/net/netdevsim/dev.c:838
#3: ffff8880647f08e0 (&nsim_trap_data->trap_lock){+.+.}-{3:3}, at: spin_lock include/linux/spinlock.h:351 [inline]
#3: ffff8880647f08e0 (&nsim_trap_data->trap_lock){+.+.}-{3:3}, at: nsim_dev_trap_report drivers/net/netdevsim/dev.c:791 [inline]
#3: ffff8880647f08e0 (&nsim_trap_data->trap_lock){+.+.}-{3:3}, at: nsim_dev_trap_report_work+0x1a9/0xb80 drivers/net/netdevsim/dev.c:851
#4: ffffc900054ea960 (&kvm->srcu){.?.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:161 [inline]
#4: ffffc900054ea960 (&kvm->srcu){.?.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:253 [inline]
#4: ffffc900054ea960 (&kvm->srcu){.?.+}-{0:0}, at: kvm_xen_set_evtchn_fast+0x1c3/0x9b0 arch/x86/kvm/xen.c:1818
stack backtrace:
CPU: 0 UID: 0 PID: 9956 Comm: kworker/u8:16 Not tainted 6.16.0-rc2-syzkaller-00318-g739a6c93cc75 #0 PREEMPT(full)
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Workqueue: events_unbound nsim_dev_trap_report_work
Call Trace:
dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
print_lock_invalid_wait_context kernel/locking/lockdep.c:4833 [inline]
check_wait_context kernel/locking/lockdep.c:4905 [inline]
__lock_acquire+0xbcb/0xd20 kernel/locking/lockdep.c:5190
lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5871
__raw_read_lock_irqsave include/linux/rwlock_api_smp.h:160 [inline]
_raw_read_lock_irqsave+0xaf/0x100 kernel/locking/spinlock.c:236
kvm_xen_set_evtchn_fast+0x1fb/0x9b0 arch/x86/kvm/xen.c:1820
xen_timer_callback+0x109/0x220 arch/x86/kvm/xen.c:140
__run_hrtimer kernel/time/hrtimer.c:1761 [inline]
__hrtimer_run_queues+0x4dd/0xc60 kernel/time/hrtimer.c:1825
hrtimer_interrupt+0x45b/0xaa0 kernel/time/hrtimer.c:1887
local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1039 [inline]
__sysvec_apic_timer_interrupt+0x10b/0x410 arch/x86/kernel/apic/apic.c:1056
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline]
sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1050
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
RIP: 0010:__sanitizer_cov_trace_switch+0x82/0x130 kernel/kcov.c:350
Code: 00 00 b9 01 00 00 00 48 85 c0 0f 84 b4 00 00 00 41 57 41 56 41 54 53 48 8b 54 24 20 65 4c 8b 04 25 08 40 c0 92 45 31 c9 eb 08 <49> ff c1 4c 39 c8 74 77 4e 8b 54 ce 10 65 44 8b 1d 99 9d ff 10 41
RSP: 0018:ffffc90005577918 EFLAGS: 00000293
RAX: 0000000000000003 RBX: 00000000c6336400 RCX: 0000000000000001
RDX: ffffffff895d2f5c RSI: ffffffff8f7249f0 RDI: 0000000000000031
RBP: 0000000000000031 R08: ffff88807c015a00 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000031
R13: 0000000000000000 R14: ffffffff8c3363ec R15: ffffffff8c3363ec
in_aton+0x33c/0x440 net/core/utils.c:61
nsim_dev_trap_skb_build drivers/net/netdevsim/dev.c:764 [inline]
nsim_dev_trap_report drivers/net/netdevsim/dev.c:805 [inline]
nsim_dev_trap_report_work+0x50d/0xb80 drivers/net/netdevsim/dev.c:851
process_one_work kernel/workqueue.c:3238 [inline]
process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3321
worker_thread+0x8a0/0xda0 kernel/workqueue.c:3402
kthread+0x70e/0x8a0 kernel/kthread.c:464
ret_from_fork+0x3f9/0x770 arch/x86/kernel/process.c:148
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
vkms_vblank_simulate: vblank timer overrun
vkms_vblank_simulate: vblank timer overrun
hrtimer: interrupt took 469449849 ns
vkms_vblank_simulate: vblank timer overrun
----------------
Code disassembly (best guess):
0: 00 00 add %al,(%rax)
2: b9 01 00 00 00 mov $0x1,%ecx
7: 48 85 c0 test %rax,%rax
a: 0f 84 b4 00 00 00 je 0xc4
10: 41 57 push %r15
12: 41 56 push %r14
14: 41 54 push %r12
16: 53 push %rbx
17: 48 8b 54 24 20 mov 0x20(%rsp),%rdx
1c: 65 4c 8b 04 25 08 40 mov %gs:0xffffffff92c04008,%r8
23: c0 92
25: 45 31 c9 xor %r9d,%r9d
28: eb 08 jmp 0x32
* 2a: 49 ff c1 inc %r9 <-- trapping instruction
2d: 4c 39 c8 cmp %r9,%rax
30: 74 77 je 0xa9
32: 4e 8b 54 ce 10 mov 0x10(%rsi,%r9,8),%r10
37: 65 44 8b 1d 99 9d ff mov %gs:0x10ff9d99(%rip),%r11d # 0x10ff9dd8
3e: 10
3f: 41 rex.B