syzbot


KCSAN: data-race in n_tty_flush_buffer / n_tty_poll

Status: moderation: reported on 2025/08/28 21:15
Subsystems: serial
[Documentation on labels]
Reported-by: syzbot+0425d0c83707555e0188@syzkaller.appspotmail.com
First crash: 50d, last: 1d18h

Sample crash report:
==================================================================
BUG: KCSAN: data-race in n_tty_flush_buffer / n_tty_poll

write to 0xffffc90001389000 of 24 bytes by task 18790 on cpu 0:
 reset_buffer_flags drivers/tty/n_tty.c:314 [inline]
 n_tty_flush_buffer+0x52/0x180 drivers/tty/n_tty.c:353
 tty_ldisc_hangup+0x77/0x370 drivers/tty/tty_ldisc.c:699
 __tty_hangup+0x3c2/0x540 drivers/tty/tty_io.c:621
 tty_vhangup+0x17/0x20 drivers/tty/tty_io.c:691
 pty_close+0x266/0x290 drivers/tty/pty.c:79
 tty_release+0x1ff/0xb10 drivers/tty/tty_io.c:1745
 __fput+0x29b/0x650 fs/file_table.c:468
 ____fput+0x1c/0x30 fs/file_table.c:496
 task_work_run+0x131/0x1a0 kernel/task_work.c:227
 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
 exit_to_user_mode_loop+0xed/0x110 kernel/entry/common.c:43
 exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]
 syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline]
 syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline]
 do_syscall_64+0x1d6/0x200 arch/x86/entry/syscall_64.c:100
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffffc90001389010 of 8 bytes by task 18802 on cpu 1:
 input_available_p drivers/tty/n_tty.c:1924 [inline]
 n_tty_poll+0x298/0x450 drivers/tty/n_tty.c:2456
 tty_poll+0x79/0xf0 drivers/tty/tty_io.c:2199
 vfs_poll include/linux/poll.h:82 [inline]
 io_file_supports_nowait io_uring/rw.c:47 [inline]
 __io_read+0x2f1/0xc30 io_uring/rw.c:933
 io_read+0x4a/0x180 io_uring/rw.c:1027
 __io_issue_sqe+0xfe/0x2e0 io_uring/io_uring.c:1824
 io_issue_sqe+0x56/0xa80 io_uring/io_uring.c:1847
 io_queue_sqe io_uring/io_uring.c:2074 [inline]
 io_req_task_submit+0xa1/0x100 io_uring/io_uring.c:1466
 io_poll_task_func+0x5fc/0x7c0 io_uring/poll.c:-1
 io_handle_tw_list+0xcc/0x1c0 io_uring/io_uring.c:1151
 tctx_task_work_run+0x6d/0x1a0 io_uring/io_uring.c:1216
 tctx_task_work+0x3f/0x80 io_uring/io_uring.c:1234
 task_work_run+0x131/0x1a0 kernel/task_work.c:227
 get_signal+0xe12/0xf70 kernel/signal.c:2807
 arch_do_signal_or_restart+0x96/0x440 arch/x86/kernel/signal.c:337
 exit_to_user_mode_loop+0x77/0x110 kernel/entry/common.c:40
 exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]
 syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline]
 syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline]
 do_syscall_64+0x1d6/0x200 arch/x86/entry/syscall_64.c:100
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x000000000000044a -> 0x0000000000000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 18802 Comm: syz.1.5507 Not tainted syzkaller #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/10/16 13:02 upstream 7ea30958b305 19568248 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in n_tty_flush_buffer / n_tty_poll
2025/08/28 21:14 upstream 07d9df80082b d401b9d7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in n_tty_flush_buffer / n_tty_poll
* Struck through repros no longer work on HEAD.