============================================ WARNING: possible recursive locking detected 5.16.0-rc1-syzkaller #0 Not tainted -------------------------------------------- syz-executor.2/31713 is trying to acquire lock: ffffffff91161430 (&port_lock_key){-.-.}-{2:2}, at: uart_write+0xfe/0x920 drivers/tty/serial/serial_core.c:577 but task is already holding lock: ffffffff91161430 (&port_lock_key){-.-.}-{2:2}, at: serial8250_handle_irq+0x3f/0x3e0 drivers/tty/serial/8250/8250_port.c:1908 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&port_lock_key); lock(&port_lock_key); *** DEADLOCK *** May be due to missing lock nesting notation 3 locks held by syz-executor.2/31713: #0: ffff888077e9a8b0 (&i->lock){-.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:349 [inline] #0: ffff888077e9a8b0 (&i->lock){-.-.}-{2:2}, at: serial8250_interrupt+0x39/0x1e0 drivers/tty/serial/8250/8250_core.c:116 #1: ffffffff91161430 (&port_lock_key){-.-.}-{2:2}, at: serial8250_handle_irq+0x3f/0x3e0 drivers/tty/serial/8250/8250_port.c:1908 #2: ffff888039210098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref+0x18/0x80 drivers/tty/tty_ldisc.c:273 stack backtrace: CPU: 1 PID: 31713 Comm: syz-executor.2 Not tainted 5.16.0-rc1-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1dc/0x2d8 lib/dump_stack.c:106 print_deadlock_bug kernel/locking/lockdep.c:2956 [inline] check_deadlock kernel/locking/lockdep.c:2999 [inline] validate_chain+0x5984/0x8240 kernel/locking/lockdep.c:3788 __lock_acquire+0x1382/0x2b00 kernel/locking/lockdep.c:5027 lock_acquire+0x19f/0x4d0 kernel/locking/lockdep.c:5637 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xd1/0x120 kernel/locking/spinlock.c:162 uart_write+0xfe/0x920 drivers/tty/serial/serial_core.c:577 n_hdlc_send_frames+0x34e/0xb20 drivers/tty/n_hdlc.c:290 tty_wakeup+0xb3/0xf0 drivers/tty/tty_io.c:534 tty_port_default_wakeup+0x26/0x40 drivers/tty/tty_port.c:51 serial8250_tx_chars+0x68e/0x8a0 drivers/tty/serial/8250/8250_port.c:1845 serial8250_handle_irq+0x2fd/0x3e0 drivers/tty/serial/8250/8250_port.c:1932 serial8250_default_handle_irq+0xaf/0x190 drivers/tty/serial/8250/8250_port.c:1949 serial8250_interrupt+0xa3/0x1e0 drivers/tty/serial/8250/8250_core.c:126 __handle_irq_event_percpu+0x20d/0x730 kernel/irq/handle.c:158 handle_irq_event_percpu kernel/irq/handle.c:198 [inline] handle_irq_event+0x10a/0x300 kernel/irq/handle.c:215 handle_edge_irq+0x245/0xbe0 kernel/irq/chip.c:822 generic_handle_irq_desc include/linux/irqdesc.h:158 [inline] handle_irq arch/x86/kernel/irq.c:231 [inline] __common_interrupt+0xce/0x1e0 arch/x86/kernel/irq.c:250 common_interrupt+0x9f/0xc0 arch/x86/kernel/irq.c:240 asm_common_interrupt+0x1e/0x40 RIP: 0010:finish_lock_switch+0x1c5/0x350 kernel/sched/core.c:4733 Code: be ff ff ff ff e8 ab 9d cb 08 85 c0 74 37 4d 85 e4 75 58 e9 43 01 00 00 4c 89 ff e8 25 45 ce 08 e8 40 c3 2e 00 fb 48 83 c4 10 <5b> 41 5c 41 5d 41 5e 41 5f 5d c3 0f 0b 4d 85 e4 0f 85 4a ff ff ff RSP: 0018:ffffc90003847a48 EFLAGS: 00000286 RAX: d709019aa00f8000 RBX: ffff8880b9b3a308 RCX: ffffffff90dbe903 RDX: dffffc0000000000 RSI: 0000000000000001 RDI: 0000000000000000 RBP: ffff8880b9b3a080 R08: ffffffff818b1120 R09: ffffed10173472b9 R10: ffffed10173472b9 R11: 0000000000000000 R12: 0000000000000000 R13: ffff8880b9b3a318 R14: dffffc0000000000 R15: ffff8880b9a395c0 finish_task_switch+0x140/0x630 kernel/sched/core.c:4850 context_switch kernel/sched/core.c:4975 [inline] __schedule+0xb7a/0x1460 kernel/sched/core.c:6253 schedule+0x12b/0x1f0 kernel/sched/core.c:6326 freezable_schedule include/linux/freezer.h:172 [inline] do_nanosleep+0x1ca/0x7a0 kernel/time/hrtimer.c:2044 hrtimer_nanosleep+0x24d/0x490 kernel/time/hrtimer.c:2097 __do_sys_clock_nanosleep kernel/time/posix-timers.c:1267 [inline] __se_sys_clock_nanosleep+0x308/0x390 kernel/time/posix-timers.c:1245 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x44/0xd0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f54a2322811 Code: 24 0c 89 3c 24 48 89 4c 24 18 e8 aa e7 ff ff 4c 8b 54 24 18 48 8b 54 24 10 41 89 c0 8b 74 24 0c 8b 3c 24 b8 e6 00 00 00 0f 05 <44> 89 c7 48 89 04 24 e8 e3 e7 ff ff 48 8b 04 24 eb 97 66 2e 0f 1f RSP: 002b:00007ffd64d52c20 EFLAGS: 00000293 ORIG_RAX: 00000000000000e6 RAX: ffffffffffffffda RBX: 00000000001df171 RCX: 00007f54a2322811 RDX: 00007ffd64d52c60 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000010 R10: 0000000000000000 R11: 0000000000000293 R12: 00007f54a2410f60 R13: 00007f54a2411b60 R14: 00007f54a2410f60 R15: 00000000001dee30 ---------------- Code disassembly (best guess): 0: be ff ff ff ff mov $0xffffffff,%esi 5: e8 ab 9d cb 08 callq 0x8cb9db5 a: 85 c0 test %eax,%eax c: 74 37 je 0x45 e: 4d 85 e4 test %r12,%r12 11: 75 58 jne 0x6b 13: e9 43 01 00 00 jmpq 0x15b 18: 4c 89 ff mov %r15,%rdi 1b: e8 25 45 ce 08 callq 0x8ce4545 20: e8 40 c3 2e 00 callq 0x2ec365 25: fb sti 26: 48 83 c4 10 add $0x10,%rsp * 2a: 5b pop %rbx <-- trapping instruction 2b: 41 5c pop %r12 2d: 41 5d pop %r13 2f: 41 5e pop %r14 31: 41 5f pop %r15 33: 5d pop %rbp 34: c3 retq 35: 0f 0b ud2 37: 4d 85 e4 test %r12,%r12 3a: 0f 85 4a ff ff ff jne 0xffffff8a