FAULT_INJECTION: forcing a failure. name failslab, interval 1, probability 0, space 0, times 1 ====================================================== WARNING: possible circular locking dependency detected 5.15.181-syzkaller #0 Not tainted ------------------------------------------------------ syz.0.32/4258 is trying to acquire lock: ffff8000143174c0 (console_owner){....}-{0:0}, at: console_lock_spinning_enable+0x38/0x78 kernel/printk/printk.c:1802 but task is already holding lock: ffff0000ce511958 (&port->lock){....}-{2:2}, at: tty_insert_flip_string_and_push_buffer+0x44/0x308 drivers/tty/tty_buffer.c:585 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&port->lock){....}-{2:2}: __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xc4/0x14c kernel/locking/spinlock.c:162 tty_port_tty_get drivers/tty/tty_port.c:289 [inline] tty_port_default_wakeup+0x28/0x138 drivers/tty/tty_port.c:48 tty_port_tty_wakeup+0x64/0x78 drivers/tty/tty_port.c:389 uart_write_wakeup+0x4c/0x64 drivers/tty/serial/serial_core.c:111 pl011_tx_chars+0x9d8/0x11f8 drivers/tty/serial/amba-pl011.c:1501 pl011_start_tx_pio drivers/tty/serial/amba-pl011.c:1347 [inline] pl011_start_tx+0x544/0xb68 drivers/tty/serial/amba-pl011.c:1389 __uart_start drivers/tty/serial/serial_core.c:132 [inline] uart_write+0x5b0/0x85c drivers/tty/serial/serial_core.c:591 process_output_block drivers/tty/n_tty.c:592 [inline] n_tty_write+0xaa4/0xed4 drivers/tty/n_tty.c:2339 do_tty_write drivers/tty/tty_io.c:1038 [inline] file_tty_write+0x420/0x72c drivers/tty/tty_io.c:1110 tty_write drivers/tty/tty_io.c:1131 [inline] redirected_tty_write+0xc0/0x100 drivers/tty/tty_io.c:1154 call_write_iter include/linux/fs.h:2172 [inline] new_sync_write fs/read_write.c:507 [inline] vfs_write+0x7c8/0xa2c fs/read_write.c:594 ksys_write+0x120/0x210 fs/read_write.c:647 __do_sys_write fs/read_write.c:659 [inline] __se_sys_write fs/read_write.c:656 [inline] __arm64_sys_write+0x7c/0x90 fs/read_write.c:656 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181 el0_svc+0x78/0x1e0 arch/arm64/kernel/entry-common.c:608 el0t_64_sync_handler+0xcc/0xe4 arch/arm64/kernel/entry-common.c:626 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584 -> #1 (&port_lock_key){....}-{2:2}: __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0xb0/0x10c kernel/locking/spinlock.c:154 spin_lock include/linux/spinlock.h:363 [inline] uart_port_lock include/linux/serial_core.h:269 [inline] pl011_console_write+0x1b8/0x754 drivers/tty/serial/amba-pl011.c:2357 call_console_drivers kernel/printk/printk.c:-1 [inline] console_unlock+0xb8c/0x133c kernel/printk/printk.c:2744 register_console+0x59c/0x8ac kernel/printk/printk.c:3097 uart_configure_port drivers/tty/serial/serial_core.c:2465 [inline] uart_add_one_port+0x1010/0x1824 drivers/tty/serial/serial_core.c:2980 pl011_register_port+0x190/0x434 drivers/tty/serial/amba-pl011.c:2802 sbsa_uart_probe+0x418/0x528 drivers/tty/serial/amba-pl011.c:2937 platform_probe+0x13c/0x1b4 drivers/base/platform.c:1391 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x26c/0xaec drivers/base/dd.c:595 __driver_probe_device+0x180/0x314 drivers/base/dd.c:755 driver_probe_device+0x78/0x34c drivers/base/dd.c:785 __device_attach_driver+0x274/0x4c4 drivers/base/dd.c:907 bus_for_each_drv+0x150/0x1d8 drivers/base/bus.c:429 __device_attach+0x2a8/0x3d4 drivers/base/dd.c:979 device_initial_probe+0x24/0x34 drivers/base/dd.c:1028 bus_probe_device+0xbc/0x1c4 drivers/base/bus.c:489 device_add+0xb04/0xf94 drivers/base/core.c:3412 platform_device_add+0x3f8/0x6ec drivers/base/platform.c:712 platform_device_register_full+0x4f8/0x618 drivers/base/platform.c:835 acpi_create_platform_device+0x410/0x568 drivers/acpi/acpi_platform.c:154 acpi_default_enumeration+0x6c/0xdc drivers/acpi/scan.c:2083 acpi_bus_attach+0x7fc/0xa40 drivers/acpi/scan.c:2193 acpi_bus_attach+0x2dc/0xa40 drivers/acpi/scan.c:2199 acpi_bus_attach+0x2dc/0xa40 drivers/acpi/scan.c:2199 acpi_bus_scan+0xb8/0x1b8 drivers/acpi/scan.c:2371 acpi_scan_init+0x1b8/0x620 drivers/acpi/scan.c:2546 acpi_init+0x15c/0x238 drivers/acpi/bus.c:1354 do_one_initcall+0x228/0x8b0 init/main.c:1302 do_initcall_level+0x154/0x214 init/main.c:1375 do_initcalls+0x58/0xac init/main.c:1391 do_basic_setup+0x8c/0xa0 init/main.c:1410 kernel_init_freeable+0x404/0x5fc init/main.c:1615 kernel_init+0x24/0x1d0 init/main.c:1506 ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:870 -> #0 (console_owner){....}-{0:0}: check_prev_add kernel/locking/lockdep.c:3053 [inline] check_prevs_add kernel/locking/lockdep.c:3172 [inline] validate_chain kernel/locking/lockdep.c:3788 [inline] __lock_acquire+0x2928/0x651c kernel/locking/lockdep.c:5012 lock_acquire+0x1f4/0x620 kernel/locking/lockdep.c:5623 console_lock_spinning_enable+0x68/0x78 kernel/printk/printk.c:1805 console_unlock+0x964/0x133c kernel/printk/printk.c:2741 vprintk_emit+0x13c/0x218 kernel/printk/printk.c:2274 vprintk_default+0x54/0x80 kernel/printk/printk.c:2289 vprintk+0x1e8/0x284 kernel/printk/printk_safe.c:45 _printk+0xd0/0x118 kernel/printk/printk.c:2299 fail_dump lib/fault-inject.c:45 [inline] should_fail+0x3a0/0x51c lib/fault-inject.c:146 __should_failslab+0xbc/0x10c mm/failslab.c:33 should_failslab+0x10/0x28 mm/slab_common.c:1350 slab_pre_alloc_hook+0x64/0xec mm/slab.h:494 slab_alloc_node mm/slub.c:3134 [inline] slab_alloc mm/slub.c:3228 [inline] __kmalloc+0xbc/0x44c mm/slub.c:4403 kmalloc include/linux/slab.h:609 [inline] tty_buffer_alloc drivers/tty/tty_buffer.c:177 [inline] __tty_buffer_request_room+0x19c/0x438 drivers/tty/tty_buffer.c:276 tty_insert_flip_string_fixed_flag drivers/tty/tty_buffer.c:322 [inline] tty_insert_flip_string include/linux/tty_flip.h:41 [inline] tty_insert_flip_string_and_push_buffer+0x74/0x308 drivers/tty/tty_buffer.c:586 pty_write+0xac/0xe4 drivers/tty/pty.c:118 ppp_async_push+0x3f8/0x179c drivers/net/ppp/ppp_async.c:676 ppp_async_send+0xb8/0x128 drivers/net/ppp/ppp_async.c:644 __ppp_channel_push+0xdc/0x1a4 drivers/net/ppp/ppp_generic.c:2175 ppp_channel_push+0x178/0x204 drivers/net/ppp/ppp_generic.c:2202 ppp_write+0x314/0x454 drivers/net/ppp/ppp_generic.c:548 vfs_write+0x280/0xa2c fs/read_write.c:592 ksys_write+0x120/0x210 fs/read_write.c:647 __do_sys_write fs/read_write.c:659 [inline] __se_sys_write fs/read_write.c:656 [inline] __arm64_sys_write+0x7c/0x90 fs/read_write.c:656 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181 el0_svc+0x78/0x1e0 arch/arm64/kernel/entry-common.c:608 el0t_64_sync_handler+0xcc/0xe4 arch/arm64/kernel/entry-common.c:626 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584 other info that might help us debug this: Chain exists of: console_owner --> &port_lock_key --> &port->lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&port->lock); lock(&port_lock_key); lock(&port->lock); lock(console_owner); *** DEADLOCK *** 5 locks held by syz.0.32/4258: #0: ffff0000ce517a40 (&pch->upl){.+..}-{2:2}, at: ppp_channel_push+0x34/0x204 drivers/net/ppp/ppp_generic.c:2196 #1: ffff0000ce5179e0 (&pch->downl){+...}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline] #1: ffff0000ce5179e0 (&pch->downl){+...}-{2:2}, at: __ppp_channel_push+0x38/0x1a4 drivers/net/ppp/ppp_generic.c:2171 #2: ffff0000c9018030 (&ap->xmit_lock){+...}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:368 [inline] #2: ffff0000c9018030 (&ap->xmit_lock){+...}-{2:2}, at: ppp_async_push+0x9c/0x179c drivers/net/ppp/ppp_async.c:669 #3: ffff0000ce511958 (&port->lock){....}-{2:2}, at: tty_insert_flip_string_and_push_buffer+0x44/0x308 drivers/tty/tty_buffer.c:585 #4: ffff8000143175a0 (console_lock){+.+.}-{0:0}, at: console_trylock_spinning+0x18/0x268 kernel/printk/printk.c:1867 stack backtrace: CPU: 0 PID: 4258 Comm: syz.0.32 Not tainted 5.15.181-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/19/2025 Call trace: dump_backtrace+0x0/0x43c arch/arm64/kernel/stacktrace.c:152 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216 __dump_stack+0x30/0x40 lib/dump_stack.c:88 dump_stack_lvl+0xf8/0x160 lib/dump_stack.c:106 dump_stack+0x1c/0x5c lib/dump_stack.c:113 print_circular_bug+0x148/0x1b0 kernel/locking/lockdep.c:2011 check_noncircular+0x240/0x2d4 kernel/locking/lockdep.c:2133 check_prev_add kernel/locking/lockdep.c:3053 [inline] check_prevs_add kernel/locking/lockdep.c:3172 [inline] validate_chain kernel/locking/lockdep.c:3788 [inline] __lock_acquire+0x2928/0x651c kernel/locking/lockdep.c:5012 lock_acquire+0x1f4/0x620 kernel/locking/lockdep.c:5623 console_lock_spinning_enable+0x68/0x78 kernel/printk/printk.c:1805 console_unlock+0x964/0x133c kernel/printk/printk.c:2741 vprintk_emit+0x13c/0x218 kernel/printk/printk.c:2274 vprintk_default+0x54/0x80 kernel/printk/printk.c:2289 vprintk+0x1e8/0x284 kernel/printk/printk_safe.c:45 _printk+0xd0/0x118 kernel/printk/printk.c:2299 fail_dump lib/fault-inject.c:45 [inline] should_fail+0x3a0/0x51c lib/fault-inject.c:146 __should_failslab+0xbc/0x10c mm/failslab.c:33 should_failslab+0x10/0x28 mm/slab_common.c:1350 slab_pre_alloc_hook+0x64/0xec mm/slab.h:494 slab_alloc_node mm/slub.c:3134 [inline] slab_alloc mm/slub.c:3228 [inline] __kmalloc+0xbc/0x44c mm/slub.c:4403 kmalloc include/linux/slab.h:609 [inline] tty_buffer_alloc drivers/tty/tty_buffer.c:177 [inline] __tty_buffer_request_room+0x19c/0x438 drivers/tty/tty_buffer.c:276 tty_insert_flip_string_fixed_flag drivers/tty/tty_buffer.c:322 [inline] tty_insert_flip_string include/linux/tty_flip.h:41 [inline] tty_insert_flip_string_and_push_buffer+0x74/0x308 drivers/tty/tty_buffer.c:586 pty_write+0xac/0xe4 drivers/tty/pty.c:118 ppp_async_push+0x3f8/0x179c drivers/net/ppp/ppp_async.c:676 ppp_async_send+0xb8/0x128 drivers/net/ppp/ppp_async.c:644 __ppp_channel_push+0xdc/0x1a4 drivers/net/ppp/ppp_generic.c:2175 ppp_channel_push+0x178/0x204 drivers/net/ppp/ppp_generic.c:2202 ppp_write+0x314/0x454 drivers/net/ppp/ppp_generic.c:548 vfs_write+0x280/0xa2c fs/read_write.c:592 ksys_write+0x120/0x210 fs/read_write.c:647 __do_sys_write fs/read_write.c:659 [inline] __se_sys_write fs/read_write.c:656 [inline] __arm64_sys_write+0x7c/0x90 fs/read_write.c:656 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181 el0_svc+0x78/0x1e0 arch/arm64/kernel/entry-common.c:608 el0t_64_sync_handler+0xcc/0xe4 arch/arm64/kernel/entry-common.c:626 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584 CPU: 0 PID: 4258 Comm: syz.0.32 Not tainted 5.15.181-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/19/2025 Call trace: dump_backtrace+0x0/0x43c arch/arm64/kernel/stacktrace.c:152 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216 __dump_stack+0x30/0x40 lib/dump_stack.c:88 dump_stack_lvl+0xf8/0x160 lib/dump_stack.c:106 dump_stack+0x1c/0x5c lib/dump_stack.c:113 fail_dump lib/fault-inject.c:52 [inline] should_fail+0x3c0/0x51c lib/fault-inject.c:146 __should_failslab+0xbc/0x10c mm/failslab.c:33 should_failslab+0x10/0x28 mm/slab_common.c:1350 slab_pre_alloc_hook+0x64/0xec mm/slab.h:494 slab_alloc_node mm/slub.c:3134 [inline] slab_alloc mm/slub.c:3228 [inline] __kmalloc+0xbc/0x44c mm/slub.c:4403 kmalloc include/linux/slab.h:609 [inline] tty_buffer_alloc drivers/tty/tty_buffer.c:177 [inline] __tty_buffer_request_room+0x19c/0x438 drivers/tty/tty_buffer.c:276 tty_insert_flip_string_fixed_flag drivers/tty/tty_buffer.c:322 [inline] tty_insert_flip_string include/linux/tty_flip.h:41 [inline] tty_insert_flip_string_and_push_buffer+0x74/0x308 drivers/tty/tty_buffer.c:586 pty_write+0xac/0xe4 drivers/tty/pty.c:118 ppp_async_push+0x3f8/0x179c drivers/net/ppp/ppp_async.c:676 ppp_async_send+0xb8/0x128 drivers/net/ppp/ppp_async.c:644 __ppp_channel_push+0xdc/0x1a4 drivers/net/ppp/ppp_generic.c:2175 ppp_channel_push+0x178/0x204 drivers/net/ppp/ppp_generic.c:2202 ppp_write+0x314/0x454 drivers/net/ppp/ppp_generic.c:548 vfs_write+0x280/0xa2c fs/read_write.c:592 ksys_write+0x120/0x210 fs/read_write.c:647 __do_sys_write fs/read_write.c:659 [inline] __se_sys_write fs/read_write.c:656 [inline] __arm64_sys_write+0x7c/0x90 fs/read_write.c:656 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline] invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181 el0_svc+0x78/0x1e0 arch/arm64/kernel/entry-common.c:608 el0t_64_sync_handler+0xcc/0xe4 arch/arm64/kernel/entry-common.c:626 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584