============================================
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