syzbot


possible deadlock in tty_port_default_wakeup

Status: upstream: reported on 2024/03/27 07:34
Reported-by: syzbot+1d7f33145ac836b5c819@syzkaller.appspotmail.com
First crash: 38d, last: 38d
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream possible deadlock in tty_port_default_wakeup serial 7 410d 525d 0/26 auto-obsoleted due to no activity on 2023/07/19 07:10
linux-6.1 possible deadlock in tty_port_default_wakeup 3 38d 46d 0/3 upstream: reported on 2024/03/19 22:08

Sample crash report:
=====================================================
WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
5.15.153-syzkaller #0 Not tainted
-----------------------------------------------------
syz-executor.4/3667 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire:
ffff88801f9419c0 (&stab->lock){+...}-{2:2}, at: __sock_map_delete net/core/sock_map.c:416 [inline]
ffff88801f9419c0 (&stab->lock){+...}-{2:2}, at: sock_map_delete_elem+0x97/0x130 net/core/sock_map.c:448

and this task is already holding:
ffff88807c223158 (&port->lock){-.-.}-{2:2}, at: tty_insert_flip_string_and_push_buffer+0x3a/0x390 drivers/tty/tty_buffer.c:585
which would create a new lock dependency:
 (&port->lock){-.-.}-{2:2} -> (&stab->lock){+...}-{2:2}

but this new dependency connects a HARDIRQ-irq-safe lock:
 (&port->lock){-.-.}-{2:2}

... which became HARDIRQ-irq-safe at:
  lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
  _raw_spin_lock_irqsave+0xd1/0x120 kernel/locking/spinlock.c:162
  tty_port_tty_get drivers/tty/tty_port.c:289 [inline]
  tty_port_default_wakeup+0x21/0x100 drivers/tty/tty_port.c:48
  serial8250_tx_chars+0x60d/0x800 drivers/tty/serial/8250/8250_port.c:1834
  serial8250_handle_irq+0x505/0x600 drivers/tty/serial/8250/8250_port.c:1930
  serial8250_default_handle_irq+0xc8/0x1e0 drivers/tty/serial/8250/8250_port.c:1947
  serial8250_interrupt+0xa1/0x1e0 drivers/tty/serial/8250/8250_core.c:127
  __handle_irq_event_percpu+0x292/0xa70 kernel/irq/handle.c:156
  handle_irq_event_percpu kernel/irq/handle.c:196 [inline]
  handle_irq_event+0xff/0x2b0 kernel/irq/handle.c:213
  handle_edge_irq+0x245/0xbf0 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+0xd7/0x1f0 arch/x86/kernel/irq.c:250
  common_interrupt+0x9f/0xc0 arch/x86/kernel/irq.c:240
  asm_common_interrupt+0x22/0x40 arch/x86/include/asm/idtentry.h:629
  __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:161 [inline]
  _raw_spin_unlock_irqrestore+0xd4/0x130 kernel/locking/spinlock.c:194
  spin_unlock_irqrestore include/linux/spinlock.h:418 [inline]
  uart_write+0x6af/0x930 drivers/tty/serial/serial_core.c:590
  process_output_block drivers/tty/n_tty.c:592 [inline]
  n_tty_write+0xd7e/0x1280 drivers/tty/n_tty.c:2339
  do_tty_write drivers/tty/tty_io.c:1038 [inline]
  file_tty_write+0x561/0x920 drivers/tty/tty_io.c:1110
  call_write_iter include/linux/fs.h:2148 [inline]
  new_sync_write fs/read_write.c:507 [inline]
  vfs_write+0xacf/0xe50 fs/read_write.c:594
  ksys_write+0x1a2/0x2c0 fs/read_write.c:647
  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
  do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
  entry_SYSCALL_64_after_hwframe+0x61/0xcb

to a HARDIRQ-irq-unsafe lock:
 (&stab->lock){+...}-{2:2}

