====================================================== [ INFO: possible circular locking dependency detected ] 4.9.71-g2506378 #9 Not tainted ------------------------------------------------------- syzkaller689322/3350 is trying to acquire lock: (&p->lock){+.+.+.}, at: [] seq_read+0xdd/0x1290 fs/seq_file.c:178 but task is already holding lock: (&pipe->mutex/1){+.+.+.}, at: [] pipe_lock_nested fs/pipe.c:66 [inline] (&pipe->mutex/1){+.+.+.}, at: [] pipe_lock+0x56/0x70 fs/pipe.c:74 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: lock_acquire+0x12e/0x410 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_nested+0xbb/0x870 kernel/locking/mutex.c:621 __pipe_lock fs/pipe.c:87 [inline] fifo_open+0x15c/0xa30 fs/pipe.c:916 do_dentry_open+0x607/0xc60 fs/open.c:766 vfs_open+0x105/0x220 fs/open.c:879 do_last fs/namei.c:3408 [inline] path_openat+0x5ac/0x2910 fs/namei.c:3531 do_filp_open+0x197/0x290 fs/namei.c:3566 do_open_execat+0xfa/0x4d0 fs/exec.c:844 do_execveat_common.isra.37+0x6d6/0x1f10 fs/exec.c:1724 compat_do_execve fs/exec.c:1857 [inline] C_SYSC_execve fs/exec.c:1932 [inline] compat_SyS_execve+0x48/0x60 fs/exec.c:1928 do_syscall_32_irqs_on arch/x86/entry/common.c:322 [inline] do_fast_syscall_32+0x2f7/0x890 arch/x86/entry/common.c:384 entry_SYSENTER_compat+0x51/0x60 arch/x86/entry/entry_64_compat.S:124 lock_acquire+0x12e/0x410 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_killable_nested+0xcc/0x960 kernel/locking/mutex.c:641 lock_trace+0x44/0xc0 fs/proc/base.c:428 proc_pid_syscall+0xa6/0x260 fs/proc/base.c:646 proc_single_show+0xf8/0x170 fs/proc/base.c:768 seq_read+0x32f/0x1290 fs/seq_file.c:240 do_loop_readv_writev.part.17+0x141/0x1e0 fs/read_write.c:714 do_loop_readv_writev fs/read_write.c:1105 [inline] compat_do_readv_writev+0x522/0x760 fs/read_write.c:1099 compat_readv+0xe3/0x150 fs/read_write.c:1128 do_compat_readv+0xf4/0x1d0 fs/read_write.c:1148 C_SYSC_readv fs/read_write.c:1160 [inline] compat_SyS_readv+0x26/0x30 fs/read_write.c:1156 do_syscall_32_irqs_on arch/x86/entry/common.c:322 [inline] do_fast_syscall_32+0x2f7/0x890 arch/x86/entry/common.c:384 entry_SYSENTER_compat+0x51/0x60 arch/x86/entry/entry_64_compat.S:124 check_prev_add kernel/locking/lockdep.c:1828 [inline] check_prevs_add kernel/locking/lockdep.c:1938 [inline] validate_chain kernel/locking/lockdep.c:2265 [inline] __lock_acquire+0x2bf9/0x3640 kernel/locking/lockdep.c:3345 lock_acquire+0x12e/0x410 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_nested+0xbb/0x870 kernel/locking/mutex.c:621 seq_read+0xdd/0x1290 fs/seq_file.c:178 proc_reg_read+0xef/0x170 fs/proc/inode.c:202 do_loop_readv_writev.part.17+0x141/0x1e0 fs/read_write.c:714 do_loop_readv_writev fs/read_write.c:880 [inline] do_readv_writev+0x520/0x750 fs/read_write.c:874 vfs_readv+0x84/0xc0 fs/read_write.c:898 kernel_readv fs/splice.c:363 [inline] default_file_splice_read+0x43f/0x7a0 fs/splice.c:435 do_splice_to+0x10a/0x160 fs/splice.c:899 do_splice fs/splice.c:1192 [inline] SYSC_splice fs/splice.c:1416 [inline] SyS_splice+0xf5f/0x1520 fs/splice.c:1399 do_syscall_32_irqs_on arch/x86/entry/common.c:322 [inline] do_fast_syscall_32+0x2f7/0x890 arch/x86/entry/common.c:384 entry_SYSENTER_compat+0x51/0x60 arch/x86/entry/entry_64_compat.S:124 other info that might help us debug this: Chain exists of: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&pipe->mutex/1); lock(&sig->cred_guard_mutex); lock(&pipe->mutex/1); lock(&p->lock); *** DEADLOCK *** 1 lock held by syzkaller689322/3350: #0: (&pipe->mutex/1){+.+.+.}, at: [] pipe_lock_nested fs/pipe.c:66 [inline] #0: (&pipe->mutex/1){+.+.+.}, at: [] pipe_lock+0x56/0x70 fs/pipe.c:74 stack backtrace: CPU: 1 PID: 3350 Comm: syzkaller689322 Not tainted 4.9.71-g2506378 #9 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 ffff8801c90b7258 ffffffff81d922b9 ffffffff85363ea0 ffffffff853972c0 ffffffff8539c210 ffff8801c82850d8 ffff8801c8284800 ffff8801c90b72a0 ffffffff812367e1 ffff8801c82850d8 00000000c82850b0 ffff8801c82850d8 Call Trace: [] __dump_stack lib/dump_stack.c:15 [inline] [] dump_stack+0xc1/0x128 lib/dump_stack.c:51 [] print_circular_bug+0x271/0x310 kernel/locking/lockdep.c:1202 [] check_prev_add kernel/locking/lockdep.c:1828 [inline] [] check_prevs_add kernel/locking/lockdep.c:1938 [inline] [] validate_chain kernel/locking/lockdep.c:2265 [inline] [] __lock_acquire+0x2bf9/0x3640 kernel/locking/lockdep.c:3345 [] lock_acquire+0x12e/0x410 kernel/locking/lockdep.c:3756 [] __mutex_lock_common kernel/locking/mutex.c:521 [inline] [] mutex_lock_nested+0xbb/0x870 kernel/locking/mutex.c:621 [] seq_read+0xdd/0x1290 fs/seq_file.c:178 [] proc_reg_read+0xef/0x170 fs/proc/inode.c:202 [] do_loop_readv_writev.part.17+0x141/0x1e0 fs/read_write.c:714 [] do_loop_readv_writev fs/read_write.c:880 [inline] [] do_readv_writev+0x520/0x750 fs/read_write.c:874 [] vfs_readv+0x84/0xc0 fs/read_write.c:898 [] kernel_readv fs/splice.c:363 [inline] [] default_file_splice_read+0x43f/0x7a0 fs/splice.c:435 [] do_splice_to+0x10a/0x160 fs/splice.c:899 [] do_splice fs/splice.c:1192 [inline] [] SYSC_splice fs/splice.c:1416 [inline] [] SyS_splice+0xf5f/0x1520 fs/splice.c:1399 [] do_syscall_32_irqs_on arch/x86/entry/common.c:322 [inline] [] do_fast_syscall_32+0x2f7/0x890 arch/x86/entry/common.c:384 [] entry_SYSENTER_compat+0x51/0x60 arch/x86/entry/entry_64_compat.S:124