============================= [ BUG: Invalid wait context ] 6.15.0-syzkaller-02443-g015a99fa7665 #0 Not tainted ----------------------------- syz.3.1165/9337 is trying to lock: ffffc90004cbc410 (&gpc->lock){....}-{3:3}, at: kvm_xen_set_evtchn_fast+0x1fb/0x9a0 arch/x86/kvm/xen.c:1819 other info that might help us debug this: context-{2:2} 5 locks held by syz.3.1165/9337: #0: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #0: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #0: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: blk_mq_dispatch_queue_requests+0x11a/0x800 block/blk-mq.c:2871 #1: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #1: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #1: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: class_rcu_constructor include/linux/rcupdate.h:1155 [inline] #1: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: unwind_next_frame+0xa5/0x2390 arch/x86/kernel/unwind_orc.c:479 #2: ffffffff8e13cc60 (rcu_callback){....}-{0:0}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #2: ffffffff8e13cc60 (rcu_callback){....}-{0:0}, at: rcu_do_batch kernel/rcu/tree.c:2570 [inline] #2: ffffffff8e13cc60 (rcu_callback){....}-{0:0}, at: rcu_core+0xc34/0x1710 kernel/rcu/tree.c:2832 #3: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline] #3: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline] #3: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: class_rcu_constructor include/linux/rcupdate.h:1155 [inline] #3: ffffffff8e13cb40 (rcu_read_lock){....}-{1:3}, at: unwind_next_frame+0xa5/0x2390 arch/x86/kernel/unwind_orc.c:479 #4: ffffc90004cbc958 (&kvm->srcu){.?.?}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:161 [inline] #4: ffffc90004cbc958 (&kvm->srcu){.?.?}-{0:0}, at: srcu_read_lock include/linux/srcu.h:253 [inline] #4: ffffc90004cbc958 (&kvm->srcu){.?.?}-{0:0}, at: kvm_xen_set_evtchn_fast+0x1c3/0x9a0 arch/x86/kvm/xen.c:1817 stack backtrace: CPU: 1 UID: 0 PID: 9337 Comm: syz.3.1165 Not tainted 6.15.0-syzkaller-02443-g015a99fa7665 #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025 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/0x9a0 arch/x86/kvm/xen.c:1819 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+0x52/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:lock_acquire+0x175/0x360 kernel/locking/lockdep.c:5875 Code: 00 00 00 00 9c 8f 44 24 30 f7 44 24 30 00 02 00 00 0f 85 cd 00 00 00 f7 44 24 08 00 02 00 00 74 01 fb 65 48 8b 05 4b 0b fb 10 <48> 3b 44 24 58 0f 85 f2 00 00 00 48 83 c4 60 5b 41 5c 41 5d 41 5e RSP: 0018:ffffc90000a08698 EFLAGS: 00000206 RAX: 484b55cb8ae6bf00 RBX: 0000000000000000 RCX: 484b55cb8ae6bf00 RDX: 0000000000000000 RSI: ffffffff8db468e1 RDI: ffffffff8be24cc0 RBP: ffffffff81724865 R08: 0000000000000000 R09: ffffffff81724865 R10: ffffc90000a08858 R11: ffffffff81ac9730 R12: 0000000000000002 R13: ffffffff8e13cb40 R14: 0000000000000000 R15: 0000000000000246 rcu_lock_acquire include/linux/rcupdate.h:331 [inline] rcu_read_lock include/linux/rcupdate.h:841 [inline] class_rcu_constructor include/linux/rcupdate.h:1155 [inline] unwind_next_frame+0xc2/0x2390 arch/x86/kernel/unwind_orc.c:479 arch_stack_walk+0x11c/0x150 arch/x86/kernel/stacktrace.c:25 stack_trace_save+0x9c/0xe0 kernel/stacktrace.c:122 kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3e/0x80 mm/kasan/common.c:68 kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:576 poison_slab_object mm/kasan/common.c:247 [inline] __kasan_slab_free+0x62/0x70 mm/kasan/common.c:264 kasan_slab_free include/linux/kasan.h:233 [inline] slab_free_hook mm/slub.c:2380 [inline] slab_free_after_rcu_debug+0x129/0x2a0 mm/slub.c:4692 rcu_do_batch kernel/rcu/tree.c:2576 [inline] rcu_core+0xca8/0x1710 kernel/rcu/tree.c:2832 handle_softirqs+0x283/0x870 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:lock_acquire+0x175/0x360 kernel/locking/lockdep.c:5875 Code: 00 00 00 00 9c 8f 44 24 30 f7 44 24 30 00 02 00 00 0f 85 cd 00 00 00 f7 44 24 08 00 02 00 00 74 01 fb 65 48 8b 05 4b 0b fb 10 <48> 3b 44 24 58 0f 85 f2 00 00 00 48 83 c4 60 5b 41 5c 41 5d 41 5e RSP: 0018:ffffc9000415e9b8 EFLAGS: 00000206 RAX: 484b55cb8ae6bf00 RBX: 0000000000000000 RCX: 484b55cb8ae6bf00 RDX: 0000000000000000 RSI: ffffffff8db468e1 RDI: ffffffff8be24cc0 RBP: ffffffff81724865 R08: 0000000000000000 R09: ffffffff81724865 R10: ffffc9000415eb78 R11: ffffffff81ac9730 R12: 0000000000000002 R13: ffffffff8e13cb40 R14: 0000000000000000 R15: 0000000000000246 rcu_lock_acquire include/linux/rcupdate.h:331 [inline] rcu_read_lock include/linux/rcupdate.h:841 [inline] class_rcu_constructor include/linux/rcupdate.h:1155 [inline] unwind_next_frame+0xc2/0x2390 arch/x86/kernel/unwind_orc.c:479 arch_stack_walk+0x11c/0x150 arch/x86/kernel/stacktrace.c:25 stack_trace_save+0x9c/0xe0 kernel/stacktrace.c:122 kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3e/0x80 mm/kasan/common.c:68 poison_kmalloc_redzone mm/kasan/common.c:377 [inline] __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:394 kasan_kmalloc include/linux/kasan.h:260 [inline] __kmalloc_cache_noprof+0x230/0x3d0 mm/slub.c:4358 kmalloc_noprof include/linux/slab.h:905 [inline] slab_free_hook mm/slub.c:2332 [inline] slab_free mm/slub.c:4642 [inline] kmem_cache_free+0x166/0x400 mm/slub.c:4744 blk_update_request+0x5eb/0xe70 block/blk-mq.c:987 blk_mq_end_request+0x3e/0x70 block/blk-mq.c:1149 nullb_complete_cmd drivers/block/null_blk/main.c:1402 [inline] null_handle_cmd drivers/block/null_blk/main.c:1454 [inline] null_queue_rq+0xbfe/0xe30 drivers/block/null_blk/main.c:1693 null_queue_rqs+0x123/0x270 drivers/block/null_blk/main.c:1707 __blk_mq_flush_list block/blk-mq.c:2826 [inline] blk_mq_dispatch_queue_requests+0x417/0x800 block/blk-mq.c:2871 blk_mq_flush_plug_list+0x432/0x550 block/blk-mq.c:2959 blk_add_rq_to_plug+0x175/0x450 block/blk-mq.c:1388 blk_mq_submit_bio+0xbd3/0x22d0 block/blk-mq.c:3208 __submit_bio+0x207/0x5a0 block/blk-core.c:635 __submit_bio_noacct_mq block/blk-core.c:722 [inline] submit_bio_noacct_nocheck+0x4ab/0xb50 block/blk-core.c:751 __block_write_full_folio+0x810/0xe10 fs/buffer.c:1939 blkdev_writepages+0xd1/0x170 block/fops.c:483 do_writepages+0x32e/0x550 mm/page-writeback.c:2635 filemap_fdatawrite_wbc mm/filemap.c:386 [inline] __filemap_fdatawrite_range mm/filemap.c:419 [inline] filemap_write_and_wait_range+0x217/0x310 mm/filemap.c:691 filemap_invalidate_pages mm/filemap.c:2806 [inline] kiocb_invalidate_pages+0xb4/0x140 mm/filemap.c:2825 blkdev_direct_write+0x48/0x140 block/fops.c:694 blkdev_write_iter+0x544/0x710 block/fops.c:768 new_sync_write fs/read_write.c:593 [inline] vfs_write+0x548/0xa90 fs/read_write.c:686 ksys_write+0x145/0x250 fs/read_write.c:738 do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] __do_fast_syscall_32+0xb6/0x2b0 arch/x86/entry/syscall_32.c:306 do_fast_syscall_32+0x34/0x80 arch/x86/entry/syscall_32.c:331 entry_SYSENTER_compat_after_hwframe+0x84/0x8e RIP: 0023:0xf7fe2539 Code: 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 RSP: 002b:00000000f50e555c EFLAGS: 00000206 ORIG_RAX: 0000000000000004 RAX: ffffffffffffffda RBX: 000000000000000e RCX: 0000000000000000 RDX: 00000000ffffffdb RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 ---------------- Code disassembly (best guess): 0: 00 00 add %al,(%rax) 2: 00 00 add %al,(%rax) 4: 9c pushf 5: 8f 44 24 30 pop 0x30(%rsp) 9: f7 44 24 30 00 02 00 testl $0x200,0x30(%rsp) 10: 00 11: 0f 85 cd 00 00 00 jne 0xe4 17: f7 44 24 08 00 02 00 testl $0x200,0x8(%rsp) 1e: 00 1f: 74 01 je 0x22 21: fb sti 22: 65 48 8b 05 4b 0b fb mov %gs:0x10fb0b4b(%rip),%rax # 0x10fb0b75 29: 10 * 2a: 48 3b 44 24 58 cmp 0x58(%rsp),%rax <-- trapping instruction 2f: 0f 85 f2 00 00 00 jne 0x127 35: 48 83 c4 60 add $0x60,%rsp 39: 5b pop %rbx 3a: 41 5c pop %r12 3c: 41 5d pop %r13 3e: 41 5e pop %r14