... which became HARDIRQ-irq-unsafe at:
...
  lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
  __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
  _raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:178
  __sock_map_delete net/core/sock_map.c:416 [inline]
  sock_map_delete_elem+0x97/0x130 net/core/sock_map.c:448
  bpf_prog_2c29ac5cdc6b1842+0x3a/0x130
  bpf_dispatcher_nop_func include/linux/bpf.h:785 [inline]
  __bpf_prog_run include/linux/filter.h:628 [inline]
  bpf_prog_run include/linux/filter.h:635 [inline]
  __bpf_trace_run kernel/trace/bpf_trace.c:1880 [inline]
  bpf_trace_run4+0x1ea/0x390 kernel/trace/bpf_trace.c:1919
  __bpf_trace_mm_page_alloc+0xba/0xe0 include/trace/events/kmem.h:201
  trace_mm_page_alloc include/trace/events/kmem.h:201 [inline]
  __alloc_pages+0x6e0/0x700 mm/page_alloc.c:5443
  __page_cache_alloc+0xd4/0x4a0 mm/filemap.c:1022
  pagecache_get_page+0xa91/0x1010 mm/filemap.c:1940
  grab_cache_page_write_begin+0x57/0x90 mm/filemap.c:3739
  ext4_da_write_begin+0x599/0xb60 fs/ext4/inode.c:2980
  generic_perform_write+0x2bf/0x5b0 mm/filemap.c:3785
  ext4_buffered_write_iter+0x227/0x360 fs/ext4/file.c:268
  ext4_file_write_iter+0x87c/0x1990
  call_write_iter include/linux/fs.h:2148 [inline]
  new_sync_write fs/read_write.c:507 [inline]
  vfs_write+0xacf/0xe50 fs/read_write.c:594
  ksys_write+0x1a2/0x2c0 fs/read_write.c:647
  do_syscall_x64 arch/x86/entry/common.c:50 [inline]
  do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
  entry_SYSCALL_64_after_hwframe+0x61/0xcb

other info that might help us debug this:

 Possible interrupt unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&stab->lock);
                               local_irq_disable();
                               lock(&port->lock);
                               lock(&stab->lock);
  <Interrupt>
    lock(&port->lock);

 *** DEADLOCK ***

6 locks held by syz-executor.4/3667:
 #0: ffff888077ed6098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x21/0x70 drivers/tty/tty_ldisc.c:252
 #1: ffff888077ed6130 (&tty->atomic_write_lock){+.+.}-{3:3}, at: tty_write_lock drivers/tty/tty_io.c:961 [inline]
 #1: ffff888077ed6130 (&tty->atomic_write_lock){+.+.}-{3:3}, at: do_tty_write drivers/tty/tty_io.c:984 [inline]
 #1: ffff888077ed6130 (&tty->atomic_write_lock){+.+.}-{3:3}, at: file_tty_write+0x24f/0x920 drivers/tty/tty_io.c:1110
 #2: ffff888077ed62e8 (&tty->termios_rwsem){++++}-{3:3}, at: n_tty_write+0x1003/0x1280 drivers/tty/n_tty.c:2384
 #3: ffffc900010e8378 (&ldata->output_lock){+.+.}-{3:3}, at: n_tty_write+0x5ee/0x1280 drivers/tty/n_tty.c:2361
 #4: ffff88807c223158 (&port->lock){-.-.}-{2:2}, at: tty_insert_flip_string_and_push_buffer+0x3a/0x390 drivers/tty/tty_buffer.c:585
 #5: ffffffff8c91f720 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:311

