====================================================== [ INFO: possible circular locking dependency detected ] 4.9.128+ #45 Not tainted ------------------------------------------------------- syz-executor888/5205 is trying to acquire lock: (&sig->cred_guard_mutex){+.+.+.}, at: [] do_io_accounting+0x1fb/0x7e0 fs/proc/base.c:2676 but task is already holding lock: (&p->lock){+.+.+.}, at: [] seq_read+0xdd/0x12d0 fs/seq_file.c:178 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_nested+0xc0/0x870 kernel/locking/mutex.c:621 seq_read+0xdd/0x12d0 fs/seq_file.c:178 proc_reg_read+0xfd/0x180 fs/proc/inode.c:203 do_loop_readv_writev.part.1+0xd5/0x280 fs/read_write.c:718 do_loop_readv_writev fs/read_write.c:707 [inline] do_readv_writev+0x56e/0x7b0 fs/read_write.c:873 vfs_readv+0x84/0xc0 fs/read_write.c:897 kernel_readv fs/splice.c:363 [inline] default_file_splice_read+0x44b/0x7e0 fs/splice.c:435 do_splice_to+0x10c/0x170 fs/splice.c:899 do_splice fs/splice.c:1192 [inline] SYSC_splice fs/splice.c:1416 [inline] SyS_splice+0x10d2/0x14d0 fs/splice.c:1399 do_syscall_32_irqs_on arch/x86/entry/common.c:325 [inline] do_fast_syscall_32+0x2f1/0x860 arch/x86/entry/common.c:387 entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_nested+0xc0/0x870 kernel/locking/mutex.c:621 __pipe_lock fs/pipe.c:87 [inline] fifo_open+0x15c/0x9e0 fs/pipe.c:921 do_dentry_open+0x3ef/0xc90 fs/open.c:766 vfs_open+0x11c/0x210 fs/open.c:879 do_last fs/namei.c:3410 [inline] path_openat+0x542/0x2790 fs/namei.c:3534 do_filp_open+0x197/0x270 fs/namei.c:3568 do_open_execat+0x10f/0x640 fs/exec.c:844 do_execveat_common.isra.15+0x687/0x1f80 fs/exec.c:1723 compat_do_execve fs/exec.c:1856 [inline] C_SYSC_execve fs/exec.c:1931 [inline] compat_SyS_execve+0x48/0x60 fs/exec.c:1927 do_syscall_32_irqs_on arch/x86/entry/common.c:325 [inline] do_fast_syscall_32+0x2f1/0x860 arch/x86/entry/common.c:387 entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 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+0x3189/0x4a10 kernel/locking/lockdep.c:3345 lock_acquire+0x130/0x3e0 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 do_io_accounting+0x1fb/0x7e0 fs/proc/base.c:2676 proc_tgid_io_accounting+0x22/0x30 fs/proc/base.c:2725 proc_single_show+0xfd/0x170 fs/proc/base.c:771 traverse+0x363/0x920 fs/seq_file.c:124 seq_read+0xd1b/0x12d0 fs/seq_file.c:195 __vfs_read+0x115/0x560 fs/read_write.c:449 vfs_read+0x124/0x390 fs/read_write.c:472 SYSC_pread64 fs/read_write.c:626 [inline] SyS_pread64+0x145/0x170 fs/read_write.c:613 sys32_pread+0x39/0x50 arch/x86/ia32/sys_ia32.c:179 do_syscall_32_irqs_on arch/x86/entry/common.c:325 [inline] do_fast_syscall_32+0x2f1/0x860 arch/x86/entry/common.c:387 entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137 other info that might help us debug this: Chain exists of: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&p->lock); lock(&pipe->mutex/1); lock(&p->lock); lock(&sig->cred_guard_mutex); *** DEADLOCK *** 1 lock held by syz-executor888/5205: #0: (&p->lock){+.+.+.}, at: [] seq_read+0xdd/0x12d0 fs/seq_file.c:178 stack backtrace: CPU: 0 PID: 5205 Comm: syz-executor888 Not tainted 4.9.128+ #45 ffff8801d3e5f518 ffffffff81af2469 ffffffff83aa8440 ffffffff83aa2ad0 ffffffff83aa1180 ffff8801d3e2b850 ffff8801d3e2af80 ffff8801d3e5f560 ffffffff813e79ed 0000000000000001 00000000d3e2b830 0000000000000001 Call Trace: [] __dump_stack lib/dump_stack.c:15 [inline] [] dump_stack+0xc1/0x128 lib/dump_stack.c:51 [] print_circular_bug.cold.36+0x2f7/0x432 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+0x3189/0x4a10 kernel/locking/lockdep.c:3345 [] lock_acquire+0x130/0x3e0 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 [] do_io_accounting+0x1fb/0x7e0 fs/proc/base.c:2676 [] proc_tgid_io_accounting+0x22/0x30 fs/proc/base.c:2725 [] proc_single_show+0xfd/0x170 fs/proc/base.c:771 [] traverse+0x363/0x920 fs/seq_file.c:124 [] seq_read+0xd1b/0x12d0 fs/seq_file.c:195 [] __vfs_read+0x115/0x560 fs/read_write.c:449 [] vfs_read+0x124/0x390 fs/read_write.c:472 [] SYSC_pread64 fs/read_write.c:626 [inline] [] SyS_pread64+0x145/0x170 fs/read_write.c:613 [] sys32_pread+0x39/0x50 arch/x86/ia32/sys_ia32.c:179 [] do_syscall_32_irqs_on arch/x86/entry/common.c:325 [inline] [] do_fast_syscall_32+0x2f1/0x860 arch/x86/entry/common.c:387 [] entry_SYSENTER_compat+0x90/0xa2 arch/x86/entry/entry_64_compat.S:137