================================ WARNING: inconsistent lock state 6.7.0-rc1-next-20231117-syzkaller #0 Not tainted -------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. kworker/0:3/5066 [HC1[1]:SC0[0]:HE0:SE1] takes: ffff88807eec0018 (&sighand->siglock){?.+.}-{2:2}, at: __lock_task_sighand+0xc2/0x340 kernel/signal.c:1422 {HARDIRQ-ON-W} state was registered at: lock_acquire kernel/locking/lockdep.c:5753 [inline] lock_acquire+0x1b1/0x530 kernel/locking/lockdep.c:5718 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:351 [inline] class_spinlock_constructor include/linux/spinlock.h:530 [inline] ptrace_set_stopped kernel/ptrace.c:391 [inline] ptrace_attach+0x401/0x650 kernel/ptrace.c:478 __do_sys_ptrace+0x204/0x230 kernel/ptrace.c:1290 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x40/0x110 arch/x86/entry/common.c:82 entry_SYSCALL_64_after_hwframe+0x62/0x6a irq event stamp: 843188 hardirqs last enabled at (843187): [] raw_spin_rq_unlock_irq kernel/sched/sched.h:1386 [inline] hardirqs last enabled at (843187): [] finish_lock_switch kernel/sched/core.c:5153 [inline] hardirqs last enabled at (843187): [] finish_task_switch.isra.0+0x217/0xcb0 kernel/sched/core.c:5271 hardirqs last disabled at (843188): [] sysvec_apic_timer_interrupt+0xe/0xb0 arch/x86/kernel/apic/apic.c:1076 softirqs last enabled at (843144): [] local_bh_enable include/linux/bottom_half.h:33 [inline] softirqs last enabled at (843144): [] srcu_invoke_callbacks+0x2e7/0x490 kernel/rcu/srcutree.c:1743 softirqs last disabled at (843140): [] local_bh_disable include/linux/bottom_half.h:20 [inline] softirqs last disabled at (843140): [] srcu_invoke_callbacks+0x2be/0x490 kernel/rcu/srcutree.c:1741 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&sighand->siglock); lock(&sighand->siglock); *** DEADLOCK *** 3 locks held by kworker/0:3/5066: #0: ffff88807b6fc1b0 (&new_timer->it_lock){-...}-{2:2}, at: posix_timer_fn+0x2d/0x3d0 kernel/time/posix-timers.c:318 #1: ffffffff8cfad060 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:301 [inline] #1: ffffffff8cfad060 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:747 [inline] #1: ffffffff8cfad060 (rcu_read_lock){....}-{1:2}, at: send_sigqueue+0x10c/0x840 kernel/signal.c:1978 #2: ffffffff8cfad060 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:301 [inline] #2: ffffffff8cfad060 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:747 [inline] #2: ffffffff8cfad060 (rcu_read_lock){....}-{1:2}, at: __lock_task_sighand+0x3f/0x340 kernel/signal.c:1405 stack backtrace: CPU: 0 PID: 5066 Comm: kworker/0:3 Not tainted 6.7.0-rc1-next-20231117-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023 Workqueue: 0x0 (mm_percpu_wq) Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xd9/0x1b0 lib/dump_stack.c:106 print_usage_bug kernel/locking/lockdep.c:3970 [inline] valid_state kernel/locking/lockdep.c:4012 [inline] mark_lock_irq kernel/locking/lockdep.c:4215 [inline] mark_lock+0x91a/0xc50 kernel/locking/lockdep.c:4677 mark_usage kernel/locking/lockdep.c:4563 [inline] __lock_acquire+0x1347/0x3b10 kernel/locking/lockdep.c:5090 lock_acquire kernel/locking/lockdep.c:5753 [inline] lock_acquire+0x1b1/0x530 kernel/locking/lockdep.c:5718 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x3a/0x50 kernel/locking/spinlock.c:162 __lock_task_sighand+0xc2/0x340 kernel/signal.c:1422 lock_task_sighand include/linux/sched/signal.h:748 [inline] send_sigqueue+0x1d4/0x840 kernel/signal.c:1996 posix_timer_event kernel/time/posix-timers.c:298 [inline] posix_timer_fn+0x181/0x3d0 kernel/time/posix-timers.c:324 __run_hrtimer kernel/time/hrtimer.c:1688 [inline] __hrtimer_run_queues+0x20c/0xc20 kernel/time/hrtimer.c:1752 hrtimer_interrupt+0x31b/0x800 kernel/time/hrtimer.c:1814 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1065 [inline] __sysvec_apic_timer_interrupt+0x10c/0x410 arch/x86/kernel/apic/apic.c:1082 sysvec_apic_timer_interrupt+0x90/0xb0 arch/x86/kernel/apic/apic.c:1076 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:645 RIP: 0010:finish_task_switch.isra.0+0x220/0xcb0 kernel/sched/core.c:5273 Code: 90 0a 00 00 44 8b 0d 27 ca bd 0d 45 85 c9 0f 85 bc 01 00 00 48 89 df e8 ce f8 ff ff e8 29 7c 33 00 fb 65 48 8b 1d b0 6f a8 7e <48> 8d bb d8 15 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 RSP: 0018:ffffc90003d7fc08 EFLAGS: 00000202 RAX: 00000000000cddb3 RBX: ffff888025f53b80 RCX: 1ffffffff1e31619 RDX: 0000000000000000 RSI: ffffffff8accbfe0 RDI: ffffffff8b2f1520 RBP: ffffc90003d7fc50 R08: 0000000000000001 R09: 0000000000000001 R10: ffffffff8f18e357 R11: 0000000000000000 R12: ffff8880b983d478 R13: ffff8880260f9dc0 R14: 0000000000000000 R15: ffff8880b983c700 context_switch kernel/sched/core.c:5402 [inline] __schedule+0xf1d/0x5c00 kernel/sched/core.c:6726 __schedule_loop kernel/sched/core.c:6801 [inline] schedule+0xe7/0x270 kernel/sched/core.c:6816 worker_thread+0x2de/0x1290 kernel/workqueue.c:2805 kthread+0x2c1/0x3a0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:242 ---------------- Code disassembly (best guess), 2 bytes skipped: 0: 00 00 add %al,(%rax) 2: 44 8b 0d 27 ca bd 0d mov 0xdbdca27(%rip),%r9d # 0xdbdca30 9: 45 85 c9 test %r9d,%r9d c: 0f 85 bc 01 00 00 jne 0x1ce 12: 48 89 df mov %rbx,%rdi 15: e8 ce f8 ff ff call 0xfffff8e8 1a: e8 29 7c 33 00 call 0x337c48 1f: fb sti 20: 65 48 8b 1d b0 6f a8 mov %gs:0x7ea86fb0(%rip),%rbx # 0x7ea86fd8 27: 7e * 28: 48 8d bb d8 15 00 00 lea 0x15d8(%rbx),%rdi <-- trapping instruction 2f: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax 36: fc ff df 39: 48 89 fa mov %rdi,%rdx 3c: 48 rex.W 3d: c1 .byte 0xc1