the dependencies between HARDIRQ-irq-safe lock and the holding lock:
-> (&port->lock){-.-.}-{2:2} {
   IN-HARDIRQ-W at:
                    lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
                    __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
                    _raw_spin_lock_irqsave+0xd1/0x120 kernel/locking/spinlock.c:162
                    tty_port_tty_get drivers/tty/tty_port.c:289 [inline]
                    tty_port_default_wakeup+0x21/0x100 drivers/tty/tty_port.c:48
                    serial8250_tx_chars+0x60d/0x800 drivers/tty/serial/8250/8250_port.c:1834
                    serial8250_handle_irq+0x505/0x600 drivers/tty/serial/8250/8250_port.c:1930
                    serial8250_default_handle_irq+0xc8/0x1e0 drivers/tty/serial/8250/8250_port.c:1947
                    serial8250_interrupt+0xa1/0x1e0 drivers/tty/serial/8250/8250_core.c:127
                    __handle_irq_event_percpu+0x292/0xa70 kernel/irq/handle.c:156
                    handle_irq_event_percpu kernel/irq/handle.c:196 [inline]
                    handle_irq_event+0xff/0x2b0 kernel/irq/handle.c:213
                    handle_edge_irq+0x245/0xbf0 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+0xd7/0x1f0 arch/x86/kernel/irq.c:250
                    common_interrupt+0x9f/0xc0 arch/x86/kernel/irq.c:240
                    asm_common_interrupt+0x22/0x40 arch/x86/include/asm/idtentry.h:629
                    __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:161 [inline]
                    _raw_spin_unlock_irqrestore+0xd4/0x130 kernel/locking/spinlock.c:194
                    spin_unlock_irqrestore include/linux/spinlock.h:418 [inline]
                    uart_write+0x6af/0x930 drivers/tty/serial/serial_core.c:590
                    process_output_block drivers/tty/n_tty.c:592 [inline]
                    n_tty_write+0xd7e/0x1280 drivers/tty/n_tty.c:2339
                    do_tty_write drivers/tty/tty_io.c:1038 [inline]
                    file_tty_write+0x561/0x920 drivers/tty/tty_io.c:1110
                    call_write_iter include/linux/fs.h:2148 [inline]
                    new_sync_write fs/read_write.c:507 [inline]
                    vfs_write+0xacf/0xe50 fs/read_write.c:594
                    ksys_write+0x1a2/0x2c0 fs/read_write.c:647
                    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
                    do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
                    entry_SYSCALL_64_after_hwframe+0x61/0xcb
   IN-SOFTIRQ-W at:
                    lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
                    __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
                    _raw_spin_lock_irqsave+0xd1/0x120 kernel/locking/spinlock.c:162
                    tty_port_tty_get drivers/tty/tty_port.c:289 [inline]
                    tty_port_default_wakeup+0x21/0x100 drivers/tty/tty_port.c:48
                    serial8250_tx_chars+0x60d/0x800 drivers/tty/serial/8250/8250_port.c:1834
                    serial8250_handle_irq+0x505/0x600 drivers/tty/serial/8250/8250_port.c:1930
                    serial8250_default_handle_irq+0xc8/0x1e0 drivers/tty/serial/8250/8250_port.c:1947
                    serial8250_interrupt+0xa1/0x1e0 drivers/tty/serial/8250/8250_core.c:127
                    __handle_irq_event_percpu+0x292/0xa70 kernel/irq/handle.c:156
                    handle_irq_event_percpu kernel/irq/handle.c:196 [inline]
                    handle_irq_event+0xff/0x2b0 kernel/irq/handle.c:213
                    handle_edge_irq+0x245/0xbf0 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+0xd7/0x1f0 arch/x86/kernel/irq.c:250
                    common_interrupt+0x4a/0xc0 arch/x86/kernel/irq.c:240
                    asm_common_interrupt+0x22/0x40 arch/x86/include/asm/idtentry.h:629
                    ffs arch/x86/include/asm/bitops.h:297 [inline]
                    __do_softirq+0x1d2/0x93a kernel/softirq.c:546
                    invoke_softirq kernel/softirq.c:432 [inline]
                    __irq_exit_rcu+0x155/0x240 kernel/softirq.c:637
                    irq_exit_rcu+0x5/0x20 kernel/softirq.c:649
                    sysvec_apic_timer_interrupt+0x91/0xb0 arch/x86/kernel/apic/apic.c:1096
                    asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:638
                    console_unlock+0xe53/0x12b0 kernel/printk/printk.c:2743
                    vprintk_emit+0xbf/0x150 kernel/printk/printk.c:2268
                    _printk+0xd1/0x111 kernel/printk/printk.c:2293
                    check_stack_usage kernel/exit.c:764 [inline]
                    do_exit+0x1a91/0x2480 kernel/exit.c:915
                    do_group_exit+0x144/0x310 kernel/exit.c:994
                    __do_sys_exit_group kernel/exit.c:1005 [inline]
                    __se_sys_exit_group kernel/exit.c:1003 [inline]
                    __x64_sys_exit_group+0x3b/0x40 kernel/exit.c:1003
                    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
                    do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
                    entry_SYSCALL_64_after_hwframe+0x61/0xcb
   INITIAL USE at:
                   lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
                   __raw_spin_lock_irq include/linux/spinlock_api_smp.h:128 [inline]
                   _raw_spin_lock_irq+0xcf/0x110 kernel/locking/spinlock.c:170
                   spin_lock_irq include/linux/spinlock.h:388 [inline]
                   tty_port_open+0x39/0x2c0 drivers/tty/tty_port.c:678
                   uart_open+0x43/0x50 drivers/tty/serial/serial_core.c:1813
                   tty_open+0x4c8/0xde0 drivers/tty/tty_io.c:2165
                   chrdev_open+0x54a/0x630 fs/char_dev.c:414
                   do_dentry_open+0x807/0xfb0 fs/open.c:826
                   do_open fs/namei.c:3608 [inline]
                   path_openat+0x2702/0x2f20 fs/namei.c:3742
                   do_filp_open+0x21c/0x460 fs/namei.c:3769
                   file_open_name fs/open.c:1156 [inline]
                   filp_open+0x25d/0x2c0 fs/open.c:1176
                   console_on_rootfs+0x19/0x5c init/main.c:1571
                   kernel_init_freeable+0x42f/0x5b5 init/main.c:1618
                   kernel_init+0x19/0x290 init/main.c:1504
                   ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298
 }
 ... key      at: [<ffffffff916edb20>] tty_port_init.__key.7+0x0/0x20

