============================================ WARNING: possible recursive locking detected 5.15.0-syzkaller #0 Not tainted -------------------------------------------- systemd-journal/2925 is trying to acquire lock: ffffffff90f2f650 (&port_lock_key){-.-.}-{2:2}, at: uart_write+0xfe/0x920 drivers/tty/serial/serial_core.c:577 but task is already holding lock: ffffffff90f2f650 (&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 4 locks held by systemd-journal/2925: #0: ffffffff8d0c3018 (tomoyo_ss){....}-{0:0}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:267 #1: ffff8880483ec730 (&i->lock){-.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:350 [inline] #1: ffff8880483ec730 (&i->lock){-.-.}-{2:2}, at: serial8250_interrupt+0x39/0x1e0 drivers/tty/serial/8250/8250_core.c:116 #2: ffffffff90f2f650 (&port_lock_key){-.-.}-{2:2}, at: serial8250_handle_irq+0x3f/0x3e0 drivers/tty/serial/8250/8250_port.c:1908 #3: ffff888073f30098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref+0x18/0x80 drivers/tty/tty_ldisc.c:273 stack backtrace: CPU: 1 PID: 2925 Comm: systemd-journal Not tainted 5.15.0-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:2959 [inline] check_deadlock kernel/locking/lockdep.c:3002 [inline] validate_chain+0x5984/0x8240 kernel/locking/lockdep.c:3791 __lock_acquire+0x1382/0x2b00 kernel/locking/lockdep.c:5030 lock_acquire+0x19f/0x4d0 kernel/locking/lockdep.c:5640 __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:tomoyo_domain_quota_is_ok+0x261/0x5d0 security/tomoyo/util.c:1093 Code: fd 48 8d 6b 1b 48 89 e8 48 c1 e8 03 42 0f b6 04 30 84 c0 0f 85 4d 01 00 00 0f b6 45 00 0f b7 c0 89 c1 83 e1 01 41 01 cd 89 c1 e9 83 e1 01 44 01 e9 89 c2 c1 ea 02 83 e2 01 01 ca 89 c1 c1 e9 RSP: 0018:ffffc90001f6f7e0 EFLAGS: 00000202 RAX: 0000000000000022 RBX: ffff888023a2a600 RCX: 0000000000000022 RDX: 0000000000000000 RSI: ffffffff8d0c3650 RDI: 0000000000000000 RBP: ffff888023a2a61a R08: 0000000000000001 R09: ffffffff83dd82cb R10: 0000000000000007 R11: ffff88807b809d00 R12: ffff88801c2c4d90 R13: 0000000000000316 R14: dffffc0000000000 R15: ffffc90001f6faa0 tomoyo_supervisor+0x37e/0x1300 security/tomoyo/common.c:2089 tomoyo_audit_path_log security/tomoyo/file.c:168 [inline] tomoyo_path_permission+0x248/0x370 security/tomoyo/file.c:587 tomoyo_path_perm+0x3dd/0x660 security/tomoyo/file.c:838 security_inode_getattr+0xc0/0x140 security/security.c:1334 vfs_getattr fs/stat.c:157 [inline] vfs_fstat fs/stat.c:182 [inline] __do_sys_newfstat fs/stat.c:422 [inline] __se_sys_newfstat+0xd1/0x820 fs/stat.c:419 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:0x7ff6d298e2e2 Code: 48 8b 05 b9 db 2b 00 64 c7 00 16 00 00 00 b8 ff ff ff ff c3 0f 1f 40 00 83 ff 01 77 33 48 63 fe b8 05 00 00 00 48 89 d6 0f 05 <48> 3d 00 f0 ff ff 77 06 f3 c3 0f 1f 40 00 48 8b 15 81 db 2b 00 f7 RSP: 002b:00007fff5a369fc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000005 RAX: ffffffffffffffda RBX: 0000560119f7e3a0 RCX: 00007ff6d298e2e2 RDX: 00007fff5a369fe0 RSI: 00007fff5a369fe0 RDI: 0000000000000015 RBP: 00007fff5a36a170 R08: 0000000000000000 R09: 0000000000000001 R10: 0000000000080000 R11: 0000000000000246 R12: 0000560119f7e3a0 R13: 0000560119f7e8e0 R14: 000000000000000f R15: 00007fff5a36a0e0 ---------------- Code disassembly (best guess): 0: fd std 1: 48 8d 6b 1b lea 0x1b(%rbx),%rbp 5: 48 89 e8 mov %rbp,%rax 8: 48 c1 e8 03 shr $0x3,%rax c: 42 0f b6 04 30 movzbl (%rax,%r14,1),%eax 11: 84 c0 test %al,%al 13: 0f 85 4d 01 00 00 jne 0x166 19: 0f b6 45 00 movzbl 0x0(%rbp),%eax 1d: 0f b7 c0 movzwl %ax,%eax 20: 89 c1 mov %eax,%ecx 22: 83 e1 01 and $0x1,%ecx 25: 41 01 cd add %ecx,%r13d 28: 89 c1 mov %eax,%ecx * 2a: d1 e9 shr %ecx <-- trapping instruction 2c: 83 e1 01 and $0x1,%ecx 2f: 44 01 e9 add %r13d,%ecx 32: 89 c2 mov %eax,%edx 34: c1 ea 02 shr $0x2,%edx 37: 83 e2 01 and $0x1,%edx 3a: 01 ca add %ecx,%edx 3c: 89 c1 mov %eax,%ecx 3e: c1 .byte 0xc1 3f: e9 .byte 0xe9