============================================ WARNING: possible recursive locking detected 5.16.0-rc6-syzkaller #0 Not tainted -------------------------------------------- swapper/1/0 is trying to acquire lock: ffff88801f09d130 (&runtime->sleep#2){..-.}-{2:2}, at: io_poll_double_wake+0x2bf/0x690 fs/io_uring.c:5467 but task is already holding lock: ffff8880301f1130 (&runtime->sleep#2){..-.}-{2:2}, at: __wake_up_common_lock kernel/sched/wait.c:137 [inline] ffff8880301f1130 (&runtime->sleep#2){..-.}-{2:2}, at: __wake_up+0xf8/0x1c0 kernel/sched/wait.c:157 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&runtime->sleep#2); lock(&runtime->sleep#2); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by swapper/1/0: #0: ffffc90000dc0c00 ((&dpcm->timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:45 [inline] #0: ffffc90000dc0c00 ((&dpcm->timer)){+.-.}-{0:0}, at: call_timer_fn+0xbd/0x210 kernel/time/timer.c:1411 #1: ffff888023489910 (&group->lock){..-.}-{2:2}, at: snd_pcm_period_elapsed+0x2c/0x210 sound/core/pcm_lib.c:1848 #2: ffff8880301f1130 (&runtime->sleep#2){..-.}-{2:2}, at: __wake_up_common_lock kernel/sched/wait.c:137 [inline] #2: ffff8880301f1130 (&runtime->sleep#2){..-.}-{2:2}, at: __wake_up+0xf8/0x1c0 kernel/sched/wait.c:157 stack backtrace: CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.16.0-rc6-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1dc/0x2d8 lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2956 [inline] check_deadlock kernel/locking/lockdep.c:2999 [inline] validate_chain+0x5984/0x8240 kernel/locking/lockdep.c:3788 __lock_acquire+0x1382/0x2b00 kernel/locking/lockdep.c:5027 lock_acquire+0x19f/0x4d0 kernel/locking/lockdep.c:5637 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xd1/0x120 kernel/locking/spinlock.c:162 io_poll_double_wake+0x2bf/0x690 fs/io_uring.c:5467 __wake_up_common+0x2aa/0x4e0 kernel/sched/wait.c:108 __wake_up_common_lock kernel/sched/wait.c:138 [inline] __wake_up+0x115/0x1c0 kernel/sched/wait.c:157 snd_pcm_update_state+0x3e9/0x440 snd_pcm_update_hw_ptr0+0xfff/0x1980 sound/core/pcm_lib.c:465 snd_pcm_period_elapsed_under_stream_lock sound/core/pcm_lib.c:1817 [inline] snd_pcm_period_elapsed+0xfb/0x210 sound/core/pcm_lib.c:1849 call_timer_fn+0xf6/0x210 kernel/time/timer.c:1421 expire_timers kernel/time/timer.c:1466 [inline] __run_timers+0x71a/0x910 kernel/time/timer.c:1734 run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1747 __do_softirq+0x392/0x7a3 kernel/softirq.c:558 __irq_exit_rcu+0xec/0x170 kernel/softirq.c:637 irq_exit_rcu+0x5/0x20 kernel/softirq.c:649 sysvec_apic_timer_interrupt+0x91/0xb0 arch/x86/kernel/apic/apic.c:1097 asm_sysvec_apic_timer_interrupt+0x12/0x20 RIP: 0010:native_save_fl arch/x86/include/asm/irqflags.h:22 [inline] RIP: 0010:arch_local_save_flags arch/x86/include/asm/irqflags.h:70 [inline] RIP: 0010:arch_irqs_disabled arch/x86/include/asm/irqflags.h:132 [inline] RIP: 0010:acpi_safe_halt drivers/acpi/processor_idle.c:110 [inline] RIP: 0010:acpi_idle_do_entry drivers/acpi/processor_idle.c:553 [inline] RIP: 0010:acpi_idle_enter+0x42d/0x790 drivers/acpi/processor_idle.c:688 Code: fd 48 83 e3 08 44 8b 7c 24 04 0f 85 22 01 00 00 4c 8d 74 24 40 e8 33 58 0b fd eb 0c e8 bc bb 04 fd 0f 00 2d 35 fe 62 06 fb f4 <4c> 89 f3 48 c1 eb 03 42 80 3c 23 00 74 08 4c 89 f7 e8 7d 90 50 fd RSP: 0018:ffffc90000d57be0 EFLAGS: 00000282 RAX: c8dda3e2bb402e00 RBX: 0000000000000000 RCX: ffffffff90bb6903 RDX: dffffc0000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffffc90000d57c90 R08: ffffffff818b2860 R09: ffffed10023faae1 R10: ffffed10023faae1 R11: 0000000000000000 R12: dffffc0000000000 R13: ffff888012bc1064 R14: ffffc90000d57c20 R15: 0000000000000001 cpuidle_enter_state+0x507/0xea0 drivers/cpuidle/cpuidle.c:237 cpuidle_enter+0x59/0x90 drivers/cpuidle/cpuidle.c:351 call_cpuidle kernel/sched/idle.c:158 [inline] cpuidle_idle_call kernel/sched/idle.c:239 [inline] do_idle+0x3e8/0x670 kernel/sched/idle.c:306 cpu_startup_entry+0x15/0x20 kernel/sched/idle.c:403 secondary_startup_64_no_verify+0xb1/0xbb ---------------- Code disassembly (best guess): 0: fd std 1: 48 83 e3 08 and $0x8,%rbx 5: 44 8b 7c 24 04 mov 0x4(%rsp),%r15d a: 0f 85 22 01 00 00 jne 0x132 10: 4c 8d 74 24 40 lea 0x40(%rsp),%r14 15: e8 33 58 0b fd callq 0xfd0b584d 1a: eb 0c jmp 0x28 1c: e8 bc bb 04 fd callq 0xfd04bbdd 21: 0f 00 2d 35 fe 62 06 verw 0x662fe35(%rip) # 0x662fe5d 28: fb sti 29: f4 hlt * 2a: 4c 89 f3 mov %r14,%rbx <-- trapping instruction 2d: 48 c1 eb 03 shr $0x3,%rbx 31: 42 80 3c 23 00 cmpb $0x0,(%rbx,%r12,1) 36: 74 08 je 0x40 38: 4c 89 f7 mov %r14,%rdi 3b: e8 7d 90 50 fd callq 0xfd5090bd