the dependencies between the lock to be acquired
 and HARDIRQ-irq-unsafe lock:
-> (&stab->lock){+...}-{2:2} {
   HARDIRQ-ON-W at:
                    lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
                    __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                    _raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:178
                    __sock_map_delete net/core/sock_map.c:416 [inline]
                    sock_map_delete_elem+0x97/0x130 net/core/sock_map.c:448
                    bpf_prog_2c29ac5cdc6b1842+0x3a/0x130
                    bpf_dispatcher_nop_func include/linux/bpf.h:785 [inline]
                    __bpf_prog_run include/linux/filter.h:628 [inline]
                    bpf_prog_run include/linux/filter.h:635 [inline]
                    __bpf_trace_run kernel/trace/bpf_trace.c:1880 [inline]
                    bpf_trace_run4+0x1ea/0x390 kernel/trace/bpf_trace.c:1919
                    __bpf_trace_mm_page_alloc+0xba/0xe0 include/trace/events/kmem.h:201
                    trace_mm_page_alloc include/trace/events/kmem.h:201 [inline]
                    __alloc_pages+0x6e0/0x700 mm/page_alloc.c:5443
                    __page_cache_alloc+0xd4/0x4a0 mm/filemap.c:1022
                    pagecache_get_page+0xa91/0x1010 mm/filemap.c:1940
                    grab_cache_page_write_begin+0x57/0x90 mm/filemap.c:3739
                    ext4_da_write_begin+0x599/0xb60 fs/ext4/inode.c:2980
                    generic_perform_write+0x2bf/0x5b0 mm/filemap.c:3785
                    ext4_buffered_write_iter+0x227/0x360 fs/ext4/file.c:268
                    ext4_file_write_iter+0x87c/0x1990
                    call_write_iter include/linux/fs.h:2148 [inline]
                    new_sync_write fs/read_write.c:507 [inline]
                    vfs_write+0xacf/0xe50 fs/read_write.c:594
                    ksys_write+0x1a2/0x2c0 fs/read_write.c:647
                    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
                    do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
                    entry_SYSCALL_64_after_hwframe+0x61/0xcb
   INITIAL USE at:
                   lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
                   __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
                   _raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:178
                   __sock_map_delete net/core/sock_map.c:416 [inline]
                   sock_map_delete_elem+0x97/0x130 net/core/sock_map.c:448
                   bpf_prog_2c29ac5cdc6b1842+0x3a/0x130
                   bpf_dispatcher_nop_func include/linux/bpf.h:785 [inline]
                   __bpf_prog_run include/linux/filter.h:628 [inline]
                   bpf_prog_run include/linux/filter.h:635 [inline]
                   __bpf_trace_run kernel/trace/bpf_trace.c:1880 [inline]
                   bpf_trace_run4+0x1ea/0x390 kernel/trace/bpf_trace.c:1919
                   __bpf_trace_mm_page_alloc+0xba/0xe0 include/trace/events/kmem.h:201
                   trace_mm_page_alloc include/trace/events/kmem.h:201 [inline]
                   __alloc_pages+0x6e0/0x700 mm/page_alloc.c:5443
                   alloc_pages_vma+0x39a/0x800 mm/mempolicy.c:2146
                   do_anonymous_page mm/memory.c:3808 [inline]
                   handle_pte_fault mm/memory.c:4619 [inline]
                   __handle_mm_fault mm/memory.c:4756 [inline]
                   handle_mm_fault+0x2f49/0x5950 mm/memory.c:4854
                   do_user_addr_fault arch/x86/mm/fault.c:1388 [inline]
                   handle_page_fault arch/x86/mm/fault.c:1476 [inline]
                   exc_page_fault+0x271/0x740 arch/x86/mm/fault.c:1532
                   asm_exc_page_fault+0x22/0x30 arch/x86/include/asm/idtentry.h:568
 }
 ... key      at: [<ffffffff9178a720>] sock_map_alloc.__key+0x0/0x20
 ... acquired at:
   lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
   __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
   _raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:178
   __sock_map_delete net/core/sock_map.c:416 [inline]
   sock_map_delete_elem+0x97/0x130 net/core/sock_map.c:448
   bpf_prog_2c29ac5cdc6b1842+0x3a/0x130
   bpf_dispatcher_nop_func include/linux/bpf.h:785 [inline]
   __bpf_prog_run include/linux/filter.h:628 [inline]
   bpf_prog_run include/linux/filter.h:635 [inline]
   __bpf_trace_run kernel/trace/bpf_trace.c:1880 [inline]
   bpf_trace_run4+0x1ea/0x390 kernel/trace/bpf_trace.c:1919
   __bpf_trace_mm_page_alloc+0xba/0xe0 include/trace/events/kmem.h:201
   trace_mm_page_alloc include/trace/events/kmem.h:201 [inline]
   __alloc_pages+0x6e0/0x700 mm/page_alloc.c:5443
   alloc_slab_page mm/slub.c:1775 [inline]
   allocate_slab mm/slub.c:1912 [inline]
   new_slab+0xbb/0x4b0 mm/slub.c:1975
   ___slab_alloc+0x6f6/0xe10 mm/slub.c:3008
   __slab_alloc mm/slub.c:3095 [inline]
   slab_alloc_node mm/slub.c:3186 [inline]
   slab_alloc mm/slub.c:3228 [inline]
   __kmalloc+0x1c9/0x300 mm/slub.c:4403
   kmalloc include/linux/slab.h:596 [inline]
   tty_buffer_alloc drivers/tty/tty_buffer.c:177 [inline]
   __tty_buffer_request_room+0x1ef/0x500 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+0x7c/0x390 drivers/tty/tty_buffer.c:586
   n_tty_write+0x63c/0x1280 drivers/tty/n_tty.c:2362
   do_tty_write drivers/tty/tty_io.c:1038 [inline]
   file_tty_write+0x561/0x920 drivers/tty/tty_io.c:1110
   call_write_iter include/linux/fs.h:2148 [inline]
   new_sync_write fs/read_write.c:507 [inline]
   vfs_write+0xacf/0xe50 fs/read_write.c:594
   ksys_write+0x1a2/0x2c0 fs/read_write.c:647
   do_syscall_x64 arch/x86/entry/common.c:50 [inline]
   do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
   entry_SYSCALL_64_after_hwframe+0x61/0xcb


