====================================================== WARNING: possible circular locking dependency detected 5.2.0-rc2+ #1 Not tainted ------------------------------------------------------ syz-executor.0/8912 is trying to acquire lock: 0000000020035c1a ((console_sem).lock){-.-.}, at: down_trylock+0x13/0x70 /kernel/locking/semaphore.c:136 but task is already holding lock: 0000000038667bb4 (&rq->lock){-.-.}, at: rq_lock /kernel/sched/sched.h:1168 [inline] 0000000038667bb4 (&rq->lock){-.-.}, at: __schedule+0x1f5/0x15c0 /kernel/sched/core.c:3397 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&rq->lock){-.-.}: __raw_spin_lock /./include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2f/0x40 /kernel/locking/spinlock.c:151 rq_lock /kernel/sched/sched.h:1168 [inline] task_fork_fair+0x6a/0x520 /kernel/sched/fair.c:10208 sched_fork+0x3af/0x900 /kernel/sched/core.c:2347 copy_process.part.0+0x1a25/0x67d0 /kernel/fork.c:2010 copy_process /kernel/fork.c:1808 [inline] _do_fork+0x25d/0xfe0 /kernel/fork.c:2377 kernel_thread+0x34/0x40 /kernel/fork.c:2436 rest_init+0x28/0x37b /init/main.c:417 arch_call_rest_init+0xe/0x1b start_kernel+0x854/0x893 /init/main.c:761 x86_64_start_reservations+0x29/0x2b /arch/x86/kernel/head64.c:470 x86_64_start_kernel+0x77/0x7b /arch/x86/kernel/head64.c:451 secondary_startup_64+0xa4/0xb0 /arch/x86/kernel/head_64.S:243 -> #1 (&p->pi_lock){-.-.}: __raw_spin_lock_irqsave /./include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd /kernel/locking/spinlock.c:159 try_to_wake_up+0x90/0x13f0 /kernel/sched/core.c:2000 wake_up_process+0x10/0x20 /kernel/sched/core.c:2114 __up.isra.0+0x136/0x1a0 /kernel/locking/semaphore.c:262 up+0x9c/0xe0 /kernel/locking/semaphore.c:187 __up_console_sem+0xb7/0x1c0 /kernel/printk/printk.c:244 console_unlock+0x663/0xec0 /kernel/printk/printk.c:2481 vprintk_emit+0x2a0/0x700 /kernel/printk/printk.c:1986 vprintk_default+0x28/0x30 /kernel/printk/printk.c:2013 vprintk_func+0x7e/0x189 /kernel/printk/printk_safe.c:386 printk+0xba/0xed /kernel/printk/printk.c:2046 check_stack_usage /kernel/exit.c:765 [inline] do_exit.cold+0x123/0x264 /kernel/exit.c:927 do_group_exit+0x135/0x370 /kernel/exit.c:981 __do_sys_exit_group /kernel/exit.c:992 [inline] __se_sys_exit_group /kernel/exit.c:990 [inline] __x64_sys_exit_group+0x44/0x50 /kernel/exit.c:990 do_syscall_64+0xfd/0x680 /arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #0 ((console_sem).lock){-.-.}: lock_acquire+0x16f/0x3f0 /kernel/locking/lockdep.c:4303 __raw_spin_lock_irqsave /./include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd /kernel/locking/spinlock.c:159 down_trylock+0x13/0x70 /kernel/locking/semaphore.c:136 __down_trylock_console_sem+0xa8/0x210 /kernel/printk/printk.c:227 console_trylock+0x15/0xa0 /kernel/printk/printk.c:2297 console_trylock_spinning /kernel/printk/printk.c:1706 [inline] vprintk_emit+0x283/0x700 /kernel/printk/printk.c:1985 vprintk_default+0x28/0x30 /kernel/printk/printk.c:2013 vprintk_func+0x7e/0x189 /kernel/printk/printk_safe.c:386 printk+0xba/0xed /kernel/printk/printk.c:2046 mmgrab /./include/linux/sched/mm.h:38 [inline] context_switch /kernel/sched/core.c:2803 [inline] __schedule+0x15a9/0x15c0 /kernel/sched/core.c:3445 preempt_schedule_common+0x4f/0xe0 /kernel/sched/core.c:3590 preempt_schedule+0x4b/0x60 /kernel/sched/core.c:3616 ___preempt_schedule+0x16/0x18 vprintk_emit+0x2cd/0x700 /kernel/printk/printk.c:1987 vprintk_default+0x28/0x30 /kernel/printk/printk.c:2013 vprintk_func+0x7e/0x189 /kernel/printk/printk_safe.c:386 printk+0xba/0xed /kernel/printk/printk.c:2046 vhost_dev_set_owner+0x15a/0xa30 /drivers/vhost/vhost.c:713 vhost_net_set_owner /drivers/vhost/net.c:1693 [inline] vhost_net_ioctl+0xca9/0x1900 /drivers/vhost/net.c:1742 vfs_ioctl /fs/ioctl.c:46 [inline] file_ioctl /fs/ioctl.c:509 [inline] do_vfs_ioctl+0xd5f/0x1380 /fs/ioctl.c:696 ksys_ioctl+0xab/0xd0 /fs/ioctl.c:713 __do_sys_ioctl /fs/ioctl.c:720 [inline] __se_sys_ioctl /fs/ioctl.c:718 [inline] __x64_sys_ioctl+0x73/0xb0 /fs/ioctl.c:718 do_syscall_64+0xfd/0x680 /arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Chain exists of: (console_sem).lock --> &p->pi_lock --> &rq->lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&rq->lock); lock(&p->pi_lock); lock(&rq->lock); lock((console_sem).lock); *** DEADLOCK *** 2 locks held by syz-executor.0/8912: #0: 000000006817fb74 (&dev->mutex#4){+.+.}, at: vhost_net_set_owner /drivers/vhost/net.c:1685 [inline] #0: 000000006817fb74 (&dev->mutex#4){+.+.}, at: vhost_net_ioctl+0x469/0x1900 /drivers/vhost/net.c:1742 #1: 0000000038667bb4 (&rq->lock){-.-.}, at: rq_lock /kernel/sched/sched.h:1168 [inline] #1: 0000000038667bb4 (&rq->lock){-.-.}, at: __schedule+0x1f5/0x15c0 /kernel/sched/core.c:3397 stack backtrace: CPU: 0 PID: 8912 Comm: syz-executor.0 Not tainted 5.2.0-rc2+ #1 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack /lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 /lib/dump_stack.c:113 print_circular_bug.cold+0x1cc/0x28f /kernel/locking/lockdep.c:1565 check_prev_add /kernel/locking/lockdep.c:2310 [inline] check_prevs_add /kernel/locking/lockdep.c:2418 [inline] validate_chain /kernel/locking/lockdep.c:2800 [inline] __lock_acquire+0x3755/0x5490 /kernel/locking/lockdep.c:3793 lock_acquire+0x16f/0x3f0 /kernel/locking/lockdep.c:4303 __raw_spin_lock_irqsave /./include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x95/0xcd /kernel/locking/spinlock.c:159 down_trylock+0x13/0x70 /kernel/locking/semaphore.c:136 __down_trylock_console_sem+0xa8/0x210 /kernel/printk/printk.c:227 console_trylock+0x15/0xa0 /kernel/printk/printk.c:2297 console_trylock_spinning /kernel/printk/printk.c:1706 [inline] vprintk_emit+0x283/0x700 /kernel/printk/printk.c:1985 vprintk_default+0x28/0x30 /kernel/printk/printk.c:2013 vprintk_func+0x7e/0x189 /kernel/printk/printk_safe.c:386 printk+0xba/0xed /kernel/printk/printk.c:2046 mmgrab /./include/linux/sched/mm.h:38 [inline] context_switch /kernel/sched/core.c:2803 [inline] __schedule+0x15a9/0x15c0 /kernel/sched/core.c:3445 preempt_schedule_common+0x4f/0xe0 /kernel/sched/core.c:3590 preempt_schedule+0x4b/0x60 /kernel/sched/core.c:3616 ___preempt_schedule+0x16/0x18 vprintk_emit+0x2cd/0x700 /kernel/printk/printk.c:1987 vprintk_default+0x28/0x30 /kernel/printk/printk.c:2013 vprintk_func+0x7e/0x189 /kernel/printk/printk_safe.c:386 printk+0xba/0xed /kernel/printk/printk.c:2046 vhost_dev_set_owner+0x15a/0xa30 /drivers/vhost/vhost.c:713 vhost_net_set_owner /drivers/vhost/net.c:1693 [inline] vhost_net_ioctl+0xca9/0x1900 /drivers/vhost/net.c:1742 vfs_ioctl /fs/ioctl.c:46 [inline] file_ioctl /fs/ioctl.c:509 [inline] do_vfs_ioctl+0xd5f/0x1380 /fs/ioctl.c:696 ksys_ioctl+0xab/0xd0 /fs/ioctl.c:713 __do_sys_ioctl /fs/ioctl.c:720 [inline] __se_sys_ioctl /fs/ioctl.c:718 [inline] __x64_sys_ioctl+0x73/0xb0 /fs/ioctl.c:718 do_syscall_64+0xfd/0x680 /arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x459819 Code: fd b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007f29622e6c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000459819 RDX: 0000000000000000 RSI: 000000000000af01 RDI: 0000000000000003 RBP: 000000000075bf20 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f29622e76d4 R13: 00000000004c46a9 R14: 00000000004d8758 R15: 00000000ffffffff