============================================ WARNING: possible recursive locking detected 5.16.0-rc4-syzkaller #0 Not tainted -------------------------------------------- kworker/1:1H/105 is trying to acquire lock: ffff88801c8984a8 (&runtime->sleep#2){....}-{2:2}, at: io_poll_double_wake+0x2be/0x820 fs/io_uring.c:5463 but task is already holding lock: ffff88801c8988a8 (&runtime->sleep#2){....}-{2:2}, at: __wake_up_common_lock+0xb4/0x130 kernel/sched/wait.c:137 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 4 locks held by kworker/1:1H/105: #0: ffff888010c65138 ((wq_completion)events_highpri){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline] #0: ffff888010c65138 ((wq_completion)events_highpri){+.+.}-{0:0}, at: arch_atomic_long_set include/linux/atomic/atomic-long.h:41 [inline] #0: ffff888010c65138 ((wq_completion)events_highpri){+.+.}-{0:0}, at: atomic_long_set include/linux/atomic/atomic-instrumented.h:1198 [inline] #0: ffff888010c65138 ((wq_completion)events_highpri){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:635 [inline] #0: ffff888010c65138 ((wq_completion)events_highpri){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:662 [inline] #0: ffff888010c65138 ((wq_completion)events_highpri){+.+.}-{0:0}, at: process_one_work+0x896/0x1690 kernel/workqueue.c:2269 #1: ffffc90001f97db0 ((work_completion)(&vmidi->output_work)){+.+.}-{0:0}, at: process_one_work+0x8ca/0x1690 kernel/workqueue.c:2273 #2: ffff88801c898868 (&runtime->lock){....}-{2:2}, at: snd_rawmidi_proceed+0x41/0xf0 sound/core/rawmidi.c:1433 #3: ffff88801c8988a8 (&runtime->sleep#2){....}-{2:2}, at: __wake_up_common_lock+0xb4/0x130 kernel/sched/wait.c:137 stack backtrace: CPU: 1 PID: 105 Comm: kworker/1:1H Not tainted 5.16.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: events_highpri snd_vmidi_output_work Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2956 [inline] check_deadlock kernel/locking/lockdep.c:2999 [inline] validate_chain kernel/locking/lockdep.c:3788 [inline] __lock_acquire.cold+0x149/0x3ab kernel/locking/lockdep.c:5027 lock_acquire kernel/locking/lockdep.c:5637 [inline] lock_acquire+0x1ab/0x510 kernel/locking/lockdep.c:5602 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x39/0x50 kernel/locking/spinlock.c:162 io_poll_double_wake+0x2be/0x820 fs/io_uring.c:5463 __wake_up_common+0x147/0x650 kernel/sched/wait.c:108 __wake_up_common_lock+0xd0/0x130 kernel/sched/wait.c:138 __snd_rawmidi_transmit_ack+0x1f4/0x350 sound/core/rawmidi.c:1359 snd_rawmidi_proceed+0xc9/0xf0 sound/core/rawmidi.c:1436 snd_vmidi_output_work+0x306/0x380 sound/core/seq/seq_virmidi.c:139 process_one_work+0x9b2/0x1690 kernel/workqueue.c:2298 worker_thread+0x658/0x11f0 kernel/workqueue.c:2445 kthread+0x405/0x4f0 kernel/kthread.c:327 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295