stack backtrace:
CPU: 1 PID: 3667 Comm: syz-executor.4 Not tainted 5.15.153-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/29/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106
 print_bad_irq_dependency kernel/locking/lockdep.c:2567 [inline]
 check_irq_usage kernel/locking/lockdep.c:2806 [inline]
 check_prev_add kernel/locking/lockdep.c:3057 [inline]
 check_prevs_add kernel/locking/lockdep.c:3172 [inline]
 validate_chain+0x4d01/0x5930 kernel/locking/lockdep.c:3788
 __lock_acquire+0x1295/0x1ff0 kernel/locking/lockdep.c:5012
 lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline]
 _raw_spin_lock_bh+0x31/0x40 kernel/locking/spinlock.c:178
 __sock_map_delete net/core/sock_map.c:416 [inline]
 sock_map_delete_elem+0x97/0x130 net/core/sock_map.c:448
 bpf_prog_2c29ac5cdc6b1842+0x3a/0x130
 bpf_dispatcher_nop_func include/linux/bpf.h:785 [inline]
 __bpf_prog_run include/linux/filter.h:628 [inline]
 bpf_prog_run include/linux/filter.h:635 [inline]
 __bpf_trace_run kernel/trace/bpf_trace.c:1880 [inline]
 bpf_trace_run4+0x1ea/0x390 kernel/trace/bpf_trace.c:1919
 __bpf_trace_mm_page_alloc+0xba/0xe0 include/trace/events/kmem.h:201
 trace_mm_page_alloc include/trace/events/kmem.h:201 [inline]
 __alloc_pages+0x6e0/0x700 mm/page_alloc.c:5443
 alloc_slab_page mm/slub.c:1775 [inline]
 allocate_slab mm/slub.c:1912 [inline]
 new_slab+0xbb/0x4b0 mm/slub.c:1975
 ___slab_alloc+0x6f6/0xe10 mm/slub.c:3008
 __slab_alloc mm/slub.c:3095 [inline]
 slab_alloc_node mm/slub.c:3186 [inline]
 slab_alloc mm/slub.c:3228 [inline]
 __kmalloc+0x1c9/0x300 mm/slub.c:4403
 kmalloc include/linux/slab.h:596 [inline]
 tty_buffer_alloc drivers/tty/tty_buffer.c:177 [inline]
 __tty_buffer_request_room+0x1ef/0x500 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+0x7c/0x390 drivers/tty/tty_buffer.c:586
 n_tty_write+0x63c/0x1280 drivers/tty/n_tty.c:2362
 do_tty_write drivers/tty/tty_io.c:1038 [inline]
 file_tty_write+0x561/0x920 drivers/tty/tty_io.c:1110
 call_write_iter include/linux/fs.h:2148 [inline]
 new_sync_write fs/read_write.c:507 [inline]
 vfs_write+0xacf/0xe50 fs/read_write.c:594
 ksys_write+0x1a2/0x2c0 fs/read_write.c:647
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7f6b5a04fda9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f6b585d00c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f6b5a17df80 RCX: 00007f6b5a04fda9
RDX: 000000000000ff2e RSI: 0000000020000000 RDI: 0000000000000005
RBP: 00007f6b5a09c47a R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000000b R14: 00007f6b5a17df80 R15: 00007ffd5e18e858
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/03/27 07:33 linux-5.15.y 9465fef4ae35 454571b6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in tty_port_default_wakeup
* Struck through repros no longer work on HEAD.