syzbot


KCSAN: data-race in snd_seq_poll / snd_seq_pool_init

Status: upstream: reported on 2025/03/05 17:25
Subsystems: sound
[Documentation on labels]
Reported-by: syzbot+2d373c9936c00d7e120c@syzkaller.appspotmail.com
Fix commit: ALSA: seq: Improve data consistency at polling
Patched on: [], missing on: [ci-qemu-gce-upstream-auto ci-qemu-native-arm64-kvm ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-qemu2-riscv64 ci-snapshot-upstream-root ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-gce-leak ci-upstream-kasan-badwrites-root ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kasan-gce-smack-root ci-upstream-kmsan-gce-386-root ci-upstream-kmsan-gce-root ci-upstream-linux-next-kasan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci2-upstream-fs ci2-upstream-kcsan-gce ci2-upstream-usb]
First crash: 20d, last: 7d12h
Discussions (2)
Title Replies (including bot) Last reply
[PATCH] ALSA: seq: Use atomic to prevent data races in total_elements 2 (2) 2025/03/06 07:51
[syzbot] [sound?] KCSAN: data-race in snd_seq_poll / snd_seq_pool_init 0 (1) 2025/03/05 17:25

Sample crash report:
==================================================================
BUG: KCSAN: data-race in snd_seq_poll / snd_seq_pool_init

write to 0xffff88811904e130 of 4 bytes by task 6486 on cpu 0:
 snd_seq_pool_init+0x1c1/0x200 sound/core/seq/seq_memory.c:469
 snd_seq_write+0x17f/0x500 sound/core/seq/seq_clientmgr.c:1036
 vfs_write+0x27d/0x920 fs/read_write.c:677
 ksys_write+0xe8/0x1b0 fs/read_write.c:731
 __do_sys_write fs/read_write.c:742 [inline]
 __se_sys_write fs/read_write.c:739 [inline]
 __x64_sys_write+0x42/0x50 fs/read_write.c:739
 x64_sys_call+0x287e/0x2dc0 arch/x86/include/generated/asm/syscalls_64.h:2
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xc9/0x1c0 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff88811904e130 of 4 bytes by task 6483 on cpu 1:
 snd_seq_total_cells sound/core/seq/seq_memory.h:83 [inline]
 snd_seq_write_pool_allocated sound/core/seq/seq_clientmgr.c:95 [inline]
 snd_seq_poll+0x103/0x170 sound/core/seq/seq_clientmgr.c:1153
 vfs_poll include/linux/poll.h:82 [inline]
 io_file_supports_nowait io_uring/rw.c:46 [inline]
 io_write+0x1b3/0xc70 io_uring/rw.c:1083
 io_issue_sqe+0x15f/0xb70 io_uring/io_uring.c:1737
 io_queue_sqe io_uring/io_uring.c:1947 [inline]
 io_req_task_submit+0x6a/0xc0 io_uring/io_uring.c:1373
 io_handle_tw_list+0x1b9/0x200 io_uring/io_uring.c:1059
 tctx_task_work_run+0x6e/0x1c0 io_uring/io_uring.c:1123
 tctx_task_work+0x40/0x80 io_uring/io_uring.c:1141
 task_work_run+0x13a/0x1a0 kernel/task_work.c:227
 get_signal+0xe78/0x1000 kernel/signal.c:2809
 arch_do_signal_or_restart+0x95/0x4b0 arch/x86/kernel/signal.c:337
 exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
 exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
 syscall_exit_to_user_mode+0x62/0x120 kernel/entry/common.c:218
 do_syscall_64+0xd6/0x1c0 arch/x86/entry/common.c:89
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x00000000 -> 0x000001f4

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 6483 Comm: syz.2.1232 Not tainted 6.14.0-rc7-syzkaller-00050-gfc444ada1310 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025
==================================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/03/18 08:59 upstream fc444ada1310 ce3352cd .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in snd_seq_poll / snd_seq_pool_init
2025/03/17 00:24 upstream cb82ca153949 e2826670 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in snd_seq_poll / snd_seq_pool_init
2025/03/05 02:49 upstream 48a5eed9ad58 c3901742 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in snd_seq_poll / snd_seq_pool_init
* Struck through repros no longer work on HEAD.