------------[ cut here ]------------ ====================================================== WARNING: possible circular locking dependency detected 6.10.0-rc2-syzkaller-g8867bbd4a056 #0 Tainted: G W ------------------------------------------------------ syz.0.348/8083 is trying to acquire lock: ffff80008f58d020 (console_owner){-.-.}-{0:0}, at: console_lock_spinning_enable+0x88/0xec kernel/printk/printk.c:1866 but task is already holding lock: ffff800094049db8 (&port_lock_key){-.-.}-{2:2}, at: uart_port_lock_irqsave include/linux/serial_core.h:618 [inline] ffff800094049db8 (&port_lock_key){-.-.}-{2:2}, at: uart_write+0x114/0x2ec drivers/tty/serial/serial_core.c:624 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&port_lock_key){-.-.}-{2:2}: __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0x5c/0x7c kernel/locking/spinlock.c:162 uart_port_lock_irqsave include/linux/serial_core.h:618 [inline] pl011_console_write+0x148/0x724 drivers/tty/serial/amba-pl011.c:2316 console_emit_next_record kernel/printk/printk.c:2928 [inline] console_flush_all+0x5cc/0xb74 kernel/printk/printk.c:2994 console_unlock+0xec/0x3d4 kernel/printk/printk.c:3063 vprintk_emit+0x1ec/0x350 kernel/printk/printk.c:2345 vprintk_default+0xa0/0xe4 kernel/printk/printk.c:2360 vprintk+0x200/0x2d4 kernel/printk/printk_safe.c:45 _printk+0xdc/0x128 kernel/printk/printk.c:2370 register_console+0x700/0xa8c kernel/printk/printk.c:3596 uart_configure_port drivers/tty/serial/serial_core.c:2664 [inline] serial_core_add_one_port drivers/tty/serial/serial_core.c:3192 [inline] serial_core_register_port+0x1428/0x1bf4 drivers/tty/serial/serial_core.c:3429 serial_ctrl_register_port+0x28/0x38 drivers/tty/serial/serial_ctrl.c:41 uart_add_one_port+0x28/0x38 drivers/tty/serial/serial_port.c:136 pl011_register_port+0x1b4/0x44c drivers/tty/serial/amba-pl011.c:2744 sbsa_uart_probe+0x488/0x608 drivers/tty/serial/amba-pl011.c:2914 platform_probe+0x148/0x1c0 drivers/base/platform.c:1404 really_probe+0x38c/0x8fc drivers/base/dd.c:656 __driver_probe_device+0x194/0x374 drivers/base/dd.c:798 driver_probe_device+0x78/0x330 drivers/base/dd.c:828 __device_attach_driver+0x2a8/0x4f4 drivers/base/dd.c:956 bus_for_each_drv+0x228/0x2bc drivers/base/bus.c:457 __device_attach+0x2b4/0x434 drivers/base/dd.c:1028 device_initial_probe+0x24/0x34 drivers/base/dd.c:1077 bus_probe_device+0x178/0x240 drivers/base/bus.c:532 device_add+0x728/0xa6c drivers/base/core.c:3721 platform_device_add+0x3e8/0x6e8 drivers/base/platform.c:716 platform_device_register_full+0x4ec/0x604 drivers/base/platform.c:844 acpi_create_platform_device+0x5bc/0x744 drivers/acpi/acpi_platform.c:177 acpi_default_enumeration+0x6c/0xdc drivers/acpi/scan.c:2184 acpi_bus_attach+0x8b8/0xaa8 drivers/acpi/scan.c:2293 acpi_dev_for_one_check+0xa0/0xb4 drivers/acpi/bus.c:1143 device_for_each_child+0xec/0x174 drivers/base/core.c:4050 acpi_dev_for_each_child+0xc4/0x108 drivers/acpi/bus.c:1155 acpi_bus_attach+0x358/0xaa8 drivers/acpi/scan.c:2298 acpi_dev_for_one_check+0xa0/0xb4 drivers/acpi/bus.c:1143 device_for_each_child+0xec/0x174 drivers/base/core.c:4050 acpi_dev_for_each_child+0xc4/0x108 drivers/acpi/bus.c:1155 acpi_bus_attach+0x358/0xaa8 drivers/acpi/scan.c:2298 acpi_bus_scan+0x118/0x4f0 drivers/acpi/scan.c:2579 acpi_scan_init+0x214/0x6b0 drivers/acpi/scan.c:2714 acpi_init+0x190/0x254 drivers/acpi/bus.c:1460 do_one_initcall+0x254/0x9e4 init/main.c:1267 do_initcall_level+0x154/0x214 init/main.c:1329 do_initcalls+0x58/0xac init/main.c:1345 do_basic_setup+0x8c/0xa0 init/main.c:1364 kernel_init_freeable+0x324/0x478 init/main.c:1578 kernel_init+0x24/0x2a0 init/main.c:1467 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:860 -> #0 (console_owner){-.-.}-{0:0}: check_prev_add kernel/locking/lockdep.c:3134 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain kernel/locking/lockdep.c:3869 [inline] __lock_acquire+0x3384/0x763c kernel/locking/lockdep.c:5137 lock_acquire+0x248/0x73c kernel/locking/lockdep.c:5754 console_lock_spinning_enable+0xb4/0xec kernel/printk/printk.c:1870 console_emit_next_record kernel/printk/printk.c:2922 [inline] console_flush_all+0x58c/0xb74 kernel/printk/printk.c:2994 console_unlock+0xec/0x3d4 kernel/printk/printk.c:3063 vprintk_emit+0x1ec/0x350 kernel/printk/printk.c:2345 vprintk_default+0xa0/0xe4 kernel/printk/printk.c:2360 vprintk+0x200/0x2d4 kernel/printk/printk_safe.c:45 _printk+0xdc/0x128 kernel/printk/printk.c:2370 __report_bug lib/bug.c:195 [inline] report_bug+0x3b8/0x5b0 lib/bug.c:219 bug_handler+0x50/0x1fc arch/arm64/kernel/traps.c:978 call_break_hook arch/arm64/kernel/debug-monitors.c:321 [inline] brk_handler+0x17c/0x2e0 arch/arm64/kernel/debug-monitors.c:328 do_debug_exception+0x1e4/0x398 arch/arm64/mm/fault.c:909 el1_dbg+0x64/0x80 arch/arm64/kernel/entry-common.c:472 el1h_64_sync_handler+0x40/0xac arch/arm64/kernel/entry-common.c:512 el1h_64_sync+0x64/0x68 arch/arm64/kernel/entry.S:593 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] uart_port_unlock_irqrestore include/linux/serial_core.h:669 [inline] uart_write+0x280/0x2ec drivers/tty/serial/serial_core.c:626 ppp_sync_push+0x20c/0x444 drivers/net/ppp/ppp_synctty.c:595 ppp_sync_send+0x3fc/0x68c drivers/net/ppp/ppp_synctty.c:574 __ppp_channel_push+0xe0/0x1ac drivers/net/ppp/ppp_generic.c:2150 ppp_channel_push+0x17c/0x208 drivers/net/ppp/ppp_generic.c:2177 ppp_write+0x288/0x374 drivers/net/ppp/ppp_generic.c:525 do_loop_readv_writev fs/read_write.c:764 [inline] vfs_writev+0x6c8/0xb80 fs/read_write.c:973 do_pwritev fs/read_write.c:1072 [inline] __do_sys_pwritev fs/read_write.c:1119 [inline] __se_sys_pwritev fs/read_write.c:1114 [inline] __arm64_sys_pwritev+0x18c/0x29c fs/read_write.c:1114 __invoke_syscall arch/arm64/kernel/syscall.c:34 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:48 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:133 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:152 el0_svc+0x54/0x168 arch/arm64/kernel/entry-common.c:712 el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&port_lock_key); lock(console_owner); lock(&port_lock_key); lock(console_owner); *** DEADLOCK *** 6 locks held by syz.0.348/8083: #0: ffff0000f1ab7248 (&pch->upl){++..}-{2:2}, at: ppp_channel_push+0x38/0x208 drivers/net/ppp/ppp_generic.c:2171 #1: ffff0000f1ab71e0 (&pch->downl){+...}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline] #1: ffff0000f1ab71e0 (&pch->downl){+...}-{2:2}, at: __ppp_channel_push+0x3c/0x1ac drivers/net/ppp/ppp_generic.c:2146 #2: ffff0000c811f430 (&ap->xmit_lock){+...}-{2:2}, at: spin_trylock_bh include/linux/spinlock.h:411 [inline] #2: ffff0000c811f430 (&ap->xmit_lock){+...}-{2:2}, at: ppp_sync_push+0x58/0x444 drivers/net/ppp/ppp_synctty.c:588 #3: ffff800094049db8 (&port_lock_key){-.-.}-{2:2}, at: uart_port_lock_irqsave include/linux/serial_core.h:618 [inline] #3: ffff800094049db8 (&port_lock_key){-.-.}-{2:2}, at: uart_write+0x114/0x2ec drivers/tty/serial/serial_core.c:624 #4: ffff80008f474940 (console_lock){+.+.}-{0:0}, at: vprintk_emit+0x1d0/0x350 kernel/printk/printk.c:2344 #5: ffff80008f474570 (console_srcu){....}-{0:0}, at: rcu_try_lock_acquire+0x10/0x4c include/linux/rcupdate.h:333 stack backtrace: CPU: 0 PID: 8083 Comm: syz.0.348 Tainted: G W 6.10.0-rc2-syzkaller-g8867bbd4a056 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024 Call trace: dump_backtrace+0x1b8/0x1e4 arch/arm64/kernel/stacktrace.c:317 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:324 __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xe4/0x150 lib/dump_stack.c:114 dump_stack+0x1c/0x28 lib/dump_stack.c:123 print_circular_bug+0x150/0x1b8 kernel/locking/lockdep.c:2060 check_noncircular+0x310/0x404 kernel/locking/lockdep.c:2187 check_prev_add kernel/locking/lockdep.c:3134 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain kernel/locking/lockdep.c:3869 [inline] __lock_acquire+0x3384/0x763c kernel/locking/lockdep.c:5137 lock_acquire+0x248/0x73c kernel/locking/lockdep.c:5754 console_lock_spinning_enable+0xb4/0xec kernel/printk/printk.c:1870 console_emit_next_record kernel/printk/printk.c:2922 [inline] console_flush_all+0x58c/0xb74 kernel/printk/printk.c:2994 console_unlock+0xec/0x3d4 kernel/printk/printk.c:3063 vprintk_emit+0x1ec/0x350 kernel/printk/printk.c:2345 vprintk_default+0xa0/0xe4 kernel/printk/printk.c:2360 vprintk+0x200/0x2d4 kernel/printk/printk_safe.c:45 _printk+0xdc/0x128 kernel/printk/printk.c:2370 __report_bug lib/bug.c:195 [inline] report_bug+0x3b8/0x5b0 lib/bug.c:219 bug_handler+0x50/0x1fc arch/arm64/kernel/traps.c:978 call_break_hook arch/arm64/kernel/debug-monitors.c:321 [inline] brk_handler+0x17c/0x2e0 arch/arm64/kernel/debug-monitors.c:328 do_debug_exception+0x1e4/0x398 arch/arm64/mm/fault.c:909 el1_dbg+0x64/0x80 arch/arm64/kernel/entry-common.c:472 el1h_64_sync_handler+0x40/0xac arch/arm64/kernel/entry-common.c:512 el1h_64_sync+0x64/0x68 arch/arm64/kernel/entry.S:593 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] uart_port_unlock_irqrestore include/linux/serial_core.h:669 [inline] uart_write+0x280/0x2ec drivers/tty/serial/serial_core.c:626 ppp_sync_push+0x20c/0x444 drivers/net/ppp/ppp_synctty.c:595 ppp_sync_send+0x3fc/0x68c drivers/net/ppp/ppp_synctty.c:574 __ppp_channel_push+0xe0/0x1ac drivers/net/ppp/ppp_generic.c:2150 ppp_channel_push+0x17c/0x208 drivers/net/ppp/ppp_generic.c:2177 ppp_write+0x288/0x374 drivers/net/ppp/ppp_generic.c:525 do_loop_readv_writev fs/read_write.c:764 [inline] vfs_writev+0x6c8/0xb80 fs/read_write.c:973 do_pwritev fs/read_write.c:1072 [inline] __do_sys_pwritev fs/read_write.c:1119 [inline] __se_sys_pwritev fs/read_write.c:1114 [inline] __arm64_sys_pwritev+0x18c/0x29c fs/read_write.c:1114 __invoke_syscall arch/arm64/kernel/syscall.c:34 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:48 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:133 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:152 el0_svc+0x54/0x168 arch/arm64/kernel/entry-common.c:712 el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 WARNING: CPU: 0 PID: 8083 at drivers/tty/serial/serial_core.c:625 spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] WARNING: CPU: 0 PID: 8083 at drivers/tty/serial/serial_core.c:625 uart_port_unlock_irqrestore include/linux/serial_core.h:669 [inline] WARNING: CPU: 0 PID: 8083 at drivers/tty/serial/serial_core.c:625 uart_write+0x280/0x2ec drivers/tty/serial/serial_core.c:626 Modules linked in: CPU: 0 PID: 8083 Comm: syz.0.348 Tainted: G W 6.10.0-rc2-syzkaller-g8867bbd4a056 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/27/2024 pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : uart_write+0x280/0x2ec include/linux/spinlock.h:406 lr : uart_write+0x278/0x2ec drivers/tty/serial/serial_core.c:625 sp : ffff80009c0f7820 x29: ffff80009c0f7820 x28: ffff800083ce2ef8 x27: ffff0000c84a81b0 x26: 0000000000000001 x25: dfff800000000000 x24: ffff0000c8fa0f48 x23: 0000000000000000 x22: ffff800094049da0 x21: ffff0000f1321b00 x20: 0000000000000004 x19: ffff0000c8fa0be8 x18: ffff80009c0f74c0 x17: 000000000003d2bb x16: ffff8000803514ec x15: ffff70001381eee8 x14: 1ffff0001381eee8 x13: 0000000000000004 x12: ffffffffffffffff x11: 0000000000040000 x10: 0000000000000fbf x9 : ffff80009a789000 x8 : 0000000000000fc0 x7 : 0000000000000000 x6 : 0000000000000000 x5 : ffff8000930cb968 x4 : 0000000000000008 x3 : ffff80008035161c x2 : 0000000000000001 x1 : 0000000000000000 x0 : ffff800094049da0 Call trace: spin_unlock_irqrestore include/linux/spinlock.h:406 [inline] uart_port_unlock_irqrestore include/linux/serial_core.h:669 [inline] uart_write+0x280/0x2ec drivers/tty/serial/serial_core.c:626 ppp_sync_push+0x20c/0x444 drivers/net/ppp/ppp_synctty.c:595 ppp_sync_send+0x3fc/0x68c drivers/net/ppp/ppp_synctty.c:574 __ppp_channel_push+0xe0/0x1ac drivers/net/ppp/ppp_generic.c:2150 ppp_channel_push+0x17c/0x208 drivers/net/ppp/ppp_generic.c:2177 ppp_write+0x288/0x374 drivers/net/ppp/ppp_generic.c:525 do_loop_readv_writev fs/read_write.c:764 [inline] vfs_writev+0x6c8/0xb80 fs/read_write.c:973 do_pwritev fs/read_write.c:1072 [inline] __do_sys_pwritev fs/read_write.c:1119 [inline] __se_sys_pwritev fs/read_write.c:1114 [inline] __arm64_sys_pwritev+0x18c/0x29c fs/read_write.c:1114 __invoke_syscall arch/arm64/kernel/syscall.c:34 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:48 el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:133 do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:152 el0_svc+0x54/0x168 arch/arm64/kernel/entry-common.c:712 el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:730 el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:598 irq event stamp: 1543 hardirqs last enabled at (1542): [] __local_bh_enable_ip+0x224/0x44c kernel/softirq.c:387 hardirqs last disabled at (1543): [] __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline] hardirqs last disabled at (1543): [] _raw_spin_lock_irqsave+0x2c/0x7c kernel/locking/spinlock.c:162 softirqs last enabled at (1530): [] softirq_handle_end kernel/softirq.c:400 [inline] softirqs last enabled at (1530): [] handle_softirqs+0xa60/0xc34 kernel/softirq.c:582 softirqs last disabled at (1538): [] ppp_channel_push+0x38/0x208 drivers/net/ppp/ppp_generic.c:2171 ---[ end trace 0000000000000000 ]---