================================ WARNING: inconsistent lock state 6.14.0-rc2-syzkaller #0 Not tainted -------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. migration/1/23 [HC1[1]:SC0[0]:HE0:SE1] takes: ffff8880b873e958 ((wq_completion)loop3){?.+.}-{0:0}, at: raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:598 {HARDIRQ-ON-W} state was registered at: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 process_one_work kernel/workqueue.c:3211 [inline] process_scheduled_works+0x950/0x1840 kernel/workqueue.c:3317 worker_thread+0x870/0xd30 kernel/workqueue.c:3398 kthread+0x7ab/0x920 kernel/kthread.c:464 ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 irq event stamp: 1136 hardirqs last enabled at (1135): [] raw_spin_rq_unlock_irq kernel/sched/sched.h:1533 [inline] hardirqs last enabled at (1135): [] finish_lock_switch kernel/sched/core.c:5131 [inline] hardirqs last enabled at (1135): [] finish_task_switch+0x1e5/0x870 kernel/sched/core.c:5249 hardirqs last disabled at (1136): [] sysvec_call_function_single+0xe/0xc0 arch/x86/kernel/smp.c:266 softirqs last enabled at (0): [] rcu_lock_acquire include/linux/rcupdate.h:337 [inline] softirqs last enabled at (0): [] rcu_read_lock include/linux/rcupdate.h:849 [inline] softirqs last enabled at (0): [] copy_process+0x9fa/0x3d50 kernel/fork.c:2272 softirqs last disabled at (0): [<0000000000000000>] 0x0 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock((wq_completion)loop3); lock((wq_completion)loop3); *** DEADLOCK *** 1 lock held by migration/1/23: #0: ffff8880b863e958 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:598 stack backtrace: CPU: 1 UID: 0 PID: 23 Comm: migration/1 Not tainted 6.14.0-rc2-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024 Stopper: 0x0 <- 0x0 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_usage_bug+0x62e/0x8b0 kernel/locking/lockdep.c:4040 valid_state+0x13a/0x1c0 kernel/locking/lockdep.c:4054 mark_lock_irq+0xbb/0xc20 kernel/locking/lockdep.c:4265 mark_lock+0x223/0x360 kernel/locking/lockdep.c:4751 mark_usage kernel/locking/lockdep.c:4637 [inline] __lock_acquire+0xbc3/0x2100 kernel/locking/lockdep.c:5182 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5851 _raw_spin_lock_nested+0x31/0x40 kernel/locking/spinlock.c:378 raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:598 _double_lock_balance kernel/sched/sched.h:3006 [inline] double_lock_balance kernel/sched/sched.h:3051 [inline] find_lock_lowest_rq+0x1e1/0x670 kernel/sched/rt.c:1914 push_rt_task+0x144/0x790 kernel/sched/rt.c:2048 rto_push_irq_work_func+0x93/0x350 kernel/sched/rt.c:2249 irq_work_single+0x136/0x240 kernel/irq_work.c:221 __flush_smp_call_function_queue+0x9e4/0x1620 kernel/smp.c:574 __sysvec_call_function_single+0xb8/0x430 arch/x86/kernel/smp.c:271 instr_sysvec_call_function_single arch/x86/kernel/smp.c:266 [inline] sysvec_call_function_single+0x9e/0xc0 arch/x86/kernel/smp.c:266 asm_sysvec_call_function_single+0x1a/0x20 arch/x86/include/asm/idtentry.h:709 RIP: 0010:finish_task_switch+0x1ea/0x870 kernel/sched/core.c:5251 Code: c9 50 e8 49 0a 0c 00 48 83 c4 08 4c 89 f7 e8 fd 39 00 00 0f 1f 44 00 00 4c 89 f7 e8 80 fd 69 0a e8 7b 75 38 00 fb 48 8b 5d c0 <48> 8d bb 08 16 00 00 48 89 f8 48 c1 e8 03 49 be 00 00 00 00 00 fc RSP: 0018:ffffc900001d7b08 EFLAGS: 00000286 RAX: 759e5ab9424d5800 RBX: ffff88801d685a00 RCX: ffffffff9a400903 RDX: dffffc0000000000 RSI: ffffffff8c0aa660 RDI: ffffffff8c608ac0 RBP: ffffc900001d7b50 R08: ffffffff901b5c77 R09: 1ffffffff2036b8e R10: dffffc0000000000 R11: fffffbfff2036b8f R12: 1ffff110170e7eee R13: dffffc0000000000 R14: ffff8880b873e940 R15: ffff8880b873f770 context_switch kernel/sched/core.c:5380 [inline] __schedule+0x1916/0x4c90 kernel/sched/core.c:6764 __schedule_loop kernel/sched/core.c:6841 [inline] schedule+0x14b/0x320 kernel/sched/core.c:6856 smpboot_thread_fn+0x61e/0xa30 kernel/smpboot.c:160 kthread+0x7ab/0x920 kernel/kthread.c:464 ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 ---------------- Code disassembly (best guess): 0: c9 leave 1: 50 push %rax 2: e8 49 0a 0c 00 call 0xc0a50 7: 48 83 c4 08 add $0x8,%rsp b: 4c 89 f7 mov %r14,%rdi e: e8 fd 39 00 00 call 0x3a10 13: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 18: 4c 89 f7 mov %r14,%rdi 1b: e8 80 fd 69 0a call 0xa69fda0 20: e8 7b 75 38 00 call 0x3875a0 25: fb sti 26: 48 8b 5d c0 mov -0x40(%rbp),%rbx * 2a: 48 8d bb 08 16 00 00 lea 0x1608(%rbx),%rdi <-- trapping instruction 31: 48 89 f8 mov %rdi,%rax 34: 48 c1 e8 03 shr $0x3,%rax 38: 49 rex.WB 39: be 00 00 00 00 mov $0x0,%esi 3e: 00 fc add %bh,%ah