------------[ cut here ]------------ ====================================================== WARNING: possible circular locking dependency detected syzkaller #0 Not tainted ------------------------------------------------------ syz.5.231/6599 is trying to acquire lock: ffffffff8eaf3f60 (console_owner){....}-{0:0}, at: console_lock_spinning_enable+0x61/0x80 kernel/printk/printk.c:1902 but task is already holding lock: ffff888027815510 (&p->pi_lock){-.-.}-{2:2}, at: task_call_func+0x8b/0x380 kernel/sched/core.c:4476 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #3 (&p->pi_lock){-.-.}-{2:2}: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1b9/0x370 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:132 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:166 class_raw_spinlock_irqsave_constructor include/linux/spinlock.h:571 [inline] try_to_wake_up+0xbd/0x1c90 kernel/sched/core.c:4292 __wake_up_common+0x135/0x1f0 kernel/sched/wait.c:108 __wake_up_common_lock kernel/sched/wait.c:125 [inline] __wake_up+0x31/0x60 kernel/sched/wait.c:146 tty_port_default_wakeup+0x47/0x60 drivers/tty/tty_port.c:67 serial8250_tx_chars+0x68f/0x860 drivers/tty/serial/8250/8250_port.c:1723 serial8250_handle_irq_locked+0x770/0x9a0 drivers/tty/serial/8250/8250_port.c:1837 serial8250_handle_irq.part.0+0xb4/0x530 drivers/tty/serial/8250/8250_port.c:1853 serial8250_handle_irq drivers/tty/serial/8250/8250_port.c:1849 [inline] serial8250_default_handle_irq+0xc2/0x280 drivers/tty/serial/8250/8250_port.c:1867 serial8250_interrupt+0xf8/0x1b0 drivers/tty/serial/8250/8250_core.c:86 __handle_irq_event_percpu+0x232/0x880 kernel/irq/handle.c:209 handle_irq_event_percpu kernel/irq/handle.c:246 [inline] handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:263 handle_edge_irq+0x34c/0x950 kernel/irq/chip.c:859 generic_handle_irq_desc include/linux/irqdesc.h:188 [inline] handle_irq arch/x86/kernel/irq.c:209 [inline] call_irq_handler arch/x86/kernel/irq.c:265 [inline] __common_interrupt+0xd8/0x2f0 arch/x86/kernel/irq.c:280 common_interrupt+0xb9/0xe0 arch/x86/kernel/irq.c:273 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:665 native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline] pv_native_safe_halt+0xf/0x20 arch/x86/kernel/paravirt.c:63 arch_safe_halt arch/x86/include/asm/paravirt.h:62 [inline] default_idle+0x9/0x10 arch/x86/kernel/process.c:768 default_idle_call+0x6c/0xb0 kernel/sched/idle.c:122 cpuidle_idle_call kernel/sched/idle.c:199 [inline] do_idle+0x3a7/0x5b0 kernel/sched/idle.c:355 cpu_startup_entry+0x4f/0x60 kernel/sched/idle.c:454 start_secondary+0x21d/0x2d0 arch/x86/kernel/smpboot.c:312 common_startup_64+0x13e/0x158 -> #2 (&tty->write_wait){-...}-{3:3}: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1b9/0x370 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:132 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:166 __wake_up_common_lock kernel/sched/wait.c:124 [inline] __wake_up+0x1c/0x60 kernel/sched/wait.c:146 tty_port_default_wakeup+0x47/0x60 drivers/tty/tty_port.c:67 serial8250_tx_chars+0x68f/0x860 drivers/tty/serial/8250/8250_port.c:1723 serial8250_handle_irq_locked+0x770/0x9a0 drivers/tty/serial/8250/8250_port.c:1837 serial8250_handle_irq.part.0+0xb4/0x530 drivers/tty/serial/8250/8250_port.c:1853 serial8250_handle_irq drivers/tty/serial/8250/8250_port.c:1849 [inline] serial8250_default_handle_irq+0xc2/0x280 drivers/tty/serial/8250/8250_port.c:1867 serial8250_interrupt+0xf8/0x1b0 drivers/tty/serial/8250/8250_core.c:86 __handle_irq_event_percpu+0x232/0x880 kernel/irq/handle.c:209 handle_irq_event_percpu kernel/irq/handle.c:246 [inline] handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:263 handle_edge_irq+0x34c/0x950 kernel/irq/chip.c:859 generic_handle_irq_desc include/linux/irqdesc.h:188 [inline] handle_irq arch/x86/kernel/irq.c:209 [inline] call_irq_handler arch/x86/kernel/irq.c:265 [inline] __common_interrupt+0xd8/0x2f0 arch/x86/kernel/irq.c:280 common_interrupt+0xb9/0xe0 arch/x86/kernel/irq.c:273 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:665 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:178 [inline] _raw_spin_unlock_irqrestore+0x31/0x80 kernel/locking/spinlock.c:198 spin_unlock_irqrestore include/linux/spinlock.h:408 [inline] uart_port_unlock_irqrestore include/linux/serial_core.h:790 [inline] uart_port_unlock_deref drivers/tty/serial/serial_core.c:91 [inline] uart_port_unlock_deref drivers/tty/serial/serial_core.c:88 [inline] uart_write+0x29d/0xb20 drivers/tty/serial/serial_core.c:630 process_output_block drivers/tty/n_tty.c:557 [inline] n_tty_write+0x431/0x1160 drivers/tty/n_tty.c:2366 iterate_tty_write drivers/tty/tty_io.c:1006 [inline] file_tty_write.isra.0+0x4d2/0x890 drivers/tty/tty_io.c:1081 tty_write drivers/tty/tty_io.c:1102 [inline] redirected_tty_write drivers/tty/tty_io.c:1125 [inline] redirected_tty_write+0xd4/0x120 drivers/tty/tty_io.c:1105 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x6ac/0x1050 fs/read_write.c:687 ksys_write+0x12a/0x250 fs/read_write.c:739 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x115/0x840 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #1 (&port_lock_key){-...}-{3:3}: lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1b9/0x370 kernel/locking/lockdep.c:5825 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:132 [inline] _raw_spin_lock_irqsave+0x3a/0x60 kernel/locking/spinlock.c:166 uart_port_lock_irqsave include/linux/serial_core.h:719 [inline] serial8250_console_write+0x177/0x1a50 drivers/tty/serial/8250/8250_port.c:3344 console_emit_next_record kernel/printk/printk.c:3183 [inline] console_flush_one_record+0x790/0xe50 kernel/printk/printk.c:3269 console_flush_all kernel/printk/printk.c:3343 [inline] __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0x103/0x260 kernel/printk/printk.c:3413 vprintk_emit+0x407/0x6b0 kernel/printk/printk.c:2479 _printk+0xcf/0x110 kernel/printk/printk.c:2504 register_console.cold+0xc0/0x248 kernel/printk/printk.c:4208 univ8250_console_init+0x6f/0x80 drivers/tty/serial/8250/8250_core.c:515 console_init+0x3d5/0x5b0 kernel/printk/printk.c:4407 start_kernel+0x314/0x490 init/main.c:1112 x86_64_start_reservations+0x24/0x30 arch/x86/kernel/head64.c:310 x86_64_start_kernel+0x12b/0x130 arch/x86/kernel/head64.c:291 common_startup_64+0x13e/0x158 -> #0 (console_owner){....}-{0:0}: check_prev_add+0xeb/0xe60 kernel/locking/lockdep.c:3165 check_prevs_add kernel/locking/lockdep.c:3284 [inline] validate_chain kernel/locking/lockdep.c:3908 [inline] __lock_acquire+0x136c/0x1a40 kernel/locking/lockdep.c:5237 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1b9/0x370 kernel/locking/lockdep.c:5825 console_lock_spinning_enable+0x72/0x80 kernel/printk/printk.c:1902 console_emit_next_record kernel/printk/printk.c:3177 [inline] console_flush_one_record+0x739/0xe50 kernel/printk/printk.c:3269 console_flush_all kernel/printk/printk.c:3343 [inline] __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0x103/0x260 kernel/printk/printk.c:3413 vprintk_emit+0x407/0x6b0 kernel/printk/printk.c:2479 _printk+0xcf/0x110 kernel/printk/printk.c:2504 __report_bug.cold+0x34/0x141 lib/bug.c:248 report_bug+0xb2/0x220 lib/bug.c:286 handle_bug+0x16a/0x2a0 arch/x86/kernel/traps.c:436 exc_invalid_op+0x17/0x50 arch/x86/kernel/traps.c:490 asm_exc_invalid_op+0x1a/0x20 arch/x86/include/asm/idtentry.h:593 __set_task_frozen+0x211/0x2e0 kernel/freezer.c:139 task_call_func+0x169/0x380 kernel/sched/core.c:4495 __freeze_task kernel/freezer.c:150 [inline] freeze_task+0x151/0x270 kernel/freezer.c:169 try_to_freeze_tasks+0x243/0x680 kernel/power/process.c:54 freeze_processes+0xf2/0x1f0 kernel/power/process.c:137 hibernate.cold+0xf0/0x6a2 kernel/power/hibernate.c:801 state_store+0x1ff/0x240 kernel/power/main.c:821 kobj_attr_store+0x58/0x80 lib/kobject.c:840 sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145 kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x6ac/0x1050 fs/read_write.c:687 ksys_write+0x12a/0x250 fs/read_write.c:739 do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] __do_fast_syscall_32+0xe7/0x970 arch/x86/entry/syscall_32.c:307 do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:332 entry_SYSENTER_compat_after_hwframe+0x84/0x8e other info that might help us debug this: Chain exists of: console_owner --> &tty->write_wait --> &p->pi_lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&p->pi_lock); lock(&tty->write_wait); lock(&p->pi_lock); lock(console_owner); *** DEADLOCK *** 10 locks held by syz.5.231/6599: #0: ffff88804b2010b0 (&f->f_pos_lock){+.+.}-{4:4}, at: fdget_pos+0x2aa/0x380 fs/file.c:1259 #1: ffff88806f512450 (sb_writers#7){.+.+}-{0:0}, at: ksys_write+0x12a/0x250 fs/read_write.c:739 #2: ffff88805d157480 (&of->mutex){+.+.}-{4:4}, at: kernfs_fop_write_iter+0x2c2/0x5f0 fs/kernfs/file.c:336 #3: ffff88801d3aa0f8 (kn->active#65){.+.+}-{0:0}, at: kernfs_get_active_of fs/kernfs/file.c:73 [inline] #3: ffff88801d3aa0f8 (kn->active#65){.+.+}-{0:0}, at: kernfs_fop_write_iter+0x332/0x5f0 fs/kernfs/file.c:337 #4: ffffffff8ea9fa80 (system_transition_mutex){+.+.}-{4:4}, at: lock_system_sleep+0x56/0x70 kernel/power/main.c:71 #5: ffffffff8e80a098 (tasklist_lock){.+.+}-{3:3}, at: try_to_freeze_tasks+0x148/0x680 kernel/power/process.c:52 #6: ffffffff8ec17ff8 (freezer_lock){....}-{3:3}, at: freeze_task+0x71/0x270 kernel/freezer.c:168 #7: ffff888027815510 (&p->pi_lock){-.-.}-{2:2}, at: task_call_func+0x8b/0x380 kernel/sched/core.c:4476 #8: ffffffff8ebd43a0 (console_lock){+.+.}-{0:0}, at: _printk+0xcf/0x110 kernel/printk/printk.c:2504 #9: ffffffff8ebd4418 (console_srcu){....}-{0:0}, at: rcu_try_lock_acquire include/linux/rcupdate.h:305 [inline] #9: ffffffff8ebd4418 (console_srcu){....}-{0:0}, at: srcu_read_lock_nmisafe include/linux/srcu.h:428 [inline] #9: ffffffff8ebd4418 (console_srcu){....}-{0:0}, at: console_srcu_read_lock kernel/printk/printk.c:291 [inline] #9: ffffffff8ebd4418 (console_srcu){....}-{0:0}, at: console_flush_one_record+0xfd/0xe50 kernel/printk/printk.c:3246 stack backtrace: CPU: 2 UID: 0 PID: 6599 Comm: syz.5.231 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 print_circular_bug.cold+0x178/0x1c7 kernel/locking/lockdep.c:2043 check_noncircular+0x146/0x160 kernel/locking/lockdep.c:2175 check_prev_add+0xeb/0xe60 kernel/locking/lockdep.c:3165 check_prevs_add kernel/locking/lockdep.c:3284 [inline] validate_chain kernel/locking/lockdep.c:3908 [inline] __lock_acquire+0x136c/0x1a40 kernel/locking/lockdep.c:5237 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1b9/0x370 kernel/locking/lockdep.c:5825 console_lock_spinning_enable+0x72/0x80 kernel/printk/printk.c:1902 console_emit_next_record kernel/printk/printk.c:3177 [inline] console_flush_one_record+0x739/0xe50 kernel/printk/printk.c:3269 console_flush_all kernel/printk/printk.c:3343 [inline] __console_flush_and_unlock kernel/printk/printk.c:3373 [inline] console_unlock+0x103/0x260 kernel/printk/printk.c:3413 vprintk_emit+0x407/0x6b0 kernel/printk/printk.c:2479 _printk+0xcf/0x110 kernel/printk/printk.c:2504 __report_bug.cold+0x34/0x141 lib/bug.c:248 report_bug+0xb2/0x220 lib/bug.c:286 handle_bug+0x16a/0x2a0 arch/x86/kernel/traps.c:436 exc_invalid_op+0x17/0x50 arch/x86/kernel/traps.c:490 asm_exc_invalid_op+0x1a/0x20 arch/x86/include/asm/idtentry.h:593 RIP: 0010:__set_task_frozen+0x211/0x2e0 kernel/freezer.c:139 Code: 0f b6 04 02 84 c0 74 09 3c 03 7f 05 e8 b8 7c 85 00 8b ab 98 0b 00 00 31 ff 89 ee e8 09 e7 15 00 85 ed 74 09 e8 90 ec 15 00 90 <0f> 0b 90 e8 87 ec 15 00 4c 89 e2 48 b8 00 00 00 00 00 fc ff df 48 RSP: 0018:ffffc9000301f978 EFLAGS: 00010046 RAX: 0000000000080000 RBX: ffff888027814a80 RCX: ffffc90033499000 RDX: 0000000000080000 RSI: ffffffff81f3c470 RDI: ffff888029020000 RBP: 0000000000000003 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000000000003 R11: 0000000000000000 R12: ffff888027814a98 R13: 0000000000000002 R14: dffffc0000000000 R15: ffff8880278154f8 task_call_func+0x169/0x380 kernel/sched/core.c:4495 __freeze_task kernel/freezer.c:150 [inline] freeze_task+0x151/0x270 kernel/freezer.c:169 try_to_freeze_tasks+0x243/0x680 kernel/power/process.c:54 freeze_processes+0xf2/0x1f0 kernel/power/process.c:137 hibernate.cold+0xf0/0x6a2 kernel/power/hibernate.c:801 state_store+0x1ff/0x240 kernel/power/main.c:821 kobj_attr_store+0x58/0x80 lib/kobject.c:840 sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145 kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x6ac/0x1050 fs/read_write.c:687 ksys_write+0x12a/0x250 fs/read_write.c:739 do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] __do_fast_syscall_32+0xe7/0x970 arch/x86/entry/syscall_32.c:307 do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:332 entry_SYSENTER_compat_after_hwframe+0x84/0x8e RIP: 0023:0xf70cefec Code: Unable to access opcode bytes at 0xf70cefc2. RSP: 002b:00000000f54bd50c EFLAGS: 00000292 ORIG_RAX: 0000000000000004 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000080000140 RDX: 0000000000000005 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000292 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 debug_locks && p->lockdep_depth WARNING: kernel/freezer.c:139 at __set_task_frozen+0x211/0x2e0 kernel/freezer.c:139, CPU#2: syz.5.231/6599 Modules linked in: CPU: 2 UID: 0 PID: 6599 Comm: syz.5.231 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:__set_task_frozen+0x211/0x2e0 kernel/freezer.c:139 Code: 0f b6 04 02 84 c0 74 09 3c 03 7f 05 e8 b8 7c 85 00 8b ab 98 0b 00 00 31 ff 89 ee e8 09 e7 15 00 85 ed 74 09 e8 90 ec 15 00 90 <0f> 0b 90 e8 87 ec 15 00 4c 89 e2 48 b8 00 00 00 00 00 fc ff df 48 RSP: 0018:ffffc9000301f978 EFLAGS: 00010046 RAX: 0000000000080000 RBX: ffff888027814a80 RCX: ffffc90033499000 RDX: 0000000000080000 RSI: ffffffff81f3c470 RDI: ffff888029020000 RBP: 0000000000000003 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000000000003 R11: 0000000000000000 R12: ffff888027814a98 R13: 0000000000000002 R14: dffffc0000000000 R15: ffff8880278154f8 FS: 0000000000000000(0000) GS:ffff888096ddf000(0063) knlGS:00000000f54bdb40 CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 CR2: 00000000f70cf000 CR3: 0000000050a46000 CR4: 0000000000352ef0 Call Trace: task_call_func+0x169/0x380 kernel/sched/core.c:4495 __freeze_task kernel/freezer.c:150 [inline] freeze_task+0x151/0x270 kernel/freezer.c:169 try_to_freeze_tasks+0x243/0x680 kernel/power/process.c:54 freeze_processes+0xf2/0x1f0 kernel/power/process.c:137 hibernate.cold+0xf0/0x6a2 kernel/power/hibernate.c:801 state_store+0x1ff/0x240 kernel/power/main.c:821 kobj_attr_store+0x58/0x80 lib/kobject.c:840 sysfs_kf_write+0xf2/0x150 fs/sysfs/file.c:145 kernfs_fop_write_iter+0x3e0/0x5f0 fs/kernfs/file.c:345 new_sync_write fs/read_write.c:595 [inline] vfs_write+0x6ac/0x1050 fs/read_write.c:687 ksys_write+0x12a/0x250 fs/read_write.c:739 do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] __do_fast_syscall_32+0xe7/0x970 arch/x86/entry/syscall_32.c:307 do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:332 entry_SYSENTER_compat_after_hwframe+0x84/0x8e RIP: 0023:0xf70cefec Code: Unable to access opcode bytes at 0xf70cefc2. RSP: 002b:00000000f54bd50c EFLAGS: 00000292 ORIG_RAX: 0000000000000004 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000080000140 RDX: 0000000000000005 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000292 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000