------------[ cut here ]------------ ====================================================== WARNING: possible circular locking dependency detected 6.0.0-next-20221005 #1 Not tainted ------------------------------------------------------ syz-executor.2/3981 is trying to acquire lock: ffffffff853faaf8 ((console_sem).lock){....}-{2:2}, at: down_trylock+0xe/0x70 but task is already holding lock: ffff88803f38c020 (&ctx->lock){....}-{2:2}, at: __perf_event_task_sched_out+0x53b/0x18d0 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (&ctx->lock){....}-{2:2}: _raw_spin_lock+0x2a/0x40 __perf_event_task_sched_out+0x53b/0x18d0 __schedule+0xedd/0x2470 preempt_schedule_common+0x45/0xc0 __cond_resched+0x17/0x30 __mutex_lock+0xa3/0x14d0 __do_sys_perf_event_open+0x1eec/0x32c0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd -> #2 (&rq->__lock){-.-.}-{2:2}: _raw_spin_lock_nested+0x30/0x40 raw_spin_rq_lock_nested+0x1e/0x30 task_fork_fair+0x63/0x4d0 sched_cgroup_fork+0x3d0/0x540 copy_process+0x4183/0x6e20 kernel_clone+0xe7/0x890 user_mode_thread+0xad/0xf0 rest_init+0x24/0x250 arch_call_rest_init+0xf/0x14 start_kernel+0x4c6/0x4eb secondary_startup_64_no_verify+0xe0/0xeb -> #1 (&p->pi_lock){-.-.}-{2:2}: _raw_spin_lock_irqsave+0x39/0x60 try_to_wake_up+0xab/0x1930 up+0x75/0xb0 __up_console_sem+0x6e/0x80 console_unlock+0x46a/0x590 vt_ioctl+0x2822/0x2ca0 tty_ioctl+0x785/0x16b0 __x64_sys_ioctl+0x19a/0x210 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd -> #0 ((console_sem).lock){....}-{2:2}: __lock_acquire+0x2a02/0x5e70 lock_acquire+0x1a2/0x530 _raw_spin_lock_irqsave+0x39/0x60 down_trylock+0xe/0x70 __down_trylock_console_sem+0x3b/0xd0 vprintk_emit+0x16b/0x560 vprintk+0x84/0xa0 _printk+0xba/0xf1 report_bug.cold+0x72/0xab handle_bug+0x3c/0x70 exc_invalid_op+0x14/0x50 asm_exc_invalid_op+0x16/0x20 group_sched_out.part.0+0x2c7/0x460 ctx_sched_out+0x8f1/0xc10 __perf_event_task_sched_out+0x6d0/0x18d0 __schedule+0xedd/0x2470 preempt_schedule_common+0x45/0xc0 __cond_resched+0x17/0x30 __mutex_lock+0xa3/0x14d0 __do_sys_perf_event_open+0x1eec/0x32c0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd other info that might help us debug this: Chain exists of: (console_sem).lock --> &rq->__lock --> &ctx->lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&ctx->lock); lock(&rq->__lock); lock(&ctx->lock); lock((console_sem).lock); *** DEADLOCK *** 2 locks held by syz-executor.2/3981: #0: ffff88806ce37e98 (&rq->__lock){-.-.}-{2:2}, at: __schedule+0x1cf/0x2470 #1: ffff88803f38c020 (&ctx->lock){....}-{2:2}, at: __perf_event_task_sched_out+0x53b/0x18d0 stack backtrace: CPU: 0 PID: 3981 Comm: syz-executor.2 Not tainted 6.0.0-next-20221005 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 Call Trace: dump_stack_lvl+0x8b/0xb3 check_noncircular+0x263/0x2e0 __lock_acquire+0x2a02/0x5e70 lock_acquire+0x1a2/0x530 _raw_spin_lock_irqsave+0x39/0x60 down_trylock+0xe/0x70 __down_trylock_console_sem+0x3b/0xd0 vprintk_emit+0x16b/0x560 vprintk+0x84/0xa0 _printk+0xba/0xf1 report_bug.cold+0x72/0xab handle_bug+0x3c/0x70 exc_invalid_op+0x14/0x50 asm_exc_invalid_op+0x16/0x20 RIP: 0010:group_sched_out.part.0+0x2c7/0x460 Code: 5e 41 5f e9 8b ae ef ff e8 86 ae ef ff 65 8b 1d 2b 08 ac 7e 31 ff 89 de e8 26 ab ef ff 85 db 0f 84 8a 00 00 00 e8 69 ae ef ff <0f> 0b e9 a5 fe ff ff e8 5d ae ef ff 48 8d 7d 10 48 b8 00 00 00 00 RSP: 0018:ffff888017e3f978 EFLAGS: 00010006 RAX: 0000000040000002 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffff88800de21ac0 RSI: ffffffff81566da7 RDI: 0000000000000005 RBP: ffff888008660000 R08: 0000000000000005 R09: 0000000000000001 R10: 0000000000000000 R11: ffffffff865b601b R12: ffff88803f38c000 R13: ffff88806ce3d2c0 R14: ffffffff8547d040 R15: 0000000000000002 ctx_sched_out+0x8f1/0xc10 __perf_event_task_sched_out+0x6d0/0x18d0 __schedule+0xedd/0x2470 preempt_schedule_common+0x45/0xc0 __cond_resched+0x17/0x30 __mutex_lock+0xa3/0x14d0 __do_sys_perf_event_open+0x1eec/0x32c0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7f3d17b91b19 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f3d15107188 EFLAGS: 00000246 ORIG_RAX: 000000000000012a RAX: ffffffffffffffda RBX: 00007f3d17ca4f60 RCX: 00007f3d17b91b19 RDX: ffffffffffffffff RSI: 0000000000000000 RDI: 0000000020000080 RBP: 00007f3d17bebf6d R08: 0000000000000000 R09: 0000000000000000 R10: ffffffffffffffff R11: 0000000000000246 R12: 0000000000000000 R13: 00007fff50134a6f R14: 00007f3d15107300 R15: 0000000000022000 WARNING: CPU: 0 PID: 3981 at kernel/events/core.c:2309 group_sched_out.part.0+0x2c7/0x460 Modules linked in: CPU: 0 PID: 3981 Comm: syz-executor.2 Not tainted 6.0.0-next-20221005 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:group_sched_out.part.0+0x2c7/0x460 Code: 5e 41 5f e9 8b ae ef ff e8 86 ae ef ff 65 8b 1d 2b 08 ac 7e 31 ff 89 de e8 26 ab ef ff 85 db 0f 84 8a 00 00 00 e8 69 ae ef ff <0f> 0b e9 a5 fe ff ff e8 5d ae ef ff 48 8d 7d 10 48 b8 00 00 00 00 RSP: 0018:ffff888017e3f978 EFLAGS: 00010006 RAX: 0000000040000002 RBX: 0000000000000000 RCX: 0000000000000000 RDX: ffff88800de21ac0 RSI: ffffffff81566da7 RDI: 0000000000000005 RBP: ffff888008660000 R08: 0000000000000005 R09: 0000000000000001 R10: 0000000000000000 R11: ffffffff865b601b R12: ffff88803f38c000 R13: ffff88806ce3d2c0 R14: ffffffff8547d040 R15: 0000000000000002 FS: 00007f3d15107700(0000) GS:ffff88806ce00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f3cb4c00f64 CR3: 000000001e0c6000 CR4: 0000000000350ef0 Call Trace: ctx_sched_out+0x8f1/0xc10 __perf_event_task_sched_out+0x6d0/0x18d0 __schedule+0xedd/0x2470 preempt_schedule_common+0x45/0xc0 __cond_resched+0x17/0x30 __mutex_lock+0xa3/0x14d0 __do_sys_perf_event_open+0x1eec/0x32c0 do_syscall_64+0x3b/0x90 entry_SYSCALL_64_after_hwframe+0x63/0xcd RIP: 0033:0x7f3d17b91b19 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f3d15107188 EFLAGS: 00000246 ORIG_RAX: 000000000000012a RAX: ffffffffffffffda RBX: 00007f3d17ca4f60 RCX: 00007f3d17b91b19 RDX: ffffffffffffffff RSI: 0000000000000000 RDI: 0000000020000080 RBP: 00007f3d17bebf6d R08: 0000000000000000 R09: 0000000000000000 R10: ffffffffffffffff R11: 0000000000000246 R12: 0000000000000000 R13: 00007fff50134a6f R14: 00007f3d15107300 R15: 0000000000022000 irq event stamp: 658 hardirqs last enabled at (657): [] _raw_spin_unlock_irqrestore+0x28/0x60 hardirqs last disabled at (658): [] __schedule+0x1225/0x2470 softirqs last enabled at (442): [] __irq_exit_rcu+0x11b/0x180 softirqs last disabled at (423): [] __irq_exit_rcu+0x11b/0x180 ---[ end trace 0000000000000000 ]--- loop5: detected capacity change from 0 to 4728 ISO 9660 Extensions: Microsoft Joliet Level 3 ISOFS: changing to secondary root loop5: detected capacity change from 0 to 4728 ISO 9660 Extensions: Microsoft Joliet Level 3 ISOFS: changing to secondary root loop5: detected capacity change from 0 to 4728 ISO 9660 Extensions: Microsoft Joliet Level 3 ISOFS: changing to secondary root hrtimer: interrupt took 29425 ns loop5: detected capacity change from 0 to 4728 ISO 9660 Extensions: Microsoft Joliet Level 3 ISOFS: changing to secondary root loop7: detected capacity change from 0 to 40 syz-executor.7: attempt to access beyond end of device loop7: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop7, logical block 10, lost async page write syz-executor.7: attempt to access beyond end of device loop7: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop7, logical block 10, lost async page write Can not set IPV6_FL_F_REFLECT if flowlabel_consistency sysctl is enable loop7: detected capacity change from 0 to 40 loop3: detected capacity change from 0 to 40 syz-executor.3: attempt to access beyond end of device loop3: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop3, logical block 10, lost async page write syz-executor.7: attempt to access beyond end of device loop7: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop7, logical block 10, lost async page write loop5: detected capacity change from 0 to 40 loop3: detected capacity change from 0 to 40 loop7: detected capacity change from 0 to 40 UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy misc raw-gadget: fail, usb_gadget_register_driver returned -16 syz-executor.5: attempt to access beyond end of device loop5: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop5, logical block 10, lost async page write No source specified No source specified loop5: detected capacity change from 0 to 40 syz-executor.5: attempt to access beyond end of device loop5: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop5, logical block 10, lost async page write syz-executor.7: attempt to access beyond end of device loop7: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop7, logical block 10, lost async page write loop7: detected capacity change from 0 to 40 syz-executor.3: attempt to access beyond end of device loop3: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop3, logical block 10, lost async page write syz-executor.7: attempt to access beyond end of device loop7: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop7, logical block 10, lost async page write loop3: detected capacity change from 0 to 40 loop5: detected capacity change from 0 to 40 syz-executor.3: attempt to access beyond end of device loop3: rw=2049, sector=40, nr_sectors = 4 limit=40 Buffer I/O error on dev loop3, logical block 10, lost async page write audit: type=1400 audit(1664971264.465:9): avc: denied { write } for pid=4278 comm="syz-executor.7" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=perf_event permissive=1 random: crng reseeded on system resumption Restarting kernel threads ... done. random: crng reseeded on system resumption random: crng reseeded on system resumption Restarting kernel threads ... done. random: crng reseeded on system resumption Restarting kernel threads ... done. random: crng reseeded on system resumption Restarting kernel threads ... done. random: crng reseeded on system resumption Restarting kernel threads ... done. random: crng reseeded on system resumption Restarting kernel threads ... done. process 'syz-executor.7' launched './file1' with NULL argv: empty string added random: crng reseeded on system resumption Restarting kernel threads ... done. loop0: detected capacity change from 0 to 512 EXT4-fs (loop0): mounted filesystem without journal. Quota mode: writeback. ext4 filesystem being mounted at /syzkaller-testdir926651467/syzkaller.vseu0R/37/file0 supports timestamps until 2038 (0x7fffffff) EXT4-fs (loop0): unmounting filesystem. loop0: detected capacity change from 0 to 512 EXT4-fs (loop0): mounted filesystem without journal. Quota mode: writeback. ext4 filesystem being mounted at /syzkaller-testdir926651467/syzkaller.vseu0R/38/file0 supports timestamps until 2038 (0x7fffffff) EXT4-fs (loop0): unmounting filesystem. loop0: detected capacity change from 0 to 512 EXT4-fs (loop0): mounted filesystem without journal. Quota mode: writeback. ext4 filesystem being mounted at /syzkaller-testdir926651467/syzkaller.vseu0R/39/file0 supports timestamps until 2038 (0x7fffffff) EXT4-fs (loop0): unmounting filesystem. capability: warning: `syz-executor.3' uses deprecated v2 capabilities in a way that may be insecure Restarting kernel threads ... done. Restarting kernel threads ... done. Restarting kernel threads ... done. Restarting kernel threads ... done. Invalid option length (422) for dns_resolver key Invalid option length (422) for dns_resolver key Invalid option length (422) for dns_resolver key Invalid option length (422) for dns_resolver key