============================================ WARNING: possible recursive locking detected 5.10.0-rc7-next-20201210-syzkaller #0 Not tainted -------------------------------------------- syz-executor.2/10329 is trying to acquire lock: ffff88802c2f2130 (&runtime->sleep){..-.}-{2:2}, at: spin_lock include/linux/spinlock.h:354 [inline] ffff88802c2f2130 (&runtime->sleep){..-.}-{2:2}, at: io_poll_double_wake+0x25f/0x6a0 fs/io_uring.c:5209 but task is already holding lock: ffff88802c2f0130 (&runtime->sleep){..-.}-{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); lock(&runtime->sleep); *** DEADLOCK *** May be due to missing lock nesting notation 5 locks held by syz-executor.2/10329: #0: ffff88803d7e0158 (&mm->mmap_lock#2){++++}-{3:3}, at: mmap_write_lock_killable include/linux/mmap_lock.h:87 [inline] #0: ffff88803d7e0158 (&mm->mmap_lock#2){++++}-{3:3}, at: vm_mmap_pgoff+0x15c/0x290 mm/util.c:517 #1: ffff88803d7e00c0 (&mm->page_table_lock){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:354 [inline] #1: ffff88803d7e00c0 (&mm->page_table_lock){+.+.}-{2:2}, at: browse_rb mm/mmap.c:354 [inline] #1: ffff88803d7e00c0 (&mm->page_table_lock){+.+.}-{2:2}, at: validate_mm+0x440/0x810 mm/mmap.c:421 #2: ffffc90000007d78 ((&dpcm->timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:35 [inline] #2: ffffc90000007d78 ((&dpcm->timer)){+.-.}-{0:0}, at: call_timer_fn+0xd5/0x710 kernel/time/timer.c:1407 #3: ffff888147831108 (&group->lock){..-.}-{2:2}, at: _snd_pcm_stream_lock_irqsave+0xbb/0xe0 sound/core/pcm_native.c:170 #4: ffff88802c2f0130 (&runtime->sleep){..-.}-{2:2}, at: __wake_up_common_lock+0xb4/0x130 kernel/sched/wait.c:137 stack backtrace: CPU: 0 PID: 10329 Comm: syz-executor.2 Not tainted 5.10.0-rc7-next-20201210-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:79 [inline] dump_stack+0x107/0x163 lib/dump_stack.c:120 print_deadlock_bug kernel/locking/lockdep.c:2761 [inline] check_deadlock kernel/locking/lockdep.c:2804 [inline] validate_chain kernel/locking/lockdep.c:3595 [inline] __lock_acquire.cold+0x115/0x3e6 kernel/locking/lockdep.c:4832 lock_acquire kernel/locking/lockdep.c:5437 [inline] lock_acquire+0x29d/0x750 kernel/locking/lockdep.c:5402 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:354 [inline] io_poll_double_wake+0x25f/0x6a0 fs/io_uring.c:5209 __wake_up_common+0x147/0x650 kernel/sched/wait.c:108 __wake_up_common_lock+0xd0/0x130 kernel/sched/wait.c:138 snd_pcm_update_state+0x46a/0x540 sound/core/pcm_lib.c:203 snd_pcm_update_hw_ptr0+0xa75/0x1a70 sound/core/pcm_lib.c:464 snd_pcm_period_elapsed+0x160/0x250 sound/core/pcm_lib.c:1805 loopback_jiffies_timer_function+0x1c4/0x240 sound/drivers/aloop.c:669 call_timer_fn+0x1a5/0x710 kernel/time/timer.c:1417 expire_timers kernel/time/timer.c:1462 [inline] __run_timers.part.0+0x692/0xa80 kernel/time/timer.c:1731 __run_timers kernel/time/timer.c:1712 [inline] run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1744 __do_softirq+0x2b7/0xa76 kernel/softirq.c:343 asm_call_irq_on_stack+0xf/0x20 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline] run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline] do_softirq_own_stack+0xaa/0xd0 arch/x86/kernel/irq_64.c:77 invoke_softirq kernel/softirq.c:226 [inline] __irq_exit_rcu kernel/softirq.c:424 [inline] irq_exit_rcu+0x194/0x210 kernel/softirq.c:436 sysvec_apic_timer_interrupt+0x4d/0x100 arch/x86/kernel/apic/apic.c:1096 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:628 RIP: 0010:check_kcov_mode kernel/kcov.c:163 [inline] RIP: 0010:__sanitizer_cov_trace_pc+0x7/0x60 kernel/kcov.c:197 Code: 0f bd c8 49 8b 14 24 48 63 c9 e9 66 ff ff ff 4c 01 ca 49 89 13 e9 00 fd ff ff 66 0f 1f 84 00 00 00 00 00 65 8b 05 a9 52 8f 7e <89> c1 48 8b 34 24 81 e1 00 01 00 00 65 48 8b 14 25 00 f0 01 00 a9 RSP: 0018:ffffc9000167fa60 EFLAGS: 00000286 RAX: 0000000080000001 RBX: dffffc0000000000 RCX: 0000000000000000 RDX: ffff888143ba1b00 RSI: ffffffff81a7bc1c RDI: ffff888011adb540 RBP: ffff888011adb548 R08: 0000000000000000 R09: 0000000000000003 R10: ffffffff81a7bbcb R11: 0000000000000001 R12: 000000001ffff000 R13: ffff888011adb528 R14: ffff888011adb530 R15: 000000001dc92000 vm_end_gap include/linux/mm.h:2668 [inline] vma_compute_gap mm/mmap.c:301 [inline] vma_compute_subtree_gap mm/mmap.c:313 [inline] browse_rb mm/mmap.c:355 [inline] validate_mm+0x518/0x810 mm/mmap.c:421 __vma_adjust+0xc49/0x25f0 mm/mmap.c:1020 vma_adjust include/linux/mm.h:2506 [inline] __split_vma+0x467/0x550 mm/mmap.c:2780 __do_munmap+0x3a9/0x11a0 mm/mmap.c:2879 do_munmap mm/mmap.c:2933 [inline] munmap_vma_range mm/mmap.c:600 [inline] mmap_region+0x85a/0x1730 mm/mmap.c:1751 do_mmap+0xcff/0x11d0 mm/mmap.c:1582 vm_mmap_pgoff+0x1b7/0x290 mm/util.c:519 ksys_mmap_pgoff+0x49c/0x620 mm/mmap.c:1633 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x45e1aa Code: 89 f5 41 54 49 89 fc 55 53 74 35 49 63 e8 48 63 da 4d 89 f9 49 89 e8 4d 63 d6 48 89 da 4c 89 ee 4c 89 e7 b8 09 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 4e 5b 5d 41 5c 41 5d 41 5e 41 5f c3 0f 1f 00 RSP: 002b:00007f54ff946bb8 EFLAGS: 00000206 ORIG_RAX: 0000000000000009 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 000000000045e1aa RDX: 0000000000000003 RSI: 0000000000002540 RDI: 0000000020ee7000 RBP: 0000000000000005 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000000008011 R11: 0000000000000206 R12: 0000000020ee7000 R13: 0000000000002540 R14: 0000000000008011 R15: 0000000000000000